/*! 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 = { } } } ) , "undefined" != typeof Set && Set . toString ( ) . match ( /native code/ ) || ( Set = function ( ) { this . set = { } } , Set . prototype . has = function ( a ) { return void 0 !== this . set [ a ] } , Set . prototype . add = function ( a ) { this . set [ a ] = 1 } , Set . prototype . clear = function ( ) { this . set = { } } ) , ! function ( a ) { var b = a . navigator . userAgent . toLowerCase ( ) , c = /msie|applewebkit.+safari/ ; if ( c . test ( b ) ) { var d = Array . prototype . sort ; Array . prototype . sort = function ( a ) { if ( a && "function" == typeof a ) { if ( this . length < 2 ) return this ; for ( var b , c = 0 , e = c + 1 , f = this . length , g = ! 1 , h = 0 ; c < f ; c ++ ) for ( e = c + 1 ; e < f ; e ++ ) h = a . call ( this , this [ c ] , this [ e ] ) , g = ( "number" == typeof h ? h : h ? 1 : 0 ) > 0 , g === ! 0 && ( b = this [ c ] , this [ c ] = this [ e ] , this [ e ] = b ) ; return this } return d . call ( this ) } } } ( window ) , function ( a , b ) { function c ( a ) { var b = a . length , c = ia . type ( a ) ; return ! ia . isWindow ( a ) && ( ! ( 1 !== a . nodeType || ! b ) || ( "array" === c || "function" !== c && ( 0 === b || "number" == typeof b && b > 0 && b - 1 in a ) ) ) } function d ( a ) { var b = xa [ a ] = { } ; return ia . each ( a . match ( ka ) || [ ] , function ( a , c ) { b [ c ] = ! 0 } ) , b } function e ( a , c , d , e ) { if ( ia . acceptData ( a ) ) { var f , g , h = ia . expando , i = "string" == typeof c , j = a . nodeType , k = j ? ia . cache : a , l = j ? a [ h ] : a [ h ] && h ; if ( l && k [ l ] && ( e || k [ l ] . data ) || ! i || d !== b ) return l || ( j ? a [ h ] = l = _ . pop ( ) || ia . guid ++ : l = h ) , k [ l ] || ( k [ l ] = { } , j || ( k [ l ] . toJSON = ia . noop ) ) , "object" != typeof c && "function" != typ
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 , c ) { return b === ! 1 ? ia . removeAttr ( a , c ) : Ja && Ia || ! Ha . test ( c ) ? a . setAttribute ( ! Ia && ia . propFix [ c ] || c , c ) : a [ ia . camelCase ( "default-" + c ) ] = a [ c ] = ! 0 , c } } , Ja && Ia || ( ia . attrHooks . value = { get : function ( a , c ) { var d = a . getAttributeNode ( c ) ; return ia . nodeName ( a , "input" ) ? a . defaultValue : d && d . specified ? d . value : b } , set : function ( a , b , c ) { return ia . nodeName ( a , "input" ) ? void ( a . defaultValue = b ) : Aa && Aa . set ( a , b , c ) } } ) , Ia || ( Aa = ia . valHooks . button = { get : function ( a , c ) { var d = a . getAttributeNode ( c ) ; return d && ( "id" === c || "name" === c || "coords" === c ? "" !== d . value :
} , 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" ) } , nextAll : function ( a ) { return ia . dir ( a , "nextSibling" ) } , prevAll : function ( a ) { return ia . dir ( a , "previousSibling" ) } , nextUntil : function ( a , b , c ) { return ia . dir ( a , "nextSibling" , c ) } , prevUntil : function ( a , b , c ) { return ia . dir ( a , "previousSibling" , c ) } , siblings : function ( a ) { return ia . sibling ( ( a . parentNode || { } ) . firstChild , a ) } , children : function ( a ) { return ia . sibling ( a . firstChild ) } , contents : function ( a ) { return ia . nodeName ( a , "iframe" ) ? a . contentDocument || a . contentWindow . document : ia . merge ( [ ] , a . childNodes ) } } , function ( a , b ) { ia . fn [ a ] = function ( c , d ) { va
} , 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 ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d && b ( a [ c ] , c , a ) !== ! 1 ; ) ; return a } function c ( 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 d ( 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 e ( a , b ) { var c = null == a ? 0 : a . length ; return ! ! c && l ( a , b , 0 ) > - 1 } function f ( 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 g ( a , b ) { for ( var c = - 1 , d = b . length , e = a . length ; ++ c < d ; ) a [ e + c ] = b [ c ] ; return a } function h ( 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 i ( 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 j ( a ) { return a . split ( "" ) } function k ( 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 l ( a , b , c ) { return b === b ? D ( a , b , c ) : k ( a , m , c ) } function m ( a ) { return a !== a } function n ( a ) { return function ( b ) { return null == b ? Nd : b [ a ] } } function o ( a ) { return function ( b ) { return null == a ? Nd : a [ b ] } } function p ( a , b , c , d , e ) { return e ( a , function ( a , e , f ) { c = d ? ( d = ! 1 , a ) : b ( c , a , e , f ) } ) , c } function q ( a , b ) { var c = a . length ; for ( a . sort ( b ) ; c -- ; ) a [ c ] = a [ c ] . value ; return a } function r ( a , b ) { for ( var c = - 1 , d = Array ( a ) ; ++ c < a ; ) d [ c ] = b ( c ) ; return d } function s ( a ) { return function ( b ) { return a ( b ) } } function t ( a , b ) { return f ( b , function ( b ) { return a [ b ] } ) } function u ( a , b ) { return a . has ( b ) } function v ( a , b ) { for ( var c = a . length , d = 0 ; c -- ; ) a [ c ] === b && ++ d ; return d } function w ( a , b ) { return null == a ? Nd : a [ b ] } function x ( a ) { return Hf . test ( a ) } function y ( a ) { for ( var b , c = [ ] ; ! ( b = a . next ( ) ) . done ; ) c . push ( b . value ) ; return c } function z ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a , d ) { c [ ++ b ] = [ d , a ] } ) , c } function A ( a , b ) { return function ( c ) { return a ( b ( c ) ) } } function B ( a , b ) { for ( var c = - 1 , d = a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; g !== b && g !== Td || ( a [ c ] = Td , f [ e ++ ] = c ) } return f } function C ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a ) { c [ ++ b ] = a } ) , c } function D ( a , b , c ) { for ( var d = c - 1 , e = a . length ; ++ d < e ; ) if ( a [ d ] === b ) return d ; return - 1 } function E ( a ) { return x ( a ) ? G ( a ) : Zf ( a ) } function F ( a ) { return x ( a ) ? H ( a ) : j ( a ) } function G ( a ) { for ( var b = Gf . lastIndex = 0 ; Gf . test ( a ) ; ) ++ b ; return b } function H ( a ) { return a . match ( Gf ) || [ ] } function I ( a ) { if ( fd ( a ) && ! kh ( a ) && ! ( a instanceof L ) ) { if ( a instanceof K ) return a ; if ( eg . call ( a , "__wrapped__" ) ) return wc ( a ) } return new K ( a ) } function J ( ) { } function K ( a , b ) { this . _ _wrapped _ _ = a , this . _ _actions _ _ = [ ] , this . _ _chain _ _ = ! ! b , this . _ _index _ _ = 0 , this . _ _values _ _ = Nd } function L ( a ) { this . _ _wrapped _ _ = a , this . _ _actions _ _ = [ ] , this . _ _dir _ _ = 1 , this . _ _filtered _ _ = ! 1 , this . _ _iteratees _ _ = [ ] , this . _ _takeCount _ _ = qe , this . _ _views _ _ = [ ] } function M ( ) { var a = new L ( this . _ _wrapped _ _ ) ; return a . _ _actions _ _ = ub ( this . _ _actions _ _ ) , a . _ _dir _ _ = this . _ _dir _ _ , a . _ _filtered _ _ = this . _ _filtered _ _ , a . _ _iteratees _ _ = ub ( this . _ _iteratees _ _ ) , a . _ _takeCount _ _ = this . _ _takeCount _ _ , a . _ _views _ _ = ub ( this . _ _views _ _ ) , a } function N ( ) { if ( this . _ _filtered _ _ ) { var a = new L ( this ) ; a . _ _dir _ _ = - 1 , a . _ _filtered _ _ = ! 0 } else a = this . clone ( ) , a . _ _dir _ _ *= - 1 ; return a } function O ( ) { var a = this . _ _wrapped _ _ . value ( ) , b = this . _ _dir _ _ , c = kh ( a ) , d = b < 0 , e = c ? a . length : 0 , f = Vb ( 0 , e , this . _ _views _ _ ) , g = f . start , h = f . end , i = h - g , j = d ? h : g - 1 , k = this . _ _iteratees _ _ , l = k . length , m = 0 , n = Bg ( i , this . _ _takeCount _ _ ) ; if ( ! c || ! d && e == i && n == i ) return ib ( a , this . _ _actions
try { return Sf && Sf . binding && Sf . binding ( "util" ) } catch ( a ) { } } ( ) , Uf = Tf && Tf . isDate , Vf = Tf && Tf . isMap , Wf = Tf && Tf . isRegExp , Xf = Tf && Tf . isSet , Yf = Tf && Tf . isTypedArray , Zf = n ( "length" ) , $f = o ( Kf ) , _f = Array . prototype , ag = Function . prototype , bg = Object . prototype , cg = Of [ "__core-js_shared__" ] , dg = ag . toString , eg = bg . hasOwnProperty , fg = 0 , gg = function ( ) { var a = /[^.]+$/ . exec ( cg && cg . keys && cg . keys . IE _PROTO || "" ) ; return a ? "Symbol(src)_1." + a : "" } ( ) , hg = bg . toString , ig = Of . _ , jg = RegExp ( "^" + dg . call ( eg ) . replace ( af , "\\$&" ) . replace ( /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g , "$1.*?" ) + "$" ) , kg = Rf ? Of . Buffer : Nd , lg = Of . Symbol , mg = Of . Uint8Array , ng = kg ? kg . allocUnsafe : Nd , og = A ( Object . getPrototypeOf , Object ) , pg = Object . create , qg = bg . propertyIsEnumerable , rg = _f . splice , sg = lg ? lg . isConcatSpreadable : Nd , tg = lg ? lg . iterator : Nd , ug = lg ? lg . toStringTag : Nd , vg = function ( ) { try { var a = Tb ( Object , "defineProperty" ) ; return a ( { } , "" , { } ) , a } catch ( b ) { } } ( ) , wg = Object . getOwnPropertySymbols , xg = kg ? kg . isBuffer : Nd , yg = Of . isFinite , zg = A ( Object . keys , Object ) , Ag = Math . max , Bg = Math . min , Cg = Date . now , Dg = ( _f . reverse , Tb ( Of , "DataView" ) ) , Eg = Tb ( Of , "Map" ) , Fg = Tb ( Of , "Promise" ) , Gg = Tb ( Of , "Set" ) , Hg = Tb ( Of , "WeakMap" ) , Ig = Tb ( Object , "create" ) , Jg = Hg && new Hg , Kg = { } , Lg = uc ( Dg ) , Mg = uc ( Eg ) , Ng = uc ( Fg ) , Og = uc ( Gg ) , Pg = uc ( Hg ) , Qg = lg ? lg . prototype : Nd , Rg = Qg ? Qg . valueOf : Nd , Sg = Qg ? Qg . toString : Nd , Tg = function ( ) { function a ( ) { } return function ( b ) { if ( ! ed ( b ) ) return { } ; if ( pg ) return pg ( b ) ; a . prototype = b ; var c = new a ; return a . prototype = Nd , c } } ( ) ; I . prototype = J . prototype , I . prototype . constructor = I , K . prototype = Tg ( J . prototype ) , K . prototype . constructor = K , L . prototype = Tg ( J . prototype ) , L . prototype . constructor = L , P . prototype . clear = Q , P . prototype [ "delete" ] = R , P . prototype . get = S , P . prototype . has = T , P . prototype . set = U , V . prototype . clear = W , V . prototype [ "delete" ] = X , V . prototype . get = Y , V . prototype . has = Z , V . prototype . set = $ , _ . prototype . clear = aa , _ . prototype [ "delete" ] = ba , _ . prototype . get = ca , _ . prototype . has = da , _ . prototype . set = ea , fa . prototype . add = fa . prototype . push = ga , fa . prototype . has = ha , ia . prototype . clear = ja , ia . prototype [ "delete" ] = ka , ia . prototype . get = la , ia . prototype . has = ma , ia . prototype . set = na ; var Ug = zb ( Ba ) , Vg = Ab ( ) , Wg = Jg ? function ( a , b ) { return Jg . set ( a , b ) , a } : Bd , Xg = vg ? function ( a , b ) { return vg ( a , "toString" , { configurable : ! 0 , enumerable : ! 1 , value : Ad ( b ) , writable : ! 0 } ) } : Bd , Yg = Jg ? function ( a ) { return Jg . get ( a ) } : Gd , Zg = wg ? function ( a ) { return null == a ? [ ] : ( a = Object ( a ) , d ( wg ( a ) , function ( b ) { return qg . call ( a , b ) } ) ) } : Id , $g = wg ? function ( a ) { for ( var b = [ ] ; a ; ) g ( b , Zg ( a ) ) , a = og ( a ) ; return b } : Id , _g = Fa ; ( Dg && _g ( new Dg ( new ArrayBuffer ( 1 ) ) ) != Ne || Eg && _g ( new Eg ) != Ae || Fg && _g ( Fg . resolve ( ) ) != Ee || Gg && _g ( new Gg ) != He || Hg && _g ( new Hg ) != Le ) && ( _g = function ( a ) { var b = Fa ( a ) , c = b == De ? a . constructor : Nd , d = c ? uc ( c ) : "" ; if ( d ) switch ( d ) { case Lg : return Ne ; case Mg : return Ae ; case Ng : return Ee ; case Og : return He ; case Pg : return Le } return b } ) ; var ah = sc ( Wg ) , bh = sc ( Xg ) , ch = kc ( function ( a ) { var b = [ ] ; return 46 === a . charCodeAt ( 0 ) && b . push ( "" ) , a . replace ( _e , function ( a , c , d , e ) { b . push ( d ? e . replace ( ff , "$1" ) : c || a ) } ) , b } ) , dh = ( Mb ( function ( a ) { var b = a . length , c = b ? a [ 0 ] : 0 , d = this . _ _wrapped _ _ , e = function ( b ) { return ua ( b , a ) } ; return ! ( b > 1 || this . _ _actions _ _ . length ) && d instanceof L && bc ( c ) ? ( d = d . slice ( c , + c + ( b ? 1 : 0 ) ) , d . _ _actions _ _ . push ( { func : Ic , args : [ e ] , thisArg : Nd } ) , new K ( d , this . _ _chain _ _ ) . thru ( function ( a ) { return b && ! a . length && a . push ( Nd ) , a } ) ) : this . thru ( e ) } ) , Eb ( zc ) ) , eh = db ( function ( a , b ) { if ( null == a ) return [ ] ; var c = b . length ; return c > 1 && cc ( a , b [ 0 ] , b [ 1 ] ) ? b = [ ] : c > 2 && cc ( b [ 0 ] , b [ 1 ] , b [ 2 ] ) && ( b = [ b [ 0 ] ] ) , _a ( a , Aa ( b , 1 ) , [ ] ) } ) , fh = function ( ) { return Of . Date . now ( ) } , gh = db ( function ( a , b , c ) { var d = Zd ; if ( c . length ) { var e = B ( c , Qb ( gh ) ) ; d |= ce } return Ib ( a , d , b , c , e ) } ) , hh = db ( function ( a , b ) { return wa ( a , 1 , b ) } ) , ih = db ( function ( a , b , c ) { return wa ( a , pd ( b ) || 0 , c ) } ) ; Tc . Cache = _ ; var jh = Ka ( function ( ) { return arguments } ( ) ) ? Ka : function ( a ) { return fd ( a ) && eg . call ( a , "callee" ) && ! qg . call ( a , "callee" ) } , kh = Array . isArray , lh = xg || Jd , mh = Uf ? s ( Uf ) : La , nh = Vf ? s ( Vf ) : Oa , oh = Wf ? s ( Wf ) : Ra , ph = Xf ? s ( Xf ) : Sa , qh = Yf ? s ( Yf ) : Ta , rh = yb ( function ( a , b ) { vb ( b , wd ( b ) , a ) } ) , sh = db ( function ( a , b ) { a = Object ( a ) ; var c = - 1 , d = b . length , e = d > 2 ? b [ 2 ] : Nd ; for ( e && cc ( b [ 0 ] , b [ 1 ] , e ) && ( d = 1 ) ; ++ c < d ; ) for ( var f = b [ c ] , g = wd ( f ) , h = - 1 , i = g . length ; ++ h < i ; ) { var j = g [ h ] , k = a [ j ] ; ( k === Nd || Yc ( k , bg [ j ] ) && ! eg . call ( a , j ) ) && ( a [ j ] = f [ j ] ) } return a } ) , th = Mb ( function ( a , b ) { return nu
this . _children [ a ] ) throw new Error ( "name has already been existed" ) ; return b . _setParent && b . _setParent ( this ) , b . on ( BI . Events . DESTROY , function ( ) { BI . remove ( c . _children , this ) } ) , this . _children [ a ] = b } , getWidgetByName : function ( a ) { if ( ! BI . isKey ( a ) || a === this . getName ( ) ) return this ; a += "" ; var b = void 0 , c = { } ; return BI . any ( this . _children , function ( d , e ) { return d === a ? ( b = e , ! 0 ) : void ( c [ d ] = e ) } ) , b || BI . any ( c , function ( a , c ) { return b = c . getWidgetByName ( a ) } ) , b } , removeWidget : function ( a ) { BI . isWidget ( a ) ? BI . remove ( this . _children , a ) : delete this . _children [ a ] } , hasWidget : function ( a ) { return null != this . _children [ a ] } , getName : function ( ) { return this . widgetName } , setTag : function ( a ) { this . options . tag = a } , getTag : function ( ) { return this . options . tag } , attr : function ( a , b ) { var c = this ; return BI . isPlainObject ( a ) ? void BI . each ( a , function ( a , b ) { c . attr ( a , b ) } ) : BI . isNotNull ( b ) ? this . options [ a ] = b : this . options [ a ] } , getText : function ( ) { } , setText : function ( a ) { } , getValue : function ( ) { } , setValue : function ( a ) { } , isEnabled : function ( ) { return ! this . options . disabled } , isVisible : function ( ) { return ! this . options . invisible } , disable : function ( ) { this . setEnable ( ! 1 ) } , enable : function ( ) { this . setEnable ( ! 0 ) } , valid : function ( ) { this . setValid ( ! 0 ) } , invalid : function ( ) { this . setValid ( ! 1 ) } , invisible : function ( ) { this . setVisible ( ! 1 ) } , visible : function ( ) { this . setVisible ( ! 0 ) } , _ _d : function ( ) { this . beforeDestroy && this . beforeDestroy ( ) , BI . each ( this . _children , function ( a , b ) { b && b . _unMount && b . _unMount ( ) } ) , this . _children = { } , this . _parent = null , this . _isMounted = ! 1 , this . destroyed && this . destroyed ( ) } , _unMount : function ( ) { this . _ _d ( ) , this . fireEvent ( BI . Events . UNMOUNT ) , this . purgeListeners ( ) } , isolate : function ( ) { this . _parent && this . _parent . removeWidget ( this ) , BI . DOM . hang ( [ this ] ) } , empty : function ( ) { BI . each ( this . _children , function ( a , b ) { b && b . _unMount && b . _unMount ( ) } ) , this . _children = { } , this . element . empty ( ) } , _destroy : function ( ) { this . _ _d ( ) , this . element . destroy ( ) , this . purgeListeners ( ) } , destroy : function ( ) { this . _ _d ( ) , this . element . destroy ( ) , this . fireEvent ( BI . Events . DESTROY ) , this . _purgeRef ( ) , this . purgeListeners ( ) } } ) , function ( ) { var a = { } ; BI . shortcut = function ( b , c ) { if ( null != a [ b ] ) throw "shortcut:[" + b + "] has been registed" ; a [ b ] = c } ; var b = function ( b ) { if ( b . classType ) return new ( new Function ( "return " + b . classType + ";" ) ( ) ) ( b ) ; var c = a [ b . type ] ; return new c ( b ) } ; BI . createWidget = function ( a , c , d ) { var e , f ; if ( a || ( a = { } ) , BI . isWidget ( c ) ? ( d = c , c = { } ) : c || ( c = { } ) , BI . isEmpty ( a ) && BI . isEmpty ( c ) ) return BI . createWidget ( { type : "bi.layout" } ) ; if ( BI . isWidget ( a ) ) return a ; if ( a . type || c . type ) return e = BI . extend ( { } , c , a ) , f = BI . Plugin . getWidget ( e . type , e ) , f . type === e . type ? BI . Plugin . getObject ( e . type , b ( f ) ) : BI . createWidget ( BI . extend ( { } , a , { type : f . type } , c ) ) ; if ( a . el && ( a . el . type || c . type ) ) return e = BI . extend ( { } , c , a . el ) , f = BI . Plugin . getWidget ( e . type , e ) , f . type === e . type ? BI . Plugin . getObject ( e . type , b ( f ) ) : BI . createWidget ( BI . extend ( { } , a , { type : f . type } , c ) ) ; if ( BI . isWidget ( a . el ) ) return a . el ; throw new Error ( "无法根据item创建组件" ) } } ( ) , function ( a , b ) { function c ( a ) { return function ( b , c , d ) { var e , f = b [ c ] ; f && f . target == b || ( e = b [ c ] = function ( ) { for ( var a , b = e . before , c = arguments , d = b . length ; d -- ; ) { if ( a = b [ d ] . advice . apply ( this , c ) , a === ! 1 ) return ! 1 ; c = a || c } for ( var f = e . method . apply ( this , c ) , g = e . after , h = 0 , i = g . length ; h < i ; h ++ ) { if ( a = g [ h ] . advice . call ( this , f , c ) , f === ! 1 ) return ! 1 ; c = a || c } return f } , e . before = [ ] , e . after = [ ] , f && ( e . method = f ) , e . target = b ) ; var g = ( e || f ) [ a ] , h = { advice : d , _index : g . length , remove : function ( ) { g . splice ( this . _index , 1 ) } } ; return g . push ( h ) , h } } return BI . aspect = { before : c ( "before" ) , after : c ( "after" ) } , BI . aspect } ( window ) , ! function ( ) { var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" , b = function ( a ) { a = a . replace ( /\r\n/g , "\n" ) ; for ( var b = "" , c = 0 ; c < a . length ; c ++ ) { var d = a . charCodeAt ( c ) ; d < 128 ? b += String . fromCharCode ( d ) : d > 127 && d < 2048 ? ( b += String . fromCharCode ( d >> 6 | 192 ) , b += String . fromCharCode ( 63 & d | 128 ) ) : ( b += String . fromCharCode ( d >> 12 | 224 ) , b += String . fromCharCode ( d >> 6 & 63 | 128 ) , b += String . fromCharCode ( 63 & d | 128 ) ) } return b } , c = function ( a ) { for ( var b = "" , c = 0 , d = 0 , e = 0 , f = 0 ; c < a . length ; ) d = a . charCodeAt ( c ) , d < 128 ? ( b += String . fromCharCode ( d ) , c ++ ) : d > 191 && d < 224 ? ( f = a . charCodeAt ( c + 1 ) , b += String . fromCharCode ( ( 31 & d ) << 6 | 63 & f ) , c += 2 ) : ( f = a . charCodeAt ( c + 1 ) , e = a . charCodeAt ( c + 2 ) , b += String . fromCharC
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 ( c ) { var d = c . charCodeAt ( 0 ) ; return d > 40869 || d < 19968 ? c : b [ d ] ? b [ d ] : a . charAt ( d - 19968 ) } , d = function ( a ) { for ( var b , c = [ "" ] , d = 0 , e = a . length ; d < e ; d ++ ) { var f = a [ d ] , g = f . length ; if ( 1 == g ) for ( b = 0 ; b < c . length ; b ++ ) c [ b ] += f ; else { var h = c . slice ( 0 ) ; for ( c = [ ] , b = 0 ; b < g ; b ++ ) { for ( var i = h . slice ( 0 ) , j = 0 ; j < i . length ; j ++ ) i [ j ] += f . charAt ( b ) ; c = c . concat ( i ) } } } return c . join ( "" ) . toLowerCase ( ) } ; _ . extend ( BI , { makeFirstPY : function ( a ) { if ( "string" != typeof a ) return "" + a ; for ( var b = [ ] , e = 0 , f = a . length ; e < f ; e ++ ) { var g = a . charAt ( e ) ; b . p
} } , 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 , function ( d , e ) { e . element !== a . element && ( b . appendChild ( e . element [ 0 ] ) , c = ! 0 ) } ) , c === ! 0 && this . element . append ( b ) } , _getChildName : function ( a ) { return
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" , BS : "beforesubmit" , AS : "aftersubmit" , SC : "submitcomplete" , SF : "submitfailure" , SS : "submitsuccess" , BVW : "beforeverifywrite" , AVW : "afterverifywrite" , AV : "afterverify" , BW : "beforewrite" , AW : "afterwrite" , WS : "writesuccess" , WF : "writefailure" , BA : "beforeappend" , AA : "afterappend" , BD : "beforedelete" , AD : "beforedelete" , UC : "unloadcheck" , BTOPDF : "beforetopdf" , ATOPDF : "aftertopdf" , BTOEXCEL : "beforetoexcel" , ATOEXCEL : "aftertoexcel" , BTOWORD : "beforetoword" , ATOWORD : "aftertoword" , BTOIMAGE : "beforetoimage" , ATOIMAGE : "aftertoimage" , BTOHTML : "beforetohtml" , ATOHTML : "aftertohtml" , BIMEXCEL : "beforeimportexcel" , AIMEXCEL : "afterimportexcel" , BPDFPRINT : "beforepdfprint" , APDFPRINT : "afterpdfprint" , BFLASHPRINT : "beforeflashprint" , AFLASHPRINT : "afterflashprint" , BAPPLETPRINT : "beforeappletprint" , AAPPLETPRINT : "afterappletprint" , BSEVERPRINT : "beforeserverprint" , ASERVERPRINT : "afterserverprint" , BEMAIL : "beforeemail" , AEMAIL : "afteremail" } } ) , B
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 . _isDragging } , _onMouseMove : function ( a ) { var c = a . clientX , d = a . clientY ; this . _deltaX += c - this . _x , this . _deltaY += d - this . _y , null === this . _animationFrameID && ( this . _animationFrameID = b ( this . _didMouseMove ) ) , this . _x = c , this . _y = d , a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 } , _didMouseMove : function ( ) { this . _animationFrameID = null , this . _onMove ( this . _deltaX , this . _deltaY ) , this . _deltaX = 0 , this . _deltaY = 0 } , _onMouseUp : function ( ) { this . _animationFrameID && this . _didMouseMove ( ) , this . _onMoveEnd ( ) } } } ( ) , ! function ( ) { function a ( a ) { var e = 0 , f = 0 , g = 0 , h = 0 ; return "detail" in a && ( f = a . detail ) , "wheelDelta" in a && ( f = - a . wheelDelta / 120 ) , "wheelDeltaY" in a && ( f = - a . wheelDeltaY / 120 ) , "wheelDeltaX" in a && ( e = - a . wheelDeltaX / 120 ) , "axis" in a && a . axis === a . HORIZONTAL _AXIS && ( e = f , f = 0 ) , g = e * b , h = f * b , "deltaY" in a && ( h = a . deltaY ) , "deltaX" in a && ( g = a . deltaX ) , ( g || h ) && a . deltaMode && ( 1 === a . deltaMode ? ( g *= c , h *= c ) : ( g *= d , h *= d ) ) , g && ! e && ( e = g < 1 ? - 1 : 1 ) , h && ! f && ( f = h < 1 ? - 1 : 1 ) , { spinX : e , spinY : f , pixelX : g , pixelY : h } } var b = 10 , c = 40 , d = 800 , e = window . requestAnimationFrame || window . webkitRequestAnimationFrame || window . mozRequestAnimationFrame || window . oRequestAnimationFrame || window .
"margin-left" : b . left } ) , BI . isNotNull ( b . right ) && d . element . css ( { "margin-right" : b . right } ) , BI . isNotNull ( b . top ) && d . element . css ( { "margin-top" : b . top } ) , BI . isNotNull ( b . bottom ) && d . element . css ( { "margin-bottom" : b . bottom } ) , BI . isNotNull ( c . hgap ) && ( e += c . hgap , d . element . css ( { left : e } ) , f += c . hgap , d . element . css ( { right : f } ) ) , BI . isNotNull ( c . vgap ) && ( g += c . vgap , d . element . css ( { top : g } ) , h += c . vgap , d . element . css ( { bottom : h } ) ) , BI . isNotNull ( c . lgap ) && ( e += c . lgap , d . element . css ( { left : e } ) ) , BI . isNotNull ( c . rgap ) && ( f += c . rgap , d . element . css ( { right : f } ) ) , BI . isNotNull ( c . tgap ) && ( g += c . tgap , d . element . css ( { top : g } ) ) , BI . isNotNull ( c . bgap ) && ( h += c . bgap , d . element . css ( { bottom : h } ) ) , BI . isNotNull ( b . width ) && d . element . css ( { width : b . width } ) , BI . isNotNull ( b . height ) && d . element . css ( { height : b . height } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . AbsoluteLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.adaptive" , BI . AdaptiveLayout ) , BI . BorderLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . BorderLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-border-layout" , items : { } } ) } , render : function ( ) { BI . BorderLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { this . stroke ( this . options . items ) } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b , c = 0 , d = 0 , e = 0 , f = 0 ; if ( "north" in a && ( b = a . north , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "north" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "north" , g ) } this . getWidgetByName ( this . getName ( ) + "north" ) . element . height ( b . height ) . css ( { position : "absolute" , top : b . top || 0 , left : b . left || 0 , right : b . right || 0 , bottom : "initial" } ) } c = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "south" in a && ( b = a . south , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "south" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "south" , g ) } this . getWidgetByName ( this . getName ( ) + "south" ) . element . height ( b . height ) . css ( { position : "absolute" , bottom : b . bottom || 0 , left : b . left || 0 , right : b . right || 0 , top : "initial" } ) } d = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "west" in a && ( b = a . west , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "west" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "west" , g ) } this . getWidgetByName ( this . getName ( ) + "west" ) . element . width ( b . width ) . css ( { position : "absolute" , left : b . left || 0 , top : c , bottom : d , right : "initial" } ) } e = ( b . width || 0 ) + ( b . left || 0 ) + ( b . right || 0 ) } if ( "east" in a && ( b = a . east , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "east" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "east" , g ) } this . getWidgetByName ( this . getName ( ) + "east" ) . element . width ( b . width ) . css ( { position : "absolute" , right : b . right || 0 , top : c , bottom : d , left : "initial" } ) } f = ( b . width || 0 ) + ( b . left || 0 ) + ( b . right || 0 ) } if ( "center" in a && ( b = a . center , null != b ) ) { if ( ! this . hasWidget ( this . getName ( ) + "center" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "center" , g ) } this . getWidgetByName ( this . getName ( ) + "center" ) . element . css ( { position : "absolute" , top : c , bottom : d , left : e , right : f } ) } } , populate : function ( a ) { BI . BorderLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.border" , BI . BorderLayout ) , BI . CardLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . CardLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-card-layout" , items : [ ] } ) } , render : function ( ) { BI . CardLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , stroke : function ( a ) { var b = this , c = this . options ; this . showIndex = void 0 , BI . each ( a , function ( a , d ) { if ( d ) { if ( b . hasWidget ( d . cardName ) ) var e = b . getWidgetByName ( d . cardName ) ; else { var e = BI . createWidget ( d ) ; e . on ( BI . Events . DESTROY , function ( ) { var a = BI . findIndex ( c . items , function ( a , b ) { return b . cardName == d . cardName } ) ; a > - 1 && c . items . splice ( a , 1 ) } ) , b . addWidget ( d . cardName , e ) } e . element . css ( { position : "absolute" , top : "0" , right : "0" , bottom : "0" , left : "0" } ) , e . setVisible ( ! 1 ) } } ) } , update : function ( ) { } , empty : function ( ) { BI . CardLayout . superclass . empty . apply ( this , arguments ) , this . options . items = [ ] } , populate : function ( a ) { BI . CardLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) , this . options . d
} ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : c . length , rows : 1 , items : c } ) } , populate : function ( a ) { BI . CenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.center" , BI . CenterLayout ) , BI . FloatCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . FloatCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] , d = 100 / a . length ; BI . each ( a , function ( b ) { var e = BI . createWidget ( { type : "bi.default" } ) ; e . element . addClass ( "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) ) . css ( { width : d + "%" , height : "100%" } ) , c . push ( { el : e } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.left" , element : this , items : c } ) } , populate : function ( a ) { BI . FloatCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.float_center" , BI . FloatCenterLayout ) , BI . HorizontalCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizontal-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] ; BI . each ( a , function ( b ) { c . push ( { column : b , row : 0 , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : c . length , rows : 1 , items : c } ) } , populate : function ( a ) { BI . HorizontalCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.horizontal_center" , BI . HorizontalCenterLayout ) , BI . VerticalCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . VerticalCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-vertical-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . VerticalCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] ; BI . each ( a , function ( b ) { c . push ( { column : 0 , row : b , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : 1 , rows : c . length , items : c } ) } , populate : function ( a ) { BI . VerticalCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.vertical_center" , BI . VerticalCenterLayout ) , BI . Data = Data = { } , Data . Constant = BICst = { } , function ( ) { var a = { } ; Data . BufferPool = { put : function ( b , c ) { if ( BI . isNotNull ( a [ b ] ) ) throw new Error ( "Buffer Pool has the key already!" ) ; a [ b ] = c } , get : function ( b ) { return a [ b ] } } } ( ) , function ( ) { var a = { } ; Data . SharingPool = { _Shared : a , put : function ( b , c ) { a [ b ] = c } , cat : function ( ) { for ( var b = Array . prototype . slice . call ( arguments , 0 ) , c = a , d = 0 ; d < b . lengt
var b = this . options ; this . text . element . _ _textKeywordMarked _ _ ( b . text || b . value , a , b . py ) } , unRedMark : function ( ) { var a = this . options ; this . text . element . _ _textKeywordMarked _ _ ( a . text || a . value , "" , a . py ) } , doHighLight : function ( ) { this . text . element . addClass ( "bi-high-light" ) } , unHighLight : function ( ) { this . text . element . removeClass ( "bi-high-light" ) } , setValue : function ( a ) { BI . Text . superclass . setValue . apply ( this , arguments ) , this . isReadOnly ( ) || this . setText ( a ) } , setStyle : function ( a ) { this . text . element . css ( a ) } , setText : function ( a ) { BI . Text . superclass . setText . apply ( this , arguments ) , this . options . text = a , this . text . element . html ( BI . htmlEncode ( a ) ) } } ) , BI . shortcut ( "bi.text" , BI . Text ) , BI . BasicButton = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . BasicButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-basic-button" + ( a . invalid ? "" : " cursor-pointer" ) , value : "" , text : "" , stopEvent : ! 1 , stopPropagation : ! 1 , selected : ! 1 , once : ! 1 , forceSelected : ! 1 , forceNotSelected : ! 1 , disableSelected : ! 1 , shadow : ! 1 , isShadowShowingOnSelected : ! 1 , trigger : null , handler : BI . emptyFn , bubble : null } ) } , _init : function ( ) { BI . BasicButton . superclass . _init . apply ( this , arguments ) ; var a = this . options ; a . selected === ! 0 && BI . nextTick ( BI . bind ( function ( ) { this . setSelected ( a . selected ) } , this ) ) , BI . nextTick ( BI . bind ( this . bindEvent , this ) ) , a . shadow && this . _createShadow ( ) , a . level && this . element . addClass ( "button-" + a . level ) } , _createShadow : function ( ) { var a = this , b = this . options , c = function ( ) { a . $mask || ( a . $mask = BI . createWidget ( BI . isObject ( b . shadow ) ? b . shadow : { } , { type : "bi.layout" , cls : "bi-button-mask" } ) , a . $mask . invisible ( ) , BI . createWidget ( { type : "bi.absolute" , element : a , items : [ { el : a . $mask , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) ) } ; this . element . mouseup ( function ( ) { a . _hover || b . isShadowShowingOnSelected || ( c ( ) , a . $mask . invisible ( ) ) } ) , this . element . on ( "mouseenter." + this . getName ( ) , function ( d ) { a . element . _ _isMouseInBounds _ _ ( d ) && ( ! a . isEnabled ( ) || a . _hover || ! b . isShadowShowingOnSelected && a . isSelected ( ) || ( c ( ) , a . $mask . visible ( ) ) ) } ) , this . element . on ( "mousemove." + this . getName ( ) , function ( b ) { a . element . _ _isMouseInBounds _ _ ( b ) || a . isEnabled ( ) && ! a . _hover && ( c ( ) , a . $mask . invisible ( ) ) } ) , this . element . on ( "mouseleave." + this . getName ( ) , function ( ) { a . isEnabled ( ) && ! a . _hover && ( c ( ) , a . $mask . invisible ( ) ) } ) } , bindEvent : function ( ) { function a ( a ) { e . stopEvent && a . stopEvent ( ) , e . stopPropagation && a . stopPropagation ( ) } function b ( b ) { if ( a ( b ) , ! ( ! d . isEnabled ( ) || d . isOnce ( ) && d . isSelected ( ) ) ) { if ( BI . isKey ( e . bubble ) || BI . isFunction ( e . bubble ) ) { if ( BI . isNull ( d . combo ) ) { var f ; BI . createWidget ( { type : "bi.absolute" , element : d , items : [ { el : { type : "bi.bubble_combo" , trigger : "" , ref : function ( ) { d . combo = this } , el : { type : "bi.layout" , height : "100%" } , popup : { type : "bi.text_bubble_bar_popup_view" , text : c ( ) , ref : function ( ) { f = this } , listeners : [ { eventName : BI . BubblePopupBarView . EVENT _CLICK _TOOLBAR _BUTTON , action : function ( a ) { d . combo . hideView ( ) , a && h . apply ( d , arguments ) } } ] } , listeners : [ { eventName : BI . BubbleCombo . EVENT _BEFORE _POPUPVIEW , action : function ( ) { f . populate ( c ( ) ) } } ] } , left : 0 , right : 0 , bottom : 0 , top : 0 } ] } ) } return void ( d . combo . isViewVisible ( ) ? d . combo . hideView ( ) : d . combo . showView ( ) ) } h . apply ( d , arguments ) } } function c ( ) { var a = d . options . bubble ; return BI . isFunction ( a ) ? a ( ) : a } var d = this , e = this . options , f = this . handle ( ) ; if ( f ) { f = f . element ; var g = ( e . trigger || "" ) . split ( "," ) ; BI . each ( g , function ( c , g ) { switch ( g ) { case "mouseup" : var h = ! 1 ; f . mousedown ( function ( ) { h = ! 0 } ) , f . mouseup ( function ( c ) { h === ! 0 && b ( c ) , h = ! 1 , a ( c ) } ) ; break ; case "mousedown" : var h = ! 1 , i = ! 1 ; f . mousedown ( function ( c ) { $ ( document ) . bind ( "mouseup." + d . getName ( ) , function ( a ) { ! BI . DOM . isExist ( d ) || f . _ _isMouseInBounds _ _ ( a ) || h !== ! 0 || i || d . _trigger ( ) , h = ! 1 , $ ( document ) . unbind ( "mouseup." + d . getName ( ) ) } ) , h !== ! 0 && ( d . isSelected ( ) ? i = ! 0 : b ( c ) , h = ! 0 , a ( c ) ) } ) , f . mouseup ( function ( a ) { BI . DOM . isExist ( d ) && h === ! 0 && i === ! 0 && b ( a ) , h = ! 1 , i = ! 1 , $ ( document ) . unbind ( "mouseup." + d . getName ( ) ) } ) ; break ; case "dblclick" : f . dblclick ( b ) ; break ; case "lclick" : var j , h = ! 1 ; f . mousedown ( function ( b ) { $ ( document ) . bind ( "mouseup." + d . getName ( ) , function ( a ) { j && clearInterval ( j ) , j = null , h = ! 1 , $ ( document ) . unbind ( "mouseup." + d . getName ( ) ) } ) , h !== ! 0 && ( ! d . isEnabled ( ) || d . isOnce ( ) && d . isSelected ( ) || ( j = setInterval ( function ( ) { d . isEnabled ( ) && d . doClick ( ) } , 100 ) , h = ! 0 , a
var e = a . _sectionManager . getCellMetadata ( d ) ; b . push ( e ) } ) , b } , _calculateChildrenToRender : function ( ) { var a = this , b = this . options , c = BI . clamp ( b . scrollLeft , 0 , this . _getMaxScrollLeft ( ) ) , d = BI . clamp ( b . scrollTop , 0 , this . _getMaxScrollTop ( ) ) , e = Math . max ( 0 , c - b . horizontalOverscanSize ) , f = Math . max ( 0 , d - b . verticalOverscanSize ) , g = Math . min ( this . _width , c + b . width + b . horizontalOverscanSize ) , h = Math . min ( this . _height , d + b . height + b . verticalOverscanSize ) ; if ( g > 0 && h > 0 ) { if ( f >= this . renderRange . minY && h <= this . renderRange . maxY && e >= this . renderRange . minX && g <= this . renderRange . maxX ) return ; for ( var i = this . _cellRenderers ( h - f , g - e , e , f ) , j = [ ] , k = { } , l = { } , m = { } , n = { } , o = 0 , p = i . length ; o < p ; o ++ ) { var q = i [ o ] ; m [ q . x ] = q . x , m [ q . x + q . width ] = q . x + q . width , n [ q . y ] = q . y , n [ q . y + q . height ] = q . y + q . height } m = BI . toArray ( m ) , n = BI . toArray ( n ) ; for ( var r = BI . invert ( m ) , s = BI . invert ( n ) , t = { } , u = { } , v = { } , w = { } , x = function ( a , b ) { null == a [ b ] && ( a [ b ] = Number . MAX _VALUE ) } , y = function ( a , b ) { null == a [ b ] && ( a [ b ] = 0 ) } , o = 0 , p = i . length ; o < p ; o ++ ) { var z , q = i [ o ] , A = this . renderedKeys [ q . index ] && this . renderedKeys [ q . index ] [ 1 ] ; A >= 0 ? ( q . width !== this . renderedCells [ A ] . _width && ( this . renderedCells [ A ] . _width = q . width , this . renderedCells [ A ] . el . setWidth ( q . width ) ) , q . height !== this . renderedCells [ A ] . _height && ( this . renderedCells [ A ] . _height = q . height , this . renderedCells [ A ] . el . setHeight ( q . height ) ) , this . renderedCells [ A ] . _left !== q . x && this . renderedCells [ A ] . el . element . css ( "left" , q . x + "px" ) , this . renderedCells [ A ] . _top !== q . y && this . renderedCells [ A ] . el . element . css ( "top" , q . y + "px" ) , j . push ( z = this . renderedCells [ A ] ) ) : ( z = BI . createWidget ( BI . extend ( { type : "bi.label" , width : q . width , height : q . height } , b . items [ q . index ] , { cls : ( b . items [ q . index ] . cls || "" ) + " container-cell" + ( 0 === q . y ? " first-row" : "" ) + ( 0 === q . x ? " first-col" : "" ) , _left : q . x , _top : q . y } ) ) , j . push ( { el : z , left : q . x , top : q . y , _left : q . x , _top : q . y , _width : q . width , _height : q . height } ) ) ; for ( var B = 0 | s [ q . y ] , C = 0 | s [ q . y + q . height ] , D = B ; D <= C ; D ++ ) { var E = n [ D ] ; x ( t , E ) , y ( u , E ) , t [ E ] = Math . min ( t [ E ] , q . x ) , u [ E ] = Math . max ( u [ E ] , q . x + q . width ) } for ( var F = 0 | r [ q . x ] , G = 0 | r [ q . x + q . width ] , D = F ; D <= G ; D ++ ) { var H = m [ D ] ; x ( v , H ) , y ( w , H ) , v [ H ] = Math . min ( v [ H ] , q . y ) , w [ H ] = Math . max ( w [ H ] , q . y + q . height ) } k [ q . index ] = [ q . index , o ] , l [ o ] = z } var I = { } , J = { } , K = [ ] ; BI . each ( k , function ( b , c ) { a . renderedKeys [ b ] ? I [ b ] = c : J [ b ] = c } ) , BI . each ( this . renderedKeys , function ( a , b ) { I [ a ] || J [ a ] || K . push ( b [ 1 ] ) } ) , BI . each ( K , function ( b , c ) { a . renderedCells [ c ] . el . _destroy ( ) } ) ; var L = [ ] ; BI . each ( J , function ( a , b ) { L . push ( j [ b [ 1 ] ] ) } ) , this . container . addItems ( L ) , this . container . _children = l , this . container . attr ( "items" , j ) , this . renderedCells = j , this . renderedKeys = k ; var M = BI . min ( t ) , N = BI . max ( u ) , O = BI . max ( v ) , P = BI . min ( w ) ; this . renderRange = { minX : M , minY : O , maxX : N , maxY : P } } } , _getMaxScrollLeft : function ( ) { return Math . max ( 0 , this . _width - this . options . width + ( this . options . overflowX ? BI . DOM . getScrollWidth ( ) : 0 ) ) } , _getMaxScrollTop : function ( ) { return Math . max ( 0 , this . _height - this . options . height + ( this . options . overflowY ? BI . DOM . getScrollWidth ( ) : 0 ) ) } , _populate : function ( a ) { var b = this . options ; if ( this . _reRange ( ) , a && a !== this . options . items && ( this . options . items = a , this . _calculateSizeAndPositionData ( ) ) , b . items . length > 0 ) { this . container . setWidth ( this . _width ) , this . container . setHeight ( this . _height ) , this . _calculateChildrenToRender ( ) ; try { this . element . scrollTop ( b . scrollTop ) , this . element . scrollLeft ( b . scrollLeft ) } catch ( c ) { } } } , setScrollLeft : function ( a ) { this . options . scrollLeft !== a && ( this . _scrollLock = ! 0 , this . options . scrollLeft = BI . clamp ( a || 0 , 0 , this . _getMaxScrollLeft ( ) ) , this . _debounceRelease ( ) , this . _calculateChildrenToRender ( ) , this . element . scrollLeft ( this . options . scrollLeft ) ) } , setScrollTop : function ( a ) { this . options . scrollTop !== a && ( this . _scrollLock = ! 0 , this . options . scrollTop = BI . clamp ( a || 0 , 0 , this . _getMaxScrollTop ( ) ) , this . _debounceRelease ( ) , this . _calculateChildrenToRender ( ) , this . element . scrollTop ( this . options . scrollTop ) ) } , setOverflowX : function ( a ) { var b = this ; this . options . overflowX !== ! ! a && ( this . options . overflowX = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowX : a ? "auto" : "hidden" } ) } ) ) } , setOverflowY : function ( a ) { var b = this ; this . options . overflowY !== ! ! a && ( this . options . overflowY = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowY : a ? "auto" : "hidden" } ) } ) ) } , getScrollLeft : function ( ) { return this . options . scrollLeft } , getScrollTop : function ( ) { retu
} , popup : { type : "bi.searcher_view" } , adapter : null , masker : { offset : { } } } ) } , _init : function ( ) { BI . Searcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( b . el , { type : "bi.search_editor" } ) , BI . createWidget ( { type : "bi.vertical" , element : this , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , vgap : b . vgap , hgap : b . hgap , items : [ this . editor ] } ) , b . isDefaultInit && this . _assertPopupView ( ) ; var c = BI . debounce ( BI . bind ( this . _search , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) ; this . editor . on ( BI . Controller . EVENT _CHANGE , function ( b ) { switch ( b ) { case BI . Events . STARTEDIT : a . _startSearch ( ) ; break ; case BI . Events . EMPTY : a . _stopSearch ( ) ; break ; case BI . Events . CHANGE : c ( ) ; break ; case BI . Events . PAUSE : a . _pauseSearch ( ) } } ) } , _assertPopupView : function ( ) { var a = this , b = this . options ; ( b . masker && ! BI . Maskers . has ( this . getName ( ) ) || b . masker === ! 1 && ! this . popupView ) && ( this . popupView = BI . createWidget ( b . popup , { type : "bi.searcher_view" , chooseType : b . chooseType } ) , this . popupView . on ( BI . Controller . EVENT _CHANGE , function ( c , d , e ) { if ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , c === BI . Events . CLICK ) { if ( b . isAutoSync ) { var f = b . adapter && b . adapter . getValue ( ) ; if ( e . isSelected ( ) ) switch ( b . chooseType ) { case BI . ButtonGroup . CHOOSE _TYPE _SINGLE : b . adapter && b . adapter . setValue ( [ e . getValue ( ) ] ) ; break ; case BI . ButtonGroup . CHOOSE _TYPE _MULTI : f . push ( e . getValue ( ) ) , b . adapter && b . adapter . setValue ( f ) } else b . adapter && b . adapter . setValue ( BI . deepWithout ( f , e . getValue ( ) ) ) } a . fireEvent ( BI . Searcher . EVENT _CHANGE , d , e ) } } ) , BI . nextTick ( function ( ) { a . fireEvent ( BI . Searcher . EVENT _AFTER _INIT ) } ) ) , b . masker && ! BI . Maskers . has ( this . getName ( ) ) && BI . Maskers . create ( this . getName ( ) , b . adapter , BI . extend ( { container : this , render : this . popupView } , b . masker ) , this ) } , _startSearch : function ( ) { this . _assertPopupView ( ) , this . _stop = ! 1 , this . _isSearching = ! 0 , this . fireEvent ( BI . Searcher . EVENT _START ) , this . popupView . startSearch && this . popupView . startSearch ( ) , BI . nextTick ( function ( a ) { BI . Maskers . show ( a ) } , this . getName ( ) ) } , _pauseSearch : function ( ) { this . options , this . getName ( ) ; this . _stop = ! 0 , BI . nextTick ( function ( a ) { BI . Maskers . hide ( a ) } , this . getName ( ) ) , this . _isSearching === ! 0 && ( this . popupView && this . popupView . pauseSearch && this . popupView . pauseSearch ( ) , this . fireEvent ( BI . Searcher . EVENT _PAUSE ) ) , this . _isSearching = ! 1 } , _stopSearch : function ( ) { var a = ( this . options , this . getName ( ) ) ; this . _stop = ! 0 , BI . Maskers . hide ( a ) , this . _isSearching === ! 0 && ( this . popupView && this . popupView . stopSearch && this . popupView . stopSearch ( ) , this . fireEvent ( BI . Searcher . EVENT _STOP ) ) , this . _isSearching = ! 1 } , _search : function ( ) { var a = this , b = this . options , c = this . editor . getValue ( ) ; if ( "" !== c && ! this . _stop ) { if ( b . isAutoSearch ) { var d = b . adapter && ( b . adapter . getItems && b . adapter . getItems ( ) || b . adapter . attr ( "items" ) ) || [ ] , e = BI . Func . getSearchResult ( d , c ) , f = e . match , g = e . find ; return this . popupView . populate ( g , f , c ) , b . isAutoSync && b . adapter && b . adapter . getValue && this . popupView . setValue ( b . adapter . getValue ( ) ) , void a . fireEvent ( BI . Searcher . EVENT _SEARCHING ) } this . popupView . loading && this . popupView . loading ( ) , b . onSearch ( { times : 1 , keyword : c , selectedValues : b . adapter && b . adapter . getValue ( ) } , function ( d , e ) { if ( ! a . _stop ) { var f = [ ] . slice . call ( arguments ) ; f . length > 0 && f . push ( c ) , BI . Maskers . show ( a . getName ( ) ) , a . popupView . populate . apply ( a . popupView , f ) , b . isAutoSync && b . adapter && b . adapter . getValue && a . popupView . setValue ( b . adapter . getValue ( ) ) , a . popupView . loaded && a . popupView . loaded ( ) , a . fireEvent ( BI . Searcher . EVENT _SEARCHING ) } } ) } } , setAdapter : function ( a ) { this . options . adapter = a , BI . Maskers . remove ( this . getName ( ) ) } , doSearch : function ( ) { this . isSearching ( ) && this . _search ( ) } , stopSearch : function ( ) { this . _stopSearch ( ) ; try { this . editor . blur ( ) } catch ( a ) { if ( ! this . editor . blur ) throw new Error ( "editor没有实现blur方法" ) } finally { this . editor . setValue ( "" ) } } , isSearching : function ( ) { return this . _isSearching } , isViewVisible : function ( ) { return this . editor . isEnabled ( ) && BI . Maskers . isVisible ( this . getName ( ) ) } , getView : function ( ) { return this . popupView } , hasMatched : function ( ) { return this . _assertPopupView ( ) , this . popupView . hasMatched ( ) } , adjustHeight : function ( ) { BI . Maskers . has ( this . getName ( ) ) && BI . Maskers . get ( this . getName ( ) ) . isVisible ( ) && BI . Maskers . show ( this . getName ( ) ) } , adjustView : function ( ) { this . isViewVisible ( ) && BI . M
var f = a . getModeAt ( e . head ) , g = ! 1 ; if ( f . electricChars ) { for ( var h = 0 ; h < f . electricChars . length ; h ++ ) if ( b . indexOf ( f . electricChars . charAt ( h ) ) > - 1 ) { g = Kc ( a , e . head . line , "smart" ) ; break } } else f . electricInput && f . electricInput . test ( Vd ( a . doc , e . head . line ) . text . slice ( 0 , e . head . ch ) ) && ( g = Kc ( a , e . head . line , "smart" ) ) ; g && te ( a , "electricInput" , a , e . head . line ) } } } function ba ( a ) { for ( var b = [ ] , c = [ ] , d = 0 ; d < a . doc . sel . ranges . length ; d ++ ) { var e = a . doc . sel . ranges [ d ] . head . line , f = { anchor : Ff ( e , 0 ) , head : Ff ( e + 1 , 0 ) } ; c . push ( f ) , b . push ( a . getRange ( f . anchor , f . head ) ) } return { text : b , ranges : c } } function ca ( a ) { a . setAttribute ( "autocorrect" , "off" ) , a . setAttribute ( "autocapitalize" , "off" ) , a . setAttribute ( "spellcheck" , "false" ) } function da ( a ) { this . cm = a , this . prevInput = "" , this . pollingFast = ! 1 , this . polling = new ze , this . inaccurateSelection = ! 1 , this . hasSelection = ! 1 , this . composing = null } function ea ( ) { var a = Me ( "textarea" , null , null , "position: absolute; padding: 0; width: 1px; height: 1em; outline: none" ) , b = Me ( "div" , [ a ] , null , "overflow: hidden; position: relative; width: 3px; height: 0px;" ) ; return pf ? a . style . width = "1000px" : a . setAttribute ( "wrap" , "off" ) , wf && ( a . style . border = "1px solid black" ) , ca ( a ) , b } function fa ( a ) { this . cm = a , this . lastAnchorNode = this . lastAnchorOffset = this . lastFocusNode = this . lastFocusOffset = null , this . polling = new ze , this . gracePeriod = ! 1 } function ga ( a , b ) { var c = $a ( a , b . line ) ; if ( ! c || c . hidden ) return null ; var d = Vd ( a . doc , b . line ) , e = Xa ( c , d , b . line ) , f = ae ( d ) , g = "left" ; if ( f ) { var h = ff ( f , b . ch ) ; g = h % 2 ? "right" : "left" } var i = bb ( e . map , b . ch , g ) ; return i . offset = "right" == i . collapse ? i . end : i . start , i } function ha ( a , b ) { return b && ( a . bad = ! 0 ) , a } function ia ( a , b , c ) { var d ; if ( b == a . display . lineDiv ) { if ( d = a . display . lineDiv . childNodes [ c ] , ! d ) return ha ( a . clipPos ( Ff ( a . display . viewTo - 1 ) ) , ! 0 ) ; b = null , c = 0 } else for ( d = b ; ; d = d . parentNode ) { if ( ! d || d == a . display . lineDiv ) return null ; if ( d . parentNode && d . parentNode == a . display . lineDiv ) break } for ( var e = 0 ; e < a . display . view . length ; e ++ ) { var f = a . display . view [ e ] ; if ( f . node == d ) return ja ( f , b , c ) } } function ja ( a , b , c ) { function d ( b , c , d ) { for ( var e = - 1 ; e < ( k ? k . length : 0 ) ; e ++ ) for ( var f = e < 0 ? j . map : k [ e ] , g = 0 ; g < f . length ; g += 3 ) { var h = f [ g + 2 ] ; if ( h == b || h == c ) { var i = Zd ( e < 0 ? a . line : a . rest [ e ] ) , l = f [ g ] + d ; return ( d < 0 || h != b ) && ( l = f [ g + ( d ? 1 : 0 ) ] ) , Ff ( i , l ) } } } var e = a . text . firstChild , f = ! 1 ; if ( ! b || ! Ng ( e , b ) ) return ha ( Ff ( Zd ( a . line ) , 0 ) , ! 0 ) ; if ( b == e && ( f = ! 0 , b = e . childNodes [ c ] , c = 0 , ! b ) ) { var g = a . rest ? Ce ( a . rest ) : a . line ; return ha ( Ff ( Zd ( g ) , g . text . length ) , f ) } var h = 3 == b . nodeType ? b : null , i = b ; for ( h || 1 != b . childNodes . length || 3 != b . firstChild . nodeType || ( h = b . firstChild , c && ( c = h . nodeValue . length ) ) ; i . parentNode != e ; ) i = i . parentNode ; var j = a . measure , k = j . maps , l = d ( h , i , c ) ; if ( l ) return ha ( l , f ) ; for ( var m = i . nextSibling , n = h ? h . nodeValue . length - c : 0 ; m ; m = m . nextSibling ) { if ( l = d ( m , m . firstChild , 0 ) ) return ha ( Ff ( l . line , l . ch - n ) , f ) ; n += m . textContent . length } for ( var o = i . previousSibling , n = c ; o ; o = o . previousSibling ) { if ( l = d ( o , o . firstChild , - 1 ) ) return ha ( Ff ( l . line , l . ch + n ) , f ) ; n += m . textContent . length } } function ka ( a , b , c , d , e ) { function f ( a ) { return function ( b ) { return b . id == a } } function g ( b ) { if ( 1 == b . nodeType ) { var c = b . getAttribute ( "cm-text" ) ; if ( null != c ) return "" == c && ( c = b . textContent . replace ( /\u200b/g , "" ) ) , void ( h += c ) ; var j , k = b . getAttribute ( "cm-marker" ) ; if ( k ) { var l = a . findMarks ( Ff ( d , 0 ) , Ff ( e + 1 , 0 ) , f ( + k ) ) ; return void ( l . length && ( j = l [ 0 ] . find ( ) ) && ( h += Wd ( a . doc , j . from , j . to ) . join ( "\n" ) ) ) } if ( "false" == b . getAttribute ( "contenteditable" ) ) return ; for ( var m = 0 ; m < b . childNodes . length ; m ++ ) g ( b . childNodes [ m ] ) ; /^(pre|div|p)$/i . test ( b . nodeName ) && ( i = ! 0 ) } else if ( 3 == b . nodeType ) { var n = b . nodeValue ; if ( ! n ) return ; i && ( h += "\n" , i = ! 1 ) , h += n } } for ( var h = "" , i = ! 1 ; g ( b ) , b != c ; ) b = b . nextSibling ; return h } function la ( a , b ) { this . ranges = a , this . primIndex = b } function ma ( a , b ) { this . anchor = a , this . head = b } function na ( a , b ) { var c = a [ b ] ; a . sort ( function ( a , b ) { return Gf ( a . from ( ) , b . from ( ) ) } ) , b = De ( a , c ) ; for ( var d = 1 ; d < a . length ; d ++ ) { var e = a [ d ] , f = a [ d - 1 ] ; if ( Gf ( f . to ( ) , e . from ( ) ) >= 0 ) { var g = X ( f . from ( ) , e . from ( ) ) , h = W ( f . to ( ) , e . to ( ) ) , i = f . empty ( ) ? e . from ( ) == e . head : f . from ( ) == f . head ; d <= b && -- b , a . splice ( -- d , 2 , new ma ( i ? h : g , i ? g : h ) ) } } return new la ( a , b ) } function oa ( a , b ) { return new la ( [ new ma ( a , b || a ) ] , 0 ) } function pa ( a , b ) { return Math . max ( a . first , Math . min ( b , a . first + a . size - 1 ) ) } function qa ( a , b ) { if ( b . line < a . first ) return F
nf && ( Of = + new Date ) ; var c = Tb ( b , a , ! 0 ) , d = a . dataTransfer . files ; if ( c && ! Z ( b ) ) if ( d && d . length && window . FileReader && window . File ) for ( var e = d . length , f = Array ( e ) , g = 0 , h = function ( a , d ) { var h = new FileReader ; h . onload = Db ( b , function ( ) { if ( f [ d ] = h . result , ++ g == e ) { c = qa ( b . doc , c ) ; var a = { from : c , to : c , text : Ug ( f . join ( "\n" ) ) , origin : "paste" } ; wc ( b . doc , a ) , Aa ( b . doc , oa ( c , Uf ( a ) ) ) } } ) , h . readAsText ( a ) } , i = 0 ; i < e ; ++ i ) h ( d [ i ] , i ) ; else { if ( b . state . draggingText && b . doc . sel . contains ( c ) > - 1 ) return b . state . draggingText ( a ) , void setTimeout ( function ( ) { b . display . input . focus ( ) } , 20 ) ; try { var f = a . dataTransfer . getData ( "Text" ) ; if ( f ) { if ( b . state . draggingText && ! ( yf ? a . altKey : a . ctrlKey ) ) var j = b . listSelections ( ) ; if ( Ca ( b . doc , oa ( c , c ) ) , j ) for ( var i = 0 ; i < j . length ; ++ i ) Cc ( b . doc , "" , j [ i ] . anchor , j [ i ] . head , "drag" ) ; b . replaceSelection ( f , "around" , "paste" ) , b . display . input . focus ( ) } } catch ( a ) { } } } } function _b ( a , b ) { if ( nf && ( ! a . state . draggingText || + new Date - Of < 100 ) ) return void wg ( b ) ; if ( ! ve ( a , b ) && ! Sb ( a . display , b ) && ( b . dataTransfer . setData ( "Text" , a . getSelection ( ) ) , b . dataTransfer . setDragImage && ! tf ) ) { var c = Me ( "img" , null , null , "position: fixed; left: 0; top: 0;" ) ; c . src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" , sf && ( c . width = c . height = 1 , a . display . wrapper . appendChild ( c ) , c . _top = c . offsetTop ) , b . dataTransfer . setDragImage ( c , 0 , 0 ) , sf && c . parentNode . removeChild ( c ) } } function ac ( a , b ) { Math . abs ( a . doc . scrollTop - b ) < 2 || ( a . doc . scrollTop = b , kf || D ( a , { top : b } ) , a . display . scroller . scrollTop != b && ( a . display . scroller . scrollTop = b ) , a . display . scrollbars . setScrollTop ( b ) , kf && D ( a ) , Ma ( a , 100 ) ) } function bc ( a , b , c ) { ( c ? b == a . doc . scrollLeft : Math . abs ( a . doc . scrollLeft - b ) < 2 ) || ( b = Math . min ( b , a . display . scroller . scrollWidth - a . display . scroller . clientWidth ) , a . doc . scrollLeft = b , v ( a ) , a . display . scroller . scrollLeft != b && ( a . display . scroller . scrollLeft = b ) , a . display . scrollbars . setScrollLeft ( b ) ) } function cc ( a , b ) { var c = Rf ( b ) , d = c . x , e = c . y , f = a . display , g = f . scroller ; if ( d && g . scrollWidth > g . clientWidth || e && g . scrollHeight > g . clientHeight ) { if ( e && yf && pf ) a : for ( var h = b . target , i = f . view ; h != g ; h = h . parentNode ) for ( var j = 0 ; j < i . length ; j ++ ) if ( i [ j ] . node == h ) { a . display . currentWheelTarget = h ; break a } if ( d && ! kf && ! sf && null != Qf ) return e && ac ( a , Math . max ( 0 , Math . min ( g . scrollTop + e * Qf , g . scrollHeight - g . clientHeight ) ) ) , bc ( a , Math . max ( 0 , Math . min ( g . scrollLeft + d * Qf , g . scrollWidth - g . clientWidth ) ) ) , ug ( b ) , void ( f . wheelStartX = null ) ; if ( e && null != Qf ) { var k = e * Qf , l = a . doc . scrollTop , m = l + f . wrapper . clientHeight ; k < 0 ? l = Math . max ( 0 , l + k - 50 ) : m = Math . min ( a . doc . height , m + k + 50 ) , D ( a , { top : l , bottom : m } ) } Pf < 20 && ( null == f . wheelStartX ? ( f . wheelStartX = g . scrollLeft , f . wheelStartY = g . scrollTop , f . wheelDX = d , f . wheelDY = e , setTimeout ( function ( ) { if ( null != f . wheelStartX ) { var a = g . scrollLeft - f . wheelStartX , b = g . scrollTop - f . wheelStartY , c = b && f . wheelDY && b / f . wheelDY || a && f . wheelDX && a / f . wheelDX ; f . wheelStartX = f . wheelStartY = null , c && ( Qf = ( Qf * Pf + c ) / ( Pf + 1 ) , ++ Pf ) } } , 200 ) ) : ( f . wheelDX += d , f . wheelDY += e ) ) } } function dc ( a , b , c ) { if ( "string" == typeof b && ( b = dg [ b ] , ! b ) ) return ! 1 ; a . display . input . ensurePolled ( ) ; var d = a . display . shift , e = ! 1 ; try { Z ( a ) && ( a . state . suppressEdits = ! 0 ) , c && ( a . display . shift = ! 1 ) , e = b ( a ) != Cg } finally { a . display . shift = d , a . state . suppressEdits = ! 1 } return e } function ec ( a , b , c ) { for ( var d = 0 ; d < a . state . keyMaps . length ; d ++ ) { var e = fg ( b , a . state . keyMaps [ d ] , c , a ) ; if ( e ) return e } return a . options . extraKeys && fg ( b , a . options . extraKeys , c , a ) || fg ( b , a . options . keyMap , c , a ) } function fc ( a , b , c , d ) { var e = a . state . keySeq ; if ( e ) { if ( gg ( b ) ) return "handled" ; Sf . set ( 50 , function ( ) { a . state . keySeq == e && ( a . state . keySeq = null , a . display . input . reset ( ) ) } ) , b = e + " " + b } var f = ec ( a , b , d ) ; return "multi" == f && ( a . state . keySeq = b ) , "handled" == f && te ( a , "keyHandled" , a , b , c ) , "handled" != f && "multi" != f || ( ug ( c ) , La ( a ) ) , e && ! f && /\'$/ . test ( b ) ? ( ug ( c ) , ! 0 ) : ! ! f } function gc ( a , b ) { var c = hg ( b , ! 0 ) ; return ! ! c && ( b . shiftKey && ! a . state . keySeq ? fc ( a , "Shift-" + c , b , function ( b ) { return dc ( a , b , ! 0 ) } ) || fc ( a , c , b , function ( b ) { if ( "string" == typeof b ? /^go[A-Z]/ . test ( b ) : b . motion ) return dc ( a , b ) } ) : fc ( a , c , b , function ( b ) { return dc ( a , b ) } ) ) } function hc ( a , b , c ) { return fc ( a , "'" + c + "'" , b , function ( b ) { return dc ( a , b , ! 0 ) } ) } function ic ( a ) { var b = this ; if ( b . curOp . focus = Pe ( ) , ! ve ( b , a ) ) { nf && of < 11 && 27 == a . keyCode && ( a . returnValue = ! 1 ) ; var c = a . keyCode ; b . display . shift = 16 == c || a . shiftKey ; var d = gc ( b , a ) ;
var e = a . children [ d ] , f = e . height ; if ( b < f ) { a = e ; continue a } b -= f , c += e . chunkSize ( ) } return c } while ( ! a . lines ) ; for ( var d = 0 ; d < a . lines . length ; ++ d ) { var g = a . lines [ d ] , h = g . height ; if ( b < h ) break ; b -= h } return c + d } function _d ( a ) { a = od ( a ) ; for ( var b = 0 , c = a . parent , d = 0 ; d < c . lines . length ; ++ d ) { var e = c . lines [ d ] ; if ( e == a ) break ; b += e . height } for ( var f = c . parent ; f ; c = f , f = c . parent ) for ( var d = 0 ; d < f . children . length ; ++ d ) { var g = f . children [ d ] ; if ( g == c ) break ; b += g . height } return b } function ae ( a ) { var b = a . order ; return null == b && ( b = a . order = $g ( a . text ) ) , b } function be ( a ) { this . done = [ ] , this . undone = [ ] , this . undoDepth = 1 / 0 , this . lastModTime = this . lastSelTime = 0 , this . lastOp = this . lastSelOp = null , this . lastOrigin = this . lastSelOrigin = null , this . generation = this . maxGeneration = a || 1 } function ce ( a , b ) { var c = { from : V ( b . from ) , to : Uf ( b ) , text : Wd ( a , b . from , b . to ) } ; return je ( a , c , b . from . line , b . to . line + 1 ) , Td ( a , function ( a ) { je ( a , c , b . from . line , b . to . line + 1 ) } , ! 0 ) , c } function de ( a ) { for ( ; a . length ; ) { var b = Ce ( a ) ; if ( ! b . ranges ) break ; a . pop ( ) } } function ee ( a , b ) { return b ? ( de ( a . done ) , Ce ( a . done ) ) : a . done . length && ! Ce ( a . done ) . ranges ? Ce ( a . done ) : a . done . length > 1 && ! a . done [ a . done . length - 2 ] . ranges ? ( a . done . pop ( ) , Ce ( a . done ) ) : void 0 } function fe ( a , b , c , d ) { var e = a . history ; e . undone . length = 0 ; var f , g = + new Date ; if ( ( e . lastOp == d || e . lastOrigin == b . origin && b . origin && ( "+" == b . origin . charAt ( 0 ) && a . cm && e . lastModTime > g - a . cm . options . historyEventDelay || "*" == b . origin . charAt ( 0 ) ) ) && ( f = ee ( e , e . lastOp == d ) ) ) { var h = Ce ( f . changes ) ; 0 == Gf ( b . from , b . to ) && 0 == Gf ( b . from , h . to ) ? h . to = Uf ( b ) : f . changes . push ( ce ( a , b ) ) } else { var i = Ce ( e . done ) ; for ( i && i . ranges || ie ( a . sel , e . done ) , f = { changes : [ ce ( a , b ) ] , generation : e . generation } , e . done . push ( f ) ; e . done . length > e . undoDepth ; ) e . done . shift ( ) , e . done [ 0 ] . ranges || e . done . shift ( ) } e . done . push ( c ) , e . generation = ++ e . maxGeneration , e . lastModTime = e . lastSelTime = g , e . lastOp = e . lastSelOp = d , e . lastOrigin = e . lastSelOrigin = b . origin , h || zg ( a , "historyAdded" ) } function ge ( a , b , c , d ) { var e = b . charAt ( 0 ) ; return "*" == e || "+" == e && c . ranges . length == d . ranges . length && c . somethingSelected ( ) == d . somethingSelected ( ) && new Date - a . history . lastSelTime <= ( a . cm ? a . cm . options . historyEventDelay : 500 ) } function he ( a , b , c , d ) { var e = a . history , f = d && d . origin ; c == e . lastSelOp || f && e . lastSelOrigin == f && ( e . lastModTime == e . lastSelTime && e . lastOrigin == f || ge ( a , f , Ce ( e . done ) , b ) ) ? e . done [ e . done . length - 1 ] = b : ie ( b , e . done ) , e . lastSelTime = + new Date , e . lastSelOrigin = f , e . lastSelOp = c , d && d . clearRedo !== ! 1 && de ( e . undone ) } function ie ( a , b ) { var c = Ce ( b ) ; c && c . ranges && c . equals ( a ) || b . push ( a ) } function je ( a , b , c , d ) { var e = b [ "spans_" + a . id ] , f = 0 ; a . iter ( Math . max ( a . first , c ) , Math . min ( a . first + a . size , d ) , function ( c ) { c . markedSpans && ( ( e || ( e = b [ "spans_" + a . id ] = { } ) ) [ f ] = c . markedSpans ) , ++ f } ) } function ke ( a ) { if ( ! a ) return null ; for ( var b , c = 0 ; c < a . length ; ++ c ) a [ c ] . marker . explicitlyCleared ? b || ( b = a . slice ( 0 , c ) ) : b && b . push ( a [ c ] ) ; return b ? b . length ? b : null : a } function le ( a , b ) { var c = b [ "spans_" + a . id ] ; if ( ! c ) return null ; for ( var d = 0 , e = [ ] ; d < b . text . length ; ++ d ) e . push ( ke ( c [ d ] ) ) ; return e } function me ( a , b , c ) { for ( var d = 0 , e = [ ] ; d < a . length ; ++ d ) { var f = a [ d ] ; if ( f . ranges ) e . push ( c ? la . prototype . deepCopy . call ( f ) : f ) ; else { var g = f . changes , h = [ ] ; e . push ( { changes : h } ) ; for ( var i = 0 ; i < g . length ; ++ i ) { var j , k = g [ i ] ; if ( h . push ( { from : k . from , to : k . to , text : k . text } ) , b ) for ( var l in k ) ( j = l . match ( /^spans_(\d+)$/ ) ) && De ( b , Number ( j [ 1 ] ) ) > - 1 && ( Ce ( h ) [ l ] = k [ l ] , delete k [ l ] ) } } } return e } function ne ( a , b , c , d ) { c < a . line ? a . line += d : b < a . line && ( a . line = b , a . ch = 0 ) } function oe ( a , b , c , d ) { for ( var e = 0 ; e < a . length ; ++ e ) { var f = a [ e ] , g = ! 0 ; if ( f . ranges ) { f . copied || ( f = a [ e ] = f . deepCopy ( ) , f . copied = ! 0 ) ; for ( var h = 0 ; h < f . ranges . length ; h ++ ) ne ( f . ranges [ h ] . anchor , b , c , d ) , ne ( f . ranges [ h ] . head , b , c , d ) } else { for ( var h = 0 ; h < f . changes . length ; ++ h ) { var i = f . changes [ h ] ; if ( c < i . from . line ) i . from = Ff ( i . from . line + d , i . from . ch ) , i . to = Ff ( i . to . line + d , i . to . ch ) ; else if ( b <= i . to . line ) { g = ! 1 ; break } } g || ( a . splice ( 0 , e + 1 ) , e = 0 ) } } } function pe ( a , b ) { var c = b . from . line , d = b . to . line , e = b . text . length - ( d - c ) - 1 ; oe ( a . done , c , d , e ) , oe ( a . undone , c , d , e ) } function qe ( a ) { return null != a . defaultPrevented ? a . defaultPrevented : 0 == a . returnValue } function re ( a ) { return a . target || a . srcElement } function se ( a ) { var b = a . which ; return null == b && ( 1 & a . button ? b = 1 : 2 & a . button ? b = 3 : 4 & a . button && ( b = 2 ) ) , yf && a . ctrlKey && 1 == b && ( b = 3 ) , b } function te ( a , b ) { function c ( a ) { return
top : a . scrollTop , height : a . scrollHeight - Ta ( this ) - this . display . barHeight , width : a . scrollWidth - Ta ( this ) - this . display . barWidth , clientHeight : Va ( this ) , clientWidth : Ua ( this ) } } , scrollIntoView : Eb ( function ( a , b ) { if ( null == a ? ( a = { from : this . doc . sel . primary ( ) . head , to : null } , null == b && ( b = this . options . cursorScrollMargin ) ) : "number" == typeof a ? a = { from : Ff ( a , 0 ) , to : null } : null == a . from && ( a = { from : a , to : null } ) , a . to || ( a . to = a . from ) , a . margin = b || 0 , null != a . from . line ) Jc ( this ) , this . curOp . scrollToPos = a ; else { var c = Gc ( this , Math . min ( a . from . left , a . to . left ) , Math . min ( a . from . top , a . to . top ) - a . margin , Math . max ( a . from . right , a . to . right ) , Math . max ( a . from . bottom , a . to . bottom ) + a . margin ) ; this . scrollTo ( c . scrollLeft , c . scrollTop ) } } ) , setSize : Eb ( function ( a , b ) { function c ( a ) { return "number" == typeof a || /^\d+$/ . test ( String ( a ) ) ? a + "px" : a } var d = this ; null != a && ( d . display . wrapper . style . width = c ( a ) ) , null != b && ( d . display . wrapper . style . height = c ( b ) ) , d . options . lineWrapping && fb ( this ) ; var e = d . display . viewFrom ; d . doc . iter ( e , d . display . viewTo , function ( a ) { if ( a . widgets ) for ( var b = 0 ; b < a . widgets . length ; b ++ ) if ( a . widgets [ b ] . noHScroll ) { Jb ( d , e , "widget" ) ; break } ++ e } ) , d . curOp . forceUpdate = ! 0 , zg ( d , "refresh" , this ) } ) , operation : function ( a ) { return Cb ( this , a ) } , refresh : Eb ( function ( ) { var a = this . display . cachedTextHeight ; Ib ( this ) , this . curOp . forceUpdate = ! 0 , gb ( this ) , this . scrollTo ( this . doc . scrollLeft , this . doc . scrollTop ) , k ( this ) , ( null == a || Math . abs ( a - rb ( this . display ) ) > . 5 ) && g ( this ) , zg ( this , "refresh" , this ) } ) , swapDoc : Eb ( function ( a ) { var b = this . doc ; return b . cm = null , Ud ( this , a ) , gb ( this ) , this . display . input . reset ( ) , this . scrollTo ( a . scrollLeft , a . scrollTop ) , this . curOp . forceScroll = ! 0 , te ( this , "swapDoc" , this , b ) , b } ) , getInputField : function ( ) { return this . display . input . getField ( ) } , getWrapperElement : function ( ) { return this . display . wrapper } , getScrollerElement : function ( ) { return this . display . scroller } , getGutterElement : function ( ) { return this . display . gutters } } , ye ( a ) ; var Vf = a . defaults = { } , Wf = a . optionHandlers = { } , Xf = a . Init = { toString : function ( ) { return "CodeMirror.Init" } } ; Pc ( "value" , "" , function ( a , b ) { a . setValue ( b ) } , ! 0 ) , Pc ( "mode" , null , function ( a , b ) { a . doc . modeOption = b , c ( a ) } , ! 0 ) , Pc ( "indentUnit" , 2 , c , ! 0 ) , Pc ( "indentWithTabs" , ! 1 ) , Pc ( "smartIndent" , ! 0 ) , Pc ( "tabSize" , 4 , function ( a ) { d ( a ) , gb ( a ) , Ib ( a ) } , ! 0 ) , Pc ( "specialChars" , /[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g , function ( b , c , d ) { b . state . specialChars = new RegExp ( c . source + ( c . test ( "\t" ) ? "" : "|\t" ) , "g" ) , d != a . Init && b . refresh ( ) } ) , Pc ( "specialCharPlaceholder" , Jd , function ( a ) { a . refresh ( ) } , ! 0 ) , Pc ( "electricChars" , ! 0 ) , Pc ( "inputStyle" , xf ? "contenteditable" : "textarea" , function ( ) { throw new Error ( "inputStyle can not (yet) be changed in a running editor" ) } , ! 0 ) , Pc ( "rtlMoveVisually" , ! zf ) , Pc ( "wholeLineUpdateBefore" , ! 0 ) , Pc ( "theme" , "default" , function ( a ) { h ( a ) , i ( a ) } , ! 0 ) , Pc ( "keyMap" , "default" , function ( b , c , d ) { var e = Rc ( c ) , f = d != a . Init && Rc ( d ) ; f && f . detach && f . detach ( b , e ) , e . attach && e . attach ( b , f || null ) } ) , Pc ( "extraKeys" , null ) , Pc ( "lineWrapping" , ! 1 , e , ! 0 ) , Pc ( "gutters" , [ ] , function ( a ) { n ( a . options ) , i ( a ) } , ! 0 ) , Pc ( "fixedGutter" , ! 0 , function ( a , b ) { a . display . gutters . style . left = b ? y ( a . display ) + "px" : "0" , a . refresh ( ) } , ! 0 ) , Pc ( "coverGutterNextToScrollbar" , ! 1 , function ( a ) { s ( a ) } , ! 0 ) , Pc ( "scrollbarStyle" , "native" , function ( a ) { r ( a ) , s ( a ) , a . display . scrollbars . setScrollTop ( a . doc . scrollTop ) , a . display . scrollbars . setScrollLeft ( a . doc . scrollLeft ) } , ! 0 ) , Pc ( "lineNumbers" , ! 1 , function ( a ) { n ( a . options ) , i ( a ) } , ! 0 ) , Pc ( "firstLineNumber" , 1 , i , ! 0 ) , Pc ( "lineNumberFormatter" , function ( a ) { return a } , i , ! 0 ) , Pc ( "showCursorWhenSelecting" , ! 1 , Ha , ! 0 ) , Pc ( "resetSelectionOnContextMenu" , ! 0 ) , Pc ( "lineWiseCopyCut" , ! 0 ) , Pc ( "readOnly" , ! 1 , function ( a , b ) { "nocursor" == b ? ( oc ( a ) , a . display . input . blur ( ) , a . display . disabled = ! 0 ) : ( a . display . disabled = ! 1 , b || a . display . input . reset ( ) ) } ) , Pc ( "disableInput" , ! 1 , function ( a , b ) { b || a . display . input . reset ( ) } , ! 0 ) , Pc ( "dragDrop" , ! 0 , Qb ) , Pc ( "cursorBlinkRate" , 530 ) , Pc ( "cursorScrollMargin" , 0 ) , Pc ( "cursorHeight" , 1 , Ha , ! 0 ) , Pc ( "singleCursorHeightPerLine" , ! 0 , Ha , ! 0 ) , Pc ( "workTime" , 100 ) , Pc ( "workDelay" , 100 ) , Pc ( "flattenSpans" , ! 0 , d , ! 0 ) , Pc ( "addModeClass" , ! 1 , d , ! 0 ) , Pc ( "pollInterval" , 100 ) , Pc ( "undoDepth" , 200 , function ( a , b ) { a . doc . history . undoDepth = b } ) , Pc ( "historyEventDelay" , 1250 ) , Pc ( "viewportMargin" , 10 , function ( a ) { a . refresh ( ) } ,
Jg = document . createRange ? function ( a , b , c , d ) { var e = document . createRange ( ) ; return e . setEnd ( d || a , c ) , e . setStart ( a , b ) , e } : function ( a , b , c ) { var d = document . body . createTextRange ( ) ; try { d . moveToElementText ( a . parentNode ) } catch ( e ) { return d } return d . collapse ( ! 0 ) , d . moveEnd ( "character" , c ) , d . moveStart ( "character" , b ) , d } ; var Ng = a . contains = function ( a , b ) { if ( 3 == b . nodeType && ( b = b . parentNode ) , a . contains ) return a . contains ( b ) ; do if ( 11 == b . nodeType && ( b = b . host ) , b == a ) return ! 0 ; while ( b = b . parentNode ) } ; nf && of < 11 && ( Pe = function ( ) { try { return document . activeElement } catch ( a ) { return document . body } } ) ; var Og , Pg , Qg = a . rmClass = function ( a , b ) { var c = a . className , d = Qe ( b ) . exec ( c ) ; if ( d ) { var e = c . slice ( d . index + d [ 0 ] . length ) ; a . className = c . slice ( 0 , d . index ) + ( e ? d [ 1 ] + e : "" ) } } , Rg = a . addClass = function ( a , b ) { var c = a . className ; Qe ( b ) . test ( c ) || ( a . className += ( c ? " " : "" ) + b ) } , Sg = ! 1 , Tg = function ( ) { if ( nf && of < 9 ) return ! 1 ; var a = Me ( "div" ) ; return "draggable" in a || "dragDrop" in a } ( ) , Ug = a . splitLines = 3 != "\n\nb" . split ( /\n/ ) . length ? function ( a ) { for ( var b = 0 , c = [ ] , d = a . length ; b <= d ; ) { var e = a . indexOf ( "\n" , b ) ; e == - 1 && ( e = a . length ) ; var f = a . slice ( b , "\r" == a . charAt ( e - 1 ) ? e - 1 : e ) , g = f . indexOf ( "\r" ) ; g != - 1 ? ( c . push ( f . slice ( 0 , g ) ) , b += g + 1 ) : ( c . push ( f ) , b = e + 1 ) } return c } : function ( a ) { return a . split ( /\r\n?|\n/ ) } , Vg = window . getSelection ? function ( a ) { try { return a . selectionStart != a . selectionEnd } catch ( b ) { return ! 1 } } : function ( a ) { try { var b = a . ownerDocument . selection . createRange ( ) } catch ( c ) { } return ! ( ! b || b . parentElement ( ) != a ) && 0 != b . compareEndPoints ( "StartToEnd" , b ) } , Wg = function ( ) { var a = Me ( "div" ) ; return "oncopy" in a || ( a . setAttribute ( "oncopy" , "return;" ) , "function" == typeof a . oncopy ) } ( ) , Xg = null , Yg = { 3 : "Enter" , 8 : "Backspace" , 9 : "Tab" , 13 : "Enter" , 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 19 : "Pause" , 20 : "CapsLock" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "PrintScrn" , 45 : "Insert" , 46 : "Delete" , 59 : ";" , 61 : "=" , 91 : "Mod" , 92 : "Mod" , 93 : "Mod" , 107 : "=" , 109 : "-" , 127 : "Delete" , 173 : "-" , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 63232 : "Up" , 63233 : "Down" , 63234 : "Left" , 63235 : "Right" , 63272 : "Delete" , 63273 : "Home" , 63275 : "End" , 63276 : "PageUp" , 63277 : "PageDown" , 63302 : "Insert" } ; a . keyNames = Yg , function ( ) { for ( var a = 0 ; a < 10 ; a ++ ) Yg [ a + 48 ] = Yg [ a + 96 ] = String ( a ) ; for ( var a = 65 ; a <= 90 ; a ++ ) Yg [ a ] = String . fromCharCode ( a ) ; for ( var a = 1 ; a <= 12 ; a ++ ) Yg [ a + 111 ] = Yg [ a + 63235 ] = "F" + a } ( ) ; var Zg , $g = function ( ) { function a ( a ) { return a <= 247 ? c . charAt ( a ) : 1424 <= a && a <= 1524 ? "R" : 1536 <= a && a <= 1773 ? d . charAt ( a - 1536 ) : 1774 <= a && a <= 2220 ? "r" : 8192 <= a && a <= 8203 ? "w" : 8204 == a ? "b" : "L" } function b ( a , b , c ) { this . level = a , this . from = b , this . to = c } var c = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN" , d = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm" , e = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/ , f = /[stwN]/ , g = /[LRr]/ , h = /[Lb1n]/ , i = /[1n]/ , j = "L" ; return function ( c ) { if ( ! e . test ( c ) ) return ! 1 ; for ( var d , k = c . length , l = [ ] , m = 0 ; m < k ; ++ m ) l . push ( d = a ( c . charCodeAt ( m ) ) ) ; for ( var m = 0 , n = j ; m < k ; ++ m ) { var d = l [ m ] ; "m" == d ? l [ m ] = n : n = d } for ( var m = 0 , o = j ; m < k ; ++ m ) { var d = l [ m ] ; "1" == d && "r" == o ? l [ m ] = "n" : g . test ( d ) && ( o = d , "r" == d && ( l [ m ] = "R" ) ) } for ( var m = 1 , n = l [ 0 ] ; m < k - 1 ; ++ m ) { var d = l [ m ] ; "+" == d && "1" == n && "1" == l [ m + 1 ] ? l [ m ] = "1" : "," != d || n != l [ m + 1 ] || "1" != n && "n" != n || ( l [ m ] = n ) , n = d } for ( var m = 0 ; m < k ; ++ m ) { var d = l [ m ] ; if ( "," == d ) l [ m ] = "N" ; else if ( "%" == d ) { for ( var p = m + 1 ; p < k && "%" == l [ p ] ; ++ p ) ; for ( var q = m && "!" == l [ m - 1 ] || p < k && "1" == l [ p ] ? "1" : "N" , r = m ; r < p ; ++ r ) l [ r ] = q ; m = p - 1 } } for ( var m = 0 , o = j ; m < k ; ++ m ) { var d = l [ m ] ; "L" == o && "1" == d ? l [ m ] = "L" : g . test ( d ) && ( o = d ) } for ( var m = 0 ; m < k ; ++ m ) if ( f . test ( l [ m ] ) ) { for ( var p = m + 1 ; p < k && f . test ( l [ p ] ) ; ++ p ) ; for ( var s = "L" == ( m ? l [ m - 1 ] : j ) , t = "L" == ( p < k ? l [ p ] : j ) , q = s || t ? "L" : "R" , r = m ; r < p ; ++ r ) l [ r ] = q ; m = p - 1 } for ( var u , v = [ ] , m = 0 ; m < k ; ) if ( h . test ( l [ m ] ) ) { var w = m ; for ( ++ m ; m < k && h . test ( l [ m ] ) ; ++ m ) ; v . push ( new b ( 0 , w , m ) ) } else { var x = m , y = v . length ; for ( ++ m ; m < k && "L" != l [ m ] ; ++ m ) ; for ( var r
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 ? this . tab . attr ( "height" ) || 25 : 0 , d = ( this . tool && this . tool . attr ( "height" ) || 25 ) * ( this . tool && this . tool . isVisible ( ) ? 1 : 0 ) ; this . view . resetHeight ? this . view . resetHeight ( a - b - c - d - 2 ) : this . view . element . css ( { "max-height" : a - b - c - d - 2 + "px" } ) } , setValue : function ( a ) { this . tab && this . tab . setValue ( a ) , this . button _group . setValue ( a ) } , getValue : function ( ) { return this . button _group . getValue ( ) } } ) , BI . PopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.popup_view" , BI . PopupView ) , BI . SearcherView = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { var a = BI . SearcherView . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-searcher-view bi-card" , tipText : BI . i18nText ( "BI-No_Select" ) , chooseType : BI . Selection . Single , matcher : { type : "bi.button_group" , behaviors : { redmark : function ( ) { return ! 0 } } , items : [ ] , layouts : [ { type : "bi.vertical" } ] } , searcher : { type : "bi.button_group" , behaviors : { redmark : function ( ) { return ! 0 } } , items : [ ] , layouts : [ { type : "bi.vertical" } ] } } ) } , _init : function ( ) { BI . SearcherView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . matcher = BI . createWidget ( b . matcher , { type : "bi.button_group" , chooseType : b . chooseType , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] , value : b . value } ) , this . matcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SearcherView . EVENT _CHANGE , c , d ) } ) , this . spliter = BI . createWidget ( { type : "bi.vertical" , height : 1 , hgap : 10 , items : [ { type : "bi.layout" , height : 1 , cls : "searcher-view-spliter bi-background" } ] } ) , this . searcher = BI . createWidget ( b . searcher , { type : "bi.button_group" , chooseType : b . chooseType , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] , value : b . value } ) , this . searcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SearcherView . EVENT _CHANGE , c , d ) } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . matcher , this . spliter , this . searcher ] } ) } , startSearch : function ( ) { } , stopSearch : function ( ) { } , setValue : function ( a ) { this . matcher . setValue ( a ) , this . searcher . setValue ( a ) } , getValue : function ( ) { return this . matcher . getValue ( ) . concat ( this . searcher . getValue ( ) ) } , populate : function ( a , b , c ) { a || ( a = [ ] ) , b || ( b = [ ] ) , this . setTipVisible ( a . length + b . length === 0 ) , this . spliter . setVisible ( BI . isNotEmptyArray ( b ) && BI . isNotEmptyArray ( a ) ) , this . matcher . populate ( b , c ) , this . searcher . populate ( a , c ) } , empty : function ( ) { this . searcher . empty ( ) , this . matcher . empty ( ) } , hasMatched : function ( ) { return this . matcher . getAllButtons ( ) . length > 0 } } ) , BI . SearcherView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.searcher_view" , BI . SearcherView ) , BI . ListView = BI . inherit ( BI . Widget , { props : function ( ) { return { baseCls : "bi-list-view" , overscanHeight : 100 , blockSize : 10 , scrollTop : 0 , el : { } , items : [ ] } } , init : function ( ) { this . renderedIndex = - 1 , this
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 . textHeight , height : a . height , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , py : a . py } ) } , doClick : function ( ) { BI . TextItem . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . TextItem . 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 ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . TextItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_item" , BI . TextItem ) , BI . IconTextIconNode = BI . inherit ( BI . NodeButton , { _const : { commonWidth : 25 } , _defaultConfig : function ( ) { var a = BI . IconTextIconNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-icon-node" , logic : { dynamic : ! 1 } , iconCls1 : "close-ha-font" , iconCls2 : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextIconNode . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , height : a . height } ) ; var c = BI . createWidget ( { type : "bi.center_adapt" , cls : a . iconCls1 , width : b . commonWidth , height : a . height , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } ) , d = BI . createWidget ( { type : "bi.layout" , width : b . commonWidth , height : a . height } ) ; BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.center_adapt" , cls : a . iconCls2 , width : b . commonWidth , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } , top : 0 , bottom : 0 , right : 0 } ] } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , c , this . text , d ) } ) ) ) ) } , doClick : function ( ) { BI . IconTextIconNode . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextIconNode . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . IconTextIconNode . EVENT _CHANGE = " EVENT
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 ? b . url : BI . servletURL + "?op=fr_attach&cmd=ah_upload" , 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 . indexOf ( "." ) ? h . split ( "." ) . pop ( ) . toLowerCase ( ) : "unknown" , j = f . fileSize || f . size ; a . fileType && - 1 === a . fileType . indexOf ( "*." + i ) ? ( BI . Msg . toast ( BI . i18nText ( "BI-Upload_File_Type_Error" ) ) , b . fireEvent ( BI . File . EVENT _ERROR , { errorType : 0 , file : f } ) ) : a . maxSize !== - 1 && j && a . maxSize < j ? ( BI . Msg . toast ( BI . i18nText ( "BI-Upload_File_Size_Error" ) ) , b . fireEvent ( BI . File . EVENT _ERROR , { errorType : 1 , file : f } ) ) : ( a . files . unshift ( f ) , b . fireEvent ( BI . File . EVENT _CHANGE , { file : f } ) ) } c . value = "" , a . dom . input . parentNode . replaceChild ( c , a . dom . input ) , a . dom . input = c , event . add ( a . dom . input , "change" , arguments . callee ) } ) , a } , _wrap : function ( ) { var a = this . options , b = this . element [ 0 ] ; return a . multiple === ! 0 && this . element . attr ( "multiple" , "multiple" ) , b . value = "" , this . _events ( { dom : { input : b , disabled : ! 1 } , name : b . name , maxSize : a . maxSize ? a . maxSize >> 0 : - 1 , files : [ ] , clean : function ( ) { this . files = [ ] } , upload : function ( a ) { if ( a ) for ( var b in a ) this [ b ] = a [ b ] ; return sendFiles ( this , this . maxSize ) , this } , hide : function ( ) { this . dom . disabled && ( this . dom . disabled = ! 1 , this . dom . input . removeAttribute ( "disabled" ) ) } , show : function ( a , b , c , d ) { this . dom . disabled || ( this . dom . disabled = ! 0 , this . dom . input . setAttribute ( "disabled" , "disabled" ) ) } } ) } , select : function ( ) { $ ( this . wrap . dom . input ) . click ( ) } , upload : function ( a ) { this . wrap . upload ( a ) } , getValue : function ( ) { return this . wrap . attach _array } , reset : function ( ) { this . wrap . attach _array = [ ] , this . wrap . attach _names = [ ] , this . wrap . attachNum = 0 } , _setEnable : function ( a ) { BI . File . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . attr ( "disabled" , "disabled" ) : this . element . removeAttr ( "disabled" ) } } ) , BI . File . EVENT _CHANGE = "BI.File.EVENT_CHANGE" , BI . File . EVENT _UPLOADSTART = "EVENT_UPLOADSTART" , BI . File . EVENT _ERROR = "EVENT_ERROR" , BI . File . EVENT _PROGRESS = "EVENT_PROGRESS" , BI . File . EVENT _UPLOADED = "EVENT_UPLOADED" , BI . shortcut ( "bi.file" , BI . File ) } ( ) , BI . Input = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . Input . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-input display-block" , element : "<input/>" , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 } ) } , _init : function ( ) { BI . Input . superclass . _init . apply ( this , arguments ) ; var a = this , b = ! 1 , c = ! 1 , d = BI . debounce ( function ( c ) { a . onKeyDown ( c , b ) , a . _keydown _ = ! 1 } , 300 ) , e = BI . debounce ( BI . bind ( this . _click , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) ; this . _blurDebounce = BI . debounce ( BI . bind ( this . _blur , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) , this . element . keydown ( function ( d ) { c = ! 1 , b = d . ctrlKey , a . fireEvent ( BI . Input . EVENT _QUICK _DOWN ) } ) . keyup ( function ( b ) { c && b . keyCode === BI . KeyCode . ENTER || ( a . _keydown _ = ! 0 , d ( b . keyCode ) ) } ) . on ( "input propertychange" , function ( b ) { BI . isNotNull ( b . keyCode ) && ( c = ! 0 , a . _keydown _ = ! 0 , d ( b . keyCode ) ) } ) . click ( function ( a ) { a . stopPropagation ( ) , e ( ) } ) . mousedown ( function ( b ) { a . element . val ( a . element . val ( ) ) } ) . focusout ( function ( b ) { a . _blurDebounce ( ) } ) , ( BI . isKey ( this . options . value ) || BI . isEmptyString ( this . options . val
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 ( ) { } ; for ( var c = a . split ( e ) , d = i , f = 0 , h = c . length ; f < h ; f ++ ) d = d . n , d = d . hasOwnProperty ( c [ f ] ) && d [ c [ f ] ] || ( d [ c [ f ] ] = { n : { } } ) ; for ( d . f = d . f || [ ] , f = 0 , h = d . f . length ; f < h ; f ++ ) if ( d . f [ f ] == b ) return g ; return d . f . push ( b ) , function ( a ) { + a == + a && ( b . zIndex = + a ) } } , j . f = function ( a ) { var b = [ ] . slice . call ( arguments , 1 ) ; return function ( ) { j . apply ( null , [ a , null ] . concat ( b ) . concat ( [ ] . slice . call ( arguments , 0 ) ) ) } } , j . stop = function ( ) { b = 1 } , j . nt = function ( b ) { return b ? new RegExp ( "(?:\\.|\\/|^)" + b + "(?:\\.|\\/|$)" ) . test ( a ) : a } , j . nts = function ( ) { return a . split ( e ) } , j . off = j . unbind = function ( a , b ) { if ( ! a ) return void ( j . _events = i = { n : { } } ) ; var c , g , h , k , l , m , n , o = a . split ( e ) , p = [ i ] ; for ( k = 0 , l = o . length ; k < l ; k ++ ) for ( m = 0 ; m < p . length ; m += h . length - 2 ) { if ( h = [ m , 1 ] , c = p [ m ] . n , o [ k ] != f ) c [ o [ k ] ] && h . push ( c [ o [ k ] ] ) ; else for ( g in c ) c [ d ] ( g ) && h . push ( c [ g ] ) ; p . splice . apply ( p , h ) } for ( k = 0 , l = p . length ; k < l ; k ++ ) for ( c = p [ k ] ; c . n ; ) { if ( b ) { if ( c . f ) { for ( m = 0 , n = c . f . length ; m < n ; m ++ ) if ( c . f [ m ] == b ) { c . f . splice ( m , 1 ) ; break } ! c . f . length && delete c . f } for ( g in c . n ) if ( c . n [ d ] ( g ) && c . n [ g ] . f ) { var q = c . n [ g ] . f ; for ( m = 0 , n = q . length ; m < n ; m ++ ) if ( q [ m ] == b ) { q . splice ( m , 1 ) ; break } ! q . length && delete c . n [ g ] . f } } else { delete c . f ; for ( g in c . n ) c . n [ d ] ( g ) && c . n [ g ] . f && delete c . n [ g ] . f } c = c . n } } , j . once = function ( a , b ) { var c = function ( ) { return j . unbind ( a , c ) , b . apply ( this , arguments ) } ; return j . on ( a , c ) } , j . version = c , j . toString = function ( ) { return "You are running Eve " + c } , j } ) , function ( a , b ) { "function" == typeof define && define . amd ? define ( "raphael.core" , [ "eve" ] , function ( a ) { return b ( a ) } ) : "object" == typeof exports ? module . exports = b ( require ( "eve" ) ) : a . Raphael = b ( a . eve ) } ( this , function ( a ) { function b ( c ) { if ( b . is ( c , "function" ) ) return t ? c ( ) : a . on ( "raphael.DOMload" , c ) ; if ( b . is ( c , U ) ) return b . _engine . create [ C ] ( b , c . splice ( 0 , 3 + b . is ( c [ 0 ] , S ) ) ) . add ( c ) ; var d = Array . prototype . slice . call ( arguments , 0 ) ; if ( b . is ( d [ d . length - 1 ] , "function" ) ) { var e = d . pop ( ) ; return t ? e . call ( b . _engine . create [ C ] ( b , d ) ) : a . on ( "raphael.DOMload" , function ( ) { e . call ( b . _engine . create [ C ] ( b , d ) ) } ) } return b . _engine . create [ C ] ( b , arguments ) } function c ( a ) { if ( "function" == typeof a || Object ( a ) !== a ) return a ; var b = new a . constructor ; for ( var d in a ) a [ y ] ( d ) && ( b [ d ] = c ( a [ d ] ) ) ; return b } function d ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) if ( a [ c ] === b ) return a . push ( a . splice ( c , 1 ) [ 0 ] ) } function e ( a , b , c ) { function e ( ) { var f = Array . prototype . slice . call ( arguments , 0 ) , g = f . join ( "␀" ) , h = e . cache = e . cache || { } , i = e . count = e . count || [ ] ; return h [ y ] ( g ) ? ( d ( i , g ) , c ? c ( h [ g ] ) : h [ g ] ) : ( i . length >= 1e3 && delete h [ i . shift ( ) ] , i . push ( g ) , h [ g ] = a [ C ] ( b , f ) , c ? c ( h [ g ] ) : h [ g ] ) } return e } function f ( ) { return this . hex } function g ( a , b ) { for ( var c = [ ] , d = 0 , e = a . length ; e - 2 * ! b > d ; d += 2 ) { var f = [ { x : + a [ d - 2 ] , y : + a [ d - 1 ] } , { x : + a [ d ] , y : + a [ d + 1 ] } , { x : + a [ d + 2 ] , y : + a [ d + 3 ] } , { x : + a [ d + 4 ] , y : + a [ d + 5 ] } ] ; b ? d ? e - 4 == d ? f [ 3 ] = { x : + a [ 0 ] , y : + a [ 1 ] } : e - 2 == d && ( f [ 2 ] = { x : + a [ 0 ] , y : + a [ 1 ] } , f [ 3 ] = { x : + a [ 2 ] , y : + a [ 3 ] } ) : f [ 0 ] = { x : + a [ e - 2 ] , y : + a [ e - 1 ] } : e - 4 == d ? f [ 3 ] = f [ 2 ] : d || ( f [ 0 ] = { x : + a [ d ] , y : + a [ d + 1 ] } ) , c . push ( [ "C" , ( - f [ 0 ] . x + 6 * f [ 1 ] . x + f [ 2 ] . x ) / 6 , ( - f [ 0 ] . y + 6 * f [ 1 ] . y + f [ 2 ] . y ) / 6 , ( f [ 1 ] . x + 6 * f [ 2 ] . x - f [ 3 ] . x ) / 6 , ( f [ 1 ] . y + 6 * f [ 2 ] . y - f [ 3 ] . y ) / 6 , f [ 2 ] . x , f [ 2 ] . y ] ) } return c } fun
} } , 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 = [ [ a . a , a . c , a . e ] , [ a . b , a . d , a . f ] , [ 0 , 0 , 1 ] ] ) , g = 0 ; g < 3 ; g ++ ) for ( h = 0 ; h < 3 ; h ++ ) { for ( j = 0 , i = 0 ; i < 3 ; i ++ ) j += l [ g ] [ i ] * m [ i ] [ h ] ; k [ g ] [ h ] = j } this . a = k [ 0 ] [ 0 ] , this . b = k [ 1 ] [ 0 ] , this . c = k [ 0 ] [ 1 ] , this . d = k [ 1 ] [ 1 ] , this . e = k [ 0 ] [ 2 ] , this . f = k [ 1 ] [ 2 ] } , a . invert = function ( ) { var a = this , b = a . a * a . d - a . b * a . c ; return new n ( a . d / b , - a . b / b , - a . c / b , a . a / b , ( a . c * a . f - a . d * a . e ) / b , ( a . b * a . e - a . a * a . f ) / b ) } , a . clone = function ( ) { return new n ( this . a , this . b , this . c , this . d , this . e , this . f ) } , a . translate = function ( a , b ) { this . add ( 1 , 0 , 0 , 1 , a , b ) } , a . scale = function ( a , b , c , d ) { null == b && ( b = a ) , ( c || d ) && this . add ( 1 , 0 , 0 , 1 , c , d ) , this . add ( a , 0 , 0 , b , 0 , 0 ) , ( c || d ) && this . add ( 1 , 0 , 0 , 1 , - c , - d ) } , a . rotate = function ( a , c , d ) { a = b . rad ( a ) , c = c || 0 , d = d || 0 ; var e = + M . cos ( a ) . toFixed ( 9 ) , f = + M . sin ( a ) . toFixed ( 9 ) ; this . add ( e , f , - f , e , c , d ) , this . add ( 1 , 0 , 0 , 1 , - c , - d ) } , a . x = function ( a , b ) { return a * this . a + b * this . c + this . e } , a . y = function ( a , b ) { return a * this . b + b * this . d + this . f } , a . get = function ( a ) { return + this [ H . fromCharCode ( 97 + a ) ] . toFixed ( 4 ) } , a . toString = function ( ) { return b . svg ? "matrix(" + [ this . get ( 0 ) , this . get ( 1 ) , this . get ( 2 ) , this . get ( 3 ) , this . get ( 4 ) , this . get ( 5 ) ] . join ( ) + ")" : [ this . get ( 0 ) , this . get ( 2 ) , this . get ( 1 ) , this . get ( 3 ) , 0 , 0 ] . join ( ) } , a . toFilter = function ( ) { return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this . get ( 0 ) + ", M12=" + this . get ( 2 ) + ", M21=" + this . get ( 1 ) + ", M22=" + this . get ( 3 ) + ", Dx=" + this . get ( 4 ) + ", Dy=" + this . get ( 5 ) + ", sizingmethod='auto expand')" } , a . offset = function ( ) { return [ this . e . toFixed ( 4 ) , this . f . toFixed ( 4 ) ] } , a . split = function ( ) { var a = { } ; a . dx = this . e , a . dy = this . f ; var e = [ [ this . a , this . c ] , [ this . b , this . d ] ] ; a . scalex = M . sqrt ( c ( e [ 0 ] ) ) , d ( e [ 0 ] ) , a . shear = e [ 0 ] [ 0 ] * e [ 1 ] [ 0 ] + e [ 0 ] [ 1 ] * e [ 1 ] [ 1 ] , e [ 1 ] = [ e [ 1 ] [ 0 ] - e [ 0 ] [ 0 ] * a . shear , e [ 1 ] [ 1 ] - e [ 0 ] [ 1 ] * a . shear ] , a . scaley = M . sqrt ( c ( e [ 1 ] ) ) , d ( e [ 1 ] ) , a . shear /= a . scaley ; var f = - e [ 0 ] [ 1 ] , g = e [ 1 ] [ 1 ] ; return g < 0 ? ( a . rotate = b . deg ( M . acos ( g ) ) , f < 0 && ( a . rotate = 360 - a . rotate ) ) : a . rotate = b . deg ( M . asin ( f ) ) , a . isSimple = ! ( + a . shear . toFixed ( 9 ) || a . scalex . toFixed ( 9 ) != a . scaley . toFixed ( 9 ) && a . rotate ) , a . isSuperSimple = ! + a . shear . toFixed ( 9 ) && a . scalex . toFixed ( 9 ) == a . scaley . toFixed ( 9 ) && ! a . rotate , a . noRotation = ! + a . shear . toFixed ( 9 ) && ! a . rotate , a } , a . toTransformString = function ( a ) { var b = a || this [ I ] ( ) ; return b . isSimple ? ( b . scalex = + b . scalex . toFixed ( 4 ) , b . scaley = + b . scaley . toFixed ( 4 ) , b . rotate = + b . rotate . toFixed ( 4 ) , ( b . dx || b . dy ? "t" + [ b . dx , b . dy ] : F ) + ( 1 != b . scalex || 1 != b . scaley ? "s" + [ b . scalex , b . scaley , 0 , 0 ] : F ) + ( b . rotate ? "r" + [ b . rotate , 0 , 0 ] : F ) ) : "m" + [ this . get ( 0 ) , this . get ( 1 ) , this . get ( 2 ) , this . get ( 3 ) , this . get ( 4 ) , this . get ( 5 ) ] } } ( n . prototype ) ; for ( var Oa = function ( ) { this . returnValue = ! 1 } , Pa = function ( ) { return this . originalEvent . preventDefault ( ) } , Qa = function ( ) { this . cancelBubble = ! 0 } , Ra = function ( ) { return this . originalEvent . stopPropagation ( ) } , Sa = function ( a ) { var b = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , c = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft ; return { x : a . clientX + c , y : a . clientY + b } } , Ta = function ( ) { return z . doc . addEventListener ? function ( a , b , c , d ) { var e = function ( a ) { var b = Sa ( a ) ; return c . call ( d , a , b . x , b . y ) } ; if ( a . addEventListener ( b , e , ! 1 ) , E && K [ b ] ) { var f = function ( b ) { for ( var e = Sa ( b )
"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 ] , { dy : i * x , x : g . x } ) : q ( m [ 0 ] , { dy : 0 } ) ; q ( h , { x : g . x , y : g . y } ) , d . _ . dirty = 1 ; var p = d . _getBBox ( ) , r = g . y - ( p . y + p . height / 2 ) ; r && a . is ( r , "finite" ) && q ( m [ 0 ] , { dy : r } ) } } , z = function ( a ) { return a . parentNode && "a" === a . parentNode . tagName . toLowerCase ( ) ? a . parentNode : a } , A = function ( b , c ) { this [ 0 ] = this . node = b , b . raphael = ! 0 , this . id = a . _oid ++ , b . raphaelid = this . id , this . matrix = a . matrix ( ) , this . realPath = null , this . paper = c , this . attrs = this . attrs || { } , this . _ = { transform : [ ] , sx : 1 , sy : 1 , deg : 0 , dx : 0 , dy : 0 , dirty : 1 } , ! c . bottom && ( c . bottom = this ) , this . prev = c . top , c . top && ( c . top . next = this ) , c . top = this , this . next = null } , B = a . el ; A . prototype = B , B . constructor = A , a . _engine . path = function ( a , b ) { var c = q ( "path" ) ; b . canvas && b . canvas . appendChild ( c ) ; var d = new A ( c , b ) ; return d . type = "path" , w ( d , { fill : "none" , stroke : "#000" , path : a } ) , d } , B . rotate = function ( a , b , e ) { if ( this . removed ) return this ; if ( a = c ( a ) . split ( j ) , a . length - 1 && ( b = d ( a [ 1 ] ) , e = d ( a [ 2 ] ) ) , a = d ( a [ 0 ] ) , null == e && ( b = e ) , null == b || null == e ) { var f = this . getBBox ( 1 ) ; b = f . x + f . width / 2 , e = f . y + f . height / 2 } return this . transform ( this . _ . transform . concat ( [ [ "r" , a , b , e ] ] ) ) , this } , B . scale = function ( a , b , e , f ) { if ( this . removed ) return this ; if ( a = c ( a ) . split ( j ) , a . length - 1 && ( b = d ( a [ 1 ] ) , e = d ( a [ 2 ] ) , f = d ( a [ 3 ] ) ) , a = d ( a [ 0 ] ) , null == b && ( b = a ) , null == f && ( e = f ) , null == e || null == f ) var g = this . getBBox ( 1 ) ; return e = null == e ? g . x + g . width / 2 : e , f = null == f ? g . y + g . height / 2 : f , this . transform ( this . _ . transform . concat ( [ [ "s" , a , b , e , f ] ] ) ) , this } , B . translate = function ( a , b ) { return this . removed ? this : ( a = c ( a ) . split ( j ) , a . length - 1 && ( b = d ( a [ 1 ] ) ) , a = d ( a [ 0 ] ) || 0 , b = + b || 0 , this . transform ( this . _ . transform . concat ( [ [ "t" , a , b ] ] ) ) , this ) } , B . transform = function ( c ) { var d = this . _ ; if ( null == c ) return d . transform ; if ( a . _extractTransform ( this , c ) , this . clip && q ( this . clip , { transform : this . matrix . invert ( ) } ) , this . pattern && s ( this ) , this . node && q ( this . node , { transform : this . matrix } ) , 1 != d . sx || 1 != d . sy ) { var e = this . attrs [ b ] ( "stroke-width" ) ? this . attrs [ "stroke-width" ] : 1 ; this . attr ( { "stroke-width" : e } ) } return this } , B . hide = function ( ) { return this . removed || ( this . node . style . display = "none" ) , this } , B . show = function ( ) { return this . removed || ( this . node . style . display = "" ) , this } , B . remove = function ( ) { var b = z ( this . node ) ; if ( ! this . removed && b . parentNode ) { var c = this . paper ; c . _ _set _ _ && c . _ _set _ _ . exclude ( this ) , k . unbind ( "raphael.*.*." + this . id ) , this . gradient && c . defs . removeChild ( this . gradient ) , a . _tear ( this , c ) , b . parentNode . removeChild ( b ) , this . removeData ( ) ; for ( var d in this ) this [ d ] = "function" == typeof this [ d ] ? a . _removedFactory ( d ) : null ; this . removed = ! 0 } } , B . _getBBox = function ( ) { if ( "none" == this . node . style . display ) { this . show ( ) ; var a = ! 0 } var b , c = ! 1 ; this . paper . canvas . parentElement ? b = this . paper . canvas . parentElement . style : this . paper . canvas . parentNode && ( b = this . paper . canvas . parentNode . style ) , b && "none" == b . display && ( c = ! 0 , b . display = "" ) ; var d = { } ; try { d = this . node . getBBox ( ) } catch ( e ) { d = { x : this . node . clientLeft , y : this . node . clientTop , width : this . node . clientWidth , height : this . node . clientHeight } } finally { d = d || { } , c && ( b . display = "none" ) } return a && this . hide ( ) , d } , B . attr = function ( c , d ) { if ( this . removed ) return this ; i
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 ? 1 : 0 ) - 1 } ) ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . cell , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) } , setWidth : function ( a ) { BI . CollectionTableCell . superclass . setWidth . apply ( this , arguments ) ; var b = this . options ; this . cell . setWidth ( b . width - ( 0 === b . _left ? 1 : 0 ) - 1 ) } , setHeight : function ( a ) { BI . CollectionTableCell . superclass . setHeight . apply ( this , arguments ) ; var b = this . options ; this . cell . setHeight ( b . height - ( 0 === b . _top ? 1 : 0 ) - 1 ) } } ) , BI . shortcut ( "bi.collection_table_cell" , BI . CollectionTableCell ) , BI . CollectionTable = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . CollectionTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-collection-table" , headerRowSize : 25 , rowSize : 25 , columnSize : [ ] , isNeedFreeze : ! 1 , freezeCols : [ ] , isNeedMerge : ! 1 , mergeCols : [ ] , mergeRule : BI . emptyFn , header : [ ] , items : [ ] , regionColumnSize : [ ] } ) } , render : function ( ) { var a = this , b = this . options ; this . _width = 0 , this . _height = 0 , this . _scrollBarSize = BI . DOM . getScrollWidth ( ) , this . topLeftCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . topLeftItems [ b ] } } ) , this . topLeftCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . topRightCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . topRightItems [ b ] } } ) , this . topRightCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomRightCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . bottomLeftCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . bottomLeftItems [ b ] } } ) , this . bottomLeftCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomRightCollection . setScrollTop ( b . scrollTop ) , a . topLeftCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . bottomRightCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . bottomRightItems [ b ] } } ) , this . bottomRightCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollTop ( b . scrollTop ) , a . topRightCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . topLeft = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . topLeftCollection ] } ) , this . topRight = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . topRightCollection ] } ) , this . bottomLeft = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . bottomLeftCollection ] } ) , this . bottomRight = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . bottomRightCollection ] } ) , this . contextLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . topLeft , top : 0 , left : 0 } , { el : this . topRight , top : 0 } , { el : this . botto
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 . shortcut ( "bi.quick_grid_table" , BI . QuickGridTable ) , BI . GridTableScrollbar = BI . inherit ( BI . Widget , { _const : { FACE _MARGIN : 4 , FACE _MARGIN _2 : 8 , FACE _SIZE _MIN : 30 , KEYBOARD _SCROLL _AMOUNT : 40 } , _defaultConfig : function ( ) { return BI . extend ( BI . GridTableScrollbar . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "scrollbar-layout-main public-scrollbar-main" , attributes : { tabIndex : 0 } , contentSize : 0 , defaultPosition : 0 , isOpaque : ! 1 , orientation : "vertical" , position : 0 , size : 0 } ) } , render : function ( ) { this . options ; this . focused = ! 1 , this . isDragging = ! 1 , this . face = BI . createWidget ( { type : "bi.layout" , cls : "scrollbar-layout-face public-scrollbar-face " + ( this . _isHorizontal ( ) ? "scrollbar-layout-face-horizontal" : "scrollbar-layout-face-vertical" ) } ) , this . contextLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . face , left : 0 , top : 0 } ] } ) } , mounted : function ( ) { var a = this , b = this . options , c = "horizontal" === b . orientation ? this . _onWheelX : this . _onWheelY ; this . _wheelHandler = new BI . WheelHandler ( BI . bind ( c , this ) , BI . bind ( this . _shouldHandleX , this ) , BI . bind ( this . _shouldHandleY , this ) ) , this . _mouseMoveTracker = new BI . MouseMoveTracker ( BI . bind ( this . _onMouseMove , this ) , BI . bind ( this . _onMouseMoveEnd , this ) , document ) , this . element . on ( "mousedown" , BI . bind ( this . _onMouseDown , this ) ) , this . element . on ( "mousewheel" , function ( b ) { a . _wheelHandler . onWheel ( b . originalEvent ) } ) , this . element . on ( "keydown" , BI . bind ( this . _onKeyDown , this ) ) , this . element . on ( "focus" , function ( ) { a . focused = ! 0 , a . _populate ( ) } ) , this . element . on ( "blur" , function ( ) { a . focused = ! 1 , a . _populate ( ) } ) , this . _isHorizontal ( ) ? this . element . addClass ( "scrollbar-layout-main-horizontal" ) : this . element . addClass ( "scrollbar-layout-main-vertical" ) , this . _populate ( ) } , _isHorizontal : function ( ) { return "horizontal" === this . options . orientation } , _getScale : function ( ) { var a = this . options , b = a . size / a . contentSize , c = a . size * b ; return c < this . _const . FACE _SIZE _MIN && ( b = ( a . size - this . _const . FACE _SIZE _MIN ) / ( a . contentSize - a . size ) ) , b } , _getFaceSize : function ( ) { var a = this . options , b = a . size / a . contentSize , c = a . size * b ; return c < this . _const . FACE _SIZE _MIN && ( c = this . _const . FACE _SIZE _MIN ) , c } , _shouldHandleX : function ( a ) { return "horizontal" === this . options . orientation && this . _shouldHandleChange ( a ) } , _shouldHandleY : function ( a ) { return "horizontal" !== this . options . orientation && this . _shouldHandleChange ( a ) } , _shouldHandleChange : function ( a ) { return this . options . position + a !== this . options . position } , _onWheelY : function ( a , b ) { this . _onWheel ( b ) } , _onWheelX : function ( a , b ) { this . _onWheel ( a ) } , _onWheel : function ( a ) { var b = this . options . contentSize - this . options . size ; this . options . position += a , this . options . position < 0 ? this . options . position = 0 : this . options . position > b && ( this . options . position = b ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } , _onMouseDown : function ( a ) { if ( a . target !== this . face . element [ 0 ] ) { var b = this . _isHorizontal ( ) ? a . offsetX : a . offsetY ; b /= this . _getScale ( ) , this . options . position = BI . clamp ( b - . 5 * this . _getFaceSize ( ) / this . _getScale ( ) , 0 , this . options . contentSi
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" , this . _isRightFreeze ( ) ? [ "fill" , 0 ] : [ 0 , "fill" ] ) , this . partitions . resize ( ) ) : this . tableContainer . element . width ( a [ 0 ] ) : b . freezeCols . length > 0 && b . freezeCols . length < b . columnSize . length ? b . isNeedFreeze ? ( this . partitions . attr ( "columnSize" , a ) , this . partitions . resize ( ) ) : this . tableContainer . element . width ( a [ 0 ] ) : b . isNeedFreeze ? ( this . partitions . attr ( "columnSize" , this . _isRightFreeze ( ) ? [ 0 , "fill" ] : [ "fill" , 0 ] ) , this . partitions . resize ( ) ) : this . tableContainer . element . width ( a [ 0 ] ) } , getRegionColumnSize : function ( ) { return this . options . regionColumnSize } , getCalculateRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element . width ( ) , this . scrollBottomRight . element . width ( ) ] : [ this . scrollBottomRight . element . width ( ) ] } , getCalculateRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollTopRight . element . height ( ) , this . scrollBottomRight . element . height ( ) ] : [ this . scrollBottomRight . element . height ( ) ] } , getClientRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . clientWidth , this . scrollBottomRight . element [ 0 ] . clientWidth ] : [ this . scrollBottomRight . element [ 0 ] . clientWidth ] } , getClientRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . clientHeight , this . scrollBottomRight . element [ 0 ] . clientHeight ] : [ this . scrollBottomRight . element [ 0 ] . clientHeight ] } , getScrollRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . scrollWidth , this . scrollBottomRight . element [ 0 ] . scrollWidth ] : [ this . scrollBottomRight . element [ 0 ] . scrollWidth ] } , getScrollRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? a . freezeCols . length < a . columnSize . length ? [ this . scrollTopRight . element [ 0 ] . scrollHeight , this . scrollBottomRight . element [ 0 ] . scrollHeight ] : [ this . scrollTopLeft . element [ 0 ] . scrollHeight , this . scrollBottomLeft . element [ 0 ] . scrollHeight ] : [ this . scrollBottomRight . element [ 0 ] . scrollHeight ] } , hasVerticalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element . hasVerticalScroll ( ) || this . scrollBottomLeft . element . hasVerticalScroll ( ) : this . scrollBottomRight . element . hasVerticalScroll ( ) } , setVerticalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomRight . element [ 0 ] . scrollTop !== a && ( this . scrollBottomRight . element [ 0 ] . scrollTop = a ) , this . scrollBottomLeft . element [ 0 ] . scrollTop !== a && ( this . scrollBottomLeft . element [ 0 ] . scrollTop = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollTop !== a && ( this . scrollBottomRight . element [ 0 ] . scrollTop = a ) } , setLeftHorizontalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomLeft . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomLeft . element [ 0 ] . scrollLeft = a ) , this . scrollTopLeft . element [ 0 ] . scrollLeft !== a && ( this . scrollTopLeft . element [ 0 ] . scrollLeft = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) } , setRightHorizontalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomRight . element [ 0 ] . scrollLeft !== a &
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 = pKey [ 1 ] , pKey = pKey [ 0 ] ) , tmpParam [ spKey ] = node [ pKey ] } if ( tools . isArray ( setting . async . otherParam ) ) for ( i = 0 , l = setting . async . otherParam . length ; i < l ; i += 2 ) tmpParam [ setting . async . otherParam [ i ] ] = setting . async . otherParam [ i + 1 ] ; else for ( var p in setting . async . otherParam ) tmpParam [ p ] = setting . async . otherParam [ p ] ; var _tmpV = data . getRoot ( setting ) . _ver ; return $ . ajax ( { contentType : setting . async . contentType , cache : ! 1 , type : setting . async . type , url : tools . apply ( setting . async . url , [ setting . treeId , node ] , setting . async . url ) , data : tmpParam , dataType : setting . async . dataType , success : function ( msg ) { if ( _tmpV == data . getRoot ( setting ) . _ver ) { var newNodes = [ ] ; try { newNodes = msg && 0 != msg . length ? "string" == typeof msg ? eval ( "(" + msg + ")" ) : msg : [ ] } catch ( err ) { newNodes = msg } node && ( node . isAjaxing = null , node . zAsync = ! 0 ) , view . setNodeLineIcos ( setting , node ) , newNodes && "" !== newNodes ? ( newNodes = tools . apply ( setting . async . dataFilter , [ setting . treeId , node , newNodes ] , newNodes ) , view . addNodes ( setting , node , newNodes ? tools . clone ( newNodes ) : [ ] , ! ! isSilent ) ) : view . addNodes ( setting , node , [ ] , ! ! isSilent ) , setting . treeObj . trigger ( consts . event . ASYNC _SUCCESS , [ setting . treeId , node , msg ] ) , tools . apply ( callback ) } } , error : function ( a , b , c ) { _tmpV == data . getRoot ( setting ) . _ver && ( node && ( node . isAjaxing = null ) , view . setNodeLineIcos ( setting , node ) , setting . treeObj . trigger ( consts . event . ASYNC _ERROR , [ setting . treeId , node , a , b , c ] ) ) } } ) , ! 0 } , cancelPreSelectedNode : function ( a , b , c ) { var d , e , f = data . getRoot ( a ) . curSelectedList ; for ( d = f . length - 1 ; d >= 0 ; d -- ) if ( e = f [ d ] , b === e || ! b && ( ! c || c !== e ) ) { if ( $$ ( e , consts . id . A , a ) . removeClass ( consts . node . CURSELECTED ) , b ) { data . removeSelectedNode ( a , b ) , a . treeObj . trigger ( consts . event . UNSELECTED , [ event , a . treeId , e ] ) ; break } f . splice ( d , 1 ) , a . treeObj . trigger ( consts . event . UNSELECTED , [ event , a . treeId , e ] ) } } , createNodeCallback : function ( a ) { if ( a . callback . onNodeCreated || a . view . addDiyDom ) for ( var b = data . getRoot ( a ) ; b . createdNodes . length > 0 ; ) { var c = b . createdNodes . shift ( ) ; tools . apply ( a . view . addDiyDom , [ a . treeId , c ] ) , a . callback . onNodeCreated && a . treeObj . trigger ( consts . event . NODECREATED , [ a . treeId , c ] ) } } , createNodes : function ( a , b , c , d ) { if ( c && 0 != c . length ) { var e = data . getRoot ( a ) , f = a . data . key . children , g = ! d || d . open || ! ! $$ ( d [ f ] [ 0 ] , a ) . get ( 0 ) ; e . createdNodes = [ ] ; var h = view . appendNodes ( a , b , c , d , ! 0 , g ) ; if ( d ) { var i = $$ ( d , consts . id . UL , a ) ; i . get ( 0 ) && i . append ( h . join ( "" ) ) } else a . treeObj . append ( h . join ( "" ) ) ; view . createNodeCallback ( a ) } } , destroy : function ( a ) { a && ( data . initCache ( a ) , data . initRoot ( a ) , event . unbindTree ( a ) , event . unbindEvent ( a ) , a . treeObj . empty ( ) , delete settings [ a . treeId ] ) } , expandCollapseNode : function ( a , b , c , d , e ) { var f = data . getRoot ( a ) , g = a . data . key . children ; if ( ! b ) return void tools . apply ( e , [ ] ) ; if ( f . expandTriggerFlag ) { var h = e ; e = function ( ) { h && h ( ) , b . open ? a . treeObj . trigger ( consts . event . EXPAND , [ a . treeId , b ] ) : a . treeObj . trigger ( consts . event . COLLAPSE , [ a . treeId , b ] ) } , f . expandTriggerFlag = ! 1 } if ( ! b . open && b . isParent && ( ! $$ ( b , consts . id . UL , a ) . get ( 0 ) || b [ g ] && b [ g ] . length > 0 && ! $$ ( b [ g ] [ 0 ] , a ) . get ( 0 ) ) && ( view . appendParentULDom ( a , b ) , view . createNodeCallback ( a ) ) , b . open == c ) re
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 . SingleSelectItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-single-select-item bi-list-item-active" , hgap : 10 , height : 25 , textAlign : "left" } ) } , _init : function ( ) { BI . SingleSelectItem . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . text = BI . createWidget ( { type : "bi.label" , element : this , textAlign : a . textAlign , whiteSpace : "nowrap" , textHeight : a . height , height : a . height , hgap : a . hgap , text : a . text , keyword : a . keyword , value : a . value , py : a . py } ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectItem . superclass . doClick . apply ( this , arguments ) } , setSelected : function ( a ) { BI . SingleSelectItem . superclass . setSelected . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.single_select_item" , BI . SingleSelectItem ) , BI . SingleSelectRadioItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectRadioItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-single-select-radio-item bi-list-item-active" , logic : { dynamic : ! 1 } , hgap : 10 , height : 25 } ) } , _init : function ( ) { BI . SingleSelectRadioItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . radio = BI . createWidget ( { type : "bi.radio" } ) , this . radio . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , keyword : b . keyword , value : b . value , py : b . py } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , { type : "bi.center_adapt" , items : [ this . radio ] , width : 36 } , this . text ) } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectRadioItem . superclass . doClick . apply ( this , arguments ) , this . radio . setSelected ( this . isSelected ( ) ) } , setSelected : function ( a ) { BI . SingleSelectRadioItem . superclass . setSelected . apply ( this , arguments ) , this . radio . setSelected ( a ) } } ) , BI . shortcut ( "bi.single_select_radio_item" , BI . SingleSelectRadioItem ) , BI . ArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . ArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-arrow-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { var a = this , b = this . options ; BI . ArrowNode . superclass . _init . apply ( this , arguments ) , this . checkbox = BI . createWidget ( { type : "bi.arrow_group_node_checkbox" , iconWidth : 13 , iconHeight : 13 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . val
} ) , 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 . apply ( this , arguments ) , this . setSelected ( this . options . selected ) } , setSelected : function ( a ) { BI . CheckingMarkNode . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "check-mark-font" ) : this . element . removeClass ( "check-mark-font" ) } } ) , BI . shortcut ( "bi.checking_mark_node" , BI . CheckingMarkNode ) , BI . FirstTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . FirstTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type2" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . FirstTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . FirstTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type2" ) : this . element . removeClass ( "tree-expand-icon-type2" ) } } ) , BI . shortcut ( "bi.first_tree_node_checkbox" , BI . FirstTreeNodeCheckbox ) , BI . LastTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . LastTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type4" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . LastTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . LastTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type3" ) : this . element . removeClass ( "tree-expand-icon-type3" ) } } ) , BI . shortcut ( "bi.last_tree_node_checkbox" , BI . LastTreeNodeCheckbox ) , BI . MidTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MidTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type3" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . MidTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . MidTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type3" ) : this . element . removeClass ( "tree-expand-icon-type3" ) } } ) , BI . shortcut ( "bi.mid_tree_node_checkbox" , BI . MidTreeNodeCheckbox ) , BI . TreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type1" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . TreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . TreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a ? this . element . addClass ( "tree-expand-icon-type1" ) : this . element . removeClass ( "tree-expand-icon-type1" ) } } ) , BI . shortcut ( "bi.tree_node_checkbox" , BI . TreeNodeCheckbox ) ; try { ! function ( a ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = a ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , a ) ; else { var b ; b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , b . Clipboard = a ( ) } } ( function ( ) { var a ; return function b ( a , c , d ) { function e ( g , h ) { if ( ! c [ g ] ) { if ( ! a [ g ] ) { var i = "function" == typeof require && require ; if ( ! h && i ) return i ( g , ! 0 ) ; if ( f ) return f ( g , ! 0 ) ; var j = new Error ( "Cannot find module '" + g + "'" ) ;
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 , height : 20 } ) ; BI . each ( d , function ( b , c ) { c . on ( BI . TextEditor . EVENT _CHANGE , function ( ) { a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) } ) , this . R = d [ 0 ] , this . G = d [ 1 ] , this . B = d [ 2 ] , this . none = BI . createWidget ( { type : "bi.checkbox" , title : BI . i18nText ( "BI-Basic_Auto" ) } ) , this . none . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? ( a . lastColor = a . getValue ( ) , a . setValue ( "" ) ) : a . setValue ( a . lastColor || "#000000" ) , a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) , this . transparent = BI . createWidget ( { type : "bi.checkbox" , title : BI . i18nText ( "BI-Transparent_Color" ) } ) , this . transparent . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? ( a . lastColor = a . getValue ( ) , a . setValue ( "transparent" ) ) : a . setValue ( a . lastColor || "#000000" ) , a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . colorShow , width : "fill" } , { el : b [ 0 ] , lgap : 10 , width : 16 } , { el : this . R , width : 32 } , { el : b [ 1 ] , lgap : 10 , width : 16 } , { el : this . G , width : 32 } , { el : b [ 2 ] , lgap : 10 , width : 16 } , { el : this . B , width : 32 } , { el : { type : "bi.center_adapt" , items : [ this . none ] } , width : 18 } , { el : { type : "bi.center_adapt" , items : [ this . transparent ] } , width : 18 } ] } ) } , setValue : function ( a ) { if ( "transparent" === a ) return this . transparent . setSelected ( ! 0 ) , this . none . setSelected ( ! 1 ) , this . R . setValue ( "" ) , this . G . setValue ( "" ) , void this . B . setValue ( "" ) ; a ? this . none . setSelected ( ! 1 ) : ( a = "" , this . none . setSelected ( ! 0 ) ) , this . transparent . setSelected ( ! 1 ) , this . colorShow . element . css ( "background-color" , a ) ; var b = BI . DOM . rgb2json ( BI . DOM . hex2rgb ( a ) ) ; this . R . setValue ( BI . isNull ( b . r ) ? "" : b . r ) , this . G . setValue ( BI . isNull ( b . g ) ? "" : b . g ) , this . B . setValue ( BI . isNull ( b . b ) ? "" : b . b ) } , getValue : function ( ) { return this . transparent . isSelected ( ) ? "transparent" : BI . DOM . rgb2hex ( BI . DOM . json2rgb ( { r : this . R . getValue ( ) , g : this . G . getValue ( ) , b : this . B . getValue ( ) } ) ) } } ) , BI . ColorPickerEditor . EVENT _CHANGE = "ColorPickerEditor.EVENT_CHANGE" , BI . shortcut ( "bi.color_picker_editor" , BI . ColorPickerEditor ) , BI . Farbtastic = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Farbtastic . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-farbtastic" , width : 195 , height : 195 } ) } , _init : function ( ) { BI . Farbtastic . superclass . _init . apply ( this , arguments ) } , mounted : function ( ) { var a = this ; this . farbtastic = $ . farbtastic ( this . element , function ( b ) { a . fireEvent ( BI . Farbtastic . EVENT _CHANGE , a . getValue ( ) , a ) } ) } , setValue : function ( a ) { this . farbtastic . setColor ( a ) } , getValue : function ( ) { return this . farbtastic . color } } ) , BI . Farbtastic . EVENT _CHANGE = "Farbtastic.EVENT_CHANGE" , BI . shortcut ( "bi.farbtastic" , BI . Farbtastic ) , jQuery . fn . farbtastic = function ( a ) { return $ . farbtastic ( this , a ) , this } , jQuery . farbtastic = function ( a , b ) { var a = $ ( a ) . get ( 0 ) ; return a . farbtastic || ( a . farbtastic = new jQuery . _farbtastic ( a , b ) ) } , jQuery . _farbtastic = function ( a , b ) { var c = this ; $ ( a ) . html ( ' < div class = "farbtastic" > < div class = "color" > < / d i v > < d i v c l a s s = " w h e e l " > < / d i v > < d i v c l a s s =
this . trigger = BI . createWidget ( { type : "bi.small_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 . SmallTextIconCheckCombo . hideView ( ) , a . fireEvent ( BI . SmallTextValueCheckCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . SmallTextIconCheckCombo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) } , setValue : function ( a ) { this . SmallTextIconCheckCombo . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , populate : function ( a ) { this . options . items = a , this . SmallTextIconCheckCombo . populate ( a ) } } ) , BI . SmallTextValueCheckCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.small_text_value_check_combo" , BI . SmallTextValueCheckCombo ) , BI . TextValueCheckComboPopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueCheckComboPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-text-icon-popup" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE } ) } , _init : function ( ) { BI . TextValueCheckComboPopup . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this ; this . popup = BI . createWidget ( { type : "bi.button_group" , items : this . _formatItems ( a . items ) , chooseType : a . chooseType , layouts : [ { type : "bi.vertical" } ] , value : a . value } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . TextValueCheckComboPopup . EVENT _CHANGE , c , d ) } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . popup ] } ) } , _formatItems : function ( a ) { return BI . map ( a , function ( a , b ) { return BI . extend ( { type : "bi.icon_text_item" , cls : "item-check-font bi-list-item" , height : 30 } , b ) } ) } , populate : function ( a ) { BI . TextValueCheckComboPopup . superclass . populate . apply ( this , arguments ) , this . popup . populate ( this . _formatItems ( a ) ) } , getValue : function ( ) { return this . popup . getValue ( ) } , setValue : function ( a ) { this . popup . setValue ( a ) } } ) , BI . TextValueCheckComboPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_check_combo_popup" , BI . TextValueCheckComboPopup ) , BI . TextValueCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseClass : "bi-text-value-combo" , height : 30 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , text : "" , value : "" } ) } , _init : function ( ) { BI . TextValueCombo . 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_combo_popup" , chooseType : b . chooseType , value : b . value , items : b . items } ) , this . popup . on ( BI . TextValueComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . textIconCombo . hideView ( ) , a . fireEvent ( BI . TextValueCombo . EVENT _CHANGE , arguments ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . textIconCombo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( 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 . textIconCombo . populate ( a ) } } ) , BI . TextValueCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_combo" , BI . TextValueCombo ) , BI . SmallTextValueCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SmallTextValueCombo . superclass . _defaultConfig . apply ( this , arguments ) , { width : 100 , height : 24 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , el : { } , text : "" } ) } , _init : function ( ) { BI . SmallTextValueCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( b . el , { type : "bi.small_select_text_trigger" , items : b . items , height : b . height , text : b . text
} ) , this . _showHint ( ) , BI . isNotNull ( b . text ) && this . setState ( b . text ) } , 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 ) } , focus : function ( ) { this . options . disabled === ! 1 && ( this . _showInput ( ) , this . editor . focus ( ) ) } , blur : function ( ) { this . editor . blur ( ) , this . _showHint ( ) } , _showInput : function ( ) { this . editor . visible ( ) , this . text . invisible ( ) } , _showHint : function ( ) { this . editor . invisible ( ) , this . text . visible ( ) } , 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 ) } , getValue : function ( ) { return this . editor . getValue ( ) } , getState : function ( ) { return this . editor . getValue ( ) . match ( /[^\s]+/g ) } , setState : function ( a ) { return BI . StateEditor . superclass . setValue . apply ( this , arguments ) , BI . isNumber ( a ) ? void ( a === BI . Selection . All ? ( this . text . setText ( BI . i18nText ( "BI-Select_All" ) ) , this . text . setTitle ( "" ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : a === BI . Selection . Multi ? ( this . text . setText ( BI . i18nText ( "BI-Select_Part" ) ) , this . text . setTitle ( "" ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( BI . i18nText ( "BI-Basic_Unrestricted" ) ) , this . text . setTitle ( "" ) , this . text . element . addClass ( "state-editor-infinite-text" ) ) ) : BI . isString ( a ) ? ( this . text . setText ( a ) , this . text . setTitle ( a ) , void this . text . element . removeClass ( "state-editor-infinite-text" ) ) : void ( BI . isArray ( a ) && ( BI . isEmpty ( a ) ? ( this . text . setText ( BI . i18nText ( "BI-Basic_Unrestricted" ) ) , this . text . element . addClass ( "state-editor-infinite-text" ) ) : 1 === a . length ? ( this . text . setText ( a [ 0 ] ) , this . text . setTitle ( a [ 0 ] ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( BI . i18nText ( "BI-Select_Part" ) ) , this . text . setTitle ( "" ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) ) ) } } ) , BI . StateEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . StateEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . StateEditor . EVENT _BLUR = "EVENT_BLUR" , BI . StateEditor . EVENT _CLICK = "EVENT_CLICK" , BI . StateEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . StateEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . StateEditor . EVENT _START = "EVENT_START" , BI . StateEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . StateEditor . EVENT _STOP = "EVENT_STOP" , BI . StateEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . StateEditor . EVENT _VALID = "EVENT_VALID" , BI . StateEditor . EVENT _ERROR = "EVENT_ERROR" , BI . StateEditor . EVENT _ENTER = "EVENT_ENTER" , BI . StateEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . StateEditor . EVENT _SPACE = "EVENT_SPACE" , BI . StateEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.state_editor" , BI . StateEditor ) , BI . SimpleStateEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . SimpleStateEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-simple-state-editor" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , mouseOut : ! 1 , allowBlank : ! 0 , watermark : "" , errorText : "" , height : 24 } ) } , _init : function ( ) { BI . SimpleStateEditor . 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 bi-disabled" , 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 ( funct
} , { el : this . hlabel , top : 5 , right : 28 } ] } ) } , _createVPager : function ( ) { var a = this , b = this . options , c = b . vertical ; this . vlabel = BI . createWidget ( { type : "bi.label" , width : 24 , height : 20 , value : c . curr , title : c . curr , invisible : ! 0 } ) , this . vpager = BI . createWidget ( { type : "bi.pager" , width : 76 , layouts : [ { type : "bi.horizontal" , scrollx : ! 1 , rgap : 24 , vgap : 1 } ] , invisible : ! 0 , dynamicShow : ! 1 , pages : c . pages , curr : c . curr , groups : 0 , first : ! 1 , last : ! 1 , prev : { type : "bi.icon_button" , value : "prev" , title : BI . i18nText ( "BI-Up_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_First_Page" ) , height : 20 , iconWidth : 16 , iconHeight : 16 , cls : "direction-pager-prev column-pre-page-h-font" } , next : { type : "bi.icon_button" , value : "next" , title : BI . i18nText ( "BI-Down_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_Last_Page" ) , height : 20 , iconWidth : 16 , iconHeight : 16 , cls : "direction-pager-next column-next-page-h-font" } , hasPrev : c . hasPrev , hasNext : c . hasNext , firstPage : c . firstPage , lastPage : c . lastPage } ) , this . vpager . on ( BI . Pager . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DirectionPager . EVENT _CHANGE ) } ) , this . vpager . on ( BI . Pager . EVENT _AFTER _POPULATE , function ( ) { a . vlabel . setValue ( this . getCurrentPage ( ) ) , a . vlabel . setTitle ( this . getCurrentPage ( ) ) } ) } , _createHPager : function ( ) { var a = this , b = this . options , c = b . horizontal ; this . hlabel = BI . createWidget ( { type : "bi.label" , width : 24 , height : 20 , value : c . curr , title : c . curr , invisible : ! 0 } ) , this . hpager = BI . createWidget ( { type : "bi.pager" , width : 76 , layouts : [ { type : "bi.horizontal" , scrollx : ! 1 , rgap : 24 , vgap : 1 } ] , invisible : ! 0 , dynamicShow : ! 1 , pages : c . pages , curr : c . curr , groups : 0 , first : ! 1 , last : ! 1 , prev : { type : "bi.icon_button" , value : "prev" , title : BI . i18nText ( "BI-Left_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_First_Page" ) , height : 20 , iconWidth : 16 , iconHeight : 16 , cls : "direction-pager-prev row-pre-page-h-font" } , next : { type : "bi.icon_button" , value : "next" , title : BI . i18nText ( "BI-Right_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_Last_Page" ) , height : 20 , iconWidth : 16 , iconHeight : 16 , cls : "direction-pager-next row-next-page-h-font" } , hasPrev : c . hasPrev , hasNext : c . hasNext , firstPage : c . firstPage , lastPage : c . lastPage } ) , this . hpager . on ( BI . Pager . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DirectionPager . EVENT _CHANGE ) } ) , this . hpager . on ( BI . Pager . EVENT _AFTER _POPULATE , function ( ) { a . hlabel . setValue ( this . getCurrentPage ( ) ) , a . hlabel . setTitle ( this . getCurrentPage ( ) ) } ) } , getVPage : function ( ) { return this . vpager . getCurrentPage ( ) } , getHPage : function ( ) { return this . hpager . getCurrentPage ( ) } , setVPage : function ( a ) { this . vpager . setValue ( a ) , this . vlabel . setValue ( a ) , this . vlabel . setTitle ( a ) } , setHPage : function ( a ) { this . hpager . setValue ( a ) , this . hlabel . setValue ( a ) , this . hlabel . setTitle ( a ) } , hasVNext : function ( ) { return this . vpager . hasNext ( ) } , hasHNext : function ( ) { return this . hpager . hasNext ( ) } , hasVPrev : function ( ) { return this . vpager . hasPrev ( ) } , hasHPrev : function ( ) { return this . hpager . hasPrev ( ) } , setHPagerVisible : function ( a ) { this . hpager . setVisible ( a ) , this . hlabel . setVisible ( a ) } , setVPagerVisible : function ( a ) { this . vpager . setVisible ( a ) , this . vlabel . setVisible ( a ) } , populate : function ( ) { this . vpager . populate ( ) , this . hpager . populate ( ) ; var a = ! 1 , b = ! 1 ; this . hasHNext ( ) || this . hasHPrev ( ) ? ( this . setHPagerVisible ( ! 0 ) , b = ! 0 ) : this . setHPagerVisible ( ! 1 ) , this . hasVNext ( ) || this . hasVPrev ( ) ? ( this . setVPagerVisible ( ! 0 ) , a = ! 0 ) : this . setVPagerVisible ( ! 1 ) , this . setVisible ( b || a ) ; var c = [ 74 , 111 , - 9 , 28 ] , d = this . layout . attr ( "items" ) ; a === ! 0 && b === ! 0 ? ( d [ 0 ] . right = c [ 0 ] , d [ 1 ] . right = c [ 1 ] , d [ 2 ] . right = c [ 2 ] , d [ 3 ] . right = c [ 3 ] ) : a === ! 0 ? ( d [ 0 ] . right = c [ 2 ] , d [ 1 ] . right = c [ 3 ] ) : b === ! 0 && ( d [ 2 ] . right = c [ 2 ] , d [ 3 ] . right = c [ 3 ] ) , this . layout . attr ( "items" , d ) , this . layout . resize ( ) } , clear : function ( ) { this . vpager . attr ( "curr" , 1 ) , this . hpager . attr ( "curr" , 1 ) } } ) , BI . DirectionPager . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.direction_pager" , BI . DirectionPager ) , BI . DetailPager = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DetailPager . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-detail-pager" , behaviors : { } , layouts : [ { type : "bi.horizontal" , hgap : 10 , vgap : 0 } ] , dynamicShow : ! 0 , dynamicShowFirstLast : ! 1 , dynamicShowPrevNext : ! 1 , pages : ! 1 , curr : function ( ) { return 1 } , groups : 0 , jump : BI . emptyFn , first : ! 1 , last : ! 1 , prev : "上一页" , next : "下一页" , firstPage : 1 , lastPage : function ( ) { return 1 } , hasPrev : BI .
} , attr : function ( a , b ) { var c = BI . AdaptiveTable . superclass . attr . apply ( this , arguments ) ; return "freezeCols" === a ? c : this . table . attr . apply ( this . table , arguments ) } , restore : function ( ) { this . table . restore ( ) } , populate : function ( a ) { this . options ; this . _populate ( ) , this . table . populate . apply ( this . table , arguments ) } , destroy : function ( ) { this . table . destroy ( ) , BI . AdaptiveTable . superclass . destroy . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.adaptive_table" , BI . AdaptiveTable ) , BI . DynamicSummaryLayerTreeTable = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DynamicSummaryLayerTreeTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-dynamic-summary-layer-tree-table" , el : { type : "bi.resizable_table" } , isNeedResize : ! 0 , isResizeAdapt : ! 0 , isNeedFreeze : ! 1 , freezeCols : [ ] , isNeedMerge : ! 0 , mergeCols : [ ] , mergeRule : BI . emptyFn , columnSize : [ ] , minColumnSize : [ ] , maxColumnSize : [ ] , headerRowSize : 25 , footerRowSize : 25 , rowSize : 25 , regionColumnSize : [ ] , rowHeaderCreator : null , headerCellStyleGetter : BI . emptyFn , summaryCellStyleGetter : BI . emptyFn , sequenceCellStyleGetter : BI . emptyFn , header : [ ] , footer : ! 1 , items : [ ] , crossHeader : [ ] , crossItems : [ ] } ) } , _getVDeep : function ( ) { return this . options . crossHeader . length } , _getHDeep : function ( ) { var a = this . options ; return Math . max ( a . mergeCols . length , a . freezeCols . length , BI . TableTree . maxDeep ( a . items ) - 1 ) } , _createHeader : function ( a ) { var b = this . options , c = b . header || [ ] , d = b . crossHeader || [ ] , e = BI . TableTree . formatCrossItems ( b . crossItems , a , b . headerCellStyleGetter ) , f = [ ] ; if ( BI . each ( e , function ( a , b ) { var c = [ d [ a ] ] ; f . push ( c . concat ( b || [ ] ) ) } ) , c && c . length > 0 ) { var g = this . _formatColumns ( c ) , h = this . _getHDeep ( ) ; h <= 0 ? g . unshift ( b . rowHeaderCreator || { type : "bi.table_style_cell" , text : BI . i18nText ( "BI-Row_Header" ) , styleGetter : b . headerCellStyleGetter } ) : g [ 0 ] = b . rowHeaderCreator || { type : "bi.table_style_cell" , text : BI . i18nText ( "BI-Row_Header" ) , styleGetter : b . headerCellStyleGetter } , f . push ( g ) } return f } , _formatItems : function ( a , b , c ) { function d ( a , b ) { a . type || ( a . type = "bi.layer_tree_table_cell" ) , a . layer = b ; var c = [ a ] ; c = c . concat ( a . values || [ ] ) , c . length > 0 && f . push ( c ) , BI . isNotEmptyArray ( a . children ) && BI . each ( a . children , function ( a , c ) { d ( c , b + 1 ) } ) } var e = this . options , f = [ ] ; return BI . each ( a , function ( a , b ) { if ( BI . each ( b . children , function ( a , b ) { d ( b , 0 ) } ) , BI . isArray ( b . values ) ) { var c = [ { type : "bi.table_style_cell" , text : BI . i18nText ( "BI-Summary_Values" ) , styleGetter : function ( ) { return e . summaryCellStyleGetter ( ! 0 ) } } ] . concat ( b . values ) ; f . push ( c ) } } ) , BI . DynamicSummaryTreeTable . formatSummaryItems ( f , b , e . crossItems , 1 ) } , _formatColumns : function ( a , b ) { return BI . isNotEmptyArray ( a ) ? ( b = b || this . _getHDeep ( ) , a . slice ( Math . max ( 0 , b - 1 ) ) ) : a } , _formatFreezeCols : function ( ) { return this . options . freezeCols . length > 0 ? [ 0 ] : [ ] } , _formatColumnSize : function ( a , b ) { if ( a . length <= 0 ) return [ ] ; var c = [ 0 ] ; return b = b || this . _getHDeep ( ) , BI . each ( a , function ( a , d ) { return a < b ? void ( c [ 0 ] += d ) : void c . push ( d ) } ) , c } , _recomputeColumnSize : function ( ) { var a = this . options ; a . regionColumnSize = this . table . getRegionColumnSize ( ) ; var b = this . table . getColumnSize ( ) . slice ( ) ; if ( a . freezeCols . length > 1 ) for ( var c = 0 ; c < a . freezeCols . length - 1 ; c ++ ) b . splice ( 1 , 0 , 0 ) ; a . columnSize = b } , _digest : function ( ) { var a = this . options , b = this . _getHDeep ( ) , c = this . _getVDeep ( ) , d = this . _createHeader ( c ) , e = this . _formatItems ( a . items , d , b ) , f = a . columnSize . slice ( ) , g = a . minColumnSize . slice ( ) , h = a . maxColumnSize . slice ( ) ; return BI . removeAt ( f , e . deletedCols ) , BI . removeAt ( g , e . deletedCols ) , BI . removeAt ( h , e . deletedCols ) , { header : e . header , items : e . items , columnSize : this . _formatColumnSize ( f , b ) , minColumnSize : this . _formatColumns ( g , b ) , maxColumnSize : this . _formatColumns ( h , b ) , freezeCols : this . _formatFreezeCols ( ) } } , _init : function ( ) { BI . DynamicSummaryLayerTreeTable . 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 : b . isResizeAdapt , isNeedFreeze : b . isNeedFreeze , freezeCols : c . freezeCols , isNeedMerge : b . isNeedMerge , mergeCols : [ ] , mergeRule : b . mergeRule , columnSize : c . columnSize , minColumnSize : c . minColumnSize , maxColumnSize : c . maxColumnSize , headerRowSize : b . headerRowSize , rowSize : b . rowSize , regionColumnSize : b . regionColu
getValue : function ( ) { } , populate : function ( a ) { var b = this . options ; b . items = a || [ ] , this . empty ( ) , a = BI . Tree . transformToTreeFormat ( b . items ) , this . tree = new BI . Tree , this . tree . initTree ( a ) , this . svg = BI . createWidget ( { type : "bi.svg" } ) ; var c = this . _stratification ( ) ; if ( this . _isNeedAdjust ( ) ) { var d = this . _translate ( c ) ; d = this . _adjust ( d ) , this . _createBranches ( d ) } else { var d = this . _fill ( c ) ; this . _createBranches ( d ) } var e = BI . createWidget ( { type : "bi.layout" , width : this . _isVertical ( ) ? this . _calculateWidth ( ) : this . _calculateHeight ( ) , height : this . _isVertical ( ) ? this . _calculateHeight ( ) : this . _calculateWidth ( ) } ) ; BI . createWidget ( { type : "bi.absolute" , element : e , items : [ { el : this . svg , top : 0 , left : 0 , right : 0 , bottom : 0 } ] } ) , a = this . _isVertical ( ) ? [ { type : "bi.handstand_branch_tree" , expander : { direction : b . direction } , el : { layouts : [ { type : "bi.horizontal_adapt" , verticalAlign : b . align } ] } , items : a } ] : [ { type : "bi.branch_tree" , expander : { direction : b . direction } , el : { layouts : [ { type : "bi.vertical" } , { type : b . align === BI . HorizontalAlign . Left ? "bi.left" : "bi.right" } ] } , items : a } ] , BI . createWidget ( { type : "bi.adaptive" , element : e , items : a } ) , BI . createWidget ( { type : "bi.center_adapt" , scrollable : ! 0 , element : this , items : [ e ] } ) } } ) , BI . BranchRelation . EVENT _CHANGE = "BranchRelation.EVENT_CHANGE" , BI . shortcut ( "bi.branch_relation" , BI . BranchRelation ) , BI . HandStandBranchExpander = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . HandStandBranchExpander . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-handstand-branch-expander" , direction : BI . Direction . Top , logic : { dynamic : ! 0 } , el : { type : "bi.label" } , popup : { } } ) } , _init : function ( ) { BI . HandStandBranchExpander . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _initExpander ( ) , this . _initBranchView ( ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( a . direction ) , BI . extend ( { } , a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( a . direction , { type : "bi.center_adapt" , items : [ this . expander ] } , this . branchView ) } ) ) ) ) } , _initExpander : function ( ) { var a = this , b = this . options ; this . expander = BI . createWidget ( b . el ) , this . expander . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , _initBranchView : function ( ) { var a = this , b = this . options ; this . branchView = BI . createWidget ( b . popup , { } ) , this . branchView . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { this . branchView . populate . apply ( this . branchView , arguments ) } , getValue : function ( ) { return this . branchView . getValue ( ) } } ) , BI . HandStandBranchExpander . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.handstand_branch_expander" , BI . HandStandBranchExpander ) , BI . BranchExpander = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . BranchExpander . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-branch-expander" , direction : BI . Direction . Left , logic : { dynamic : ! 0 } , el : { } , popup : { } } ) } , _init : function ( ) { BI . BranchExpander . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _initExpander ( ) , this . _initBranchView ( ) , 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 . expander , this . branchView ) } ) ) ) ) } , _initExpander : function ( ) { var a = this , b = this . options ; this . expander = BI . createWidget ( b . el , { type : "bi.label" , width : 30 , height : "100%" } ) , this . expander . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , _initBranchView : function ( ) { var a = this , b = this . options ; this . branchView = BI . createWidget ( b . popup , { } ) , this . branchView . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { this . branchView . populate . apply ( this . branchView , arguments ) } , getValue : function ( ) { return this . branchView . getValue ( ) } } ) , BI . BranchExpander . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.branch_expander" , BI . BranchExpander ) , BI . HandStandBranchTree = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . HandStandBranchTree . superclass . _defaultConfig . apply ( this , arguments ) , { b
items : [ this . text , this . icon ] } ] } ) } , setValue : function ( a ) { this . text . setValue ( a ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( a ) { this . text . setText ( a ) } , getText : function ( ) { return this . item . getText ( ) } , getKey : function ( ) { } } ) , BI . shortcut ( "bi.date_triangle_trigger" , BI . DateTriangleTrigger ) , BI . DateCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DateCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-date-combo bi-border" , height : 25 } ) } , _init : function ( ) { BI . DateCombo . superclass . _init . apply ( this , arguments ) ; var a = this ; this . options ; this . trigger = BI . createWidget ( { type : "bi.date_trigger" } ) , this . trigger . on ( BI . DateTrigger . EVENT _TRIGGER _CLICK , function ( ) { a . combo . toggle ( ) } ) , this . popup = BI . createWidget ( { type : "bi.date_calendar_popup" } ) , this . popup . on ( BI . DateCalendarPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , toggle : ! 1 , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { width : 270 , el : this . popup , stopPropagation : ! 1 } } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . shortcut ( "bi.date_combo" , BI . DateCombo ) , BI . DateTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , yearLength : 4 , yearMonthLength : 7 } , _defaultConfig : function ( ) { return BI . extend ( BI . DateTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-date-trigger" , min : "1900-01-01" , max : "2099-12-31" , height : 24 } ) } , _init : function ( ) { BI . DateTrigger . 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" ) } } ) , this . editor . on ( BI . SignEditor . EVENT _KEY _DOWN , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _KEY _DOWN ) } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _STOP ) } ) , this . editor . on ( BI . SignEditor . EVENT _VALID , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _VALID ) } ) , this . editor . on ( BI . SignEditor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _ERROR ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; if ( BI . isNotNull ( b ) && a . editor . setState ( b ) , BI . isNotEmptyString ( b ) ) { var c = b . split ( "-" ) ; a . store _value = { type : BI . DateTrigger . MULTI _DATE _CALENDAR , value : { year : 0 | c [ 0 ] , month : c [ 1 ] - 1 , day : 0 | c [ 2 ] } } } a . fireEvent ( BI . DateTrigger . EVENT _CONFIRM ) } ) , this . editor . on ( BI . SignEditor . EVENT _SPACE , function ( ) { a . editor . isValid ( ) && a . editor . blur ( ) } ) , this . editor . on ( BI . SignEditor . EVENT _START , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : BI . createWidget ( ) , width : 30 } , { el : this . editor } ] } ) , this . setValue ( b . value ) } , _dateCheck : function ( a ) { return BI . parseDateTime ( a , "%Y-%x-%d" ) . print ( "%Y-%x-%d" ) == a || BI . parseDateTime ( a , "%Y-%X-%d" ) . print ( "%Y-%X-%d" ) == a || BI . parseDateTime ( a , "%Y-%x-%e" ) . print ( "%Y-%x-%e" ) == a || BI . parseDateTime ( a , "%Y-%X-%e" ) . print ( "%Y-%X-%e" ) == a } , _checkVoid : function ( a ) { return ! BI . checkDateVoid ( a . year , a . month , a . day , this . options . min , this . options . max ) [ 0 ] } , _autoAppend : function ( a , b ) { var c = this , d = BI . parseDateTime ( a , "%Y-%X-%d" ) . print ( "%Y-%X-%d" ) , e = function ( a ) { return BI . parseDateTime ( a , "%Y" ) . print ( "%Y" ) == a && d >= c . options . min && d <= c . options . max } , f = function ( a ) { return BI . parseDateTime ( a , "%Y-%X" ) . print ( "%Y-%X" ) == a && d >= c . options . min && d <= c . options . max } ; if ( BI . isNotNull ( b ) && BI . checkDateLegal ( a ) ) switch ( a . length ) { case this . _const . yearLength : e ( a ) && this . editor . setValue ( a + "-" ) ; break ; case this . _const . yearMonthLength : f ( a ) && this . editor . setVa
return BI . extend ( a , { baseCls : "bi-search-editor bi-border" , height : 24 , errorText : "" , watermark : BI . i18nText ( "BI-Basic_Search" ) , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn } ) } , _init : function ( ) { this . options . height -= 2 , BI . SearchEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , watermark : b . watermark , allowBlank : ! 0 , errorText : b . errorText , validationChecker : b . validationChecker , quitChecker : b . quitChecker } ) , this . clear = BI . createWidget ( { type : "bi.icon_button" , stopEvent : ! 0 , cls : "search-close-h-font" } ) , this . clear . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . setValue ( "" ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . STOPEDIT ) , a . fireEvent ( BI . SearchEditor . EVENT _CLEAR ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : { type : "bi.center_adapt" , cls : "search-font" , items : [ { el : { type : "bi.icon" } } ] } , width : 25 } , { el : a . editor } , { el : this . clear , width : 25 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _FOCUS ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _BLUR ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _CLICK ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . SearchEditor . EVENT _CHANGE ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . SearchEditor . EVENT _KEY _DOWN , b ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _SPACE ) } ) , this . editor . on ( BI . Editor . EVENT _BACKSPACE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _BACKSPACE ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _VALID ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _ERROR ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . SearchEditor . EVENT _EMPTY ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _START ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _PAUSE ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _STOP ) } ) , this . clear . invisible ( ) } , _checkClear : function ( ) { this . getValue ( ) ? this . clear . visible ( ) : this . clear . invisible ( ) } , focus : function ( ) { this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) } , getValue : function ( ) { if ( this . isValid ( ) ) { var a = this . editor . getValue ( ) . match ( /[\S]+/g ) ; return BI . isNull ( a ) ? "" : a [ a . length - 1 ] } } , getLastValidValue : function ( ) { return this . editor . getLastValidValue ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) , BI . isKey ( a ) && this . clear . visible ( ) } , isEditing : function ( ) { return this . editor . isEditing ( ) } , isValid : function ( ) { return this . editor . isValid ( ) } } ) , BI . SearchEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . SearchEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . SearchEditor . EVENT _BLUR = "EVENT_BLUR" , BI . SearchEditor . EVENT _CLICK = "EVENT_CLICK" , BI . SearchEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . SearchEditor . EVENT _SPACE = "EVENT_SPACE" , BI . SearchEditor . EVENT _BACKSPACE = "EVENT_BACKSPACE" , BI . SearchEditor . EVENT _CLEAR = "EVENT_CLEAR" , BI . SearchEditor . EVENT _START = "EVENT_START" , BI . SearchEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . SearchEditor . EVENT _STOP = "EVENT_STOP" , BI . SearchEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . SearchEditor . EVENT _VALID = "EVENT_VALID" , BI . SearchEditor . EVENT _ERROR = "EVENT_ERROR" , BI . SearchEditor . EVENT _ENTER = "EVENT_ENTER" , BI . SearchEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . SearchEditor . EVENT _REMOVE = "EVENT_REMOVE" , BI . SearchEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.search_editor" , BI . SearchEditor ) , BI . SmallSearchEditor = BI . inherit ( BI . SearchEditor , { _defaultConfig : function (
} , accurateMultiplication : function ( a , b ) { return a >= 0 && b >= 0 ? this . _accurateMultiplication ( a , b ) : a >= 0 && b < 0 ? - this . _accurateMultiplication ( a , - b ) : a < 0 && b >= 0 ? - this . _accurateMultiplication ( - a , b ) : a < 0 && b < 0 ? this . _accurateMultiplication ( - a , - b ) : void 0 } , accurateDivisionTenExponent : function ( a , b ) { return a >= 0 ? this . _accurateDivisionTenExponent ( a , b ) : - this . _accurateDivisionTenExponent ( - a , b ) } } ) , BI . MonthCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MonthCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-month-combo" , behaviors : { } , height : 25 } ) } , _init : function ( ) { BI . MonthCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.month_trigger" , value : b . value } ) , this . trigger . on ( BI . MonthTrigger . EVENT _CONFIRM , function ( b ) { a . combo . isViewVisible ( ) || ( this . getKey ( ) && this . getKey ( ) !== a . storeValue ? a . setValue ( this . getValue ( ) ) : this . getKey ( ) || a . setValue ( ) , a . fireEvent ( BI . MonthCombo . EVENT _CONFIRM ) ) } ) , this . trigger . on ( BI . MonthTrigger . EVENT _FOCUS , function ( ) { a . storeValue = this . getKey ( ) } ) , this . trigger . on ( BI . MonthTrigger . EVENT _START , function ( ) { a . combo . hideView ( ) } ) , this . trigger . on ( BI . MonthTrigger . EVENT _STOP , function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . popup = BI . createWidget ( { type : "bi.month_popup" , behaviors : b . behaviors , value : b . value } ) , this . popup . on ( BI . MonthPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . MonthCombo . EVENT _CONFIRM ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . MonthCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . MonthCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . MonthCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.month_combo" , BI . MonthCombo ) , BI . MonthPopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MonthPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-month-popup" , behaviors : { } } ) } , _init : function ( ) { BI . MonthPopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = [ 0 , 6 , 1 , 7 , 2 , 8 , 3 , 9 , 4 , 10 , 5 , 11 ] , d = [ ] ; d . push ( c . slice ( 0 , 2 ) ) , d . push ( c . slice ( 2 , 4 ) ) , d . push ( c . slice ( 4 , 6 ) ) , d . push ( c . slice ( 6 , 8 ) ) , d . push ( c . slice ( 8 , 10 ) ) , d . push ( c . slice ( 10 , 12 ) ) , d = BI . map ( d , function ( a , b ) { return BI . map ( b , function ( a , b ) { return { type : "bi.text_item" , cls : "bi-list-item-active" , textAlign : "center" , whiteSpace : "nowrap" , once : ! 1 , forceSelected : ! 0 , height : 23 , width : 38 , value : b , text : b + 1 } } ) } ) , this . month = BI . createWidget ( { type : "bi.button_group" , element : this , behaviors : b . behaviors , items : BI . createItems ( d , { } ) , layouts : [ BI . LogicFactory . createLogic ( "table" , BI . extend ( { dynamic : ! 0 } , { columns : 2 , rows : 6 , columnSize : [ . 5 , . 5 ] , rowSize : 25 } ) ) , { type : "bi.center_adapt" , vgap : 1 , hgap : 2 } ] , value : b . value } ) , this . month . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . MonthPopup . EVENT _CHANGE ) } ) } , getValue : function ( ) { return this . month . getValue ( ) [ 0 ] } , setValue : function ( a ) { this . month . setValue ( [ a ] ) } } ) , BI . MonthPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.month_popup" , BI . MonthPopup ) , BI . MonthTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , errorText : BI . i18nText ( "BI-Month_Trigger_Error_Text" ) } , _defaultConfig : function ( ) { return BI . extend ( BI . MonthTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-month-trigger bi-border" , height : 24 } ) } , _init : function ( ) { BI . MonthTrigger . 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 ( a ) { return "" === a || BI . isPositiveInteger ( a ) && a >= 1 && a <= 12 } , quitChecker : function ( a ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , errorText : c . errorText } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . MonthTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MonthTrigger . EV
baseCls : "bi-multilayer-select-level-tree" , isDefaultInit : ! 1 , items : [ ] , itemsCreator : BI . emptyFn , value : "" } ) } , _init : function ( ) { BI . MultiLayerSelectLevelTree . 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_select_tree_first_plus_group_node" ; break ; case a . length - 1 : f . type = "bi.multilayer_select_tree_last_plus_group_node" ; break ; default : f . type = "bi.multilayer_select_tree_mid_plus_group_node" } BI . defaults ( e , f ) , c . _formatItems ( e . children , b + 1 ) } else { switch ( d ) { case a . length - 1 : f . type = "bi.multilayer_single_tree_last_tree_leaf_item" ; break ; default : f . type = "bi.multilayer_single_tree_mid_tree_leaf_item" } BI . defaults ( e , f ) } } ) , a } , _assertId : function ( a ) { BI . each ( a , function ( a , b ) { b . id = b . id || BI . UUID ( ) } ) } , initTree : function ( a ) { var b = this , c = this . options ; this . empty ( ) , this . _assertId ( a ) , this . tree = BI . createWidget ( { type : "bi.custom_tree" , element : this , expander : { type : "bi.select_tree_expander" , isDefaultInit : c . isDefaultInit , el : { } , popup : { type : "bi.custom_tree" } } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) , itemsCreator : c . itemsCreator , value : c . value , el : { type : "bi.button_tree" , chooseType : BI . Selection . Single , layouts : [ { type : "bi.vertical" } ] } } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( a ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . MultiLayerSelectLevelTree . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) ) } , setValue : function ( a ) { this . tree . setValue ( a ) } , getValue : function ( ) { return BI . uniq ( this . tree . getValue ( ) ) } , getAllLeaves : function ( ) { return this . tree . getAllLeaves ( ) } , getNodeById : function ( a ) { return this . tree . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . tree . getNodeByValue ( a ) } } ) , BI . MultiLayerSelectLevelTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_select_level_tree" , BI . MultiLayerSelectLevelTree ) , BI . MultiLayerSelectTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSelectTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-select-tree-popup" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , isDefaultInit : ! 1 , itemsCreator : BI . emptyFn , items : [ ] , value : "" } ) } , _init : function ( ) { BI . MultiLayerSelectTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : "bi.multilayer_select_level_tree" , isDefaultInit : b . isDefaultInit , items : b . items , value : b . value , itemsCreator : b . itemsCreator } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , scrollable : ! 0 , element : this , items : [ this . tree ] } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . tree . on ( BI . MultiLayerSelectLevelTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiLayerSelectTreePopup . 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 . MultiLayerSelectTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( a ) } } ) , BI . MultiLayerSelectTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_select_tree_popup" , BI . MultiLayerSelectTreePopup ) , BI . MultiLayerSelectTreeFirstPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-select-tree-first-plus-group-node bi-list-item-active" , layer : 0 , id : "" , pId : "" , readonly : ! 0 , open : ! 1 , height : 25 } ) } , _init : function ( ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.select_tree_first_plus_group_node" , cls : "bi-list-item-none" , stopPropagation : ! 0 , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , open : b . open , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . node . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . setSelected
this . combo . setValue ( this . storeValue ) } , getValue : function ( ) { return BI . deepClone ( this . storeValue ) } , populate : function ( ) { this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . extend ( BI . MultiSelectInsertCombo , { REQ _GET _DATA _LENGTH : 0 , REQ _GET _ALL _DATA : - 1 } ) , BI . MultiSelectInsertCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.multi_select_insert_combo" , BI . MultiSelectInsertCombo ) , BI . MultiSelectCombo = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-combo" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , height : 28 } ) } , _init : function ( ) { BI . MultiSelectCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = function ( ) { BI . isKey ( a . _startValue ) && a . storeValue . value [ a . storeValue . type === BI . Selection . All ? "remove" : "pushDistinct" ] ( a . _startValue ) , a . trigger . getSearcher ( ) . setState ( a . storeValue ) , a . trigger . getCounter ( ) . setButtonChecked ( a . storeValue ) } ; this . storeValue = b . value || { } , this . _assertValue ( this . storeValue ) , this . requesting = ! 1 , this . trigger = BI . createWidget ( { type : "bi.multi_select_trigger" , height : b . height , masker : { offset : { left : 1 , top : 1 , right : 2 , bottom : 33 } } , valueFormatter : b . valueFormatter , itemsCreator : function ( c , d ) { b . itemsCreator ( c , function ( b ) { 1 === c . times && BI . isNotNull ( c . keywords ) && a . trigger . setValue ( BI . deepClone ( a . getValue ( ) ) ) , d . apply ( a , arguments ) } ) } , value : this . storeValue } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _START , function ( ) { a . _setStartValue ( "" ) , this . getSearcher ( ) . setValue ( a . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _STOP , function ( ) { a . _setStartValue ( "" ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _PAUSE , function ( ) { if ( this . getSearcher ( ) . hasMatched ( ) ) { var b = this . getSearcher ( ) . getKeyword ( ) ; a . _join ( { type : BI . Selection . Multi , value : [ b ] } , function ( ) { a . combo . setValue ( a . storeValue ) , a . _setStartValue ( b ) , c ( ) , a . populate ( ) , a . _setStartValue ( "" ) } ) } } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _SEARCHING , function ( b ) { var d = BI . last ( b ) ; b = BI . initial ( b || [ ] ) , b . length > 0 && a . _joinKeywords ( b , function ( ) { BI . isEndWithBlank ( d ) ? ( a . combo . setValue ( a . storeValue ) , c ( ) , a . combo . populate ( ) , a . _setStartValue ( "" ) ) : ( a . combo . setValue ( a . storeValue ) , c ( ) ) } ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _CHANGE , function ( b , d ) { d instanceof BI . MultiSelectBar ? a . _joinAll ( this . getValue ( ) , function ( ) { c ( ) } ) : a . _join ( this . getValue ( ) , function ( ) { c ( ) } ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW , function ( ) { this . getCounter ( ) . setValue ( a . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _COUNTER _CLICK , function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , toggle : ! 1 , el : this . trigger , adjustLength : 1 , popup : { type : "bi.multi_select_popup_view" , ref : function ( ) { a . popup = this , a . trigger . setAdapter ( this ) } , listeners : [ { eventName : BI . MultiSelectPopupView . EVENT _CHANGE , action : function ( ) { a . storeValue = this . getValue ( ) , a . _adjust ( function ( ) { c ( ) } ) } } , { eventName : BI . MultiSelectPopupView . EVENT _CLICK _CONFIRM , action : function ( ) { a . _defaultState ( ) } } , { eventName : BI . MultiSelectPopupView . EVENT _CLICK _CLEAR , action : function ( ) { a . setValue ( ) , a . _defaultState ( ) } } ] , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , onLoaded : function ( ) { BI . nextTick ( function ( ) { a . combo . adjustWidth ( ) , a . combo . adjustHeight ( ) , a . trigger . getCounter ( ) . adjustView ( ) , a . trigger . getSearcher ( ) . adjustView ( ) } ) } } , value : b . value , hideChecker : function ( a ) { return 0 === d . element . find ( a . target ) . length } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { this . setValue ( a . storeValue ) , BI . nextTick ( function ( ) { a . populate ( ) } ) } ) , this . wants2Quit = ! 1 , this . combo . on ( BI . Combo . EVENT _AFTER _HIDEVIEW , function ( ) { a . trigger . stopEditing ( ) , a . requesting === ! 0 ? a . wants2Quit = ! 0 : a . fireEvent ( BI . MultiSelectCombo . EVENT _CONFIRM ) } ) ; var d = BI . createWidget ( { type : "bi.trigger_icon_button" , width : b . height , height : b . height , cls : "multi-select-trigger-icon-button" } ) ; d . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { a . trigger . getCounter ( ) . hideView ( ) , a . combo . isViewVisible ( ) ? a . combo . hideView ( ) : a . combo . showView ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . combo , left : 0 , right : 0 , top : 0 , bottom : 0 } , { e
void b ( ) } var h = c . _makeMap ( c . storeValue . value ) , i = c . _makeMap ( a . value ) , j = [ ] ; BI . each ( e , function ( a , b ) { BI . isNotNull ( h [ e [ a ] ] ) && delete h [ e [ a ] ] , BI . isNull ( i [ e [ a ] ] ) && j . push ( b ) } ) , c . storeValue . value = j . concat ( BI . values ( h ) ) , b ( ) } ) } , _join : function ( a , b ) { var c = this ; this . options ; if ( this . _assertValue ( a ) , this . _assertValue ( this . storeValue ) , this . storeValue . type === a . type ) { var d = this . _makeMap ( this . storeValue . value ) ; BI . each ( a . value , function ( a , b ) { d [ b ] || ( c . storeValue . value . push ( b ) , d [ b ] = b ) } ) ; var e = ! 1 ; return BI . each ( a . assist , function ( a , b ) { BI . isNotNull ( d [ b ] ) && ( e = ! 0 , delete d [ b ] ) } ) , e && ( this . storeValue . value = BI . values ( d ) ) , void b ( ) } this . _joinAll ( a , b ) } , _setStartValue : function ( a ) { this . _startValue = a , this . adapter . setStartValue ( a ) } , isAllSelected : function ( ) { return this . adapter . isAllSelected ( ) } , resize : function ( ) { } , setValue : function ( a ) { this . storeValue = a || { } , this . _assertValue ( this . storeValue ) , this . adapter . setValue ( this . storeValue ) , this . trigger . setValue ( this . storeValue ) } , getValue : function ( ) { return BI . deepClone ( this . storeValue ) } , populate : function ( ) { this . _count = null , this . _allData = null , this . adapter . populate . apply ( this . adapter , arguments ) , this . trigger . populate . apply ( this . trigger , arguments ) } } ) , BI . extend ( BI . MultiSelectInsertList , { REQ _GET _DATA _LENGTH : 0 , REQ _GET _ALL _DATA : - 1 } ) , BI . MultiSelectInsertList . EVENT _CHANGE = "BI.MultiSelectInsertList.EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_insert_list" , BI . MultiSelectInsertList ) , BI . MultiSelectList = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-list" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = { } ; var c = function ( ) { BI . isKey ( a . _startValue ) && a . storeValue . value [ a . storeValue . type === BI . Selection . All ? "remove" : "pushDistinct" ] ( a . _startValue ) } ; this . adapter = BI . createWidget ( { type : "bi.multi_select_loader" , cls : "popup-multi-select-list bi-border-left bi-border-right bi-border-bottom" , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , logic : { dynamic : ! 1 } , el : { } } ) , this . adapter . on ( BI . MultiSelectLoader . EVENT _CHANGE , function ( ) { a . storeValue = this . getValue ( ) , a . _adjust ( function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) } ) , this . searcherPane = BI . createWidget ( { type : "bi.multi_select_search_pane" , cls : "bi-border-left bi-border-right bi-border-bottom" , valueFormatter : b . valueFormatter , keywordGetter : function ( ) { return a . trigger . getKeyword ( ) } , itemsCreator : function ( c , d ) { c . keyword = a . trigger . getKeyword ( ) , this . setKeyword ( c . keyword ) , b . itemsCreator ( c , d ) } } ) , this . searcherPane . setVisible ( ! 1 ) , this . trigger = BI . createWidget ( { type : "bi.searcher" , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( a , b ) { b ( ) } , adapter : this . adapter , popup : this . searcherPane , height : 200 , masker : ! 1 , listeners : [ { eventName : BI . Searcher . EVENT _START , action : function ( ) { a . _showSearcherPane ( ) , a . _setStartValue ( "" ) , this . setValue ( BI . deepClone ( a . storeValue ) ) } } , { eventName : BI . Searcher . EVENT _STOP , action : function ( ) { a . _showAdapter ( ) , a . _setStartValue ( "" ) , a . adapter . setValue ( a . storeValue ) , a . adapter . populate ( ) } } , { eventName : BI . Searcher . EVENT _PAUSE , action : function ( ) { var b = this . getKeyword ( ) ; this . hasMatched ( ) && a . _join ( { type : BI . Selection . Multi , value : [ b ] } , function ( ) { a . _showAdapter ( ) , a . adapter . setValue ( a . storeValue ) , a . _setStartValue ( b ) , c ( ) , a . adapter . populate ( ) , a . _setStartValue ( "" ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) } } , { eventName : BI . Searcher . EVENT _SEARCHING , action : function ( ) { var b = this . getKeyword ( ) , d = BI . last ( b ) ; b = BI . initial ( b || [ ] ) , b . length > 0 && a . _joinKeywords ( b , function ( ) { BI . isEndWithBlank ( d ) ? ( a . adapter . setValue ( a . storeValue ) , c ( ) , a . adapter . populate ( ) , a . _setStartValue ( "" ) ) : ( a . adapter . setValue ( a . storeValue ) , c ( ) ) } ) } } , { eventName : BI . Searcher . EVENT _CHANGE , action : function ( b , d ) { d instanceof BI . MultiSelectBar ? a . _joinAll ( this . getValue ( ) , function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) : a . _join ( this . getValue ( ) , function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) } } ] } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . trigger , height : 24 } , { el : this . adapter , height : "fill" } ] } )
c . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) ) ; break ; case b . numberError : c . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Number_Value" ) ) ; break ; case b . signalError : c . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Signal_Value" ) ) ; break ; default : c . _setTitle ( "" ) } } ) } , _setErrorEvent : function ( a ) { var b = this . constants , c = this ; a . on ( BI . Editor . EVENT _ERROR , function ( ) { c . _checkValidation ( ) , BI . Bubbles . show ( b . typeError , BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) , c , { offsetStyle : "center" } ) , c . fireEvent ( BI . NumberInterval . EVENT _ERROR ) } ) } , _setValidEvent : function ( a ) { var b = this , c = this . constants ; a . on ( BI . Editor . EVENT _VALID , function ( ) { switch ( b . _checkValidation ( ) ) { case c . numberError : BI . Bubbles . show ( c . numberError , BI . i18nText ( "BI-Numerical_Interval_Number_Value" ) , b , { offsetStyle : "center" } ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; case c . signalError : BI . Bubbles . show ( c . signalError , BI . i18nText ( "BI-Numerical_Interval_Signal_Value" ) , b , { offsetStyle : "center" } ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; default : b . fireEvent ( BI . NumberInterval . EVENT _VALID ) } } ) } , _setEditorValueChangedEvent : function ( a ) { var b = this , c = this . constants ; a . on ( BI . Editor . EVENT _CHANGE , function ( ) { switch ( b . _checkValidation ( ) ) { case c . typeError : BI . Bubbles . show ( c . typeError , BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) , b , { offsetStyle : "center" } ) ; break ; case c . numberError : BI . Bubbles . show ( c . numberError , BI . i18nText ( "BI-Numerical_Interval_Number_Value" ) , b , { offsetStyle : "center" } ) ; break ; case c . signalError : BI . Bubbles . show ( c . signalError , BI . i18nText ( "BI-Numerical_Interval_Signal_Value" ) , b , { offsetStyle : "center" } ) } b . fireEvent ( BI . NumberInterval . EVENT _CHANGE ) } ) } , _setComboValueChangedEvent : function ( a ) { var b = this , c = this . constants ; a . on ( BI . IconCombo . EVENT _CHANGE , function ( ) { switch ( b . _checkValidation ( ) ) { case c . typeError : b . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; case c . numberError : b . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Number_Value" ) ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; case c . signalError : b . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Signal_Value" ) ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; default : b . fireEvent ( BI . NumberInterval . EVENT _CHANGE ) , b . fireEvent ( BI . NumberInterval . EVENT _VALID ) } } ) } , isStateValid : function ( ) { return "valid" === this . options . validation } , setMinEnable : function ( a ) { this . smallEditor . setEnable ( a ) } , setCloseMinEnable : function ( a ) { this . smallCombo . setEnable ( a ) } , setMaxEnable : function ( a ) { this . bigEditor . setEnable ( a ) } , setCloseMaxEnable : function ( a ) { this . bigCombo . setEnable ( a ) } , showNumTip : function ( ) { this . smallTip . setVisible ( ! 0 ) , this . bigTip . setVisible ( ! 0 ) } , hideNumTip : function ( ) { this . smallTip . setVisible ( ! 1 ) , this . bigTip . setVisible ( ! 1 ) } , setNumTip : function ( a ) { this . smallTip . setText ( a ) , this . bigTip . setText ( a ) } , getNumTip : function ( ) { return this . smallTip . getText ( ) } , setValue : function ( a ) { a = a || { } ; var b , c = this ; ( BI . isNumeric ( a . min ) || BI . isEmptyString ( a . min ) ) && c . smallEditor . setValue ( a . min ) , BI . isNotNull ( a . min ) || c . smallEditor . setValue ( "" ) , ( BI . isNumeric ( a . max ) || BI . isEmptyString ( a . max ) ) && c . bigEditor . setValue ( a . max ) , BI . isNotNull ( a . max ) || c . bigEditor . setValue ( "" ) , BI . isNull ( a . closemin ) || ( b = a . closemin === ! 0 ? 1 : 0 , c . smallCombo . setValue ( b ) ) , BI . isNull ( a . closemax ) || ( b = a . closemax === ! 0 ? 1 : 0 , c . bigCombo . setValue ( b ) ) } , getValue : function ( ) { var a = this , b = { } , c = a . smallCombo . getValue ( ) , d = a . bigCombo . getValue ( ) ; return b . min = a . smallEditor . getValue ( ) , b . max = a . bigEditor . getValue ( ) , 0 === c [ 0 ] ? b . closemin = ! 1 : b . closemin = ! 0 , 0 === d [ 0 ] ? b . closemax = ! 1 : b . closemax = ! 0 , b } } ) , BI . NumberInterval . EVENT _CHANGE = "EVENT_CHANGE" , BI . NumberInterval . EVENT _VALID = "EVENT_VALID" , BI . NumberInterval . EVENT _ERROR = "EVENT_ERROR" , BI . shortcut ( "bi.number_interval" , BI . NumberInterval ) , BI . PageTableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . PageTableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-page-table-cell" , text : "" , title : "" } ) } , _init : function ( ) { BI . PageTableCell . superclass . _init . apply ( this , arguments ) ; BI . createWidget ( { type : "bi.label" , element : this , textAlign : "left" , whiteSpace : "nowrap" , height : this . options . height , text : this . options . text , title : this . options
popup : b . popup } ) , this . expander . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . trigger . setSelected ( ! 1 ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , setValue : function ( a ) { BI . contains ( a , this . trigger . getValue ( ) ) ? ( this . trigger . setSelected ( ! 0 ) , this . expander . setValue ( [ ] ) ) : ( this . trigger . setSelected ( ! 1 ) , this . expander . setValue ( a ) ) } , getValue : function ( ) { return this . trigger . isSelected ( ) ? [ this . trigger . getValue ( ) ] : this . expander . getValue ( ) } , populate : function ( a ) { this . expander . populate ( a ) } } ) , BI . shortcut ( "bi.select_tree_expander" , BI . SelectTreeExpander ) , BI . SelectTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . SelectTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-select-level-tree" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , items : [ ] , value : "" } ) } , _formatItems : function ( a , b ) { var c = this ; return BI . each ( a , function ( d , e ) { var f = { layer : b } ; if ( e . id = e . id || BI . UUID ( ) , e . isParent === ! 0 || BI . isNotEmptyArray ( e . children ) ) { switch ( d ) { case 0 : f . type = "bi.select_tree_first_plus_group_node" ; break ; case a . length - 1 : f . type = "bi.select_tree_last_plus_group_node" ; break ; default : f . type = "bi.select_tree_mid_plus_group_node" } BI . defaults ( e , f ) , c . _formatItems ( e . children ) } else { switch ( d ) { case a . length - 1 : f . type = "bi.last_tree_leaf_item" ; break ; default : f . type = "bi.mid_tree_leaf_item" } BI . defaults ( e , f ) } } ) , a } , _init : function ( ) { BI . SelectTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : "bi.level_tree" , expander : { type : "bi.select_tree_expander" , isDefaultInit : ! 0 } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( 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 . SelectTreePopup . 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 . SelectTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) ) ) } } ) , BI . SelectTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.select_level_tree" , BI . SelectTreePopup ) , BI . SequenceTableDynamicNumber = BI . inherit ( BI . SequenceTableTreeNumber , { _defaultConfig : function ( ) { return BI . extend ( BI . SequenceTableDynamicNumber . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-sequence-table-dynamic-number" } ) } , _init : function ( ) { BI . SequenceTableDynamicNumber . superclass . _init . apply ( this , arguments ) } , _formatNumber : function ( a ) { function b ( a ) { var c = 0 ; return BI . isNotEmptyArray ( a . children ) ? ( BI . each ( a . children , function ( a , d ) { c += b ( d ) } ) , a . children . length > 1 && BI . isNotEmptyArray ( a . values ) && c ++ ) : c ++ , c } var c = this . options , d = [ ] , e = this . _getStart ( a ) , f = 0 , g = 0 ; return BI . each ( a , function ( a , h ) { BI . isArray ( h . children ) && ( BI . each ( h . children , function ( a , h ) { var i = b ( h ) ; d . push ( { text : e ++ , start : f , top : g , cnt : i , index : a , height : i * c . rowSize } ) , f += i , g += i * c . rowSize } ) , BI . isNotEmptyArray ( h . values ) && ( d . push ( { text : BI . i18nText ( "BI-Summary_Values" ) , start : f ++ , top : g , cnt : 1 , isSummary : ! 0 , height : c . rowSize } ) , g += c . rowSize ) ) } ) , d } } ) , BI . shortcut ( "bi.sequence_table_dynamic_number" , BI . SequenceTableDynamicNumber ) , BI . SequenceTableListNumber = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SequenceTableListNumber . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-sequence-table-list-number" , isNeedFreeze : ! 1 , scrollTop : 0 , startSequence : 1 , headerRowSize : 25 , rowSize : 25 , sequenceHeaderCreator : null , header : [ ] , items : [ ] , crossHeader : [ ] , crossItems : [ ] , pageSize : 20 } ) } , _init : function ( ) { BI . SequenceTableListNumber . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . start = a . startSequence , this . renderedCells = [ ] , this . renderedKeys = [ ] , this . container = BI . createWidget ( { type : "bi.absolute" , width : 60 , scrollable : ! 1 } ) , this . scrollContainer = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . container ] } ) , this . headerContainer = BI . createWidget ( { type : "bi.absolute" , cls : "bi-border" , wid
BI . SingleSelectSearcher = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearcher . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-searcher" , itemsCreator : BI . emptyFn , el : { } , popup : { } , valueFormatter : BI . emptyFn , adapter : null , masker : { } } ) } , _init : function ( ) { BI . SingleSelectSearcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( b . el , { type : "bi.single_select_editor" , height : b . height } ) , this . searcher = BI . createWidget ( { type : "bi.searcher" , element : this , height : b . height , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( a , b ) { b ( ) } , el : this . editor , popup : BI . extend ( { type : "bi.single_select_search_pane" , valueFormatter : b . valueFormatter , keywordGetter : function ( ) { return a . editor . getValue ( ) } , itemsCreator : function ( c , d ) { c . keyword = a . editor . getValue ( ) , this . setKeyword ( c . keyword ) , b . itemsCreator ( c , d ) } } , b . popup ) , adapter : b . adapter , masker : b . masker } ) , this . searcher . on ( BI . Searcher . EVENT _START , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _START ) } ) , this . searcher . on ( BI . Searcher . EVENT _PAUSE , function ( ) { this . hasMatched ( ) , a . fireEvent ( BI . SingleSelectSearcher . EVENT _PAUSE ) } ) , this . searcher . on ( BI . Searcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _STOP ) } ) , this . searcher . on ( BI . Searcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _CHANGE , arguments ) } ) , this . searcher . on ( BI . Searcher . EVENT _SEARCHING , function ( ) { var b = this . getKeywords ( ) ; a . fireEvent ( BI . SingleSelectSearcher . EVENT _SEARCHING , b ) } ) } , adjustView : function ( ) { this . searcher . adjustView ( ) } , isSearching : function ( ) { return this . searcher . isSearching ( ) } , stopSearch : function ( ) { this . searcher . stopSearch ( ) } , getKeyword : function ( ) { return this . editor . getValue ( ) } , hasMatched : function ( ) { return this . searcher . hasMatched ( ) } , hasChecked : function ( ) { return this . searcher . getView ( ) && this . searcher . getView ( ) . hasChecked ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) } , setState : function ( a ) { var b = this . options ; a || ( a = "" ) , "" === a ? this . editor . setState ( BI . Selection . None ) : this . editor . setState ( b . valueFormatter ( a + "" ) || a + "" ) } , setValue : function ( a ) { this . setState ( a ) , this . searcher . setValue ( a ) } , getKey : function ( ) { return this . editor . getValue ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } , populate : function ( a ) { this . searcher . populate . apply ( this . searcher , arguments ) } } ) , BI . SingleSelectSearcher . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . SingleSelectSearcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . SingleSelectSearcher . EVENT _START = "EVENT_START" , BI . SingleSelectSearcher . EVENT _STOP = "EVENT_STOP" , BI . SingleSelectSearcher . EVENT _PAUSE = "EVENT_PAUSE" , 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 . Controlle
} , props : { baseCls : "bi-single-slider-normal bi-slider-track" , minMax : { min : 0 , max : 100 } } , render : function ( ) { var a = this , b = this . _constant , c = this . _createTrack ( ) ; this . slider = BI . createWidget ( { type : "bi.single_slider_button" } ) , this . _draggable ( this . slider ) ; var d = BI . createWidget ( { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ this . slider ] } ] , hgap : b . SLIDER _WIDTH _HALF , height : b . SLIDER _HEIGHT } ) ; return d . element . click ( function ( c ) { if ( a . enable ) { var d = c . clientX - a . element . offset ( ) . left - b . SLIDER _WIDTH _HALF , e = a . track . element [ 0 ] . scrollWidth , f = 0 ; d < 0 && ( f = 0 ) , d > 0 && d < e - b . SLIDER _WIDTH && ( f = 100 * d / a . _getGrayTrackLength ( ) ) , d > e - b . SLIDER _WIDTH && ( f = 100 ) ; var g = BI . parseFloat ( f . toFixed ( 1 ) ) ; a . _setAllPosition ( g ) ; var h = a . _getValueByPercent ( g ) ; a . value = h , a . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } } ) , { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : c , width : "100%" , height : b . TRACK _HEIGHT } ] } ] , hgap : 7 , height : b . TRACK _HEIGHT } , top : 3 , left : 0 , width : "100%" } , { el : d , top : 0 , left : 0 , width : "100%" } ] } } , _draggable : function ( a ) { function b ( a ) { return BI . clamp ( a , 0 , c . _getGrayTrackLength ( ) ) } var c = this , d = this . options , e = ! 1 , f = 0 , g = 0 , h = 0 , i = new BI . MouseMoveTracker ( function ( j ) { if ( i . isDragging ( ) ) { e = ! 0 , g += j , f = b ( h + g ) , a . element . addClass ( "dragging" ) ; var k = 100 * f / c . _getGrayTrackLength ( ) , l = BI . parseFloat ( k . toFixed ( 1 ) ) ; c . _setBlueTrack ( l ) , c . _setSliderPosition ( l ) ; var m = c . _getValueByPercent ( l ) ; m = d . digit === ! 1 ? m : m . toFixed ( d . digit ) , c . value = m , c . fireEvent ( BI . SingleSliderNormal . EVENT _DRAG , m ) } } , function ( ) { if ( e === ! 0 ) { f = b ( f ) ; var d = 100 * f / c . _getGrayTrackLength ( ) , j = BI . parseFloat ( d . toFixed ( 1 ) ) ; c . _setSliderPosition ( j ) , f = 0 , g = 0 , h = f , e = ! 1 } a . element . removeClass ( "dragging" ) , i . releaseMouseMoves ( ) , c . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } , document ) ; a . element . on ( "mousedown" , function ( c ) { a . isEnabled ( ) && ( h = this . offsetLeft , b ( h ) , i . captureMouseMoves ( c ) ) } ) } , _createTrack : function ( ) { var a = this ; this . _constant ; return this . grayTrack = BI . createWidget ( { type : "bi.layout" , cls : "gray-track" , height : 6 } ) , this . blueTrack = BI . createWidget ( { type : "bi.layout" , cls : "blue-track bi-high-light-background" , height : 6 } ) , this . options . color && this . blueTrack . element . css ( { "background-color" : this . options . color } ) , { 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%" } ] , ref : function ( b ) { a . track = b } } } , _checkValidation : function ( a ) { return ! ( BI . isNull ( a ) || a < this . min || a > this . max ) } , _setBlueTrack : function ( a ) { this . blueTrack . element . css ( { width : a + "%" } ) } , _setSliderPosition : function ( a ) { this . slider . element . css ( { 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
return e . find . length > 0 || e . match . length > 0 } , _getTreeNode : function ( a , b ) { var c , d = this , e = 0 ; return this . tree . traverse ( function ( f ) { if ( ! d . tree . isRoot ( f ) ) return ! ( e > a . length ) && ( e === a . length && f . value === b ? ( c = f , ! 1 ) : f . value !== a [ e ] || void e ++ ) } ) , c } , _getChildren : function ( a ) { if ( a . length > 0 ) var b = BI . last ( a ) , c = this . _getTreeNode ( a . slice ( 0 , a . length - 1 ) , b ) ; else var c = this . tree . getRoot ( ) ; return c . getChildren ( ) } , _getChildCount : function ( a ) { return this . _getChildren ( a ) . length } } ) , BI . TreeValueChooserCombo = BI . inherit ( BI . AbstractTreeValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeValueChooserCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-tree-value-chooser-combo" , width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . TreeValueChooserCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNotNull ( b . items ) && this . _initData ( b . items ) , this . combo = BI . createWidget ( { type : "bi.multi_tree_combo" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) , width : b . width , height : b . height } ) , this . combo . on ( BI . MultiTreeCombo . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . TreeValueChooserCombo . EVENT _CONFIRM ) } ) } , setValue : function ( a ) { this . combo . setValue ( a ) } , getValue : function ( ) { return this . combo . getValue ( ) } , populate : function ( ) { this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . TreeValueChooserCombo . EVENT _CONFIRM = "TreeValueChooserCombo.EVENT_CONFIRM" , BI . shortcut ( "bi.tree_value_chooser_combo" , BI . TreeValueChooserCombo ) , BI . TreeValueChooserPane = BI . inherit ( BI . AbstractTreeValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeValueChooserPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-tree-value-chooser-pane" , items : null , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . TreeValueChooserPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . pane = BI . createWidget ( { type : "bi.multi_select_tree" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) } ) , this . pane . on ( BI . MultiSelectTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . TreeValueChooserPane . EVENT _CHANGE ) } ) , BI . isNotNull ( b . items ) && ( this . _initData ( b . items ) , this . populate ( ) ) } , setSelectedValue : function ( a ) { this . pane . setSelectedValue ( a ) } , setValue : function ( a ) { this . pane . setValue ( a ) } , getValue : function ( ) { return this . pane . getValue ( ) } , populate : function ( ) { this . pane . populate . apply ( this . pane , arguments ) } } ) , BI . TreeValueChooserPane . EVENT _CHANGE = "TreeValueChooserPane.EVENT_CHANGE" , BI . shortcut ( "bi.tree_value_chooser_pane" , BI . TreeValueChooserPane ) , BI . AbstractValueChooser = BI . inherit ( BI . Widget , { _const : { perPage : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AbstractValueChooser . superclass . _defaultConfig . apply ( this , arguments ) , { items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _valueFormatter : function ( a ) { var b = a ; return BI . isNotNull ( this . items ) && BI . some ( this . items , function ( c , d ) { if ( d . value === a ) return b = d . text , ! 0 } ) , b } , _getItemsByTimes : function ( a , b ) { for ( var c = [ ] , d = ( b - 1 ) * this . _const . perPage ; a [ d ] && d < b * this . _const . perPage ; d ++ ) c . push ( a [ d ] ) ; return c } , _hasNextByTimes : function ( a , b ) { return b * this . _const . perPage < a . length } , _itemsCreator : function ( a , b ) { function c ( c ) { var e = ( a . keywords || [ ] ) . slice ( ) ; if ( a . keyword && e . push ( a . keyword ) , BI . each ( e , function ( a , b ) { var d = BI . Func . getSearchResult ( c , b ) ; c = d . match . concat ( d . find ) } ) , a . selectedValues ) { var f = BI . makeObject ( a . selectedValues , ! 0 ) ; c = BI . filter ( c , function ( a , b ) { return ! f [ b . value ] } ) } return a . type === BI . MultiSelectCombo . REQ _GET _ALL _DATA ? void b ( { items : c } ) : a . type === BI . MultiSelectCombo . REQ _GET _DATA _LENGTH ? void b ( { count : c . length } ) : void b ( { items : d . _getItemsByTimes ( c , a . times ) , hasNext : d . _hasNextByTimes ( c , a . times ) } ) } var d = this , e = this . options ; e . cache && this . items ? c ( this . items ) : e . itemsCreator ( { } , function ( a ) { d . items = a , c ( a ) } ) } } ) , BI . ValueChooserCombo = BI . inherit ( BI . AbstractValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . ValueChooserCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-value-chooser-combo" , width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . ValueChooserCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNotNull ( b . items ) && ( this . items = b . items ) , this . c