/*! 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 } ( ) , Function . prototype . bind || ( Function . prototype . bind = function ( a ) { if ( "function" != typeof this ) throw new TypeError ( "Function.prototype.bind - what is trying to be bound is not callable" ) ; var b = Array . prototype . slice . call ( arguments , 1 ) , c = this , d = function ( ) { } , e = function ( ) { return c . apply ( this instanceof d ? this : a , b . concat ( Array . prototype . slice . call ( arguments ) ) ) } ; return this . prototype && ( d . prototype = this . prototype ) , e . prototype = new d , e } ) , 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 = { } } } ) , Object . keys || ( Object . keys = function ( a ) { if ( a !== Object ( a ) ) throw new TypeError ( "Object.keys called on a non-object" ) ; var b , c , d = { _ _ob _ _ : b , $accessors : b , $vbthis : b , $vbsetter : b } , e = [ ] ; for ( c in a ) c in d || Object . prototype . hasOwnProperty . call ( a , c ) && e . push ( c ) ; return e } ) , Array . isArray || ( Array . isArray = function ( a ) { return "[object Array]" === Object . prototype . toString . call ( a ) } ) , "function" != typeof Object . getPrototypeOf && ( Object . getPrototypeOf = "" . _ _proto _ _ === String . prototype ? function ( a ) { return a . _ _proto _ _ } : function ( a ) { return a . constructor . prototype } ) , "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 ) { fu
c . className = ia . trim ( d ) } return this } , removeClass : function ( a ) { var b , c , d , e , f , g = 0 , h = this . length , i = 0 === arguments . length || "string" == typeof a && a ; if ( ia . isFunction ( a ) ) return this . each ( function ( b ) { ia ( this ) . removeClass ( a . call ( this , b , this . className ) ) } ) ; if ( i ) for ( b = ( a || "" ) . match ( ka ) || [ ] ; g < h ; g ++ ) if ( c = this [ g ] , d = 1 === c . nodeType && ( c . className ? ( " " + c . className + " " ) . replace ( Ca , " " ) : "" ) ) { for ( f = 0 ; e = b [ f ++ ] ; ) for ( ; d . indexOf ( " " + e + " " ) >= 0 ; ) d = d . replace ( " " + e + " " , " " ) ; c . className = a ? ia . trim ( d ) : "" } return this } , toggleClass : function ( a , b ) { var c = typeof a , d = "boolean" == typeof b ; return ia . isFunction ( a ) ? this . each ( function ( c ) { ia ( this ) . toggleClass ( a . call ( this , c , this . className , b ) , b ) } ) : this . each ( function ( ) { if ( "string" === c ) for ( var e , f = 0 , g = ia ( this ) , h = b , i = a . match ( ka ) || [ ] ; e = i [ f ++ ] ; ) h = d ? h : ! g . hasClass ( e ) , g [ h ? "addClass" : "removeClass" ] ( e ) ; else c !== V && "boolean" !== c || ( this . className && ia . _data ( this , "__className__" , this . className ) , this . className = this . className || a === ! 1 ? "" : ia . _data ( this , "__className__" ) || "" ) } ) } , 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 ,
} } ) , lang : e ( function ( a ) { return la . test ( a || "" ) || g . error ( "unsupported lang: " + a ) , a = a . replace ( ua , va ) . toLowerCase ( ) , function ( b ) { var c ; do if ( c = H ? b . getAttribute ( "xml:lang" ) || b . getAttribute ( "lang" ) : b . lang ) return c = c . toLowerCase ( ) , c === a || 0 === c . indexOf ( a + "-" ) ; while ( ( b = b . parentNode ) && 1 === b . nodeType ) ; return ! 1 } } ) , target : function ( b ) { var c = a . location && a . location . hash ; return c && c . slice ( 1 ) === b . id } , root : function ( a ) { return a === G } , focus : function ( a ) { return a === F . activeElement && ( ! F . hasFocus || F . hasFocus ( ) ) && ! ! ( a . type || a . href || ~ a . tabIndex ) } , enabled : function ( a ) { return a . disabled === ! 1 } , disabled : function ( a ) { return a . disabled === ! 0 } , checked : function ( a ) { var b = a . nodeName . toLowerCase ( ) ; return "input" === b && ! ! a . checked || "option" === b && ! ! a . selected } , selected : function ( a ) { return a . parentNode && a . parentNode . selectedIndex , a . selected === ! 0 } , empty : function ( a ) { for ( a = a . firstChild ; a ; a = a . nextSibling ) if ( a . nodeName > "@" || 3 === a . nodeType || 4 === a . nodeType ) return ! 1 ; return ! 0 } , parent : function ( a ) { return ! y . pseudos . empty ( a ) } , 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" ) } , n
{ top : b . top - c . top - ia . css ( d , "marginTop" , ! 0 ) , left : b . left - c . left - ia . css ( d , "marginLeft" , ! 0 ) } } } , offsetParent : function ( ) { return this . map ( function ( ) { for ( var a = this . offsetParent || W . documentElement ; a && ! ia . nodeName ( a , "html" ) && "static" === ia . css ( a , "position" ) ; ) a = a . offsetParent ; return a || W . documentElement } ) } } ) , ia . each ( { scrollLeft : "pageXOffset" , scrollTop : "pageYOffset" } , function ( a , c ) { var d = /Y/ . test ( c ) ; ia . fn [ a ] = function ( e ) { return ia . access ( this , function ( a , e , f ) { var g = S ( a ) ; return f === b ? g ? c in g ? g [ c ] : g . document . documentElement [ e ] : a [ e ] : void ( g ? g . scrollTo ( d ? ia ( g ) . scrollLeft ( ) : f , d ? f : ia ( g ) . scrollTop ( ) ) : a [ e ] = f ) } , a , e , arguments . length , null ) } } ) , ia . each ( { Height : "height" , Width : "width" } , function ( a , c ) { ia . each ( { padding : "inner" + a , content : c , "" : "outer" + a } , function ( d , e ) { ia . fn [ e ] = function ( e , f ) { var g = arguments . length && ( d || "boolean" != typeof e ) , h = d || ( e === ! 0 || f === ! 0 ? "margin" : "border" ) ; return ia . access ( this , function ( c , d , e ) { var f ; return ia . isWindow ( c ) ? c . document . documentElement [ "client" + a ] : 9 === c . nodeType ? ( f = c . documentElement , 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 , b , c ) { switch ( c . length ) { case 0 : return a . call ( b ) ; case 1 : return a . call ( b , c [ 0 ] ) ; case 2 : return a . call ( b , c [ 0 ] , c [ 1 ] ) ; case 3 : return a . call ( b , c [ 0 ] , c [ 1 ] , c [ 2 ] ) } return a . apply ( b , c ) } function b ( a , b , c , d ) { for ( var e = - 1 , f = null == a ? 0 : a . length ; ++ e < f ; ) { var g = a [ e ] ; b ( d , g , c ( g ) , a ) } return d } function c ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d && b ( a [ c ] , c , a ) !== ! 1 ; ) ; return a } function d ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d ; ) if ( ! b ( a [ c ] , c , a ) ) return ! 1 ; return ! 0 } function e ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; b ( g , c , a ) && ( f [ e ++ ] = g ) } return f } function f ( a , b ) { var c = null == a ? 0 : a . length ; return ! ! c && o ( a , b , 0 ) > - 1 } function g ( a , b , c ) { for ( var d = - 1 , e = null == a ? 0 : a . length ; ++ d < e ; ) if ( c ( b , a [ d ] ) ) return ! 0 ; return ! 1 } function h ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length , e = Array ( d ) ; ++ c < d ; ) e [ c ] = b ( a [ c ] , c , a ) ; return e } function i ( a , b ) { for ( var c = - 1 , d = b . length , e = a . length ; ++ c < d ; ) a [ e + c ] = b [ c ] ; return a } function j ( a , b , c , d ) { var e = - 1 , f = null == a ? 0 : a . length ; for ( d && f && ( c = a [ ++ e ] ) ; ++ e < f ; ) c = b ( c , a [ e ] , e , a ) ; return c } function k ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d ; ) if ( b ( a [ c ] , c , a ) ) return ! 0 ; return ! 1 } function l ( a ) { return a . split ( "" ) } function m ( a , b , c ) { var d ; return c ( a , function ( a , c , e ) { if ( b ( a , c , e ) ) return d = c , ! 1 } ) , d } function n ( a , b , c , d ) { for ( var e = a . length , f = c + ( d ? 1 : - 1 ) ; d ? f -- : ++ f < e ; ) if ( b ( a [ f ] , f , a ) ) return f ; return - 1 } function o ( a , b , c ) { return b === b ? H ( a , b , c ) : n ( a , p , c ) } function p ( a ) { return a !== a } function q ( a ) { return function ( b ) { return null == b ? Ee : b [ a ] } } function r ( a ) { return function ( b ) { return null == a ? Ee : a [ b ] } } function s ( a , b , c , d , e ) { return e ( a , function ( a , e , f ) { c = d ? ( d = ! 1 , a ) : b ( c , a , e , f ) } ) , c } function t ( a , b ) { var c = a . length ; for ( a . sort ( b ) ; c -- ; ) a [ c ] = a [ c ] . value ; return a } function u ( a , b ) { for ( var c = - 1 , d = Array ( a ) ; ++ c < a ; ) d [ c ] = b ( c ) ; return d } function v ( a ) { return function ( b ) { return a ( b ) } } function w ( a , b ) { return h ( b , function ( b ) { return a [ b ] } ) } function x ( a , b ) { return a . has ( b ) } function y ( a , b ) { for ( var c = a . length , d = 0 ; c -- ; ) a [ c ] === b && ++ d ; return d } function z ( a , b ) { return null == a ? Ee : a [ b ] } function A ( a ) { return yg . test ( a ) } function B ( a ) { for ( var b , c = [ ] ; ! ( b = a . next ( ) ) . done ; ) c . push ( b . value ) ; return c } function C ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a , d ) { c [ ++ b ] = [ d , a ] } ) , c } function D ( a , b ) { return function ( c ) { return a ( b ( c ) ) } } function E ( a , b ) { for ( var c = - 1 , d = a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; g !== b && g !== Ke || ( a [ c ] = Ke , f [ e ++ ] = c ) } return f } function F ( a , b ) { return "__proto__" == b ? Ee : a [ b ] } function G ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a ) { c [ ++ b ] = a } ) , c } function H ( a , b , c ) { for ( var d = c - 1 , e = a . length ; ++ d < e ; ) if ( a [ d ] === b ) return d ; return - 1 } function I ( a ) { return A ( a ) ? K ( a ) : Rg ( a ) } function J ( a ) { return A ( a ) ? L ( a ) : l ( a ) } function K ( a ) { for ( var b = xg . lastIndex = 0 ; xg . test ( a ) ; ) ++ b ; return b } function L ( a ) { return a . match ( xg ) || [ ] } function M ( a ) { if ( Qd ( a ) && ! oi ( a ) && ! ( a instanceof P ) ) { if ( a instanceof O ) return a ; if ( Yg . call ( a , "__wrapped__" ) ) return Uc ( a ) } return new O ( a ) } func
var b = Zh ( a ) , c = b == sf ? C : b == zf ? G : ne ; return c ( a ) } function Zd ( a ) { if ( ! a ) return 0 === a ? a : 0 ; if ( a = _d ( a ) , a === df || a === - df ) { var b = a < 0 ? - 1 : 1 ; return b * ff } return a === a ? a : 0 } function $d ( a ) { var b = Zd ( a ) , c = b % 1 ; return b === b ? c ? b - c : b : 0 } function _d ( a ) { if ( "number" == typeof a ) return a ; if ( Wd ( a ) ) return gf ; if ( Pd ( a ) ) { var b = "function" == typeof a . valueOf ? a . valueOf ( ) : a ; a = Pd ( b ) ? b + "" : b } if ( "string" != typeof a ) return 0 === a ? a : + a ; a = a . replace ( Vf , "" ) ; var c = ag . test ( a ) ; return c || cg . test ( a ) ? Dg ( a . slice ( 2 ) , c ? 2 : 8 ) : _f . test ( a ) ? gf : + a } function ae ( a ) { return Ob ( a , je ( a ) ) } function be ( a ) { return null == a ? "" : wb ( a ) } function ce ( a , b ) { var c = Ph ( a ) ; return null == b ? c : xa ( c , b ) } function de ( a , b ) { return m ( a , db ( b , 3 ) , Ja ) } function ee ( a , b ) { return m ( a , db ( b , 3 ) , Ka ) } function fe ( a , b , c ) { var d = null == a ? Ee : Ma ( a , b ) ; return d === Ee ? c : d } function ge ( a , b ) { return null != a && tc ( a , b , Qa ) } function he ( a , b ) { return null != a && tc ( a , b , Ra ) } function ie ( a ) { return Hd ( a ) ? sa ( a ) : eb ( a ) } function je ( a ) { return Hd ( a ) ? sa ( a , ! 0 ) : fb ( a ) } function ke ( a , b ) { return le ( a , Ad ( db ( b ) ) ) } function le ( a , b ) { if ( null == a ) return { } ; var c = h ( kc ( a ) , function ( a ) { return [ a ] } ) ; return b = db ( b ) , ob ( a , c , function ( a , c ) { return b ( a , c [ 0 ] ) } ) } function me ( a , b , c ) { b = Cb ( b , a ) ; var d = - 1 , e = b . length ; for ( e || ( e = 1 , a = Ee ) ; ++ d < e ; ) { var f = null == a ? Ee : a [ Rc ( b [ d ] ) ] ; f === Ee && ( d = e , f = c ) , a = Nd ( f ) ? f . call ( a ) : f } return a } function ne ( a ) { return null == a ? [ ] : w ( a , ie ( a ) ) } function oe ( a , b , c ) { return c === Ee && ( c = b , b = Ee ) , c !== Ee && ( c = _d ( c ) , c = c === c ? c : 0 ) , b !== Ee && ( b = _d ( b ) , b = b === b ? b : 0 ) , Ba ( _d ( a ) , b , c ) } function pe ( a , b , c ) { if ( c && "boolean" != typeof c && Ac ( a , b , c ) && ( b = c = Ee ) , c === Ee && ( "boolean" == typeof b ? ( c = b , b = Ee ) : "boolean" == typeof a && ( c = a , a = Ee ) ) , a === Ee && b === Ee ? ( a = 0 , b = 1 ) : ( a = Zd ( a ) , b === Ee ? ( b = a , a = 0 ) : b = Zd ( b ) ) , a > b ) { var d = a ; a = b , b = d } if ( c || a % 1 || b % 1 ) { var e = yh ( ) ; return wh ( a + e * ( b - a + Cg ( "1e-" + ( ( e + "" ) . length - 1 ) ) ) , b ) } return qb ( a , b ) } function qe ( a ) { return a = be ( a ) , a && Qf . test ( a ) ? a . replace ( Pf , Sg ) : a } function re ( a ) { return function ( ) { return a } } function se ( a ) { return a } function te ( a ) { return db ( "function" == typeof a ? a : Ca ( a , Le ) ) } function ue ( a ) { return ib ( Ca ( a , Le ) ) } function ve ( a , b , d ) { var e = ie ( b ) , f = La ( b , e ) ; null != d || Pd ( b ) && ( f . length || ! e . length ) || ( d = b , b = a , a = this , f = La ( b , ie ( b ) ) ) ; var g = ! ( Pd ( d ) && "chain" in d && ! d . chain ) , h = Nd ( a ) ; return c ( f , function ( c ) { var d = b [ c ] ; a [ c ] = d , h && ( a . prototype [ c ] = function ( ) { var b = this . _ _chain _ _ ; if ( g || b ) { var c = a ( this . _ _wrapped _ _ ) , e = c . _ _actions _ _ = Nb ( this . _ _actions _ _ ) ; return e . push ( { func : d , args : arguments , thisArg : a } ) , c . _ _chain _ _ = b , c } return d . apply ( a , i ( [ this . value ( ) ] , arguments ) ) } ) } ) , a } function we ( ) { return Gg . _ === this && ( Gg . _ = bh ) , this } function xe ( ) { } function ye ( a ) { return Bc ( a ) ? q ( Rc ( a ) ) : pb ( a ) } function ze ( ) { return [ ] } function Ae ( ) { return ! 1 } function Be ( a ) { var b = ++ Zg ; return be ( a ) + b } function Ce ( a ) { return a && a . length ? Ga ( a , se , Pa ) : Ee } function De ( a ) { return a && a . length ? Ga ( a , se , gb ) : Ee } var Ee , Fe = "4.17.5" , Ge = 200 , He = "Expected a function" , Ie = "__lodash_hash_undefined__" , Je = 500 , Ke = "__lodash_placeholder__" , Le = 1 , Me = 2 , Ne = 4 , Oe = 1 , Pe = 2 , Qe = 1 , Re = 2 , Se = 4 , Te = 8 , Ue = 16 , Ve = 32 , We = 64 , Xe = 128 , Ye = 256 , Ze = 512 , $e = 800 , _e = 16 , af = 1 , bf = 2 , cf = 3 , df = 1 / 0 , ef = 9007199254740991 , ff = 1.7976931348623157 e308 , gf = NaN , hf = 4294967295 , jf = [ [ "ary" , Xe ] , [ "bind" , Qe ] , [ "bindKey" , Re ] , [ "curry" , Te ] , [ "curryRight" , Ue ] , [ "flip" , Ze ] , [ "partial" , Ve ] , [ "partialRight" , We ] , [ "rearg" , Ye ] ] , kf = "[object Arguments]" , lf = "[object Array]" , mf = "[object AsyncFunction]" , nf = "[object Boolean]" , of = "[object Date]" , pf = "[object Error]" , qf = "[object Function]" , rf = "[object GeneratorFunction]" , sf = "[object Map]" , tf = "[object Number]" , uf = "[object Null]" , vf = "[object Object]" , wf = "[object Promise]" , xf = "[object Proxy]" , yf = "[object RegExp]" , zf = "[object Set]" , Af = "[object String]" , Bf = "[object Symbol]" , Cf = "[object Undefined]" , Df = "[object WeakMap]" , Ef = "[object ArrayBuffer]" , Ff = "[object DataView]" , Gf = "[object Float32Array]" , Hf = "[object Float64Array]" , If = "[object Int8Array]" , Jf = "[object Int16Array]" , Kf = "[object Int32Array]" , Lf = "[object Uint8Array]" , Mf = "[object Uint8ClampedArray]" , Nf = "[object Uint16Array]" , Of = "[object Uint32Array]" , Pf = /[&<>"']/g , Qf = RegExp ( Pf . source ) , Rf = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ , Sf = /^\w*$/ , Tf = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g , Uf = /[\\^$.*+?()[\]{}|]/g , Vf = /^\s+|\s+$/g , Wf = / \ { ( ? : \ n \ / \ * \ [
return /opera/i . test ( navigator . userAgent . toLowerCase ( ) ) } , isSafari : function ( ) { return /safari/i . test ( navigator . userAgent . toLowerCase ( ) ) } , isKhtml : function ( ) { return /Konqueror|Safari|KHTML/i . test ( navigator . userAgent ) } , isMac : function ( ) { return /macintosh|mac os x/i . test ( navigator . userAgent ) } , isWindows : function ( ) { return /windows|win32/i . test ( navigator . userAgent ) } , isSupportCss3 : function ( a ) { var b , c , d = [ "webkit" , "Moz" , "ms" , "o" ] , e = [ ] , f = document . documentElement . style , g = function ( a ) { return a . replace ( /-(\w)/g , function ( a , b ) { return b . toUpperCase ( ) } ) } ; for ( b in d ) e . push ( g ( d [ b ] + "-" + a ) ) ; for ( e . push ( g ( a ) ) , b = 0 , c = e . length ; b < c ; b ++ ) if ( e [ b ] in f ) return ! 0 ; return ! 1 } } ) , _ . extend ( BI , { ajax : function ( a ) { a || ( a = { } ) ; var b = a . async ; a . data = BI . cjkEncodeDO ( a . data || { } ) , $ . ajax ( { url : a . url , type : "POST" , data : a . data , async : b , error : a . error , complete : function ( b , c ) { BI . isFunction ( a . complete ) && a . complete ( BI . jsonDecode ( b . responseText ) , c ) } } ) } } ) } ( ) , BI . OB = function ( a ) { var b = this . props ; BI . isFunction ( this . props ) && ( b = this . props ( a ) ) , this . options = ( window . $ || window . _ ) . extend ( this . _defaultConfig ( a ) , b , a ) , this . _init ( ) , this . _initRef ( ) } , _ . extend ( BI . OB . prototype , { props : { } , init : null , destroyed : null , _defaultConfig : function ( a ) { return { } } , _init : function ( ) { this . _initListeners ( ) , this . init && this . init ( ) } , _initListeners : function ( ) { var a = this ; null != this . options . listeners && ( _ . each ( this . options . listeners , function ( b ) { ( b . target ? b . target : a ) [ b . once ? "once" : "on" ] ( b . eventName , _ . bind ( b . action , a ) ) } ) , delete this . options . listeners ) } , _initRef : function ( ) { this . options . ref && this . options . ref . call ( this , this ) } , _purgeRef : function ( ) { this . options . ref && this . options . ref . call ( null ) } , _getEvents : function ( ) { return _ . isArray ( this . events ) || ( this . events = [ ] ) , 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 ) { a != b && d . push ( a ) } ) , 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 . _purgeRef ( ) , 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 : "" } ) } , beforeInit : null , 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 . _initRoot ( ) , this . _initElementWidth ( ) , this . _initElementHeight ( ) , this . _initVisual ( ) , this . _initState ( ) , this . beforeInit ? ( this . _ _asking = ! 0 , this . beforeInit ( BI . bind ( this . _render , this ) ) , this . _ _asking === ! 0 && ( this . _ _async = ! 0 ) ) : this . _render ( ) } , _render : function ( ) { this . _ _asking = ! 1 , this . beforeCreate && this . beforeCreate ( ) , 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 . wid
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 (
} , 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" ) ; break ; case ! 1 : this . element . css ( "overflow" , "hidden" ) } this . options . scrollx && this . element . css ( { "overflow-x" : "auto" , "overflow-y" : "hidden" } ) , this . options . scrolly && this . element . css ( { "overflow-x" : "hidden" , "overflow-y" : "auto" } ) } , _mountChildren : function ( ) { var a = this , b = document . createDocumentFragment ( ) , c = ! 1 ; BI . each ( this . _children , func
h < 0 && ( h = 0 ) , i < 0 && ( i = 0 ) , c . element . css ( { left : h + "px" , top : i + "px" } ) } return this } , close : function ( a ) { return this . _check ( a ) ? ( this . floatOpened [ a ] && ( delete this . floatOpened [ a ] , this . floatContainer [ a ] . invisible ( ) , this . modal && this . floatContainer [ a ] . element . _ _releaseZIndexMask _ _ ( this . zindexMap [ a ] ) ) , this ) : this } , get : function ( a ) { return this . floatManager [ a ] } , remove : function ( a ) { return this . _check ( a ) ? ( this . floatContainer [ a ] . destroy ( ) , this . modal && this . floatContainer [ a ] . element . _ _releaseZIndexMask _ _ ( this . zindexMap [ a ] ) , delete this . floatManager [ a ] , delete this . floatLayer [ a ] , delete this . zindexMap [ a ] , delete this . floatContainer [ a ] , delete this . floatOpened [ a ] , this ) : this } } ) , BI . ResizeController = BI . inherit ( BI . Controller , { _defaultConfig : function ( ) { return BI . extend ( BI . ResizeController . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . ResizeController . superclass . _init . apply ( this , arguments ) ; var a = this ; this . resizerManger = { } ; var b = BI . debounce ( function ( b ) { a . _resize ( b ) } , 30 ) ; $ ( window ) . resize ( b ) } , _resize : function ( a ) { BI . each ( this . resizerManger , function ( b , c ) { return c instanceof $ ? void ( c . is ( ":visible" ) && c . trigger ( "__resize__" ) ) : c instanceof BI . Layout ? void c . resize ( ) : BI . isFunction ( c ) ? void c ( a ) : void 0 } ) } , add : function ( a , b ) { var c = this ; return this . has ( a ) ? this : ( this . resizerManger [ a ] = b , function ( ) { c . remove ( a ) } ) } , get : function ( a ) { return this . resizerManger [ a ] } , has : function ( a ) { return null != this . resizerManger [ a ] } , remove : function ( a ) { return this . has ( a ) ? ( delete this . resizerManger [ a ] , this ) : this } } ) , BI . TooltipsController = BI . inherit ( BI . Controller , { _defaultConfig : function ( ) { return BI . extend ( BI . TooltipsController . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _const : { height : 20 } , _init : function ( ) { BI . TooltipsController . superclass . _init . apply ( this , arguments ) , this . tooltipsManager = { } , this . showingTips = { } } , _createTooltip : function ( a , b ) { return BI . createWidget ( { type : "bi.tooltip" , text : a , level : b , stopEvent : ! 0 , height : this . _const . height } ) } , hide : function ( a , b ) { return this . has ( a ) ? ( delete this . showingTips [ a ] , this . get ( a ) . element . hide ( 0 , b ) , this . get ( a ) . invisible ( ) , this ) : this } , create : function ( a , b , c , d ) { if ( ! this . has ( a ) ) { var e = this . _createTooltip ( b , c ) ; this . add ( a , e ) , BI . createWidget ( { type : "bi.absolute" , element : d || "body" , items : [ { el : e } ] } ) , e . invisible ( ) } return this . get ( a ) } , show : function ( a , b , c , d , e , f ) { f || ( f = { } ) ; var g = this ; 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"
} 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 } } ) , 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 . clientY ) , a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 } , releaseMouseMoves : function ( ) { this . _eventMoveToken && this . _eventUpToken && ( this . _eventMoveToken . remove ( ) , this . _eventMoveToken = null , this . _eventUpToken . remove ( ) , this . _eventUpToken = null ) , null !== this . _animationFrameID && ( a ( this . _animationFrameID ) , this . _animationFrameID = null ) , this . _isDragging && ( this . _isDragging = ! 1 , this . _x = null , this . _y = null ) } , isDragging : function ( ) { return this . _isDraggi
BI . FlexVerticalCenter = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FlexVerticalCenter . superclass . props . apply ( this , arguments ) , { baseCls : "bi-flex-wrapper-vertical-center clearfix" , horizontalAlign : BI . HorizontalAlign . Middle , columnSize : [ ] , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . FlexVerticalCenter . superclass . render . apply ( this , arguments ) ; var a = this . options ; this . $wrapper = $ ( "<div>" ) . addClass ( "flex-wrapper-vertical-center-wrapper " + a . horizontalAlign ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . FlexVerticalCenter . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" } ) , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-top" : c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-left" : ( 0 === a ? c . hgap : 0 ) + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-bottom" : c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d } , _mountChildren : function ( ) { var a = this , b = document . createDocumentFragment ( ) , c = ! 1 ; BI . each ( this . _children , function ( d , e ) { e . element !== a . element && ( b . appendChild ( e . element [ 0 ] ) , c = ! 0 ) } ) , c === ! 0 && ( this . $wrapper . append ( b ) , this . element . append ( this . $wrapper ) ) } , _getWrapper : function ( ) { return this . $wrapper } , resize : function ( ) { } , populate : function ( a ) { BI . FlexVerticalCenter . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.flex_wrapper_vertical_center" , BI . FlexVerticalCenter ) , BI . AbsoluteLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AbsoluteLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-absolute-layout" , hgap : null , vgap : null , lgap : null , rgap : null , tgap : null , bgap : null } ) } , render : function ( ) { BI . AbsoluteLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AbsoluteLayout . superclass . _addElement . apply ( this , arguments ) , e = 0 , f = 0 , g = 0 , h = 0 ; return BI . isNotNull ( b . left ) && ( d . element . css ( { left : b . left } ) , e += b . left ) , BI . isNotNull ( b . right ) && ( d . element . css ( { right : b . right } ) , f += b . right ) , BI . isNotNull ( b . top ) && ( d . element . css ( { top : b . top } ) , g += b . top ) , BI . isNotNull ( b . bottom ) && ( d . element . css ( { bottom : b . bottom } ) , h += 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 . element . css ( { position : "absolute" } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , stroke : function ( a ) { this . options . items = a || [ ] ; var b = this ; BI . each ( a , function ( a , c ) { if ( c ) { if ( ! BI . isWidget ( c ) && ! c . el ) throw new Error ( "el must be exist" ) ; b . _addElement ( a , c ) } } ) } , populate : function ( a ) { BI . AbsoluteLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.absolute" , BI . AbsoluteLayout ) , BI . AdaptiveLayout = BI . inherit ( BI . Layout , { props : function ( ) { 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 . e
} , _addElement : function ( a , b ) { var c = this . options , d = BI . VerticalLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" } ) , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-top" : ( 0 === a ? c . vgap : 0 ) + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-left" : c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-bottom" : c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . VerticalLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.vertical" , BI . VerticalLayout ) , BI . WindowLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . WindowLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-window-layout" , columns : 3 , rows : 2 , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , columnSize : [ 100 , "fill" , 200 ] , rowSize : [ 100 , "fill" ] , items : [ [ { el : { type : "bi.button" , text : "button1" } } , { el : { type : "bi.button" , text : "button2" } } , { el : { type : "bi.button" , text : "button3" } } ] ] } ) } , render : function ( ) { BI . WindowLayout . 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 ) { function b ( a , b , c ) { 0 === b && a . addClass ( "first-row" ) , 0 === c && a . addClass ( "first-col" ) , a . addClass ( BI . isOdd ( b + 1 ) ? "odd-row" : "even-row" ) , a . addClass ( BI . isOdd ( c + 1 ) ? "odd-col" : "even-col" ) , a . addClass ( "center-element" ) } function c ( a , b , c ) { var d = "" ; 0 === b && ( d += " first-row" ) , 0 === c && ( d += " first-col" ) , d += BI . isOdd ( b + 1 ) ? " odd-row" : " even-row" , d += BI . isOdd ( c + 1 ) ? " odd-col" : " even-col" , a . cls = ( a . cls || "" ) + d + " center-element" } function d ( a , d , e ) { a instanceof BI . Widget ? b ( a . element , d , e ) : a . el instanceof BI . Widget ? b ( a . el . element , d , e ) : a . el ? c ( a . el , d , e ) : c ( a , d , e ) } var e = this . options ; BI . isNumber ( e . rowSize ) && ( e . rowSize = BI . makeArray ( e . items . length , 1 / e . items . length ) ) , BI . isNumber ( e . columnSize ) && ( e . columnSize = BI . makeArray ( e . items [ 0 ] . length , 1 / e . items [ 0 ] . length ) ) ; for ( var f = 0 ; f < e . rows ; f ++ ) for ( var g = 0 ; g < e . columns ; g ++ ) { if ( ! e . items [ f ] [ g ] ) throw new Error ( "item be required" ) ; if ( ! this . hasWidget ( this . getName ( ) + f + "_" + g ) ) { var h = BI . createWidget ( e . items [ f ] [ g ] ) ; h . element . css ( { position : "absolute" } ) , this . addWidget ( this . getName ( ) + f + "_" + g , h ) } } var i = { } , j = { } , k = { } , l = { } ; i [ 0 ] = 0 , k [ 0 ] = 0 , j [ e . columns - 1 ] = 0 , l [ e . rows - 1 ] = 0 ; for ( var f = 0 ; f < e . rows ; f ++ ) { for ( var g = 0 ; g < e . columns ; g ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( k [ f ] ) && ( k [ f ] = k [ f - 1 ] + ( e . rowSize [ f - 1 ] < 1 ? e . rowSize [ f - 1 ] : e . rowSize [ f - 1 ] + e . vgap + e . bgap ) ) ; var n = k [ f ] <= 1 ? 100 * k [ f ] + "%" : k [ f ] + e . vgap + e . tgap + "px" , o = "" ; BI . isNumber ( e . rowSize [ f ] ) && ( o = e . rowSize [ f ] <= 1 ? 100 * e . rowSize [ f ] + "%" : e . rowSize [ f ] + "px" ) , m . element . css ( { top : n , height : o } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . rowSize [ f ] ) ) break } for ( var f = e . rows - 1 ; f >= 0 ; f -- ) { for ( var g = 0 ; g < e . columns ; g ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( l [ f ] ) && ( l [ f ] = l [ f + 1 ] + ( e . rowSize [ f + 1 ] < 1 ? e . rowSize [ f + 1 ] : e . rowSize [ f + 1 ] + e . vgap + e . tgap ) ) ; var p = l [ f ] <= 1 ? 100 * l [ f ] + "%" : l [ f ] + e . vgap + e . bgap + "px" , o = "" ; BI . isNumber ( e . rowSize [ f ] ) && ( o = e . rowSize [ f ] <= 1 ? 100 * e . rowSize [ f ] + "%" : e . rowSize [ f ] + "px" ) , m . element . css ( { bottom : p , height : o } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . rowSize [ f ] ) ) break } for ( var g = 0 ; g < e . columns ; g ++ ) { for ( var f = 0 ; f < e . rows ; f ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( i [ g ] ) && ( i [ g ] = i [ g - 1 ] + ( e . columnSize [ g - 1 ] < 1 ? e . columnSize [ g - 1 ] : e . columnSize [ g - 1 ] + e . hgap + e . rgap ) ) ; var q = i [ g ] <= 1 ? 100 * i [ g ] + "%" : i [ g ] + e . hgap + e . lgap + "px" , h = "" ; BI . isNumber ( e . columnSize [ g ] ) && ( h = e . columnSize [ g ] <= 1 ? 100 * e . columnSize [ g ] + "%" : e . columnSize [ g ] + "px" ) , m . element . css ( { left : q , width : h } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . columnSize [ g ] ) ) break } for ( var g = e . columns - 1 ; g >= 0 ; g -- ) { for ( var f = 0 ; f < e . rows ; f ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( j [ g ] ) && ( j [ g ] = j [ g + 1 ] + ( e . columnSize [ g + 1 ] < 1 ? e . columnSize [ g + 1 ] : e . columnSize [ g + 1 ] + e . hgap + e . lgap ) ) ; var r = j [ g ] <= 1 ? 100 * j [ g ] + "%" : j [ g ] + e . hgap + e . rgap + "px" , h = "" ; BI . isNumber ( e . colum
BI . Pane = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Pane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-pane" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , overlap : ! 0 , onLoaded : BI . emptyFn } ) } , _init : function ( ) { BI . Pane . superclass . _init . apply ( this , arguments ) , this . _ _async && this . loading ( ) } , _render : function ( ) { BI . Pane . superclass . _render . apply ( this , arguments ) , this . _ _async && this . loaded ( ) } , _assertTip : function ( ) { var a = this . options ; this . _tipText || ( this . _tipText = BI . createWidget ( { type : "bi.label" , cls : "bi-tips" , text : a . tipText , height : 25 } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . _tipText ] , bgap : 25 } ) ) } , loading : function ( ) { var a = this , b = this . options ; b . overlap === ! 0 ? ( BI . Layers . has ( this . getName ( ) ) || BI . createWidget ( { type : "bi.vtape" , items : [ { el : { type : "bi.layout" , cls : "loading-background" } , height : 30 } ] , element : BI . Layers . make ( this . getName ( ) , this ) } ) , BI . Layers . show ( a . getName ( ) ) ) : BI . isNull ( this . _loading ) && ( this . _loading = BI . createWidget ( { type : "bi.layout" , cls : "loading-background" , height : 30 } ) , this . _loading . element . css ( "zIndex" , 1 ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . _loading , left : 0 , right : 0 , top : 0 } ] } ) ) } , loaded : function ( ) { var a = this , b = this . options ; BI . Layers . remove ( a . getName ( ) ) , this . _loading && this . _loading . destroy ( ) , this . _loading && ( this . _loading = null ) , b . onLoaded ( ) , a . fireEvent ( BI . Pane . EVENT _LOADED ) } , check : function ( ) { this . setTipVisible ( BI . isEmpty ( this . options . items ) ) } , setTipVisible : function ( a ) { a === ! 0 ? ( this . _assertTip ( ) , this . _tipText . setVisible ( ! 0 ) ) : this . _tipText && this . _tipText . setVisible ( ! 1 ) } , populate : function ( a ) { this . options . items = a || [ ] , this . check ( ) } , empty : function ( ) { } } ) , BI . Pane . EVENT _LOADED = "EVENT_LOADED" , BI . Single = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . Single . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-single" , readonly : ! 1 , title : null , warningTitle : null , tipType : null , value : null } ) } , _showToolTip : function ( a , b ) { b || ( b = { } ) ; var c = this . getTipType ( ) || ( this . isEnabled ( ) ? "success" : "warning" ) , d = "success" === c ? this . getTitle ( ) : this . getWarningTitle ( ) || this . getTitle ( ) ; BI . isKey ( d ) && BI . Tooltips . show ( a , this . getName ( ) , d , c , this , b ) } , _hideTooltip : function ( ) { var a = this , b = BI . Tooltips . get ( this . getName ( ) ) ; BI . isNotNull ( b ) && b . element . fadeOut ( 200 , function ( ) { BI . Tooltips . remove ( a . getName ( ) ) } ) } , _init : function ( ) { BI . Single . superclass . _init . apply ( this , arguments ) ; var a = this . options ; ( BI . isKey ( a . title ) || BI . isKey ( a . warningTitle ) || BI . isFunction ( a . title ) || BI . isFunction ( a . warningTitle ) ) && this . enableHover ( ) } , enableHover : function ( a ) { a || ( a = { } ) ; var b = this ; this . _hoverBinded || ( this . element . on ( "mouseenter.title" + this . getName ( ) , function ( c ) { b . _e = c , "warning" === b . getTipType ( ) || BI . isKey ( b . getWarningTitle ( ) ) && ! b . isEnabled ( ) ? b . timeout = BI . delay ( function ( ) { b . _showToolTip ( b . _e || c , a ) } , 200 ) : ( "success" === b . getTipType ( ) || b . isEnabled ( ) ) && ( b . timeout = BI . delay ( function ( ) { b . _showToolTip ( b . _e || c , a ) } , 500 ) ) } ) , this . element . on ( "mousemove.title" + this . getName ( ) , function ( a ) { b . _e = a , b . element . _ _isMouseInBounds _ _ ( a ) || ( BI . isNotNull ( b . timeout ) && clearTimeout ( b . timeout ) , b . _hideTooltip ( ) ) } ) , this . element . on ( "mouseleave.title" + this . getName ( ) , function ( ) { b . _e = null , BI . isNotNull ( b . timeout ) && clearTimeout ( b . timeout ) , b . _hideTooltip ( ) } ) , this . _hoverBinded = ! 0 ) } , disabledHover : function ( ) { BI . isNotNull ( this . timeout ) && clearTimeout ( this . timeout ) , this . _hideTooltip ( ) , $ ( this . element ) . unbind ( "mouseenter.title" + this . getName ( ) ) . unbind ( "mousemove.title" + this . getName ( ) ) . unbind ( "mouseleave.title" + this . getName ( ) ) , this . _hoverBinded = ! 1 } , populate : function ( a ) { this . items = a || [ ] } , setTitle : function ( a , b ) { this . options . title = a , BI . isKey ( a ) ? this . enableHover ( b ) : this . disabledHover ( ) } , setWarningTitle : function ( a , b ) { this . options . warningTitle = a , BI . isKey ( a ) ? this . enableHover ( b ) : this . disabledHover ( ) } , getTipType : function ( ) { return this . options . tipType } , isReadOnly : function ( ) { return ! ! this . options . readonly } , getTitle : function ( ) { var a = this . options . title ; return BI . isFunction ( a ) ? a ( ) : a } , getWarningTitle : function ( ) { var a = this . options . warningTitle ; return BI . isFunction ( a ) ? a ( ) : a } , setValue : function ( a ) { this . options . readonly || ( this . options . value = a ) } , getValue : function
! 0 ) : void ( f . half === ! 0 && b . _getHalfSelectedValues ( c , e ) ) } ) } var b = this , c = { } , d = this . nodes . getNodes ( ) ; return a ( d ) , c } , _initTree : function ( a , b ) { function c ( b ) { d . _stop !== ! 0 && ( d . nodes = $ . fn . zTree . init ( f . element , a , b ) ) } var d = this , e = this . options ; this . times = 1 ; var f = this . tree ; f . empty ( ) , d . tip . setVisible ( ! 1 ) , this . loading ( ) ; var g = BI . extend ( { } , e . paras , { type : BI . TreeView . REQ _TYPE _INIT _DATA , times : this . times } ) , h = function ( a ) { if ( d . _stop !== ! 0 && b == e . paras . keyword ) { var f = ! ! a . hasNext , g = a . items || [ ] ; e . paras . lastSearchValue = a . lastSearchValue , g . length > 0 && c ( d . _dealWidthNodes ( g ) ) , d . setTipVisible ( g . length <= 0 ) , d . loaded ( ) , f ? d . tip . setLoaded ( ) : d . tip . invisible ( ) , d . fireEvent ( BI . Events . AFTERINIT ) } } ; BI . delay ( function ( ) { e . itemsCreator ( g , h ) } , 100 ) } , getValue : function ( ) { var a = this . options , b = BI . PartTree . superclass . getValue . apply ( this , arguments ) ; return a . itemsCreator ( { type : BI . TreeView . REQ _TYPE _ADJUST _DATA , selectedValues : b } , function ( a ) { b = a } ) , b } , stroke : function ( a ) { var b = this . options ; delete b . paras . keyword , BI . extend ( b . paras , a ) , delete b . paras . lastSearchValue ; var c = this . _configSetting ( ) ; this . _initTree ( c , b . paras . keyword ) } } ) , BI . shortcut ( "bi.part_tree" , BI . PartTree ) , BI . Resizers = new BI . ResizeController , BI . Layers = new BI . LayerController , BI . Maskers = new BI . MaskersController , BI . Bubbles = new BI . BubblesController , BI . Tooltips = new BI . TooltipsController , BI . Popovers = new BI . PopoverController , BI . Broadcasts = new BI . BroadcastController , BI . StyleLoaders = new BI . StyleLoaderManager , BI . Canvas = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Canvas . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-canvas" } ) } , _init : function ( ) { BI . Canvas . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = document . createElement ( "canvas" ) ; document . createElement ( "canvas" ) . getContext || ( b = window . G _vmlCanvasManager . initElement ( b ) ) , this . element . append ( b ) , b . width = a . width , b . height = a . height , $ ( b ) . width ( "100%" ) , $ ( b ) . height ( "100%" ) , this . canvas = b , this . _queue = [ ] } , mounted : function ( ) { this . stroke ( ) } , _getContext : function ( ) { return this . ctx || ( this . ctx = this . canvas . getContext ( "2d" ) ) , this . ctx } , _attr : function ( a , b ) { var c = this ; if ( ! BI . isNull ( a ) ) return BI . isObject ( a ) ? void BI . each ( a , function ( a , b ) { c . _queue . push ( { k : a , v : b } ) } ) : void this . _queue . push ( { k : a , v : b } ) } , _line : function ( a , b ) { var c = this , d = [ ] . slice . call ( arguments , 2 ) ; BI . isOdd ( d . length ) && ( this . _attr ( BI . last ( d ) ) , d = BI . initial ( d ) ) , this . _attr ( "moveTo" , [ a , b ] ) ; var e = BI . filter ( d , function ( a ) { return a % 2 === 0 } ) , f = BI . filter ( d , function ( a ) { return a % 2 !== 0 } ) ; d = BI . zip ( e , f ) , BI . each ( d , function ( a , b ) { c . _attr ( "lineTo" , b ) } ) } , line : function ( a , b , c , d ) { this . _line . apply ( this , arguments ) , this . _attr ( "stroke" , [ ] ) } , rect : function ( a , b , c , d , e ) { this . _attr ( "fillStyle" , e ) , this . _attr ( "fillRect" , [ a , b , c , d ] ) } , circle : function ( a , b , c , d ) { this . _attr ( { fillStyle : d , beginPath : [ ] , arc : [ a , b , c , 0 , 2 * Math . PI , ! 0 ] , closePath : [ ] , fill : [ ] } ) } , hollow : function ( ) { this . _attr ( "beginPath" , [ ] ) , this . _line . apply ( this , arguments ) , this . _attr ( "closePath" , [ ] ) , this . _attr ( "stroke" , [ ] ) } , solid : function ( ) { this . hollow . apply ( this , arguments ) , this . _attr ( "fill" , [ ] ) } , gradient : function ( a , b , c , d , e , f ) { var g = this . _getContext ( ) . createLinearGradient ( a , b , c , d ) ; return g . addColorStop ( 0 , e ) , g . addColorStop ( 1 , f ) , g } , reset : function ( ) { this . _getContext ( ) . clearRect ( 0 , 0 , this . canvas . width , this . canvas . height ) } , stroke : function ( ) { var a = this . _getContext ( ) ; return ! ! a && ( BI . each ( this . _queue , function ( b , c ) { BI . isFunction ( a [ c . k ] ) ? a [ c . k ] . apply ( a , c . v ) : a [ c . k ] = c . v } ) , void ( this . _queue = [ ] ) ) } } ) , BI . shortcut ( "bi.canvas" , BI . Canvas ) , BI . CollectionView = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . CollectionView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-collection" , overflowX : ! 0 , overflowY : ! 0 , cellSizeAndPositionGetter : BI . emptyFn , horizontalOverscanSize : 0 , verticalOverscanSize : 0 , scrollLeft : 0 , scrollTop : 0 , items : [ ] } ) } , _init : function ( ) { BI . CollectionView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . renderedCells = [ ] , this . renderedKeys = [ ] , this . renderRange = { } , this . _scrollLock = ! 1 , this . _debounceRelease = BI . debounce ( function ( ) { a . _scrollLock = ! 1 } , 1e3 / 60 ) , this . container = BI . createWidget ( { type : "bi.absolute" } ) , this . element . scroll ( function ( ) { a . _scrollLock !== ! 0 && ( b . scro
} , hasPrev : function ( ) { var a = this . options ; return BI . isNumber ( a . count ) ? this . count < a . count : ! ! a . hasPrev . apply ( this , [ { times : this . times , count : this . count } ] ) } , hasNext : function ( ) { var a = this . options ; return BI . isNumber ( a . count ) ? this . count < a . count : ! ! a . hasNext . apply ( this , [ { times : this . times , count : this . count } ] ) } , prependItems : function ( a ) { this . count += a . length , this . next !== ! 1 && ( this . hasPrev ( ) ? ( this . options . items = this . options . items . concat ( a ) , this . prev . setLoaded ( ) ) : this . prev . setEnd ( ) ) , this . button _group . prependItems . apply ( this . button _group , arguments ) } , addItems : function ( a ) { this . count += a . length , BI . isObject ( this . next ) && ( this . hasNext ( ) ? ( this . options . items = this . options . items . concat ( a ) , this . next . setLoaded ( ) ) : this . next . setEnd ( ) ) , this . button _group . addItems . apply ( this . button _group , arguments ) } , populate : function ( a ) { var b = this , c = this . options ; return 0 === arguments . length && BI . isFunction ( c . itemsCreator ) ? void c . itemsCreator . apply ( this , [ { times : 1 } , function ( ) { if ( 0 === arguments . length ) throw new Error ( "arguments can not be null!!!" ) ; b . populate . apply ( b , arguments ) , c . onLoaded ( ) } ] ) : ( this . options . items = a , this . times = 1 , this . count = 0 , this . count += a . length , BI . isObject ( this . next ) && ( this . hasNext ( ) ? this . next . setLoaded ( ) : this . next . invisible ( ) ) , BI . isObject ( this . prev ) && ( this . hasPrev ( ) ? this . prev . setLoaded ( ) : this . prev . invisible ( ) ) , void this . button _group . populate . apply ( this . button _group , arguments ) ) } , setNotSelectedValue : function ( ) { this . button _group . setNotSelectedValue . apply ( this . button _group , arguments ) } , getNotSelectedValue : function ( ) { return this . button _group . getNotSelectedValue ( ) } , setValue : function ( ) { this . button _group . setValue . apply ( this . button _group , arguments ) } , getValue : function ( ) { return this . button _group . getValue . apply ( this . button _group , arguments ) } , getAllButtons : function ( ) { return this . button _group . getAllButtons ( ) } , getAllLeaves : function ( ) { return this . button _group . getAllLeaves ( ) } , getSelectedButtons : function ( ) { return this . button _group . getSelectedButtons ( ) } , getNotSelectedButtons : function ( ) { return this . button _group . getNotSelectedButtons ( ) } , getIndexByValue : function ( a ) { return this . button _group . getIndexByValue ( a ) } , getNodeById : function ( a ) { return this . button _group . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . button _group . getNodeByValue ( a ) } , empty : function ( ) { this . button _group . empty ( ) , BI . each ( [ this . prev , this . next ] , function ( a , b ) { b && b . setVisible ( ! 1 ) } ) } , destroy : function ( ) { BI . Loader . superclass . destroy . apply ( this , arguments ) } } ) , BI . Loader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.loader" , BI . Loader ) , BI . Navigation = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Navigation . superclass . _defaultConfig . apply ( this , arguments ) , { direction : "bottom" , logic : { dynamic : ! 1 } , single : ! 1 , showIndex : ! 1 , tab : ! 1 , cardCreator : function ( a ) { return BI . createWidget ( ) } , afterCardCreated : BI . emptyFn , afterCardShow : BI . emptyFn } ) } , render : function ( ) { var a = this , b = this . options ; this . tab = BI . createWidget ( this . options . tab , { type : "bi.button_group" } ) , this . cardMap = { } , this . showIndex = 0 , this . layout = BI . createWidget ( { type : "bi.card" } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , this . tab , this . layout ) } ) ) ) ) , new BI . ShowListener ( { eventObj : this . tab , cardLayout : this . layout , cardNameCreator : function ( b ) { return a . showIndex + b } , cardCreator : function ( c ) { var d = b . cardCreator ( c ) ; return a . cardMap [ c ] = d , d } , afterCardCreated : BI . bind ( this . afterCardCreated , this ) , afterCardShow : BI . bind ( this . afterCardShow , this ) } ) } , mounted : function ( ) { var a = this . options ; a . showIndex !== ! 1 && this . setSelect ( a . showIndex ) } , _deleteOtherCards : function ( a ) { var b = this , c = this . options ; c . single === ! 0 && BI . each ( this . cardMap , function ( c , d ) { c !== a + "" && ( b . layout . deleteCardByName ( c ) , delete b . cardMap [ c ] ) } ) } , afterCardCreated : function ( a ) { var b = this ; this . cardMap [ a ] . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . Navigation . EVENT _CHANGE , d ) } ) , this . options . afterCardCreated . apply ( this , arguments ) } , afterCardShow : function ( a ) { this . showIndex = a , this . _deleteOtherCards ( a ) ,
++ g ) c [ a . options . gutters [ g ] ] = f . offsetLeft + f . clientLeft + e , d [ a . options . gutters [ g ] ] = f . clientWidth ; return { fixedPos : y ( b ) , gutterTotalWidth : b . gutters . offsetWidth , gutterLeft : c , gutterWidth : d , wrapperWidth : b . wrapper . clientWidth } } function I ( a , b , c ) { function d ( b ) { var c = b . nextSibling ; return pf && yf && a . display . currentWheelTarget == b ? b . style . display = "none" : b . parentNode . removeChild ( b ) , c } for ( var e = a . display , f = a . options . lineNumbers , g = e . lineDiv , h = g . firstChild , i = e . view , j = e . viewFrom , k = 0 ; k < i . length ; k ++ ) { var l = i [ k ] ; if ( l . hidden ) ; else if ( l . node && l . node . parentNode == g ) { for ( ; h != l . node ; ) h = d ( h ) ; var m = f && null != b && b <= j && l . lineNumber ; l . changes && ( De ( l . changes , "gutter" ) > - 1 && ( m = ! 1 ) , J ( a , l , j , c ) ) , m && ( Ne ( l . lineNumber ) , l . lineNumber . appendChild ( document . createTextNode ( x ( a . options , j ) ) ) ) , h = l . node . nextSibling } else { var n = R ( a , l , j , c ) ; g . insertBefore ( n , h ) } j += l . size } for ( ; h ; ) h = d ( h ) } function J ( a , b , c , d ) { for ( var e = 0 ; e < b . changes . length ; e ++ ) { var f = b . changes [ e ] ; "text" == f ? N ( a , b ) : "gutter" == f ? P ( a , b , c , d ) : "class" == f ? O ( b ) : "widget" == f && Q ( a , b , d ) } b . changes = null } function K ( a ) { return a . node == a . text && ( a . node = Me ( "div" , null , null , "position: relative" ) , a . text . parentNode && a . text . parentNode . replaceChild ( a . node , a . text ) , a . node . appendChild ( a . text ) , nf && of < 8 && ( a . node . style . zIndex = 2 ) ) , a . node } function L ( a ) { var b = a . bgClass ? a . bgClass + " " + ( a . line . bgClass || "" ) : a . line . bgClass ; if ( b && ( b += " CodeMirror-linebackground" ) , a . background ) b ? a . background . className = b : ( a . background . parentNode . removeChild ( a . background ) , a . background = null ) ; else if ( b ) { var c = K ( a ) ; a . background = c . insertBefore ( Me ( "div" , null , b ) , c . firstChild ) } } function M ( a , b ) { var c = a . display . externalMeasured ; return c && c . line == b . line ? ( a . display . externalMeasured = null , b . measure = c . measure , c . built ) : Id ( a , b ) } function N ( a , b ) { var c = b . text . className , d = M ( a , b ) ; b . text == b . node && ( b . node = d . pre ) , b . text . parentNode . replaceChild ( d . pre , b . text ) , b . text = d . pre , d . bgClass != b . bgClass || d . textClass != b . textClass ? ( b . bgClass = d . bgClass , b . textClass = d . textClass , O ( b ) ) : c && ( b . text . className = c ) } function O ( a ) { L ( a ) , a . line . wrapClass ? K ( a ) . className = a . line . wrapClass : a . node != a . text && ( a . node . className = "" ) ; var b = a . textClass ? a . textClass + " " + ( a . line . textClass || "" ) : a . line . textClass ; a . text . className = b || "" } function P ( a , b , c , d ) { b . gutter && ( b . node . removeChild ( b . gutter ) , b . gutter = null ) ; var e = b . line . gutterMarkers ; if ( a . options . lineNumbers || e ) { var f = K ( b ) , g = b . gutter = Me ( "div" , null , "CodeMirror-gutter-wrapper" , "left: " + ( a . options . fixedGutter ? d . fixedPos : - d . gutterTotalWidth ) + "px; width: " + d . gutterTotalWidth + "px" ) ; if ( a . display . input . setUneditable ( g ) , f . insertBefore ( g , b . text ) , b . line . gutterClass && ( g . className += " " + b . line . gutterClass ) , ! a . options . lineNumbers || e && e [ "CodeMirror-linenumbers" ] || ( b . lineNumber = g . appendChild ( Me ( "div" , x ( a . options , c ) , "CodeMirror-linenumber CodeMirror-gutter-elt" , "left: " + d . gutterLeft [ "CodeMirror-linenumbers" ] + "px; width: " + a . display . lineNumInnerWidth + "px" ) ) ) , e ) for ( var h = 0 ; h < a . options . gutters . length ; ++ h ) { var i = a . options . gutters [ h ] , j = e . hasOwnProperty ( i ) && e [ i ] ; j && g . appendChild ( Me ( "div" , [ j ] , "CodeMirror-gutter-elt" , "left: " + d . gutterLeft [ i ] + "px; width: " + d . gutterWidth [ i ] + "px" ) ) } } } function Q ( a , b , c ) { b . alignable && ( b . alignable = null ) ; for ( var d , e = b . node . firstChild ; e ; e = d ) { var d = e . nextSibling ; "CodeMirror-linewidget" == e . className && b . node . removeChild ( e ) } S ( a , b , c ) } function R ( a , b , c , d ) { var e = M ( a , b ) ; return b . text = b . node = e . pre , e . bgClass && ( b . bgClass = e . bgClass ) , e . textClass && ( b . textClass = e . textClass ) , O ( b ) , P ( a , b , c , d ) , S ( a , b , d ) , b . node } function S ( a , b , c ) { if ( T ( a , b . line , b , c , ! 0 ) , b . rest ) for ( var d = 0 ; d < b . rest . length ; d ++ ) T ( a , b . rest [ d ] , b , c , ! 1 ) } function T ( a , b , c , d , e ) { if ( b . widgets ) for ( var f = K ( c ) , g = 0 , h = b . widgets ; g < h . length ; ++ g ) { var i = h [ g ] , j = Me ( "div" , [ i . node ] , "CodeMirror-linewidget" ) ; i . handleMouseEvents || j . setAttribute ( "cm-ignore-events" , "true" ) , U ( i , j , c , d ) , a . display . input . setUneditable ( j ) , e && i . above ? f . insertBefore ( j , c . gutter || c . text ) : f . appendChild ( j ) , te ( i , "redraw" ) } } function U ( a , b , c , d ) { if ( a . noHScroll ) { ( c . alignable || ( c . alignable = [ ] ) ) . push ( b ) ; var e = d . wrapperWidth ; b . style . left = d . fixedPos + "px" , a . coverGutter || ( e -= d . gutterTotalWidth , b . style . paddingLeft = d . gutterTotalWidth + "px" ) , b . style . width = e + "px" } a . coverGutter && ( b . style . zIndex = 5 , b . style . position = "relative" , a . noHS
cc ( a , b ) } ) , xg ( e . wrapper , "scroll" , function ( ) { e . wrapper . scrollTop = e . wrapper . scrollLeft = 0 } ) , e . dragFunctions = { simple : function ( b ) { ve ( a , b ) || wg ( b ) } , start : function ( b ) { _b ( a , b ) } , drop : Db ( a , $b ) } ; var h = e . input . getField ( ) ; xg ( h , "keyup" , function ( b ) { kc . call ( a , b ) } ) , xg ( h , "keydown" , Db ( a , ic ) ) , xg ( h , "keypress" , Db ( a , lc ) ) , xg ( h , "focus" , Ie ( nc , a ) ) , xg ( h , "blur" , Ie ( oc , a ) ) } function Qb ( b , c , d ) { var e = d && d != a . Init ; if ( ! c != ! e ) { var f = b . display . dragFunctions , g = c ? xg : yg ; g ( b . display . scroller , "dragstart" , f . start ) , g ( b . display . scroller , "dragenter" , f . simple ) , g ( b . display . scroller , "dragover" , f . simple ) , g ( b . display . scroller , "drop" , f . drop ) } } function Rb ( a ) { var b = a . display ; b . lastWrapHeight == b . wrapper . clientHeight && b . lastWrapWidth == b . wrapper . clientWidth || ( b . cachedCharWidth = b . cachedTextHeight = b . cachedPaddingH = null , b . scrollbarsClipped = ! 1 , a . setSize ( ) ) } function Sb ( a , b ) { for ( var c = re ( b ) ; c != a . wrapper ; c = c . parentNode ) if ( ! c || 1 == c . nodeType && "true" == c . getAttribute ( "cm-ignore-events" ) || c . parentNode == a . sizer && c != a . mover ) return ! 0 } function Tb ( a , b , c , d ) { var e = a . display ; if ( ! c && "true" == re ( b ) . getAttribute ( "cm-not-content" ) ) return null ; var f , g , h = e . lineSpace . getBoundingClientRect ( ) ; try { f = b . clientX - h . left , g = b . clientY - h . top } catch ( b ) { return null } var i , j = pb ( a , f , g ) ; if ( d && 1 == j . xRel && ( i = Vd ( a . doc , j . line ) . text ) . length == j . ch ) { var k = Gg ( i , i . length , a . options . tabSize ) - i . length ; j = Ff ( j . line , Math . max ( 0 , Math . round ( ( f - Sa ( a . display ) . left ) / sb ( a . display ) ) - k ) ) } return j } function Ub ( a ) { var b = this , c = b . display ; if ( ! ( c . activeTouch && c . input . supportsTouch ( ) || ve ( b , a ) ) ) { if ( c . shift = a . shiftKey , Sb ( c , a ) ) return void ( pf || ( c . scroller . draggable = ! 1 , setTimeout ( function ( ) { c . scroller . draggable = ! 0 } , 100 ) ) ) ; if ( ! Zb ( b , a ) ) { var d = Tb ( b , a ) ; switch ( window . focus ( ) , se ( a ) ) { case 1 : d ? Vb ( b , a , d ) : re ( a ) == c . scroller && ug ( a ) ; break ; case 2 : pf && ( b . state . lastMiddleDown = + new Date ) , d && va ( b . doc , d ) , setTimeout ( function ( ) { c . input . focus ( ) } , 20 ) , ug ( a ) ; break ; case 3 : Cf ? pc ( b , a ) : mc ( b ) } } } } function Vb ( a , b , c ) { nf ? setTimeout ( Ie ( Y , a ) , 0 ) : a . curOp . focus = Pe ( ) ; var d , e = + new Date ; Kf && Kf . time > e - 400 && 0 == Gf ( Kf . pos , c ) ? d = "triple" : Jf && Jf . time > e - 400 && 0 == Gf ( Jf . pos , c ) ? ( d = "double" , Kf = { time : e , pos : c } ) : ( d = "single" , Jf = { time : e , pos : c } ) ; var f , g = a . doc . sel , h = yf ? b . metaKey : b . ctrlKey ; a . options . dragDrop && Tg && ! Z ( a ) && "single" == d && ( f = g . contains ( c ) ) > - 1 && ( Gf ( ( f = g . ranges [ f ] ) . from ( ) , c ) < 0 || c . xRel > 0 ) && ( Gf ( f . to ( ) , c ) > 0 || c . xRel < 0 ) ? Wb ( a , b , c , h ) : Xb ( a , b , c , d , h ) } function Wb ( a , b , c , d ) { var e = a . display , f = + new Date , g = Db ( a , function ( h ) { pf && ( e . scroller . draggable = ! 1 ) , a . state . draggingText = ! 1 , yg ( document , "mouseup" , g ) , yg ( e . scroller , "drop" , g ) , Math . abs ( b . clientX - h . clientX ) + Math . abs ( b . clientY - h . clientY ) < 10 && ( ug ( h ) , ! d && + new Date - 200 < f && va ( a . doc , c ) , pf || nf && 9 == of ? setTimeout ( function ( ) { document . body . focus ( ) , e . input . focus ( ) } , 20 ) : e . input . focus ( ) ) } ) ; pf && ( e . scroller . draggable = ! 0 ) , a . state . draggingText = g , e . scroller . dragDrop && e . scroller . dragDrop ( ) , xg ( document , "mouseup" , g ) , xg ( e . scroller , "drop" , g ) } function Xb ( a , b , c , d , e ) { function f ( b ) { if ( 0 != Gf ( q , b ) ) if ( q = b , "rect" == d ) { for ( var e = [ ] , f = a . options . tabSize , g = Gg ( Vd ( j , c . line ) . text , c . ch , f ) , h = Gg ( Vd ( j , b . line ) . text , b . ch , f ) , i = Math . min ( g , h ) , n = Math . max ( g , h ) , o = Math . min ( c . line , b . line ) , p = Math . min ( a . lastLine ( ) , Math . max ( c . line , b . line ) ) ; o <= p ; o ++ ) { var r = Vd ( j , o ) . text , s = Ae ( r , i , f ) ; i == n ? e . push ( new ma ( Ff ( o , s ) , Ff ( o , s ) ) ) : r . length > s && e . push ( new ma ( Ff ( o , s ) , Ff ( o , Ae ( r , n , f ) ) ) ) } e . length || e . push ( new ma ( c , c ) ) , Ba ( j , na ( m . ranges . slice ( 0 , l ) . concat ( e ) , l ) , { origin : "*mouse" , scroll : ! 1 } ) , a . scrollIntoView ( b ) } else { var t = k , u = t . anchor , v = b ; if ( "single" != d ) { if ( "double" == d ) var w = a . findWordAt ( b ) ; else var w = new ma ( Ff ( b . line , 0 ) , qa ( j , Ff ( b . line + 1 , 0 ) ) ) ; Gf ( w . anchor , u ) > 0 ? ( v = w . head , u = X ( t . from ( ) , w . anchor ) ) : ( v = w . anchor , u = W ( t . to ( ) , w . head ) ) } var e = m . ranges . slice ( 0 ) ; e [ l ] = new ma ( qa ( j , u ) , v ) , Ba ( j , na ( e , l ) , Eg ) } } function g ( b ) { var c = ++ s , e = Tb ( a , b , ! 0 , "rect" == d ) ; if ( e ) if ( 0 != Gf ( e , q ) ) { a . curOp . focus = Pe ( ) , f ( e ) ; var h = u ( i , j ) ; ( e . line >= h . to || e . line < h . from ) && setTimeout ( Db ( a , function ( ) { s == c && g ( b ) } ) , 150 ) } else { var k = b . clientY < r . top ? - 20 : b . clientY > r . bottom ? 20 : 0 ; k && setTimeout ( Db ( a , function ( ) { s == c && ( i . scroller . scrollTop += k , g ( b ) ) } ) , 50 ) } } function h ( a ) { s = 1 / 0 , ug ( a ) , i . input . focus ( ) , yg ( document , "mousemove" , t ) , yg ( document , "mouseup" , v ) , j . history . lastSelOrigin = null } var i = a . display , j = a . doc ; ug ( b ) ; var k , l , m = j . sel , n = m . ran
d } function Jd ( a ) { var b = Me ( "span" , "•" , "cm-invalidchar" ) ; return b . title = "\\u" + a . charCodeAt ( 0 ) . toString ( 16 ) , b . setAttribute ( "aria-label" , b . title ) , b } function Kd ( a , b , c , d , e , f , g ) { if ( b ) { var h = a . splitSpaces ? b . replace ( / {3,}/g , Ld ) : b , i = a . cm . state . specialChars , j = ! 1 ; if ( i . test ( b ) ) for ( var k = document . createDocumentFragment ( ) , l = 0 ; ; ) { i . lastIndex = l ; var m = i . exec ( b ) , n = m ? m . index - l : b . length - l ; if ( n ) { var o = document . createTextNode ( h . slice ( l , l + n ) ) ; nf && of < 9 ? k . appendChild ( Me ( "span" , [ o ] ) ) : k . appendChild ( o ) , a . map . push ( a . pos , a . pos + n , o ) , a . col += n , a . pos += n } if ( ! m ) break ; if ( l += n + 1 , "\t" == m [ 0 ] ) { var p = a . cm . options . tabSize , q = p - a . col % p , o = k . appendChild ( Me ( "span" , Be ( q ) , "cm-tab" ) ) ; o . setAttribute ( "role" , "presentation" ) , o . setAttribute ( "cm-text" , "\t" ) , a . col += q } else { var o = a . cm . options . specialCharPlaceholder ( m [ 0 ] ) ; o . setAttribute ( "cm-text" , m [ 0 ] ) , nf && of < 9 ? k . appendChild ( Me ( "span" , [ o ] ) ) : k . appendChild ( o ) , a . col += 1 } a . map . push ( a . pos , a . pos + 1 , o ) , a . pos ++ } else { a . col += b . length ; var k = document . createTextNode ( h ) ; a . map . push ( a . pos , a . pos + b . length , k ) , nf && of < 9 && ( j = ! 0 ) , a . pos += b . length } if ( c || d || e || j || g ) { var r = c || "" ; d && ( r += d ) , e && ( r += e ) ; var s = Me ( "span" , [ k ] , r , g ) ; return f && ( s . title = f ) , a . content . appendChild ( s ) } a . content . appendChild ( k ) } } function Ld ( a ) { for ( var b = " " , c = 0 ; c < a . length - 2 ; ++ c ) b += c % 2 ? " " : " " ; return b += " " } function Md ( a , b ) { return function ( c , d , e , f , g , h , i ) { e = e ? e + " cm-force-border" : "cm-force-border" ; for ( var j = c . pos , k = j + d . length ; ; ) { for ( var l = 0 ; l < b . length ; l ++ ) { var m = b [ l ] ; if ( m . to > j && m . from <= j ) break } if ( m . to >= k ) return a ( c , d , e , f , g , h , i ) ; a ( c , d . slice ( 0 , m . to - j ) , e , f , null , h , i ) , f = null , d = d . slice ( m . to - j ) , j = m . to } } } function Nd ( a , b , c , d ) { var e = ! d && c . widgetNode ; e && a . map . push ( a . pos , a . pos + b , e ) , ! d && a . cm . display . input . needsContentAttribute && ( e || ( e = a . content . appendChild ( document . createElement ( "span" ) ) ) , e . setAttribute ( "cm-marker" , c . id ) ) , e && ( a . cm . display . input . setUneditable ( e ) , a . content . appendChild ( e ) ) , a . pos += b } function Od ( a , b , c ) { var d = a . markedSpans , e = a . text , f = 0 ; if ( d ) for ( var g , h , i , j , k , l , m , n = e . length , o = 0 , p = 1 , q = "" , r = 0 ; ; ) { if ( r == o ) { i = j = k = l = h = "" , m = null , r = 1 / 0 ; for ( var s = [ ] , t = 0 ; t < d . length ; ++ t ) { var u = d [ t ] , v = u . marker ; "bookmark" == v . type && u . from == o && v . widgetNode ? s . push ( v ) : u . from <= o && ( null == u . to || u . to > o || v . collapsed && u . to == o && u . from == o ) ? ( null != u . to && u . to != o && r > u . to && ( r = u . to , j = "" ) , v . className && ( i += " " + v . className ) , v . css && ( h = v . css ) , v . startStyle && u . from == o && ( k += " " + v . startStyle ) , v . endStyle && u . to == r && ( j += " " + v . endStyle ) , v . title && ! l && ( l = v . title ) , v . collapsed && ( ! m || jd ( m . marker , v ) < 0 ) && ( m = u ) ) : u . from > o && r > u . from && ( r = u . from ) } if ( m && ( m . from || 0 ) == o ) { if ( Nd ( b , ( null == m . to ? n + 1 : m . to ) - o , m . marker , null == m . from ) , null == m . to ) return ; m . to == o && ( m = ! 1 ) } if ( ! m && s . length ) for ( var t = 0 ; t < s . length ; ++ t ) Nd ( b , 0 , s [ t ] ) } if ( o >= n ) break ; for ( var w = Math . min ( n , r ) ; ; ) { if ( q ) { var x = o + q . length ; if ( ! m ) { var y = x > w ? q . slice ( 0 , w - o ) : q ; b . addToken ( b , y , g ? g + i : i , k , o + y . length == r ? j : "" , l , h ) } if ( x >= w ) { q = q . slice ( w - o ) , o = w ; break } o = x , k = "" } q = e . slice ( f , f = c [ p ++ ] ) , g = Hd ( c [ p ++ ] , b . cm . options ) } } else for ( var p = 1 ; p < c . length ; p += 2 ) b . addToken ( b , e . slice ( f , f = c [ p ] ) , Hd ( c [ p + 1 ] , b . cm . options ) ) } function Pd ( a , b ) { return 0 == b . from . ch && 0 == b . to . ch && "" == Ce ( b . text ) && ( ! a . cm || a . cm . options . wholeLineUpdateBefore ) } function Qd ( a , b , c , d ) { function e ( a ) { return c ? c [ a ] : null } function f ( a , c , e ) { xd ( a , c , e , d ) , te ( a , "change" , a , b ) } function g ( a , b ) { for ( var c = a , f = [ ] ; c < b ; ++ c ) f . push ( new ng ( j [ c ] , e ( c ) , d ) ) ; return f } var h = b . from , i = b . to , j = b . text , k = Vd ( a , h . line ) , l = Vd ( a , i . line ) , m = Ce ( j ) , n = e ( j . length - 1 ) , o = i . line - h . line ; if ( b . full ) a . insert ( 0 , g ( 0 , j . length ) ) , a . remove ( j . length , a . size - j . length ) ; else if ( Pd ( a , b ) ) { var p = g ( 0 , j . length - 1 ) ; f ( l , l . text , n ) , o && a . remove ( h . line , o ) , p . length && a . insert ( h . line , p ) } else if ( k == l ) if ( 1 == j . length ) f ( k , k . text . slice ( 0 , h . ch ) + m + k . text . slice ( i . ch ) , n ) ; else { var p = g ( 1 , j . length - 1 ) ; p . push ( new ng ( m + k . text . slice ( i . ch ) , n , d ) ) , f ( k , k . text . slice ( 0 , h . ch ) + j [ 0 ] , e ( 0 ) ) , a . insert ( h . line + 1 , p ) } else if ( 1 == j . length ) f ( k , k . text . slice ( 0 , h . ch ) + j [ 0 ] + l . text . slice ( i . ch ) , e ( 0 ) ) , a . remove ( h . line + 1 , o ) ; else { f ( k , k . text . slice ( 0 , h . ch ) + j [ 0 ] , e ( 0 ) ) , f ( l , m + l . text . slice ( i . ch ) , n ) ; var p = g ( 1 , j . length - 1 ) ; o > 1 && a . remove ( h . line + 1 , o - 1 ) , a . insert ( h . line + 1 , p ) } te ( a , "change" , a , b ) } function Rd ( a ) { this . lines = a , this . parent = null ; for ( var b = 0 , c = 0 ; b < a . length ; ++ b ) a [ b ] . parent = this , c += a [ b ] . height ; this . height = c } function Sd
b = c [ 2 * g + 2 ] ; break } d = g + 1 } } var h = b ? b . indexOf ( "cm-overlay " ) : - 1 ; return h < 0 ? b : 0 == h ? null : b . slice ( 0 , h - 1 ) } , getModeAt : function ( b ) { var c = this . doc . mode ; return c . innerMode ? a . innerMode ( c , this . getTokenAt ( b ) . state ) . mode : c } , getHelper : function ( a , b ) { return this . getHelpers ( a , b ) [ 0 ] } , getHelpers : function ( a , b ) { var c = [ ] ; if ( ! ag . hasOwnProperty ( b ) ) return c ; var d = ag [ b ] , e = this . getModeAt ( a ) ; if ( "string" == typeof e [ b ] ) d [ e [ b ] ] && c . push ( d [ e [ b ] ] ) ; else if ( e [ b ] ) for ( var f = 0 ; f < e [ b ] . length ; f ++ ) { var g = d [ e [ b ] [ f ] ] ; g && c . push ( g ) } else e . helperType && d [ e . helperType ] ? c . push ( d [ e . helperType ] ) : d [ e . name ] && c . push ( d [ e . name ] ) ; for ( var f = 0 ; f < d . _global . length ; f ++ ) { var h = d . _global [ f ] ; h . pred ( e , this ) && De ( c , h . val ) == - 1 && c . push ( h . val ) } return c } , getStateAfter : function ( a , b ) { var c = this . doc ; return a = pa ( c , null == a ? c . first + c . size - 1 : a ) , Pa ( this , a + 1 , b ) } , cursorCoords : function ( a , b ) { var c , d = this . doc . sel . primary ( ) ; return c = null == a ? d . head : "object" == typeof a ? qa ( this . doc , a ) : a ? d . from ( ) : d . to ( ) , mb ( this , c , b || "page" ) } , charCoords : function ( a , b ) { return lb ( this , qa ( this . doc , a ) , b || "page" ) } , coordsChar : function ( a , b ) { return a = kb ( this , a , b || "page" ) , pb ( this , a . left , a . top ) } , lineAtHeight : function ( a , b ) { return a = kb ( this , { top : a , left : 0 } , b || "page" ) . top , $d ( this . doc , a + this . display . viewOffset ) } , heightAtLine : function ( a , b ) { var c , d = ! 1 ; if ( "number" == typeof a ) { var e = this . doc . first + this . doc . size - 1 ; a < this . doc . first ? a = this . doc . first : a > e && ( a = e , d = ! 0 ) , c = Vd ( this . doc , a ) } else c = a ; return jb ( this , c , { top : 0 , left : 0 } , b || "page" ) . top + ( d ? this . doc . height - _d ( c ) : 0 ) } , defaultTextHeight : function ( ) { return rb ( this . display ) } , defaultCharWidth : function ( ) { return sb ( this . display ) } , setGutterMarker : Eb ( function ( a , b , c ) { return Lc ( this . doc , a , "gutter" , function ( a ) { var d = a . gutterMarkers || ( a . gutterMarkers = { } ) ; return d [ b ] = c , ! c && Ke ( d ) && ( a . gutterMarkers = null ) , ! 0 } ) } ) , clearGutter : Eb ( function ( a ) { var b = this , c = b . doc , d = c . first ; c . iter ( function ( c ) { c . gutterMarkers && c . gutterMarkers [ a ] && ( c . gutterMarkers [ a ] = null , Jb ( b , d , "gutter" ) , Ke ( c . gutterMarkers ) && ( c . gutterMarkers = null ) ) , ++ d } ) } ) , lineInfo : function ( a ) { if ( "number" == typeof a ) { if ( ! sa ( this . doc , a ) ) return null ; var b = a ; if ( a = Vd ( this . doc , a ) , ! a ) return null } else { var b = Zd ( a ) ; if ( null == b ) return null } return { line : b , handle : a , text : a . text , gutterMarkers : a . gutterMarkers , textClass : a . textClass , bgClass : a . bgClass , wrapClass : a . wrapClass , widgets : a . widgets } } , getViewport : function ( ) { return { from : this . display . viewFrom , to : this . display . viewTo } } , addWidget : function ( a , b , c , d , e ) { var f = this . display ; a = mb ( this , qa ( this . doc , a ) ) ; var g = a . bottom , h = a . left ; if ( b . style . position = "absolute" , b . setAttribute ( "cm-ignore-events" , "true" ) , this . display . input . setUneditable ( b ) , f . sizer . appendChild ( b ) , "over" == d ) g = a . top ; else if ( "above" == d || "near" == d ) { var i = Math . max ( f . wrapper . clientHeight , this . doc . height ) , j = Math . max ( f . sizer . clientWidth , f . lineSpace . clientWidth ) ; ( "above" == d || a . bottom + b . offsetHeight > i ) && a . top > b . offsetHeight ? g = a . top - b . offsetHeight : a . bottom + b . offsetHeight <= i && ( g = a . bottom ) , h + b . offsetWidth > j && ( h = j - b . offsetWidth ) } b . style . top = g + "px" , b . style . left = b . style . right = "" , "right" == e ? ( h = f . sizer . clientWidth - b . offsetWidth , b . style . right = "0px" ) : ( "left" == e ? h = 0 : "middle" == e && ( h = ( f . sizer . clientWidth - b . offsetWidth ) / 2 ) , b . style . left = h + "px" ) , c && Fc ( this , h , g , h + b . offsetWidth , g + b . offsetHeight ) } , triggerOnKeyDown : Eb ( ic ) , triggerOnKeyPress : Eb ( lc ) , triggerOnKeyUp : kc , execCommand : function ( a ) { if ( dg . hasOwnProperty ( a ) ) return dg [ a ] ( this ) } , triggerElectric : Eb ( function ( a ) { aa ( this , a ) } ) , findPosH : function ( a , b , c , d ) { var e = 1 ; b < 0 && ( e = - 1 , b = - b ) ; for ( var f = 0 , g = qa ( this . doc , a ) ; f < b && ( g = Nc ( this . doc , g , e , c , d ) , ! g . hitSide ) ; ++ f ) ; return g } , moveH : Eb ( function ( a , b ) { var c = this ; c . extendSelectionsBy ( function ( d ) { return c . display . shift || c . doc . extend || d . empty ( ) ? Nc ( c . doc , d . head , a , b , c . options . rtlMoveVisually ) : a < 0 ? d . from ( ) : d . to ( ) } , Fg ) } ) , deleteH : Eb ( function ( a , b ) { var c = this . doc . sel , d = this . doc ; c . somethingSelected ( ) ? d . replaceSelection ( "" , null , "+delete" ) : Mc ( this , function ( c ) { var e = Nc ( d , c . head , a , b , ! 1 ) ; return a < 0 ? { from : e , to : c . head } : { from : c . head , to : e } } ) } ) , findPosV : function ( a , b , c , d ) { var e = 1 , f = d ; b < 0 && ( e = - 1 , b = - b ) ; for ( var g = 0 , h = qa ( this . doc , a ) ; g < b ; ++ g ) { var i = mb ( this , h , "div" ) ; if ( null == f ? f = i . left : i . left = f , h = Oc ( this , i , e , c ) , h . hitSide ) break } return h } , moveV : Eb ( function ( a , b ) { var c = this , d = this .
} ) } ) , addLineWidget : Fb ( function ( a , b , c ) { return wd ( this , a , b , c ) } ) , removeLineWidget : function ( a ) { a . clear ( ) } , markText : function ( a , b , c ) { return Sc ( this , qa ( this , a ) , qa ( this , b ) , c , "range" ) } , setBookmark : function ( a , b ) { var c = { replacedWith : b && ( null == b . nodeType ? b . widget : b ) , insertLeft : b && b . insertLeft , clearWhenEmpty : ! 1 , shared : b && b . shared , handleMouseEvents : b && b . handleMouseEvents } ; return a = qa ( this , a ) , Sc ( this , a , a , c , "bookmark" ) } , findMarksAt : function ( a ) { a = qa ( this , a ) ; var b = [ ] , c = Vd ( this , a . line ) . markedSpans ; if ( c ) for ( var d = 0 ; d < c . length ; ++ d ) { var e = c [ d ] ; ( null == e . from || e . from <= a . ch ) && ( null == e . to || e . to >= a . ch ) && b . push ( e . marker . parent || e . marker ) } return b } , findMarks : function ( a , b , c ) { a = qa ( this , a ) , b = qa ( this , b ) ; var d = [ ] , e = a . line ; return this . iter ( a . line , b . line + 1 , function ( f ) { var g = f . markedSpans ; if ( g ) for ( var h = 0 ; h < g . length ; h ++ ) { var i = g [ h ] ; e == a . line && a . ch > i . to || null == i . from && e != a . line || e == b . line && i . from > b . ch || c && ! c ( i . marker ) || d . push ( i . marker . parent || i . marker ) } ++ e } ) , d } , getAllMarks : function ( ) { var a = [ ] ; return this . iter ( function ( b ) { var c = b . markedSpans ; if ( c ) for ( var d = 0 ; d < c . length ; ++ d ) null != c [ d ] . from && a . push ( c [ d ] . marker ) } ) , a } , posFromIndex : function ( a ) { var b , c = this . first ; return this . iter ( function ( d ) { var e = d . text . length + 1 ; return e > a ? ( b = a , ! 0 ) : ( a -= e , void ++ c ) } ) , qa ( this , Ff ( c , b ) ) } , indexFromPos : function ( a ) { a = qa ( this , a ) ; var b = a . ch ; return a . line < this . first || a . ch < 0 ? 0 : ( this . iter ( this . first , a . line , function ( a ) { b += a . text . length + 1 } ) , b ) } , copy : function ( a ) { var b = new rg ( Xd ( this , this . first , this . first + this . size ) , this . modeOption , this . first ) ; return b . scrollTop = this . scrollTop , b . scrollLeft = this . scrollLeft , b . sel = this . sel , b . extend = ! 1 , a && ( b . history . undoDepth = this . history . undoDepth , b . setHistory ( this . getHistory ( ) ) ) , b } , linkedDoc : function ( a ) { a || ( a = { } ) ; var b = this . first , c = this . first + this . size ; null != a . from && a . from > b && ( b = a . from ) , null != a . to && a . to < c && ( c = a . to ) ; var d = new rg ( Xd ( this , b , c ) , a . mode || this . modeOption , b ) ; return a . sharedHist && ( d . history = this . history ) , ( this . linked || ( this . linked = [ ] ) ) . push ( { doc : d , sharedHist : a . sharedHist } ) , d . linked = [ { doc : this , isParent : ! 0 , sharedHist : a . sharedHist } ] , Vc ( d , Uc ( this ) ) , d } , unlinkDoc : function ( b ) { if ( b instanceof a && ( b = b . doc ) , this . linked ) for ( var c = 0 ; c < this . linked . length ; ++ c ) { var d = this . linked [ c ] ; if ( d . doc == b ) { this . linked . splice ( c , 1 ) , b . unlinkDoc ( this ) , Wc ( Uc ( this ) ) ; break } } if ( b . history == this . history ) { var e = [ b . id ] ; Td ( b , function ( a ) { e . push ( a . id ) } , ! 0 ) , b . history = new be ( null ) , b . history . done = me ( this . history . done , e ) , b . history . undone = me ( this . history . undone , e ) } } , iterLinkedDocs : function ( a ) { Td ( this , a ) } , getMode : function ( ) { return this . mode } , getEditor : function ( ) { return this . cm } } ) , rg . prototype . eachLine = rg . prototype . iter ; var sg = "iter insert remove copy getEditor constructor" . split ( " " ) ; for ( var tg in rg . prototype ) rg . prototype . hasOwnProperty ( tg ) && De ( sg , tg ) < 0 && ( a . prototype [ tg ] = function ( a ) { return function ( ) { return a . apply ( this . doc , arguments ) } } ( rg . prototype [ tg ] ) ) ; ye ( rg ) ; var ug = a . e _preventDefault = function ( a ) { a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 } , vg = a . e _stopPropagation = function ( a ) { a . stopPropagation ? a . stopPropagation ( ) : a . cancelBubble = ! 0 } , wg = a . e _stop = function ( a ) { ug ( a ) , vg ( a ) } , xg = a . on = function ( a , b , c ) { if ( a . addEventListener ) a . addEventListener ( b , c , ! 1 ) ; else if ( a . attachEvent ) a . attachEvent ( "on" + b , c ) ; else { var d = a . _handlers || ( a . _handlers = { } ) , e = d [ b ] || ( d [ b ] = [ ] ) ; e . push ( c ) } } , yg = a . off = function ( a , b , c ) { if ( a . removeEventListener ) a . removeEventListener ( b , c , ! 1 ) ; else if ( a . detachEvent ) a . detachEvent ( "on" + b , c ) ; else { var d = a . _handlers && a . _handlers [ b ] ; if ( ! d ) return ; for ( var e = 0 ; e < d . length ; ++ e ) if ( d [ e ] == c ) { d . splice ( e , 1 ) ; break } } } , zg = a . signal = function ( a , b ) { var c = a . _handlers && a . _handlers [ b ] ; if ( c ) for ( var d = Array . prototype . slice . call ( arguments , 2 ) , e = 0 ; e < c . length ; ++ e ) c [ e ] . apply ( null , d ) } , Ag = null , Bg = 30 , Cg = a . Pass = { toString : function ( ) { return "CodeMirror.Pass" } } , Dg = { scroll : ! 1 } , Eg = { origin : "*mouse" } , Fg = { origin : "+move" } ; ze . prototype . set = function ( a , b ) { clearTimeout ( this . id ) , this . id = setTimeout ( b , a ) } ; var Gg = a . countColumn = function ( a , b , c , d , e ) { null == b && ( b = a . search ( /[^\s\u00a0]/ ) , b == - 1 && ( b = a . length ) ) ; for ( var f = d || 0 , g = e || 0 ; ; ) { var h = a . indexOf ( "\t" , f ) ; if ( h < 0 || h >= b ) return g + ( b - f ) ; g += h - f , g += c - g % c , f = h + 1 } } , Hg = [ "" ] , Ig = function ( a ) { a . select ( ) } ; wf ? Ig = function ( a ) { a . s
b . width = 450 , b . height = 220 ; break ; case this . _constant . SIZE . BIG : b . width = 900 , b . height = 500 ; break ; default : b . width = 550 , b . height = 500 } return { width : a . width || b . width , height : a . height || b . height } } , hide : function ( ) { } , open : function ( ) { this . show ( ) , this . fireEvent ( BI . Popover . EVENT _OPEN , arguments ) } , close : function ( ) { this . hide ( ) , this . fireEvent ( BI . Popover . EVENT _CLOSE , arguments ) } , setZindex : function ( a ) { this . element . css ( { "z-index" : a } ) } , destroyed : function ( ) { } } ) , BI . shortcut ( "bi.popover" , BI . Popover ) , BI . BarPopover = BI . inherit ( BI . Popover , { _defaultConfig : function ( ) { return BI . extend ( BI . BarPopover . superclass . _defaultConfig . apply ( this , arguments ) , { btns : [ BI . i18nText ( BI . i18nText ( "BI-Basic_Sure" ) ) , BI . i18nText ( BI . i18nText ( "BI-Basic_Cancel" ) ) ] } ) } , beforeCreate : function ( ) { var a = this , b = this . options ; b . footer || ( b . footer = { type : "bi.right_vertical_adapt" , lgap : 10 , items : [ { type : "bi.button" , text : this . options . btns [ 1 ] , value : 1 , level : "ignore" , handler : function ( b ) { a . fireEvent ( BI . Popover . EVENT _CANCEL , b ) , a . close ( b ) } } , { type : "bi.button" , text : this . options . btns [ 0 ] , warningTitle : b . warningTitle , value : 0 , handler : function ( b ) { a . fireEvent ( BI . Popover . EVENT _CONFIRM , b ) , a . close ( b ) } } ] } ) } } ) , BI . shortcut ( "bi.bar_popover" , BI . BarPopover ) , BI . Popover . EVENT _CLOSE = "EVENT_CLOSE" , BI . Popover . EVENT _OPEN = "EVENT_OPEN" , BI . Popover . EVENT _CANCEL = "EVENT_CANCEL" , BI . Popover . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . PopupView = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . PopupView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-popup-view" , maxWidth : "auto" , minWidth : 100 , minHeight : 25 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , vgap : 0 , hgap : 0 , direction : BI . Direction . Top , stopEvent : ! 1 , stopPropagation : ! 1 , logic : { dynamic : ! 0 } , tool : ! 1 , tabs : [ ] , buttons : [ ] , el : { type : "bi.button_group" , items : [ ] , chooseType : 0 , behaviors : { } , layouts : [ { type : "bi.vertical" } ] } } ) } , _init : function ( ) { BI . PopupView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = function ( a ) { a . stopPropagation ( ) } , d = function ( a ) { return a . stopEvent ( ) , ! 1 } ; this . element . css ( { "z-index" : BI . zIndex _popup , "min-width" : b . minWidth + "px" , "max-width" : b . maxWidth + "px" } ) . bind ( { click : c } ) , this . element . bind ( "mousewheel" , c ) , b . stopPropagation && this . element . bind ( { mousedown : c , mouseup : c , mouseover : c } ) , b . stopEvent && this . element . bind ( { mousedown : d , mouseup : d , mouseover : d } ) , this . tool = this . _createTool ( ) , this . tab = this . _createTab ( ) , this . view = this . _createView ( ) , this . toolbar = this . _createToolBar ( ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . PopupView . EVENT _CHANGE ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { } , b . logic , { scrolly : ! 1 , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , vgap : b . vgap , hgap : b . hgap , items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , BI . extend ( { cls : "list-view-outer bi-card bi-border" } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , this . tool , this . tab , this . view , this . toolbar ) } ) ) ) ) } ) ) ) ) } , _createView : function ( ) { var a = this . options ; return this . button _group = BI . createWidget ( a . el , { type : "bi.button_group" , value : a . value } ) , this . button _group . element . css ( { "min-height" : a . minHeight + "px" } ) , this . button _group } , _createTool : function ( ) { var a = this . options ; if ( ! 1 !== a . tool ) return BI . createWidget ( a . tool ) } , _createTab : function ( ) { var a = this . options ; if ( 0 !== a . tabs . length ) return BI . createWidget ( { type : "bi.center" , cls : "list-view-tab" , height : 25 , items : a . tabs , value : a . value } ) } , _createToolBar : function ( ) { var a = this . options ; if ( 0 !== a . buttons . length ) return BI . createWidget ( { type : "bi.center" , cls : "list-view-toolbar bi-high-light bi-border-top" , height : 30 , items : BI . createItems ( a . buttons , { once : ! 1 , shadow : ! 0 , isShadowShowingOnSelected : ! 0 } ) } ) } , getView : function ( ) { return this . button _group } , populate : function ( a ) { this . button _group . populate . apply ( this . button _group , arguments ) } , resetWidth : function ( a ) { this . options . width = a , this . element . width ( a ) } , resetHeight : function ( a ) { var b = this . toolbar ? this . toolbar . attr ( "height" ) || 30 : 0 , c = this . tab
_const : { commonWidth : 25 } , _defaultConfig : function ( ) { var a = BI . IconTextItem . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-item" , direction : BI . Direction . Left , logic : { dynamic : ! 1 } , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextItem . 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 ( BI . LogicFactory . createLogicTypeByDirection ( a . direction ) , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( a . direction , 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 . IconTextItem . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextItem . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } } ) , BI . IconTextItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_text_item" , BI . IconTextItem ) , BI . TextIconItem = BI . inherit ( BI . BasicButton , { _const : { commonWidth : 25 } , _defaultConfig : function ( ) { var a = BI . TextIconItem . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-icon-item" , logic : { dynamic : ! 1 } , cls : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . TextIconItem . 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 . text , this . icon ) } ) ) ) ) } , doClick : function ( ) { BI . TextIconItem . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . TextIconItem . EVENT _CHANGE , this . getValue ( ) , this ) } , 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 ( ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } } ) , BI . TextIconItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_icon_item" , BI . TextIconItem ) , BI . TextItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . TextItem . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-item" , textAlign : "left" , whiteSpace : "nowrap" , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . TextItem . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . text = BI . createWidget ( { type : "bi.label" , element : this , textAlign : a . textAlign , whiteSpace : a . whiteSpace , textHeight : "nowrap" == a . whiteSpace ? a . height : a . textHei
handler . file . type . indexOf ( "image" ) != - 1 && ( b . attach _type = "image" ) , b . filename = BI . cjkDecode ( handler . file . fileName ) , 1 == handler . maxlength ? handler . attach _array [ 0 ] = b : handler . attach _array . push ( b ) } catch ( c ) { isFunction ( handler . onerror ) && handler . onerror ( rpe , event || window . event ) } isFunction ( handler . onload ) && handler . onload ( rpe , { responseText : a } ) } , target = [ "AjaxUpload" , ( new Date ) . getTime ( ) , String ( Math . random ( ) ) . substring ( 2 ) ] . join ( "_" ) ; try { var form = document . createElement ( '<form enctype="multipart/form-data"></form>' ) , iframe = handler . iframe || ( handler . iframe = document . createElement ( '<iframe id="' + target + '" name="' + target + '" src="' + url + '"></iframe>' ) ) } catch ( e ) { var form = document . createElement ( "form" ) , iframe = handler . iframe || ( handler . iframe = document . createElement ( "iframe" ) ) ; form . setAttribute ( "enctype" , "multipart/form-data" ) , iframe . setAttribute ( "name" , iframe . id = target ) , iframe . setAttribute ( "src" , url ) } with ( iframe . style . position = "absolute" , iframe . style . left = iframe . style . top = "-10000px" , iframe . onload = onload , iframe . onerror = function ( a ) { isFunction ( handler . onerror ) && handler . onerror ( rpe , a || window . event ) } , iframe . onreadystatechange = function ( ) { /loaded|complete/i . test ( iframe . readyState ) ? onload ( ) : isFunction ( handler . onloadprogress ) && ( rpe . loaded < rpe . total && ++ rpe . loaded , handler . onloadprogress ( rpe , { readyState : { loading : 2 , interactive : 3 , loaded : 4 , complete : 4 } [ iframe . readyState ] || 1 } ) ) } , form . setAttribute ( "action" , handler . url ) , form . setAttribute ( "target" , iframe . id ) , form . setAttribute ( "method" , "post" ) , form . appendChild ( handler . file ) , form . style . display = "none" , isFunction ( handler . onloadstart ) && handler . onloadstart ( rpe , { } ) , document . body || document . documentElement ) appendChild ( iframe ) , appendChild ( form ) , form . submit ( ) ; return handler } , xhr = null , sendFile } ( Object . prototype . toString ) , sendFiles = function ( a , b , c , d ) { var e = a . files . length , f = a . onload , g = a . onloadstart ; for ( a . current = 0 , a . total = 0 , a . sent = 0 ; a . current < e ; ) a . total += a . files [ a . current ] . fileSize || a . files [ a . current ] . size , a . current ++ ; return a . current = 0 , e && a . files [ 0 ] . fileSize !== - 1 ? ( a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = function ( h , i ) { a . onloadstart = null , a . sent += a . files [ a . current ] . fileSize || a . files [ a . current ] . size , ++ a . current < e ? ( a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = arguments . callee ) : f && ( a . onloadstart = g , a . onload = f , a . onload ( h , i ) ) } ) : e && ( a . total = 100 * e , a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = function ( h , i ) { var j = arguments . callee ; a . onloadstart = null , a . sent += 100 , ++ a . current < e ? ( /\b(chrome|safari)\b/i . test ( navigator . userAgent ) && ( a . iframe . parentNode . removeChild ( a . iframe ) , a . iframe = null ) , setTimeout ( function ( ) { a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = j } , 15 ) ) : f && setTimeout ( function ( ) { a . iframe . parentNode . removeChild ( a . iframe ) , a . iframe = null , a . onloadstart = g , a . onload = f , a . onload ( h , i ) } , 15 ) } ) , a } ; BI . File = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . File . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-file display-block" , element : "<input type='file'>" , name : "" , url : "" , multiple : ! 0 , accept : "" , maxSize : - 1 } ) } , _init : function ( ) { var a = this . options ; BI . File . superclass . _init . apply ( this , arguments ) , a . multiple === ! 0 && this . element . attr ( "multiple" , "multiple" ) , this . element . attr ( "name" , a . name || this . getName ( ) ) } , mounted : function ( ) { var a = this , b = this . options , c = this . wrap = this . _wrap ( this . element [ 0 ] , b . maxSize ) ; c . onloadstart = function ( b , c ) { a . fireEvent ( BI . File . EVENT _UPLOADSTART , arguments ) } , c . onprogress = function ( b , c ) { this . file . fileSize !== - 1 && b . simulation , a . fireEvent ( BI . File . EVENT _PROGRESS , { file : this . file , total : b . total , loaded : b . loaded , simulation : b . simulation } ) } , c . onerror = function ( ) { a . fireEvent ( BI . File . EVENT _ERROR ) } , c . onload = function ( b , c ) { var d = this ; setTimeout ( function ( ) { d . clean ( ) , d . hide ( ) , a . fireEvent ( BI . File . EVENT _UPLOADED ) } , 1e3 ) } , c . url = b . url , c . fileType = b . accept , c . attach _array = [ ] , c . attach _names = [ ] , c . attachNum = 0 } , _events : function ( a ) { var b = this ; return event . add ( a . dom . input , "change" , function ( ) { event . del ( a . dom . input , "change" , arguments . callee ) ; for ( var c = a . dom . input . cloneNode ( ! 0 ) , d = 0 , e = F ( a . dom . input ) ; d < e . length ; d ++ ) { var f = e . item ( d ) , g = f . value || f . name , h = f . fileName || ( f . fileName = g . split ( "\\" ) . pop ( ) ) , i = - 1 !== h . indexO
support : b ( "ODBCdotTable doubleQuote binaryNumber hexNumber" ) , functions : BI . makeObject ( BI . FormulaCollections , ! 0 ) } ) } ( ) } ) , BI . SQLEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return $ . extend ( BI . CodeEditor . superclass . _defaultConfig . apply ( ) , { baseCls : "bi-sql-editor" , value : "" , lineHeight : 2 , showHint : ! 0 , supportFunction : ! 1 , supportParam : ! 1 } ) } , _init : function ( ) { BI . CodeEditor . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this ; this . editor = CodeMirror ( this . element [ 0 ] , { mode : "text/x-sql" , textWrapping : ! 0 , lineWrapping : ! 0 , lineNumbers : ! 1 } ) , 1 === a . lineHeight ? this . element . addClass ( "codemirror-low-line-height" ) : this . element . addClass ( "codemirror-high-line-height" ) , this . editor . on ( "change" , function ( c , d ) { b . _checkWaterMark ( ) , a . showHint && CodeMirror . showHint ( c , CodeMirror . sqlHint , { completeSingle : ! 1 , supportFunction : a . supportFunction } ) , BI . nextTick ( function ( ) { b . fireEvent ( BI . FormulaEditor . EVENT _CHANGE ) } ) } ) , this . editor . on ( "focus" , function ( ) { b . _checkWaterMark ( ) , b . fireEvent ( BI . FormulaEditor . EVENT _FOCUS ) } ) , this . editor . on ( "blur" , function ( ) { b . fireEvent ( BI . FormulaEditor . EVENT _BLUR ) } ) , this . watermark = BI . createWidget ( { type : "bi.label" , text : BI . i18nText ( "Please_Enter_SQL" ) , cls : "bi-water-mark" , whiteSpace : "nowrap" , textAlign : "left" } ) , this . watermark . element . bind ( "mousedown" , function ( a ) { b . insertString ( "" ) , b . editor . focus ( ) , a . stopEvent ( ) } ) , this . watermark . element . bind ( "click" , function ( a ) { b . editor . focus ( ) , a . stopEvent ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . watermark , top : 0 , left : 5 } ] } ) , BI . isKey ( a . value ) && BI . nextTick ( function ( ) { b . setValue ( a . value ) } ) } , insertString : function ( a ) { this . editor . replaceSelection ( a ) , this . editor . focus ( ) } , insertParam : function ( a ) { var b = a , c = this . editor . getCursor ( ) ; this . editor . replaceSelection ( a ) ; var d = this . editor . getCursor ( ) , e = { className : "param" , atomic : ! 0 } ; e . value = b , this . editor . markText ( c , d , e ) , this . editor . replaceSelection ( " " ) , this . editor . focus ( ) } , _checkWaterMark : function ( ) { var a = this . options ; ! this . disabledWaterMark && BI . isEmptyString ( this . editor . getValue ( ) ) && BI . isKey ( a . watermark ) ? this . watermark && this . watermark . visible ( ) : this . watermark && this . watermark . invisible ( ) } , _analyzeContent : function ( a ) { var b = /\$[\{][^\}]*[\}]|[^\$\{]*[^\$\{]/g ; return a . match ( b ) } , getValue : function ( ) { return this . editor . getValue ( "\n" , function ( a ) { var b = a . text , c = a . text , d = 0 ; return c . text = b , _ . forEach ( _ . sortBy ( a . markedSpans , "from" ) , function ( a , b ) { switch ( a . marker . className ) { case "param" : case "error-param" : var e = a . to - a . from ; c = c . substr ( 0 , a . from + d ) + "${" + a . marker . value + "}" + c . substr ( a . to + d , c . length ) , d += 3 , d += a . marker . value . length - e } } ) , c } ) } , setValue : function ( a ) { var b , c = this , d = this . options ; this . refresh ( ) , c . editor . setValue ( "" ) , b = this . _analyzeContent ( a || "" ) , BI . each ( b , function ( a , b ) { var e = /\$[\{][^\}]*[\}]/ , f = b . match ( e ) ; BI . isNotEmptyArray ( f ) && d . supportParam ? c . insertParam ( f [ 0 ] . substring ( 2 , b . length - 1 ) ) : c . insertString ( b ) } ) , this . _checkWaterMark ( ) } , refresh : function ( ) { var a = this ; BI . nextTick ( function ( ) { a . editor . refresh ( ) } ) } } ) , BI . shortcut ( "bi.sql_editor" , BI . SQLEditor ) , function ( a , b ) { "function" == typeof define && define . amd ? define ( "eve" , function ( ) { return b ( ) } ) : "object" == typeof exports ? module . exports = b ( ) : a . eve = b ( ) } ( this , function ( ) { var a , b , c = "0.4.2" , d = "hasOwnProperty" , e = /[\.\/]/ , f = "*" , g = function ( ) { } , h = function ( a , b ) { return a - b } , i = { n : { } } , j = function ( c , d ) { c = String ( c ) ; var e , f = b , g = Array . prototype . slice . call ( arguments , 2 ) , i = j . listeners ( c ) , k = 0 , l = [ ] , m = { } , n = [ ] , o = a ; a = c , b = 0 ; for ( var p = 0 , q = i . length ; p < q ; p ++ ) "zIndex" in i [ p ] && ( l . push ( i [ p ] . zIndex ) , i [ p ] . zIndex < 0 && ( m [ i [ p ] . zIndex ] = i [ p ] ) ) ; for ( l . sort ( h ) ; l [ k ] < 0 ; ) if ( e = m [ l [ k ++ ] ] , n . push ( e . apply ( d , g ) ) , b ) return b = f , n ; for ( p = 0 ; p < q ; p ++ ) if ( e = i [ p ] , "zIndex" in e ) if ( e . zIndex == l [ k ] ) { if ( n . push ( e . apply ( d , g ) ) , b ) break ; do if ( k ++ , e = m [ l [ k ] ] , e && n . push ( e . apply ( d , g ) ) , b ) break ; while ( e ) } else m [ e . zIndex ] = e ; else if ( n . push ( e . apply ( d , g ) ) , b ) break ; return b = f , a = o , n . length ? n : null } ; return j . _events = i , j . listeners = function ( a ) { var b , c , d , g , h , j , k , l , m = a . split ( e ) , n = i , o = [ n ] , p = [ ] ; for ( g = 0 , h = m . length ; g < h ; g ++ ) { for ( l = [ ] , j = 0 , k = o . length ; j < k ; j ++ ) for ( n = o [ j ] . n , c = [ n [ m [ g ] ] , n [ f ] ] , d = 2 ; d -- ; ) b = c [ d ] , b && ( l . push ( b ) , p = p . concat ( b . f || [ ] ) ) ; o = l } return p } , j . on = function ( a , b ) { if ( a = String ( a ) , "function" != typeof b ) return function
d [ o ] && ( m = d [ o ] [ 0 ] ) , "C" != m && ( k [ o ] = m , o && ( n = k [ o - 1 ] ) ) , d [ o ] = h ( d [ o ] , f , n ) , "A" != k [ o ] && "C" == m && ( k [ o ] = "C" ) , i ( d , o ) , e && ( e [ o ] && ( m = e [ o ] [ 0 ] ) , "C" != m && ( l [ o ] = m , o && ( n = l [ o - 1 ] ) ) , e [ o ] = h ( e [ o ] , g , n ) , "A" != l [ o ] && "C" == m && ( l [ o ] = "C" ) , i ( e , o ) ) , j ( d , e , f , g , o ) , j ( e , d , g , f , o ) ; var q = d [ o ] , r = e && e [ o ] , s = q . length , t = e && r . length ; f . x = q [ s - 2 ] , f . y = q [ s - 1 ] , f . bx = $ ( q [ s - 4 ] ) || f . x , f . by = $ ( q [ s - 3 ] ) || f . y , g . bx = e && ( $ ( r [ t - 4 ] ) || g . x ) , g . by = e && ( $ ( r [ t - 3 ] ) || g . y ) , g . x = e && r [ t - 2 ] , g . y = e && r [ t - 1 ] } return e || ( c . curve = Aa ( d ) ) , e ? [ d , e ] : d } , null , Aa ) , Ja = ( b . _parseDots = e ( function ( a ) { for ( var c = [ ] , d = 0 , e = a . length ; d < e ; d ++ ) { var f = { } , g = a [ d ] . match ( /^([^:]*):?([\d\.]*)/ ) ; if ( f . color = b . getRGB ( g [ 1 ] ) , f . color . error ) return null ; f . opacity = f . color . opacity , f . color = f . color . hex , g [ 2 ] && ( f . offset = g [ 2 ] + "%" ) , c . push ( f ) } for ( d = 1 , e = c . length - 1 ; d < e ; d ++ ) if ( ! c [ d ] . offset ) { for ( var h = $ ( c [ d - 1 ] . offset || 0 ) , i = 0 , j = d + 1 ; j < e ; j ++ ) if ( c [ j ] . offset ) { i = c [ j ] . offset ; break } i || ( i = 100 , j = e ) , i = $ ( i ) ; for ( var k = ( i - h ) / ( j - d + 1 ) ; d < j ; d ++ ) h += k , c [ d ] . offset = h + "%" } return c } ) , b . _tear = function ( a , b ) { a == b . top && ( b . top = a . prev ) , a == b . bottom && ( b . bottom = a . next ) , a . next && ( a . next . prev = a . prev ) , a . prev && ( a . prev . next = a . next ) } ) , Ka = ( b . _tofront = function ( a , b ) { b . top !== a && ( Ja ( a , b ) , a . next = null , a . prev = b . top , b . top . next = a , b . top = a ) } , b . _toback = function ( a , b ) { b . bottom !== a && ( Ja ( a , b ) , a . next = b . bottom , a . prev = null , b . bottom . prev = a , b . bottom = a ) } , b . _insertafter = function ( a , b , c ) { Ja ( a , c ) , b == c . top && ( c . top = a ) , b . next && ( b . next . prev = a ) , a . next = b . next , a . prev = b , b . next = a } , b . _insertbefore = function ( a , b , c ) { Ja ( a , c ) , b == c . bottom && ( c . bottom = a ) , b . prev && ( b . prev . next = a ) , a . prev = b . prev , b . prev = a , a . next = b } , b . toMatrix = function ( a , b ) { var c = za ( a ) , d = { _ : { transform : F } , getBBox : function ( ) { return c } } ; return La ( d , b ) , d . matrix } ) , La = ( b . transformPath = function ( a , b ) { return pa ( a , Ka ( a , b ) ) } , b . _extractTransform = function ( a , c ) { if ( null == c ) return a . _ . transform ; c = H ( c ) . replace ( /\.{3}|\u2026/g , a . _ . transform || F ) ; var d = b . parseTransformString ( c ) , e = 0 , f = 0 , g = 0 , h = 1 , i = 1 , j = a . _ , k = new n ; if ( j . transform = d || [ ] , d ) for ( var l = 0 , m = d . length ; l < m ; l ++ ) { var o , p , q , r , s , t = d [ l ] , u = t . length , v = H ( t [ 0 ] ) . toLowerCase ( ) , w = t [ 0 ] != v , x = w ? k . invert ( ) : 0 ; "t" == v && 3 == u ? w ? ( o = x . x ( 0 , 0 ) , p = x . y ( 0 , 0 ) , q = x . x ( t [ 1 ] , t [ 2 ] ) , r = x . y ( t [ 1 ] , t [ 2 ] ) , k . translate ( q - o , r - p ) ) : k . translate ( t [ 1 ] , t [ 2 ] ) : "r" == v ? 2 == u ? ( s = s || a . getBBox ( 1 ) , k . rotate ( t [ 1 ] , s . x + s . width / 2 , s . y + s . height / 2 ) , e += t [ 1 ] ) : 4 == u && ( w ? ( q = x . x ( t [ 2 ] , t [ 3 ] ) , r = x . y ( t [ 2 ] , t [ 3 ] ) , k . rotate ( t [ 1 ] , q , r ) ) : k . rotate ( t [ 1 ] , t [ 2 ] , t [ 3 ] ) , e += t [ 1 ] ) : "s" == v ? 2 == u || 3 == u ? ( s = s || a . getBBox ( 1 ) , k . scale ( t [ 1 ] , t [ u - 1 ] , s . x + s . width / 2 , s . y + s . height / 2 ) , h *= t [ 1 ] , i *= t [ u - 1 ] ) : 5 == u && ( w ? ( q = x . x ( t [ 3 ] , t [ 4 ] ) , r = x . y ( t [ 3 ] , t [ 4 ] ) , k . scale ( t [ 1 ] , t [ 2 ] , q , r ) ) : k . scale ( t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] ) , h *= t [ 1 ] , i *= t [ 2 ] ) : "m" == v && 7 == u && k . add ( t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] , t [ 6 ] ) , j . dirtyT = 1 , a . matrix = k } a . matrix = k , j . sx = h , j . sy = i , j . deg = e , j . dx = f = k . e , j . dy = g = k . f , 1 == h && 1 == i && ! e && j . bbox ? ( j . bbox . x += + f , j . bbox . y += + g ) : j . dirtyT = 1 } ) , Ma = function ( a ) { var b = a [ 0 ] ; switch ( b . toLowerCase ( ) ) { case "t" : return [ b , 0 , 0 ] ; case "m" : return [ b , 1 , 0 , 0 , 1 , 0 , 0 ] ; case "r" : return 4 == a . length ? [ b , 0 , a [ 2 ] , a [ 3 ] ] : [ b , 0 ] ; case "s" : return 5 == a . length ? [ b , 1 , 1 , a [ 3 ] , a [ 4 ] ] : 3 == a . length ? [ b , 1 , 1 ] : [ b , 1 ] } } , Na = b . _equaliseTransform = function ( a , c ) { c = H ( c ) . replace ( /\.{3}|\u2026/g , a ) , a = b . parseTransformString ( a ) || [ ] , c = b . parseTransformString ( c ) || [ ] ; for ( var d , e , f , g , h = N ( a . length , c . length ) , i = [ ] , j = [ ] , k = 0 ; k < h ; k ++ ) { if ( f = a [ k ] || Ma ( c [ k ] ) , g = c [ k ] || Ma ( f ) , f [ 0 ] != g [ 0 ] || "r" == f [ 0 ] . toLowerCase ( ) && ( f [ 2 ] != g [ 2 ] || f [ 3 ] != g [ 3 ] ) || "s" == f [ 0 ] . toLowerCase ( ) && ( f [ 3 ] != g [ 3 ] || f [ 4 ] != g [ 4 ] ) ) return ; for ( i [ k ] = [ ] , j [ k ] = [ ] , d = 0 , e = N ( f . length , g . length ) ; d < e ; d ++ ) d in f && ( i [ k ] [ d ] = f [ d ] ) , d in g && ( j [ k ] [ d ] = g [ d ] ) } return { from : i , to : j } } ; b . _getContainer = function ( a , c , d , e ) { var f ; if ( f = null != e || b . is ( a , "object" ) ? a : z . doc . getElementById ( a ) , null != f ) return f . tagName ? null == c ? { container : f , width : f . style . pixelWidth || f . offsetWidth , height : f . style . pixelHeight || f . offsetHeight } : { container : f , width : c , height : d } : { container : 1 , x : a , y : c , width : d , height : e } } , b . pathToRelative = Ba , b . _engine = { } , b . path2curve = Ia , b . matrix = function ( a , b , c , d , e , f ) { return new n ( a , b , c , d , e , f ) } , function ( a ) { function c ( a ) { return a [ 0 ] * a [ 0 ] + a [ 1 ] * a [ 1 ] } function d ( a ) { var b = M . sqrt ( c ( a ) ) ; a [ 0 ] && ( a [ 0 ] /= b ) , a [ 1 ] && ( a [ 1 ] /= b ) } a . add = function ( a , b , c , d , e , f ) { var g , h , i , j , k = [ [ ] , [ ] , [ ] ] , l = [ [ this . a , this . c , this . e ] , [ this . b , this . d , this . f ] , [ 0 , 0 , 1 ] ] , m = [ [ a , c , e ] , [ b , d , f ] , [ 0 , 0 , 1 ] ] ; for ( a && a instanceof n && ( m
if ( 4 == A . length ) { d . clip && d . clip . parentNode . parentNode . removeChild ( d . clip . parentNode ) ; var B = q ( "clipPath" ) , C = q ( "rect" ) ; B . id = a . createUUID ( ) , q ( C , { x : A [ 0 ] , y : A [ 1 ] , width : A [ 2 ] , height : A [ 3 ] } ) , B . appendChild ( C ) , d . paper . defs . appendChild ( B ) , q ( i , { "clip-path" : "url(#" + B . id + ")" } ) , d . clip = C } if ( ! p ) { var D = i . getAttribute ( "clip-path" ) ; if ( D ) { var E = a . _g . doc . getElementById ( D . replace ( /(^url\(#|\)$)/g , l ) ) ; E && E . parentNode . removeChild ( E ) , q ( i , { "clip-path" : l } ) , delete d . clip } } break ; case "path" : "path" == d . type && ( q ( i , { d : p ? k . path = a . _pathToAbsolute ( p ) : "M0,0" } ) , d . _ . dirty = 1 , d . _ . arrows && ( "startString" in d . _ . arrows && t ( d , d . _ . arrows . startString ) , "endString" in d . _ . arrows && t ( d , d . _ . arrows . endString , 1 ) ) ) ; break ; case "width" : if ( i . setAttribute ( o , p ) , d . _ . dirty = 1 , ! k . fx ) break ; o = "x" , p = k . x ; case "x" : k . fx && ( p = - k . x - ( k . width || 0 ) ) ; case "rx" : if ( "rx" == o && "rect" == d . type ) break ; case "cx" : i . setAttribute ( o , p ) , d . pattern && s ( d ) , d . _ . dirty = 1 ; break ; case "height" : if ( i . setAttribute ( o , p ) , d . _ . dirty = 1 , ! k . fy ) break ; o = "y" , p = k . y ; case "y" : k . fy && ( p = - k . y - ( k . height || 0 ) ) ; case "ry" : if ( "ry" == o && "rect" == d . type ) break ; case "cy" : i . setAttribute ( o , p ) , d . pattern && s ( d ) , d . _ . dirty = 1 ; break ; case "r" : "rect" == d . type ? q ( i , { rx : p , ry : p } ) : i . setAttribute ( o , p ) , d . _ . dirty = 1 ; break ; case "src" : "image" == d . type && i . setAttributeNS ( n , "href" , p ) ; break ; case "stroke-width" : 1 == d . _ . sx && 1 == d . _ . sy || ( p /= g ( h ( d . _ . sx ) , h ( d . _ . sy ) ) || 1 ) , i . setAttribute ( o , p ) , k [ "stroke-dasharray" ] && v ( d , k [ "stroke-dasharray" ] , f ) , d . _ . arrows && ( "startString" in d . _ . arrows && t ( d , d . _ . arrows . startString ) , "endString" in d . _ . arrows && t ( d , d . _ . arrows . endString , 1 ) ) ; break ; case "stroke-dasharray" : v ( d , p , f ) ; break ; case "fill" : var F = c ( p ) . match ( a . _ISURL ) ; if ( F ) { B = q ( "pattern" ) ; var G = q ( "image" ) ; B . id = a . createUUID ( ) , q ( B , { x : 0 , y : 0 , patternUnits : "userSpaceOnUse" , height : 1 , width : 1 } ) , q ( G , { x : 0 , y : 0 , "xlink:href" : F [ 1 ] } ) , B . appendChild ( G ) , function ( b ) { a . _preload ( F [ 1 ] , function ( ) { var a = this . offsetWidth , c = this . offsetHeight ; q ( b , { width : a , height : c } ) , q ( G , { width : a , height : c } ) } ) } ( B ) , d . paper . defs . appendChild ( B ) , q ( i , { fill : "url(#" + B . id + ")" } ) , d . pattern = B , d . pattern && s ( d ) ; break } var H = a . getRGB ( p ) ; if ( H . error ) { if ( ( "circle" == d . type || "ellipse" == d . type || "r" != c ( p ) . charAt ( ) ) && r ( d , p ) ) { if ( "opacity" in k || "fill-opacity" in k ) { var I = a . _g . doc . getElementById ( i . getAttribute ( "fill" ) . replace ( /^url\(#|\)$/g , l ) ) ; if ( I ) { var J = I . getElementsByTagName ( "stop" ) ; q ( J [ J . length - 1 ] , { "stop-opacity" : ( "opacity" in k ? k . opacity : 1 ) * ( "fill-opacity" in k ? k [ "fill-opacity" ] : 1 ) } ) } } k . gradient = p , k . fill = "none" ; break } } else delete f . gradient , delete k . gradient , ! a . is ( k . opacity , "undefined" ) && a . is ( f . opacity , "undefined" ) && q ( i , { opacity : k . opacity } ) , ! a . is ( k [ "fill-opacity" ] , "undefined" ) && a . is ( f [ "fill-opacity" ] , "undefined" ) && q ( i , { "fill-opacity" : k [ "fill-opacity" ] } ) ; H [ b ] ( "opacity" ) && q ( i , { "fill-opacity" : H . opacity > 1 ? H . opacity / 100 : H . opacity } ) ; case "stroke" : H = a . getRGB ( p ) , i . setAttribute ( o , H . hex ) , "stroke" == o && H [ b ] ( "opacity" ) && q ( i , { "stroke-opacity" : H . opacity > 1 ? H . opacity / 100 : H . opacity } ) , "stroke" == o && d . _ . arrows && ( "startString" in d . _ . arrows && t ( d , d . _ . arrows . startString ) , "endString" in d . _ . arrows && t ( d , d . _ . arrows . endString , 1 ) ) ; break ; case "gradient" : ( "circle" == d . type || "ellipse" == d . type || "r" != c ( p ) . charAt ( ) ) && r ( d , p ) ; break ; case "opacity" : k . gradient && ! k [ b ] ( "stroke-opacity" ) && q ( i , { "stroke-opacity" : p > 1 ? p / 100 : p } ) ; case "fill-opacity" : if ( k . gradient ) { I = a . _g . doc . getElementById ( i . getAttribute ( "fill" ) . replace ( /^url\(#|\)$/g , l ) ) , I && ( J = I . getElementsByTagName ( "stop" ) , q ( J [ J . length - 1 ] , { "stop-opacity" : p } ) ) ; break } default : "font-size" == o && ( p = e ( p , 10 ) + "px" ) ; var K = o . replace ( /(\-.)/g , function ( a ) { return a . substring ( 1 ) . toUpperCase ( ) } ) ; i . style [ K ] = p , d . _ . dirty = 1 , i . setAttribute ( o , p ) } } y ( d , f ) , i . style . visibility = m } , x = 1.2 , y = function ( d , f ) { if ( "text" == d . type && ( f [ b ] ( "text" ) || f [ b ] ( "font" ) || f [ b ] ( "font-size" ) || f [ b ] ( "x" ) || f [ b ] ( "y" ) ) ) { var g = d . attrs , h = d . node , i = h . firstChild ? e ( a . _g . doc . defaultView . getComputedStyle ( h . firstChild , l ) . getPropertyValue ( "font-size" ) , 10 ) : 10 ; if ( f [ b ] ( "text" ) ) { for ( g . text = f . text ; h . firstChild ; ) h . removeChild ( h . firstChild ) ; for ( var j , k = c ( f . text ) . split ( "\n" ) , m = [ ] , n = 0 , o = k . length ; n < o ; n ++ ) j = q ( "tspan" ) , n && q ( j , { dy : i * x , x : g . x } ) , j . appendChild ( a . _g . doc . createTextNode ( k [ n ] ) ) , h . appendChild ( j ) , m [ n ] = j } else for ( m = h . getElementsByTagName ( "tspan" ) , n = 0 , o = m . length ; n < o ; n ++ ) n ? q ( m [ n ]
return this . paper . setFinish . apply ( this . paper , arguments ) } , setSize : function ( ) { return this . paper . setSize . apply ( this . paper , arguments ) } , setViewBox : function ( ) { return this . paper . setViewBox . apply ( this . paper , arguments ) } , getById : function ( ) { return this . paper . getById . apply ( this . paper , arguments ) } , getElementByPoint : function ( ) { return this . paper . getElementByPoint . apply ( this . paper , arguments ) } , getElementsByPoint : function ( ) { return this . paper . getElementsByPoint . apply ( this . paper , arguments ) } , getFont : function ( ) { return this . paper . getFont . apply ( this . paper , arguments ) } , set : function ( ) { return this . paper . set . apply ( this . paper , arguments ) } , remove : function ( ) { return this . paper . remove . apply ( this . paper , arguments ) } , clear : function ( ) { return this . paper . clear . apply ( this . paper , arguments ) } } ) , BI . shortcut ( "bi.svg" , BI . Svg ) , BI . NativeTableScrollbar = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . NativeTableScrollbar . superclass . _defaultConfig . apply ( this , arguments ) , { attributes : { tabIndex : 0 } , contentSize : 0 , defaultPosition : 0 , position : 0 , size : 0 } ) } , render : function ( ) { var a = this ; this . options ; this . element . width ( 36 ) ; var b = BI . throttle ( function ( ) { a . fireEvent ( BI . NativeTableScrollbar . EVENT _SCROLL , a . element . scrollTop ( ) ) } , 150 , { leading : ! 1 } ) ; return this . element . scroll ( function ( ) { b ( ) } ) , { type : "bi.default" , scrolly : ! 0 , items : [ { type : "bi.layout" , width : 1 , ref : function ( b ) { a . inner = b } } ] } } , mounted : function ( ) { this . _populate ( ) } , _populate : function ( ) { var a = this . options ; if ( a . size < 1 || a . contentSize <= a . size ) return void this . setVisible ( ! 1 ) ; this . setVisible ( ! 0 ) ; try { this . element . scrollTop ( a . position ) } catch ( b ) { } this . inner . element . height ( a . contentSize ) } , setContentSize : function ( a ) { this . options . contentSize = a } , setPosition : function ( a ) { this . options . position = a } , setSize : function ( a ) { this . setHeight ( a ) , this . options . size = a } , populate : function ( ) { this . _populate ( ) } } ) , BI . NativeTableScrollbar . EVENT _SCROLL = "EVENT_SCROLL" , BI . shortcut ( "bi.native_table_scrollbar" , BI . NativeTableScrollbar ) , BI . NativeTableHorizontalScrollbar = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . NativeTableHorizontalScrollbar . superclass . _defaultConfig . apply ( this , arguments ) , { attributes : { tabIndex : 0 } , contentSize : 0 , position : 0 , size : 0 } ) } , render : function ( ) { var a = this ; this . options ; this . element . height ( 36 ) ; var b = BI . throttle ( function ( ) { a . fireEvent ( BI . NativeTableScrollbar . EVENT _SCROLL , a . element . scrollLeft ( ) ) } , 150 , { leading : ! 1 } ) ; return this . element . scroll ( function ( ) { b ( ) } ) , { type : "bi.default" , scrollx : ! 0 , items : [ { type : "bi.layout" , height : 1 , ref : function ( b ) { a . inner = b } } ] } } , setContentSize : function ( a ) { this . options . contentSize = a } , setPosition : function ( a ) { this . options . position = a } , setSize : function ( a ) { this . setWidth ( a ) , this . options . size = a } , _populate : function ( ) { var a = this . options ; if ( a . size < 1 || a . contentSize <= a . size ) return void this . setVisible ( ! 1 ) ; this . setVisible ( ! 0 ) ; try { this . element . scrollLeft ( a . position ) } catch ( b ) { } this . inner . element . width ( a . contentSize ) } , populate : function ( ) { this . _populate ( ) } } ) , BI . NativeTableHorizontalScrollbar . EVENT _SCROLL = "EVENT_SCROLL" , BI . shortcut ( "bi.native_table_horizontal_scrollbar" , BI . NativeTableHorizontalScrollbar ) , BI . TableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . TableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-table-cell" , textAlign : "left" , text : "" } ) } , _init : function ( ) { BI . TableCell . superclass . _init . apply ( this , arguments ) , BI . createWidget ( { type : "bi.label" , element : this , whiteSpace : "nowrap" , textAlign : this . options . textAlign , height : this . options . height , text : this . options . text , value : this . options . value , lgap : 5 } ) } } ) , BI . shortcut ( "bi.table_cell" , BI . TableCell ) , BI . CollectionTableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . CollectionTableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-collection-table-cell bi-border-right bi-border-bottom" , width : 0 , height : 0 , _left : 0 , _top : 0 , cell : { } } ) } , _init : function ( ) { BI . CollectionTableCell . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . cell = BI . createWidget ( BI . extend ( { type : "bi.label" } , a . cell , { cls : ( a . cell . cls || "" ) + " collection-table-cell-wrapper" , width : a . width - ( 0 === a . _left ? 1 : 0 ) - 1 , height : a . height - ( 0 === a . _top
this . _bottomLeftWheelHandler = new BI . WheelHandler ( BI . bind ( this . _onWheelLeft , this ) , BI . bind ( this . _shouldHandleLeftX , this ) , BI . bind ( this . _shouldHandleY , this ) ) , this . _bottomRightWheelHandler = new BI . WheelHandler ( BI . bind ( this . _onWheelRight , this ) , BI . bind ( this . _shouldHandleRightX , this ) , BI . bind ( this . _shouldHandleY , this ) ) , this . topLeftGrid . element . mousewheel ( function ( b ) { a . _topLeftWheelHandler . onWheel ( b . originalEvent ) } ) , this . topRightGrid . element . mousewheel ( function ( b ) { a . _topRightWheelHandler . onWheel ( b . originalEvent ) } ) , this . bottomLeftGrid . element . mousewheel ( function ( b ) { a . _bottomLeftWheelHandler . onWheel ( b . originalEvent ) } ) , this . bottomRightGrid . element . mousewheel ( function ( b ) { a . _bottomRightWheelHandler . onWheel ( b . originalEvent ) } ) } , _shouldHandleLeftX : function ( a ) { return a > 0 ? this . bottomLeftGrid . getScrollLeft ( ) < this . bottomLeftGrid . getMaxScrollLeft ( ) : this . bottomLeftGrid . getScrollLeft ( ) > 0 } , _shouldHandleRightX : function ( a ) { return a > 0 ? this . bottomRightGrid . getScrollLeft ( ) < this . bottomRightGrid . getMaxScrollLeft ( ) : this . bottomRightGrid . getScrollLeft ( ) > 0 } , _shouldHandleY : function ( a ) { return a > 0 ? this . bottomRightGrid . getScrollTop ( ) < this . bottomRightGrid . getMaxScrollTop ( ) : this . bottomRightGrid . getScrollTop ( ) > 0 } , _onWheelLeft : function ( a , b ) { var c = this , d = this . bottomLeftGrid . getScrollTop ( ) , e = this . bottomLeftGrid . getScrollLeft ( ) ; d += b , e += a , this . bottomLeftGrid . setScrollTop ( d ) , this . bottomRightGrid . setScrollTop ( d ) , this . topLeftGrid . setScrollLeft ( e ) , this . bottomLeftGrid . setScrollLeft ( e ) , c . _populateScrollbar ( ) , this . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } , _onWheelRight : function ( a , b ) { var c = this , d = this . bottomRightGrid . getScrollTop ( ) , e = this . bottomRightGrid . getScrollLeft ( ) ; d += b , e += a , this . bottomLeftGrid . setScrollTop ( d ) , this . bottomRightGrid . setScrollTop ( d ) , this . topRightGrid . setScrollLeft ( e ) , this . bottomRightGrid . setScrollLeft ( e ) , c . _populateScrollbar ( ) , this . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } , _populateTable : function ( ) { var a = this . options , b = this . getRegionSize ( ) , c = 0 , d = 0 , e = 0 , f = [ ] , g = this . _getFreezeColLength ( ) ; 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 } ) ; var h = b , i = this . _getFreezeHeaderHeight ( ) , j = this . _width - b , k = this . _getFreezeHeaderHeight ( ) , l = b , m = this . _height - i , n = this . _width - b , o = this . _height - k ; this . topLeft . setWidth ( h ) , this . topLeft . setHeight ( i ) , this . topRight . setWidth ( j ) , this . topRight . setHeight ( k ) , this . bottomLeft . setWidth ( l ) , this . bottomLeft . setHeight ( m ) , this . bottomRight . setWidth ( n ) , this . bottomRight . setHeight ( o ) , this . topLeftGrid . setWidth ( h ) , this . topLeftGrid . setHeight ( i ) , this . topRightGrid . setWidth ( j ) , this . topRightGrid . setHeight ( k ) , this . bottomLeftGrid . setWidth ( l ) , this . bottomLeftGrid . setHeight ( m ) , this . bottomRightGrid . setWidth ( n ) , this . bottomRightGrid . setHeight ( o ) , this . topLeftGrid . setEstimatedColumnSize ( g > 0 ? c / g : 0 ) , this . topLeftGrid . setEstimatedRowSize ( a . headerRowSize ) , this . topRightGrid . setEstimatedColumnSize ( a . columnSize . length - g > 0 ? d / ( a . columnSize . length - g ) : 0 ) , this . topRightGrid . setEstimatedRowSize ( a . headerRowSize ) , this . bottomLeftGrid . setEstimatedColumnSize ( g > 0 ? c / g : 0 ) , this . bottomLeftGrid . setEstimatedRowSize ( a . rowSize ) , this . bottomRightGrid . setEstimatedColumnSize ( a . columnSize . length - g > 0 ? d / ( a . columnSize . length - g ) : 0 ) , this . bottomRightGrid . setEstimatedRowSize ( a . rowSize ) , this . topLeftGrid . setColumnCount ( g ) , this . topRightGrid . setColumnCount ( a . columnSize . length - g ) , this . bottomLeftGrid . setColumnCount ( g ) , this . bottomRightGrid . setColumnCount ( a . columnSize . length - g ) ; var p = this . contextLayout . attr ( "items" ) ; p [ 1 ] . left = b , p [ 2 ] . top = this . _getFreezeHeaderHeight ( ) , p [ 3 ] . left = b , p [ 3 ] . top = this . _getFreezeHeaderHeight ( ) , this . contextLayout . attr ( "items" , p ) , this . contextLayout . resize ( ) ; var q = [ ] , r = [ ] , s = [ ] , t = [ ] ; BI . each ( a . header , function ( a , b ) { q [ a ] = [ ] , r [ a ] = [ ] , BI . each ( b , function ( b , c ) { var d = { type : "bi.grid_table_cell" , cell : c } ; b < g ? q [ a ] . push ( d ) : r [ a ] . push ( d ) } ) } ) , BI . each ( this . _getActualItems ( ) , function ( a , b ) { s [ a ] = [ ] , t [ a ] = [ ] , BI . each ( b , function ( b , c ) { var d = { type : "bi.grid_table_cell" , cell : c } ; b < g ? s [ a ] . push ( d ) : t [ a ] . push ( d ) } ) } ) , this . topLeftGrid . populate ( q ) , this . topRightGrid . populate ( r ) , this . bottomLeftGrid . populate ( s ) , this . bottomRightGrid . populate ( t ) } } ) , BI
c . push ( e ) } ) , BI . any ( this . topRightBodyTds , function ( a , b ) { if ( ! BI . any ( b , function ( a , b ) { if ( b . _ _mergeCols . length > 1 ) return ! 0 } ) ) return BI . each ( b , function ( a , d ) { var e = d . width ( ) / d . _ _mergeCols . length ; a == BI . size ( b ) - 1 && e ++ , c . push ( e ) } ) , ! 0 } ) || BI . each ( this . topRightBodyTds [ BI . size ( this . topRightBodyTds ) - 1 ] , function ( b , d ) { var e = d . width ( ) / d . _ _mergeCols . length ; b == BI . size ( a . topRightBodyTds [ BI . size ( a . topRightBodyTds ) - 1 ] ) - 1 && e ++ , c . push ( e ) } ) } else BI . each ( this . headerTds [ BI . size ( this . headerTds ) - 1 ] , function ( b , d ) { var e = d . width ( ) / d . _ _mergeCols . length ; b == BI . size ( a . headerTds [ BI . size ( a . headerTds ) - 1 ] ) - 1 && e ++ , c . push ( e ) } ) ; return c } , setHeaderColumnSize : function ( a ) { var b = this , c = this . options , d = this . _isRightFreeze ( ) ; if ( c . isNeedFreeze ) { var e = [ ] , f = [ ] ; BI . each ( a , function ( a , b ) { c . freezeCols . contains ( a ) ? d ? f . push ( b ) : e . push ( b ) : d ? e . push ( b ) : f . push ( b ) } ) ; var g = 0 , h = 1 , i = function ( a ) { var c , d , i , j ; switch ( a ) { case g : c = b . topLeftColGroupTds , d = b . topLeftBodyTds , i = b . topLeftBodyItems , j = e ; break ; case h : c = b . topRightColGroupTds , d = b . topRightBodyTds , i = b . topRightBodyItems , j = f } BI . each ( c , function ( a , c ) { var e = 0 | c . attr ( "width" ) ; if ( e !== j [ a ] ) { var f = b . _calculateWidth ( j [ a ] ) ; c . attr ( "width" , f ) . css ( "width" , f ) , BI . each ( d , function ( c , d ) { if ( d [ a ] ) if ( d [ a ] . _ _mergeCols . length > 1 ) { var e = 0 ; BI . each ( j , function ( b , c ) { d [ a ] . _ _mergeCols . contains ( b ) && ( e += c ) } ) , e = b . _calculateWidth ( e ) , e > 1 && ( e += d [ a ] . _ _mergeCols . length - 1 ) , BI . isNumeric ( e ) ? a == BI . size ( d ) - 1 ? d [ a ] . attr ( "width" , e - 1 ) . css ( "width" , e - 1 ) : d [ a ] . attr ( "width" , e ) . css ( "width" , e ) : d [ a ] . attr ( "width" , "" ) . css ( "width" , "" ) } else a == BI . size ( d ) - 1 ? d [ a ] . attr ( "width" , f - 1 ) . css ( "width" , f - 1 ) : d [ a ] . attr ( "width" , f ) . css ( "width" , f ) } ) , BI . each ( i , function ( c , e ) { if ( e [ a ] ) if ( d [ c ] [ a ] . _ _mergeCols . length > 1 ) { var g = 0 ; BI . each ( j , function ( b , e ) { d [ c ] [ a ] . _ _mergeCols . contains ( b ) && ( g += e ) } ) , g = b . _calculateWidth ( g ) , g > 1 && ( g += d [ c ] [ a ] . _ _mergeCols . length - 1 ) , BI . isNumeric ( g ) ? a == BI . size ( e ) - 1 ? e [ a ] . element . attr ( "width" , g - 1 ) . css ( "width" , g - 1 ) : e [ a ] . element . attr ( "width" , g ) . css ( "width" , g ) : e [ a ] . element . attr ( "width" , "" ) . css ( "width" , "" ) } else BI . isNumeric ( f ) ? a == BI . size ( e ) - 1 ? e [ a ] . element . attr ( "width" , f - 1 ) . css ( "width" , f - 1 ) : e [ a ] . element . attr ( "width" , f ) . css ( "width" , f ) : e [ a ] . element . attr ( "width" , "" ) . css ( "width" , "" ) } ) } } ) } ; i ( g ) , i ( h ) ; var j = 0 , k = 0 ; BI . each ( a , function ( a , b ) { c . freezeCols . contains ( a ) ? j += b : k += b } ) , j = this . _calculateWidth ( j ) , k = this . _calculateWidth ( k ) , BI . isNumeric ( j ) && ( j = BI . parseFloat ( j ) + c . freezeCols . length ) , BI . isNumeric ( k ) && ( k = BI . parseFloat ( k ) + a . length - c . freezeCols . length ) , this . topLeftContainer . element . width ( d ? k : j ) , this . topRightContainer . element . width ( d ? j : k ) , this . scrollTopLeft . element [ 0 ] . scrollLeft = this . scrollBottomLeft . element [ 0 ] . scrollLeft , this . scrollTopRight . element [ 0 ] . scrollLeft = this . scrollBottomRight . element [ 0 ] . scrollLeft } else { BI . each ( this . colgroupTds , function ( c , d ) { var e = 0 | d . attr ( "width" ) ; if ( e !== a [ c ] ) { var f = b . _calculateWidth ( a [ c ] ) ; d . attr ( "width" , f ) . css ( "width" , f ) , BI . each ( b . headerTds , function ( d , e ) { if ( e [ c ] ) if ( e [ c ] . _ _mergeCols . length > 1 ) { var g = 0 ; BI . each ( a , function ( a , b ) { e [ c ] . _ _mergeCols . contains ( a ) && ( g += b ) } ) , g = b . _calculateWidth ( g ) , g > 1 && ( g += e [ c ] . _ _mergeCols . length - 1 ) , BI . isNumeric ( g ) ? c == BI . size ( e ) - 1 ? e [ c ] . element . attr ( "width" , g - 1 ) . css ( "width" , g - 1 ) : e [ c ] . element . attr ( "width" , g ) . css ( "width" , g ) : e [ c ] . attr ( "width" , "" ) . css ( "width" , "" ) } else c == BI . size ( e ) - 1 ? e [ c ] . attr ( "width" , f - 1 ) . css ( "width" , f - 1 ) : e [ c ] . attr ( "width" , f ) . css ( "width" , f ) } ) , BI . each ( b . headerItems , function ( d , e ) { if ( e [ c ] ) if ( b . headerTds [ d ] [ c ] . _ _mergeCols . length > 1 ) { var g = 0 ; BI . each ( a , function ( a , e ) { b . headerTds [ d ] [ c ] . _ _mergeCols . contains ( a ) && ( g += e ) } ) , g = b . _calculateWidth ( g ) , g > 1 && ( g += b . headerTds [ d ] [ c ] . _ _mergeCols . length - 1 ) , BI . isNumeric ( g ) ? c == BI . size ( e ) - 1 ? e [ c ] . element . attr ( "width" , g - 1 ) . css ( "width" , g - 1 ) : e [ c ] . element . attr ( "width" , g ) . css ( "width" , g ) : e [ c ] . element . attr ( "width" , "" ) . css ( "width" , "" ) } else BI . isNumeric ( f ) ? c == BI . size ( e ) - 1 ? e [ c ] . element . attr ( "width" , f - 1 ) . css ( "width" , f - 1 ) : e [ c ] . element . attr ( "width" , f ) . css ( "width" , f ) : e [ c ] . element . attr ( "width" , "" ) . css ( "width" , "" ) } ) } } ) ; var l = this . _calculateWidth ( BI . sum ( a ) ) ; l > 1.05 && ( l += a . length ) , this . tableContainer . element . width ( l ) } } , setRegionColumnSize : function ( a ) { var b = this . options ; b . regionColumnSize = a , 0 === b . freezeCols . length ? b . isNeedFreeze ? ( this . partitions . attr ( "columnSize" , thi
c . treeObj . trigger ( consts . event . CLICK , [ a , c . treeId , b , d ] ) , ! 0 ) } , onZTreeMousedown : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeMouseDown , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onMouseDown , [ a , c . treeId , b ] ) , ! 0 } , onZTreeMouseup : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeMouseUp , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onMouseUp , [ a , c . treeId , b ] ) , ! 0 } , onZTreeDblclick : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeDblClick , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onDblClick , [ a , c . treeId , b ] ) , ! 0 } , onZTreeContextmenu : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeRightClick , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onRightClick , [ a , c . treeId , b ] ) , "function" != typeof c . callback . onRightClick } } , tools = { apply : function ( a , b , c ) { return "function" == typeof a ? a . apply ( zt , b ? b : [ ] ) : c } , canAsync : function ( a , b ) { var c = a . data . key . children ; return a . async . enable && b && b . isParent && ! ( b . zAsync || b [ c ] && b [ c ] . length > 0 ) } , clone : function ( a ) { if ( null === a ) return null ; var b = tools . isArray ( a ) ? [ ] : { } ; for ( var c in a ) b [ c ] = a [ c ] instanceof Date ? new Date ( a [ c ] . getTime ( ) ) : "object" == typeof a [ c ] ? arguments . callee ( a [ c ] ) : a [ c ] ; return b } , eqs : function ( a , b ) { return a . toLowerCase ( ) === b . toLowerCase ( ) } , isArray : function ( a ) { return "[object Array]" === Object . prototype . toString . apply ( a ) } , $ : function ( a , b , c ) { return b && "string" != typeof b && ( c = b , b = "" ) , "string" == typeof a ? $ ( a , c ? c . treeObj . get ( 0 ) . ownerDocument : null ) : $ ( "#" + a . tId + b , c ? c . treeObj : null ) } , getMDom : function ( a , b , c ) { if ( ! b ) return null ; for ( ; b && b . id !== a . treeId ; ) { for ( var d = 0 , e = c . length ; b . tagName && d < e ; d ++ ) if ( tools . eqs ( b . tagName , c [ d ] . tagName ) && null !== b . getAttribute ( c [ d ] . attrName ) ) return b ; b = b . parentNode } return null } , getNodeMainDom : function ( a ) { return $ ( a ) . parent ( "li" ) . get ( 0 ) || $ ( a ) . parentsUntil ( "li" ) . parent ( ) . get ( 0 ) } , isChildOrSelf : function ( a , b ) { return $ ( a ) . closest ( "#" + b ) . length > 0 } , uCanDo : function ( a , b ) { return ! 0 } } , view = { addNodes : function ( a , b , c , d ) { if ( ! a . data . keep . leaf || ! b || b . isParent ) if ( tools . isArray ( c ) || ( c = [ c ] ) , a . data . simpleData . enable && ( c = data . transformTozTreeFormat ( a , c ) ) , b ) { var e = $$ ( b , consts . id . SWITCH , a ) , f = $$ ( b , consts . id . ICON , a ) , g = $$ ( b , consts . id . UL , a ) ; b . open || ( view . replaceSwitchClass ( b , e , consts . folder . CLOSE ) , view . replaceIcoClass ( b , f , consts . folder . CLOSE ) , b . open = ! 1 , g . css ( { display : "none" } ) ) , data . addNodesData ( a , b , c ) , view . createNodes ( a , b . level + 1 , c , b ) , d || view . expandCollapseParentNode ( a , b , ! 0 ) } else data . addNodesData ( a , data . getRoot ( a ) , c ) , view . createNodes ( a , 0 , c , null ) } , appendNodes : function ( a , b , c , d , e , f ) { if ( ! c ) return [ ] ; for ( var g = [ ] , h = a . data . key . children , i = 0 , j = c . length ; i < j ; i ++ ) { var k = c [ i ] ; if ( e ) { var l = d ? d : data . getRoot ( a ) , m = l [ h ] , n = m . length == c . length && 0 == i , o = i == c . length - 1 ; data . initNode ( a , b , k , d , n , o , f ) , data . addNodeCache ( a , k ) } var p = [ ] ; k [ h ] && k [ h ] . length > 0 && ( p = view . appendNodes ( a , b + 1 , k [ h ] , k , e , f && k . open ) ) , f && ( view . makeDOMNodeMainBefore ( g , a , k ) , view . makeDOMNodeLine ( g , a , k ) , data . getBeforeA ( a , k , g ) , view . makeDOMNodeNameBefore ( g , a , k ) , data . getInnerBeforeA ( a , k , g ) , view . makeDOMNodeIcon ( g , a , k ) , data . getInnerAfterA ( a , k , g ) , view . makeDOMNodeNameAfter ( g , a , k ) , data . getAfterA ( a , k , g ) , k . isParent && k . open && view . makeUlHtml ( a , k , g , p . join ( "" ) ) , view . makeDOMNodeMainAfter ( g , a , k ) , data . addCreatedNode ( a , k ) ) } return g } , appendParentULDom : function ( a , b ) { var c = [ ] , d = $$ ( b , a ) ; ! d . get ( 0 ) && b . parentTId && ( view . appendParentULDom ( a , b . getParentNode ( ) ) , d = $$ ( b , a ) ) ; var e = $$ ( b , consts . id . UL , a ) ; e . get ( 0 ) && e . remove ( ) ; var f = a . data . key . children , g = view . appendNodes ( a , b . level + 1 , b [ f ] , b , ! 1 , ! 0 ) ; view . makeUlHtml ( a , b , c , g . join ( "" ) ) , d . append ( c . join ( "" ) ) } , asyncNode : function ( setting , node , isSilent , callback ) { var i , l ; if ( node && ! node . isParent ) return tools . apply ( callback ) , ! 1 ; if ( node && node . isAjaxing ) return ! 1 ; if ( 0 == tools . apply ( setting . callback . beforeAsync , [ setting . treeId , node ] , ! 0 ) ) return tools . apply ( callback ) , ! 1 ; if ( node ) { node . isAjaxing = ! 0 ; var icoObj = $$ ( node , consts . id . ICON , setting ) ; icoObj . attr ( { style : "" , "class" : consts . className . BUTTON + " " + consts . className . ICO _LOADING } ) } var tmpParam = { } ; for ( i = 0 , l = setting . async . autoParam . length ; node && i < l ; i ++ ) { var pKey = setting . async . autoParam [ i ] . split ( "=" ) , spKey = pKey ; pKey . length > 1 && ( spKey =
this . button . setSelected ( a ) } , setIcon : function ( a ) { var b = this . options ; b . iconCls !== a && ( this . element . removeClass ( b . iconCls ) . addClass ( a ) , b . iconCls = a ) } } ) , BI . IconChangeButton . EVENT _CHANGE = "IconChangeButton.EVENT_CHANGE" , BI . shortcut ( "bi.icon_change_button" , BI . IconChangeButton ) , BI . HalfIconButton = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { var a = BI . HalfIconButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-half-icon-button check-half-select-icon" , height : 16 , width : 16 , iconWidth : 16 , iconHeight : 16 , selected : ! 1 } ) } , _init : function ( ) { BI . HalfIconButton . superclass . _init . apply ( this , arguments ) } , doClick : function ( ) { BI . HalfIconButton . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . HalfIconButton . EVENT _CHANGE ) } } ) , BI . HalfIconButton . EVENT _CHANGE = "HalfIconButton.EVENT_CHANGE" , BI . shortcut ( "bi.half_icon_button" , BI . HalfIconButton ) , BI . TriggerIconButton = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { var a = BI . TriggerIconButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-trigger-icon-button" , extraCls : "pull-down-font" } ) } , _init : function ( ) { BI . TriggerIconButton . superclass . _init . apply ( this , arguments ) } , doClick : function ( ) { BI . TriggerIconButton . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . TriggerIconButton . EVENT _CHANGE , this ) } } ) , BI . TriggerIconButton . EVENT _CHANGE = "TriggerIconButton.EVENT_CHANGE" , BI . shortcut ( "bi.trigger_icon_button" , BI . TriggerIconButton ) , BI . MultiSelectItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-multi-select-item" , height : 25 , logic : { dynamic : ! 1 } } ) } , _init : function ( ) { BI . MultiSelectItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.checkbox" } ) , this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , rgap : b . rgap , text : b . text , keyword : b . keyword , value : b . value , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . setSelected ( a . isSelected ( ) ) } ) , 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 . checkbox ] , 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 . MultiSelectItem . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isSelected ( ) ) , this . isValid ( ) && this . fireEvent ( BI . MultiSelectItem . EVENT _CHANGE , this . getValue ( ) , this ) } , setSelected : function ( a ) { BI . MultiSelectItem . superclass . setSelected . apply ( this , arguments ) , this . checkbox . setSelected ( a ) } } ) , BI . MultiSelectItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_item" , BI . MultiSelectItem ) , BI . SingleSelectIconTextItem = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectIconTextItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-single-select-icon-text-item bi-list-item-active" , iconCls : "" , height : 25 } ) } , _init : function ( ) { BI . SingleSelectIconTextItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . text = BI . createWidget ( { type : "bi.icon_text_item" , element : this , cls : b . iconCls , once : b . once , selected : b . selected , height : b . height , iconHeight : b . iconHeight , iconWidth : b . iconWidth , text : b . text , keyword : b . keyword , value : b . value , py : b . py } ) , this . text . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , isSelected : function ( ) { return this . text . isSelected ( ) } , setSelected : function ( a ) { this . text . setSelected ( a ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectIconTextItem . superclass . doClick . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.single_select_icon_text_item" , BI . SingleSelectIconTextItem ) , BI . Sin
} ) ; var g = [ ] ; g . push ( e . slice ( 0 , 2 ) ) , g . push ( e . slice ( 2 , 4 ) ) , g . push ( e . slice ( 4 , 6 ) ) , g . push ( e . slice ( 6 , 8 ) ) , g . push ( e . slice ( 8 , 10 ) ) , g . push ( e . slice ( 10 , 12 ) ) , g = BI . map ( g , function ( a , b ) { return BI . map ( b , function ( a , b ) { return BI . extend ( b , { type : "bi.text_item" , cls : "bi-list-item-active" , textAlign : "center" , whiteSpace : "normal" , once : ! 1 , forceSelected : ! 0 , height : 23 , width : 38 , value : b . text , disabled : b . disabled } ) } ) } ) , this . years = BI . createWidget ( { type : "bi.button_group" , behaviors : b . behaviors , items : BI . createItems ( g , { } ) , layouts : [ BI . LogicFactory . createLogic ( "table" , BI . extend ( { } , b . logic , { columns : 2 , rows : 6 , columnSize : [ . 5 , . 5 ] , rowSize : 25 } ) ) , { type : "bi.center_adapt" , vgap : 1 } ] } ) , this . years . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "vertical" , BI . extend ( { } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "top" , this . years ) } ) ) ) ) } , isFrontYear : function ( ) { var a = this . options , b = a . year ; return b = 0 | b , ! ! BI . checkDateVoid ( BI . YearCalendar . getStartYear ( b ) - 1 , 1 , 1 , a . min , a . max ) [ 0 ] } , isFinalYear : function ( ) { var a = this . options , b = ( this . _const , a . year ) ; return b = 0 | b , ! ! BI . checkDateVoid ( BI . YearCalendar . getEndYear ( b ) + 1 , 1 , 1 , a . min , a . max ) [ 0 ] } , setValue : function ( a ) { this . years . setValue ( [ a ] ) } , getValue : function ( ) { return this . years . getValue ( ) [ 0 ] } } ) , BI . extend ( BI . YearCalendar , { INTERVAL : 12 , getStartYear : function ( a ) { var b = BI . getDate ( ) . getFullYear ( ) ; return a - ( ( a - b + 3 ) % BI . YearCalendar . INTERVAL + 12 ) % BI . YearCalendar . INTERVAL } , getEndYear : function ( a ) { return BI . YearCalendar . getStartYear ( a ) + BI . YearCalendar . INTERVAL - 1 } , getPageByYear : function ( a ) { var b = BI . getDate ( ) . getFullYear ( ) ; return a = BI . YearCalendar . getStartYear ( a ) , ( a - b + 3 ) / BI . YearCalendar . INTERVAL } } ) , BI . shortcut ( "bi.year_calendar" , BI . YearCalendar ) , BI . ComplexCanvas = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . ComplexCanvas . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-complex-canvas" } ) } , _init : function ( ) { BI . ComplexCanvas . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . canvas = BI . createWidget ( { type : "bi.canvas" , element : this , width : a . width , height : a . height } ) } , branch : function ( a , b , c , d , e , f ) { var g = this , h = [ ] . slice . call ( arguments ) ; if ( h . length <= 5 ) return this . canvas . line . apply ( this . canvas , arguments ) ; var i ; BI . isOdd ( h . length ) && ( i = BI . last ( h ) , h = BI . initial ( h ) ) , h = [ ] . slice . call ( h , 2 ) ; var j = BI . filter ( h , function ( a ) { return a % 2 === 0 } ) , k = BI . filter ( h , function ( a ) { return a % 2 !== 0 } ) ; i || ( i = { } ) ; var l = i . offset || 20 ; if ( b > d && b > f || b < d && b < f ) { if ( b > d && b > f ) var m = Math . max . apply ( this , k ) + l ; else var m = Math . min . apply ( this , k ) - l ; var n = Math . min . apply ( this , j ) , o = BI . indexOf ( j , n ) , p = Math . max . apply ( this , j ) , q = BI . indexOf ( j , p ) ; return this . canvas . line ( n , k [ o ] , n , m , p , m , p , k [ q ] , i ) , BI . each ( j , function ( a , b ) { a !== q && a !== o && g . canvas . line ( b , k [ a ] , b , m , i ) } ) , void this . canvas . line ( a , m , a , b , i ) } if ( a > c && a > e || a < c && a < e ) { if ( a > c && a > e ) var r = Math . max . apply ( this , j ) + l ; else var r = Math . min . apply ( this , j ) - l ; var s = Math . min . apply ( this , k ) , t = BI . indexOf ( k , s ) , u = Math . max . apply ( this , k ) , v = BI . indexOf ( k , u ) ; return this . canvas . line ( j [ t ] , s , r , s , r , u , j [ v ] , u , i ) , BI . each ( k , function ( a , b ) { a !== t && a !== v && g . canvas . line ( j [ a ] , b , r , b , i ) } ) , void this . canvas . line ( r , b , a , b , i ) } } , stroke : function ( a ) { this . canvas . stroke ( a ) } } ) , BI . shortcut ( "bi.complex_canvas" , BI . ComplexCanvas ) , BI . ArrowTreeGroupNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . ArrowTreeGroupNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-arrow-group-node-checkbox" } ) } , _init : function ( ) { BI . ArrowTreeGroupNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . ArrowTreeGroupNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a ? this . element . removeClass ( "pull-right-font" ) . addClass ( "pull-down-font" ) : this . element . removeClass ( "pull-down-font" ) . addClass ( "pull-right-font" ) } } ) , BI . shortcut ( "bi.arrow_group_node_checkbox" , BI . ArrowTreeGroupNodeCheckbox ) , BI . CheckingMarkNode = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . CheckingMarkNode . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "check-mark-font" } ) } , _init : function ( ) { BI . CheckingMarkNode . superclass . _init .
BI . shortcut ( "bi.color_chooser_trigger" , BI . ColorChooserTrigger ) , BI . ColorPickerButton = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . ColorPickerButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-color-picker-button bi-background bi-border-top bi-border-left" } ) } , _init : function ( ) { BI . ColorPickerButton . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; if ( b . value ) { this . element . css ( "background-color" , b . value ) ; var c = this . getName ( ) ; this . element . hover ( function ( ) { a . _createMask ( ) , a . isEnabled ( ) && BI . Maskers . show ( c ) } , function ( ) { a . isSelected ( ) || BI . Maskers . hide ( c ) } ) } } , _createMask : function ( ) { var a = this . options , b = this . getName ( ) ; if ( this . isEnabled ( ) && ! BI . Maskers . has ( b ) ) { var c = BI . Maskers . make ( b , this , { offset : { left : - 1 , top : - 1 , right : - 1 , bottom : - 1 } } ) ; c . element . addClass ( "color-picker-button-mask" ) . css ( "background-color" , a . value ) } } , setSelected : function ( a ) { BI . ColorPickerButton . superclass . setSelected . apply ( this , arguments ) , a && this . _createMask ( ) , BI . Maskers [ a ? "show" : "hide" ] ( this . getName ( ) ) } } ) , BI . ColorPickerButton . EVENT _CHANGE = "ColorPickerButton.EVENT_CHANGE" , BI . shortcut ( "bi.color_picker_button" , BI . ColorPickerButton ) , BI . ColorPicker = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . ColorPicker . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-color-picker" , items : null } ) } , _items : [ [ { value : "#ffffff" } , { value : "#f2f2f2" } , { value : "#e5e5e5" } , { value : "#d9d9d9" } , { value : "#cccccc" } , { value : "#bfbfbf" } , { value : "#b2b2b2" } , { value : "#a6a6a6" } , { value : "#999999" } , { value : "#8c8c8c" } , { value : "#808080" } , { value : "#737373" } , { value : "#666666" } , { value : "#4d4d4d" } , { value : "#333333" } , { value : "#000000" } ] , [ { value : "#d8b5a6" } , { value : "#ff9e9a" } , { value : "#ffc17d" } , { value : "#f5e56b" } , { value : "#d8e698" } , { value : "#e0ebaf" } , { value : "#c3d825" } , { value : "#bce2e8" } , { value : "#85d3cd" } , { value : "#bce2e8" } , { value : "#a0d8ef" } , { value : "#89c3eb" } , { value : "#bbc8e6" } , { value : "#bbbcde" } , { value : "#d6b4cc" } , { value : "#fbc0d3" } ] , [ { value : "#bb9581" } , { value : "#f37d79" } , { value : "#fba74f" } , { value : "#ffdb4f" } , { value : "#c7dc68" } , { value : "#b0ca71" } , { value : "#99ab4e" } , { value : "#84b9cb" } , { value : "#00a3af" } , { value : "#2ca9e1" } , { value : "#0095d9" } , { value : "#4c6cb3" } , { value : "#8491c3" } , { value : "#a59aca" } , { value : "#cc7eb1" } , { value : "#e89bb4" } ] , [ { value : "#9d775f" } , { value : "#dd4b4b" } , { value : "#ef8b07" } , { value : "#fcc800" } , { value : "#aacf53" } , { value : "#82ae46" } , { value : "#69821b" } , { value : "#59b9c6" } , { value : "#2a83a2" } , { value : "#007bbb" } , { value : "#19448e" } , { value : "#274a78" } , { value : "#4a488e" } , { value : "#7058a3" } , { value : "#884898" } , { value : "#d47596" } ] ] , _init : function ( ) { BI . ColorPicker . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . colors = BI . createWidget ( { type : "bi.button_group" , element : this , items : BI . createItems ( b . items || this . _items , { type : "bi.color_picker_button" , once : ! 1 } ) , layouts : [ { type : "bi.grid" } ] , value : b . value } ) , this . colors . on ( BI . ButtonGroup . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . ColorPicker . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { var b = [ ] . slice . call ( arguments ) ; b [ 0 ] = BI . createItems ( a , { type : "bi.color_picker_button" , once : ! 1 } ) , this . colors . populate . apply ( this . colors , b ) } , setValue : function ( a ) { this . colors . setValue ( a ) } , getValue : function ( ) { return this . colors . getValue ( ) } } ) , BI . ColorPicker . EVENT _CHANGE = "ColorPicker.EVENT_CHANGE" , BI . shortcut ( "bi.color_picker" , BI . ColorPicker ) , BI . ColorPickerEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . ColorPickerEditor . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-color-picker-editor" , height : 20 } ) } , _init : function ( ) { BI . ColorPickerEditor . superclass . _init . apply ( this , arguments ) ; var a = this ; this . options ; this . colorShow = BI . createWidget ( { type : "bi.layout" , cls : "color-picker-editor-display bi-card" , height : 20 } ) ; var b = BI . createWidgets ( BI . createItems ( [ { text : "R" } , { text : "G" } , { text : "B" } ] , { type : "bi.label" , cls : "color-picker-editor-label" , width : 10 , height : 20 } ) ) , c = function ( a ) { return BI . isNumeric ( a ) && ( 0 | a ) >= 0 && ( 0 | a ) <= 255 } , d = BI . createWidgets ( [ { } , { } , { } ] , { type : "bi.small_text_editor" , cls : "color-picker-editor-input" , validationChecker : c , errorText : BI . i18nText ( "BI-Color_Picker_Error_Text" ) , allowBlank : ! 0 , value : 255 , width : 32 , h
} , onSearch : function ( a , c ) { var d = a . keyword , e = BI . Func . getSearchResult ( b . items , d ) , f = e . match , g = e . find ; c ( g , f ) } , listeners : [ { eventName : BI . Searcher . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . SearchTextValueTrigger . EVENT _CHANGE ) } } ] } } , { el : { type : "bi.layout" , width : 30 } , width : 30 } ] } } , _setState : function ( a ) { this . editor . setState ( a ) } , _digest : function ( a , b ) { var c = this . options ; a = BI . isArray ( a ) ? a : [ a ] ; var d = [ ] , e = BI . Tree . transformToArrayFormat ( b ) ; return BI . each ( e , function ( b , c ) { BI . deepContains ( a , c . value ) && ! d . contains ( c . text || c . value ) && d . push ( c . text || c . value ) } ) , d . length > 0 ? d . join ( "," ) : c . text } , stopEditing : function ( ) { this . searcher . stopSearch ( ) } , getSearcher : function ( ) { return this . searcher } , populate : function ( a ) { this . options . items = a } , setValue : function ( a ) { this . _setState ( this . _digest ( a , this . options . items ) ) } , getValue : function ( ) { return this . searcher . getValue ( ) } } ) , BI . SearchTextValueTrigger . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . SearchTextValueTrigger . EVENT _STOP = "EVENT_STOP" , BI . SearchTextValueTrigger . EVENT _START = "EVENT_START" , BI . SearchTextValueTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.search_text_value_trigger" , BI . SearchTextValueTrigger ) , BI . StaticCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . StaticCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-static-combo" , height : 24 , text : "" , el : { } , items : [ ] , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE } ) } , _init : function ( ) { BI . StaticCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.text_trigger" , cls : "bi-border" , items : b . items , height : b . height , text : b . text , readonly : ! 0 } ) , this . popup = BI . createWidget ( { type : "bi.text_value_combo_popup" , textAlign : b . textAlign , chooseType : b . chooseType , items : b . items , value : b . value } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . popup . on ( BI . TextValueComboPopup . EVENT _CHANGE , function ( ) { a . combo . hideView ( ) , a . fireEvent ( BI . StaticCombo . EVENT _CHANGE , arguments ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup } } ) } , populate : function ( a ) { this . combo . populate ( a ) } , setValue : function ( a ) { this . popup . setValue ( a ) } , getValue : function ( ) { var a = this . popup . getValue ( ) ; return BI . isNull ( a ) ? [ ] : BI . isArray ( a ) ? a : [ a ] } } ) , BI . StaticCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.static_combo" , BI . StaticCombo ) , BI . TextValueCheckCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueCheckCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseClass : "bi-text-value-check-combo" , width : 100 , height : 24 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , value : "" } ) } , _init : function ( ) { BI . TextValueCheckCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.select_text_trigger" , items : b . items , height : b . height , text : b . text , value : b . value } ) , this . popup = BI . createWidget ( { type : "bi.text_value_check_combo_popup" , chooseType : b . chooseType , items : b . items , value : b . value } ) , this . popup . on ( BI . TextValueCheckComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . textIconCheckCombo . hideView ( ) , a . fireEvent ( BI . TextValueCheckCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . textIconCheckCombo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) , BI . isKey ( b . value ) && this . setValue ( b . value ) } , setTitle : function ( a ) { this . trigger . setTitle ( a ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , setWarningTitle : function ( a ) { this . trigger . setWarningTitle ( a ) } , getValue : function ( ) { var a = this . popup . getValue ( ) ; return BI . isNull ( a ) ? [ ] : BI . isArray ( a ) ? a : [ a ] } , populate : function ( a ) { this . options . items = a , this . textIconCheckCombo . populate ( a ) } } ) , BI . TextValueCheckCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_check_combo" , BI . TextValueCheckCombo ) , BI . SmallTextValueCheckCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SmallTextValueCheckCombo . superclass . _defaultConfig . apply ( this , arguments ) , { width : 100 , heigh
} , blur : function ( ) { this . editor . blur ( ) , this . _showHint ( ) , this . _checkText ( ) } , doRedMark : function ( ) { "" === this . editor . getValue ( ) && BI . isKey ( this . options . watermark ) || this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { "" === this . editor . getValue ( ) && BI . isKey ( this . options . watermark ) || this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , isValid : function ( ) { return this . editor . isValid ( ) } , setErrorText : function ( a ) { this . editor . setErrorText ( a ) } , getErrorText : function ( ) { return this . editor . getErrorText ( ) } , isEditing : function ( ) { return this . editor . isEditing ( ) } , getLastValidValue : function ( ) { return this . editor . getLastValidValue ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) , this . _checkText ( ) } , getValue : function ( ) { return this . editor . getValue ( ) } , getState : function ( ) { return this . text . getValue ( ) } , setState : function ( a ) { this . _showHint ( ) , this . text . setValue ( a ) } } ) , BI . SignEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . SignEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . SignEditor . EVENT _BLUR = "EVENT_BLUR" , BI . SignEditor . EVENT _CLICK = "EVENT_CLICK" , BI . SignEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . SignEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . SignEditor . EVENT _START = "EVENT_START" , BI . SignEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . SignEditor . EVENT _STOP = "EVENT_STOP" , BI . SignEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . SignEditor . EVENT _VALID = "EVENT_VALID" , BI . SignEditor . EVENT _ERROR = "EVENT_ERROR" , BI . SignEditor . EVENT _ENTER = "EVENT_ENTER" , BI . SignEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . SignEditor . EVENT _SPACE = "EVENT_SPACE" , BI . SignEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.sign_editor" , BI . SignEditor ) , BI . StateEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . StateEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-state-editor" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 0 , watermark : "" , errorText : "" , height : 24 } ) } , _init : function ( ) { BI . StateEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , value : b . value , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText } ) , this . text = BI . createWidget ( { type : "bi.text_button" , cls : "state-editor-infinite-text" , textAlign : "left" , height : b . height , text : BI . i18nText ( "BI-Basic_Unrestricted" ) , hgap : 4 , handler : function ( ) { a . _showInput ( ) , a . editor . focus ( ) , a . editor . setValue ( "" ) } } ) , this . text . on ( BI . TextButton . EVENT _CHANGE , function ( ) { BI . nextTick ( function ( ) { a . fireEvent ( BI . StateEditor . EVENT _CLICK _LABEL ) } ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . text , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) , 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 . StateEditor . EVENT _FOCUS , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _BLUR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _CLICK , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . StateEditor . EVENT _KEY _DOWN , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _VALID , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . _showHint ( ) , a . fireEvent ( BI . StateEditor . EVENT _CONFIRM , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _START , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _PAUSE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . StateEditor . EVENT _STOP , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . StateEditor
cls : "bi-sortable-holder" , height : a . outerHeight ( ) } ) ; return b . element . css ( { "margin-left" : a . css ( "margin-left" ) , "margin-right" : a . css ( "margin-right" ) , "margin-top" : a . css ( "margin-top" ) , "margin-bottom" : a . css ( "margin-bottom" ) , margin : a . css ( "margin" ) } ) , b . element } , update : function ( ) { } } , start : function ( a , b ) { } , stop : function ( b , c ) { a . fireEvent ( BI . SortList . EVENT _CHANGE ) } , over : function ( a , b ) { } } ) } , _formatItems : function ( a ) { return BI . each ( a , function ( a , b ) { b = BI . stripEL ( b ) , b . cls = b . cls ? b . cls + " sort-item" : "sort-item" , b . attributes = { sorted : b . value } } ) , a } , hasNext : function ( ) { return this . loader . hasNext ( ) } , addItems : function ( a ) { this . loader . addItems ( a ) } , populate : function ( a ) { a && ( arguments [ 0 ] = this . _formatItems ( a ) ) , this . loader . populate . apply ( this . loader , arguments ) } , empty : function ( ) { this . loader . empty ( ) } , setNotSelectedValue : function ( ) { this . loader . setNotSelectedValue . apply ( this . loader , arguments ) } , getNotSelectedValue : function ( ) { return this . loader . getNotSelectedValue ( ) } , setValue : function ( ) { this . loader . setValue . apply ( this . loader , arguments ) } , getValue : function ( ) { return this . loader . getValue ( ) } , getAllButtons : function ( ) { return this . loader . getAllButtons ( ) } , getAllLeaves : function ( ) { return this . loader . getAllLeaves ( ) } , getSelectedButtons : function ( ) { return this . loader . getSelectedButtons ( ) } , getNotSelectedButtons : function ( ) { return this . loader . getNotSelectedButtons ( ) } , getIndexByValue : function ( a ) { return this . loader . getIndexByValue ( a ) } , getNodeById : function ( a ) { return this . loader . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . loader . getNodeByValue ( a ) } , getSortedValues : function ( ) { return this . loader . element . sortable ( "toArray" , { attribute : "sorted" } ) } } ) , BI . SortList . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.sort_list" , BI . SortList ) , BI . AllCountPager = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . AllCountPager . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-all-count-pager" , height : 30 , pages : 1 , curr : 1 , count : 1 } ) } , _init : function ( ) { BI . AllCountPager . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.small_text_editor" , cls : "pager-editor" , validationChecker : function ( b ) { return 0 === a . rowCount . getValue ( ) && "0" === b || BI . isPositiveInteger ( b ) } , hgap : 4 , vgap : 0 , value : b . curr , errorText : BI . i18nText ( "BI-Please_Input_Positive_Integer" ) , width : 35 , height : 20 } ) , this . pager = BI . createWidget ( { type : "bi.pager" , width : 36 , layouts : [ { type : "bi.horizontal" , hgap : 1 , vgap : 1 } ] , dynamicShow : ! 1 , pages : b . pages , curr : b . curr , groups : 0 , first : ! 1 , last : ! 1 , prev : { type : "bi.icon_button" , value : "prev" , title : BI . i18nText ( "BI-Previous_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_First_Page" ) , height : 20 , cls : "all-pager-prev column-pre-page-h-font" } , next : { type : "bi.icon_button" , value : "next" , title : BI . i18nText ( "BI-Next_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_Last_Page" ) , height : 20 , cls : "all-pager-next column-next-page-h-font" } , hasPrev : b . hasPrev , hasNext : b . hasNext , firstPage : b . firstPage , lastPage : b . lastPage } ) , this . editor . on ( BI . TextEditor . EVENT _CONFIRM , function ( ) { a . pager . setValue ( BI . parseInt ( a . editor . getValue ( ) ) ) , a . fireEvent ( BI . AllCountPager . EVENT _CHANGE ) } ) , this . pager . on ( BI . Pager . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . AllCountPager . EVENT _CHANGE ) } ) , this . pager . on ( BI . Pager . EVENT _AFTER _POPULATE , function ( ) { a . editor . setValue ( a . pager . getCurrentPage ( ) ) } ) , this . allPages = BI . createWidget ( { type : "bi.label" , width : 30 , title : b . pages , text : "/" + b . pages } ) , this . rowCount = BI . createWidget ( { type : "bi.label" , height : b . height , hgap : 5 , text : b . count , title : b . count } ) ; var c = BI . createWidget ( { type : "bi.left" , height : b . height , scrollable : ! 1 , items : [ { type : "bi.label" , height : b . height , text : BI . i18nText ( "BI-Basic_Total" ) , width : 15 } , this . rowCount , { type : "bi.label" , height : b . height , text : BI . i18nText ( "BI-Tiao_Data" ) , width : 50 , textAlign : "left" } ] } ) ; BI . createWidget ( { type : "bi.center_adapt" , element : this , columnSize : [ "" , 35 , 40 , 36 ] , items : [ c , this . editor , this . allPages , this . pager ] } ) } , alwaysShowPager : ! 0 , setAllPages : function ( a ) { this . allPages . setText ( "/" + a ) , this . allPages . setTitle ( a ) , this . pager . setAllPages ( a ) , this . editor . setEnable ( a >= 1 ) } , setValue : function ( a ) { this . pager . setValue ( a ) } , setVPage : function ( a ) { this . pager . setValue ( a ) } , setCount : function ( a ) { thi
BI . shortcut ( "bi.rich_editor_size_chooser" , BI . RichEditorSizeChooser ) , BI . RichEditor = BI . inherit ( BI . Widget , { props : { baseCls : "bi-rich-editor" , toolbar : { } , readOnly : ! 1 } , render : function ( ) { var a = this , b = this . options , c = { type : "bi.nic_editor" , width : b . width , height : b . height , readOnly : b . readOnly , ref : function ( ) { a . editor = this } , listeners : [ { eventName : BI . NicEditor . EVENT _BLUR , action : function ( ) { a . fireEvent ( BI . RichEditor . EVENT _CONFIRM ) } } , { eventName : BI . NicEditor . EVENT _FOCUS , action : function ( ) { b . readOnly || a . combo . isViewVisible ( ) || a . combo . showView ( ) , a . fireEvent ( BI . RichEditor . EVENT _FOCUS ) } } ] } ; return b . readOnly ? c : ( this . editor = BI . createWidget ( c ) , { type : "bi.combo" , toggle : ! 1 , trigger : "click" , direction : "top,right" , isNeedAdjustWidth : ! 1 , isNeedAdjustHeight : ! 1 , adjustLength : 1 , ref : function ( ) { a . combo = this } , el : this . editor , popup : { el : BI . extend ( { type : "bi.rich_editor_text_toolbar" , editor : this . editor } , b . toolbar ) , height : 30 , stopPropagation : ! 0 , stopEvent : ! 0 } , listeners : [ { eventName : BI . Combo . EVENT _AFTER _HIDEVIEW , action : function ( ) { a . fireEvent ( BI . RichEditor . EVENT _AFTER _HIDEVIEW ) } } ] } ) } , mounted : function ( ) { var a = this . options ; BI . isNull ( a . value ) && this . editor . setValue ( a . value ) } , focus : function ( ) { this . editor . focus ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) } , getValue : function ( ) { return this . editor . getValue ( ) } } ) , BI . RichEditor . EVENT _AFTER _HIDEVIEW = "EVENT_AFTER_HIDEVIEW" , BI . RichEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . RichEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . shortcut ( "bi.rich_editor" , BI . RichEditor ) , BI . SegmentButton = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . SegmentButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-segment-button bi-list-item-active" , shadow : ! 0 , readonly : ! 0 , hgap : 5 } ) } , _init : function ( ) { BI . SegmentButton . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . text = BI . createWidget ( { type : "bi.label" , element : this , height : a . height - 2 , whiteSpace : a . whiteSpace , text : a . text , value : a . value , hgap : a . hgap } ) } , setSelected : function ( ) { BI . SegmentButton . superclass . setSelected . apply ( this , arguments ) } , setText : function ( a ) { BI . SegmentButton . superclass . setText . apply ( this , arguments ) , this . text . setText ( a ) } , destroy : function ( ) { BI . SegmentButton . superclass . destroy . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.segment_button" , BI . SegmentButton ) , BI . Segment = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Segment . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-segment" , items : [ ] , height : 24 } ) } , _init : function ( ) { BI . Segment . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . buttonGroup = BI . createWidget ( { element : this , type : "bi.button_group" , value : b . value , items : BI . createItems ( b . items , { type : "bi.segment_button" , height : b . height - 2 , whiteSpace : b . whiteSpace } ) , layout : [ { type : "bi.center" } ] } ) , this . buttonGroup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . buttonGroup . on ( BI . ButtonGroup . EVENT _CHANGE , function ( b , c ) { a . fireEvent ( BI . Segment . EVENT _CHANGE , b , c ) } ) } , setValue : function ( a ) { this . buttonGroup . setValue ( a ) } , setEnabledValue : function ( a ) { this . buttonGroup . setEnabledValue ( a ) } , getValue : function ( ) { return this . buttonGroup . getValue ( ) } } ) , BI . Segment . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.segment" , BI . Segment ) , BI . AdaptiveTable = BI . inherit ( BI . Widget , { _const : { perColumnSize : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AdaptiveTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-adaptive-table" , el : { type : "bi.resizable_table" } , isNeedResize : ! 0 , isNeedFreeze : ! 1 , freezeCols : [ ] , isNeedMerge : ! 1 , mergeCols : [ ] , mergeRule : BI . emptyFn , columnSize : [ ] , minColumnSize : [ ] , maxColumnSize : [ ] , headerRowSize : 25 , rowSize : 25 , regionColumnSize : [ ] , header : [ ] , items : [ ] , crossHeader : [ ] , crossItems : [ ] } ) } , _init : function ( ) { BI . AdaptiveTable . superclass . _init . apply ( this , arguments ) ; 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 : ! 1 , isNeedFreeze : b . isNeedFreeze , freezeCols : c . freezeCols , isNeedMerge : b . isNeedMerge , mergeCols : b . mergeCols , mergeRule : b . mergeRule , columnSize : c . columnSize , h
a . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , a . isSelected ( ) , a ) } ) , this . text = BI . createWidget ( { type : "bi.label" , 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 ( { type : "bi.htape" , element : this , items : [ { width : 36 , el : { type : "bi.center_adapt" , items : [ this . checkbox , this . half ] } } , { el : this . text } ] } ) } , _setSelected : function ( a ) { this . checkbox . setSelected ( ! ! a ) } , beforeClick : function ( ) { var a = this . isHalfSelected ( ) , b = this . isSelected ( ) ; a === ! 0 ? this . setSelected ( ! 0 ) : this . setSelected ( ! b ) } , setSelected : function ( a ) { this . checkbox . setSelected ( a ) , this . setHalfSelected ( ! 1 ) } , setHalfSelected : function ( a ) { this . halfSelected = ! ! a , a === ! 0 ? ( this . checkbox . setSelected ( ! 1 ) , this . half . visible ( ) , this . checkbox . invisible ( ) ) : ( this . half . invisible ( ) , this . checkbox . visible ( ) ) } , isHalfSelected : function ( ) { return ! this . isSelected ( ) && ! ! this . halfSelected } , isSelected : function ( ) { return this . checkbox . isSelected ( ) } , setValue : function ( a ) { BI . MultiSelectBar . superclass . setValue . apply ( this , arguments ) ; var b = this . options . isAllCheckedBySelectedValue . apply ( this , arguments ) ; this . _setSelected ( b ) , ! b && this . setHalfSelected ( this . options . isHalfCheckedBySelectedValue . apply ( this , arguments ) ) } } ) , BI . MultiSelectBar . EVENT _CHANGE = "MultiSelectBar.EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_bar" , BI . MultiSelectBar ) , BI . BranchRelation = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . BranchRelation . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-branch-relation-tree" , items : [ ] , centerOffset : 0 , direction : BI . Direction . Bottom , align : BI . VerticalAlign . Top } ) } , _init : function ( ) { BI . BranchRelation . superclass . _init . apply ( this , arguments ) , this . populate ( this . options . items ) } , _stratification : function ( ) { var a = [ ] ; return this . tree . recursion ( function ( b , c ) { b . leaf = b . isLeaf ( ) , a [ c . length - 1 ] || ( a [ c . length - 1 ] = [ ] ) , a [ c . length - 1 ] . push ( b ) } ) , a } , _calculateLeaves : function ( ) { function a ( b ) { var c = 0 ; return b . isLeaf ( ) ? 1 : ( BI . each ( b . getChildren ( ) , function ( b , d ) { c += a ( d ) } ) , b . set ( "leaves" , c ) , c ) } var b = 0 ; return b = a ( this . tree . getRoot ( ) ) } , _translate : function ( a ) { var b = [ ] , c = a . length ; return BI . each ( a , function ( d , e ) { b [ d ] || ( b [ d ] = [ ] ) , BI . each ( e , function ( f , g ) { if ( g . isLeaf ( ) && d < c - 1 ) { var h = new BI . Node ( BI . UUID ( ) ) ; h . isNew = ! 0 ; var i = 0 ; if ( f > 0 ) { var j = e [ f - 1 ] . getLastChild ( ) ; i = a [ d + 1 ] . indexOf ( j ) + 1 } a [ d + 1 ] . splice ( i , 0 , g ) ; var k = g . parent . getChildIndex ( g . id ) ; g . parent . removeChildByIndex ( k ) , g . parent . addChild ( h , k ) , h . addChild ( g ) , b [ d ] . push ( h ) , e [ f ] = h } else b [ d ] . push ( g ) } ) } ) , b } , _fill : function ( a ) { var b = [ ] , c = a . length ; return BI . each ( a , function ( d , e ) { b [ d ] || ( b [ d ] = [ ] ) , BI . each ( e , function ( f , g ) { if ( g . isLeaf ( ) && d < c - 1 ) { var h = new BI . Node ( BI . UUID ( ) ) ; h . leaf = ! 0 , h . width = g . width , h . height = g . height , h . isNew = ! 0 ; var i = 0 ; if ( f > 0 ) { var j = e [ f - 1 ] . getLastChild ( ) ; i = a [ d + 1 ] . indexOf ( j ) + 1 } a [ d + 1 ] . splice ( i , 0 , h ) , g . addChild ( h ) } b [ d ] . push ( g ) } ) } ) , b } , _adjust : function ( a ) { for ( ; ; ) { var b = ! 1 ; if ( BI . backEach ( a , function ( a , c ) { BI . each ( c , function ( a , c ) { if ( ! c . isNew ) { var d = ! 0 ; if ( BI . any ( c . getChildren ( ) , function ( a , b ) { if ( ! b . isNew ) return d = ! 1 , ! 0 } ) , ! c . isLeaf ( ) && d === ! 0 ) { var e = [ ] ; BI . each ( c . getChildren ( ) , function ( a , b ) { e = e . concat ( b . getChildren ( ) ) } ) , c . removeAllChilds ( ) , BI . each ( e , function ( a , b ) { c . addChild ( b ) } ) ; var f = new BI . Node ( BI . UUID ( ) ) ; f . isNew = ! 0 ; var g = c . parent . getChildIndex ( c . id ) ; c . parent . removeChildByIndex ( g ) , c . parent . addChild ( f , g ) , f . addChild ( c ) , b = ! 0 } } } ) } ) , b === ! 1 ) break ; a = this . _stratification ( ) } return a } , _calculateWidth : function ( ) { function a ( b ) { var c = 0 ; return b . isLeaf ( ) ? b . width : ( BI . each ( b . getChildren ( ) , function ( b , d ) { c += a ( d ) } ) , c ) } function b ( a ) { var c = 0 ; return a . isLeaf ( ) ? a . height : ( BI . each ( a . getChildren ( ) , function ( a , d ) { c += b ( d ) } ) , c ) } var c = ( this . options , 0 ) ; return c = this . _isVertical ( ) ? a ( this . tree . getRoot ( ) ) : b ( this . tree . getRoot ( ) ) } , _isVertical : function ( ) { var a = this . options ; return a . direction === BI . Direction . Top || a . direction === BI . Direction . Bottom } , _calculateHeight : function ( ) { function a ( b ) { var c = 0 ; return BI . each ( b . getChildren ( ) , function ( b , d ) { c = Math . max ( c , a ( d ) ) } ) , c + ( b . height || 0 ) } function b ( a ) { var c = 0 ; return BI . each ( a . getChildren ( ) , function ( a , d ) { c = Math . max ( c , b ( d ) ) } ) , c + ( a . width || 0 ) } var c = ( this . options , 0 ) ; return c = this . _isVertical ( ) ? a ( this . tree . getRoot ( ) ) : b ( t
var a = this ; this . options ; this . trigger = BI . createWidget ( { type : "bi.date_triangle_trigger" } ) , this . popup = BI . createWidget ( { type : "bi.month_popup" } ) , this . popup . on ( BI . YearPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , offsetStyle : "center" , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , stopPropagation : ! 1 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _CHANGE , function ( ) { a . combo . hideView ( ) , a . fireEvent ( BI . MonthDateCombo . EVENT _CHANGE ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . MonthDateCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.month_date_combo" , BI . MonthDateCombo ) , BI . YearDateCombo = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . YearDateCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-year-combo" , min : "1900-01-01" , max : "2099-12-31" , height : 25 } ) } , _init : function ( ) { BI . YearDateCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.date_triangle_trigger" } ) , this . popup = BI . createWidget ( { type : "bi.year_popup" , min : b . min , max : b . max } ) , this . popup . on ( BI . YearPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . YearDateCombo . EVENT _CHANGE ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , offsetStyle : "center" , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , stopPropagation : ! 1 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . YearDateCombo . EVENT _CHANGE ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . YearDateCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.year_date_combo" , BI . YearDateCombo ) , BI . DatePicker = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . DatePicker . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-date-picker bi-background" , height : 40 , min : "1900-01-01" , max : "2099-12-31" } ) } , _init : function ( ) { BI . DatePicker . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _year = BI . getDate ( ) . getFullYear ( ) , this . _month = BI . getDate ( ) . getMonth ( ) , this . left = BI . createWidget ( { type : "bi.icon_button" , cls : "pre-page-h-font" , width : 25 , height : 25 } ) , this . left . on ( BI . IconButton . EVENT _CHANGE , function ( ) { 0 === a . _month ? a . setValue ( { year : a . year . getValue ( ) - 1 , month : 12 } ) : a . setValue ( { year : a . year . getValue ( ) , month : a . month . getValue ( ) - 1 } ) , a . fireEvent ( BI . DatePicker . EVENT _CHANGE ) , a . _checkLeftValid ( ) , a . _checkRightValid ( ) } ) , this . right = BI . createWidget ( { type : "bi.icon_button" , cls : "next-page-h-font" , width : 25 , height : 25 } ) , this . right . on ( BI . IconButton . EVENT _CHANGE , function ( ) { 11 === a . _month ? a . setValue ( { year : a . year . getValue ( ) + 1 , month : 0 } ) : a . setValue ( { year : a . year . getValue ( ) , month : a . month . getValue ( ) + 1 } ) , a . fireEvent ( BI . DatePicker . EVENT _CHANGE ) , a . _checkLeftValid ( ) , a . _checkRightValid ( ) } ) , this . year = BI . createWidget ( { type : "bi.year_date_combo" , min : b . min , max : b . max } ) , this . year . on ( BI . YearDateCombo . EVENT _CHANGE , function ( ) { a . setValue ( { year : a . year . getValue ( ) , month : a . month . getValue ( ) } ) , a . fireEvent ( BI . DatePicker . EVENT _CHANGE ) } ) , this . month = BI . createWidget ( { type : "bi.month_date_combo" } ) , this . month . on ( BI . MonthDateCombo . EVENT _CHANGE , function ( ) { a . setValue ( { year : a . year . getValue ( ) , month : a . month . getValue ( ) } ) , a . fireEvent ( BI . DatePicker . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : { type : "bi.center_adapt" , items : [ this . left ] } , width : 25 } , { type : "bi.center_adapt" , items : [ { type : "bi.horizontal" , width : 100 , items : [ this . year , this . month ] } ] } , { el : { type : "bi.center_adapt" , items : [ this . right ] } , width : 25 } ] } ) , this . setValue ( { year : this . _year , month : this . _month } ) } , _checkLeftValid : function ( ) { var a = this . options , b = ! ( 1 === this . _month && this . _year === BI . parseDateTime ( a . min , "%Y-%X-%d" ) . getFullYear ( ) ) ; return this . left . setEnable ( b ) , b } , _checkRightValid : function ( ) { var a = this . options , b = ! ( 12 === this . _month && this . _year === BI . parseDateTime ( a . max , "%Y-%X-%d" ) . getFullYear ( ) ) ; return this . right . setEnable ( b ) , b } , setValue : function ( a ) { this . _year = a .
} ) , this . topBtn = BI . createWidget ( { type : "bi.icon_button" , cls : "column-pre-page-h-font top-button bi-border-left bi-border-bottom" } ) , this . topBtn . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . _finetuning ( 1 ) , a . fireEvent ( BI . DateTimeSelect . EVENT _CONFIRM ) } ) , 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 } ] } ) , this . setValue ( a . value ) } , _printTime : function ( a ) { return a < 10 ? "0" + a : a } , setValue : function ( a ) { var b , c = a ; if ( BI . isNull ( c ) ) c = BI . getDate ( ) , b = c . print ( "%Y-%X-%d %H:%M:%S" ) ; else { var d = BI . getDate ( c . year , c . month - 1 , 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 . StaticDateTimePaneCard = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . StaticDateTimePaneCard . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-date-time-pane" , min : "1900-01-01" , max : "2099-12-31" , selectedTime : null } ) } , _init : function ( ) { BI . StaticDateTimePaneCard . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . today = BI . getDate ( ) , this . _year = this . today . getFullYear ( ) , this . _month = this . today . getMonth ( ) , this . selectedTime = b . selectedTime || { year : this . _year , month : this . _month } , this . datePicker = BI . createWidget ( { type : "bi.date_picker" , min : b . min , max : b . max } ) , this . datePicker . on ( BI . DatePicker . EVENT _CHANGE , function ( ) { a . selectedTime = BI . extend ( a . datePicker . getValue ( ) , a . timeSelect . getValue ( ) ) , a . calendar . setSelect ( BI . Calendar . getPageByDateJSON ( a . selectedTime ) ) } ) , this . calendar = BI . createWidget ( { direction : "top" , logic : { dynamic : ! 1 } , type : "bi.navigation" , tab : this . datePicker , cardCreator : BI . bind ( this . _createNav , this ) } ) , this . calendar . on ( BI . Navigation . EVENT _CHANGE , function ( ) { a . selectedTime = BI . extend ( a . calendar . getValue ( ) , a . timeSelect . getValue ( ) ) , a . calendar . empty ( ) , a . setValue ( a . selectedTime ) , a . fireEvent ( BI . DateCalendarPopup . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ this . calendar , { el : { type : "bi.dynamic_date_time_select" , ref : function ( ) { a . timeSelect = this } } , height : 40 } ] } ) , this . setValue ( b . selectedTime ) } , _createNav : function ( a ) { var b = BI . Calendar . getDateJSONByPage ( a ) , c = BI . createWidget ( { type : "bi.calendar" , logic : { dynamic : ! 1 } , min : this . options . min , max : this . options . max , year : b . year , month : b . month , day : this . selectedTime . day } ) ; return c } , _getNewCurrentDate : function ( ) { var a = BI . getDate ( ) ; return { year : a . getFullYear ( ) , month : a . getMonth ( ) } } , _setCalenderValue : function ( a ) { this . calendar . setSelect ( BI . Calendar . g
shadow : ! 0 , text : BI . i18nText ( "BI-Multi_Date_Today" ) , ref : function ( ) { a . textButton = this } , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . BUTTON _lABEL _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-high-light bi-border-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . BUTTON _OK _EVENT _CHANGE ) } } ] } ] ] } , height : 24 } ] } ) , this . setValue ( b . value ) } , _getTabJson : function ( ) { var a = this ; return { type : "bi.tab" , showIndex : BI . DynamicDateCombo . Static , ref : function ( ) { a . dateTab = this } , tab : { type : "bi.linear_segment" , cls : "bi-border-bottom" , height : this . constants . tabHeight , items : BI . createItems ( [ { text : BI . i18nText ( "BI-Multi_Date_YMD" ) , value : BI . DynamicDateCombo . Static } , { text : BI . i18nText ( "BI-Basic_Dynamic_Title" ) , value : BI . DynamicDateCombo . Dynamic } ] , { textAlign : "center" } ) } , cardCreator : function ( b ) { switch ( b ) { case BI . DynamicDateCombo . Dynamic : return { type : "bi.dynamic_date_card" , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . _setInnerValue ( a . year , b ) } } ] , ref : function ( ) { a . dynamicPane = this } } ; case BI . DynamicDateCombo . Static : default : return { type : "bi.date_calendar_popup" , min : a . options . min , max : a . options . max , listeners : [ { eventName : BI . DateCalendarPopup . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . EVENT _CHANGE ) } } ] , ref : function ( ) { a . ymd = this } } } } , listeners : [ { eventName : BI . Tab . EVENT _CHANGE , action : function ( ) { var b = a . dateTab . getSelect ( ) ; switch ( b ) { case BI . DynamicDateCombo . Static : var c = BI . DynamicDateHelper . getCalculation ( a . dynamicPane . getValue ( ) ) ; a . ymd . setValue ( { year : c . getFullYear ( ) , month : c . getMonth ( ) , day : c . getDate ( ) } ) , a . _setInnerValue ( ) ; break ; case BI . DynamicDateCombo . Dynamic : default : a . storeValue && a . storeValue . type === BI . DynamicDateCombo . Dynamic ? a . dynamicPane . setValue ( a . storeValue . value ) : a . dynamicPane . setValue ( { year : 0 } ) , a . _setInnerValue ( ) } } } ] } } , _setInnerValue : function ( ) { if ( this . dateTab . getSelect ( ) === BI . DynamicDateCombo . Static ) this . textButton . setValue ( BI . i18nText ( "BI-Multi_Date_Today" ) ) , this . textButton . setEnable ( ! 0 ) ; else { var a = BI . DynamicDateHelper . getCalculation ( this . dynamicPane . getValue ( ) ) ; a = a . print ( "%Y-%x-%e" ) , this . textButton . setValue ( a ) , this . textButton . setEnable ( ! 1 ) } } , _checkValueValid : function ( a ) { return BI . isNull ( a ) || BI . isEmptyObject ( a ) || BI . isEmptyString ( a ) } , setValue : function ( a ) { this . storeValue = a ; var b , c , d = this ; switch ( a = a || { } , b = a . type || BI . DynamicDateCombo . Static , c = a . value || a , this . dateTab . setSelect ( b ) , b ) { case BI . DynamicDateCombo . Dynamic : this . dynamicPane . setValue ( c ) , d . _setInnerValue ( ) ; break ; case BI . DynamicDateCombo . Static : default : if ( this . _checkValueValid ( c ) ) { var e = BI . getDate ( ) ; this . ymd . setValue ( { year : e . getFullYear ( ) , month : e . getMonth ( ) + 1 , day : e . getDate ( ) } ) , this . textButton . setValue ( BI . i18nText ( "BI-Multi_Date_Today" ) ) } else this . ymd . setValue ( c ) , this . textButton . setValue ( BI . i18nText ( "BI-Multi_Date_Today" ) ) ; this . textButton . setEnable ( ! 0 ) } } , getValue : function ( ) { return { type : this . dateTab . getSelect ( ) , value : this . dateTab . getValue ( ) } } } ) , BI . DynamicDatePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . DynamicDatePopup . BUTTON _OK _EVENT _CHANGE = "BUTTON_OK_EVENT_CHANGE" , BI . DynamicDatePopup . BUTTON _lABEL _EVENT _CHANGE = "BUTTON_lABEL_EVENT_CHANGE" , BI . DynamicDatePopup . BUTTON _CLEAR _EVENT _CHANGE = "BUTTON_CLEAR_EVENT_CHANGE" , BI . shortcut ( "bi.dynamic_date_popup" , BI . DynamicDatePopup ) , BI . DynamicDateTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , yearLength : 4 , yearMonthLength : 7 } , props : { extraCls : "bi-date-trigger" , min : "1900-01-01" , max : "2099-12-31" , height : 24 } , _init : function ( ) { BI . DynamicDateTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , validationChecker : function ( b ) { var c = b . match ( /\d+/g ) ; return a . _autoAppend ( b , c ) , a . _dateCheck ( b ) && BI . checkDateLegal ( b ) && a . _checkVoid ( { year : c [ 0 ] , month : c [ 1 ] , day : c [ 2 ] } ) } , quitChecker : function ( ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , watermark : BI . i18nText ( "BI-Basic_Unrestricted" ) , errorText : function ( ) { return a . editor . isEditing ( ) ? BI . i18nText ( "BI-Date_Trigger_Error_Text" ) : BI . i18nText ( "BI-Year_Trigger_Invalid_Text" ) } } ) , th
_defaultConfig : function ( ) { var a = BI . TextEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-text-editor bi-border" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 , watermark : "" , errorText : "" , height : 24 } ) } , _init : function ( ) { BI . TextEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNumber ( b . height ) && this . element . css ( { height : b . height - 2 } ) , BI . isNumber ( b . width ) && this . element . css ( { width : b . width - 2 } ) , this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height - 2 , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , value : b . value , title : b . title , tipType : b . tipType , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText } ) , 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 . TextEditor . EVENT _FOCUS ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _BLUR ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _CLICK ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _CHANGE ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . TextEditor . EVENT _KEY _DOWN ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( b ) { a . fireEvent ( BI . TextEditor . EVENT _SPACE ) } ) , this . editor . on ( BI . Editor . EVENT _BACKSPACE , function ( b ) { a . fireEvent ( BI . TextEditor . EVENT _BACKSPACE ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _VALID ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( b ) { a . fireEvent ( BI . TextEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _START ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _PAUSE ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _STOP ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _ERROR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _EMPTY ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ this . editor ] } ) } , focus : function ( ) { this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) } , setErrorText : function ( a ) { this . editor . setErrorText ( a ) } , getErrorText : function ( ) { return this . editor . getErrorText ( ) } , isValid : function ( ) { return this . editor . isValid ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) } , getValue : function ( ) { return this . editor . getValue ( ) } } ) , BI . TextEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . TextEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . TextEditor . EVENT _BLUR = "EVENT_BLUR" , BI . TextEditor . EVENT _CLICK = "EVENT_CLICK" , BI . TextEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . TextEditor . EVENT _SPACE = "EVENT_SPACE" , BI . TextEditor . EVENT _BACKSPACE = "EVENT_BACKSPACE" , BI . TextEditor . EVENT _START = "EVENT_START" , BI . TextEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . TextEditor . EVENT _STOP = "EVENT_STOP" , BI . TextEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . TextEditor . EVENT _VALID = "EVENT_VALID" , BI . TextEditor . EVENT _ERROR = "EVENT_ERROR" , BI . TextEditor . EVENT _ENTER = "EVENT_ENTER" , BI . TextEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . TextEditor . EVENT _REMOVE = "EVENT_REMOVE" , BI . TextEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.text_editor" , BI . TextEditor ) , BI . SmallTextEditor = BI . inherit ( BI . TextEditor , { _defaultConfig : function ( ) { var a = BI . SmallTextEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-small-text-editor" , height : 25 } ) } , _init : function ( ) { BI . SmallTextEditor . superclass . _init . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.small_text_editor" , BI . SmallTextEditor ) , BI . FileManagerButtonGroup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . ext
var c = 100 * a / this . _getGrayTrackLength ( ) , d = BI . parseFloat ( c . toFixed ( 1 ) ) ; b ? this . _setSliderOnePosition ( d ) : this . _setSliderTwoPosition ( d ) } , _draggable : function ( a , b ) { function c ( a ) { return BI . clamp ( a , 0 , d . _getGrayTrackLength ( ) ) } var d = this , e = ( this . options , ! 1 ) , f = 0 , g = 0 , h = 0 , i = new BI . MouseMoveTracker ( function ( j ) { i . isDragging ( ) && ( e = ! 0 , g += j , f = c ( h + g ) , a . element . addClass ( "dragging" ) , d . _rePosBySizeAfterMove ( f , b ) ) } , function ( ) { e === ! 0 && ( f = c ( f ) , d . _rePosBySizeAfterStop ( f , b ) , f = 0 , g = 0 , h = f , e = ! 1 ) , a . element . removeClass ( "dragging" ) , i . releaseMouseMoves ( ) , d . fireEvent ( BI . IntervalSlider . EVENT _CHANGE ) } , window ) ; a . element . on ( "mousedown" , function ( b ) { a . isEnabled ( ) && ( h = this . offsetLeft , c ( h ) , i . captureMouseMoves ( b ) ) } ) } , _createLabelWrapper : function ( ) { var a = this . _constant ; return { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . labelOne , top : 0 , left : "0%" } ] } , { type : "bi.absolute" , items : [ { el : this . labelTwo , top : 0 , left : "100%" } ] } ] , rgap : a . EDITOR _R _GAP , height : 70 } , top : 0 , left : 0 , width : "100%" } } , _createSliderWrapper : function ( ) { var a = this . _constant ; return { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . sliderOne , top : 0 , left : "0%" } ] } , { type : "bi.absolute" , items : [ { el : this . sliderTwo , top : 0 , left : "100%" } ] } ] , hgap : a . SLIDER _WIDTH _HALF , height : a . SLIDER _HEIGHT } , top : 20 , left : 0 , width : "100%" } } , _createTrackWrapper : function ( ) { return BI . createWidget ( { type : "bi.absolute" , items : [ { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . grayTrack , top : 0 , left : 0 , width : "100%" } , { el : this . blueTrack , top : 0 , left : 0 , width : "0%" } ] } ] , hgap : 8 , height : 8 } , top : 8 , left : 0 , width : "100%" } ] } ) } , _checkValidation : function ( a ) { var b = this . options , c = ! 1 , d = ( a + "" ) . split ( "." ) [ 1 ] ; return BI . isEmptyString ( d ) || BI . isNumeric ( a ) && ! ( BI . isNull ( a ) || a < this . min || a > this . max ) && ( b . digit === ! 1 ? c = ! 0 : ( d = d || "" , c = d . length === b . digit ) ) , c } , _checkOverlap : function ( ) { var a = this . labelOne . element [ 0 ] . offsetLeft , b = this . labelTwo . element [ 0 ] . offsetLeft ; a <= b ? b - a < 90 ? this . labelTwo . element . css ( { top : 40 } ) : this . labelTwo . element . css ( { top : 0 } ) : a - b < 90 ? this . labelTwo . element . css ( { top : 40 } ) : this . labelTwo . element . css ( { top : 0 } ) } , _setLabelOnePosition : function ( a ) { this . labelOne . element . css ( { left : a + "%" } ) , this . _checkOverlap ( ) } , _setLabelTwoPosition : function ( a ) { this . labelTwo . element . css ( { left : a + "%" } ) , this . _checkOverlap ( ) } , _setSliderOnePosition : function ( a ) { this . sliderOne . element . css ( { left : a + "%" } ) } , _setSliderTwoPosition : function ( a ) { this . sliderTwo . element . css ( { left : a + "%" } ) } , _setBlueTrackLeft : function ( a ) { this . blueTrack . element . css ( { left : a + "%" } ) } , _setBlueTrackWidth : function ( a ) { this . blueTrack . element . css ( { width : a + "%" } ) } , _setBlueTrack : function ( ) { var a = this . _getPercentByValue ( this . labelOne . getValue ( ) ) , b = this . _getPercentByValue ( this . labelTwo . getValue ( ) ) ; a <= b ? ( this . _setBlueTrackLeft ( a ) , this . _setBlueTrackWidth ( b - a ) ) : ( this . _setBlueTrackLeft ( b ) , this . _setBlueTrackWidth ( a - b ) ) } , _setAllPosition : function ( a , b ) { this . _setSliderOnePosition ( a ) , this . _setLabelOnePosition ( a ) , this . _setSliderTwoPosition ( b ) , this . _setLabelTwoPosition ( b ) , this . _setBlueTrack ( ) } , _setVisible : function ( a ) { this . sliderOne . setVisible ( a ) , this . sliderTwo . setVisible ( a ) , this . labelOne . setVisible ( a ) , this . labelTwo . setVisible ( a ) } , _setErrorText : function ( ) { var a = BI . i18nText ( "BI-Please_Enter" ) + this . min + "-" + this . max + BI . i18nText ( "BI-Basic_De" ) + BI . i18nText ( "BI-Basic_Number" ) ; this . labelOne . setErrorText ( a ) , this . labelTwo . setErrorText ( a ) } , _getGrayTrackLength : function ( ) { return this . grayTrack . element [ 0 ] . scrollWidth } , _getValueByPercent : function ( a ) { var b = this . calculation . accurateSubtraction ( this . max , this . min ) , c = this . calculation . accurateMultiplication ( b , a ) , d = this . calculation . accurateDivisionTenExponent ( c , 2 ) ; if ( this . precision < 0 ) { var e = BI . parseFloat ( this . calculation . accurateAddition ( d , this . min ) ) , f = Math . round ( this . calculation . accurateDivisionTenExponent ( e , - this . precision ) ) ; return this . calculation . accurateMultiplication ( f , Math . pow ( 10 , - this . precision ) ) } return BI . parseFloat ( this . calculation . accurateAddition ( d , this . min ) . toFixed ( this . precision ) ) } , _getPercentByValue : function ( a ) { return 100 * ( a - this . min ) / ( this . max - this . min ) } , _setDraggableEnable : function ( a ) { this . sliderOne . setEnable ( a ) , this . sliderTwo . setEnable ( a ) } , _getPrecision : function ( ) { var a = this . calculatio
baseCls : "bi-multilayer-singletree-combo" , isDefaultInit : ! 1 , height : 30 , text : "" , itemsCreator : BI . emptyFn , items : [ ] , value : "" } ) } , _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 , value : b . value } ) , this . popup = BI . createWidget ( { type : "bi.multilayer_single_tree_popup" , isDefaultInit : b . isDefaultInit , itemsCreator : b . itemsCreator , items : b . items , value : b . value } ) , 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" , cls : "tree-view display-inline" , expander : { isDefaultInit : c . isDefaultInit , el : { } , popup : { type : "bi.custom_tree" } } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) , value : c . value , 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 ) } ) , BI . createWidget ( { type : "bi.adaptive" , element : this , scrollable : ! 0 , items : [ this . tree ] } ) } , populate : function ( a ) { this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) ) } , setValue : function ( a ) { this . tree . setValue ( a ) } , getValue : function ( ) { return BI . filter ( BI . uniq ( this . tree . getValue ( ) ) , function ( a , b ) { return BI . isNotNull ( b ) } ) } , getAllLeaves : function ( ) { return this . tree . getAllLeaves ( ) } , getNodeById : function ( a ) { return this . tree . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . tree . getNodeByValue ( a ) } } ) , BI . MultiLayerSingleLevelTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_single_level_tree" , BI . MultiLayerSingleLevelTree ) , BI . MultiLayerSingleTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSingleTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-singletree-popup" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , isDefaultInit : ! 1 , itemsCreator : BI . emptyFn , items : [ ] } ) } , _init : function ( ) { BI . MultiLayerSingleTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : " bi . multilayer _single _level
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 , value : b . value } ) , 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 , value : b . value } ) , 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 ) , this . searcher = BI . createWidget ( b . searcher , { type : "bi.multi_select_searcher" , height : b . height , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , popup : { } , adapter : b . adapter , masker : b . masker , value : b . value } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _START , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _START ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _PAUSE ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _SEARCHING , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _SEARCHING , arguments ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _STOP ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _CHANGE , arguments ) } ) , this . numberCounter = BI . createWidget ( b . switcher , { type : "bi.multi_select_check_selected_switcher" , valueFormatter : b . valueFormat
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 ) } , value : ( b . value || { } ) . value } ) , this . display . on ( BI . Events . AFTERINIT , function ( ) { a . fireEvent ( BI . Events . AFTERINIT ) } ) , this . display . on ( BI . TreeView . EVENT _INIT , function ( ) { d . setVisible ( ! 1 ) } ) , this . display . on ( BI . TreeView . EVENT _AFTERINIT , function ( ) { d . setVisible ( ! 0 ) } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { height : this . constants . height , el : d } , { height : "fill" , el : this . display } ] } ) } , empty : function ( ) { this . display . empty ( ) } , populate : function ( a ) { this . display . stroke ( a ) } , setValue : function ( a ) { a || ( a = { } ) , this . display . setSelectedValue ( a . value ) } , getValue : function ( ) { } } ) , BI . MultiTreeCheckPane . EVENT _CONTINUE _CLICK = "EVENT_CONTINUE_CLICK" , BI . shortcut ( "bi.multi_tree_check_pane" , BI . MultiTreeCheckPane ) , BI . MultiTreeCombo = BI . inherit ( BI . Single , { constants : { offset : { top : 1 , left : 1 , r
} , 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 . PreviewTableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . PreviewTableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-preview-table-cell" , text : "" } ) } , _init : function ( ) { BI . PreviewTableCell . superclass . _init . apply ( this , arguments ) ; this . options ; BI . createWidget ( { type : "bi.label" , element : this , textAlign : "left" , whiteSpace : "normal" , height : this . options . height , text : this . options . text , value : this . options . value } ) } } ) , BI . shortcut ( "bi.preview_table_cell" , BI . PreviewTableCell ) , BI . PreviewTableHeaderCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . PreviewTableHeaderCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-preview-table-header-cell" , text : "" } ) } , _init : function ( ) { BI . PreviewTableHeaderCell . superclass . _init . apply ( this , arguments ) ; this . options ; BI . createWidget ( { type : "bi.label" , element : this , textAlign : "left" , whiteSpace : "normal" , height : this . options . height , text : this . options . text , value : this . options . value } ) } } ) , BI . shortcut ( "bi.preview_table_header_cell" , BI . PreviewTableHeaderCell ) , BI . PreviewTable = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . PreviewTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-preview-table" , isNeedFreeze : ! 1 , freezeCols : [ ] , rowSize : null , columnSize : [ ] , headerRowSize : 30 , header : [ ] , items : [ ] } ) } , _init : function ( ) { BI . PreviewTable . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . table = BI . createWidget ( { type : "bi.table_view" , element : this , isNeedResize : ! 1 , isResizeAdapt : ! 1 , isNeedFreeze : b . isNeedFreeze , freezeCols : b . freezeCols , rowSize : b . rowSize , columnSize : b . columnSize , headerRowSize : b . headerRowSize , header : BI . map ( b . header , function ( a , b ) { return BI . map ( b , function ( a , b ) { return BI . extend ( { type : "bi.preview_table_header_cell" } , b ) } ) } ) , items : BI . map ( b . items , function ( a , b ) { return BI . map ( b , function ( a , b ) { return BI . extend ( { type : "bi.preview_table_cell" } , b ) } ) } ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _INIT , function ( ) { a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _INIT , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _RESIZE , function ( ) { a . _adjustColumns ( ) } ) , this . _adjustColumns ( ) } , _hasAdaptCol : function ( a ) { return BI . any ( a , function ( a , b ) { return "" === b } ) } , _isPercentage : function ( a ) { return a [ 0 ] <= 1 } , _adjustColumns : function ( ) { var a = this . options ; if ( a . isNeedFreeze === ! 0 ) { if ( this . _isPercentage ( a . columnSize ) ) { if ( this . _hasAdaptCol ( a . columnSize ) ) { var b = [ ] , c = 0 ; BI . each ( a . columnSize , function ( a , d ) { "" === d ? b . push ( a ) : c += d } ) , c = 1 - c ; var d = c / b . length ; BI . each ( b , function ( b , c ) { a . columnSize [ c ] = d } ) } var e = 0 !== BI . first ( a . freezeCols ) , f = [ ] , g = [ ] ; BI . each ( a . columnSize , function ( b , c ) { a . freezeCols . contains ( b ) ? f . push ( c ) : g . push ( c ) } ) ; var h = BI . sum ( f ) , i = BI . sum ( g ) ; BI . each ( f , function ( a , b ) { f [ a ] = b / h } ) , BI . each ( g , function ( a , b ) { g [ a ] = b / i } ) , this . table . setRegionColumnSize ( e ? [ "fill" , h ] : [ h , "fill" ] ) , this . table . setColumnSize ( e ? g . concat ( f ) : f . concat ( g ) ) } } else ( this . _hasAdaptCol ( a . columnSize ) || this . _isPercentage ( a . columnSize ) ) && this . table . setRegionColumnSize ( [ "100%" ] ) } , setColumnSize : function ( a ) { return this . table . setColumnSize ( a ) } , getColumnSize : function ( ) { return this . table . getColumnSize ( ) } , getCalculateColumnSize : function ( ) { return this . table . getCalculateColumnSize ( ) } , setHeaderColumnSize : function ( a ) { return this . table . setHeaderColumnSize ( a ) } , setRegionColumnSize : function ( a ) { return this . table . setRegionColumnSize ( a ) } , getRegionColumnSize : function ( ) { return this . table . getRegionColumnSize ( ) } , getCalculateRegionColumnSize : function ( ) { return this . table . getCalculateRegionColumnSize ( ) } , getCalculateRegionRowSize : function ( ) { return this . table . getCalculateRegionRowSize ( ) } , getC
} ) , this . table = BI . createWidget ( b . el , { type : "bi.adaptive_table" , width : b . showSequence === ! 0 ? b . width - 60 : 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 , headerCellStyleGetter : b . headerCellStyleGetter , summaryCellStyleGetter : b . summaryCellStyleGetter , sequenceCellStyleGetter : b . sequenceCellStyleGetter , header : b . header , items : b . items , crossHeader : b . crossHeader , crossItems : b . crossItems } ) , this . table . on ( BI . Table . EVENT _TABLE _SCROLL , function ( b ) { a . sequence . getVerticalScroll ( ) !== this . getVerticalScroll ( ) && ( a . sequence . setVerticalScroll ( this . getVerticalScroll ( ) ) , a . sequence . populate ( ) ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , function ( ) { b . regionColumnSize = this . getRegionColumnSize ( ) , b . columnSize = this . getColumnSize ( ) , 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 ( ) , b . columnSize = this . getColumnSize ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , arguments ) } ) , this . htape = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . sequence , left : 0 , top : 0 } , { el : this . table , top : 0 , left : b . showSequence === ! 0 ? 60 : 0 } ] } ) , this . _populate ( ) } , _populate : function ( ) { var a = this . options ; a . showSequence === ! 0 ? ( this . sequence . setVisible ( ! 0 ) , this . table . element . css ( "left" , "60px" ) , this . table . setWidth ( a . width - 60 ) ) : ( this . sequence . setVisible ( ! 1 ) , this . table . element . css ( "left" , "0px" ) , this . table . setWidth ( a . width ) ) } , setWidth : function ( a ) { BI . PageTable . superclass . setWidth . apply ( this , arguments ) , this . table . setWidth ( this . options . showSequence ? a - 60 : a ) } , setHeight : function ( a ) { BI . PageTable . superclass . setHeight . apply ( this , arguments ) , this . table . setHeight ( a ) , this . sequence . setHeight ( a - BI . GridTableScrollbar . SIZE ) } , setColumnSize : function ( a ) { this . options . columnSize = a , this . table . setColumnSize ( a ) } , getColumnSize : function ( ) { return this . table . getColumnSize ( ) } , setRegionColumnSize : function ( a ) { this . options . columnSize = a , this . table . setRegionColumnSize ( a ) } , getRegionColumnSize : function ( ) { return this . table . getRegionColumnSize ( ) } , hasLeftHorizontalScroll : function ( ) { return this . table . hasLeftHorizontalScroll ( ) } , hasRightHorizontalScroll : function ( ) { return this . table . hasRightHorizontalScroll ( ) } , setLeftHorizontalScroll : function ( a ) { this . table . setLeftHorizontalScroll ( a ) } , setRightHorizontalScroll : function ( a ) { this . table . setRightHorizontalScroll ( a ) } , setVerticalScroll : function ( a ) { this . table . setVerticalScroll ( a ) , this . sequence . setVerticalScroll ( a ) } , getVerticalScroll : function ( ) { return this . table . getVerticalScroll ( ) } , setVPage : function ( a ) { this . sequence . setVPage && this . sequence . setVPage ( a ) } , setHPage : function ( a ) { this . sequence . setHPage && this . sequence . setHPage ( a ) } , attr : function ( ) { BI . SequenceTable . superclass . attr . apply ( this , arguments ) , this . table . attr . apply ( this . table , arguments ) , this . sequence . attr . apply ( this . sequence , arguments ) } , restore : function ( ) { this . table . restore ( ) , this . sequence . 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 ) , this . _populate ( ) , this . table . populate . apply ( this . table , arguments ) , this . sequence . populate . apply ( this . sequence , arguments ) , this . sequence . setVerticalScroll ( this . table . getVerticalScroll ( ) ) } , destroy : function ( ) { this . table . destroy ( ) , BI . SequenceTable . superclass . destroy . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.sequence_table" , BI . SequenceTable ) , BI . SingleSelectSearchLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-loader" , itemsCreator : BI . emptyFn , keywordGetter : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchLoader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . option
BI . SingleSelectSearcher . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . shortcut ( "bi.single_select_searcher" , BI . SingleSelectSearcher ) , BI . SingleSelectSearchLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-loader" , itemsCreator : BI . emptyFn , keywordGetter : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchLoader . 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 : { dynamic : ! 1 } , el : { tipText : BI . i18nText ( "BI-No_Select" ) , 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" } ] } } } , itemsCreator : function ( d , e ) { a . storeValue && ( d = BI . extend ( d || { } , { selectedValues : [ a . storeValue ] } ) ) , b . itemsCreator ( d , function ( f ) { var g = f . keyword = b . keywordGetter ( ) ; c = f . hasNext ; var h = [ ] ; if ( 1 === d . times && a . storeValue ) { var i = BI . map ( [ a . storeValue ] , function ( a , c ) { var d = b . valueFormatter ( c ) || c ; return { text : d , value : c , title : d , selected : ! 1 } } ) ; h = a . _createItems ( i ) } if ( g ) { for ( var j = ! 1 , k = 0 ; k < f . items . length ; k ++ ) BI . contains ( f . items [ k ] , g ) && ( j = ! 0 ) ; if ( ! j ) { var l = a . _createItems ( [ { text : g , value : g , title : g , selected : ! 1 } ] ) ; h = h . concat ( l ) } } e ( h . concat ( a . _createItems ( f . items ) ) , g ) , 1 === d . times && a . storeValue && a . setValue ( a . storeValue ) } ) } , 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 . SingleSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearchLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.single_select_radio_item" , logic : { dynamic : ! 1 } , height : 25 , selected : ! 1 } ) } , _filterValues : function ( a ) { var b = this . options , c = b . keywordGetter ( ) , d = BI . deepClone ( a . value ) || [ ] , e = BI . map ( d , function ( a , c ) { return { text : b . valueFormatter ( c ) || c , value : c } } ) ; if ( BI . isKey ( c ) ) { var f = BI . Func . getSearchResult ( e , c ) ; d = f . match . concat ( f . find ) } return BI . map ( d , function ( a , b ) { return { text : b . text , title : b . text , value : b . value , selected : ! 1 } } ) } , setValue : function ( a ) { this . storeValue = a , this . button _group . setValue ( a ) } , 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 . SingleSelectSearchLoader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.single_select_search_add_loader" , BI . SingleSelectSearchLoader ) , BI . SingleSelectSearchPane = BI . inherit ( BI . Widget , { constants : { height : 25 , lgap : 10 , tgap : 5 } , _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-pane bi-card" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tooltipClick = BI . createWidget ( { type : "bi.label" , invisible : ! 0 , text : BI . i18nText ( "BI-Click_Blank_To_Select" ) , cls : "single-select-toolbar" , height : this . constants . height } ) , this . loader = BI . createWidget ( { type : "bi.single_select_search_add_loader" , keywordGetter : b . keywordGetter , valueFormatter : b . valueFormatter , itemsCreator : function ( c , d ) { b . itemsCreator . apply ( a , [ c , function ( c ) { d ( c ) , a . setKeyword ( b . keywordGetter ( ) ) } ] ) } } ) , this . loader . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . resizer = BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . tooltipClick , height : 0 } , { el : this . loader } ] } ) , this . tooltipClick . setVisible ( ! 1 ) } , setKeyword : function ( a ) { var b , c = this . loader . getAllButtons ( ) . length > 0 && ( b = this . loader . getAllButtons ( ) [ 0 ] ) && a === b . getValue ( ) ; c !== this . tooltipClick . isVisible ( ) && ( this . tooltipClick . setVisible ( c ) , this . resizer . attr ( "items" ) [ 0 ] . height = c ? thi
left : a + "%" } ) } , _setAllPosition : function ( a ) { this . _setSliderPosition ( a ) , this . _setBlueTrack ( a ) } , _setVisible : function ( a ) { this . slider . setVisible ( a ) } , _getGrayTrackLength : function ( ) { return this . grayTrack . element [ 0 ] . scrollWidth } , _getValueByPercent : function ( a ) { var b = BI . parseInt ( 10 * a ) ; return ( this . max - this . min ) * b / 1e3 + this . min } , _getPercentByValue : function ( a ) { return 100 * ( a - this . min ) / ( this . max - this . min ) } , getValue : function ( ) { return this . value } , setValue : function ( a ) { var b = BI . parseFloat ( a ) ; isNaN ( b ) || ( this . _checkValidation ( b ) && ( this . value = b ) , b > this . max && ( this . value = this . max ) , b < this . min && ( this . value = this . min ) ) } , setMinAndMax : function ( a ) { var b = BI . parseFloat ( a . min ) , c = BI . parseFloat ( a . max ) ; ! isNaN ( b ) && ! isNaN ( c ) && c > b && ( this . min = b , this . max = c ) } , reset : function ( ) { this . _setVisible ( ! 1 ) , this . enable = ! 1 , this . value = "" , this . min = 0 , this . max = 0 , this . _setBlueTrack ( 0 ) } , populate : function ( ) { isNaN ( this . min ) || isNaN ( this . max ) || ( this . _setVisible ( ! 0 ) , this . enable = ! 0 , BI . isNumeric ( this . value ) || BI . isNotEmptyString ( this . value ) ? this . _setAllPosition ( this . _getPercentByValue ( this . value ) ) : this . _setAllPosition ( 100 ) ) } } ) , BI . SingleSliderNormal . EVENT _DRAG = "EVENT_DRAG" , BI . shortcut ( "bi.single_slider_normal" , BI . SingleSliderNormal ) , BI . SingleTreeCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleTreeCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-tree-combo" , trigger : { } , height : 24 , text : "" , items : [ ] , value : "" } ) } , _init : function ( ) { BI . SingleTreeCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( BI . extend ( { type : "bi.single_tree_trigger" , text : b . text , height : b . height , items : b . items , value : b . value } , b . trigger ) ) , this . popup = BI . createWidget ( { type : "bi.single_level_tree" , items : b . items , value : b . value } ) , 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 . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . SingleTreeCombo . EVENT _BEFORE _POPUPVIEW , arguments ) } ) , this . popup . on ( BI . SingleTreePopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . SingleTreeCombo . EVENT _CHANGE ) } ) } , populate : function ( a ) { this . combo . populate ( a ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . SingleTreeCombo . EVENT _CHANGE = "SingleTreeCombo.EVENT_CHANGE" , BI . SingleTreeCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.single_tree_combo" , BI . SingleTreeCombo ) , BI . SingleTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-level-tree" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , items : [ ] , value : "" } ) } , _init : function ( ) { BI . SingleTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : "bi.level_tree" , expander : { isDefaultInit : ! 0 } , items : b . items , value : b . value , chooseType : BI . Selection . Single } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . tree ] } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . tree . on ( BI . LevelTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleTreePopup . EVENT _CHANGE ) } ) , this . check ( ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . tree . setValue ( a ) } , populate : function ( a ) { BI . SingleTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( a ) } } ) , BI . SingleTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.single_level_tree" , BI . SingleTreePopup ) , BI . SingleTreeTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleTreeTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-tree-trigger" , height : 24 , text : "" , items : [ ] , value : "" } ) } , _init : function ( ) { BI . SingleTreeTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . trigger = BI . createWidget ( { type : "bi.select_text_trigger" , element : thi
a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _VALID ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _CONFIRM , function ( ) { a . combo . isViewVisible ( ) || ( a . storeValue = a . trigger . getValue ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _CONFIRM ) ) } ) , this . trigger . on ( BI . DynamicYearMonthCombo . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _FOCUS ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , stopPropagation : ! 1 , el : { type : "bi.dynamic_year_month_popup" , ref : function ( ) { a . popup = this } , listeners : [ { eventName : BI . DynamicYearMonthPopup . EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearMonthPopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearMonthPopup . BUTTON _lABEL _EVENT _CHANGE , action : function ( ) { var b = BI . getDate ( ) ; a . setValue ( { year : b . getFullYear ( ) , month : b . getMonth ( ) + 1 } ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearMonthPopup . BUTTON _OK _EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } ] , behaviors : b . behaviors , min : b . min , max : b . max } , value : b . value || "" } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _BEFORE _POPUPVIEW ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , ref : function ( ) { a . comboWrapper = this } , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : 24 , height : 24 , ref : function ( ) { a . changeIcon = this } } , width : 24 } , this . combo ] } ) , this . _checkDynamicValue ( b . value ) } , _checkDynamicValue : function ( a ) { var b = null ; switch ( BI . isNotNull ( a ) && ( b = a . type ) , b ) { case BI . DynamicYearMonthCombo . Dynamic : this . changeIcon . setVisible ( ! 0 ) , this . comboWrapper . attr ( "items" ) [ 0 ] . width = 24 , this . comboWrapper . resize ( ) ; break ; default : this . comboWrapper . attr ( "items" ) [ 0 ] . width = 0 , this . comboWrapper . resize ( ) , this . changeIcon . setVisible ( ! 1 ) } } , hideView : function ( ) { this . combo . hideView ( ) } , setValue : function ( a ) { this . storeValue = a , this . trigger . setValue ( a ) , this . _checkDynamicValue ( a ) } , getValue : function ( ) { return this . storeValue } , getKey : function ( ) { return this . trigger . getKey ( ) } } ) , BI . DynamicYearMonthCombo . EVENT _ERROR = "EVENT_ERROR" , BI . DynamicYearMonthCombo . EVENT _VALID = "EVENT_VALID" , BI . DynamicYearMonthCombo . EVENT _FOCUS = "EVENT_FOCUS" , BI . DynamicYearMonthCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DynamicYearMonthCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.dynamic_year_month_combo" , BI . DynamicYearMonthCombo ) , BI . extend ( BI . DynamicYearMonthCombo , { Static : 1 , Dynamic : 2 } ) , BI . DynamicYearMonthPopup = BI . inherit ( BI . Widget , { constants : { tabHeight : 30 } , props : { baseCls : "bi-year-month-popup" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , width : 180 , height : 240 } , render : function ( ) { var a = this ; this . options ; return this . storeValue = { type : BI . DynamicYearMonthCombo . Static } , { type : "bi.vtape" , items : [ { el : this . _getTabJson ( ) } , { el : { type : "bi.grid" , items : [ [ { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-border-top bi-high-light" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Clear" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicYearMonthPopup . BUTTON _CLEAR _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-border-left bi-border-right bi-border-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Current_Month" ) , ref : function ( ) { a . textButton = this } , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicYearMonthPopup . BUTTON _lABEL _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-border-top bi-high-light" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicYearMonthPopup . BUTTON _OK _EVENT _CHANGE ) } } ] } ] ] } , height : 24 } ] } } , _setInnerValue : function ( ) { if ( this . dateTab . getSelect ( ) === BI . DynamicDateCombo . Static ) this . textButton . setValue ( BI . i18nText ( " BI - Basic _Current _Mo
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 : { perPage : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AbstractTreeValueChooser . superclass . _defaultConfig . apply ( this , arguments ) , { items : null , itemsCreator : BI . emptyFn } ) } , _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 } , _initData : function ( a ) { this . items = a ; var b = BI . Tree . treeFormat ( a ) ; this . tree = new BI . Tree , this . tree . initTree ( b ) } , _itemsCreator : function ( a , b ) { function c ( ) { switch ( a . type ) { case BI . TreeView . REQ _TYPE _INIT _DATA : d . _reqInitTreeNode ( a , b ) ; break ; case BI . TreeView . REQ _TYPE _ADJUST _DATA : d . _reqAdjustTreeNode ( a , b ) ; break ; case BI . TreeView . REQ _TYPE _SELECT _DATA : d . _reqSelectedTreeNode ( a , b ) ; break ; case BI . TreeView . REQ _TYPE _GET _SELECTED _DATA : d . _reqDisplayTreeNode ( a , b ) ; break ; default : d . _reqTreeNode ( a , b ) } } var d = this , e = this . options ; this . items ? c ( ) : e . itemsCreator ( { } , function ( a ) { d . _initData ( a ) , c ( ) } ) } , _reqDisplayTreeNode : function ( a , b ) { function c ( a , b , g ) { return null == g || BI . isEmpty ( g ) ? void BI . each ( b . getChildren ( ) , function ( d , g ) { var h = BI . clone ( a ) ; h . push ( g . value ) ; var i = f . _getChildCount ( h ) ; e ( g , b . id , i ) , c ( h , g , { } ) } ) : void BI . each ( g , function ( b ) { var h = f . _getTreeNode ( a , b ) , i = BI . clone ( a ) ; i . push ( h . value ) , e ( h , h . parent && h . parent . id , d ( g [ b ] , i ) ) , c ( i , h , g [ b ] ) } ) } function d ( a , b ) { return null == a ? 0 : BI . isEmpty ( a ) ? f . _getChildCount ( b ) : BI . size ( a ) } function e ( a , b , c ) { g . push ( { id : a . id , pId : b , text : a . text + ( c > 0 ? "(" + BI . i18nText ( "BI-Basic_Altogether" ) + c + BI . i18nText ( "BI-Basic_Count" ) + ")" : "" ) , value : a . value , open : ! 0 } ) } var f = this , g = [ ] , h = a . selectedValues ; return null == h || BI . isEmpty ( h ) ? void b ( { } ) : ( c ( [ ] , this . tree . getRoot ( ) , h ) , void b ( { items : g } ) ) } , _reqSelectedTreeNode : function ( a , b ) { function c ( a ) { var b = m . concat ( k ) ; if ( g ( a , b ) ) if ( f ( b ) ) i . _deleteNode ( a , b ) ; else { var c = [ ] , j = e ( m , k , [ ] , c ) ; j && BI . isNotEmptyArray ( c ) && BI . each ( c , function ( b , c ) { var e = i . _getNode ( a , c ) ; e ? i . _deleteNode ( a , c ) : d ( a , c , BI . last ( c ) ) } ) } if ( h ( a , b ) ) { var l = [ ] , j = ! 1 ; f ( b ) ? j = ! 0 : ( j = e ( m , k , l ) , b = m ) , j === ! 0 && ( d ( a , b , k ) , l . length > 0 && BI . each ( l , function ( b , c ) { i . _buildTree ( a , c ) } ) ) } } function d ( a , b , c ) { var d = a , e = [ ] , f = [ ] ; BI . some ( b , function ( g , h ) { var j = d [ h ] ; if ( null == j ) { if ( 0 === g ) return ! 0 ; if ( ! BI . isEmpty ( d ) ) return ! 0 ; var k = b . slice ( 0 , g ) , l = i . _getChildren ( k ) ; if ( f . push ( k ) , e . push ( l . length ) , g === b . length - 1 && 1 === l . length && l [ 0 ] === c ) for ( var m = e . length - 1 ; m >= 0 && 1 === e [ m ] ; m -- ) i . _deleteNode ( a , f [ m ] ) ; else BI . each ( l , function ( a , e ) { return g === b . length - 1 && e . value === c || void ( d [ e . value ] = { } ) } ) ; d = d [ h ] } else d = j } ) } function e ( a , b , c , d ) { var f = BI . clone ( a ) ; if ( f . push ( b ) , i . _isMatch ( a , b , l ) ) return d && d . push ( f ) , ! 0 ; var g = i . _getChildren ( f ) , h = [ ] , j = ! 1 ; return BI . each ( g , function ( a , b ) { e ( f , b . value , c , d ) ? j = ! 0 : h . push ( b . value ) } ) , j === ! 0 && BI . each ( h , function ( a , b ) { var d = BI . clone ( f ) ; d . push ( b ) , c . push ( d ) } ) , j } function f ( a ) { for ( var b = 0 , c = a . length ; b < c ; b ++ ) if ( i . _isMatch ( a . slice ( 0 , a . length - 1 ) , a [ b ] , l ) ) return ! 0 ; return ! 1 } function g ( a , b ) { for ( var c = a , d = 0 ; d < b . length ; d ++ ) { var e = b [ d ] ; if ( c = c [ e ] , null == c ) return ! 1 } return ! 0 } function h ( a , b ) { for ( var c = a , d = 0 ; d < b . length ; d ++ ) { var e = b [ d ] ; if ( ! BI . has ( c , e ) ) return ! 1 ; if ( c = c [ e ] , BI . isEmpty ( c ) ) return ! 0 } return ! 1 } var i = this , j = BI . deepClone ( a . selectedValues ) , k = a . notSelectedValue || { } , l = a . keyword || "" , m = a . parentValues || [ ] ; return null == j || BI . isEmpty ( j ) ? void b ( { } ) : ( c ( j ) , void b ( j ) ) } , _reqAdjustTreeNode : function ( a , b ) { function c ( a , b ) { if ( null == a || BI . isEmpty ( a ) ) return ! 0 ; var e = ! 0 ; return BI . each ( a , function ( d , g ) { var h = BI . clone ( b ) ; h . push ( d ) , c ( a [ d ] , h ) || ( BI . each ( a [ d ] , function ( a , b ) { var c = BI . clone ( h ) ; c . push ( a ) , f . push ( c ) } ) , e = ! 1 ) } ) , e && d ( a , b ) } function d ( a , b ) { return BI . isEmpty ( a ) || e . _getChildCount ( b ) === BI . size ( a ) } var e = this , f = [ ] , g = a . selectedValues ; if ( null == g || BI . isEmpty ( g ) ) return v