/*! 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 } } ) , function ( ) { function a ( a ) { function b ( b , c , d , e , f , g ) { for ( ; f >= 0 && f < g ; f += a ) { var h = e ? e [ f ] : f ; d = c ( d , b [ h ] , h , b ) } return d } return function ( c , d , e , f ) { d = s ( d , f , 4 ) ; var g = ! x ( c ) && r . keys ( c ) , h = ( g || c ) . length , i = a > 0 ? 0 : h - 1 ; return arguments . length < 3 && ( e = c [ g ? g [ i ] : i ] , i += a ) , b ( c , d , e , g , i , h ) } } function b ( a ) { return function ( b , c , d ) { c = t ( c , d ) ; for ( var e = null != b && b . length , f = a > 0 ? 0 : e - 1 ; f >= 0 && f < e ; f += a ) if ( c ( b [ f ] , f , b ) ) return f ; return - 1 } } function c ( a , b ) { var c = C . length , d = a . constructor , e = r . isFunction ( d ) && d . prototype || g , f = "constructor" ; for ( r . has ( a , f ) && ! r . contains ( b , f ) && b . push ( f ) ; c -- ; ) f = C [ c ] , f in a && a [ f ] !== e [ f ] && ! r . contains ( b , f ) && b . push ( f ) } var d = this , e = d . _ , f = Array . prototype , g = Object . prototype , h = Function . prototype , i = f . push , j = f . slice , k = g . toString , l = g . hasOwnProperty , m = Array . isArray , n = Object . keys , o = h . bind , p = Object . create , q = function ( ) { } , r = function ( a ) { return a instanceof r ? a : this instanceof r ? void ( this . _wrapped = a ) : new r ( a ) } ; "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = r ) , exports . _ = r ) : d . _ = r , r . VERSION = "1.8.2" ; var s = function ( a , b , c ) { if ( void 0 === b ) return a ; switch ( null == c ? 3 : c ) { case 1 : return function ( c ) { return a . call ( b , c ) } ; case 2 : return function ( c , d ) { return a . call ( b , c , d ) } ; case 3 : return function ( c , d , e ) { return a . call ( b , c , d , e ) } ; case 4 : return function ( c , d , e , f ) { return a . call ( b , c , d , e , f ) } } return function ( ) { return a . apply ( b , arguments ) } } , t = function ( a , b , c ) { return null == a ? r . identity : r . isFunction ( a ) ? s ( a , b , c ) : r . isObject ( a ) ? r . matcher ( a ) : r . property ( a ) } ; r . iteratee = function ( a , b ) { return t ( a , b , 1 / 0 ) } ; var u = function ( a , b ) { return function ( c ) { var d = arguments . length ; if ( d < 2 || null == c ) return c ; for ( var e = 1 ; e < d ; e ++ ) for ( var f = arguments [ e ] , g = a ( f ) , h = g . length , i = 0 ; i < h ; i ++ ) { var j = g [ i ] ; b && void 0 !== c [ j ] || ( c [ j ] = f [ j ] ) } return c } } , v = function ( a ) { if ( ! r . isObject ( a ) ) return { } ; if ( p ) return p ( a ) ; q . prototype = a ; var b = new q ; return q . prototype = null , b } , w = Math . pow ( 2 , 53 ) - 1 , x = function ( a ) { var b = null != a && a . length ; return "number" == typeof b && b >= 0 && b <= w } ; r . each = r . forEach = function ( a , b , c ) { b = s ( b , c ) ; var d , e ; if ( x ( a ) ) for ( d = 0 , e = a . length ; d < e ; d ++ ) b ( a [ d ] , d , a ) ; else { var f = r . keys ( a ) ; for ( d = 0 , e = f . length ; d < e ; d ++ ) b ( a [ f [ d ] ] , f [ d ] , a ) } return a } , r . map = r . collect = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = Array ( e ) , g = 0 ; g < e ; g ++ ) { var h = d ? d [ g ] : g ; f [ g ] = b ( a [ h ] , h , a ) } return f } , r . reduce = r . foldl = r . inject = a ( 1 ) , r . reduceRight = r . foldr = a ( - 1 ) , r . find = r . detect = function ( a , b , c ) { var d ; if ( d = x ( a ) ? r . findIndex ( a , b , c ) : r . findKey ( a , b , c ) , void 0 !== d && d !== - 1 ) return a [ d ] } , r . filter = r . select = function ( a , b , c ) { var d = [ ] ; return b = t ( b , c ) , r . each ( a , function ( a , c , e ) { b ( a , c , e ) && d . push ( a ) } ) , d } , r . reject = function ( a , b , c ) { return r . filter ( a , r . negate ( t ( b ) ) , c ) } , r . every = r . all = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = 0 ; f < e ; f ++ ) { var g = d ? d [ f ] : f ; if ( ! b ( a [ g ] , g , a ) ) return ! 1 } return ! 0 } , r . some = r . any = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = 0 ; f < e ; f ++ ) { var g = d ? d [ f ] : f ; if ( b ( a [ g ] , g , a ) ) return ! 0 } return ! 1 } , r . contains = r . includes = r . include = function ( a , b , c ) { return x ( a ) || ( a = r . values ( a ) ) , r . indexOf ( a , b , "number" == typeof c && c ) >= 0 } , r . invoke = function ( a , b ) { var c
items : [ c ] } ) } , populate : function ( a ) { BI . LeftVerticalAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.left_vertical_adapt" , BI . LeftVerticalAdaptLayout ) , BI . RightVerticalAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . RightVerticalAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-right-vertical-adapt-layout" , items : [ ] , lgap : 0 , rgap : 0 , hgap : 0 } ) } , render : function ( ) { BI . RightVerticalAdaptLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = BI . createWidget ( { type : "bi.vertical_adapt" , items : a , lgap : b . lgap , hgap : b . hgap , rgap : b . rgap } ) ; c . element . css ( "height" , "100%" ) , BI . createWidget ( { type : "bi.right" , element : this , items : [ c ] } ) } , populate : function ( a ) { BI . RightVerticalAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.right_vertical_adapt" , BI . RightVerticalAdaptLayout ) , BI . VerticalAdaptLayout = BI . inherit ( BI . Layout , { props : { baseCls : "bi-vertical-adapt-layout" , columnSize : [ ] , horizontalAlign : BI . HorizontalAlign . Left , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } , render : function ( ) { BI . VerticalAdaptLayout . superclass . render . apply ( this , arguments ) ; var a = this . options ; this . $table = $ ( "<table>" ) . attr ( { cellspacing : 0 , cellpadding : 0 } ) . css ( { position : "relative" , width : a . horizontalAlign === BI . HorizontalAlign . Stretch ? "100%" : "auto" , height : "100%" , "white-space" : "nowrap" , "border-spacing" : "0px" , border : "none" , "border-collapse" : "separate" } ) , this . $tr = $ ( "<tr>" ) , this . $tr . appendTo ( this . $table ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c , d = this . options , e = d . columnSize [ a ] <= 1 ? 100 * d . columnSize [ a ] + "%" : d . columnSize [ a ] ; if ( this . hasWidget ( this . _getChildName ( a ) ) ) c = this . getWidgetByName ( this . _getChildName ( a ) ) , c . element . attr ( "width" , e ) ; else { var f = BI . createWidget ( b ) ; f . element . css ( { position : "relative" , top : "0" , left : "0" , margin : "0px auto" } ) , c = BI . createWidget ( { type : "bi.default" , tagName : "td" , attributes : { width : e } , items : [ f ] } ) , this . addWidget ( this . _getChildName ( a ) , c ) } return 0 === a && c . element . addClass ( "first-element" ) , c . element . css ( { position : "relative" , height : "100%" , "vertical-align" : "middle" , margin : "0" , padding : "0" , border : "none" } ) , d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-top" : d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d . hgap + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-left" : ( 0 === a ? d . hgap : 0 ) + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-right" : d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-bottom" : d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c } , _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 . $tr . append ( b ) , this . element . append ( this . $table ) ) } , _getWrapper : function ( ) { return this . $tr } , resize : function ( ) { } , populate : function ( a ) { BI . VerticalAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.vertical_adapt" , BI . VerticalAdaptLayout ) , BI . HorizontalAutoLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalAutoLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizon-auto-layout" , hgap : 0 , lgap : 0 , rgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalAutoLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . HorizontalAutoLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" , margin : "0px auto" } ) , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-top" : ( 0 === a ? c . vgap : 0 ) + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-left" : c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !==
"margin-bottom" : d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c } , _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 . $tr . append ( b ) , this . element . append ( this . $table ) ) } , resize : function ( ) { } , _getWrapper : function ( ) { return this . $tr } , populate : function ( a ) { BI . HorizontalLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.horizontal" , BI . HorizontalLayout ) , BI . HorizontalCellLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalCellLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizontal-cell-layout" , scrollable : ! 0 , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalCellLayout . superclass . render . apply ( this , arguments ) , this . element . css ( { display : "table" , "vertical-align" : "top" } ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . HorizontalCellLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" , display : "table-cell" , "vertical-align" : "middle" } ) , c . hgap + c . lgap > 0 && d . element . css ( { "margin-left" : c . hgap + c . lgap + "px" } ) , c . hgap + c . rgap > 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + "px" } ) , c . vgap + c . tgap > 0 && d . element . css ( { "margin-top" : c . vgap + c . tgap + "px" } ) , c . vgap + c . bgap > 0 && d . element . css ( { "margin-bottom" : c . vgap + c . bgap + "px" } ) , d } , resize : function ( ) { } , populate : function ( a ) { BI . HorizontalCellLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.horizontal_cell" , BI . HorizontalCellLayout ) , BI . LatticeLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . LatticeLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-lattice-layout clearfix" } ) } , render : function ( ) { BI . LatticeLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . LatticeLayout . superclass . _addElement . apply ( this , arguments ) ; if ( c . columnSize && c . columnSize [ a ] ) var e = c . columnSize [ a ] / BI . sum ( c . columnSize ) * 100 + "%" ; else var e = 1 / this . options . items . length * 100 + "%" ; return d . element . css ( { position : "relative" , "float" : "left" , width : e } ) , d } , addItem : function ( a ) { var b = BI . LatticeLayout . superclass . addItem . apply ( this , arguments ) ; return this . resize ( ) , b } , addItemAt : function ( a ) { var b = BI . LatticeLayout . superclass . addItemAt . apply ( this , arguments ) ; return this . resize ( ) , b } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . LatticeLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.lattice" , BI . LatticeLayout ) , BI . TableLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . TableLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-table-layout" , scrolly : ! 0 , columnSize : [ 200 , 200 , "fill" ] , rowSize : 30 , hgap : 0 , vgap : 0 , items : [ [ { el : { text : "label1" } } , { el : { text : "label2" } } , { el : { text : "label3" } } ] ] } ) } , render : function ( ) { BI . TableLayout . superclass . render . apply ( this , arguments ) , this . rows = 0 , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { function c ( a , b , c ) { 0 === b && a . addClass ( "first-row" ) , 0 === c && a . addClass ( "first-col" ) , a . addClass ( BI . isOdd ( b + 1 ) ? "odd-row" : "even-row" ) , a . addClass ( BI . isOdd ( c + 1 ) ? "odd-col" : "even-col" ) , a . addClass ( "center-element" ) } function d ( a , b , c ) { var d = "" ; 0 === b && ( d += " first-row" ) , 0 === c && ( d += " first-col" ) , d += BI . isOdd ( b + 1 ) ? " odd-row" : " even-row" , d += BI . isOdd ( c + 1 ) ? " odd-col" : " even-col" , a . cls = ( a . cls || "" ) + d + " center-element" } function e ( a , b , e ) { a instanceof BI . Widget ? c ( a . element , b , e ) : a . el instanceof BI . Widget ? c ( a . el . element , b , e ) : a . el ? d ( a . el , b , e ) : d ( a , b , e ) } var f , g , h = this . options , i = [ ] , j = 0 , k = 0 ; for ( f = 0 ; f < b . length && BI . isNumber ( h . columnSize [ f ] ) ; f ++ ) e ( b [ f ] , this . rows , f ) , i . push ( BI . extend ( { top : 0 , bottom : 0 , left : h . columnSize [ f ] <= 1 ? 100 * j + "%" : j , width : h . columnSize [ f ] <= 1 ? 100 * h . columnSize [ f ] + "%" : h . columnSize [ f ] } , b [ f ] ) ) , j += h . columnSize [ f ] + ( h . columnSize [ f ] < 1 ? 0 : h . hgap ) ; for ( g = b . length - 1 ; g > f ; g -- ) { if ( ! BI . isNumber ( h . columnSize [ g ] ) ) throw new Error ( "item with fill can only be one" ) ; e ( b [ g ] , this . rows , g ) , i . push ( BI . extend ( { top : 0 , bottom : 0 , right : h . columnSize [ g ] <= 1 ? 100 * k + "%" : k , width : h . columnSize [ g ] <= 1 ? 100 * h . columnSize [
this . expression = "" , "function" == typeof c ? this . getter = c : ( this . getter = g ( c ) , this . getter || ( this . getter = function ( ) { } ) ) , this . value = this . lazy ? void 0 : this . get ( ) } return a . prototype . get = function ( ) { h ( this ) ; var a = void 0 , b = this . vm ; try { a = this . getter . call ( b , b ) } catch ( c ) { throw c } finally { this . deep && v ( a ) , i ( ) , this . cleanupDeps ( ) } return a } , a . prototype . addDep = function ( a ) { var b = a . id ; this . newDepIds . has ( b ) || ( this . newDepIds . add ( b ) , this . newDeps . push ( a ) , this . depIds . has ( b ) || a . addSub ( this ) ) } , a . prototype . cleanupDeps = function ( ) { for ( var a = this . deps . length ; a -- ; ) { var b = this . deps [ a ] ; this . newDepIds . has ( b . id ) || b . removeSub ( this ) } var c = this . depIds ; this . depIds = this . newDepIds , this . newDepIds = c , this . newDepIds . clear ( ) , c = this . deps , this . deps = this . newDeps , this . newDeps = c , this . newDeps . length = 0 } , a . prototype . update = function ( ) { this . lazy ? this . dirty = ! 0 : this . sync ? this . run ( ) : u ( this ) } , a . prototype . run = function ( ) { if ( this . active ) { var a = this . get ( ) ; if ( a !== this . value || _ . isObject ( a ) || this . deep ) { var b = this . value ; this . value = a , this . user ? this . cb . call ( this . vm , a , b ) : this . cb . call ( this . vm , a , b ) } } } , a . prototype . evaluate = function ( ) { this . value = this . get ( ) , this . dirty = ! 1 } , a . prototype . depend = function ( ) { for ( var a = this . deps . length ; a -- ; ) this . deps [ a ] . depend ( ) } , a . prototype . teardown = function ( ) { if ( this . active ) { f ( this . vm . _watchers , this ) ; for ( var a = this . deps . length ; a -- ; ) this . deps [ a ] . removeSub ( this ) ; this . active = ! 1 } } , a } ( ) , ta = new Set , ua = { "||" : ga , "&&" : ga , "(" : ga , ")" : ga } , va = { lazy : ! 0 } , wa = function ( ) { function a ( b ) { _classCallCheck ( this , a ) , ( b instanceof ka || b instanceof a ) && ( b = b . model ) , b && b . _ _ob _ _ ? this . $$model = b : this . options = b || { } , this . _parent = a . target ; var c = _ . isFunction ( this . state ) ? this . state ( ) : this . state , d = this . computed , e = this . context , f = this . childContext , g = this . watch , h = this . actions , i = _ . keys ( this . $$model ) . concat ( _ . keys ( c ) ) . concat ( _ . keys ( d ) ) . concat ( e || [ ] ) ; if ( H ( this , i ) , f && I ( this , f ) , this . $$model && ( this . model . _ _ob _ _ = this . $$model . _ _ob _ _ ) , this . _init ( ) , A ( this , c ) , B ( this , d ) , E ( this , g ) , G ( this , h ) , this . $$model ) return this . model } return a . prototype . _init = function ( ) { } , a . prototype . destroy = function ( ) { for ( var a in this . _computedWatchers ) this . _computedWatchers [ a ] . teardown ( ) ; _ . each ( this . _watchers , function ( a ) { a = _ . isArray ( a ) ? a : [ a ] , _ . each ( a , function ( a ) { a ( ) } ) } ) , this . _watchers && ( this . _watchers = [ ] ) , this . destroyed && this . destroyed ( ) , this . $$model = null , this . $$computed = null , this . $$state = null } , a } ( ) , xa = "2.0" ; a . define = K , a . version = xa , a . $$skipArray = U , a . Model = wa , a . observerState = ja , a . Observer = ka , a . observe = m , a . notify = n , a . defineReactive = o , a . set = p , a . del = q , a . Watcher = sa , a . pushTarget = h , a . popTarget = i , a . watch = z , a . toJSON = J , a . _ _esModule = ! 0 } ) , function ( ) { function a ( a , c ) { a . _watchers || ( a . _watchers = [ ] ) ; for ( var d in c ) { var e = c [ d ] ; if ( BI . isArray ( e ) ) for ( var f = 0 ; f < e . length ; f ++ ) a . _watchers . push ( b ( a , d , e [ f ] ) ) ; else a . _watchers . push ( b ( a , d , e ) ) } } function b ( a , b , c ) { return Fix . watch ( a . model , b , _ . bind ( c , a ) , { store : a . store } ) } function c ( a ) { h && i . push ( h ) , Fix . Model . target = h = a } function d ( ) { Fix . Model . target = h = i . pop ( ) } function e ( a ) { j && k . push ( j ) , Fix . Model . context = j = a } function f ( ) { Fix . Model . context = j = k . pop ( ) } function g ( a ) { for ( var b = a ; b && ! b . store && ! b . _ _cacheStore ; ) b = b . _parent || b . options && b . options . element ; if ( b ) return a . _ _cacheStore = b . store , b . _ _cacheStore || b . store } var h = null , i = [ ] , j = null , k = [ ] , l = Fix . watch ; Fix . watch = function ( a , b , e , f ) { return BI . isPlainObject ( e ) && ( f = e , e = e . handler ) , "string" == typeof e && ( e = a [ e ] ) , l . call ( this , a , b , function ( ) { f && f . store && c ( f . store ) ; var a = e . apply ( this , arguments ) ; return f && f . store && d ( ) , a } , f ) } ; var m = BI . createWidget ; BI . createWidget = function ( a , b , c ) { var d = ! 1 ; BI . isWidget ( b ) ? ( e ( b ) , d = ! 0 ) : null != c && ( e ( c ) , d = ! 0 ) ; var g = m . apply ( this , arguments ) ; return d && f ( ) , g } ; var n = BI . Widget . prototype . _init ; BI . Widget . prototype . _init = function ( ) { var a = ! 1 ; if ( window . Fix && this . _store ) { var b = g ( this . options . element || j ) ; b && ( c ( b ) , a = ! 0 ) , this . store = this . _store ( ) , a && d ( ) , a = ! 1 , c ( this . store ) , this . store instanceof Fix . Model ? this . model = this . store . model : this . model = this . store , a = ! 0 } n . apply ( this , arguments ) , a && d ( ) } ; var o = BI . Widget . prototype . _render ; BI . Widget . prototype . _render = function ( ) { var b = ! 1 ; window . Fix && this . _store && ( b = ! 0 , c ( this . store ) , a ( this , this . watch ) ) , o . apply ( this , arguments ) , b && d ( ) } ; var p = BI . Widget . prototype . _ _d ; BI . Widget . proto
BI . TreeView = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-tree" , paras : { } , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . TreeView . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _stop = ! 1 , this . _createTree ( ) , this . tip = BI . createWidget ( { type : "bi.loading_bar" , invisible : ! 0 , handler : BI . bind ( this . _loadMore , this ) } ) , BI . createWidget ( { type : "bi.vertical" , scrollable : ! 0 , scrolly : ! 1 , element : this , items : [ this . tip ] } ) , BI . isNotNull ( a . value ) && this . setSelectedValue ( a . value ) } , _createTree : function ( ) { this . id = "bi-tree" + BI . UUID ( ) , this . nodes && this . nodes . destroy ( ) , this . tree && this . tree . destroy ( ) , this . tree = BI . createWidget ( { type : "bi.layout" , element : "<ul id='" + this . id + "' class='ztree'></ul>" } ) , BI . createWidget ( { type : "bi.default" , element : this . element , items : [ this . tree ] } ) } , _selectTreeNode : function ( a , b ) { this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , b , this ) , this . fireEvent ( BI . TreeView . EVENT _CHANGE , b , this ) } , _configSetting : function ( ) { function a ( a , b , c ) { l . nodes . checkNode ( c , ! c . checked , ! 0 , ! 0 ) } function b ( a , b ) { var c = l . _getParentValues ( b ) ; b . times = b . times || 1 ; var d = "id=" + b . id + "×=" + b . times ++ + "&parentValues= " + window . encodeURIComponent ( BI . jsonEncode ( c ) ) + "&checkState=" + window . encodeURIComponent ( BI . jsonEncode ( b . getCheckStatus ( ) ) ) ; return BI . servletURL + "?op=" + l . options . op + "&cmd=" + l . options . cmd + "&" + d } function c ( a , b ) { return b . isAjaxing ? ( BI . Msg . toast ( "Please Wait。" , "warning" ) , ! 1 ) : ( b . children || ( b . times = 1 , f ( b , "refresh" ) ) , ! 0 ) } function d ( a , b , c , d ) { if ( c . halfCheck = ! 1 , d && 0 !== d . length && ! /^<html>[\s,\S]*<\/html>$/gi . test ( d ) && ! l . _stop ) { var e = l . nodes , g = c . count || 0 ; c . children . length > g ? ( c . count = c . children . length , BI . delay ( function ( ) { f ( c ) } , n ) ) : ( e . updateNode ( c ) , e . selectNode ( c . children [ 0 ] ) ) } } function e ( a , b , c , d , e , f ) { l . nodes ; BI . Msg . toast ( "Error!" , "warning" ) } function f ( a , b ) { var c = l . nodes ; "refresh" == b && c . updateNode ( a ) , c . reAsyncChildNodes ( a , b , ! 0 ) } function g ( a , b ) { function c ( a ) { BI . each ( a , function ( a , b ) { b . halfCheck === ! 0 && ( b . halfCheck = ! 1 , c ( b . children ) ) } ) } if ( b . halfCheck = ! 1 , b . checked === ! 0 ) { c ( b . children ) ; var d = l . nodes , e = d . getSelectedNodes ( ) ; $ . each ( e , function ( a , b ) { b . halfCheck = ! 1 } ) } } function h ( a , b , c ) { l . _selectTreeNode ( b , c ) } function i ( a , b , c ) { c . halfCheck = ! 1 } function j ( a , b , c ) { } var k = this . options . paras , l = this , m = { async : { enable : ! 0 , url : b , autoParam : [ "id" , "name" ] , otherParam : BI . cjkEncodeDO ( k ) } , check : { enable : ! 0 } , data : { key : { title : "title" , name : "text" } , simpleData : { enable : ! 0 } } , view : { showIcon : ! 1 , expandSpeed : "" , nameIsHTML : ! 0 , dblClickExpand : ! 1 } , callback : { beforeExpand : c , onAsyncSuccess : d , onAsyncError : e , beforeCheck : g , onCheck : h , onExpand : i , onCollapse : j , onClick : a } } , n = 100 ; return m } , _getParentValues : function ( a ) { if ( ! a . getParentNode ( ) ) return [ ] ; var b = a . getParentNode ( ) , c = this . _getParentValues ( b ) ; return c = c . concat ( [ this . _getNodeValue ( b ) ] ) } , _getNodeValue : function ( a ) { return null == a . value ? a . text . replace ( /<[^>]+>/g , "" ) . replaceAll ( " " , " " ) : a . value } , _getHalfSelectedValues : function ( a , b ) { var c = this , d = b . getCheckStatus ( ) ; if ( d . checked !== ! 1 || d . half !== ! 1 ) { if ( BI . isNotEmptyArray ( b . children ) && d . half === ! 0 ) { var e = b . children ; return void BI . each ( e , function ( b , d ) { c . _getHalfSelectedValues ( a , d ) } ) } var f = b . parentValues || c . _getParentValues ( b ) , g = f . concat ( this . _getNodeValue ( b ) ) ; if ( BI . isNotEmptyArray ( b . children ) || d . half === ! 1 ) return void this . _buildTree ( a , g ) ; var h = BI . deepClone ( this . options . paras . selectedValues ) , i = this . _getTree ( h , g ) ; this . _addTreeNode ( a , f , this . _getNodeValue ( b ) , i ) } } , _getTree : function ( a , b ) { var c = a ; return BI . any ( b , function ( a , b ) { return null == c [ b ] || void ( c = c [ b ] ) } ) , c } , _addTreeNode : function ( a , b , c , d ) { var e = a ; BI . each ( b , function ( a , b ) { null == e [ b ] && ( e [ b ] = { } ) , e = e [ b ] } ) , e [ c ] = d } , _buildTree : function ( a , b ) { var c = a ; BI . each ( b , function ( a , b ) { null == c [ b ] && ( c [ b ] = { } ) , c = c [ b ] } ) } , _getSelectedValues : function ( ) { function a ( a ) { BI . each ( a , function ( a , d ) { var e = d . getCheckStatus ( ) ; if ( e . checked === ! 0 || e . half === ! 0 ) if ( e . half === ! 0 ) b . _getHalfSelectedValues ( c , d ) ; else { var f = d . parentValues || b . _getParentValues ( d ) , g = f . concat ( [ b . _getNodeValue ( d ) ] ) ; b . _buildTree ( c , g ) } } ) } var b = this , c = { } , d = this . nodes . getNodes ( ) ; return a ( d ) , c } , _dealWidthNodes : function ( a ) { var b = this . options , c = BI . Tree . arrayForma
trigger : "click" , toggle : ! 0 , isDefaultInit : ! 1 , el : { } , popup : { } , expanderClass : "bi-expander-popup" , hoverClass : "bi-expander-hover" } ) } , _init : function ( ) { BI . Expander . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _expanded = ! ! b . el . open , this . _initExpander ( ) , this . _initPullDownAction ( ) , this . expander . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . isEnabled ( ) && a . isValid ( ) && ( b === BI . Events . EXPAND && a . _popupView ( ) , b === BI . Events . COLLAPSE && a . _hideView ( ) , b === BI . Events . EXPAND && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . Expander . EVENT _EXPAND ) ) , b === BI . Events . COLLAPSE && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . isViewVisible ( ) && a . fireEvent ( BI . Expander . EVENT _COLLAPSE ) ) , b === BI . Events . CLICK && a . fireEvent ( BI . Expander . EVENT _TRIGGER _CHANGE , c , d ) ) } ) , this . element . hover ( function ( ) { a . isEnabled ( ) && a . isValid ( ) && a . expander . isEnabled ( ) && a . expander . isValid ( ) && a . element . addClass ( b . hoverClass ) } , function ( ) { a . isEnabled ( ) && a . isValid ( ) && a . expander . isEnabled ( ) && a . expander . isValid ( ) && a . element . removeClass ( b . hoverClass ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ { el : this . expander } ] } ) , b . isDefaultInit && this . _assertPopupView ( ) , this . expander . isOpened ( ) === ! 0 && this . _popupView ( ) } , _toggle : function ( ) { this . _assertPopupViewRender ( ) , this . popupView . isVisible ( ) ? this . _hideView ( ) : this . isEnabled ( ) && this . _popupView ( ) } , _initPullDownAction : function ( ) { var a = this , b = this . options , c = this . options . trigger . split ( "," ) ; BI . each ( c , function ( c , d ) { switch ( d ) { case "hover" : a . element [ d ] ( function ( b ) { a . isEnabled ( ) && a . isValid ( ) && a . expander . isEnabled ( ) && a . expander . isValid ( ) && ( a . _popupView ( ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . EXPAND , "" , a . expander ) , a . fireEvent ( BI . Expander . EVENT _EXPAND ) ) } , function ( ) { a . isEnabled ( ) && a . isValid ( ) && a . expander . isEnabled ( ) && a . expander . isValid ( ) && b . toggle && ( a . _hideView ( ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . COLLAPSE , "" , a . expander ) , a . fireEvent ( BI . Expander . EVENT _COLLAPSE ) ) } ) ; break ; default : d && a . element . off ( d + "." + a . getName ( ) ) . on ( d + "." + a . getName ( ) , BI . debounce ( function ( c ) { a . expander . element . _ _isMouseInBounds _ _ ( c ) && a . isEnabled ( ) && a . isValid ( ) && a . expander . isEnabled ( ) && a . expander . isValid ( ) && ( b . toggle ? a . _toggle ( ) : a . _popupView ( ) , a . isExpanded ( ) ? ( a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . EXPAND , "" , a . expander ) , a . fireEvent ( BI . Expander . EVENT _EXPAND ) ) : ( a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . COLLAPSE , "" , a . expander ) , a . fireEvent ( BI . Expander . EVENT _COLLAPSE ) ) ) } , BI . EVENT _RESPONSE _TIME , ! 0 ) ) } } ) } , _initExpander : function ( ) { this . expander = BI . createWidget ( this . options . el , { value : this . options . value } ) } , _assertPopupView : function ( ) { var a = this , b = this . options ; null == this . popupView && ( this . popupView = BI . createWidget ( this . options . popup , { type : "bi.button_group" , cls : "expander-popup" , layouts : [ { type : "bi.vertical" , hgap : 0 , vgap : 0 } ] , value : b . value } , this ) , this . popupView . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . Expander . EVENT _CHANGE , c , d ) } ) , this . popupView . setVisible ( this . isExpanded ( ) ) , BI . nextTick ( function ( ) { a . fireEvent ( BI . Expander . EVENT _AFTER _INIT ) } ) ) } , _assertPopupViewRender : function ( ) { this . _assertPopupView ( ) , this . _rendered || ( BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ { el : this . popupView } ] } ) , this . _rendered = ! 0 ) } , _hideView : function ( ) { this . fireEvent ( BI . Expander . EVENT _BEFORE _HIDEVIEW ) , this . _expanded = ! 1 , this . expander . setOpened ( ! 1 ) , this . popupView && this . popupView . invisible ( ) , this . element . removeClass ( this . options . expanderClass ) , this . fireEvent ( BI . Expander . EVENT _AFTER _HIDEVIEW ) } , _popupView : function ( ) { this . _assertPopupViewRender ( ) , this . fireEvent ( BI . Expander . EVENT _BEFORE _POPUPVIEW ) , this . _expanded = ! 0 , this . expander . setOpened ( ! 0 ) , this . popupView . visible ( ) , this . element . addClass ( this . options . expanderClass ) , this . fireEvent ( BI . Expander . EVENT _AFTER _POPUPVIEW ) } , populate : function ( a ) { this . popupView && this . popupView . populate . apply ( this . popupView , arguments ) , this . expander . populate . apply ( this . expander , arguments ) } , _setEnable : function ( a ) { BI . Expander . superclass . _setEnable . apply ( this , arguments ) , ! a && this . element . removeClass ( this . options . hoverClass )
d . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , d . gutterFiller = Me ( "div" , null , "CodeMirror-gutter-filler" ) , d . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , d . lineDiv = Me ( "div" , null , "CodeMirror-code" ) , d . selectionDiv = Me ( "div" , null , null , "position: relative; z-index: 1" ) , d . cursorDiv = Me ( "div" , null , "CodeMirror-cursors" ) , d . measure = Me ( "div" , null , "CodeMirror-measure" ) , d . lineMeasure = Me ( "div" , null , "CodeMirror-measure" ) , d . lineSpace = Me ( "div" , [ d . measure , d . lineMeasure , d . selectionDiv , d . cursorDiv , d . lineDiv ] , null , "position: relative; outline: none" ) , d . mover = Me ( "div" , [ Me ( "div" , [ d . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , d . sizer = Me ( "div" , [ d . mover ] , "CodeMirror-sizer" ) , d . sizerWidth = null , d . heightForcer = Me ( "div" , null , null , "position: absolute; height: " + Bg + "px; width: 1px;" ) , d . gutters = Me ( "div" , null , "CodeMirror-gutters" ) , d . lineGutter = null , d . scroller = Me ( "div" , [ d . sizer , d . heightForcer , d . gutters ] , "CodeMirror-scroll" ) , d . scroller . setAttribute ( "tabIndex" , "-1" ) , d . wrapper = Me ( "div" , [ d . scrollbarFiller , d . gutterFiller , d . scroller ] , "CodeMirror" ) , nf && of < 8 && ( d . gutters . style . zIndex = - 1 , d . scroller . style . paddingRight = 0 ) , pf || kf && xf || ( d . scroller . draggable = ! 0 ) , a && ( a . appendChild ? a . appendChild ( d . wrapper ) : a ( d . wrapper ) ) , d . viewFrom = d . viewTo = b . first , d . reportedViewFrom = d . reportedViewTo = b . first , d . view = [ ] , d . renderedView = null , d . externalMeasured = null , d . viewOffset = 0 , d . lastWrapHeight = d . lastWrapWidth = 0 , d . updateLineNumbers = null , d . nativeBarWidth = d . barHeight = d . barWidth = 0 , d . scrollbarsClipped = ! 1 , d . lineNumWidth = d . lineNumInnerWidth = d . lineNumChars = null , d . alignWidgets = ! 1 , d . cachedCharWidth = d . cachedTextHeight = d . cachedPaddingH = null , d . maxLine = null , d . maxLineLength = 0 , d . maxLineChanged = ! 1 , d . wheelDX = d . wheelDY = d . wheelStartX = d . wheelStartY = null , d . shift = ! 1 , d . selForContextMenu = null , d . activeTouch = null , c . init ( d ) } function c ( b ) { b . doc . mode = a . getMode ( b . options , b . doc . modeOption ) , d ( b ) } function d ( a ) { a . doc . iter ( function ( a ) { a . stateAfter && ( a . stateAfter = null ) , a . styles && ( a . styles = null ) } ) , a . doc . frontier = a . doc . first , Ma ( a , 100 ) , a . state . modeGen ++ , a . curOp && Ib ( a ) } function e ( a ) { a . options . lineWrapping ? ( Rg ( a . display . wrapper , "CodeMirror-wrap" ) , a . display . sizer . style . minWidth = "" , a . display . sizerWidth = null ) : ( Qg ( a . display . wrapper , "CodeMirror-wrap" ) , m ( a ) ) , g ( a ) , Ib ( a ) , gb ( a ) , setTimeout ( function ( ) { s ( a ) } , 100 ) } function f ( a ) { var b = rb ( a . display ) , c = a . options . lineWrapping , d = c && Math . max ( 5 , a . display . scroller . clientWidth / sb ( a . display ) - 3 ) ; return function ( e ) { if ( sd ( a . doc , e ) ) return 0 ; var f = 0 ; if ( e . widgets ) for ( var g = 0 ; g < e . widgets . length ; g ++ ) e . widgets [ g ] . height && ( f += e . widgets [ g ] . height ) ; return c ? f + ( Math . ceil ( e . text . length / d ) || 1 ) * b : f + b } } function g ( a ) { var b = a . doc , c = f ( a ) ; b . iter ( function ( a ) { var b = c ( a ) ; b != a . height && Yd ( a , b ) } ) } function h ( a ) { a . display . wrapper . className = a . display . wrapper . className . replace ( /\s*cm-s-\S+/g , "" ) + a . options . theme . replace ( /(^|\s)\s*/g , " cm-s-" ) , gb ( a ) } function i ( a ) { j ( a ) , Ib ( a ) , setTimeout ( function ( ) { v ( a ) } , 20 ) } function j ( a ) { var b = a . display . gutters , c = a . options . gutters ; Ne ( b ) ; for ( var d = 0 ; d < c . length ; ++ d ) { var e = c [ d ] , f = b . appendChild ( Me ( "div" , null , "CodeMirror-gutter " + e ) ) ; "CodeMirror-linenumbers" == e && ( a . display . lineGutter = f , f . style . width = ( a . display . lineNumWidth || 1 ) + "px" ) } b . style . display = d ? "" : "none" , k ( a ) } function k ( a ) { var b = a . display . gutters . offsetWidth ; a . display . sizer . style . marginLeft = b + "px" } function l ( a ) { if ( 0 == a . height ) return 0 ; for ( var b , c = a . text . length , d = a ; b = ld ( d ) ; ) { var e = b . find ( 0 , ! 0 ) ; d = e . from . line , c += e . from . ch - e . to . ch } for ( d = a ; b = md ( d ) ; ) { var e = b . find ( 0 , ! 0 ) ; c -= d . text . length - e . from . ch , d = e . to . line , c += d . text . length - e . to . ch } return c } function m ( a ) { var b = a . display , c = a . doc ; b . maxLine = Vd ( c , c . first ) , b . maxLineLength = l ( b . maxLine ) , b . maxLineChanged = ! 0 , c . iter ( function ( a ) { var c = l ( a ) ; c > b . maxLineLength && ( b . maxLineLength = c , b . maxLine = a ) } ) } function n ( a ) { var b = De ( a . gutters , "CodeMirror-linenumbers" ) ; b == - 1 && a . lineNumbers ? a . gutters = a . gutters . concat ( [ "CodeMirror-linenumbers" ] ) : b > - 1 && ! a . lineNumbers && ( a . gutters = a . gutters . slice ( 0 ) , a . gutters . splice ( b , 1 ) ) } function o ( a ) { var b = a . display , c = b . gutters . offsetWidth , d = Math . round ( a . doc . height + Ra ( a . display ) ) ; return { clientHeight : b . scroller . clientHeight , viewHeight : b . wrapper . clientHeight , scrollWidth : b . scroller . scrol
c . top += f , c . bottom += f } if ( "line" == d ) return c ; d || ( d = "local" ) ; var g = _d ( b ) ; if ( "local" == d ? g += Qa ( a . display ) : g -= a . display . viewOffset , "page" == d || "window" == d ) { var h = a . display . lineSpace . getBoundingClientRect ( ) ; g += h . top + ( "window" == d ? 0 : ib ( ) ) ; var i = h . left + ( "window" == d ? 0 : hb ( ) ) ; c . left += i , c . right += i } return c . top += g , c . bottom += g , c } function kb ( a , b , c ) { if ( "div" == c ) return b ; var d = b . left , e = b . top ; if ( "page" == c ) d -= hb ( ) , e -= ib ( ) ; else if ( "local" == c || ! c ) { var f = a . display . sizer . getBoundingClientRect ( ) ; d += f . left , e += f . top } var g = a . display . lineSpace . getBoundingClientRect ( ) ; return { left : d - g . left , top : e - g . top } } function lb ( a , b , c , d , e ) { return d || ( d = Vd ( a . doc , b . line ) ) , jb ( a , d , Za ( a , d , b . ch , e ) , c ) } function mb ( a , b , c , d , e , f ) { function g ( b , g ) { var h = ab ( a , e , b , g ? "right" : "left" , f ) ; return g ? h . left = h . right : h . right = h . left , jb ( a , d , h , c ) } function h ( a , b ) { var c = i [ b ] , d = c . level % 2 ; return a == Ze ( c ) && b && c . level < i [ b - 1 ] . level ? ( c = i [ -- b ] , a = $e ( c ) - ( c . level % 2 ? 0 : 1 ) , d = ! 0 ) : a == $e ( c ) && b < i . length - 1 && c . level < i [ b + 1 ] . level && ( c = i [ ++ b ] , a = Ze ( c ) - c . level % 2 , d = ! 1 ) , d && a == c . to && a > c . from ? g ( a - 1 ) : g ( a , d ) } d = d || Vd ( a . doc , b . line ) , e || ( e = _a ( a , d ) ) ; var i = ae ( d ) , j = b . ch ; if ( ! i ) return g ( j ) ; var k = ff ( i , j ) , l = h ( j , k ) ; return null != Zg && ( l . other = h ( j , Zg ) ) , l } function nb ( a , b ) { var c = 0 , b = qa ( a . doc , b ) ; a . options . lineWrapping || ( c = sb ( a . display ) * b . ch ) ; var d = Vd ( a . doc , b . line ) , e = _d ( d ) + Qa ( a . display ) ; return { left : c , right : c , top : e , bottom : e + d . height } } function ob ( a , b , c , d ) { var e = Ff ( a , b ) ; return e . xRel = d , c && ( e . outside = ! 0 ) , e } function pb ( a , b , c ) { var d = a . doc ; if ( c += a . display . viewOffset , c < 0 ) return ob ( d . first , 0 , ! 0 , - 1 ) ; var e = $d ( d , c ) , f = d . first + d . size - 1 ; if ( e > f ) return ob ( d . first + d . size - 1 , Vd ( d , f ) . text . length , ! 0 , 1 ) ; b < 0 && ( b = 0 ) ; for ( var g = Vd ( d , e ) ; ; ) { var h = qb ( a , g , e , b , c ) , i = md ( g ) , j = i && i . find ( 0 , ! 0 ) ; if ( ! i || ! ( h . ch > j . from . ch || h . ch == j . from . ch && h . xRel > 0 ) ) return h ; e = Zd ( g = j . to . line ) } } function qb ( a , b , c , d , e ) { function f ( d ) { var e = mb ( a , Ff ( c , d ) , "line" , b , j ) ; return h = ! 0 , g > e . bottom ? e . left - i : g < e . top ? e . left + i : ( h = ! 1 , e . left ) } var g = e - _d ( b ) , h = ! 1 , i = 2 * a . display . wrapper . clientWidth , j = _a ( a , b ) , k = ae ( b ) , l = b . text . length , m = _e ( b ) , n = af ( b ) , o = f ( m ) , p = h , q = f ( n ) , r = h ; if ( d > q ) return ob ( c , n , r , 1 ) ; for ( ; ; ) { if ( k ? n == m || n == hf ( b , m , 1 ) : n - m <= 1 ) { for ( var s = d < o || d - o <= q - d ? m : n , t = d - ( s == m ? o : q ) ; Le ( b . text . charAt ( s ) ) ; ) ++ s ; var u = ob ( c , s , s == m ? p : r , t < - 1 ? - 1 : t > 1 ? 1 : 0 ) ; return u } var v = Math . ceil ( l / 2 ) , w = m + v ; if ( k ) { w = m ; for ( var x = 0 ; x < v ; ++ x ) w = hf ( b , w , 1 ) } var y = f ( w ) ; y > d ? ( n = w , q = y , ( r = h ) && ( q += 1e3 ) , l = v ) : ( m = w , o = y , p = h , l -= v ) } } function rb ( a ) { if ( null != a . cachedTextHeight ) return a . cachedTextHeight ; if ( null == If ) { If = Me ( "pre" ) ; for ( var b = 0 ; b < 49 ; ++ b ) If . appendChild ( document . createTextNode ( "x" ) ) , If . appendChild ( Me ( "br" ) ) ; If . appendChild ( document . createTextNode ( "x" ) ) } Oe ( a . measure , If ) ; var c = If . offsetHeight / 50 ; return c > 3 && ( a . cachedTextHeight = c ) , Ne ( a . measure ) , c || 1 } function sb ( a ) { if ( null != a . cachedCharWidth ) return a . cachedCharWidth ; var b = Me ( "span" , "xxxxxxxxxx" ) , c = Me ( "pre" , [ b ] ) ; Oe ( a . measure , c ) ; var d = b . getBoundingClientRect ( ) , e = ( d . right - d . left ) / 10 ; return e > 2 && ( a . cachedCharWidth = e ) , e || 10 } function tb ( a ) { a . curOp = { cm : a , viewChanged : ! 1 , startHeight : a . doc . height , forceUpdate : ! 1 , updateInput : null , typing : ! 1 , changeObjs : null , cursorActivityHandlers : null , cursorActivityCalled : 0 , selectionChanged : ! 1 , updateMaxLine : ! 1 , scrollLeft : null , scrollTop : null , scrollToPos : null , focus : ! 1 , id : ++ Nf } , Mf ? Mf . ops . push ( a . curOp ) : a . curOp . ownsGroup = Mf = { ops : [ a . curOp ] , delayedCallbacks : [ ] } } function ub ( a ) { var b = a . delayedCallbacks , c = 0 ; do { for ( ; c < b . length ; c ++ ) b [ c ] ( ) ; for ( var d = 0 ; d < a . ops . length ; d ++ ) { var e = a . ops [ d ] ; if ( e . cursorActivityHandlers ) for ( ; e . cursorActivityCalled < e . cursorActivityHandlers . length ; ) e . cursorActivityHandlers [ e . cursorActivityCalled ++ ] ( e . cm ) } } while ( c < b . length ) } function vb ( a ) { var b = a . curOp , c = b . ownsGroup ; if ( c ) try { ub ( c ) } finally { Mf = null ; for ( var d = 0 ; d < c . ops . length ; d ++ ) c . ops [ d ] . cm . curOp = null ; wb ( c ) } } function wb ( a ) { for ( var b = a . ops , c = 0 ; c < b . length ; c ++ ) xb ( b [ c ] ) ; for ( var c = 0 ; c < b . length ; c ++ ) yb ( b [ c ] ) ; for ( var c = 0 ; c < b . length ; c ++ ) zb ( b [ c ] ) ; for ( var c = 0 ; c < b . length ; c ++ ) Ab ( b [ c ] ) ; for ( var c = 0 ; c < b . length ; c ++ ) Bb ( b [ c ] ) } function xb ( a ) { var b = a . cm , c = b . display ; A ( b ) , a . updateMaxLine && m ( b ) , a . mustUpdate = a . viewChanged || a . forceUpdate || null != a . scrollTop || a . scrollToPos && ( a . scrollToPos . from . line < c . viewFrom || a . scrollToPos . to . line >= c . viewTo ) || c . maxLineChanged && b . options . line
Ef = ! 0 } f . addToHistory && fe ( a , { from : b , to : c , origin : "markText" } , a . sel , NaN ) ; var h , i = b . line , j = a . cm ; if ( a . iter ( i , c . line + 1 , function ( a ) { j && f . collapsed && ! j . options . lineWrapping && od ( a ) == j . display . maxLine && ( h = ! 0 ) , f . collapsed && i != b . line && Yd ( a , 0 ) , $c ( a , new Xc ( f , i == b . line ? b . ch : null , i == c . line ? c . ch : null ) ) , ++ i } ) , f . collapsed && a . iter ( b . line , c . line + 1 , function ( b ) { sd ( a , b ) && Yd ( b , 0 ) } ) , f . clearOnEnter && xg ( f , "beforeCursorEnter" , function ( ) { f . clear ( ) } ) , f . readOnly && ( Df = ! 0 , ( a . history . done . length || a . history . undone . length ) && a . clearHistory ( ) ) , f . collapsed && ( f . id = ++ jg , f . atomic = ! 0 ) , j ) { if ( h && ( j . curOp . updateMaxLine = ! 0 ) , f . collapsed ) Ib ( j , b . line , c . line + 1 ) ; else if ( f . className || f . title || f . startStyle || f . endStyle || f . css ) for ( var k = b . line ; k <= c . line ; k ++ ) Jb ( j , k , "text" ) ; f . atomic && Ea ( j . doc ) , te ( j , "markerAdded" , j , f ) } return f } function Tc ( a , b , c , d , e ) { d = He ( d ) , d . shared = ! 1 ; var f = [ Sc ( a , b , c , d , e ) ] , g = f [ 0 ] , h = d . widgetNode ; return Td ( a , function ( a ) { h && ( d . widgetNode = h . cloneNode ( ! 0 ) ) , f . push ( Sc ( a , qa ( a , b ) , qa ( a , c ) , d , e ) ) ; for ( var i = 0 ; i < a . linked . length ; ++ i ) if ( a . linked [ i ] . isParent ) return ; g = Ce ( f ) } ) , new lg ( f , g ) } function Uc ( a ) { return a . findMarks ( Ff ( a . first , 0 ) , a . clipPos ( Ff ( a . lastLine ( ) ) ) , function ( a ) { return a . parent } ) } function Vc ( a , b ) { for ( var c = 0 ; c < b . length ; c ++ ) { var d = b [ c ] , e = d . find ( ) , f = a . clipPos ( e . from ) , g = a . clipPos ( e . to ) ; if ( Gf ( f , g ) ) { var h = Sc ( a , f , g , d . primary , d . primary . type ) ; d . markers . push ( h ) , h . parent = d } } } function Wc ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] , d = [ c . primary . doc ] ; Td ( c . primary . doc , function ( a ) { d . push ( a ) } ) ; for ( var e = 0 ; e < c . markers . length ; e ++ ) { var f = c . markers [ e ] ; De ( d , f . doc ) == - 1 && ( f . parent = null , c . markers . splice ( e -- , 1 ) ) } } } function Xc ( a , b , c ) { this . marker = a , this . from = b , this . to = c } function Yc ( a , b ) { if ( a ) for ( var c = 0 ; c < a . length ; ++ c ) { var d = a [ c ] ; if ( d . marker == b ) return d } } function Zc ( a , b ) { for ( var c , d = 0 ; d < a . length ; ++ d ) a [ d ] != b && ( c || ( c = [ ] ) ) . push ( a [ d ] ) ; return c } function $c ( a , b ) { a . markedSpans = a . markedSpans ? a . markedSpans . concat ( [ b ] ) : [ b ] , b . marker . attachLine ( a ) } function _c ( a , b , c ) { if ( a ) for ( var d , e = 0 ; e < a . length ; ++ e ) { var f = a [ e ] , g = f . marker , h = null == f . from || ( g . inclusiveLeft ? f . from <= b : f . from < b ) ; if ( h || f . from == b && "bookmark" == g . type && ( ! c || ! f . marker . insertLeft ) ) { var i = null == f . to || ( g . inclusiveRight ? f . to >= b : f . to > b ) ; ( d || ( d = [ ] ) ) . push ( new Xc ( g , f . from , i ? null : f . to ) ) } } return d } function ad ( a , b , c ) { if ( a ) for ( var d , e = 0 ; e < a . length ; ++ e ) { var f = a [ e ] , g = f . marker , h = null == f . to || ( g . inclusiveRight ? f . to >= b : f . to > b ) ; if ( h || f . from == b && "bookmark" == g . type && ( ! c || f . marker . insertLeft ) ) { var i = null == f . from || ( g . inclusiveLeft ? f . from <= b : f . from < b ) ; ( d || ( d = [ ] ) ) . push ( new Xc ( g , i ? null : f . from - b , null == f . to ? null : f . to - b ) ) } } return d } function bd ( a , b ) { if ( b . full ) return null ; var c = sa ( a , b . from . line ) && Vd ( a , b . from . line ) . markedSpans , d = sa ( a , b . to . line ) && Vd ( a , b . to . line ) . markedSpans ; if ( ! c && ! d ) return null ; var e = b . from . ch , f = b . to . ch , g = 0 == Gf ( b . from , b . to ) , h = _c ( c , e , g ) , i = ad ( d , f , g ) , j = 1 == b . text . length , k = Ce ( b . text ) . length + ( j ? e : 0 ) ; if ( h ) for ( var l = 0 ; l < h . length ; ++ l ) { var m = h [ l ] ; if ( null == m . to ) { var n = Yc ( i , m . marker ) ; n ? j && ( m . to = null == n . to ? null : n . to + k ) : m . to = e } } if ( i ) for ( var l = 0 ; l < i . length ; ++ l ) { var m = i [ l ] ; if ( null != m . to && ( m . to += k ) , null == m . from ) { var n = Yc ( h , m . marker ) ; n || ( m . from = k , j && ( h || ( h = [ ] ) ) . push ( m ) ) } else m . from += k , j && ( h || ( h = [ ] ) ) . push ( m ) } h && ( h = cd ( h ) ) , i && i != h && ( i = cd ( i ) ) ; var o = [ h ] ; if ( ! j ) { var p , q = b . text . length - 2 ; if ( q > 0 && h ) for ( var l = 0 ; l < h . length ; ++ l ) null == h [ l ] . to && ( p || ( p = [ ] ) ) . push ( new Xc ( h [ l ] . marker , null , null ) ) ; for ( var l = 0 ; l < q ; ++ l ) o . push ( p ) ; o . push ( i ) } return o } function cd ( a ) { for ( var b = 0 ; b < a . length ; ++ b ) { var c = a [ b ] ; null != c . from && c . from == c . to && c . marker . clearWhenEmpty !== ! 1 && a . splice ( b -- , 1 ) } return a . length ? a : null } function dd ( a , b ) { var c = le ( a , b ) , d = bd ( a , b ) ; if ( ! c ) return d ; if ( ! d ) return c ; for ( var e = 0 ; e < c . length ; ++ e ) { var f = c [ e ] , g = d [ e ] ; if ( f && g ) a : for ( var h = 0 ; h < g . length ; ++ h ) { for ( var i = g [ h ] , j = 0 ; j < f . length ; ++ j ) if ( f [ j ] . marker == i . marker ) continue a ; f . push ( i ) } else g && ( c [ e ] = g ) } return c } function ed ( a , b , c ) { var d = null ; if ( a . iter ( b . line , c . line + 1 , function ( a ) { if ( a . markedSpans ) for ( var b = 0 ; b < a . markedSpans . length ; ++ b ) { var c = a . markedSpans [ b ] . marker ; ! c . readOnly || d && De ( d , c ) != - 1 || ( d || ( d = [ ] ) ) . push ( c ) } } ) , ! d ) return null ; for ( var e = [ { from : b , to : c } ] , f = 0 ; f < d . length ; ++ f ) for ( var g = d [ f ] , h = g . find ( 0 ) , i = 0 ; i < e . length ; ++ i ) { var j = e [ i ] ; if ( ! ( Gf ( j . to , h . from ) < 0 || Gf ( j . from , h
} , onKeyPress : function ( ) { nf && of >= 9 && ( this . hasSelection = null ) , this . fastPoll ( ) } , onContextMenu : function ( a ) { function b ( ) { if ( null != g . selectionStart ) { var a = e . somethingSelected ( ) , b = " " + ( a ? g . value : "" ) ; g . value = "⇚" , g . value = b , d . prevInput = a ? "" : " " , g . selectionStart = 1 , g . selectionEnd = b . length , f . selForContextMenu = e . doc . sel } } function c ( ) { if ( d . contextMenuPending = ! 1 , d . wrapper . style . position = "relative" , g . style . cssText = k , nf && of < 9 && f . scrollbars . setScrollTop ( f . scroller . scrollTop = i ) , null != g . selectionStart ) { ( ! nf || nf && of < 9 ) && b ( ) ; var a = 0 , c = function ( ) { f . selForContextMenu == e . doc . sel && 0 == g . selectionStart && g . selectionEnd > 0 && " " == d . prevInput ? Db ( e , dg . selectAll ) ( e ) : a ++ < 10 ? f . detectingSelectAll = setTimeout ( c , 500 ) : f . input . reset ( ) } ; f . detectingSelectAll = setTimeout ( c , 200 ) } } var d = this , e = d . cm , f = e . display , g = d . textarea , h = Tb ( e , a ) , i = f . scroller . scrollTop ; if ( h && ! sf ) { var j = e . options . resetSelectionOnContextMenu ; j && e . doc . sel . contains ( h ) == - 1 && Db ( e , Ba ) ( e . doc , oa ( h ) , Dg ) ; var k = g . style . cssText ; if ( d . wrapper . style . position = "absolute" , g . style . cssText = "position: fixed; width: 30px; height: 30px; top: " + ( a . clientY - 5 ) + "px; left: " + ( a . clientX - 5 ) + "px; z-index: 1000; background: " + ( nf ? "rgba(255, 255, 255, .05)" : "transparent" ) + "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);" , pf ) var l = window . scrollY ; if ( f . input . focus ( ) , pf && window . scrollTo ( null , l ) , f . input . reset ( ) , e . somethingSelected ( ) || ( g . value = d . prevInput = " " ) , d . contextMenuPending = ! 0 , f . selForContextMenu = e . doc . sel , clearTimeout ( f . detectingSelectAll ) , nf && of >= 9 && b ( ) , Cf ) { wg ( a ) ; var m = function ( ) { yg ( window , "mouseup" , m ) , setTimeout ( c , 20 ) } ; xg ( window , "mouseup" , m ) } else setTimeout ( c , 50 ) } } , setUneditable : Fe , needsContentAttribute : ! 1 } , da . prototype ) , fa . prototype = He ( { init : function ( a ) { function b ( a ) { if ( d . somethingSelected ( ) ) Hf = d . getSelections ( ) , "cut" == a . type && d . replaceSelection ( "" , null , "cut" ) ; else { if ( ! d . options . lineWiseCopyCut ) return ; var b = ba ( d ) ; Hf = b . text , "cut" == a . type && d . operation ( function ( ) { d . setSelections ( b . ranges , 0 , Dg ) , d . replaceSelection ( "" , null , "cut" ) } ) } if ( a . clipboardData && ! wf ) a . preventDefault ( ) , a . clipboardData . clearData ( ) , a . clipboardData . setData ( "text/plain" , Hf . join ( "\n" ) ) ; else { var c = ea ( ) , e = c . firstChild ; d . display . lineSpace . insertBefore ( c , d . display . lineSpace . firstChild ) , e . value = Hf . join ( "\n" ) ; var f = document . activeElement ; Ig ( e ) , setTimeout ( function ( ) { d . display . lineSpace . removeChild ( c ) , f . focus ( ) } , 50 ) } } var c = this , d = c . cm , e = c . div = a . lineDiv ; e . contentEditable = "true" , ca ( e ) , xg ( e , "paste" , function ( a ) { _ ( a , d ) } ) , xg ( e , "compositionstart" , function ( a ) { var b = a . data ; if ( c . composing = { sel : d . doc . sel , data : b , startData : b } , b ) { var e = d . doc . sel . primary ( ) , f = d . getLine ( e . head . line ) , g = f . indexOf ( b , Math . max ( 0 , e . head . ch - b . length ) ) ; g > - 1 && g <= e . head . ch && ( c . composing . sel = oa ( Ff ( e . head . line , g ) , Ff ( e . head . line , g + b . length ) ) ) } } ) , xg ( e , "compositionupdate" , function ( a ) { c . composing . data = a . data } ) , xg ( e , "compositionend" , function ( a ) { var b = c . composing ; b && ( a . data == b . startData || /\u200b/ . test ( a . data ) || ( b . data = a . data ) , setTimeout ( function ( ) { b . handled || c . applyComposition ( b ) , c . composing == b && ( c . composing = null ) } , 50 ) ) } ) , xg ( e , "touchstart" , function ( ) { c . forceCompositionEnd ( ) } ) , xg ( e , "input" , function ( ) { c . composing || c . pollContent ( ) || Cb ( c . cm , function ( ) { Ib ( d ) } ) } ) , xg ( e , "copy" , b ) , xg ( e , "cut" , b ) } , prepareSelection : function ( ) { var a = Ia ( this . cm , ! 1 ) ; return a . focus = this . cm . state . focused , a } , showSelection : function ( a ) { a && this . cm . display . view . length && ( a . focus && this . showPrimarySelection ( ) , this . showMultipleSelections ( a ) ) } , showPrimarySelection : function ( ) { var a = window . getSelection ( ) , b = this . cm . doc . sel . primary ( ) , c = ia ( this . cm , a . anchorNode , a . anchorOffset ) , d = ia ( this . cm , a . focusNode , a . focusOffset ) ; if ( ! c || c . bad || ! d || d . bad || 0 != Gf ( X ( c , d ) , b . from ( ) ) || 0 != Gf ( W ( c , d ) , b . to ( ) ) ) { var e = ga ( this . cm , b . from ( ) ) , f = ga ( this . cm , b . to ( ) ) ; if ( e || f ) { var g = this . cm . display . view , h = a . rangeCount && a . getRangeAt ( 0 ) ; if ( e ) { if ( ! f ) { var i = g [ g . length - 1 ] . measure , j = i . maps ? i . maps [ i . maps . length - 1 ] : i . map ; f = { node : j [ j . length - 1 ] , offset : j [ j . length - 2 ] - j [ j . length - 3 ] } } } else e = { node : g [ 0 ] . measure . map [ 2 ] , offset : 0 } ; try { var k = Jg ( e . node , e . offset , f . offset , f . node ) } catch ( l ) { } k && ( a . removeAllRanges ( ) , a . addRange ( k ) , h && null == a . anchorNode ? a . addRange ( h ) : kf &
this . lastColumnPos = this . start ) , this . lastColumnValue - ( this . lineStart ? Gg ( this . string , this . lineStart , this . tabSize ) : 0 ) } , indentation : function ( ) { return Gg ( this . string , null , this . tabSize ) - ( this . lineStart ? Gg ( this . string , this . lineStart , this . tabSize ) : 0 ) } , match : function ( a , b , c ) { if ( "string" != typeof a ) { var d = this . string . slice ( this . pos ) . match ( a ) ; return d && d . index > 0 ? null : ( d && b !== ! 1 && ( this . pos += d [ 0 ] . length ) , d ) } var e = function ( a ) { return c ? a . toLowerCase ( ) : a } , f = this . string . substr ( this . pos , a . length ) ; if ( e ( f ) == e ( a ) ) return b !== ! 1 && ( this . pos += a . length ) , ! 0 } , current : function ( ) { return this . string . slice ( this . start , this . pos ) } , hideFirstChars : function ( a , b ) { this . lineStart += a ; try { return b ( ) } finally { this . lineStart -= a } } } ; var jg = 0 , kg = a . TextMarker = function ( a , b ) { this . lines = [ ] , this . type = b , this . doc = a , this . id = ++ jg } ; ye ( kg ) , kg . prototype . clear = function ( ) { if ( ! this . explicitlyCleared ) { var a = this . doc . cm , b = a && ! a . curOp ; if ( b && tb ( a ) , xe ( this , "clear" ) ) { var c = this . find ( ) ; c && te ( this , "clear" , c . from , c . to ) } for ( var d = null , e = null , f = 0 ; f < this . lines . length ; ++ f ) { var g = this . lines [ f ] , h = Yc ( g . markedSpans , this ) ; a && ! this . collapsed ? Jb ( a , Zd ( g ) , "text" ) : a && ( null != h . to && ( e = Zd ( g ) ) , null != h . from && ( d = Zd ( g ) ) ) , g . markedSpans = Zc ( g . markedSpans , h ) , null == h . from && this . collapsed && ! sd ( this . doc , g ) && a && Yd ( g , rb ( a . display ) ) } if ( a && this . collapsed && ! a . options . lineWrapping ) for ( var f = 0 ; f < this . lines . length ; ++ f ) { var i = od ( this . lines [ f ] ) , j = l ( i ) ; j > a . display . maxLineLength && ( a . display . maxLine = i , a . display . maxLineLength = j , a . display . maxLineChanged = ! 0 ) } null != d && a && this . collapsed && Ib ( a , d , e + 1 ) , this . lines . length = 0 , this . explicitlyCleared = ! 0 , this . atomic && this . doc . cantEdit && ( this . doc . cantEdit = ! 1 , a && Ea ( a . doc ) ) , a && te ( a , "markerCleared" , a , this ) , b && vb ( a ) , this . parent && this . parent . clear ( ) } } , kg . prototype . find = function ( a , b ) { null == a && "bookmark" == this . type && ( a = 1 ) ; for ( var c , d , e = 0 ; e < this . lines . length ; ++ e ) { var f = this . lines [ e ] , g = Yc ( f . markedSpans , this ) ; if ( null != g . from && ( c = Ff ( b ? f : Zd ( f ) , g . from ) , a == - 1 ) ) return c ; if ( null != g . to && ( d = Ff ( b ? f : Zd ( f ) , g . to ) , 1 == a ) ) return d } return c && { from : c , to : d } } , kg . prototype . changed = function ( ) { var a = this . find ( - 1 , ! 0 ) , b = this , c = this . doc . cm ; a && c && Cb ( c , function ( ) { var d = a . line , e = Zd ( a . line ) , f = $a ( c , e ) ; if ( f && ( eb ( f ) , c . curOp . selectionChanged = c . curOp . forceUpdate = ! 0 ) , c . curOp . updateMaxLine = ! 0 , ! sd ( b . doc , d ) && null != b . height ) { var g = b . height ; b . height = null ; var h = vd ( b ) - g ; h && Yd ( d , d . height + h ) } } ) } , kg . prototype . attachLine = function ( a ) { if ( ! this . lines . length && this . doc . cm ) { var b = this . doc . cm . curOp ; b . maybeHiddenMarkers && De ( b . maybeHiddenMarkers , this ) != - 1 || ( b . maybeUnhiddenMarkers || ( b . maybeUnhiddenMarkers = [ ] ) ) . push ( this ) } this . lines . push ( a ) } , kg . prototype . detachLine = function ( a ) { if ( this . lines . splice ( De ( this . lines , a ) , 1 ) , ! this . lines . length && this . doc . cm ) { var b = this . doc . cm . curOp ; ( b . maybeHiddenMarkers || ( b . maybeHiddenMarkers = [ ] ) ) . push ( this ) } } ; var jg = 0 , lg = a . SharedTextMarker = function ( a , b ) { this . markers = a , this . primary = b ; for ( var c = 0 ; c < a . length ; ++ c ) a [ c ] . parent = this } ; ye ( lg ) , lg . prototype . clear = function ( ) { if ( ! this . explicitlyCleared ) { this . explicitlyCleared = ! 0 ; for ( var a = 0 ; a < this . markers . length ; ++ a ) this . markers [ a ] . clear ( ) ; te ( this , "clear" ) } } , lg . prototype . find = function ( a , b ) { return this . primary . find ( a , b ) } ; var mg = a . LineWidget = function ( a , b , c ) { if ( c ) for ( var d in c ) c . hasOwnProperty ( d ) && ( this [ d ] = c [ d ] ) ; this . doc = a , this . node = b } ; ye ( mg ) , mg . prototype . clear = function ( ) { var a = this . doc . cm , b = this . line . widgets , c = this . line , d = Zd ( c ) ; if ( null != d && b ) { for ( var e = 0 ; e < b . length ; ++ e ) b [ e ] == this && b . splice ( e -- , 1 ) ; b . length || ( c . widgets = null ) ; var f = vd ( this ) ; Yd ( c , Math . max ( 0 , c . height - f ) ) , a && Cb ( a , function ( ) { ud ( a , c , - f ) , Jb ( a , d , "widget" ) } ) } } , mg . prototype . changed = function ( ) { var a = this . height , b = this . doc . cm , c = this . line ; this . height = null ; var d = vd ( this ) - a ; d && ( Yd ( c , c . height + d ) , b && Cb ( b , function ( ) { b . curOp . forceUpdate = ! 0 , ud ( b , c , d ) } ) ) } ; var ng = a . Line = function ( a , b , c ) { this . text = a , gd ( this , b ) , this . height = c ? c ( this ) : 1 } ; ye ( ng ) , ng . prototype . lineNo = function ( ) { return Zd ( this ) } ; var og = { } , pg = { } ; Rd . prototype = { chunkSize : function ( ) { return this . lines . length } , removeInner : function ( a , b ) { for ( var c = a , d = a + b ; c < d ; ++ c ) { var e = this . lines [ c ] ; this . height -= e . height , yd ( e ) , te ( e , "delete" ) } this . lines . splice ( a , b ) } , collapse : function ( a ) { a . push . apply ( a , this . lines ) } , insertInner :
lineWrapping : ! 0 , lineNumbers : ! 1 , mode : "formula" , specialChars : /[\u0000-\u001f\u007f\u00ad\u200c-\u200f\u2028\u2029\ufeff]/ } ) , 1 === a . lineHeight ? this . element . addClass ( "codemirror-low-line-height" ) : this . element . addClass ( "codemirror-high-line-height" ) , this . editor . on ( "change" , function ( c , d ) { b . _checkWaterMark ( ) , a . showHint && CodeMirror . showHint ( c , CodeMirror . formulaHint , { completeSingle : ! 1 } ) , BI . nextTick ( function ( ) { b . fireEvent ( BI . FormulaEditor . EVENT _CHANGE ) } ) } ) , this . editor . on ( "focus" , function ( ) { b . _checkWaterMark ( ) , b . fireEvent ( BI . FormulaEditor . EVENT _FOCUS ) } ) , this . editor . on ( "blur" , function ( ) { b . fireEvent ( BI . FormulaEditor . EVENT _BLUR ) } ) , BI . isKey ( a . value ) && b . setValue ( a . value ) , BI . isKey ( this . options . watermark ) ) { var b = this ; this . watermark = BI . createWidget ( { type : "bi.label" , cls : "bi-water-mark" , text : this . options . watermark , whiteSpace : "nowrap" , textAlign : "left" } ) , BI . createWidget ( { type : "bi.absolute" , element : b , items : [ { el : b . watermark , left : 0 , top : 0 } ] } ) , this . watermark . element . bind ( "mousedown" , function ( a ) { b . insertString ( "" ) , b . editor . focus ( ) , a . stopEvent ( ) } ) , this . watermark . element . bind ( "click" , function ( a ) { b . editor . focus ( ) , a . stopEvent ( ) } ) , this . watermark . element . css ( { position : "absolute" , left : 3 , right : 3 , top : 6 , bottom : 0 } ) } } , _checkWaterMark : function ( ) { var a = this . options ; ! this . disabledWaterMark && BI . isEmptyString ( this . editor . getValue ( ) ) && BI . isKey ( a . watermark ) ? this . watermark && this . watermark . visible ( ) : this . watermark && this . watermark . invisible ( ) } , disableWaterMark : function ( ) { this . disabledWaterMark = ! 0 , this . _checkWaterMark ( ) } , focus : function ( ) { this . editor . focus ( ) } , insertField : function ( a ) { var b = this . editor . getCursor ( ) ; this . editor . replaceSelection ( " " + a + " " ) ; var c = this . editor . getCursor ( ) ; this . editor . markText ( b , c , { className : "fieldName" , atomic : ! 0 , startStyle : "start" , endStyle : "end" } ) , this . editor . replaceSelection ( " " ) , this . editor . focus ( ) } , insertFunction : function ( a ) { var b = this . editor . getCursor ( ) ; this . editor . replaceSelection ( a ) ; var c = this . editor . getCursor ( ) ; this . editor . markText ( b , c , { className : "#function" , atomic : ! 0 } ) , this . editor . replaceSelection ( "() " ) , c = this . editor . getCursor ( ) , c . ch = c . ch - 2 , this . editor . setCursor ( c ) , this . editor . focus ( ) } , insertOperator : function ( a ) { var b = this . editor . getCursor ( ) ; this . editor . replaceSelection ( a ) ; var c = this . editor . getCursor ( ) ; this . editor . markText ( b , c , { className : "%operator" , atomic : ! 0 } ) , this . editor . replaceSelection ( " " ) , this . editor . focus ( ) } , setFunction : function ( a ) { var b = this . editor . getCursor ( ) ; this . editor . replaceSelection ( a ) ; var c = this . editor . getCursor ( ) ; this . editor . markText ( b , c , { className : "#function" , atomic : ! 0 } ) } , insertString : function ( a ) { this . editor . replaceSelection ( a ) , this . editor . focus ( ) } , getFormulaString : function ( ) { return this . editor . getValue ( ) } , getUsedFields : function ( ) { var a = this . options . fieldTextValueMap , b = [ ] ; return this . editor . getValue ( ! 0 , function ( c ) { var d = c . text ; _ . forEach ( c . markedSpans , function ( c , e ) { switch ( c . marker . className ) { case "fieldName" : var f = a [ d . substr ( c . from + 1 , c . to - c . from - 2 ) ] ; b . contains ( f ) || b . push ( f ) } } ) } ) , b } , getCheckString : function ( ) { return this . editor . getValue ( ! 0 , function ( a ) { var b = a . text , c = a . text , d = 0 ; return c . text = b , _ . forEach ( a . markedSpans , function ( a , b ) { switch ( a . marker . className ) { case "fieldName" : var e = a . to - a . from ; c = c . substr ( 0 , a . from + d ) + "$a" + c . substr ( a . to + d , c . length ) , d = d + 2 - e } } ) , c } ) } , getValue : function ( ) { var a = this . options . fieldTextValueMap ; return this . editor . getValue ( "\n" , function ( b ) { var c = b . text , d = b . text , e = 0 ; return d . text = c , _ . forEach ( b . markedSpans , function ( b , c ) { switch ( b . marker . className ) { case "fieldName" : var f = b . to - b . from , g = b . from + e + 1 , h = f - 2 , i = a [ d . substr ( g , h ) ] ; d = d . substr ( 0 , b . from + e ) + "${" + i + "}" + d . substr ( b . to + e , d . length ) , e += i . length - f + 3 } } ) , d } ) } , setValue : function ( a ) { this . editor . setValue ( a ) } , setFieldTextValueMap : function ( a ) { this . options . fieldTextValueMap = a } , refresh : function ( ) { var a = this ; BI . nextTick ( function ( ) { a . editor . refresh ( ) } ) } } ) , BI . FormulaEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . FormulaEditor . EVENT _BLUR = "EVENT_BLUR" , BI . FormulaEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . shortcut ( "bi.formula_editor" , BI . FormulaEditor ) , $ . extend ( BI , { Msg : function ( ) { var a , b , c ; return { alert : function ( a , b , c ) { this . _show ( ! 1 , a , b , c ) } , confirm : function ( a , b , c ) { this . _show ( ! 0 , a , b , c ) } , prompt : func
type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } ) , BI . isNumber ( a . height ) && a . height > 0 && BI . isNull ( a . iconWidth ) && BI . isNull ( a . iconHeight ) ? ( this . element . css ( "lineHeight" , a . height + "px" ) , BI . createWidget ( { type : "bi.default" , element : this , items : [ this . icon ] } ) ) : BI . createWidget ( { element : this , type : "bi.center_adapt" , items : [ this . icon ] } ) } , doClick : function ( ) { BI . IconButton . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconButton . EVENT _CHANGE , this ) } } ) , BI . IconButton . EVENT _CHANGE = "IconButton.EVENT_CHANGE" , BI . shortcut ( "bi.icon_button" , BI . IconButton ) , BI . ImageButton = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . ImageButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-image-button" , src : "" , iconWidth : "100%" , iconHeight : "100%" } ) } , _init : function ( ) { BI . ImageButton . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . image = BI . createWidget ( { type : "bi.img" , width : a . iconWidth , height : a . iconHeight , src : a . src } ) , BI . isNumber ( a . iconWidth ) || BI . isNumber ( a . iconHeight ) ? BI . createWidget ( { type : "bi.center_adapt" , element : this , items : [ this . image ] } ) : BI . createWidget ( { type : "bi.adaptive" , element : this , items : [ this . image ] , scrollable : ! 1 } ) } , setWidth : function ( a ) { BI . ImageButton . superclass . setWidth . apply ( this , arguments ) , this . options . width = a } , setHeight : function ( a ) { BI . ImageButton . superclass . setHeight . apply ( this , arguments ) , this . options . height = a } , setImageWidth : function ( a ) { this . image . setWidth ( a ) } , setImageHeight : function ( a ) { this . image . setHeight ( a ) } , getImageWidth : function ( ) { return this . image . element . width ( ) } , getImageHeight : function ( ) { return this . image . element . height ( ) } , setSrc : function ( a ) { this . options . src = a , this . image . setSrc ( a ) } , getSrc : function ( ) { return this . image . getSrc ( ) } , doClick : function ( ) { BI . ImageButton . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . ImageButton . EVENT _CHANGE , this ) } } ) , BI . ImageButton . EVENT _CHANGE = "ImageButton.EVENT_CHANGE" , BI . shortcut ( "bi.image_button" , BI . ImageButton ) , function ( a ) { BI . Button = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( a ) { var b = BI . Button . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( b , { baseCls : ( b . baseCls || "" ) + " bi-button" , minWidth : a . block === ! 0 || a . clear === ! 0 ? 0 : 80 , shadow : a . clear !== ! 0 , isShadowShowingOnSelected : ! 0 , readonly : ! 0 , iconCls : "" , level : "common" , block : ! 1 , clear : ! 1 , ghost : ! 1 , textAlign : "center" , whiteSpace : "nowrap" , forceCenter : ! 1 , textWidth : null , textHeight : null , hgap : a . clear ? 0 : 10 , vgap : 0 , tgap : 0 , bgap : 0 , lgap : 0 , rgap : 0 } ) } , _init : function ( ) { BI . Button . superclass . _init . apply ( this , arguments ) ; var a = this . options ; ! BI . isNumber ( a . height ) || a . clear || a . block ? this . element . css ( { lineHeight : a . height + "px" } ) : this . element . css ( { height : a . height + "px" , lineHeight : a . height + "px" } ) , BI . isKey ( a . iconCls ) ? ( this . icon = BI . createWidget ( { type : "bi.icon" , width : 18 } ) , this . text = BI . createWidget ( { type : "bi.label" , text : a . text , value : a . value } ) , BI . createWidget ( { type : "bi.horizontal_auto" , cls : a . iconCls , element : this , hgap : a . hgap , vgap : a . vgap , tgap : a . tgap , bgap : a . bgap , lgap : a . lgap , rgap : a . rgap , items : [ { type : "bi.horizontal" , items : [ this . icon , this . text ] } ] } ) ) : this . text = BI . createWidget ( { type : "bi.label" , textAlign : a . textAlign , whiteSpace : a . whiteSpace , forceCenter : a . forceCenter , textWidth : a . textWidth , textHeight : a . textHeight , hgap : a . hgap , vgap : a . vgap , tgap : a . tgap , bgap : a . bgap , lgap : a . lgap , rgap : a . rgap , element : this , text : a . text , value : a . value } ) , a . block === ! 0 && this . element . addClass ( "block" ) , a . clear === ! 0 && this . element . addClass ( "clear" ) , a . ghost === ! 0 && this . element . addClass ( "ghost" ) , a . minWidth > 0 && this . element . css ( { "min-width" : a . minWidth + "px" } ) } , doClick : function ( ) { BI . Button . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . Button . EVENT _CHANGE , this ) } , setText : function ( a ) { BI . Button . superclass . setText . apply ( this , arguments ) , this . text . setText ( a ) } , setValue : function ( a ) { BI . Button . superclass . setValue . apply ( this , arguments ) , this . isReadOnly ( ) || this . text . setValue ( a ) } , 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 : fu
b && b . element . fadeOut ( 100 , function ( ) { b . element . fadeIn ( 100 ) } ) , a . fireEvent ( BI . Editor . EVENT _RESTRICT , arguments ) } ) , this . editor . on ( BI . Input . EVENT _EMPTY , function ( ) { a . _checkWaterMark ( ) , a . fireEvent ( BI . Editor . EVENT _EMPTY , arguments ) } ) , this . editor . on ( BI . Input . EVENT _ENTER , function ( ) { a . fireEvent ( BI . Editor . EVENT _ENTER , arguments ) } ) , this . editor . on ( BI . Input . EVENT _SPACE , function ( ) { a . fireEvent ( BI . Editor . EVENT _SPACE , arguments ) } ) , this . editor . on ( BI . Input . EVENT _BACKSPACE , function ( ) { a . fireEvent ( BI . Editor . EVENT _BACKSPACE , arguments ) } ) , this . editor . on ( BI . Input . EVENT _REMOVE , function ( ) { a . fireEvent ( BI . Editor . EVENT _REMOVE , arguments ) } ) , this . editor . on ( BI . Input . EVENT _START , function ( ) { a . fireEvent ( BI . Editor . EVENT _START , arguments ) } ) , this . editor . on ( BI . Input . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . Editor . EVENT _PAUSE , arguments ) } ) , this . editor . on ( BI . Input . EVENT _STOP , function ( ) { a . fireEvent ( BI . Editor . EVENT _STOP , arguments ) } ) , this . editor . on ( BI . Input . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . Editor . EVENT _CONFIRM , arguments ) } ) , this . element . click ( function ( a ) { return a . stopPropagation ( ) , ! 1 } ) , BI . isKey ( this . options . value ) || BI . isEmptyString ( this . options . value ) ? ( this . _checkError ( ) , this . _checkWaterMark ( ) ) : this . _checkWaterMark ( ) } , _checkToolTip : function ( ) { var a = this . options , b = a . errorText ; BI . isFunction ( b ) && ( b = b ( this . editor . getValue ( ) ) ) , BI . isKey ( b ) && ( ! this . isEnabled ( ) || this . isValid ( ) || BI . Bubbles . has ( this . getName ( ) ) && BI . Bubbles . get ( this . getName ( ) ) . isVisible ( ) ? this . setTitle ( "" ) : this . setTitle ( b ) ) } , _checkError : function ( ) { this . setErrorVisible ( this . isEnabled ( ) && ! this . isValid ( ) ) , this . _checkToolTip ( ) } , _checkWaterMark : function ( ) { var a = this . options ; ! this . disabledWaterMark && "" === this . editor . getValue ( ) && BI . isKey ( a . watermark ) ? this . watermark && this . watermark . visible ( ) : this . watermark && this . watermark . invisible ( ) } , setErrorText : function ( a ) { this . options . errorText = a } , getErrorText : function ( ) { return this . options . errorText } , setErrorVisible : function ( a ) { var b = this . options , c = b . errorText ; if ( BI . isFunction ( c ) && ( c = c ( this . editor . getValue ( ) ) ) , ! this . disabledError && BI . isKey ( c ) ) return BI . Bubbles [ a ? "show" : "hide" ] ( this . getName ( ) , c , this ) , this . _checkToolTip ( ) , BI . Bubbles . get ( this . getName ( ) ) } , disableError : function ( ) { this . disabledError = ! 0 , this . _checkError ( ) } , enableError : function ( ) { this . disabledError = ! 1 , this . _checkError ( ) } , disableWaterMark : function ( ) { this . disabledWaterMark = ! 0 , this . _checkWaterMark ( ) } , enableWaterMark : function ( ) { this . disabledWaterMark = ! 1 , this . _checkWaterMark ( ) } , focus : function ( ) { this . element . addClass ( "text-editor-focus" ) , this . editor . focus ( ) } , blur : function ( ) { this . element . removeClass ( "text-editor-focus" ) , this . editor . blur ( ) } , selectAll : function ( ) { this . editor . selectAll ( ) } , onKeyDown : function ( a ) { this . editor . onKeyDown ( a ) } , setValue : function ( a ) { BI . Editor . superclass . setValue . apply ( this , arguments ) , this . editor . setValue ( a ) , this . _checkError ( ) , this . _checkWaterMark ( ) } , getLastValidValue : function ( ) { return this . editor . getLastValidValue ( ) } , resetLastValidValue : function ( ) { this . editor . resetLastValidValue ( ) } , getValue : function ( ) { return this . isValid ( ) ? BI . trim ( this . editor . getValue ( ) ) : BI . trim ( this . editor . getLastValidValue ( ) ) } , isEditing : function ( ) { return this . editor . isEditing ( ) } , isValid : function ( ) { return this . editor . isValid ( ) } } ) , BI . Editor . EVENT _CHANGE = "EVENT_CHANGE" , BI . Editor . EVENT _FOCUS = "EVENT_FOCUS" , BI . Editor . EVENT _BLUR = "EVENT_BLUR" , BI . Editor . EVENT _CLICK = "EVENT_CLICK" , BI . Editor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . Editor . EVENT _SPACE = "EVENT_SPACE" , BI . Editor . EVENT _BACKSPACE = "EVENT_BACKSPACE" , BI . Editor . EVENT _START = "EVENT_START" , BI . Editor . EVENT _PAUSE = "EVENT_PAUSE" , BI . Editor . EVENT _STOP = "EVENT_STOP" , BI . Editor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . Editor . EVENT _VALID = "EVENT_VALID" , BI . Editor . EVENT _ERROR = "EVENT_ERROR" , BI . Editor . EVENT _ENTER = "EVENT_ENTER" , BI . Editor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . Editor . EVENT _REMOVE = "EVENT_REMOVE" , BI . Editor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.editor" , BI . Editor ) , BI . MultifileEditor = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . MultifileEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-multifile-editor" , multiple : ! 1 , maxSize : - 1 , accept : "" , url : "" } ) } , _init : functio
vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap , element : this , items : [ { el : this . text = BI . createWidget ( b ) } ] } ) ) : BI . isNumber ( a . textWidth ) && a . textWidth > 0 ? ( b . width = a . textWidth , void BI . createWidget ( { type : "bi.vertical_adapt" , scrollable : "normal" === a . whiteSpace , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap , element : this , items : [ { el : this . text = BI . createWidget ( b ) } ] } ) ) : "normal" == a . whiteSpace ? ( this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.vertical_adapt" , scrollable : "normal" === a . whiteSpace , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap , element : this , items : [ this . text ] } ) ) : BI . isNumber ( a . height ) && a . height > 0 ? BI . isNumber ( a . textHeight ) && a . textHeight > 0 ? ( this . element . css ( { "line-height" : a . height + "px" } ) , void BI . createWidget ( { type : "bi.adaptive" , height : a . height , scrollable : "normal" === a . whiteSpace , element : this , items : [ { el : this . text = BI . createWidget ( b ) , left : a . hgap + a . lgap , right : a . hgap + a . rgap , top : a . vgap + a . tgap , bottom : a . vgap + a . bgap } ] } ) ) : ( BI . extend ( b , { hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) , this . element . css ( { "line-height" : a . height + "px" } ) , this . text = BI . createWidget ( BI . extend ( b , { element : this } ) ) , void BI . createWidget ( { type : "bi.layout" , element : this . text , scrollable : "normal" === a . whiteSpace } ) ) : ( BI . extend ( b , { hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) , a . forceCenter ? ( this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.vertical_adapt" , element : this , items : [ this . text ] } ) ) : ( this . text = BI . createWidget ( BI . extend ( b , { element : this } ) ) , void BI . createWidget ( { type : "bi.layout" , element : this . text , scrollable : "normal" === a . whiteSpace } ) ) ) } , 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 ) } , setText : function ( a ) { this . options . text = a , this . text . setText ( a ) } , getText : function ( ) { return this . options . text } , setStyle : function ( a ) { this . text . setStyle ( a ) } , setValue : function ( a ) { BI . Label . superclass . setValue . apply ( this , arguments ) , this . isReadOnly ( ) || this . text . setValue ( a ) } , populate : function ( ) { BI . Label . superclass . populate . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.label" , BI . Label ) , BI . Link = BI . inherit ( BI . Label , { _defaultConfig : function ( ) { var a = BI . Link . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-link" , href : "" , target : "_blank" } ) } , _createJson : function ( ) { var a = this . options ; return { type : "bi.a" , textAlign : a . textAlign , whiteSpace : a . whiteSpace , lineHeight : a . textHeight , text : a . text , keyword : a . keyword , value : a . value , py : a . py , href : a . href , target : a . target } } , _init : function ( ) { BI . Link . superclass . _init . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.link" , BI . Link ) , BI . Bubble = BI . inherit ( BI . Tip , { _defaultConfig : function ( ) { return BI . extend ( BI . Bubble . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-bubble" , direction : "top" , text : "" , level : "error" , height : 35 } ) } , _init : function ( ) { BI . Bubble . superclass . _init . apply ( this , arguments ) ; var a = function ( a ) { return a . stopPropagation ( ) , a . stopEvent ( ) , ! 1 } ; this . element . bind ( { click : a , mousedown : a , mouseup : a , mouseover : a , mouseenter : a , mouseleave : a , mousemove : a } ) , BI . createWidget ( { type : "bi.left" , element : this , items : [ this [ "_" + this . options . direction ] ( ) ] } ) } , _createBubbleText : function ( ) { var a = this . options ; return this . text = BI . createWidget ( { type : "bi.label" , cls : "bubble-text bubble-" + a . level , text : a . text , hgap : 10 , height : 30 } ) } , _top : function ( ) { return BI . createWidget ( { type : "bi.vertical" , items : [ { el : this . _createBubbleText ( ) , height : 30 } , { el : { type : "bi.layout" } , height : 3 } ] } ) } , _bottom : function ( ) { return BI . createWidget ( { type : "bi.vertical" , items : [ { el : { type : "bi.layout" } , height : 3 } , { el : this . _createBubbleText ( ) , height : 30 } ] } ) } , _left : function ( ) { return BI . createWidget ( { type : "bi.right" , items : [ { el : { type : "bi.layout" , width : 3 , height : 30 } } , { el : this . _createBubbleText ( ) } ] } ) } , _right : function ( ) { return BI . createWidget ( { type : "bi.left" , items : [ { el : { type : "bi.layout" , width : 3 , height : 30 } } , { el : this . _createBubbleText ( ) } ] } ) } , setText : function ( a ) { this . text . setT
"VML" == b . type ) { var qa , ra = z . doc . createElement ( "div" ) ; if ( ra . innerHTML = '<v:shape adj="1"/>' , qa = ra . firstChild , qa . style . behavior = "url(#default#VML)" , ! qa || "object" != typeof qa . adj ) return b . type = F ; ra = null } b . svg = ! ( b . vml = "VML" == b . type ) , b . _Paper = B , b . fn = u = B . prototype = b . prototype , b . _id = 0 , b . _oid = 0 , b . is = function ( a , b ) { return b = L . call ( b ) , "finite" == b ? ! X [ y ] ( + a ) : "array" == b ? a instanceof Array : "null" == b && null === a || b == typeof a && null !== a || "object" == b && a === Object ( a ) || "array" == b && Array . isArray && Array . isArray ( a ) || V . call ( a ) . slice ( 8 , - 1 ) . toLowerCase ( ) == b } , b . angle = function ( a , c , d , e , f , g ) { if ( null == f ) { var h = a - d , i = c - e ; return h || i ? ( 180 + 180 * M . atan2 ( - i , - h ) / R + 360 ) % 360 : 0 } return b . angle ( a , c , f , g ) - b . angle ( d , e , f , g ) } , b . rad = function ( a ) { return a % 360 * R / 180 } , b . deg = function ( a ) { return Math . round ( 180 * a / R % 360 * 1e3 ) / 1e3 } , b . snapTo = function ( a , c , d ) { if ( d = b . is ( d , "finite" ) ? d : 10 , b . is ( a , U ) ) { for ( var e = a . length ; e -- ; ) if ( P ( a [ e ] - c ) <= d ) return a [ e ] } else { a = + a ; var f = c % a ; if ( f < d ) return c - f ; if ( f > a - d ) return c - f + a } return c } ; b . createUUID = function ( a , b ) { return function ( ) { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" . replace ( a , b ) . toUpperCase ( ) } } ( /[xy]/g , function ( a ) { var b = 16 * M . random ( ) | 0 , c = "x" == a ? b : 3 & b | 8 ; return c . toString ( 16 ) } ) ; b . setWindow = function ( c ) { a ( "raphael.setWindow" , b , z . win , c ) , z . win = c , z . doc = z . win . document , b . _engine . initWin && b . _engine . initWin ( z . win ) } ; var sa = function ( a ) { if ( b . vml ) { var c , d = /^\s+|\s+$/g ; try { var f = new ActiveXObject ( "htmlfile" ) ; f . write ( "<body>" ) , f . close ( ) , c = f . body } catch ( g ) { c = createPopup ( ) . document . body } var h = c . createTextRange ( ) ; sa = e ( function ( a ) { try { c . style . color = H ( a ) . replace ( d , F ) ; var b = h . queryCommandValue ( "ForeColor" ) ; return b = ( 255 & b ) << 16 | 65280 & b | ( 16711680 & b ) >>> 16 , "#" + ( "000000" + b . toString ( 16 ) ) . slice ( - 6 ) } catch ( e ) { return "none" } } ) } else { var i = z . doc . createElement ( "i" ) ; i . title = "Raphaël Colour Picker" , i . style . display = "none" , z . doc . body . appendChild ( i ) , sa = e ( function ( a ) { return i . style . color = a , z . doc . defaultView . getComputedStyle ( i , F ) . getPropertyValue ( "color" ) } ) } return sa ( a ) } , ta = function ( ) { return "hsb(" + [ this . h , this . s , this . b ] + ")" } , ua = function ( ) { return "hsl(" + [ this . h , this . s , this . l ] + ")" } , va = function ( ) { return this . hex } , wa = function ( a , c , d ) { if ( null == c && b . is ( a , "object" ) && "r" in a && "g" in a && "b" in a && ( d = a . b , c = a . g , a = a . r ) , null == c && b . is ( a , T ) ) { var e = b . getRGB ( a ) ; a = e . r , c = e . g , d = e . b } return ( a > 1 || c > 1 || d > 1 ) && ( a /= 255 , c /= 255 , d /= 255 ) , [ a , c , d ] } , xa = function ( a , c , d , e ) { a *= 255 , c *= 255 , d *= 255 ; var f = { r : a , g : c , b : d , hex : b . rgb ( a , c , d ) , toString : va } ; return b . is ( e , "finite" ) && ( f . opacity = e ) , f } ; b . color = function ( a ) { var c ; return b . is ( a , "object" ) && "h" in a && "s" in a && "b" in a ? ( c = b . hsb2rgb ( a ) , a . r = c . r , a . g = c . g , a . b = c . b , a . hex = c . hex ) : b . is ( a , "object" ) && "h" in a && "s" in a && "l" in a ? ( c = b . hsl2rgb ( a ) , a . r = c . r , a . g = c . g , a . b = c . b , a . hex = c . hex ) : ( b . is ( a , "string" ) && ( a = b . getRGB ( a ) ) , b . is ( a , "object" ) && "r" in a && "g" in a && "b" in a ? ( c = b . rgb2hsl ( a ) , a . h = c . h , a . s = c . s , a . l = c . l , c = b . rgb2hsb ( a ) , a . v = c . b ) : ( a = { hex : "none" } , a . r = a . g = a . b = a . h = a . s = a . v = a . l = - 1 ) ) , a . toString = va , a } , b . hsb2rgb = function ( a , b , c , d ) { this . is ( a , "object" ) && "h" in a && "s" in a && "b" in a && ( c = a . b , b = a . s , d = a . o , a = a . h ) , a *= 360 ; var e , f , g , h , i ; return a = a % 360 / 60 , i = c * b , h = i * ( 1 - P ( a % 2 - 1 ) ) , e = f = g = c - i , a = ~ ~ a , e += [ i , h , 0 , 0 , h , i ] [ a ] , f += [ h , i , i , h , 0 , 0 ] [ a ] , g += [ 0 , 0 , h , i , i , h ] [ a ] , xa ( e , f , g , d ) } , b . hsl2rgb = function ( a , b , c , d ) { this . is ( a , "object" ) && "h" in a && "s" in a && "l" in a && ( c = a . l , b = a . s , a = a . h ) , ( a > 1 || b > 1 || c > 1 ) && ( a /= 360 , b /= 100 , c /= 100 ) , a *= 360 ; var e , f , g , h , i ; return a = a % 360 / 60 , i = 2 * b * ( c < . 5 ? c : 1 - c ) , h = i * ( 1 - P ( a % 2 - 1 ) ) , e = f = g = c - i / 2 , a = ~ ~ a , e += [ i , h , 0 , 0 , h , i ] [ a ] , f += [ h , i , i , h , 0 , 0 ] [ a ] , g += [ 0 , 0 , h , i , i , h ] [ a ] , xa ( e , f , g , d ) } , b . rgb2hsb = function ( a , b , c ) { c = wa ( a , b , c ) , a = c [ 0 ] , b = c [ 1 ] , c = c [ 2 ] ; var d , e , f , g ; return f = N ( a , b , c ) , g = f - O ( a , b , c ) , d = 0 == g ? null : f == a ? ( b - c ) / g : f == b ? ( c - a ) / g + 2 : ( a - b ) / g + 4 , d = ( d + 360 ) % 6 * 60 / 360 , e = 0 == g ? 0 : g / f , { h : d , s : e , b : f , toString : ta } } , b . rgb2hsl = function ( a , b , c ) { c = wa ( a , b , c ) , a = c [ 0 ] , b = c [ 1 ] , c = c [ 2 ] ; var d , e , f , g , h , i ; return g = N ( a , b , c ) , h = O ( a , b , c ) , i = g - h , d = 0 == i ? null : g == a ? ( b - c ) / i : g == b ? ( c - a ) / i + 2 : ( a - b ) / i + 4 , d = ( d + 360 ) % 6 * 60 / 360 , f = ( g + h ) / 2 , e = 0 == i ? 0 : f < . 5 ? i / ( 2 * f ) : i / ( 2 - 2 * f ) , { h : d , s : e , l : f , toString : ua } } , b . _path2string = function ( ) { return this . join ( "," ) . replace ( fa , "$1" ) } ; b . _preload = function ( a , b ) { var c = z . doc . createElement ( "img" ) ; c . style . cssText = "position:absolute;left:-9999em;top:-9999em" , c . onload = function ( ) { b . call ( this ) , this . onload = nul
break ; case "path" : f = [ ] ; for ( var t = 0 , u = k [ s ] . length ; t < u ; t ++ ) { f [ t ] = [ k [ s ] [ t ] [ 0 ] ] ; for ( var v = 1 , w = k [ s ] [ t ] . length ; v < w ; v ++ ) f [ t ] [ v ] = + k [ s ] [ t ] [ v ] + q * i * l [ s ] [ t ] [ v ] ; f [ t ] = f [ t ] . join ( G ) } f = f . join ( G ) ; break ; case "transform" : if ( l [ s ] . real ) for ( f = [ ] , t = 0 , u = k [ s ] . length ; t < u ; t ++ ) for ( f [ t ] = [ k [ s ] [ t ] [ 0 ] ] , v = 1 , w = k [ s ] [ t ] . length ; v < w ; v ++ ) f [ t ] [ v ] = k [ s ] [ t ] [ v ] + q * i * l [ s ] [ t ] [ v ] ; else { var x = function ( a ) { return + k [ s ] [ a ] + q * i * l [ s ] [ a ] } ; f = [ [ "m" , x ( 0 ) , x ( 1 ) , x ( 2 ) , x ( 3 ) , x ( 4 ) , x ( 5 ) ] ] } break ; case "csv" : if ( "clip-rect" == s ) for ( f = [ ] , t = 4 ; t -- ; ) f [ t ] = + k [ s ] [ t ] + q * i * l [ s ] [ t ] ; break ; default : var z = [ ] [ D ] ( k [ s ] ) ; for ( f = [ ] , t = n . paper . customAttributes [ s ] . length ; t -- ; ) f [ t ] = + z [ t ] + q * i * l [ s ] [ t ] } o [ s ] = f } n . attr ( o ) , function ( b , c , d ) { setTimeout ( function ( ) { a ( "raphael.anim.frame." + b , c , d ) } ) } ( n . id , n , e . anim ) } else { if ( function ( c , d , e ) { setTimeout ( function ( ) { a ( "raphael.anim.frame." + d . id , d , e ) , a ( "raphael.anim.finish." + d . id , d , e ) , b . is ( c , "function" ) && c . call ( d ) } ) } ( e . callback , n , e . anim ) , n . attr ( m ) , fb . splice ( d -- , 1 ) , e . repeat > 1 && ! e . next ) { for ( g in m ) m [ y ] ( g ) && ( p [ g ] = e . totalOrigin [ g ] ) ; e . el . attr ( p ) , r ( e . anim , e . el , e . anim . percents [ 0 ] , null , e . totalOrigin , e . repeat - 1 ) } e . next && ! e . stop && r ( e . anim , e . el , e . next , null , e . totalOrigin , e . repeat ) } } } fb . length && gb ( hb ) } , ib = function ( a ) { return a > 255 ? 255 : a < 0 ? 0 : a } ; Xa . animateWith = function ( a , c , d , e , f , g ) { var h = this ; if ( h . removed ) return g && g . call ( h ) , h ; var i = d instanceof q ? d : b . animation ( d , e , f , g ) ; r ( i , h , i . percents [ 0 ] , null , h . attr ( ) ) ; for ( var j = 0 , k = fb . length ; j < k ; j ++ ) if ( fb [ j ] . anim == c && fb [ j ] . el == a ) { fb [ k - 1 ] . start = fb [ j ] . start ; break } return h } , Xa . onAnimation = function ( b ) { return b ? a . on ( "raphael.anim.frame." + this . id , b ) : a . unbind ( "raphael.anim.frame." + this . id ) , this } , q . prototype . delay = function ( a ) { var b = new q ( this . anim , this . ms ) ; return b . times = this . times , b . del = + a || 0 , b } , q . prototype . repeat = function ( a ) { var b = new q ( this . anim , this . ms ) ; return b . del = this . del , b . times = M . floor ( N ( a , 0 ) ) || 1 , b } , b . animation = function ( a , c , d , e ) { if ( a instanceof q ) return a ; ! b . is ( d , "function" ) && d || ( e = e || d || null , d = null ) , a = Object ( a ) , c = + c || 0 ; var f , g , h = { } ; for ( g in a ) a [ y ] ( g ) && $ ( g ) != g && $ ( g ) + "%" != g && ( f = ! 0 , h [ g ] = a [ g ] ) ; if ( f ) return d && ( h . easing = d ) , e && ( h . callback = e ) , new q ( { 100 : h } , c ) ; if ( e ) { var i = 0 ; for ( var j in a ) { var k = _ ( j ) ; a [ y ] ( j ) && k > i && ( i = k ) } i += "%" , ! a [ i ] . callback && ( a [ i ] . callback = e ) } return new q ( a , c ) } , Xa . animate = function ( a , c , d , e ) { var f = this ; if ( f . removed ) return e && e . call ( f ) , f ; var g = a instanceof q ? a : b . animation ( a , c , d , e ) ; return r ( g , f , g . percents [ 0 ] , null , f . attr ( ) ) , f } , Xa . setTime = function ( a , b ) { return a && null != b && this . status ( a , O ( b , a . ms ) / a . ms ) , this } , Xa . status = function ( a , b ) { var c , d , e = [ ] , f = 0 ; if ( null != b ) return r ( a , this , - 1 , O ( b , 1 ) ) , this ; for ( c = fb . length ; f < c ; f ++ ) if ( d = fb [ f ] , d . el . id == this . id && ( ! a || d . anim == a ) ) { if ( a ) return d . status ; e . push ( { anim : d . anim , status : d . status } ) } return a ? 0 : e } , Xa . pause = function ( b ) { for ( var c = 0 ; c < fb . length ; c ++ ) fb [ c ] . el . id != this . id || b && fb [ c ] . anim != b || a ( "raphael.anim.pause." + this . id , this , fb [ c ] . anim ) !== ! 1 && ( fb [ c ] . paused = ! 0 ) ; return this } , Xa . resume = function ( b ) { for ( var c = 0 ; c < fb . length ; c ++ ) if ( fb [ c ] . el . id == this . id && ( ! b || fb [ c ] . anim == b ) ) { var d = fb [ c ] ; a ( "raphael.anim.resume." + this . id , this , d . anim ) !== ! 1 && ( delete d . paused , this . status ( d . anim , d . status ) ) } return this } , Xa . stop = function ( b ) { for ( var c = 0 ; c < fb . length ; c ++ ) fb [ c ] . el . id != this . id || b && fb [ c ] . anim != b || a ( "raphael.anim.stop." + this . id , this , fb [ c ] . anim ) !== ! 1 && fb . splice ( c -- , 1 ) ; return this } , a . on ( "raphael.remove" , s ) , a . on ( "raphael.clear" , s ) , Xa . toString = function ( ) { return "Raphaël’s object" } ; var jb = function ( a ) { if ( this . items = [ ] , this . length = 0 , this . type = "set" , a ) for ( var b = 0 , c = a . length ; b < c ; b ++ ) ! a [ b ] || a [ b ] . constructor != Xa . constructor && a [ b ] . constructor != jb || ( this [ this . items . length ] = this . items [ this . items . length ] = a [ b ] , this . length ++ ) } , kb = jb . prototype ; kb . push = function ( ) { for ( var a , b , c = 0 , d = arguments . length ; c < d ; c ++ ) a = arguments [ c ] , ! a || a . constructor != Xa . constructor && a . constructor != jb || ( b = this . items . length , this [ b ] = this . items [ b ] = a , this . length ++ ) ; return this } , kb . pop = function ( ) { return this . length && delete this [ this . length -- ] , this . items . pop ( ) } , kb . forEach = function ( a , b ) { for ( var c = 0 , d = this . items . length ; c < d ; c ++ ) if ( a . call ( b , this . items [ c ] , c ) === ! 1 ) return this ; return this } ; for ( var lb in Xa ) Xa [ y ] ( lb ) && ( kb [ lb ] = function ( a ) { return function ( ) { var b = arguments ; return this . forEach ( function ( c ) { c [ a ] [ C ] ( c , b ) } ) } } (
var O = ( ( + m [ "fill-opacity" ] + 1 || 2 ) - 1 ) * ( ( + m . opacity + 1 || 2 ) - 1 ) * ( ( + a . getRGB ( i . fill ) . o + 1 || 2 ) - 1 ) ; O = h ( g ( O , 0 ) , 1 ) , K . opacity = O , K . src && ( K . color = "none" ) } l . appendChild ( K ) ; var P = l . getElementsByTagName ( "stroke" ) && l . getElementsByTagName ( "stroke" ) [ 0 ] , Q = ! 1 ; ! P && ( Q = P = F ( "stroke" ) ) , ( i . stroke && "none" != i . stroke || i [ "stroke-width" ] || null != i [ "stroke-opacity" ] || i [ "stroke-dasharray" ] || i [ "stroke-miterlimit" ] || i [ "stroke-linejoin" ] || i [ "stroke-linecap" ] ) && ( P . on = ! 0 ) , ( "none" == i . stroke || null === i . stroke || null == P . on || 0 == i . stroke || 0 == i [ "stroke-width" ] ) && ( P . on = ! 1 ) ; var R = a . getRGB ( i . stroke ) ; P . on && i . stroke && ( P . color = R . hex ) , O = ( ( + m [ "stroke-opacity" ] + 1 || 2 ) - 1 ) * ( ( + m . opacity + 1 || 2 ) - 1 ) * ( ( + R . o + 1 || 2 ) - 1 ) ; var S = . 75 * ( d ( i [ "stroke-width" ] ) || 1 ) ; if ( O = h ( g ( O , 0 ) , 1 ) , null == i [ "stroke-width" ] && ( S = m [ "stroke-width" ] ) , i [ "stroke-width" ] && ( P . weight = S ) , S && S < 1 && ( O *= S ) && ( P . weight = 1 ) , P . opacity = O , i [ "stroke-linejoin" ] && ( P . joinstyle = i [ "stroke-linejoin" ] || "miter" ) , P . miterlimit = i [ "stroke-miterlimit" ] || 8 , i [ "stroke-linecap" ] && ( P . endcap = "butt" == i [ "stroke-linecap" ] ? "flat" : "square" == i [ "stroke-linecap" ] ? "square" : "round" ) , "stroke-dasharray" in i ) { var T = { "-" : "shortdash" , "." : "shortdot" , "-." : "shortdashdot" , "-.." : "shortdashdotdot" , ". " : "dot" , "- " : "dash" , "--" : "longdash" , "- ." : "dashdot" , "--." : "longdashdot" , "--.." : "longdashdotdot" } ; P . dashstyle = T [ b ] ( i [ "stroke-dasharray" ] ) ? T [ i [ "stroke-dasharray" ] ] : o } Q && l . appendChild ( P ) } if ( "text" == s . type ) { s . paper . canvas . style . display = o ; var U = s . paper . span , V = 100 , W = m . font && m . font . match ( /\d+(?:\.\d*)?(?=px)/ ) ; p = U . style , m . font && ( p . font = m . font ) , m [ "font-family" ] && ( p . fontFamily = m [ "font-family" ] ) , m [ "font-weight" ] && ( p . fontWeight = m [ "font-weight" ] ) , m [ "font-style" ] && ( p . fontStyle = m [ "font-style" ] ) , W = d ( m [ "font-size" ] || W && W [ 0 ] ) || 10 , p . fontSize = W * V + "px" , s . textpath . string && ( U . innerHTML = c ( s . textpath . string ) . replace ( /</g , "<" ) . replace ( /&/g , "&" ) . replace ( /\n/g , "<br>" ) ) ; var X = U . getBoundingClientRect ( ) ; s . W = m . w = ( X . right - X . left ) / V , s . H = m . h = ( X . bottom - X . top ) / V , s . X = m . x , s . Y = m . y + s . H / 2 , ( "x" in i || "y" in i ) && ( s . path . v = a . format ( "m{0},{1}l{2},{1}" , f ( m . x * u ) , f ( m . y * u ) , f ( m . x * u ) + 1 ) ) ; for ( var Y = [ "x" , "y" , "text" , "font" , "font-family" , "font-weight" , "font-style" , "font-size" ] , Z = 0 , $ = Y . length ; Z < $ ; Z ++ ) if ( Y [ Z ] in i ) { s . _ . dirty = 1 ; break } switch ( m [ "text-anchor" ] ) { case "start" : s . textpath . style [ "v-text-align" ] = "left" , s . bbx = s . W / 2 ; break ; case "end" : s . textpath . style [ "v-text-align" ] = "right" , s . bbx = - s . W / 2 ; break ; default : s . textpath . style [ "v-text-align" ] = "center" , s . bbx = 0 } s . textpath . style [ "v-text-kern" ] = ! 0 } } , C = function ( b , f , g ) { b . attrs = b . attrs || { } ; var h = ( b . attrs , Math . pow ) , i = "linear" , j = ".5 .5" ; if ( b . attrs . gradient = f , f = c ( f ) . replace ( a . _radial _gradient , function ( a , b , c ) { return i = "radial" , b && c && ( b = d ( b ) , c = d ( c ) , h ( b - . 5 , 2 ) + h ( c - . 5 , 2 ) > . 25 && ( c = e . sqrt ( . 25 - h ( b - . 5 , 2 ) ) * ( 2 * ( c > . 5 ) - 1 ) + . 5 ) , j = b + n + c ) , o } ) , f = f . split ( /\s*\-\s*/ ) , "linear" == i ) { var k = f . shift ( ) ; if ( k = - d ( k ) , isNaN ( k ) ) return null } var l = a . _parseDots ( f ) ; if ( ! l ) return null ; if ( b = b . shape || b . node , l . length ) { b . removeChild ( g ) , g . on = ! 0 , g . method = "none" , g . color = l [ 0 ] . color , g . color2 = l [ l . length - 1 ] . color ; for ( var m = [ ] , p = 0 , q = l . length ; p < q ; p ++ ) l [ p ] . offset && m . push ( l [ p ] . offset + n + l [ p ] . color ) ; g . colors = m . length ? m . join ( ) : "0% " + g . color , "radial" == i ? ( g . type = "gradientTitle" , g . focus = "100%" , g . focussize = "0 0" , g . focusposition = j , g . angle = 0 ) : ( g . type = "gradient" , g . angle = ( 270 - k ) % 360 ) , b . appendChild ( g ) } return 1 } , D = function ( b , c ) { this [ 0 ] = this . node = b , b . raphael = ! 0 , this . id = a . _oid ++ , b . raphaelid = this . id , this . X = 0 , this . Y = 0 , this . attrs = { } , this . paper = c , this . matrix = a . matrix ( ) , this . _ = { transform : [ ] , sx : 1 , sy : 1 , dx : 0 , dy : 0 , deg : 0 , dirty : 1 , dirtyT : 1 } , ! c . bottom && ( c . bottom = this ) , this . prev = c . top , c . top && ( c . top . next = this ) , c . top = this , this . next = null } , E = a . el ; D . prototype = E , E . constructor = D , E . transform = function ( b ) { if ( null == b ) return this . _ . transform ; var d , e = this . paper . _viewBoxShift , f = e ? "s" + [ e . scale , e . scale ] + "-1-1t" + [ e . dx , e . dy ] : o ; e && ( d = b = c ( b ) . replace ( /\.{3}|\u2026/g , this . _ . transform || o ) ) , a . _extractTransform ( this , f + b ) ; var g , h = this . matrix . clone ( ) , i = this . skew , j = this . node , k = ~ c ( this . attrs . fill ) . indexOf ( "-" ) , l = ! c ( this . attrs . fill ) . indexOf ( "url(" ) ; if ( h . translate ( 1 , 1 ) , l || k || "image" == this . type ) if ( i . matrix = "1 0 0 1" , i . offset = "0 0" , g = h . split ( ) , k && g . noRotation || ! g . isSimple ) { j . style . filter = h . toFilter ( ) ; var m = this . getBB
} , _shouldHandleY : function ( a ) { return a > 0 ? this . bottomRightCollection . getScrollTop ( ) < this . bottomRightCollection . getMaxScrollTop ( ) : this . bottomRightCollection . getScrollTop ( ) > 0 } , _onWheelLeft : function ( a , b ) { var c = this , d = this . bottomLeftCollection . getScrollTop ( ) , e = this . bottomLeftCollection . getScrollLeft ( ) ; d += b , e += a , this . bottomLeftCollection . setScrollTop ( d ) , this . bottomRightCollection . setScrollTop ( d ) , this . topLeftCollection . setScrollLeft ( e ) , this . bottomLeftCollection . setScrollLeft ( e ) , c . _populateScrollbar ( ) , this . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } , _onWheelRight : function ( a , b ) { var c = this , d = this . bottomRightCollection . getScrollTop ( ) , e = this . bottomRightCollection . getScrollLeft ( ) ; d += b , e += a , this . bottomLeftCollection . setScrollTop ( d ) , this . bottomRightCollection . setScrollTop ( d ) , this . topRightCollection . setScrollLeft ( e ) , this . bottomRightCollection . setScrollLeft ( e ) , c . _populateScrollbar ( ) , this . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } , _populateTable : function ( ) { var a = this . options , b = this . getRegionSize ( ) , c = 0 , d = 0 , e = 0 , f = [ ] ; BI . each ( a . columnSize , function ( b , g ) { a . isNeedFreeze === ! 0 && a . freezeCols . contains ( b ) ? c += g : d += g , e += g , 0 === b ? f [ b ] = g : f [ b ] = f [ b - 1 ] + g } ) ; var g = b , h = this . _getFreezeHeaderHeight ( ) , i = this . _width - b , j = this . _getFreezeHeaderHeight ( ) , k = b , l = this . _height - h , m = this . _width - b , n = this . _height - j ; this . topLeft . setWidth ( g ) , this . topLeft . setHeight ( h ) , this . topRight . setWidth ( i ) , this . topRight . setHeight ( j ) , this . bottomLeft . setWidth ( k ) , this . bottomLeft . setHeight ( l ) , this . bottomRight . setWidth ( m ) , this . bottomRight . setHeight ( n ) , this . topLeftCollection . setWidth ( g ) , this . topLeftCollection . setHeight ( h ) , this . topRightCollection . setWidth ( i ) , this . topRightCollection . setHeight ( j ) , this . bottomLeftCollection . setWidth ( k ) , this . bottomLeftCollection . setHeight ( l ) , this . bottomRightCollection . setWidth ( m ) , this . bottomRightCollection . setHeight ( n ) ; var o = this . contextLayout . attr ( "items" ) ; o [ 1 ] . left = b , o [ 2 ] . top = this . _getFreezeHeaderHeight ( ) , o [ 3 ] . left = b , o [ 3 ] . top = this . _getFreezeHeaderHeight ( ) , this . contextLayout . attr ( "items" , o ) , this . contextLayout . resize ( ) ; var p = [ ] , q = [ ] , r = [ ] , s = [ ] , t = function ( a , b , c ) { BI . each ( a , function ( a , d ) { var e = { type : "bi.collection_table_cell" , cell : b [ d . row ] [ d . col ] } ; c . push ( e ) } ) } ; t ( this . topLeftItems , a . header , p ) , t ( this . topRightItems , a . header , q ) , t ( this . bottomLeftItems , this . _getActualItems ( ) , r ) , t ( this . bottomRightItems , this . _getActualItems ( ) , s ) , this . topLeftCollection . populate ( p ) , this . topRightCollection . populate ( q ) , this . bottomLeftCollection . populate ( r ) , this . bottomRightCollection . populate ( s ) } } ) , BI . shortcut ( "bi.quick_collection_table" , BI . QuickCollectionTable ) , BI . GridTableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . GridTableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-grid-table-cell bi-border-right bi-border-bottom" , width : 0 , height : 0 , _rowIndex : 0 , _columnIndex : 0 , _left : 0 , _top : 0 , cell : { } } ) } , _init : function ( ) { BI . GridTableCell . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . cell = BI . createWidget ( BI . extend ( { type : "bi.label" } , a . cell , { cls : ( a . cell . cls || "" ) + "grid-table-cell-wrapper" , width : a . width - ( 0 === a . _columnIndex ? 1 : 0 ) - 1 , height : a . height - ( 0 === a . _rowIndex ? 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 . GridTableCell . superclass . setWidth . apply ( this , arguments ) ; var b = this . options ; this . cell . setWidth ( b . width - ( 0 === b . _columnIndex ? 1 : 0 ) - 1 ) } , setHeight : function ( a ) { BI . GridTableCell . superclass . setHeight . apply ( this , arguments ) ; var b = this . options ; this . cell . setHeight ( b . height - ( 0 === b . _rowIndex ? 1 : 0 ) - 1 ) } } ) , BI . shortcut ( "bi.grid_table_cell" , BI . GridTableCell ) , BI . GridTable = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . GridTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-grid-table" , headerRowSize : 25 , rowSize : 25 , columnSize : [ ] , isNeedFreeze : ! 1 , freezeCols : [ ] , header : [ ] , items : [ ] , regionColumnSize : [ ] } ) } , render : function ( ) { var a = this , b = this . options ; this . _width = 0 , this . _height = 0 , this . _scrollBarSize = BI . DOM . getScrollWidth ( ) ; var c = function ( ) { return b . rowSize } , d = function ( a ) { return b . columnSize [ a ] } , e = function ( c ) { return b . columnSize [ c + a . _getFreezeColLength
"overflow-y" : "auto" } ) , ( a . scrollBottomLeft . element . hasHorizonScroll ( ) || a . scrollBottomRight . element . hasHorizonScroll ( ) ) && ( a . scrollBottomLeft . element . css ( "overflow-x" , "scroll" ) , a . scrollBottomRight . element . css ( "overflow-x" , "scroll" ) ) , a . scrollBottomRight . element . hasVerticalScroll ( ) ? a . scrollTopRight . element . css ( "overflow-y" , "scroll" ) : a . scrollTopRight . element . css ( "overflow-y" , "hidden" ) , a . scrollBottomLeft . element . hasVerticalScroll ( ) ? a . scrollTopLeft . element . css ( "overflow-y" , "scroll" ) : a . scrollTopLeft . element . css ( "overflow-y" , "hidden" ) , a . scrollTopLeft . element [ 0 ] . scrollLeft = a . scrollBottomLeft . element [ 0 ] . scrollLeft , a . scrollTopRight . element [ 0 ] . scrollLeft = a . scrollBottomRight . element [ 0 ] . scrollLeft , a . scrollBottomLeft . element [ 0 ] . scrollTop = a . scrollBottomRight . element [ 0 ] . scrollTop ) } ; var k = b . regionColumnSize ; 0 === b . freezeCols . length ? k = c ? [ "fill" , 0 ] : [ 0 , "fill" ] : b . freezeCols . length >= b . columnSize . length && ( k = c ? [ 0 , "fill" ] : [ "fill" , 0 ] ) , this . partitions = BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "table" , BI . extend ( { } , b . logic , { rows : 2 , columns : 2 , columnSize : k || ( c ? [ "fill" , j ] : [ j , "fill" ] ) , rowSize : [ i , "fill" ] , items : [ [ { el : this . topLeft } , { el : this . topRight } ] , [ { el : this . bottomLeft } , { el : this . bottomRight } ] ] } ) ) ) ) , this . _initFreezeScroll ( ) , BI . ResizeDetector . addResizeListener ( this , function ( ) { a . _resize ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _RESIZE ) } ) } , mounted : function ( ) { this . _resize && this . _resize ( ) , this . fireEvent ( BI . Table . EVENT _TABLE _AFTER _INIT ) } , _initFreezeScroll : function ( ) { function a ( a , c , d ) { a . scroll ( function ( e ) { d . scrollTop ( a . scrollTop ( ) ) , c . scrollLeft ( a . scrollLeft ( ) ) , b . fireEvent ( BI . Table . EVENT _TABLE _SCROLL ) } ) } var b = this ; this . options ; a ( this . scrollBottomRight . element , this . scrollTopRight . element , this . scrollBottomLeft . element ) } , resize : function ( ) { this . _resize && this . _resize ( ) } , _createCells : function ( a , b , c , d , e , f , g ) { var h = this , i = this . options , j = { } , k = { } , l = { } , m = { } , n = { } ; b = b || i . columnSize , c = c || i . mergeCols , d = d || { } , e = e || { } , f = f || 0 , g || ( g = i . rowSize ) ; var o = document . createDocumentFragment ( ) ; return BI . each ( a , function ( a , p ) { function q ( a , b ) { var c = ( 0 | j [ b ] . attr ( "height" ) ) + g + 1 ; j [ b ] . attr ( "height" , c ) . css ( "height" , c ) ; var f = ( 0 | ( j [ b ] . attr ( "rowspan" ) || 1 ) ) + 1 ; j [ b ] . attr ( "rowspan" , f ) , j [ b ] . _ _mergeRows . pushDistinct ( a ) , d [ a ] [ b ] = j [ b ] , e [ a ] [ b ] = m [ b ] } function r ( a , c ) { if ( b [ c ] ) { var f = 0 | k [ a ] . attr ( "width" ) ; f > 1.05 && b [ c ] ? ( f = f + b [ c ] + 1 , c === b . length - 1 && f -- ) : f += b [ c ] , f = h . _calculateWidth ( f ) , k [ a ] . attr ( "width" , f ) . css ( "width" , f ) , l [ a ] . element . width ( f ) } var g = ( 0 | ( k [ a ] . attr ( "colspan" ) || 1 ) ) + 1 ; k [ a ] . attr ( "colspan" , g ) , k [ a ] . _ _mergeCols . pushDistinct ( c ) , d [ a ] [ c ] = k [ a ] , e [ a ] [ c ] = l [ a ] } function s ( a , c ) { var i = h . _calculateWidth ( b [ c ] ) ; i > 1.05 && c === b . length - 1 && i -- ; var o = h . _calculateHeight ( g ) , q = $ ( "<td>" ) . attr ( "height" , o ) . attr ( "width" , i ) . css ( { width : i , height : o , position : "relative" } ) . addClass ( 0 === ( 1 & c ) ? "odd-col" : "even-col" ) . addClass ( 0 === a ? "first-row" : "" ) . addClass ( 0 === c ? "first-col" : "" ) . addClass ( c === p . length - 1 ? "last-col" : "" ) , r = BI . createWidget ( n [ a ] [ c ] , { type : "bi.table_cell" , textAlign : "left" , width : BI . isNumeric ( i ) ? i : "" , height : BI . isNumeric ( o ) ? o : "" , _row : a , _col : c + f } ) ; h . addWidget ( r . getName ( ) , r ) , r . _mount ( ) , r . element . css ( "position" , "relative" ) , q . append ( r . element ) , t . append ( q ) , j [ c ] = q , j [ c ] . _ _mergeRows = [ a ] , m [ c ] = r , k [ a ] = q , k [ a ] . _ _mergeCols = [ c ] , l [ a ] = r , d [ a ] [ c ] = q , e [ a ] [ c ] = r } var t = $ ( "<tr>" ) . addClass ( 0 === ( 1 & a ) ? "odd" : "even" ) ; BI . each ( p , function ( b , f ) { if ( n [ a ] || ( n [ a ] = { } ) , d [ a ] || ( d [ a ] = { } ) , e [ a ] || ( e [ a ] = { } ) , n [ a ] [ b ] = f , i . isNeedMerge && c . contains ( b ) ) if ( 0 === a && 0 === b ) s ( 0 , 0 ) ; else if ( 0 === b && a > 0 ) { var g = i . mergeRule ( n [ a ] [ b ] , n [ a - 1 ] [ b ] ) ; g === ! 0 ? ( q ( a , b ) , k [ a ] = j [ b ] , l [ a ] = m [ b ] ) : s ( a , b ) } else if ( 0 === a && b > 0 ) { var h = i . mergeRule ( n [ a ] [ b ] , n [ a ] [ b - 1 ] ) ; h === ! 0 ? ( r ( a , b ) , j [ b ] = k [ a ] , m [ b ] = l [ a ] ) : s ( a , b ) } else { var g = i . mergeRule ( n [ a ] [ b ] , n [ a - 1 ] [ b ] ) , h = i . mergeRule ( n [ a ] [ b ] , n [ a ] [ b - 1 ] ) ; if ( h && g ) return ; h && r ( a , b ) , g && q ( a , b ) , h || g || s ( a , b ) } else s ( a , b ) } ) , o . appendChild ( t [ 0 ] ) } ) , o } , _createColGroupCells : function ( a , b ) { var c = this , d = this . options ; a = a || d . columnSize , b = b || { } ; var e = document . createDocumentFragment ( ) ; return BI . each ( a , function ( a , d ) { var f = c . _calculateWidth ( d ) , g = $ ( "<col>" ) . attr ( "width" , f ) . css ( "width" , f ) ; b [ a ] = g , e . appendChild ( g [ 0 ] ) } ) , e } , _createHeaderCells : function ( a , b , c , d , e , f ) { var g = this . options ; f || ( f = 0 ) ; var h = this . _createCells ( a , b , BI .
f . popup . expander = BI . deepClone ( c . expander ) , f . items = f . popup . items = e . children , f . itemsCreator = f . popup . itemsCreator = function ( a ) { if ( BI . isNotNull ( a . node ) ) return c . itemsCreator . apply ( b , arguments ) ; var d = Array . prototype . slice . call ( arguments , 0 ) ; return d [ 0 ] . node = e , c . itemsCreator . apply ( b , d ) } , BI . isNull ( f . popup . el ) && ( f . popup . el = BI . deepClone ( c . el ) ) , d . push ( f ) } else d . push ( e ) } ) , d } , initTree : function ( a ) { var b = this , c = this . options ; this . tree = BI . createWidget ( c . el , { element : this , items : this . _formatItems ( a ) , itemsCreator : function ( a , d ) { c . itemsCreator . apply ( this , [ a , function ( a ) { var c = Array . prototype . slice . call ( arguments , 0 ) ; c [ 0 ] = b . _formatItems ( a ) , d . apply ( null , c ) } ] ) } , value : c . value } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . CustomTree . EVENT _CHANGE , c , d ) } ) } , stroke : function ( a ) { this . populate . apply ( this , arguments ) } , populate : function ( a ) { var b = Array . prototype . slice . call ( arguments , 0 ) ; arguments . length > 0 && ( b [ 0 ] = this . _formatItems ( a ) ) , this . tree . populate . apply ( this . tree , b ) } , setValue : function ( a ) { this . tree && this . tree . setValue ( a ) } , getValue : function ( ) { return this . tree ? this . tree . getValue ( ) : [ ] } , getAllButtons : function ( ) { return this . tree ? this . tree . getAllButtons ( ) : [ ] } , getAllLeaves : function ( ) { return this . tree ? this . tree . getAllLeaves ( ) : [ ] } , getNodeById : function ( a ) { return this . tree && this . tree . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . tree && this . tree . getNodeByValue ( a ) } , empty : function ( ) { this . tree . empty ( ) } } ) , BI . CustomTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.custom_tree" , BI . CustomTree ) , function ( $ ) { var settings = { } , roots = { } , caches = { } , _consts = { className : { BUTTON : "button" , LEVEL : "level" , ICO _LOADING : "ico_loading" , SWITCH : "switch" } , event : { NODECREATED : "ztree_nodeCreated" , CLICK : "ztree_click" , EXPAND : "ztree_expand" , COLLAPSE : "ztree_collapse" , ASYNC _SUCCESS : "ztree_async_success" , ASYNC _ERROR : "ztree_async_error" , REMOVE : "ztree_remove" , SELECTED : "ztree_selected" , UNSELECTED : "ztree_unselected" } , id : { A : "_a" , ICON : "_ico" , SPAN : "_span" , SWITCH : "_switch" , UL : "_ul" } , line : { ROOT : "root" , ROOTS : "roots" , CENTER : "center" , BOTTOM : "bottom" , NOLINE : "noline" , LINE : "line" } , folder : { OPEN : "open" , CLOSE : "close" , DOCU : "docu" } , node : { CURSELECTED : "curSelectedNode" } } , _setting = { treeId : "" , treeObj : null , view : { addDiyDom : null , autoCancelSelected : ! 0 , dblClickExpand : ! 0 , expandSpeed : "fast" , fontCss : { } , nameIsHTML : ! 1 , selectedMulti : ! 0 , showIcon : ! 0 , showLine : ! 0 , showTitle : ! 0 , txtSelectedEnable : ! 1 } , data : { key : { children : "children" , name : "name" , title : "" , url : "url" } , simpleData : { enable : ! 1 , idKey : "id" , pIdKey : "pId" , rootPId : null } , keep : { parent : ! 1 , leaf : ! 1 } } , async : { enable : ! 1 , contentType : "application/x-www-form-urlencoded" , type : "post" , dataType : "text" , url : "" , autoParam : [ ] , otherParam : [ ] , dataFilter : null } , callback : { beforeAsync : null , beforeClick : null , beforeDblClick : null , beforeRightClick : null , beforeMouseDown : null , beforeMouseUp : null , beforeExpand : null , beforeCollapse : null , beforeRemove : null , onAsyncError : null , onAsyncSuccess : null , onNodeCreated : null , onClick : null , onDblClick : null , onRightClick : null , onMouseDown : null , onMouseUp : null , onExpand : null , onCollapse : null , onRemove : null } } , _initRoot = function ( a ) { var b = data . getRoot ( a ) ; b || ( b = { } , data . setRoot ( a , b ) ) , b [ a . data . key . children ] = [ ] , b . expandTriggerFlag = ! 1 , b . curSelectedList = [ ] , b . noSelection = ! 0 , b . createdNodes = [ ] , b . zId = 0 , b . _ver = ( new Date ) . getTime ( ) } , _initCache = function ( a ) { var b = data . getCache ( a ) ; b || ( b = { } , data . setCache ( a , b ) ) , b . nodes = [ ] , b . doms = [ ] } , _bindEvent = function ( a ) { var b = a . treeObj , c = consts . event ; b . bind ( c . NODECREATED , function ( b , c , d ) { tools . apply ( a . callback . onNodeCreated , [ b , c , d ] ) } ) , b . bind ( c . CLICK , function ( b , c , d , e , f ) { tools . apply ( a . callback . onClick , [ c , d , e , f ] ) } ) , b . bind ( c . EXPAND , function ( b , c , d ) { tools . apply ( a . callback . onExpand , [ b , c , d ] ) } ) , b . bind ( c . COLLAPSE , function ( b , c , d ) { tools . apply ( a . callback . onCollapse , [ b , c , d ] ) } ) , b . bind ( c . ASYNC _SUCCESS , function ( b , c , d , e ) { tools . apply ( a . callback . onAsyncSuccess , [ b , c , d , e ] ) } ) , b . bind ( c . ASYNC _ERROR , function ( b , c , d , e , f , g ) { tools . apply ( a . callback . onAsyncError , [ b , c , d , e , f , g ] ) } ) , b . bind ( c . REMOVE , function ( b , c , d ) { tools . apply ( a . callback . onRemove , [ b , c , d ] ) } ) , b . bind ( c . SELECTED , function ( b , c , d , e ) { tools . apply ( a . callback . onSelected , [ c , d , e ]
} , getNodeIndex : function ( a ) { if ( ! a ) return null ; for ( var b = d . data . key . children , c = a . parentTId ? a . getParentNode ( ) : data . getRoot ( d ) , e = 0 , f = c [ b ] . length ; e < f ; e ++ ) if ( c [ b ] [ e ] == a ) return e ; return - 1 } , getSelectedNodes : function ( ) { for ( var a = [ ] , b = data . getRoot ( d ) . curSelectedList , c = 0 , e = b . length ; c < e ; c ++ ) a . push ( b [ c ] ) ; return a } , isSelectedNode : function ( a ) { return data . isSelectedNode ( d , a ) } , reAsyncChildNodes : function ( a , b , c ) { if ( this . setting . async . enable ) { var e = ! a ; if ( e && ( a = data . getRoot ( d ) ) , "refresh" == b ) { for ( var f = this . setting . data . key . children , g = 0 , h = a [ f ] ? a [ f ] . length : 0 ; g < h ; g ++ ) data . removeNodeCache ( d , a [ f ] [ g ] ) ; if ( data . removeSelectedNode ( d ) , a [ f ] = [ ] , e ) this . setting . treeObj . empty ( ) ; else { var i = $$ ( a , consts . id . UL , d ) ; i . empty ( ) } } view . asyncNode ( this . setting , e ? null : a , ! ! c ) } } , refresh : function ( ) { this . setting . treeObj . empty ( ) ; var a = data . getRoot ( d ) , b = a [ d . data . key . children ] ; data . initRoot ( d ) , a [ d . data . key . children ] = b , data . initCache ( d ) , view . createNodes ( d , 0 , a [ d . data . key . children ] ) } , removeChildNodes : function ( a ) { if ( ! a ) return null ; var b = d . data . key . children , c = a [ b ] ; return view . removeChildNodes ( d , a ) , c ? c : null } , removeNode : function ( a , b ) { a && ( b = ! ! b , b && 0 == tools . apply ( d . callback . beforeRemove , [ d . treeId , a ] , ! 0 ) || ( view . removeNode ( d , a ) , b && this . setting . treeObj . trigger ( consts . event . REMOVE , [ d . treeId , a ] ) ) ) } , selectNode : function ( a , b ) { if ( a && tools . uCanDo ( d ) ) { if ( b = d . view . selectedMulti && b , a . parentTId ) view . expandCollapseParentNode ( d , a . getParentNode ( ) , ! 0 , ! 1 , function ( ) { try { $$ ( a , d ) . focus ( ) . blur ( ) } catch ( b ) { } } ) ; else try { $$ ( a , d ) . focus ( ) . blur ( ) } catch ( c ) { } view . selectNode ( d , a , b ) } } , transformTozTreeNodes : function ( a ) { return data . transformTozTreeFormat ( d , a ) } , transformToArray : function ( a ) { return data . transformToArrayFormat ( d , a ) } , updateNode : function ( a , b ) { if ( a ) { var c = $$ ( a , d ) ; c . get ( 0 ) && tools . uCanDo ( d ) && ( view . setNodeName ( d , a ) , view . setNodeTarget ( d , a ) , view . setNodeUrl ( d , a ) , view . setNodeLineIcos ( d , a ) , view . setNodeFontCss ( d , a ) ) } } } ; return e . treeTools = g , data . setZTreeTools ( d , g ) , e [ f ] && e [ f ] . length > 0 ? view . createNodes ( d , 0 , e [ f ] ) : d . async . enable && d . async . url && "" !== d . async . url && view . asyncNode ( d ) , g } } ; var zt = $ . fn . zTree , $$ = tools . $ , consts = zt . consts } ( jQuery ) , function ( a ) { var b = { event : { CHECK : "ztree_check" } , id : { CHECK : "_check" } , checkbox : { STYLE : "checkbox" , DEFAULT : "chk" , DISABLED : "disable" , FALSE : "false" , TRUE : "true" , FULL : "full" , PART : "part" , FOCUS : "focus" } , radio : { STYLE : "radio" , TYPE _ALL : "all" , TYPE _LEVEL : "level" } } , c = { check : { enable : ! 1 , autoCheckTrigger : ! 1 , chkStyle : b . checkbox . STYLE , nocheckInherit : ! 1 , chkDisabledInherit : ! 1 , radioType : b . radio . TYPE _LEVEL , chkboxType : { Y : "ps" , N : "ps" } } , data : { key : { checked : "checked" } } , callback : { beforeCheck : null , onCheck : null } } , d = function ( a ) { var b = v . getRoot ( a ) ; b . radioCheckedList = [ ] } , e = function ( a ) { } , f = function ( a ) { var b = a . treeObj , c = t . event ; b . bind ( c . CHECK , function ( b , c , d , e ) { b . srcEvent = c , s . apply ( a . callback . onCheck , [ b , d , e ] ) } ) } , g = function ( a ) { var b = a . treeObj , c = t . event ; b . unbind ( c . CHECK ) } , h = function ( a ) { var b = a . target , c = v . getSetting ( a . data . treeId ) , d = "" , e = null , f = "" , g = "" , h = null , i = null ; if ( s . eqs ( a . type , "mouseover" ) ? c . check . enable && s . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + t . id . CHECK ) && ( d = s . getNodeMainDom ( b ) . id , f = "mouseoverCheck" ) : s . eqs ( a . type , "mouseout" ) ? c . check . enable && s . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + t . id . CHECK ) && ( d = s . getNodeMainDom ( b ) . id , f = "mouseoutCheck" ) : s . eqs ( a . type , "click" ) && c . check . enable && s . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + t . id . CHECK ) && ( d = s . getNodeMainDom ( b ) . id , f = "checkNode" ) , d . length > 0 ) switch ( e = v . getNodeCache ( c , d ) , f ) { case "checkNode" : h = n . onCheckNode ; break ; case "mouseoverCheck" : h = n . onMouseoverCheck ; break ; case "mouseoutCheck" : h = n . onMouseoutCheck } var j = { stop : "checkNode" === f , node : e , nodeEventType : f , nodeEventCallback : h , treeEventType : g , treeEventCallback : i } ; return j } , i = function ( a , b , c , d , e , f , g ) { if ( c ) { var h = a . data . key . checked ; if ( "string" == typeof c [ h ] && ( c [ h ] = s . eqs ( c [ h ] , "true" ) ) , c [ h ] = ! ! c [ h ] , c . checkedOld = c [ h ] , "string" == typeof c . nocheck && ( c . nocheck = s . eqs ( c . nocheck , "true" ) ) , c . nocheck = ! ! c . nocheck || a . check . nocheckInherit && d && ! ! d . nocheck , "string" == typeof c . chkDisabled && ( c . chkDisabled = s . eqs ( c . chkDisabled , "true" ) ) , c . chkDisabled = ! ! c . chkDisabled || a . check . chkDisabledInherit && d && ! ! d . chkDisabled , "string" == typeo
this . layout . resize ( ) } , doClick : function ( ) { BI . Switch . superclass . doClick . apply ( this , arguments ) , this . fireEvent ( BI . Switch . EVENT _CHANGE ) } } ) , BI . Switch . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.switch" , BI . Switch ) , BI . FirstTreeLeafItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . FirstTreeLeafItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-first-tree-leaf-item bi-list-item-active" , logic : { dynamic : ! 1 } , id : "" , pId : "" , layer : 0 , height : 25 } ) } , _init : function ( ) { BI . FirstTreeLeafItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.checkbox" } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , 0 === b . layer ? "" : { width : 13 , el : { type : "bi.layout" , cls : "base-line-conn-background" , width : 13 , height : b . height } } , { width : 25 , el : { type : "bi.layout" , cls : "mid-line-conn-background" , width : 25 , height : b . height } } , { el : this . text } ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , getId : function ( ) { return this . options . id } , getPId : function ( ) { return this . options . pId } , doClick : function ( ) { BI . FirstTreeLeafItem . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isSelected ( ) ) } , setSelected : function ( a ) { BI . FirstTreeLeafItem . superclass . setSelected . apply ( this , arguments ) , this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.first_tree_leaf_item" , BI . FirstTreeLeafItem ) , BI . IconTreeLeafItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . IconTreeLeafItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-icon-tree-leaf-item bi-list-item-active" , logic : { dynamic : ! 1 } , height : 25 , iconWidth : 16 , iconHeight : 16 , iconCls : "" } ) } , _init : function ( ) { BI . IconTreeLeafItem . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = BI . createWidget ( { type : "bi.center_adapt" , width : 23 , cls : a . iconCls , items : [ { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } ] } ) ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : a . height , height : a . height , hgap : a . hgap , text : a . text , value : a . value , py : a . py } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 23 , el : b } , { el : this . text } ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( a . logic , { items : d } ) ) ) ) } , 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 ) } , getId : function ( ) { return this . options . id } , getPId : function ( ) { return this . options . pId } , doClick : function ( ) { BI . IconTreeLeafItem . superclass . doClick . apply ( this , arguments ) } , setSelected : function ( a ) { BI . IconTreeLeafItem . superclass . setSelected . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.icon_tree_leaf_item" , BI . IconTreeLeafItem ) , BI . LastTreeLeafItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . LastTreeLeafItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-last-tree-leaf-item bi-list-item-active" , logic : { dynamic : ! 1 } , id : "" , pId : "" , layer : 0 , height : 25 } ) } , _init : function ( ) { BI . LastTreeLeafItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.checkbox" } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left"
} ) , d . addEventListener ( "mouseDown" , function ( e ) { b . trigger ( "mousedown" ) , a . isFunction ( c . copy ) ? d . setText ( b . triggerHandler ( "zClip_copy" ) ) : d . setText ( c . copy ) , a . isFunction ( c . beforeCopy ) && b . trigger ( "zClip_beforeCopy" ) } ) , d . addEventListener ( "complete" , function ( d , e ) { a . isFunction ( c . afterCopy ) ? b . trigger ( "zClip_afterCopy" ) : ( e . length > 500 && ( e = e . substr ( 0 , 500 ) + "...\n\n(" + ( e . length - 500 ) + " characters not shown)" ) , b . removeClass ( "hover" ) , alert ( "Copied text to clipboard:\n\n " + e ) ) , c . clickAfter && b . trigger ( "click" ) } ) , d . glue ( b [ 0 ] , b . parent ( ) [ 0 ] ) , a ( window ) . bind ( "load resize" , function ( ) { d . reposition ( ) } ) } } ) } if ( "string" == typeof b ) return this . each ( function ( ) { var c = a ( this ) ; b = b . toLowerCase ( ) ; var d = c . data ( "zclipId" ) , e = a ( "#" + d + ".zclip" ) ; "remove" == b ? ( e . remove ( ) , c . removeClass ( "active hover" ) ) : "hide" == b ? ( e . hide ( ) , c . removeClass ( "active hover" ) ) : "show" == b && e . show ( ) } ) } } ( jQuery ) ; var ZeroClipboard = { version : "1.0.7" , clients : { } , moviePath : "ZeroClipboard.swf" , nextId : 1 , $ : function ( a ) { return "string" == typeof a && ( a = document . getElementById ( a ) ) , a . addClass || ( a . hide = function ( ) { this . style . display = "none" } , a . show = function ( ) { this . style . display = "" } , a . addClass = function ( a ) { this . removeClass ( a ) , this . className += " " + a } , a . removeClass = function ( a ) { for ( var b = this . className . split ( /\s+/ ) , c = - 1 , d = 0 ; d < b . length ; d ++ ) b [ d ] == a && ( c = d , d = b . length ) ; return c > - 1 && ( b . splice ( c , 1 ) , this . className = b . join ( " " ) ) , this } , a . hasClass = function ( a ) { return ! ! this . className . match ( new RegExp ( "\\s*" + a + "\\s*" ) ) } ) , a } , setMoviePath : function ( a ) { this . moviePath = a } , dispatch : function ( a , b , c ) { var d = this . clients [ a ] ; d && d . receiveEvent ( b , c ) } , register : function ( a , b ) { this . clients [ a ] = b } , getDOMObjectPosition : function ( a , b ) { var c = { left : 0 , top : 0 , width : a . width ? a . width : a . offsetWidth , height : a . height ? a . height : a . offsetHeight } ; return a && a != b && ( c . left += a . offsetLeft , c . top += a . offsetTop ) , c } , Client : function ( a ) { this . handlers = { } , this . id = ZeroClipboard . nextId ++ , this . movieId = "ZeroClipboardMovie_" + this . id , ZeroClipboard . register ( this . id , this ) , a && this . glue ( a ) } } ; ZeroClipboard . Client . prototype = { id : 0 , ready : ! 1 , movie : null , clipText : "" , handCursorEnabled : ! 0 , cssEffects : ! 0 , handlers : null , glue : function ( a , b , c ) { this . domElement = ZeroClipboard . $ ( a ) ; var d = 99 ; this . domElement . style . zIndex && ( d = parseInt ( this . domElement . style . zIndex , 10 ) + 1 ) , "string" == typeof b ? b = ZeroClipboard . $ ( b ) : "undefined" == typeof b && ( b = document . getElementsByTagName ( "body" ) [ 0 ] ) ; var e = ZeroClipboard . getDOMObjectPosition ( this . domElement , b ) ; this . div = document . createElement ( "div" ) , this . div . className = "zclip" , this . div . id = "zclip-" + this . movieId , $ ( this . domElement ) . data ( "zclipId" , "zclip-" + this . movieId ) ; var f = this . div . style ; if ( f . position = "absolute" , f . left = "" + e . left + "px" , f . top = "" + e . top + "px" , f . width = "" + e . width + "px" , f . height = "" + e . height + "px" , f . zIndex = d , "object" == typeof c ) for ( addedStyle in c ) f [ addedStyle ] = c [ addedStyle ] ; b . appendChild ( this . div ) , this . div . innerHTML = this . getHTML ( e . width , e . height ) } , getHTML : function ( a , b ) { var c = "" , d = "id=" + this . id + "&width=" + a + "&height=" + b ; if ( navigator . userAgent . match ( /MSIE/ ) ) { var e = location . href . match ( /^https/i ) ? "https://" : "http://" ; c += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' + e + 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + a + '" height="' + b + '" id="' + this . movieId + '" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="' + ZeroClipboard . moviePath + '" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="' + d + '"/><param name="wmode" value="transparent"/></object>' } else c += '<embed id="' + this . movieId + '" src="' + ZeroClipboard . moviePath + '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="' + a + '" height="' + b + '" name="' + this . movieId + '" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="' + d + '" wmode="transparent" />' ; return c } , hide : function ( ) { this . div && ( this . div . style . left = "-2000px" ) } , show : function ( ) { this . reposition ( ) } ,
handler : function ( ) { a . fireEvent ( BI . BubblePopupBarView . EVENT _CLICK _TOOLBAR _BUTTON , ! 0 ) } } , { type : "bi.button" , value : BI . i18nText ( "BI-Basic_Cancel" ) , level : "ignore" , height : 24 , handler : function ( ) { a . fireEvent ( BI . BubblePopupBarView . EVENT _CLICK _TOOLBAR _BUTTON , ! 1 ) } } ] } } , populate : function ( a ) { this . text . setText ( a || this . options . text ) } , showLine : function ( a ) { this . popup . showLine ( a ) } , hideLine : function ( ) { this . popup . hideLine ( ) } } ) , BI . TextBubblePopupBarView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_bubble_bar_popup_view" , BI . TextBubblePopupBarView ) , BI . EditorIconCheckCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . EditorIconCheckCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseClass : "bi-check-editor-combo" , width : 100 , height : 24 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 0 , watermark : "" , errorText : "" } ) } , _init : function ( ) { BI . EditorIconCheckCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.editor_trigger" , items : b . items , height : b . height , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText , value : b . value } ) , this . trigger . on ( BI . EditorTrigger . EVENT _CHANGE , function ( ) { a . popup . setValue ( this . getValue ( ) ) , a . fireEvent ( BI . EditorIconCheckCombo . EVENT _CHANGE ) } ) , 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 . editorIconCheckCombo . hideView ( ) , a . fireEvent ( BI . EditorIconCheckCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editorIconCheckCombo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) } , setValue : function ( a ) { this . editorIconCheckCombo . setValue ( a ) } , getValue : function ( ) { return this . trigger . getValue ( ) } , populate : function ( a ) { this . options . items = a , this . editorIconCheckCombo . populate ( a ) } } ) , BI . EditorIconCheckCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.editor_icon_check_combo" , BI . EditorIconCheckCombo ) , BI . IconCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . IconCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-icon-combo" , width : 24 , height : 24 , el : { } , popup : { } , minWidth : 100 , maxWidth : "auto" , maxHeight : 300 , direction : "bottom" , adjustLength : 3 , adjustXOffset : 0 , adjustYOffset : 0 , offsetStyle : "left" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE } ) } , _init : function ( ) { BI . IconCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( b . el , { type : "bi.icon_combo_trigger" , iconCls : b . iconCls , title : b . title , items : b . items , width : b . width , height : b . height , iconWidth : b . iconWidth , iconHeight : b . iconHeight , value : b . value } ) , this . popup = BI . createWidget ( b . popup , { type : "bi.icon_combo_popup" , chooseType : b . chooseType , items : b . items , value : b . value } ) , this . popup . on ( BI . IconComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . iconCombo . hideView ( ) , a . fireEvent ( BI . IconCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . iconCombo = BI . createWidget ( { type : "bi.combo" , element : this , direction : b . direction , trigger : b . trigger , container : b . container , adjustLength : b . adjustLength , adjustXOffset : b . adjustXOffset , adjustYOffset : b . adjustYOffset , offsetStyle : b . offsetStyle , el : this . trigger , popup : { el : this . popup , maxWidth : b . maxWidth , maxHeight : b . maxHeight , minWidth : b . minWidth } } ) } , showView : function ( ) { this . iconCombo . showView ( ) } , hideView : function ( ) { this . iconCombo . hideView ( ) } , 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 . iconCombo . populate ( a ) } } ) , BI . IconCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_combo" , BI . IconCombo ) , BI . IconComboPopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { retu
this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _START , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _PAUSE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _STOP , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _SPACE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . _checkText ( ) , a . fireEvent ( BI . ShelterEditor . EVENT _ERROR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _ENTER , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _RESTRICT , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _EMPTY , arguments ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ this . editor ] } ) , this . _showHint ( ) , a . _checkText ( ) , this . text . doRedMark ( b . keyword ) } , _checkText : function ( ) { var a = this . options ; "" === this . editor . getValue ( ) ? ( this . text . setValue ( a . watermark || "" ) , this . text . element . addClass ( "bi-water-mark" ) ) : ( this . text . setValue ( this . editor . getValue ( ) ) , this . text . element . removeClass ( "bi-water-mark" ) ) } , _showInput : function ( ) { this . editor . visible ( ) , this . text . invisible ( ) } , _showHint : function ( ) { this . editor . invisible ( ) , this . text . visible ( ) } , setTitle : function ( a ) { this . text . setTitle ( a ) } , setWarningTitle : function ( a ) { this . text . setWarningTitle ( a ) } , focus : function ( ) { this . _showInput ( ) , this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) , this . _showHint ( ) , this . _checkText ( ) } , doRedMark : function ( ) { "" === this . editor . getValue ( ) && BI . isKey ( this . options . watermark ) || this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { "" === this . editor . getValue ( ) && BI . isKey ( this . options . watermark ) || this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , isValid : function ( ) { return this . editor . isValid ( ) } , setErrorText : function ( a ) { this . editor . setErrorText ( a ) } , getErrorText : function ( ) { return this . editor . getErrorText ( ) } , isEditing : function ( ) { return this . editor . isEditing ( ) } , getLastValidValue : function ( ) { return this . editor . getLastValidValue ( ) } , setTextStyle : function ( a ) { this . text . setStyle ( a ) } , setValue : function ( a ) { this . editor . setValue ( a ) , this . _checkText ( ) } , getValue : function ( ) { return this . editor . getValue ( ) } , getState : function ( ) { return this . text . getValue ( ) } , setState : function ( a ) { this . _showHint ( ) , this . text . setValue ( a ) } } ) , BI . ShelterEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . ShelterEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . ShelterEditor . EVENT _BLUR = "EVENT_BLUR" , BI . ShelterEditor . EVENT _CLICK = "EVENT_CLICK" , BI . ShelterEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . ShelterEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . ShelterEditor . EVENT _START = "EVENT_START" , BI . ShelterEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . ShelterEditor . EVENT _STOP = "EVENT_STOP" , BI . ShelterEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . ShelterEditor . EVENT _VALID = "EVENT_VALID" , BI . ShelterEditor . EVENT _ERROR = "EVENT_ERROR" , BI . ShelterEditor . EVENT _ENTER = "EVENT_ENTER" , BI . ShelterEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . ShelterEditor . EVENT _SPACE = "EVENT_SPACE" , BI . ShelterEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.shelter_editor" , BI . ShelterEditor ) , BI . SignInitialEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . SignInitialEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-sign-initial-editor" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 0 , watermark : "" , errorText : "" , value : "" , text : "" , height : 24 } ) } , _init : function ( ) { BI . SignInitialEditor . 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
return this . button _group . getIndexByValue ( a ) } , getNodeById : function ( a ) { return this . button _group . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . button _group . getNodeByValue ( a ) } } ) , BI . ListPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.list_pane" , BI . ListPane ) , BI . Panel = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Panel . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-panel bi-border" , title : "" , titleButtons : [ ] , el : { } , logic : { dynamic : ! 1 } } ) } , _init : function ( ) { BI . Panel . superclass . _init . apply ( this , arguments ) ; var a = this . options ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "vertical" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "top" , this . _createTitle ( ) , this . options . el ) } ) ) ) ) } , _createTitle : function ( ) { var a = this , b = this . options ; return this . text = BI . createWidget ( { type : "bi.label" , cls : "panel-title-text" , text : b . title , height : 30 } ) , this . button _group = BI . createWidget ( { type : "bi.button_group" , items : b . titleButtons , layouts : [ { type : "bi.center_adapt" , lgap : 10 } ] } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . ButtonGroup . EVENT _CHANGE , function ( b , c ) { a . fireEvent ( BI . Panel . EVENT _CHANGE , b , c ) } ) , { el : { type : "bi.left_right_vertical_adapt" , cls : "panel-title bi-border-bottom" , height : 29 , items : { left : [ this . text ] , right : [ this . button _group ] } , lhgap : 10 , rhgap : 10 } , height : 29 } } , setTitle : function ( a ) { this . text . setValue ( a ) } } ) , BI . Panel . EVENT _CHANGE = "Panel.EVENT_CHANGE" , BI . shortcut ( "bi.panel" , BI . Panel ) , BI . SelectList = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SelectList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-select-list" , direction : BI . Direction . Top , logic : { dynamic : ! 0 } , items : [ ] , itemsCreator : BI . emptyFn , hasNext : BI . emptyFn , onLoaded : BI . emptyFn , toolbar : { type : "bi.multi_select_bar" } , el : { type : "bi.list_pane" } } ) } , _init : function ( ) { BI . SelectList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . toolbar = BI . createWidget ( b . toolbar ) , this . allSelected = ! 1 , this . toolbar . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . allSelected = this . isSelected ( ) , b === BI . Events . CLICK && ( a . setAllSelected ( a . allSelected ) , a . fireEvent ( BI . SelectList . EVENT _CHANGE , c , d ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . list = BI . createWidget ( b . el , { type : "bi.list_pane" , items : b . items , itemsCreator : function ( c , d ) { 1 === c . times && a . toolbar . setVisible ( ! 1 ) , b . itemsCreator ( c , function ( b ) { d . apply ( a , arguments ) , 1 === c . times && ( a . toolbar . setVisible ( b && b . length > 0 ) , a . toolbar . setEnable ( b && b . length > 0 ) ) , a . _checkAllSelected ( ) } ) } , onLoaded : b . onLoaded , hasNext : b . hasNext } ) , this . list . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { b === BI . Events . CLICK && ( a . _checkAllSelected ( ) , a . fireEvent ( BI . SelectList . EVENT _CHANGE , c , d ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { scrolly : ! 0 } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , this . toolbar , this . list ) } ) ) ) ) , b . items . length <= 0 && ( this . toolbar . setVisible ( ! 1 ) , this . toolbar . setEnable ( ! 1 ) ) , BI . isNotNull ( b . value ) && this . setValue ( b . value ) } , _checkAllSelected : function ( ) { var a = this . list . getValue ( ) . length , b = this . getAllLeaves ( ) . length - a , c = this . list . hasNext ( ) , d = this . toolbar . isSelected ( ) , e = a > 0 && ( b > 0 || ! d && c ) ; e = e || b > 0 && c && d , this . toolbar . setHalfSelected ( e ) , ! e && this . toolbar . setSelected ( a > 0 && b <= 0 && ( ! c || d ) ) } , setAllSelected : function ( a ) { BI . each ( this . getAllButtons ( ) , function ( b , c ) { ( c . setSelected || c . setAllSelected ) . apply ( c , [ a ] ) } ) , this . allSelected = ! ! a , this . toolbar . setSelected ( a ) , this . toolbar . setHalfSelected ( ! 1 ) } , setToolBarVisible : function ( a ) { this . toolbar . setVisible ( a ) } , isAllSelected : function ( ) { return this . allSelected } , hasPrev : function ( ) { return this . list . hasPrev ( ) } , hasNext : function ( ) { return this . list . hasNext ( ) } , prependItems : function ( a ) { this . list . prependItems . apply ( this . list , arguments ) } , addItems : function ( a ) { this . list . addItems . apply ( this . list , arguments ) } , setValue : function ( a ) { var b = a . type === BI . ButtonGroup . CHOOSE _TYPE _ALL ; this . setAllSelected ( b ) , this . list [ b ?
} } , restoreRng : function ( ) { this . savedRange && this . selRng ( this . savedRange , this . savedSel ) } , keyDown : function ( a , b ) { this . ne . fireEvent ( "keydown" , a ) } , selected : function ( b ) { var c = b . target ; if ( c || ( c = this . selElm ( ) ) || ( c = this . selElm ( ) ) , ! b . ctrlKey ) { var d = this . ne . selectedInstance ; d != this && ( d && this . ne . fireEvent ( "blur" , b ) , this . ne . selectedInstance = this , this . ne . fireEvent ( "focus" , b ) ) , this . ne . fireEvent ( "selected" , b ) , this . isFocused = ! 0 , this . elm . element . addClass ( a + "selected" ) } } , blur : function ( ) { this . isFocused = ! 1 , this . elm . element . removeClass ( a + "selected" ) } , saveContent : function ( ) { this . ne . fireEvent ( "save" ) , this . e . element . value ( this . getContent ( ) ) } , getElm : function ( ) { return this . elm } , getContent : function ( ) { return this . content = this . getElm ( ) . element . html ( ) , this . ne . fireEvent ( "get" ) , this . content } , setContent : function ( a ) { this . content = a , this . ne . fireEvent ( "set" ) , this . elm . element . html ( this . content ) } , nicCommand : function ( a , b ) { document . execCommand ( a , ! 1 , b ) } } ) } ( ) , BI . RichEditorBackgroundChooserTrigger = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . RichEditorBackgroundChooserTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { width : 20 , height : 20 } ) } , _init : function ( ) { BI . RichEditorBackgroundChooserTrigger . superclass . _init . apply ( this , arguments ) , this . font = BI . createWidget ( { type : "bi.icon_button" , cls : "text-background-font" } ) , this . underline = BI . createWidget ( { type : "bi.icon_button" , cls : "text-color-underline-font" } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . font , top : 2 , left : 2 } , { el : this . underline , top : 7 , left : 2 } ] } ) } , setValue : function ( a ) { this . underline . element . css ( "color" , a ) } , getValue : function ( ) { return this . font . element . css ( "color" ) } } ) , BI . shortcut ( "bi.rich_editor_background_color_chooser_trigger" , BI . RichEditorBackgroundChooserTrigger ) , BI . RichEditorAlignCenterButton = BI . inherit ( BI . RichEditorAction , { _defaultConfig : function ( ) { return BI . extend ( BI . RichEditorAlignCenterButton . superclass . _defaultConfig . apply ( this , arguments ) , { width : 20 , height : 20 , command : "justifycenter" } ) } , _init : function ( ) { BI . RichEditorAlignCenterButton . superclass . _init . apply ( this , arguments ) ; var a = this ; this . options ; this . align = BI . createWidget ( { type : "bi.icon_button" , element : this , forceNotSelected : ! 0 , title : BI . i18nText ( "BI-Word_Align_Center" ) , height : 20 , width : 20 , cls : "text-toolbar-button bi-list-item-active text-align-center-font" } ) , this . align . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . doCommand ( ) } ) } , activate : function ( ) { } , deactivate : function ( ) { } } ) , BI . shortcut ( "bi.rich_editor_align_center_button" , BI . RichEditorAlignCenterButton ) , BI . RichEditorAlignLeftButton = BI . inherit ( BI . RichEditorAction , { _defaultConfig : function ( ) { return BI . extend ( BI . RichEditorAlignLeftButton . superclass . _defaultConfig . apply ( this , arguments ) , { width : 20 , height : 20 , command : "justifyleft" } ) } , _init : function ( ) { BI . RichEditorAlignLeftButton . superclass . _init . apply ( this , arguments ) ; var a = this ; this . options ; this . align = BI . createWidget ( { type : "bi.icon_button" , element : this , forceNotSelected : ! 0 , title : BI . i18nText ( "BI-Word_Align_Left" ) , height : 20 , width : 20 , cls : "text-toolbar-button bi-list-item-active text-align-left-font" } ) , this . align . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . doCommand ( ) } ) } , activate : function ( ) { } , deactivate : function ( ) { } } ) , BI . shortcut ( "bi.rich_editor_align_left_button" , BI . RichEditorAlignLeftButton ) , BI . RichEditorAlignRightButton = BI . inherit ( BI . RichEditorAction , { _defaultConfig : function ( ) { return BI . extend ( BI . RichEditorAlignRightButton . superclass . _defaultConfig . apply ( this , arguments ) , { width : 20 , height : 20 , command : "justifyright" } ) } , _init : function ( ) { BI . RichEditorAlignRightButton . superclass . _init . apply ( this , arguments ) ; var a = this ; this . options ; this . align = BI . createWidget ( { type : "bi.icon_button" , element : this , forceNotSelected : ! 0 , title : BI . i18nText ( "BI-Word_Align_Right" ) , height : 20 , width : 20 , cls : "text-toolbar-button bi-list-item-active text-align-right-font" } ) , this . align . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . doCommand ( ) } ) } , activate : function ( ) { } , deactivate : function ( ) { } } ) , BI . shortcut ( "bi.rich_editor_align_right_button" , BI . RichEditorAlignRightButton ) , BI . RichEditorBoldButton = BI . inherit ( BI . RichEditorAction , { _defaultConfig : function ( ) { return BI . extend ( B
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 } , _digest : function ( ) { var a = this . options , b = this . _getHDeep ( ) , c = this . _getVDeep ( ) ; return { header : this . _createHeader ( c ) , items : this . _formatItems ( a . items ) , columnSize : this . _formatColumnSize ( a . columnSize , b ) , minColumnSize : this . _formatColumns ( a . minColumnSize , b ) , maxColumnSize : this . _formatColumns ( a . maxColumnSize , b ) , freezeCols : this . _formatFreezeCols ( ) } } , _init : function ( ) { BI . LayerTreeTable . 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 . regionColumnSize , header : c . header , items : c . items } ) , this . table . on ( BI . Table . EVENT _TABLE _SCROLL , function ( ) { a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , function ( ) { b . regionColumnSize = this . getRegionColumnSize ( ) , b . columnSize = this . getColumnSize ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , function ( ) { b . regionColumnSize = this . getRegionColumnSize ( ) , b . columnSize = this . getColumnSize ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , arguments ) } ) } , setWidth : function ( a ) { BI . LayerTreeTable . superclass . setWidth . apply ( this , arguments ) , this . table . setWidth ( a ) } , setHeight : function ( a ) { BI . LayerTreeTable . superclass . setHeight . apply ( this , arguments ) , this . table . setHeight ( a ) } , setColumnSize : function ( a ) { this . options . columnSize = a } , getColumnSize : function ( ) { var a = this . table . getColumnSize ( ) , b = this . _getHDeep ( ) , c = [ ] ; return b > 0 && ( c = BI . makeArray ( b , a [ 0 ] / b ) ) , c . concat ( a . slice ( 1 ) ) } , setRegionColumnSize : function ( a ) { this . options . regionColumnSize = a , this . table . setRegionColumnSize ( a ) } , getRegionColumnSize : function ( ) { return this . table . getRegionColumnSize ( ) } , setVerticalScroll : function ( a ) { this . table . setVerticalScroll ( a ) } , setLeftHorizontalScroll : function ( a ) { this . table . setLeftHorizontalScroll ( a ) } , setRightHorizontalScroll : function ( a ) { this . table . setRightHorizontalScroll ( a ) } , getVerticalScroll : function ( ) { return this . table . getVerticalScroll ( ) } , getLeftHorizontalScroll : function ( ) { return this . table . getLeftHorizontalScroll ( ) } , getRightHorizontalScroll : function ( ) { return this . table . getRightHorizontalScroll ( ) } , attr : function ( a , b ) { var c = this ; if ( BI . isObject ( a ) ) return void BI . each ( a , function ( a , b ) { c . attr ( a , b ) } ) ; switch ( BI . LayerTreeTable . superclass . attr . apply ( this , arguments ) , a ) { case "columnSize" : case "minColumnSize" : case "maxColumnSize" : case "freezeCols" : case "mergeCols" : return } this . table . attr . apply ( this . table , [ a , b ] ) } , restore : function ( ) { this . table . restore ( ) } , populate : function ( a , b , c , d ) { var e = this . options ; e . items = a || [ ] , b && ( e . header = b ) , c && ( e . crossItems = c ) , d && ( e . crossHeader = d ) ; var f = this . _digest ( ) ; this . table . setColumnSize ( f . columnSize ) , this . table . attr ( "freezeCols" , f . freezeCols ) , this . table . attr ( "minColumnSize" , f . minColumnSize ) , this . table . attr ( "maxColumnSize" , f . maxColumnSize ) , this . table . populate ( f . items , f . header ) } , destroy : function ( ) { this . table . destroy ( ) , BI . LayerTreeTable . superclass . destroy . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.layer_tree_table" , BI . LayerTreeTable ) , BI . TableStyleCell = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . TableStyleCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-table-style-cell" , styleGetter : BI . emptyFn } ) } , _init : function ( ) { BI . TableStyleCell . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . text = BI . createWidget ( { type : "bi.label" , element : this , textAlign : "left" , forceCenter : ! 0 , hgap : 5 , text : a . text } ) , this . _digestStyle ( ) } , _digestStyle : function ( ) { var a = this . options , b = a . styleGetter ( ) ; b && this . text . element . css ( b ) } , setText : function ( a ) { this
this . trigger . setText ( b . text ) , this . trigger . setIcon ( b . iconCls ) } , populate : function ( a ) { this . options . items = a } } ) , BI . shortcut ( "bi.select_icon_text_trigger" , BI . SelectIconTextTrigger ) , BI . TextTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { var a = BI . TextTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-trigger" , height : 24 } ) } , _init : function ( ) { BI . TextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , height : b . height , text : b . text , title : function ( ) { return a . text . getText ( ) } , hgap : c . hgap , readonly : b . readonly } ) , this . trigerButton = BI . createWidget ( { type : "bi.trigger_icon_button" , width : b . triggerWidth || b . height } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . text } , { el : this . trigerButton , width : b . triggerWidth || b . height } ] } ) } , setText : function ( a ) { this . text . setText ( a ) } } ) , BI . shortcut ( "bi.text_trigger" , BI . TextTrigger ) , BI . SelectTextTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . SelectTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-select-text-trigger bi-border" , height : 24 } ) } , _init : function ( ) { this . options . height -= 2 , BI . SelectTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . trigger = BI . createWidget ( { type : "bi.text_trigger" , element : this , height : a . height , readonly : a . readonly , text : this . _digest ( a . value , a . items ) } ) } , _digest : function ( a , b ) { var c = this . options ; a = BI . isArray ( a ) ? a : [ a ] ; var d = [ ] , e = BI . Tree . transformToArrayFormat ( b ) ; return BI . each ( e , function ( b , c ) { BI . deepContains ( a , c . value ) && ! d . contains ( c . text || c . value ) && d . push ( c . text || c . value ) } ) , d . length > 0 ? d . join ( "," ) : c . text } , setValue : function ( a ) { this . trigger . setText ( this . _digest ( a , this . options . items ) ) } , populate : function ( a ) { this . options . items = a } } ) , BI . shortcut ( "bi.select_text_trigger" , BI . SelectTextTrigger ) , BI . SmallSelectTextTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . SmallSelectTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-small-select-text-trigger bi-border" , height : 20 } ) } , _init : function ( ) { this . options . height -= 2 , BI . SmallSelectTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _digest ( a . text , a . items ) ; this . trigger = BI . createWidget ( { type : "bi.small_text_trigger" , element : this , height : a . height - 2 , text : b . text , cls : b . cls } ) } , _digest : function ( a , b ) { var c = this . options ; a = BI . isArray ( a ) ? a : [ a ] ; var d = [ ] , e = BI . Tree . transformToArrayFormat ( b ) ; return BI . each ( e , function ( b , c ) { BI . deepContains ( a , c . value ) && ! d . contains ( c . text || c . value ) && d . push ( c . text || c . value ) } ) , d . length > 0 ? { cls : "" , text : d . join ( "," ) } : { cls : "bi-water-mark" , text : c . text } } , setValue : function ( a ) { this . trigger . setText ( this . _digest ( a , this . options . items ) ) } , populate : function ( a ) { this . options . items = a } } ) , BI . shortcut ( "bi.small_select_text_trigger" , BI . SmallSelectTextTrigger ) , BI . SmallTextTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { var a = BI . SmallTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-trigger" , height : 20 } ) } , _init : function ( ) { BI . SmallTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , height : a . height , text : a . text , hgap : b . hgap } ) , this . trigerButton = BI . createWidget ( { type : "bi.trigger_icon_button" , width : a . triggerWidth || a . height } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . text } , { el : this . trigerButton , width : a . triggerWidth || a . height } ] } ) } , setValue : function ( a ) { this . text . setValue ( a ) } , setText : function ( a ) { this . text . setText ( a ) } } ) , BI . shortcut ( "bi.small_text_trigger" , BI . SmallTextTrigger ) , BI . SequenceTableTreeNumber = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SequenceTableTreeNumber . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-sequence-table-tree-number" , isNeedFreeze : ! 1 , startSequence : 1 , scrollTop : 0 , headerRowSize : 25 , rowSize : 25 , sequenceHeaderCreator : null , header : [ ] , items : [ ] , crossHeader : [ ] , crossItems : [ ] } ) } , _init : function ( ) { BI . SequenceTableTre
width : 24 , height : 24 } ) ; d . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { a . combo . isViewVisible ( ) ? a . combo . hideView ( ) : a . combo . showView ( ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { type : "bi.absolute" , items : [ { el : this . combo , top : 0 , left : 0 , right : 0 , bottom : 0 } , { el : d , top : 0 , left : 0 } ] } ] } ) } , setValue : function ( a ) { this . storeValue = a , this . popup . setValue ( a ) , this . trigger . setValue ( a ) } , getValue : function ( ) { return this . storeValue } , hidePopupView : function ( ) { this . combo . hideView ( ) } } ) , BI . DateTimeCombo . EVENT _CANCEL = "EVENT_CANCEL" , BI . DateTimeCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DateTimeCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . DateTimeCombo . EVENT _BEFORE _POPUPVIEW = "BI.DateTimeCombo.EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.date_time_combo" , BI . DateTimeCombo ) , BI . DateTimePopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DateTimePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-date-time-popup" , width : 268 , height : 290 } ) } , _init : function ( ) { BI . DateTimePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . cancelButton = BI . createWidget ( { type : "bi.text_button" , forceCenter : ! 0 , cls : "multidate-popup-button bi-border-top bi-border-right" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Cancel" ) } ) , this . cancelButton . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DateTimePopup . BUTTON _CANCEL _EVENT _CHANGE ) } ) , this . okButton = BI . createWidget ( { type : "bi.text_button" , forceCenter : ! 0 , cls : "multidate-popup-button bi-border-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) } ) , this . okButton . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DateTimePopup . BUTTON _OK _EVENT _CHANGE ) } ) , this . dateCombo = BI . createWidget ( { type : "bi.date_calendar_popup" , min : a . options . min , max : a . options . max } ) , a . dateCombo . on ( BI . DateCalendarPopup . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DateTimePopup . CALENDAR _EVENT _CHANGE ) } ) , this . dateSelect = BI . createWidget ( { type : "bi.vertical_adapt" , cls : "bi-border-top" , items : [ { type : "bi.label" , text : BI . i18nText ( "BI-Basic_Time" ) , width : 45 } , { type : "bi.date_time_select" , max : 23 , min : 0 , width : 60 , height : 30 , listeners : [ { eventName : BI . DateTimeSelect . EVENT _CONFIRM , action : function ( ) { a . fireEvent ( BI . DateTimePopup . CALENDAR _EVENT _CHANGE ) } } ] , ref : function ( b ) { a . hour = b } } , { type : "bi.label" , text : ":" , width : 15 } , { type : "bi.date_time_select" , max : 59 , min : 0 , width : 60 , height : 30 , listeners : [ { eventName : BI . DateTimeSelect . EVENT _CONFIRM , action : function ( ) { a . fireEvent ( BI . DateTimePopup . CALENDAR _EVENT _CHANGE ) } } ] , ref : function ( b ) { a . minute = b } } , { type : "bi.label" , text : ":" , width : 15 } , { type : "bi.date_time_select" , max : 59 , min : 0 , width : 60 , height : 30 , listeners : [ { eventName : BI . DateTimeSelect . EVENT _CONFIRM , action : function ( ) { a . fireEvent ( BI . DateTimePopup . CALENDAR _EVENT _CHANGE ) } } ] , ref : function ( b ) { a . second = b } } ] } ) , this . setValue ( b . value ) , this . dateButton = BI . createWidget ( { type : "bi.grid" , items : [ [ this . cancelButton , this . okButton ] ] } ) , BI . createWidget ( { element : this , type : "bi.vtape" , items : [ { el : this . dateCombo } , { el : this . dateSelect , height : 50 } , { el : this . dateButton , height : 30 } ] } ) } , setValue : function ( a ) { var b , c = a ; BI . isNull ( c ) ? ( b = BI . getDate ( ) , this . dateCombo . setValue ( { year : b . getFullYear ( ) , month : b . getMonth ( ) , day : BI . getDate ( ) } ) , this . hour . setValue ( b . getHours ( ) ) , this . minute . setValue ( b . getMinutes ( ) ) , this . second . setValue ( b . getSeconds ( ) ) ) : ( this . dateCombo . setValue ( { year : c . year , month : c . month , day : c . day } ) , this . hour . setValue ( c . hour ) , this . minute . setValue ( c . minute ) , this . second . setValue ( c . second ) ) } , getValue : function ( ) { return { year : this . dateCombo . getValue ( ) . year , month : this . dateCombo . getValue ( ) . month , day : this . dateCombo . getValue ( ) . day , hour : this . hour . getValue ( ) , minute : this . minute . getValue ( ) , second : this . second . getValue ( ) } } } ) , BI . DateTimePopup . BUTTON _OK _EVENT _CHANGE = "BUTTON_OK_EVENT_CHANGE" , BI . DateTimePopup . BUTTON _CANCEL _EVENT _CHANGE = "BUTTON_CANCEL_EVENT_CHANGE" , BI . DateTimePopup . CALENDAR _EVENT _CHANGE = "CALENDAR_EVENT_CHANGE" , BI . shortcut ( "bi.date_time_popup" , BI . DateTimePopup ) , BI . DateTimeSelect = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DateTimeSelect . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-date-time-select bi-border" , max : 23 , min : 0 } ) } , _init : function ( ) { BI . DateTimeSelect . superclass . _init . apply ( this , argume
if ( c . isLeaf ( ) ) { var e = c . get ( "data" ) . value ; d === ! 0 ? BI . contains ( a . selectValue , c . get ( "data" ) . value ) || b . push ( e ) : b . push ( e ) } } ) , b } , getValue : function ( ) { var a = [ ] ; return this . checked . isSelected ( ) ? ( this . tree . traverse ( function ( b ) { b . isLeaf ( ) && a . push ( b . get ( "data" ) . value ) } ) , a ) : this . checked . isHalfSelected ( ) ? this . selectValue : [ ] } } ) , BI . FileManagerFolderItem . EVENT _CHANGE = "FileManagerFolderItem.EVENT_CHANGE" , BI . shortcut ( "bi.file_manager_folder_item" , BI . FileManagerFolderItem ) , BI . FileManagerList = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . FileManagerList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-file-manager-list" , el : { } , items : [ ] } ) } , _init : function ( ) { BI . FileManagerList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . list = BI . createWidget ( { type : "bi.select_list" , element : this , items : b . items , toolbar : { type : "bi.multi_select_bar" , height : 40 , text : "" } , el : { type : "bi.list_pane" , el : BI . isWidget ( b . el ) ? b . el : BI . extend ( { type : "bi.file_manager_button_group" } , b . el ) } } ) , this . list . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , setValue : function ( a ) { this . list . setValue ( { value : a } ) } , getValue : function ( ) { return this . list . getValue ( ) } , populate : function ( a ) { this . list . populate ( a ) , this . list . setToolBarVisible ( ! 0 ) } } ) , BI . FileManagerList . EVENT _CHANGE = "FileManagerList.EVENT_CHANGE" , BI . shortcut ( "bi.file_manager_list" , BI . FileManagerList ) , BI . FileManagerNavButton = BI . inherit ( BI . Widget , { _const : { normal _color : "#ffffff" , select _color : "#eff1f4" } , _defaultConfig : function ( ) { return BI . extend ( BI . FileManagerNavButton . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-file-manager-nav-button" , selected : ! 1 , height : 40 } ) } , _init : function ( ) { BI . FileManagerNavButton . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . button = BI . createWidget ( { type : "bi.text_button" , cls : "file-manager-nav-button-text bi-card" , once : ! 0 , selected : b . selected , text : b . text , title : b . text , value : b . value , height : b . height , lgap : 20 , rgap : 10 } ) , this . button . on ( BI . Controller . EVENT _CHANGE , function ( ) { arguments [ 2 ] = a , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var d = BI . createWidget ( { type : "bi.svg" , cls : "file-manager-nav-button-triangle" , width : 15 , height : b . height } ) , e = d . path ( "M0,0L15,20L0,40" ) . attr ( { stroke : c . select _color , fill : b . selected ? c . select _color : c . normal _color } ) ; this . button . on ( BI . TextButton . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? e . attr ( "fill" , c . select _color ) : e . attr ( "fill" , c . normal _color ) } ) , BI . createWidget ( { type : "bi.default" , element : this , items : [ this . button ] } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : d , right : - 15 , top : 0 , bottom : 0 } ] } ) } , isSelected : function ( ) { return this . button . isSelected ( ) } , setValue : function ( a ) { this . button . setValue ( a ) } , getValue : function ( ) { return this . button . getValue ( ) } , populate : function ( a ) { } } ) , BI . FileManagerNavButton . EVENT _CHANGE = "FileManagerNavButton.EVENT_CHANGE" , BI . shortcut ( "bi.file_manager_nav_button" , BI . FileManagerNavButton ) , BI . FileManagerNav = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . FileManagerNav . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-file-manager-nav bi-border-left" , height : 40 , items : [ ] } ) } , _init : function ( ) { BI . FileManagerNav . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = new BI . Tree , this . refreshTreeData ( b . items ) , this . tree . getRoot ( ) . set ( "data" , { text : BI . i18nText ( "BI-Created_By_Me" ) , value : BI . FileManagerNav . ROOT _CREATE _BY _ME , id : BI . FileManagerNav . ROOT _CREATE _BY _ME } ) , this . button _group = BI . createWidget ( { type : "bi.button_group" , element : this , items : [ { type : "bi.file_manager_nav_button" , text : BI . i18nText ( "BI-Created_By_Me" ) , selected : ! 0 , id : BI . FileManagerNav . ROOT _CREATE _BY _ME , value : BI . FileManagerNav . ROOT _CREATE _BY _ME } ] , layouts : [ { type : "bi.horizontal" } ] } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . ButtonGroup . EVENT _CHANGE , function ( b , c ) { a . fireEvent ( BI . FileManagerNav . EVENT _CHANGE , arguments ) } ) } , _getAllParents : function ( a ) { var b , c = [ ] ; for ( b = a ? this . tree . search ( a ) : this . tree . getRoot ( ) ; b . parent ; ) c . push ( b ) , b = b . parent ; return c . push ( b )
BI . extend ( BI . MultiDateCombo , { MULTI _DATE _YMD _CARD : 1 , MULTI _DATE _YEAR _CARD : 2 , MULTI _DATE _QUARTER _CARD : 3 , MULTI _DATE _MONTH _CARD : 4 , MULTI _DATE _WEEK _CARD : 5 , MULTI _DATE _DAY _CARD : 6 } ) , BI . extend ( BI . MultiDateCombo , { DATE _TYPE : { MULTI _DATE _YEAR _PREV : 1 , MULTI _DATE _YEAR _AFTER : 2 , MULTI _DATE _YEAR _BEGIN : 3 , MULTI _DATE _YEAR _END : 4 , MULTI _DATE _MONTH _PREV : 5 , MULTI _DATE _MONTH _AFTER : 6 , MULTI _DATE _MONTH _BEGIN : 7 , MULTI _DATE _MONTH _END : 8 , MULTI _DATE _QUARTER _PREV : 9 , MULTI _DATE _QUARTER _AFTER : 10 , MULTI _DATE _QUARTER _BEGIN : 11 , MULTI _DATE _QUARTER _END : 12 , MULTI _DATE _WEEK _PREV : 13 , MULTI _DATE _WEEK _AFTER : 14 , MULTI _DATE _DAY _PREV : 15 , MULTI _DATE _DAY _AFTER : 16 , MULTI _DATE _DAY _TODAY : 17 , MULTI _DATE _PARAM : 18 , MULTI _DATE _CALENDAR : 19 , YEAR _QUARTER : 20 , YEAR _MONTH : 21 , YEAR _WEEK : 22 , YEAR _DAY : 23 , MONTH _WEEK : 24 , MONTH _DAY : 25 , YEAR : 26 , SAME _PERIOD : 27 , LAST _SAME _PERIOD : 28 } } ) , BI . DayCard = BI . inherit ( BI . MultiDateCard , { _defaultConfig : function ( ) { return $ . extend ( BI . DayCard . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multidate-daycard" } ) } , _init : function ( ) { BI . DayCard . superclass . _init . apply ( this , arguments ) } , dateConfig : function ( ) { return [ { isEditorExist : ! 0 , selected : ! 0 , text : BI . i18nText ( "BI-Multi_Date_Day_Prev" ) , value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _DAY _PREV } , { isEditorExist : ! 0 , text : BI . i18nText ( "BI-Multi_Date_Day_Next" ) , value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _DAY _AFTER } , { isEditorExist : ! 1 , value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _DAY _TODAY , text : BI . i18nText ( "BI-Multi_Date_Today" ) } ] } , defaultSelectedItem : function ( ) { return BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _DAY _PREV } } ) , BI . DayCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.daycard" , BI . DayCard ) , BI . MonthCard = BI . inherit ( BI . MultiDateCard , { _defaultConfig : function ( ) { return $ . extend ( BI . MonthCard . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multidate-monthcard" } ) } , _init : function ( ) { BI . MonthCard . superclass . _init . apply ( this , arguments ) } , dateConfig : function ( ) { return [ { selected : ! 0 , isEditorExist : ! 0 , value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _PREV , text : BI . i18nText ( "BI-Multi_Date_Month_Prev" ) } , { isEditorExist : ! 0 , value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _AFTER , text : BI . i18nText ( "BI-Multi_Date_Month_Next" ) } , { value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _BEGIN , isEditorExist : ! 1 , text : BI . i18nText ( "BI-Multi_Date_Month_Begin" ) } , { value : BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _END , isEditorExist : ! 1 , text : BI . i18nText ( "BI-Multi_Date_Month_End" ) } ] } , defaultSelectedItem : function ( ) { return BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _PREV } } ) , BI . MonthCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.monthcard" , BI . MonthCard ) , BI . MultiDatePopup = BI . inherit ( BI . Widget , { constants : { tabHeight : 30 , tabWidth : 42 , titleHeight : 27 , itemHeight : 30 , triggerHeight : 24 , buttonWidth : 90 , buttonHeight : 25 , cardHeight : 229 , cardWidth : 270 , popupHeight : 259 , popupWidth : 270 , comboAdjustHeight : 1 , ymdWidth : 58 , lgap : 2 , border : 1 } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiDatePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multidate-popup" , width : 268 , height : 260 } ) } , _init : function ( ) { BI . MultiDatePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = "" , this . textButton = BI . createWidget ( { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-multidate-popup-label bi-border-left bi-border-right bi-border-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Multi_Date_Today" ) } ) , this . textButton . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiDatePopup . BUTTON _lABEL _EVENT _CHANGE ) } ) , this . clearButton = BI . createWidget ( { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-multidate-popup-button bi-border-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Clear" ) } ) , this . clearButton . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiDatePopup . BUTTON _CLEAR _EVENT _CHANGE ) } ) , this . okButton = BI . createWidget ( { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-multidate-popup-button bi-border-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) } ) , this . okButton . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiDatePopup . BUTTON _OK _EVENT _CHANGE ) } ) , this . dateTab = BI . createWidget ( { type : "bi.tab" , tab : { cls : "bi-multidate-popup-tab bi-border-bottom" , height : this . constants . tabHeight , items : BI . cre
BI . MultiLayerSingleTreeFirstPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . node ) && this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_single_tree_first_plus_group_node" , BI . MultiLayerSingleTreeFirstPlusGroupNode ) , BI . MultiLayerSingleTreeLastPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSingleTreeLastPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-single-tree-last-plus-group-node bi-list-item" , layer : 0 , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { BI . MultiLayerSingleTreeLastPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.last_plus_group_node" , cls : "bi-list-item-none" , 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 ) { b !== BI . Events . CLICK && a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 , b . layer , function ( ) { c . push ( { type : "bi.layout" , cls : "base-line-conn-background" , width : 13 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 13 ) , items : [ c ] } ) } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , doClick : function ( ) { BI . MultiLayerSingleTreeLastPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSingleTreeLastPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . node ) && this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_single_tree_last_plus_group_node" , BI . MultiLayerSingleTreeLastPlusGroupNode ) , BI . MultiLayerSingleTreeMidPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSingleTreeMidPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-single-tree-mid-plus-group-node bi-list-item" , layer : 0 , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { BI . MultiLayerSingleTreeMidPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.mid_plus_group_node" , cls : "bi-list-item-none" , 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 ) { b !== BI . Events . CLICK && a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 , b . layer , function ( ) { c . push ( { type : "bi.layout" , cls : "base-line-conn-background" , width : 13 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 13 ) , items : [ c ] } ) } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , doClick : function ( ) { BI . MultiLayerSingleTreeMidPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSingleTreeMidPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . node ) && this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_single_tree_mid_plus_group_node" , BI . MultiLayerSingleTreeMidPlusGroupNode ) , BI . MultiLayerSingleTreeFirstTreeLeafItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSingleTreeFirstTreeLeafItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-multilayer-single-tree-first-tree-leaf-item bi-list-item-active" , logic : { dynamic : ! 1 } , layer : 0 , id : "" , pId : "" , height : 25 } ) } , _init : function ( ) { BI . MultiLayerSingleTreeFirstTreeLeafItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . item = BI . createWidget ( { type : "bi.first_tree_leaf_item" , cls : "bi-list-item-none" , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . item . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b !== BI . Events . CLICK && a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 ,
BI . shortcut ( "bi.multi_select_trigger" , BI . MultiSelectTrigger ) , BI . MultiSelectSearchLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectSearchLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-search-loader" , itemsCreator : BI . emptyFn , keywordGetter : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectSearchLoader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = ! 1 ; this . storeValue = BI . deepClone ( b . value ) , this . button _group = BI . createWidget ( { type : "bi.select_list" , element : this , logic : { dynamic : ! 1 } , value : b . value , el : { tipText : BI . i18nText ( "BI-No_Select" ) , el : { type : "bi.loader" , isDefaultInit : ! 1 , logic : { dynamic : ! 0 , scrolly : ! 0 } , el : { chooseType : BI . ButtonGroup . CHOOSE _TYPE _MULTI , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] } } } , itemsCreator : function ( d , e ) { a . storeValue && ( d = BI . extend ( d || { } , { selectedValues : a . storeValue . value } ) ) , b . itemsCreator ( d , function ( f ) { var g = f . keyword = b . keywordGetter ( ) ; c = f . hasNext ; var h = [ ] ; if ( 1 === d . times && a . storeValue ) { var i = a . _filterValues ( a . storeValue ) ; h = a . _createItems ( i ) } e ( h . concat ( a . _createItems ( f . items ) ) , g ) , 1 === d . times && a . storeValue && a . setValue ( a . storeValue ) } ) } , hasNext : function ( ) { return c } } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . SelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectSearchLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.multi_select_item" , logic : { dynamic : ! 1 } , height : 25 , selected : this . isAllSelected ( ) } ) } , isAllSelected : function ( ) { return this . button _group . isAllSelected ( ) } , _filterValues : function ( a ) { var b = this . options , c = b . keywordGetter ( ) , d = BI . deepClone ( a . value ) || [ ] , e = BI . map ( d , function ( a , c ) { return { text : b . valueFormatter ( c ) || c , value : c } } ) ; if ( BI . isKey ( c ) ) { var f = BI . Func . getSearchResult ( e , c ) ; d = f . matched . concat ( f . find ) } return BI . map ( d , function ( b , c ) { return { text : c . text , title : c . text , value : c . value , selected : a . type === BI . Selection . All } } ) } , setValue : function ( a ) { this . storeValue = BI . deepClone ( a ) , this . button _group . setValue ( a ) } , getValue : function ( ) { return this . button _group . getValue ( ) } , getAllButtons : function ( ) { return this . button _group . getAllButtons ( ) } , empty : function ( ) { this . button _group . empty ( ) } , populate : function ( a ) { this . button _group . populate . apply ( this . button _group , arguments ) } , resetHeight : function ( a ) { this . button _group . resetHeight ( a ) } , resetWidth : function ( a ) { this . button _group . resetWidth ( a ) } } ) , BI . MultiSelectSearchLoader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_search_loader" , BI . MultiSelectSearchLoader ) , BI . MultiSelectSearchPane = BI . inherit ( BI . Widget , { constants : { height : 25 , lgap : 10 , tgap : 5 } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectSearchPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-search-pane bi-card" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectSearchPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tooltipClick = BI . createWidget ( { type : "bi.label" , invisible : ! 0 , text : BI . i18nText ( "BI-Click_Blank_To_Select" ) , cls : "multi-select-toolbar" , height : this . constants . height } ) , this . loader = BI . createWidget ( { type : "bi.multi_select_search_loader" , keywordGetter : b . keywordGetter , valueFormatter : b . valueFormatter , itemsCreator : function ( c , d ) { b . itemsCreator . apply ( a , [ c , function ( c ) { d ( c ) , a . setKeyword ( b . keywordGetter ( ) ) } ] ) } , value : b . value } ) , this . loader . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . resizer = BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . tooltipClick , height : 0 } , { el : this . loader } ] } ) , this . tooltipClick . setVisible ( ! 1 ) } , setKeyword : function ( a ) { var b , c = this . loader . getAllButtons ( ) . length > 0 && ( b = this . loader . getAllButtons ( ) [ 0 ] ) && a === b . getValue ( ) ; c !== this . tooltipClick . isVisible ( ) && ( this . tooltipClick . setVisible ( c ) , this . resizer . attr ( "items" ) [ 0 ] . height = c ? this . constants . height : 0 , this . resizer . resize ( ) ) } , isAllSelected : function ( ) { return this . loader . isAllSelected ( ) } , hasMatched : function ( ) { return this . tooltipClick
return b . trigger . getSearcher ( ) . isSearching ( ) } , i = function ( ) { return b . combo . isViewVisible ( ) } ; this . trigger . on ( BI . MultiSelectTrigger . EVENT _START , function ( ) { b . storeValue = { value : b . combo . getValue ( ) } , this . setValue ( b . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _STOP , function ( ) { b . storeValue = { value : this . getValue ( ) } , b . combo . setValue ( b . storeValue ) , BI . nextTick ( function ( ) { i ( ) && b . combo . populate ( ) } ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW , function ( ) { e === ! 1 && ( e = ! 0 ) , d === ! 0 && ( e = null , a ( ) ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _TRIGGER _CLICK , function ( ) { b . combo . toggle ( ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _COUNTER _CLICK , function ( ) { b . combo . isViewVisible ( ) || b . combo . showView ( ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _CHANGE , function ( ) { var a = this . getSearcher ( ) . hasChecked ( ) , b = { type : BI . Selection . Multi , value : a ? { 1 : 1 } : { } } ; this . getSearcher ( ) . setState ( a ? BI . Selection . Multi : BI . Selection . None ) , this . getCounter ( ) . setButtonChecked ( b ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { h ( ) || ( f === ! 0 && ( b . storeValue = { value : b . combo . getValue ( ) } , f = ! 1 ) , b . combo . setValue ( b . storeValue ) , b . populate ( ) ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _HIDEVIEW , function ( ) { h ( ) ? ( b . trigger . stopEditing ( ) , b . fireEvent ( BI . MultiTreeCombo . EVENT _CONFIRM ) ) : i ( ) && ( b . trigger . stopEditing ( ) , b . storeValue = { value : b . combo . getValue ( ) } , g === ! 0 && ( b . storeValue = { value : { } } ) , b . fireEvent ( BI . MultiTreeCombo . EVENT _CONFIRM ) ) , g = ! 1 , f = ! 1 } ) ; var j = BI . createWidget ( { type : "bi.trigger_icon_button" , width : c . height , height : c . height , cls : "multi-select-trigger-icon-button" } ) ; j . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { b . trigger . getCounter ( ) . hideView ( ) , b . combo . isViewVisible ( ) ? b . combo . hideView ( ) : b . combo . showView ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . combo , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : j , right : 0 , top : 0 , bottom : 0 } ] } ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) , this . combo . hideView ( ) } , setValue : function ( a ) { this . storeValue . value = a || { } , this . combo . setValue ( { value : a || { } } ) } , getValue : function ( ) { return this . storeValue . value } , populate : function ( ) { this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . MultiTreeCombo . EVENT _CONFIRM = "MultiTreeCombo.EVENT_CONFIRM" , BI . shortcut ( "bi.multi_tree_combo" , BI . MultiTreeCombo ) , BI . MultiTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-tree-popup" , maxWidth : "auto" , minWidth : 100 , maxHeight : 400 , onLoaded : BI . emptyFn } ) } , _init : function ( ) { BI . MultiTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . selectedValues = { } , this . tree = BI . createWidget ( { type : "bi.async_tree" , height : 400 , cls : "popup-view-tree" , itemsCreator : b . itemsCreator , onLoaded : b . onLoaded , value : b . value || { } } ) , this . popupView = BI . createWidget ( { type : "bi.multi_popup_view" , element : this , stopPropagation : ! 1 , maxWidth : b . maxWidth , minWidth : b . minWidth , maxHeight : b . maxHeight , buttons : [ BI . i18nText ( "BI-Basic_Clears" ) , BI . i18nText ( "BI-Basic_Sure" ) ] , el : this . tree } ) , this . popupView . on ( BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON , function ( b ) { switch ( b ) { case 0 : a . fireEvent ( BI . MultiTreePopup . EVENT _CLICK _CLEAR ) ; break ; case 1 : a . fireEvent ( BI . MultiTreePopup . EVENT _CLICK _CONFIRM ) } } ) , this . tree . on ( BI . TreeView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiTreePopup . EVENT _CHANGE ) } ) , this . tree . on ( BI . TreeView . EVENT _AFTERINIT , function ( ) { a . fireEvent ( BI . MultiTreePopup . EVENT _AFTERINIT ) } ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a || ( a = { } ) , this . tree . setSelectedValue ( a . value ) } , populate : function ( a ) { this . tree . stroke ( a ) } , hasChecked : function ( ) { return this . tree . hasChecked ( ) } , resetHeight : function ( a ) { this . popupView . resetHeight ( a ) } , resetWidth : function ( a ) { this . popupView . resetWidth ( a ) } } ) , BI . MultiTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiTreePopup . EVENT _CLICK _CONFIRM = "EVENT_CLICK_CONFIRM" , BI . MultiTreePopup . EVENT _CLICK _CLEAR = "EVENT_CLICK_CLEAR" , BI . MultiTreePopup . EVENT _AFTERINIT = "EVENT_AFTERINIT" , BI . shortcut ( "bi.multi_tree_popup_view" , BI . MultiTreePopup ) , BI . MultiTreeSearchPane = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiTreeSearc
isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . QuarterCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) || "" } } ) , BI . QuarterCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . QuarterCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.quarter_combo" , BI . QuarterCombo ) , BI . QuarterPopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . QuarterPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-quarter-popup" , behaviors : { } } ) } , _init : function ( ) { BI . QuarterPopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = [ { text : Date . _QN [ 1 ] , value : 1 } , { text : Date . _QN [ 2 ] , value : 2 } , { text : Date . _QN [ 3 ] , value : 3 } , { text : Date . _QN [ 4 ] , value : 4 } ] ; c = BI . map ( c , function ( a , b ) { return BI . extend ( b , { type : "bi.text_item" , cls : "bi-list-item-active" , textAlign : "left" , whiteSpace : "nowrap" , once : ! 1 , forceSelected : ! 0 , height : 25 } ) } ) , this . quarter = BI . createWidget ( { type : "bi.button_group" , element : this , behaviors : b . behaviors , items : BI . createItems ( c , { } ) , layouts : [ { type : "bi.vertical" } ] , value : b . value } ) , this . quarter . 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 . quarter . getValue ( ) [ 0 ] } , setValue : function ( a ) { this . quarter . setValue ( [ a ] ) } } ) , BI . QuarterPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.quarter_popup" , BI . QuarterPopup ) , BI . QuarterTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , textWidth : 40 , errorText : BI . i18nText ( "BI-Quarter_Trigger_Error_Text" ) } , _defaultConfig : function ( ) { return BI . extend ( BI . QuarterTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-quarter-trigger bi-border" , height : 24 } ) } , _init : function ( ) { BI . QuarterTrigger . 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 <= 4 } , 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 . QuarterTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . QuarterTrigger . EVENT _CHANGE ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; BI . isNotNull ( b ) && ( a . editor . setValue ( b ) , a . editor . setTitle ( b ) ) , a . fireEvent ( BI . QuarterTrigger . 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 . QuarterTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . QuarterTrigger . EVENT _STOP ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : { type : "bi.text_button" , baseCls : "bi-trigger-quarter-text" , text : BI . i18nText ( "BI-Multi_Date_Quarter" ) , width : c . textWidth } , width : c . textWidth } , { el : { type : "bi.trigger_icon_button" , width : b . height } , width : b . height } ] } ) , this . setValue ( b . value ) } , setValue : function ( a ) { a = a || "" , this . editor . setState ( a ) , this . editor . setValue ( a ) , this . editor . setTitle ( a ) } , getKey : function ( ) { return this . editor . getValue ( ) } } ) , BI . QuarterTrigger . EVENT _FOCUS = "EVENT_FOCUS" , BI . QuarterTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . QuarterTrigger . EVENT _START = "EVENT_START" , BI . QuarterTrigger . EVENT _STOP = "EVENT_STOP" , BI . QuarterTrigger . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.quarter_trigger" , BI . QuarterTrigger ) , BI . ResponisveTable = BI . inherit ( BI . Widget , { _const : { perColumnSize : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . ResponisveTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-responsive-table" , isNeedFreeze : ! 1 , freezeCols : [ ] , logic : { dynamic : ! 1 } , isNeedMerge : ! 1 , mergeCols : [ ] , mergeRule : function ( a , b ) { return BI . isEqual ( a , b ) } , columnSize : [ ] , headerRowSize : 25 , footerRowSize : 25 , rowSize : 25 , regionColumnSize : ! 1 , header : [ ] , footer : ! 1 , items : [ ] , crossHeader : [ ] , crossItems : [ ] } ) } , _ini
baseCls : "bi-single-select-search-pane bi-card" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tooltipClick = BI . createWidget ( { type : "bi.label" , invisible : ! 0 , text : BI . i18nText ( "BI-Click_Blank_To_Select" ) , cls : "single-select-toolbar" , height : this . constants . height } ) , this . loader = BI . createWidget ( { type : "bi.single_select_search_loader" , keywordGetter : b . keywordGetter , valueFormatter : b . valueFormatter , itemsCreator : function ( c , d ) { b . itemsCreator . apply ( a , [ c , function ( c ) { d ( c ) , a . setKeyword ( b . keywordGetter ( ) ) } ] ) } } ) , this . loader . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . resizer = BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . tooltipClick , height : 0 } , { el : this . loader } ] } ) , this . tooltipClick . setVisible ( ! 1 ) } , setKeyword : function ( a ) { var b , c = this . loader . getAllButtons ( ) . length > 0 && ( b = this . loader . getAllButtons ( ) [ 0 ] ) && a === b . getValue ( ) ; c !== this . tooltipClick . isVisible ( ) && ( this . tooltipClick . setVisible ( c ) , this . resizer . attr ( "items" ) [ 0 ] . height = c ? this . constants . height : 0 , this . resizer . resize ( ) ) } , hasMatched : function ( ) { return this . tooltipClick . isVisible ( ) } , setValue : function ( a ) { this . loader . setValue ( a ) } , getValue : function ( ) { return this . loader . getValue ( ) } , empty : function ( ) { this . loader . empty ( ) } , populate : function ( a ) { this . loader . populate . apply ( this . loader , arguments ) } } ) , BI . SingleSelectSearchPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.single_select_search_pane" , BI . SingleSelectSearchPane ) , BI . SingleSelectCombo = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-combo" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , height : 28 } ) } , _init : function ( ) { BI . SingleSelectCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = function ( ) { BI . isKey ( a . _startValue ) && ( a . storeValue = a . _startValue ) , a . trigger . getSearcher ( ) . setState ( a . storeValue ) } ; this . storeValue = "" , this . requesting = ! 1 , this . trigger = BI . createWidget ( { type : "bi.single_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 ( a . getValue ( ) ) , d . apply ( a , arguments ) } ) } } ) , this . trigger . on ( BI . SingleSelectTrigger . EVENT _START , function ( ) { a . _setStartValue ( "" ) , this . getSearcher ( ) . setValue ( a . storeValue ) } ) , this . trigger . on ( BI . SingleSelectTrigger . EVENT _STOP , function ( ) { a . _setStartValue ( "" ) } ) , this . trigger . on ( BI . SingleSelectTrigger . 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 . SingleSelectTrigger . 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 . SingleSelectTrigger . EVENT _CHANGE , function ( b , d ) { a . storeValue = this . getValue ( ) , c ( ) } ) , this . trigger . on ( BI . SingleSelectTrigger . 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.single_select_popup_view" , ref : function ( ) { a . popup = this , a . trigger . setAdapter ( this ) } , listeners : [ { eventName : BI . SingleSelectPopupView . EVENT _CHANGE , action : function ( ) { a . storeValue = this . getValue ( ) , a . _adjust ( function ( ) { c ( ) } ) } } , { eventName : BI . SingleSelectPopupView . EVENT _CLICK _CONFIRM , action : function ( ) { a . _defaultState ( ) } } , { eventName : BI . SingleSelectPopupView . 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 . getSearcher ( ) . adjustView ( ) } ) } } , hide
BI . SingleSelectTrigger . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . SingleSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW = "EVENT_BEFORE_COUNTER_POPUPVIEW" , BI . shortcut ( "bi.single_select_add_trigger" , BI . SingleSelectTrigger ) , 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_add_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_add_searcher" , BI . SingleSelectSearcher ) , BI . SignTextEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . SignTextEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-sign-initial-editor" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 0 , watermark : "" , errorText : "" , text : "" , height : 24 } ) } , _init : function ( ) { BI . SignTextEditor . 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 : "sign-editor-text" , title : b . title , warningTitle : b . warningTitle , tipType : b . tipType , textAlign : "left" , height : b . height , hgap : 4 , handler : function ( ) { a . _showInput ( ) , a . editor . focus ( ) , a . editor . selectAll ( ) } } ) , this . text . on ( BI . TextButton . EVENT _CHANGE , function ( ) { BI . nextTick ( function ( ) { a . fireEvent ( BI . SignTextEditor . EVENT _CLICK _LABEL ) } ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ {
} , value : b . value || "" } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { var b = a . trigger . getKey ( ) ; BI . isNotNull ( b ) ? a . popup . setValue ( b ) : b || b === a . storeValue ? a . setValue ( ) : a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . YearCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , setValue : function ( a ) { this . combo . setValue ( a || "" ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . YearCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . YearCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.year_combo" , BI . YearCombo ) , BI . YearPopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . YearPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-year-popup" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" } ) } , _createYearCalendar : function ( a ) { var b = this . options , c = this . _year , d = BI . createWidget ( { type : "bi.year_calendar" , behaviors : b . behaviors , min : b . min , max : b . max , logic : { dynamic : ! 0 } , year : c + 12 * a } ) ; return d . setValue ( this . _year ) , d } , _init : function ( ) { BI . YearPopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . selectedYear = this . _year = BI . getDate ( ) . getFullYear ( ) ; var c = BI . createWidget ( { type : "bi.icon_button" , cls : "pre-page-h-font" , width : 25 , height : 25 , value : - 1 } ) , d = BI . createWidget ( { type : "bi.icon_button" , cls : "next-page-h-font" , width : 25 , height : 25 , value : 1 } ) ; this . navigation = BI . createWidget ( { type : "bi.navigation" , element : this , single : ! 0 , logic : { dynamic : ! 0 } , tab : { cls : "year-popup-navigation bi-high-light bi-border-top" , height : 25 , items : [ c , d ] } , cardCreator : BI . bind ( this . _createYearCalendar , this ) , afterCardShow : function ( ) { this . setValue ( a . selectedYear ) ; var b = this . getSelectedCard ( ) ; c . setEnable ( ! b . isFrontYear ( ) ) , d . setEnable ( ! b . isFinalYear ( ) ) } } ) , this . navigation . on ( BI . Navigation . EVENT _CHANGE , function ( ) { a . selectedYear = this . getValue ( ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . YearPopup . EVENT _CHANGE , a . selectedYear ) } ) , BI . isKey ( b . value ) && this . setValue ( b . value ) } , getValue : function ( ) { return this . selectedYear } , setValue : function ( a ) { var b = this . options ; BI . checkDateVoid ( a , 1 , 1 , b . min , b . max ) [ 0 ] ? ( a = BI . getDate ( ) . getFullYear ( ) , this . selectedYear = "" , this . navigation . setSelect ( BI . YearCalendar . getPageByYear ( a ) ) , this . navigation . setValue ( "" ) ) : ( this . selectedYear = a , this . navigation . setSelect ( BI . YearCalendar . getPageByYear ( a ) ) , this . navigation . setValue ( a ) ) } } ) , BI . YearPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.year_popup" , BI . YearPopup ) , BI . YearTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , errorText : BI . i18nText ( "BI-Please_Input_Positive_Integer" ) , errorTextInvalid : BI . i18nText ( "BI-Year_Trigger_Invalid_Text" ) } , _defaultConfig : function ( ) { return BI . extend ( BI . YearTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-year-trigger bi-border" , min : "1900-01-01" , max : "2099-12-31" , height : 24 } ) } , _init : function ( ) { BI . YearTrigger . 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 ( d ) { return a . editor . setErrorText ( BI . isPositiveInteger ( d ) ? c . errorTextInvalid : c . errorText ) , "" === d || BI . isPositiveInteger ( d ) && ! BI . checkDateVoid ( d , 1 , 1 , b . min , b . max ) [ 0 ] } , quitChecker : function ( a ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , errorText : c . errorText , value : b . value } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . YearTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . YearTrigger . EVENT _STOP ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; BI . isNotNull ( b ) && ( a . editor . setValue ( b ) , a . editor . setTitle ( b ) ) , a . fireEvent ( BI . YearTrigger . 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 . YearTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . YearTrigger . EVENT _ERROR ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : { type : "bi.text_button" , baseCls : "bi-trigger-year-text" , text : BI . i18nText ( "BI-Multi_Date_Year" ) , width : b . height } , width : b . height } , { el : { type : "bi.trigger_icon_button" , width : b . heigh