/*! fineui 2019-03-13 15:23:04 */
function _classCallCheck ( a , b ) { if ( ! ( a instanceof b ) ) throw new TypeError ( "Cannot call a class as a function" ) } var _global ; _global = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , null == _global . BI && ( _global . BI = { prepares : [ ] } ) , null == _global . BI . prepares && ( _global . BI . prepares = [ ] ) , 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 } ) , _global . console = _global . 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 } ( ) , _global . localStorage || ( _global . localStorage = { items : { } , setItem : function ( a , b ) { BI . Cache . addCookie ( a , b ) } , getItem : function ( a ) { return BI . Cache . getCookie ( a ) } , removeItem : function ( a ) { BI . Cache . deleteCookie ( a ) } , key : function ( ) { } , clear : function ( ) { this . items = { } } } ) , Object . keys || ( Object . keys = function ( a ) { if ( a !== Object ( a ) ) throw new TypeError ( "Object.keys called on a non-object" ) ; var b , c , d = { _ _ob _ _ : b , $accessors : b , $vbthis : b , $vbsetter : b } , e = [ ] ; for ( c in a ) c in d || Object . prototype . hasOwnProperty . call ( a , c ) && e . push ( c ) ; return e } ) , Array . isArray || ( Array . isArray = function ( a ) { return "[object Array]" === Object . prototype . toString . call ( a ) } ) , "function" != typeof Object . getPrototypeOf && ( Object . getPrototypeOf = "" . _ _proto _ _ === String . prototype ? function ( a ) { return a . _ _proto _ _ } : function ( a ) { return a . constructor . prototype } ) , Date . now || ( Date . now = function ( ) { return ( new Date ) . valueOf ( ) } ) , "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/ ; 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 ) ; var _global ; _global = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , null == _global . BI && ( _global . BI = { prepares : [ ] } ) , null == _global . BI . prepares && ( _global . BI . prepares = [ ] ) , function ( ) { function a ( a , b , c ) { switch ( c . length ) { case 0 : return a . call ( b ) ; case 1 : return a . call ( b , c [ 0 ] ) ; case 2 : return a . call ( b , c [ 0 ] , c [ 1 ] ) ; case 3 : return a . call ( b , c [ 0 ] , c [ 1 ] , c [ 2 ] ) } return a . apply ( b , c ) } function b ( a , b , c , d ) { for ( var e = - 1 , f = null == a ? 0 : a . length ; ++ e < f ; ) { var g = a [ e ] ; b ( d , g , c ( g ) , a ) } return d } function c ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d && b ( a [ c ] , c , a ) !== ! 1 ; ) ; return a } function d ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d ; ) if ( ! b ( a [ c ] , c , a ) ) return ! 1 ; return ! 0 } function e ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; b ( g , c , a ) && ( f [ e ++ ] = g ) } return f } function f ( a , b ) { var c = null == a ? 0 : a . length ; return ! ! c && o ( a , b , 0 ) > - 1 } function g ( a , b , c ) { for ( var d = - 1 , e = null == a ? 0 : a . length ; ++ d < e ; ) if ( c ( b , a [ d ] ) ) return ! 0 ; return ! 1 } function h ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length , e = Array ( d ) ; ++ c < d ; ) e [ c ] = b ( a [ c ] , c , a ) ; return e } function i ( a , b ) { for ( var c = - 1 , d = b . length , e = a . length ; ++ c < d ; ) a [ e + c ] = b [ c ] ; return a } function j ( a , b , c , d ) { var e = - 1 , f = null == a ? 0 : a . length ; for ( d && f && ( c = a [ ++ e ] ) ; ++ e < f ; ) c = b ( c , a [ e ] , e , a ) ; return c } function k ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d ; ) if ( b ( a [ c ] , c , a ) ) return ! 0 ; return ! 1 } function l ( a ) { return a . split ( "" ) } function m ( a , b , c ) { var d ; return c ( a , func
return ! a . call ( this ) ; case 1 : return ! a . call ( this , b [ 0 ] ) ; case 2 : return ! a . call ( this , b [ 0 ] , b [ 1 ] ) ; case 3 : return ! a . call ( this , b [ 0 ] , b [ 1 ] , b [ 2 ] ) } return ! a . apply ( this , b ) } } function Ed ( a ) { return Ad ( 2 , a ) } function Fd ( a , b ) { if ( "function" != typeof a ) throw new TypeError ( Le ) ; return b = b === Ie ? b : be ( b ) , ub ( a , b ) } function Gd ( a , b , c ) { var d = ! 0 , e = ! 0 ; if ( "function" != typeof a ) throw new TypeError ( Le ) ; return Sd ( c ) && ( d = "leading" in c ? ! ! c . leading : d , e = "trailing" in c ? ! ! c . trailing : e ) , Bd ( a , b , { leading : d , maxWait : b , trailing : e } ) } function Hd ( a ) { return Ea ( a , Re ) } function Id ( a ) { return Ea ( a , Pe | Re ) } function Jd ( a , b ) { return a === b || a !== a && b !== b } function Kd ( a ) { return null != a && Rd ( a . length ) && ! Qd ( a ) } function Ld ( a ) { return Td ( a ) && Kd ( a ) } function Md ( a ) { return a === ! 0 || a === ! 1 || Td ( a ) && Qa ( a ) == rf } function Nd ( a ) { if ( null == a ) return ! 0 ; if ( Kd ( a ) && ( si ( a ) || "string" == typeof a || "function" == typeof a . splice || ti ( a ) || yi ( a ) || ri ( a ) ) ) return ! a . length ; var b = bi ( a ) ; if ( b == wf || b == Df ) return ! a . size ; if ( Ic ( a ) ) return ! gb ( a ) . length ; for ( var c in a ) if ( ah . call ( a , c ) ) return ! 1 ; return ! 0 } function Od ( a , b ) { return Za ( a , b ) } function Pd ( a ) { return "number" == typeof a && xh ( a ) } function Qd ( a ) { if ( ! Sd ( a ) ) return ! 1 ; var b = Qa ( a ) ; return b == uf || b == vf || b == qf || b == Bf } function Rd ( a ) { return "number" == typeof a && a > - 1 && a % 1 == 0 && a <= jf } function Sd ( a ) { var b = typeof a ; return null != a && ( "object" == b || "function" == b ) } function Td ( a ) { return null != a && "object" == typeof a } function Ud ( a ) { return Wd ( a ) && a != + a } function Vd ( a ) { return null === a } function Wd ( a ) { return "number" == typeof a || Td ( a ) && Qa ( a ) == xf } function Xd ( a ) { if ( ! Td ( a ) || Qa ( a ) != zf ) return ! 1 ; var b = lh ( a ) ; if ( null === b ) return ! 0 ; var c = ah . call ( b , "constructor" ) && b . constructor ; return "function" == typeof c && c instanceof c && _g . call ( c ) == eh } function Yd ( a ) { return "string" == typeof a || ! si ( a ) && Td ( a ) && Qa ( a ) == Ef } function Zd ( a ) { return "symbol" == typeof a || Td ( a ) && Qa ( a ) == Ff } function $d ( a ) { return a === Ie } function _d ( a ) { if ( ! a ) return [ ] ; if ( Kd ( a ) ) return Yd ( a ) ? L ( a ) : Qb ( a ) ; if ( qh && a [ qh ] ) return D ( a [ qh ] ( ) ) ; var b = bi ( a ) , c = b == wf ? E : b == Df ? I : qe ; return c ( a ) } function ae ( a ) { if ( ! a ) return 0 === a ? a : 0 ; if ( a = ce ( a ) , a === hf || a === - hf ) { var b = a < 0 ? - 1 : 1 ; return b * kf } return a === a ? a : 0 } function be ( a ) { var b = ae ( a ) , c = b % 1 ; return b === b ? c ? b - c : b : 0 } function ce ( a ) { if ( "number" == typeof a ) return a ; if ( Zd ( a ) ) return lf ; if ( Sd ( a ) ) { var b = "function" == typeof a . valueOf ? a . valueOf ( ) : a ; a = Sd ( b ) ? b + "" : b } if ( "string" != typeof a ) return 0 === a ? a : + a ; a = a . replace ( Zf , "" ) ; var c = eg . test ( a ) ; return c || gg . test ( a ) ? Hg ( a . slice ( 2 ) , c ? 2 : 8 ) : dg . test ( a ) ? lf : + a } function de ( a ) { return Rb ( a , me ( a ) ) } function ee ( a ) { return null == a ? "" : yb ( a ) } function fe ( a , b ) { var c = Th ( a ) ; return null == b ? c : za ( c , b ) } function ge ( a , b ) { return m ( a , fb ( b , 3 ) , La ) } function he ( a , b ) { return m ( a , fb ( b , 3 ) , Ma ) } function ie ( a , b , c ) { var d = null == a ? Ie : Oa ( a , b ) ; return d === Ie ? c : d } function je ( a , b ) { return null != a && wc ( a , b , Sa ) } function ke ( a , b ) { return null != a && wc ( a , b , Ta ) } function le ( a ) { return Kd ( a ) ? ua ( a ) : gb ( a ) } function me ( a ) { return Kd ( a ) ? ua ( a , ! 0 ) : hb ( a ) } function ne ( a , b ) { return oe ( a , Dd ( fb ( b ) ) ) } function oe ( a , b ) { if ( null == a ) return { } ; var c = h ( nc ( a ) , function ( a ) { return [ a ] } ) ; return b = fb ( b ) , qb ( a , c , function ( a , c ) { return b ( a , c [ 0 ] ) } ) } function pe ( a , b , c ) { b = Eb ( b , a ) ; var d = - 1 , e = b . length ; for ( e || ( e = 1 , a = Ie ) ; ++ d < e ; ) { var f = null == a ? Ie : a [ Uc ( b [ d ] ) ] ; f === Ie && ( d = e , f = c ) , a = Qd ( f ) ? f . call ( a ) : f } return a } function qe ( a ) { return null == a ? [ ] : w ( a , le ( a ) ) } function re ( a , b , c ) { return c === Ie && ( c = b , b = Ie ) , c !== Ie && ( c = ce ( c ) , c = c === c ? c : 0 ) , b !== Ie && ( b = ce ( b ) , b = b === b ? b : 0 ) , Da ( ce ( a ) , b , c ) } function se ( a , b , c ) { if ( c && "boolean" != typeof c && Dc ( a , b , c ) && ( b = c = Ie ) , c === Ie && ( "boolean" == typeof b ? ( c = b , b = Ie ) : "boolean" == typeof a && ( c = a , a = Ie ) ) , a === Ie && b === Ie ? ( a = 0 , b = 1 ) : ( a = ae ( a ) , b === Ie ? ( b = a , a = 0 ) : b = ae ( b ) ) , a > b ) { var d = a ; a = b , b = d } if ( c || a % 1 || b % 1 ) { var e = Ch ( ) ; return Ah ( a + e * ( b - a + Gg ( "1e-" + ( ( e + "" ) . length - 1 ) ) ) , b ) } return sb ( a , b ) } function te ( a ) { return a = ee ( a ) , a && Uf . test ( a ) ? a . replace ( Tf , Wg ) : a } function ue ( a , b , c ) { if ( a = ee ( a ) , a && ( c || b === Ie ) ) return a . replace ( Zf , "" ) ; if ( ! a || ! ( b = yb ( b ) ) ) return a ; var d = L ( a ) , e = L ( b ) , f = y ( d , e ) , g = z ( d , e ) + 1 ; return Fb ( d , f , g ) . join ( "" ) } function ve ( a ) { return function ( ) { return a } } function we ( a ) { return a } function xe ( a ) { return fb ( "function" == typeof a ? a : Ea ( a , Pe ) ) } function ye ( a ) { return kb ( Ea ( a , Pe ) ) } function ze ( a , b , d ) { var e = le ( b ) , f = Na ( b , e ) ; null != d || Sd ( b ) && ( f . length || ! e . length ) || ( d = b , b = a , a = this , f = N
var p = - 1 ; for ( l = 0 ; l < 12 ; ++ l ) if ( BI . Date . _MN [ l ] . substr ( 0 , g [ k ] . length ) . toLowerCase ( ) == g [ k ] . toLowerCase ( ) ) { p = l ; break } p != - 1 && ( e != - 1 && ( f = e + 1 ) , e = p ) } else parseInt ( g [ k ] , 10 ) <= 12 && e == - 1 ? e = g [ k ] - 1 : parseInt ( g [ k ] , 10 ) > 31 && 0 == d ? ( d = parseInt ( g [ k ] , 10 ) , d < 100 && ( d += d > 29 ? 1900 : 2e3 ) ) : 0 == f && ( f = g [ k ] ) ; return 0 == d && ( d = c . getFullYear ( ) ) , e != - 1 && 0 != f ? BI . getDate ( d , e , f , m , n , o ) : c } , getDate : function ( ) { var a , b = arguments . length , c = arguments ; switch ( b ) { case 0 : a = new Date ; break ; case 1 : a = new Date ( c [ 0 ] ) ; break ; case 2 : a = new Date ( c [ 0 ] , c [ 1 ] ) ; break ; case 3 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] ) ; break ; case 4 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] ) ; break ; case 5 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] , c [ 4 ] ) ; break ; case 6 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] , c [ 4 ] , c [ 5 ] ) ; break ; case 7 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] , c [ 4 ] , c [ 5 ] , c [ 6 ] ) ; break ; default : a = new Date } if ( BI . isNotNull ( BI . timeZone ) && ( 0 === arguments . length || 1 === arguments . length && BI . isNumber ( arguments [ 0 ] ) ) ) { var d = a . getTime ( ) , e = 6e4 * ( new Date ) . getTimezoneOffset ( ) , f = d + e ; return new Date ( f + BI . timeZone ) } return a } , getTime : function ( ) { var a , b = arguments . length , c = arguments ; switch ( b ) { case 0 : a = new Date ; break ; case 1 : a = new Date ( c [ 0 ] ) ; break ; case 2 : a = new Date ( c [ 0 ] , c [ 1 ] ) ; break ; case 3 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] ) ; break ; case 4 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] ) ; break ; case 5 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] , c [ 4 ] ) ; break ; case 6 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] , c [ 4 ] , c [ 5 ] ) ; break ; case 7 : a = new Date ( c [ 0 ] , c [ 1 ] , c [ 2 ] , c [ 3 ] , c [ 4 ] , c [ 5 ] , c [ 6 ] ) ; break ; default : a = new Date } return BI . isNotNull ( BI . timeZone ) ? a . getTime ( ) - BI . timeZone - 6e4 * ( new Date ) . getTimezoneOffset ( ) : a . getTime ( ) } } ) } ( ) , ! function ( ) { function a ( ) { for ( var a , b , c , d , e = arguments [ 0 ] || { } , f = arguments . length , g = 1 ; g < f ; g ++ ) if ( null != ( a = arguments [ g ] ) ) for ( b in a ) c = e [ b ] , d = a [ b ] , e !== d && void 0 !== d && ( e [ b ] = d ) ; return e } BI . OB = function ( b ) { var c = this . props ; BI . isFunction ( this . props ) && ( c = this . props ( b ) ) , this . options = a ( this . _defaultConfig ( b ) , c , b ) , this . _init ( ) , this . _initRef ( ) } , _ . extend ( BI . OB . prototype , { props : { } , init : null , destroyed : null , _defaultConfig : function ( a ) { return { } } , _init : function ( ) { this . _initListeners ( ) , this . init && this . init ( ) } , _initListeners : function ( ) { var a = this ; null != this . options . listeners && ( _ . each ( this . options . listeners , function ( b ) { ( b . target ? b . target : a ) [ b . once ? "once" : "on" ] ( b . eventName , _ . bind ( b . action , a ) ) } ) , delete this . options . listeners ) } , _initRef : function ( ) { this . options . ref && this . options . ref . call ( this , this ) } , _purgeRef : function ( ) { this . options . ref && this . options . ref . call ( null ) } , _getEvents : function ( ) { return _ . isArray ( this . events ) || ( this . events = [ ] ) , this . events } , on : function ( a , b ) { a = a . toLowerCase ( ) ; var c = this . _getEvents ( ) [ a ] ; _ . isArray ( c ) || ( c = [ ] , this . _getEvents ( ) [ a ] = c ) , c . push ( b ) } , once : function ( a , b ) { var c = function ( ) { b . apply ( this , arguments ) , this . un ( a , c ) } ; this . on ( a , c ) } , un : function ( a , b ) { if ( a = a . toLowerCase ( ) , null == b ) delete this . _getEvents ( ) [ a ] ; else { var c = this . _getEvents ( ) [ a ] ; if ( _ . isArray ( c ) ) { var d = [ ] ; _ . each ( c , function ( a ) { a != b && d . push ( a ) } ) , this . _getEvents ( ) [ a ] = d } } } , purgeListeners : function ( ) { this . events = [ ] } , fireEvent : function ( ) { var a = arguments [ 0 ] . toLowerCase ( ) , b = this . _getEvents ( ) [ a ] ; if ( BI . isArray ( b ) ) if ( BI . isArguments ( arguments [ 1 ] ) ) { for ( var c = 0 ; c < b . length ; c ++ ) if ( b [ c ] . apply ( this , arguments [ 1 ] ) === ! 1 ) return ! 1 } else for ( var d = Array . prototype . slice . call ( arguments , 1 ) , c = 0 ; c < b . length ; c ++ ) if ( b [ c ] . apply ( this , d ) === ! 1 ) return ! 1 ; return ! 0 } , destroy : function ( ) { this . destroyed && this . destroyed ( ) , this . _purgeRef ( ) , this . purgeListeners ( ) } } ) } ( ) , ! function ( ) { BI . Widget = BI . inherit ( BI . OB , { _defaultConfig : function ( ) { return BI . extend ( BI . Widget . superclass . _defaultConfig . apply ( this ) , { root : ! 1 , tagName : "div" , attributes : null , data : null , tag : null , disabled : ! 1 , invisible : ! 1 , invalid : ! 1 , baseCls : "" , extraCls : "" , cls : "" } ) } , beforeInit : null , beforeCreate : null , created : null , render : null , beforeMount : null , mounted : null , shouldUpdate : null , update : function ( ) { } , beforeDestroy : null , destroyed : null , _init : function ( ) { BI . Widget . superclass . _init . apply ( this , arguments ) , this . _initRoot ( ) , this . _initElementWidth ( ) , this . _initElementHeight ( ) , this . _initVisual ( ) , this . _initState ( ) , this . _initRender ( ) } , _initRender : function ( ) { this . beforeInit ? ( this . _ _asking = ! 0 , this . beforeInit ( BI . bind ( this . _render , this ) ) , this . _ _asking === ! 0 && ( this . _ _async = ! 0 ) ) : this . _render ( ) } , _render : function ( ) { this . _ _a
19969 : "DZ" , 19975 : "WM" , 19988 : "QJ" , 20048 : "YL" , 20056 : "SC" , 20060 : "NM" , 20094 : "QG" , 20127 : "QJ" , 20167 : "QC" , 20193 : "YG" , 20250 : "KH" , 20256 : "ZC" , 20282 : "SC" , 20285 : "QJG" , 20291 : "TD" , 20314 : "YD" , 20315 : "BF" , 20340 : "NE" , 20375 : "TD" , 20389 : "YJ" , 20391 : "CZ" , 20415 : "PB" , 20446 : "YS" , 20447 : "SQ" , 20504 : "TC" , 20608 : "KG" , 20854 : "QJ" , 20857 : "ZC" , 20911 : "PF" , 20985 : "AW" , 21032 : "PB" , 21048 : "XQ" , 21049 : "SC" , 21089 : "YS" , 21119 : "JC" , 21242 : "SB" , 21273 : "SC" , 21305 : "YP" , 21306 : "QO" , 21330 : "ZC" , 21333 : "SDC" , 21345 : "QK" , 21378 : "CA" , 21397 : "SC" , 21414 : "XS" , 21442 : "SC" , 21477 : "JG" , 21480 : "TD" , 21484 : "ZS" , 21494 : "YX" , 21505 : "YX" , 21512 : "HG" , 21523 : "XH" , 21537 : "PB" , 21542 : "PF" , 21549 : "KH" , 21571 : "E" , 21574 : "DA" , 21588 : "TD" , 21589 : "O" , 21618 : "ZC" , 21621 : "KHA" , 21632 : "ZJ" , 21654 : "KG" , 21679 : "LKG" , 21683 : "KH" , 21710 : "A" , 21719 : "YH" , 21734 : "WOE" , 21769 : "A" , 21780 : "WN" , 21804 : "XH" , 21834 : "A" , 21899 : "ZD" , 21903 : "RN" , 21908 : "WO" , 21939 : "ZC" , 21956 : "SA" , 21964 : "YA" , 21970 : "TD" , 22003 : "A" , 22031 : "JG" , 22040 : "XS" , 22060 : "ZC" , 22066 : "ZC" , 22079 : "MH" , 22129 : "XJ" , 22179 : "XA" , 22237 : "NJ" , 22244 : "TD" , 22280 : "JQ" , 22300 : "YH" , 22313 : "XW" , 22331 : "YQ" , 22343 : "YJ" , 22351 : "PH" , 22395 : "DC" , 22412 : "TD" , 22484 : "PB" , 22500 : "PB" , 22534 : "ZD" , 22549 : "DH" , 22561 : "PB" , 22612 : "TD" , 22771 : "KQ" , 22831 : "HB" , 22841 : "JG" , 22855 : "QJ" , 22865 : "XQ" , 23013 : "ML" , 23081 : "WM" , 23487 : "SX" , 23558 : "QJ" , 23561 : "YW" , 23586 : "YW" , 23614 : "YW" , 23615 : "SN" , 23631 : "PB" , 23646 : "ZS" , 23663 : "ZT" , 23673 : "YG" , 23762 : "TD" , 23769 : "ZS" , 23780 : "QJ" , 23884 : "QK" , 24055 : "XH" , 24113 : "DC" , 24162 : "ZC" , 24191 : "GA" , 24273 : "QJ" , 24324 : "NL" , 24377 : "TD" , 24378 : "QJ" , 24439 : "PF" , 24554 : "ZS" , 24683 : "TD" , 24694 : "WE" , 24733 : "LK" , 24925 : "TN" , 25094 : "ZG" , 25100 : "XQ" , 25103 : "XH" , 25153 : "PB" , 25170 : "PB" , 25179 : "KG" , 25203 : "PB" , 25240 : "ZS" , 25282 : "FB" , 25303 : "NA" , 25324 : "KG" , 25341 : "ZY" , 25373 : "WZ" , 25375 : "XJ" , 25384 : "A" , 25457 : "A" , 25528 : "SD" , 25530 : "SC" , 25552 : "TD" , 25774 : "ZC" , 25874 : "ZC" , 26044 : "YW" , 26080 : "WM" , 26292 : "PB" , 26333 : "PB" , 26355 : "ZY" , 26366 : "CZ" , 26397 : "ZC" , 26399 : "QJ" , 26415 : "ZS" , 26451 : "SB" , 26526 : "ZC" , 26552 : "JG" , 26561 : "TD" , 26588 : "JG" , 26597 : "CZ" , 26629 : "ZS" , 26638 : "YL" , 26646 : "XQ" , 26653 : "KG" , 26657 : "XJ" , 26727 : "HG" , 26894 : "ZC" , 26937 : "ZS" , 26946 : "ZC" , 26999 : "KJ" , 27099 : "KJ" , 27449 : "YQ" , 27481 : "XS" , 27542 : "ZS" , 27663 : "ZS" , 27748 : "TS" , 27784 : "SC" , 27788 : "ZD" , 27795 : "TD" , 27812 : "O" , 27850 : "PB" , 27852 : "MB" , 27895 : "SL" , 27898 : "PL" , 27973 : "QJ" , 27981 : "KH" , 27986 : "HX" , 27994 : "XJ" , 28044 : "YC" , 28065 : "WG" , 28177 : "SM" , 28267 : "QJ" , 28291 : "KH" , 28337 : "ZQ" , 28463 : "TL" , 28548 : "DC" , 28601 : "TD" , 28689 : "PB" , 28805 : "JG" , 28820 : "QG" , 28846 : "PB" , 28952 : "TD" , 28975 : "ZC" , 29100 : "A" , 29325 : "QJ" , 29575 : "SL" , 29602 : "FB" , 30010 : "TD" , 30044 : "CX" , 30058 : "PF" , 30091 : "YSP" , 30111 : "YN" , 30229 : "XJ" , 30427 : "SC" , 30465 : "SX" , 30631 : "YQ" , 30655 : "QJ" , 30684 : "QJG" , 30707 : "SD" , 30729 : "XH" , 30796 : "LG" , 30917 : "PB" , 31074 : "NM" , 31085 : "JZ" , 31109 : "SC" , 31181 : "ZC" , 31192 : "MLB" , 31293 : "JQ" , 31400 : "YX" , 31584 : "YJ" , 31896 : "ZN" , 31909 : "ZY" , 31995 : "XJ" , 32321 : "PF" , 32327 : "ZY" , 32418 : "HG" , 32420 : "XQ" , 32421 : "HG" , 32438 : "LG" , 32473 : "GJ" , 32488 : "TD" , 32521 : "QJ" , 32527 : "PB" , 32562 : "ZSQ" , 32564 : "JZ" , 32735 : "ZD" , 32793 : "PB" , 33071 : "PF" , 33098 : "XL" , 33100 : "YA" , 33152 : "PB" , 33261 : "CX" , 33324 : "BP" , 33333 : "TD" , 33406 : "YA" , 33426 : "WM" , 33432 : "PB" , 33445 : "JG" , 33486 : "ZN" , 33493 : "TS" , 33507 : "QJ" , 33540 : "QJ" , 33544 : "ZC" , 33564 : "XQ" , 33617 : "YT" , 33632 : "QJ" , 33636 : "XH" , 33637 : "YX" , 33694 : "WG" , 33705 : "PF" , 33728 : "YW" , 33882 : "SR" , 34067 : "WM" , 34074 : "YW" , 34121 : "QJ" , 34255 : "ZC" , 34259 : "XL" , 34425 : "JH" , 34430 : "XH" , 34485 : "KH" , 34503 : "YS" , 34532 : "HG" , 34552 : "XS" , 34558 : "YE" , 34593 : "ZL" , 34660 : "YQ" , 34892 : "XH" , 34928 : "SC" , 34999 : "QJ" , 35048 : "PB" , 35059 : "SC" , 35098 : "ZC" , 35203 : "TQ" , 35265 : "JX" , 35299 : "JX" , 35782 : "SZ" , 35828 : "YS" , 35830 : "E" , 35843 : "TD" , 35895 : "YG" , 35977 : "MH" , 36158 : "JG" , 36228 : "QJ" , 36426 : "XQ" , 36466 : "DC" , 36710 : "JC" , 36711 : "ZYG" , 36767 : "PB" , 36866 : "SK" , 36951 : "YW" , 37034 : "YX" , 37063 : "XH" , 37218 : "ZC" , 37325 : "ZC" , 38063 : "PB" , 38079 : "TD" , 38085 : "QY" , 38107 : "DC" , 38116 : "TD" , 38123 : "YD" , 38224 : "HG" , 38241 : "XTC" , 38271 : "ZC" , 38415 : "YE" , 38426 : "KH" , 38461 : "YD" , 38463 : "AE" , 38466 : "PB" , 38477 : "XJ" , 38518 : "YT" , 38551 : "WK" , 38585 : "ZC" , 38704 : "XS" , 38739 : "LJ" , 38761 : "GJ" , 38808 : "SQ" , 39048 : "JG" , 39049 : "XJ" , 39052 : "HG" , 39076 : "CZ" , 39271 : "XT" , 39534 : "TD" , 39552 : "TD" , 39584 : "PB" , 39647 : "SB" , 39730 : "LG" , 39748 : "TPB" , 40109 : "ZQ" , 40479 : "ND" , 40516 : "HG" , 40536 : "HG" , 40583 : "QJ" , 40765 : "YQ" , 40784 : "QJ" , 40840 : "YK" , 40863 : "QJG" } , c = function (
actionBack : function ( a , b , c ) { } } ) , BI . ActionFactory = { createAction : function ( a , b ) { var c ; switch ( a ) { case "show" : c = BI . ShowAction } return new c ( b ) } } , BI . ShowAction = BI . inherit ( BI . Action , { _defaultConfig : function ( ) { return BI . extend ( BI . ShowAction . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . ShowAction . superclass . _init . apply ( this , arguments ) } , actionPerformed : function ( a , b , c ) { b = b || this . options . tar , b . setVisible ( ! 0 ) , c && c ( ) } , actionBack : function ( a , b , c ) { a = a || this . options . tar , a . setVisible ( ! 1 ) , c && c ( ) } } ) , function ( ) { function isEmpty ( a ) { var b = "" === a || null === a || void 0 === a ; return b } function isInvalidDate ( a ) { return "Invalid Date" == a || "NaN" == a } function _eFormat ( a , b ) { function c ( a , b ) { var c = a < 0 ? ( a *= - 1 , "-" ) : "" , h = "" , i = a > 0 && a < 1 ? "floor" : "ceil" , j = Math [ i ] ( Math . log ( a ) / Math . log ( 10 ) ) ; if ( ! isFinite ( j ) ) return b . replace ( /#/gi , "" ) . replace ( /\.e/gi , "E" ) ; a /= Math . pow ( 10 , j ) , a > 0 && a < 1 && ( a *= 10 , j -= 1 ) ; var k = f ( j , b ) ; k > 1 && ( j -= k - 1 , a *= Math . pow ( 10 , k - 1 ) ) , j < 0 && ( h = "-" , j *= - 1 ) ; var l = e ( b ) , m = g ( a ) ; return a *= Math . pow ( 10 , l ) , a = Math . round ( a ) , m && ( a /= 10 , j += "-" === h ? - 1 : 1 ) , a /= Math . pow ( 10 , l ) , a = a . toFixed ( l ) , j = d ( b , j , h ) , c + a + "E" + j } function d ( a , b , c ) { if ( b += "" , ! /e/gi . test ( a ) ) return b ; for ( a = a . split ( /e/gi ) [ 1 ] ; b . length < a . length ; ) b = "0" + b ; for ( var d = ! 0 , e = 0 , f = b . length ; e < f ; e ++ ) d && ( d = "0" === b . charAt ( e ) ) ; return c = d ? "" : c , c + b } function e ( a ) { if ( ! /e/gi . test ( a ) ) return 0 ; var b = a . split ( /e/gi ) [ 0 ] . split ( "." ) ; return b . length > 1 ? b [ 1 ] . length : 0 } function f ( a , b ) { if ( ! /e/gi . test ( b ) ) return 0 ; var c , d , e = b . split ( /e/gi ) [ 0 ] . split ( "." ) [ 0 ] , f = e . length , g = 0 ; for ( c = 0 ; c < f ; c ++ ) d = e . charAt ( c ) , ( 0 == d || "#" == d && f - c <= a + 1 ) && g ++ ; return g } function g ( a ) { var b = Math . round ( a ) ; return a = ( a + "" ) . split ( "." ) [ 0 ] , b = ( b + "" ) . split ( "." ) [ 0 ] , a . length !== b . length } return a = + a , c ( a , b ) } function _dealNumberPrecision ( a , b ) { if ( /[eE]/ . test ( a ) ) { var c , d = 0 , e = 0 ; /[%‰]$/ . test ( b ) && ( d = /[%]$/ . test ( b ) ? 2 : 3 ) ; for ( var f = b . length ; e < f ; e ++ ) "0" != ( c = b . charAt ( e ) ) && "#" != c || d ++ ; return Number ( a ) . toFixed ( d ) } return a } function _numberFormat ( a , b ) { var a = a + "" ; if ( ! /[0-9]/ . test ( a ) || ! b ) return a ; var c = b . indexOf ( ";" ) ; if ( c > - 1 ) return a >= 0 ? _numberFormat ( a + "" , b . substring ( 0 , c ) ) : _numberFormat ( - a + "" , b . substr ( c + 1 ) ) ; if ( + a < 0 && "-" !== b . charAt ( 0 ) ) return _numberFormat ( - a + "" , "-" + b ) ; var d = b . split ( "." ) , e = d [ 0 ] || "" , f = d [ 1 ] || "" ; a = _dealNumberPrecision ( a , f ) ; var g = a . split ( "." ) , h = g [ 0 ] || "" , i = g [ 1 ] || "" ; if ( /[%‰]$/ . test ( b ) ) { var j = /[%]$/ . test ( b ) ? "00" : "000" ; i += j , h += i . substr ( 0 , j . length ) , h = h . replace ( /^0+/gi , "" ) , i = i . substr ( j . length ) . replace ( /0+$/gi , "" ) } var k = _dealWithRight ( i , f ) ; k . leftPlus && ( h = parseInt ( h ) + 1 + "" , h = isNaN ( h ) ? "1" : h ) , k = k . num ; var l = _dealWithLeft ( h , e ) ; return /[0-9]/ . test ( l ) || ( l += "0" ) , /[0-9]/ . test ( k ) ? l + "." + k : l + k } function _dealWithRight ( a , b ) { for ( var c = "" , d = 0 , e = 0 , f = b . length ; e < f ; e ++ ) { var g = b . charAt ( e ) , h = a . charAt ( d ) ; switch ( g ) { case "0" : isEmpty ( h ) && ( h = "0" ) , c += h , d ++ ; break ; case "#" : c += h , d ++ ; break ; default : c += g } } var i = a . substr ( d ) , j = { } ; if ( ! isEmpty ( i ) && i . charAt ( 0 ) > 4 ) { j . leftPlus = ! 0 ; var k = c . match ( /^[0-9]+/ ) ; if ( k ) { var l = k [ 0 ] , m = l . length , n = parseInt ( l ) + 1 + "" ; n . length > m ? n = n . substr ( 1 ) : ( n = BI . leftPad ( n , m , "0" ) , j . leftPlus = ! 1 ) , c = c . replace ( /^[0-9]+/ , n ) } } return j . num = c , j } function _dealWithLeft ( a , b ) { for ( var c = "" , d = a . length - 1 , e = - 1 , f = - 1 , g = b . length - 1 ; g >= 0 ; g -- ) { var h = b . charAt ( g ) , i = a . charAt ( d ) ; switch ( h ) { case "0" : isEmpty ( i ) && ( i = "0" ) , f = - 1 , c = i + c , d -- ; break ; case "#" : f = g , c = i + c , d -- ; break ; case "," : if ( ! isEmpty ( i ) ) { var j = b . match ( /,[#0]+/ ) ; j && ( e = j [ 0 ] . length - 1 ) , c = "," + c } break ; default : c = h + c } } if ( f > - 1 ) { var k = a . substr ( 0 , d + 1 ) ; c = c . substr ( 0 , f ) + k + c . substr ( f ) } if ( e > 0 ) { var l = c . match ( /[0-9]+,/ ) ; if ( l ) { l = l [ 0 ] ; for ( var m = "" , n = l . length - 1 - e ; n >= 0 ; n -= e ) m = l . substr ( n , e ) + "," + m ; var o = l . substr ( 0 , n + e ) ; isEmpty ( o ) || ( m = o + "," + m ) } c = c . replace ( /[0-9]+,/ , m ) } return c } var _global ; _global = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , _global . BI || ( _global . BI = { } ) , BI . cjkEncode = function ( a ) { if ( "string" != typeof a ) return a ; for ( var b = "" , c = 0 ; c < a . length ; c ++ ) { var d = a . charCodeAt ( c ) ; b += d >= 128 || 91 === d || 93 === d ? "[" + d . toString ( 16 ) + "]" : a . charAt ( c ) } return b } , BI . cjkDecode = function ( text ) { if ( null == text ) return "" ; if ( ! isNaN ( text ) || text . indexOf ( "[" ) == - 1 ) return text ; for ( var newText = "" , i = 0 ; i < text . length ; i ++ ) { var ch = text . charAt ( i ) ; if ( "[" == ch ) { var rightIdx = text . indexOf ( "]" , i + 1 ) ; if ( righ
} } ) , { match : h , find : i } } } ) , _ . extend ( BI , { beforeFunc : function ( a , b ) { var c = a ; return function ( ) { return b . apply ( a , arguments ) !== ! 1 && c . apply ( a , arguments ) } } , afterFunc : function ( a ) { var b = sFunc ; return function ( ) { var c = b . apply ( sFunc , arguments ) ; return c !== ! 1 && ( a . apply ( sFunc , arguments ) , c ) } } } ) , _ . extend ( BI , { add : function ( a , b ) { function c ( 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 } return c ( b , a ) } , sub : function ( a , b ) { function c ( 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 ) } return c ( a , b ) } , mul : function ( a , b ) { function c ( 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 ) } return c ( b , a ) } , div : function ( a , b ) { function c ( a ) { var b = a . toString ( ) . split ( /[eE]/ ) , c = ( b [ 0 ] . split ( "." ) [ 1 ] || "" ) . length - + ( b [ 1 ] || 0 ) ; return c > 0 ? c : 0 } function d ( a ) { if ( a . toString ( ) . indexOf ( "e" ) === - 1 ) return Number ( a . toString ( ) . replace ( "." , "" ) ) ; var b = c ( a ) ; return b > 0 ? a * Math . pow ( 10 , b ) : a } function e ( a , b ) { for ( var f = [ ] , g = 2 ; g < arguments . length ; g ++ ) f [ g - 2 ] = arguments [ g ] ; if ( f . length > 0 ) return e . apply ( void 0 , [ e ( a , b ) , f [ 0 ] ] . concat ( f . slice ( 1 ) ) ) ; var h = d ( a ) , i = d ( b ) , j = c ( a ) + c ( b ) , k = h * i ; return k / Math . pow ( 10 , j ) } function f ( a , b ) { for ( var g = [ ] , h = 2 ; h < arguments . length ; h ++ ) g [ h - 2 ] = arguments [ h ] ; if ( g . length > 0 ) return f . apply ( void 0 , [ f ( a , b ) , g [ 0 ] ] . concat ( g . slice ( 1 ) ) ) ; var i = d ( a ) , j = d ( b ) ; return e ( i / j , Math . pow ( 10 , c ( b ) - c ( a ) ) ) } return f ( a , b ) } } ) , _ . extend ( BI , { startWith : function ( a , b ) { return a = a || "" , ! ( null == b || "" == b || 0 === a . length || b . length > a . length ) && a . substr ( 0 , b . length ) == b } , endWith : function ( a , b ) { return ! ( null == b || "" == b || 0 === a . length || b . length > a . length ) && a . substring ( a . length - b . length ) == b } , getQuery : function ( a , b ) { var c = new RegExp ( "(^|&)" + b + "=([^&]*)(&|$)" ) , d = a . substr ( a . indexOf ( "?" ) + 1 ) . match ( c ) ; return d ? unescape ( d [ 2 ] ) : null } , appendQuery : function ( a , b ) { if ( ! b ) return a ; var c = a ; return c . indexOf ( "?" ) === - 1 && ( c += "?" ) , c . endWith ( "?" ) !== ! 1 || ( c += "&" ) , _ . each ( b , function ( a , b ) { "string" == typeof b && ( c += b + "=" + a + "&" ) } ) , c = c . substr ( 0 , c . length - 1 ) } , replaceAll : function ( a , b , c ) { return a . replace ( new RegExp ( b , "gm" ) , c ) } , perfectStart : function ( a , b ) { return a . startWith ( b ) ? a : b + a } , allIndexOf : function ( a , b ) { if ( "string" != typeof b ) return [ ] ; for ( var c = [ ] , d = 0 ; a . length > 0 ; ) { var e = a . indexOf ( b ) ; if ( e === - 1 ) break ; c . push ( d + e ) , a = a . substring ( e + b . length , a . length ) , d += e + b . length } return c } } ) , ! function ( ) { var a = { } ; _ . extend ( BI , { addI18n : function ( b ) { BI . extend ( a , b ) } , i18nText : function ( b ) { var c = a [ b ] || BI . i18n && BI . i18n [ b ] || "" ; c || ( c = b ) ; var d = arguments . length ; if ( d > 1 ) { if ( ! ( c . indexOf ( "{R1}" ) > - 1 ) ) { var e = Array . prototype . slice . call ( arguments ) , f = 1 ; return BI . replaceAll ( c , "\\{\\s*\\}" , function ( ) { return e [ f ++ ] + "" } ) } for ( var g = 1 ; g < d ; g ++ ) { var b = "{R" + g + "}" ; c = BI . replaceAll ( c , b , arguments [ g ] + "" ) } } return c } } ) } ( ) , function ( ) { var a = { } ; BI . module = function ( b , c ) { null != a [ b ] && _global . console && console . error ( "module:[" + b + "] has been registed" ) , a [ b ] = c } ; var b = { } ; BI . constant = function ( a , c ) { null != b [ a ] && _global . console && console . error ( "constant:[" + a + "] has been registed" ) , b [ a ] = c } ; var c = { } ; BI . model = function ( a , b ) { null != c [ a ] && _global . console && console . error ( "model:[" + a + "] has been registed" ) , c [ a ] = b } ; var d = { } ; BI . store = function ( a , b ) { null != d [ a ] && _global . console && console . error ( "store:[" + a + "] has been registed" ) , d [ a ] = b } ; var e = { } ; BI . service = function ( a , b ) { null != e [ a ] && _global . console && console . error ( "service:[" + a + "] has been registed" ) , e [ a ] = b } ; var f = { } ; BI . provider = function ( a , b ) { null != f [ a ] && _global . console && console . error ( "provider:[" + a + "] has been registed" ) , f [ a ] = b } , BI . config = function ( a , c ) { return b [ a ] ? b [ a ] = c ( b [ a ] ) : f [ a ] ? ( m [ a ] || ( m [ a ] = new f [ a ] ) , c ( m [ a ] ) ) : void BI . Plugin .
return ia . inArray ( a , b ) >= 0 === c } ) } function m ( a ) { var b = Ua . split ( "|" ) , c = a . createDocumentFragment ( ) ; if ( c . createElement ) for ( ; b . length ; ) c . createElement ( b . pop ( ) ) ; return c } function n ( a , b ) { return a . getElementsByTagName ( b ) [ 0 ] || a . appendChild ( a . ownerDocument . createElement ( b ) ) } function o ( a ) { var b = a . getAttributeNode ( "type" ) ; return a . type = ( b && b . specified ) + "/" + a . type , a } function p ( a ) { var b = eb . exec ( a . type ) ; return b ? a . type = b [ 1 ] : a . removeAttribute ( "type" ) , a } function q ( a , b ) { for ( var c , d = 0 ; null != ( c = a [ d ] ) ; d ++ ) ia . _data ( c , "globalEval" , ! b || ia . _data ( b [ d ] , "globalEval" ) ) } function r ( a , b ) { if ( 1 === b . nodeType && ia . hasData ( a ) ) { var c , d , e , f = ia . _data ( a ) , g = ia . _data ( b , f ) , h = f . events ; if ( h ) { delete g . handle , g . events = { } ; for ( c in h ) for ( d = 0 , e = h [ c ] . length ; d < e ; d ++ ) ia . event . add ( b , c , h [ c ] [ d ] ) } g . data && ( g . data = ia . extend ( { } , g . data ) ) } } function s ( a , b ) { var c , d , e ; if ( 1 === b . nodeType ) { if ( c = b . nodeName . toLowerCase ( ) , ! ia . support . noCloneEvent && b [ ia . expando ] ) { e = ia . _data ( b ) ; for ( d in e . events ) ia . removeEvent ( b , d , e . handle ) ; b . removeAttribute ( ia . expando ) } "script" === c && b . text !== a . text ? ( o ( b ) . text = a . text , p ( b ) ) : "object" === c ? ( b . parentNode && ( b . outerHTML = a . outerHTML ) , ia . support . html5Clone && a . innerHTML && ! ia . trim ( b . innerHTML ) && ( b . innerHTML = a . innerHTML ) ) : "input" === c && bb . test ( a . type ) ? ( b . defaultChecked = b . checked = a . checked , b . value !== a . value && ( b . value = a . value ) ) : "option" === c ? b . defaultSelected = b . selected = a . defaultSelected : "input" !== c && "textarea" !== c || ( b . defaultValue = a . defaultValue ) } } function t ( a , c ) { var d , e , f = 0 , g = typeof a . getElementsByTagName !== V ? a . getElementsByTagName ( c || "*" ) : typeof a . querySelectorAll !== V ? a . querySelectorAll ( c || "*" ) : b ; if ( ! g ) for ( g = [ ] , d = a . childNodes || a ; null != ( e = d [ f ] ) ; f ++ ) ! c || ia . nodeName ( e , c ) ? g . push ( e ) : ia . merge ( g , t ( e , c ) ) ; return c === b || c && ia . nodeName ( a , c ) ? ia . merge ( [ a ] , g ) : g } function u ( a ) { bb . test ( a . type ) && ( a . defaultChecked = a . checked ) } function v ( a , b ) { if ( b in a ) return b ; for ( var c = b . charAt ( 0 ) . toUpperCase ( ) + b . slice ( 1 ) , d = b , e = yb . length ; e -- ; ) if ( b = yb [ e ] + c , b in a ) return b ; return d } function w ( a , b ) { return a = b || a , "none" === ia . css ( a , "display" ) || ! ia . contains ( a . ownerDocument , a ) } function x ( a , b ) { for ( var c , d , e , f = [ ] , g = 0 , h = a . length ; g < h ; g ++ ) d = a [ g ] , d . style && ( f [ g ] = ia . _data ( d , "olddisplay" ) , c = d . style . display , b ? ( f [ g ] || "none" !== c || ( d . style . display = "" ) , "" === d . style . display && w ( d ) && ( f [ g ] = ia . _data ( d , "olddisplay" , B ( d . nodeName ) ) ) ) : f [ g ] || ( e = w ( d ) , ( c && "none" !== c || ! e ) && ia . _data ( d , "olddisplay" , e ? c : ia . css ( d , "display" ) ) ) ) ; for ( g = 0 ; g < h ; g ++ ) d = a [ g ] , d . style && ( b && "none" !== d . style . display && "" !== d . style . display || ( d . style . display = b ? f [ g ] || "" : "none" ) ) ; return a } function y ( a , b , c ) { var d = rb . exec ( b ) ; return d ? Math . max ( 0 , d [ 1 ] - ( c || 0 ) ) + ( d [ 2 ] || "px" ) : b } function z ( a , b , c , d , e ) { for ( var f = c === ( d ? "border" : "content" ) ? 4 : "width" === b ? 1 : 0 , g = 0 ; f < 4 ; f += 2 ) "margin" === c && ( g += ia . css ( a , c + xb [ f ] , ! 0 , e ) ) , d ? ( "content" === c && ( g -= ia . css ( a , "padding" + xb [ f ] , ! 0 , e ) ) , "margin" !== c && ( g -= ia . css ( a , "border" + xb [ f ] + "Width" , ! 0 , e ) ) ) : ( g += ia . css ( a , "padding" + xb [ f ] , ! 0 , e ) , "padding" !== c && ( g += ia . css ( a , "border" + xb [ f ] + "Width" , ! 0 , e ) ) ) ; return g } function A ( a , b , c ) { var d = ! 0 , e = "width" === b ? a . offsetWidth : a . offsetHeight , f = kb ( a ) , g = ia . support . boxSizing && "border-box" === ia . css ( a , "boxSizing" , ! 1 , f ) ; if ( e <= 0 || null == e ) { if ( e = lb ( a , b , f ) , ( e < 0 || null == e ) && ( e = a . style [ b ] ) , sb . test ( e ) ) return e ; d = g && ( ia . support . boxSizingReliable || e === a . style [ b ] ) , e = parseFloat ( e ) || 0 } return e + z ( a , b , c || ( g ? "border" : "content" ) , d , f ) + "px" } function B ( a ) { var b = W , c = ub [ a ] ; return c || ( c = C ( a , b ) , "none" !== c && c || ( jb = ( jb || ia ( "<iframe frameborder='0' width='0' height='0'/>" ) . css ( "cssText" , "display:block !important" ) ) . appendTo ( b . documentElement ) , b = ( jb [ 0 ] . contentWindow || jb [ 0 ] . contentDocument ) . document , b . write ( "<!doctype html><html><body>" ) , b . close ( ) , c = C ( a , b ) , jb . detach ( ) ) , ub [ a ] = c ) , c } function C ( a , b ) { var c = ia ( b . createElement ( a ) ) . appendTo ( b . body ) , d = ia . css ( c [ 0 ] , "display" ) ; return c . remove ( ) , d } function D ( a , b , c , d ) { var e ; if ( ia . isArray ( b ) ) ia . each ( b , function ( b , e ) { c || Ab . test ( a ) ? d ( a , e ) : D ( a + "[" + ( "object" == typeof e ? b : "" ) + "]" , e , c , d ) } ) ; else if ( c || "object" !== ia . type ( b ) ) d ( a , b ) ; else for ( e in b ) D ( a + "[" + e + "]" , b [ e ] , c , d ) } function E ( a ) { return function ( b , c ) { "string" != typeof b && ( c = b , b = "*" ) ; var d , e = 0 , f = b . toLowerCase ( ) . match ( ka ) || [ ] ; if ( ia . isFunction ( c ) ) for ( ; d = f [ e ++ ] ; ) "+" === d [ 0 ] ? ( d = d . slice ( 1 ) || "*" , ( a [ d ] = a [ d ] |
ia . event = { global : { } , add : function ( a , c , d , e , f ) { var g , h , i , j , k , l , m , n , o , p , q , r = ia . _data ( a ) ; if ( r ) { for ( d . handler && ( j = d , d = j . handler , f = j . selector ) , d . guid || ( d . guid = ia . guid ++ ) , ( h = r . events ) || ( h = r . events = { } ) , ( l = r . handle ) || ( l = r . handle = function ( a ) { return typeof ia === V || a && ia . event . triggered === a . type ? b : ia . event . dispatch . apply ( l . elem , arguments ) } , l . elem = a ) , c = ( c || "" ) . match ( ka ) || [ "" ] , i = c . length ; i -- ; ) g = Oa . exec ( c [ i ] ) || [ ] , o = q = g [ 1 ] , p = ( g [ 2 ] || "" ) . split ( "." ) . sort ( ) , k = ia . event . special [ o ] || { } , o = ( f ? k . delegateType : k . bindType ) || o , k = ia . event . special [ o ] || { } , m = ia . extend ( { type : o , origType : q , data : e , handler : d , guid : d . guid , selector : f , needsContext : f && ia . expr . match . needsContext . test ( f ) , namespace : p . join ( "." ) } , j ) , ( n = h [ o ] ) || ( n = h [ o ] = [ ] , n . delegateCount = 0 , k . setup && k . setup . call ( a , e , p , l ) !== ! 1 || ( a . addEventListener ? a . addEventListener ( o , l , ! 1 ) : a . attachEvent && a . attachEvent ( "on" + o , l ) ) ) , k . add && ( k . add . call ( a , m ) , m . handler . guid || ( m . handler . guid = d . guid ) ) , f ? n . splice ( n . delegateCount ++ , 0 , m ) : n . push ( m ) , ia . event . global [ o ] = ! 0 ; a = null } } , remove : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = ia . hasData ( a ) && ia . _data ( a ) ; if ( q && ( k = q . events ) ) { for ( b = ( b || "" ) . match ( ka ) || [ "" ] , j = b . length ; j -- ; ) if ( h = Oa . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n ) { for ( l = ia . event . special [ n ] || { } , n = ( d ? l . delegateType : l . bindType ) || n , m = k [ n ] || [ ] , h = h [ 2 ] && new RegExp ( "(^|\\.)" + o . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , i = f = m . length ; f -- ; ) g = m [ f ] , ! e && p !== g . origType || c && c . guid !== g . guid || h && ! h . test ( g . namespace ) || d && d !== g . selector && ( "**" !== d || ! g . selector ) || ( m . splice ( f , 1 ) , g . selector && m . delegateCount -- , l . remove && l . remove . call ( a , g ) ) ; i && ! m . length && ( l . teardown && l . teardown . call ( a , o , q . handle ) !== ! 1 || ia . removeEvent ( a , n , q . handle ) , delete k [ n ] ) } else for ( n in k ) ia . event . remove ( a , n + b [ j ] , c , d , ! 0 ) ; ia . isEmptyObject ( k ) && ( delete q . handle , ia . _removeData ( a , "events" ) ) } } , trigger : function ( c , d , e , f ) { var g , h , i , j , k , l , m , n = [ e || W ] , o = ga . call ( c , "type" ) ? c . type : c , p = ga . call ( c , "namespace" ) ? c . namespace . split ( "." ) : [ ] ; if ( i = l = e = e || W , 3 !== e . nodeType && 8 !== e . nodeType && ! Na . test ( o + ia . event . triggered ) && ( o . indexOf ( "." ) >= 0 && ( p = o . split ( "." ) , o = p . shift ( ) , p . sort ( ) ) , h = o . indexOf ( ":" ) < 0 && "on" + o , c = c [ ia . expando ] ? c : new ia . Event ( o , "object" == typeof c && c ) , c . isTrigger = ! 0 , c . namespace = p . join ( "." ) , c . namespace _re = c . namespace ? new RegExp ( "(^|\\.)" + p . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null , c . result = b , c . target || ( c . target = e ) , d = null == d ? [ c ] : ia . makeArray ( d , [ c ] ) , k = ia . event . special [ o ] || { } , f || ! k . trigger || k . trigger . apply ( e , d ) !== ! 1 ) ) { if ( ! f && ! k . noBubble && ! ia . isWindow ( e ) ) { for ( j = k . delegateType || o , Na . test ( j + o ) || ( i = i . parentNode ) ; i ; i = i . parentNode ) n . push ( i ) , l = i ; l === ( e . ownerDocument || W ) && n . push ( l . defaultView || l . parentWindow || a ) } for ( m = 0 ; ( i = n [ m ++ ] ) && ! c . isPropagationStopped ( ) ; ) c . type = m > 1 ? j : k . bindType || o , g = ( ia . _data ( i , "events" ) || { } ) [ c . type ] && ia . _data ( i , "handle" ) , g && g . apply ( i , d ) , g = h && i [ h ] , g && ia . acceptData ( i ) && g . apply && g . apply ( i , d ) === ! 1 && c . preventDefault ( ) ; if ( c . type = o , ! f && ! c . isDefaultPrevented ( ) && ( ! k . _default || k . _default . apply ( e . ownerDocument , d ) === ! 1 ) && ( "click" !== o || ! ia . nodeName ( e , "a" ) ) && ia . acceptData ( e ) && h && e [ o ] && ! ia . isWindow ( e ) ) { l = e [ h ] , l && ( e [ h ] = null ) , ia . event . triggered = o ; try { e [ o ] ( ) } catch ( q ) { } ia . event . triggered = b , l && ( e [ h ] = l ) } return c . result } } , dispatch : function ( a ) { a = ia . event . fix ( a ) ; var c , d , e , f , g , h = [ ] , i = da . call ( arguments ) , j = ( ia . _data ( this , "events" ) || { } ) [ a . type ] || [ ] , k = ia . event . special [ a . type ] || { } ; if ( i [ 0 ] = a , a . delegateTarget = this , ! k . preDispatch || k . preDispatch . call ( this , a ) !== ! 1 ) { for ( h = ia . event . handlers . call ( this , a , j ) , c = 0 ; ( f = h [ c ++ ] ) && ! a . isPropagationStopped ( ) ; ) for ( a . currentTarget = f . elem , g = 0 ; ( e = f . handlers [ g ++ ] ) && ! a . isImmediatePropagationStopped ( ) ; ) if ( ! a . namespace _re || a . namespace _re . test ( e . namespace ) ) { a . handleObj = e , a . data = e . data ; var l = ( ia . event . special [ e . origType ] || { } ) . handle || e . handler ; l . apply && ( d = l . apply ( f . elem , i ) ) , d !== b && ( a . result = d ) === ! 1 && ( a . preventDefault ( ) , a . stopPropagation ( ) ) } return k . postDispatch && k . postDispatch . call ( this , a ) , a . result } } , handlers : function ( a , c ) { var d , e , f , g , h = [ ] , i = c . delegateCount , j = a . target ; if ( i && j . nodeType && ( ! a . button || "click" !== a . type ) ) for ( ; j != this ; j = j . parentNode || this ) if ( 1 === j . nodeType && ( j . disabled !== ! 0 || "click" !== a . type ) ) { for ( f = [ ] , g = 0 ; g < i ; g ++ ) e = c [ g ] , d = e . selector + " " , f [ d ] === b && ( f [ d ] = e . needsContext ? ia ( d , this ) . inde
gb . optgroup = gb . option , gb . tbody = gb . tfoot = gb . colgroup = gb . caption = gb . thead , gb . th = gb . td , ia . fn . extend ( { text : function ( a ) { return ia . access ( this , function ( a ) { return a === b ? ia . text ( this ) : this . empty ( ) . append ( ( this [ 0 ] && this [ 0 ] . ownerDocument || W ) . createTextNode ( a ) ) } , null , a , arguments . length ) } , wrapAll : function ( a ) { if ( ia . isFunction ( a ) ) return this . each ( function ( b ) { ia ( this ) . wrapAll ( a . call ( this , b ) ) } ) ; if ( this [ 0 ] ) { var b = ia ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) ; this [ 0 ] . parentNode && b . insertBefore ( this [ 0 ] ) , b . map ( function ( ) { for ( var a = this ; a . firstChild && 1 === a . firstChild . nodeType ; ) a = a . firstChild ; return a } ) . append ( this ) } return this } , wrapInner : function ( a ) { return ia . isFunction ( a ) ? this . each ( function ( b ) { ia ( this ) . wrapInner ( a . call ( this , b ) ) } ) : this . each ( function ( ) { var b = ia ( this ) , c = b . contents ( ) ; c . length ? c . wrapAll ( a ) : b . append ( a ) } ) } , wrap : function ( a ) { var b = ia . isFunction ( a ) ; return this . each ( function ( c ) { ia ( this ) . wrapAll ( b ? a . call ( this , c ) : a ) } ) } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { ia . nodeName ( this , "body" ) || ia ( this ) . replaceWith ( this . childNodes ) } ) . end ( ) } , append : function ( ) { return this . domManip ( arguments , ! 0 , function ( a ) { 1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || this . appendChild ( a ) } ) } , prepend : function ( ) { return this . domManip ( arguments , ! 0 , function ( a ) { 1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || this . insertBefore ( a , this . firstChild ) } ) } , before : function ( ) { return this . domManip ( arguments , ! 1 , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this ) } ) } , after : function ( ) { return this . domManip ( arguments , ! 1 , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this . nextSibling ) } ) } , remove : function ( a , b ) { for ( var c , d = 0 ; null != ( c = this [ d ] ) ; d ++ ) ( ! a || ia . filter ( a , [ c ] ) . length > 0 ) && ( b || 1 !== c . nodeType || ia . cleanData ( t ( c ) ) , c . parentNode && ( b && ia . contains ( c . ownerDocument , c ) && q ( t ( c , "script" ) ) , c . parentNode . removeChild ( c ) ) ) ; return this } , empty : function ( ) { for ( var a , b = 0 ; null != ( a = this [ b ] ) ; b ++ ) { for ( 1 === a . nodeType && ia . cleanData ( t ( a , ! 1 ) ) ; a . firstChild ; ) a . removeChild ( a . firstChild ) ; a . options && ia . nodeName ( a , "select" ) && ( a . options . length = 0 ) } return this } , clone : function ( a , b ) { return a = null != a && a , b = null == b ? a : b , this . map ( function ( ) { return ia . clone ( this , a , b ) } ) } , html : function ( a ) { return ia . access ( this , function ( a ) { var c = this [ 0 ] || { } , d = 0 , e = this . length ; if ( a === b ) return 1 === c . nodeType ? c . innerHTML . replace ( Va , "" ) : b ; if ( "string" == typeof a && ! ab . test ( a ) && ( ia . support . htmlSerialize || ! Wa . test ( a ) ) && ( ia . support . leadingWhitespace || ! Xa . test ( a ) ) && ! gb [ ( Za . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { a = a . replace ( Ya , "<$1></$2>" ) ; try { for ( ; d < e ; d ++ ) c = this [ d ] || { } , 1 === c . nodeType && ( ia . cleanData ( t ( c , ! 1 ) ) , c . innerHTML = a ) ; c = 0 } catch ( f ) { } } c && this . empty ( ) . append ( a ) } , null , a , arguments . length ) } , replaceWith : function ( a ) { var b = ia . isFunction ( a ) ; return b || "string" == typeof a || ( a = ia ( a ) . not ( this ) . detach ( ) ) , this . domManip ( [ a ] , ! 0 , function ( a ) { var b = this . nextSibling , c = this . parentNode ; c && ( ia ( this ) . remove ( ) , c . insertBefore ( a , b ) ) } ) } , detach : function ( a ) { return this . remove ( a , ! 0 ) } , domManip : function ( a , c , d ) { a = ba . apply ( [ ] , a ) ; var e , f , g , h , i , j , k = 0 , l = this . length , m = this , q = l - 1 , r = a [ 0 ] , s = ia . isFunction ( r ) ; if ( s || ! ( l <= 1 || "string" != typeof r || ia . support . checkClone ) && cb . test ( r ) ) return this . each ( function ( e ) { var f = m . eq ( e ) ; s && ( a [ 0 ] = r . call ( this , e , c ? f . html ( ) : b ) ) , f . domManip ( a , c , d ) } ) ; if ( l && ( j = ia . buildFragment ( a , this [ 0 ] . ownerDocument , ! 1 , this ) , e = j . firstChild , 1 === j . childNodes . length && ( j = e ) , e ) ) { for ( c = c && ia . nodeName ( e , "tr" ) , h = ia . map ( t ( j , "script" ) , o ) , g = h . length ; k < l ; k ++ ) f = j , k !== q && ( f = ia . clone ( f , ! 0 , ! 0 ) , g && ia . merge ( h , t ( f , "script" ) ) ) , d . call ( c && ia . nodeName ( this [ k ] , "table" ) ? n ( this [ k ] , "tbody" ) : this [ k ] , f , k ) ; if ( g ) for ( i = h [ h . length - 1 ] . ownerDocument , ia . map ( h , p ) , k = 0 ; k < g ; k ++ ) f = h [ k ] , db . test ( f . type || "" ) && ! ia . _data ( f , "globalEval" ) && ia . contains ( i , f ) && ( f . src ? ia . ajax ( { url : f . src , type : "GET" , dataType : "script" , async : ! 1 , global : ! 1 , "throws" : ! 0 } ) : ia . globalEval ( ( f . text || f . textContent || f . innerHTML || "" ) . replace ( fb , "" ) ) ) ; j = e = null } return this } } ) , ia . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( a , b ) { ia . fn [ a ] = function ( a ) { for ( var c , d = 0 , e = [ ] , f = ia ( a ) , g = f . length - 1 ; d <= g ; d ++ ) c = d === g ? this : this . clone ( ! 0 ) , ia ( f [ d ] ) [ b ] ( c ) , ca . apply ( e , c
h = - h ) , j = "0" , h > 1e-21 ) if ( k = e ( h * d ( 2 , 69 , 1 ) ) - 69 , l = k < 0 ? h * d ( 2 , - k , 1 ) : h / d ( 2 , k , 1 ) , l *= 4503599627370496 , k = 52 - k , k > 0 ) { for ( a ( 0 , l ) , m = g ; m >= 7 ; ) a ( 1e7 , 0 ) , m -= 7 ; for ( a ( d ( 10 , m , 1 ) , 0 ) , m = k - 1 ; m >= 23 ; ) b ( 1 << 23 ) , m -= 23 ; b ( 1 << m ) , a ( 1 , 1 ) , b ( 2 ) , j = c ( ) } else a ( 0 , l ) , a ( 1 << - k , 0 ) , j = c ( ) + "0.00000000000000000000" . slice ( 2 , 2 + g ) ; return g > 0 ? ( n = j . length , j = n <= g ? i + "0.0000000000000000000" . slice ( 0 , g - n + 2 ) + j : i + j . slice ( 0 , n - g ) + "." + j . slice ( n - g ) ) : j = i + j , j } } ( ) , _ . extend ( BI , { MAX : 0x1000000000000000 , MIN : - 0x1000000000000000 , EVENT _RESPONSE _TIME : 200 , zIndex _layer : 1e5 , zIndex _popover : 1e6 , zIndex _popup : 1e7 , zIndex _masker : 1e8 , zIndex _tip : 1e9 , emptyStr : "" , emptyFn : function ( ) { } , empty : null , Key : { 48 : "0" , 49 : "1" , 50 : "2" , 51 : "3" , 52 : "4" , 53 : "5" , 54 : "6" , 55 : "7" , 56 : "8" , 57 : "9" , 65 : "a" , 66 : "b" , 67 : "c" , 68 : "d" , 69 : "e" , 70 : "f" , 71 : "g" , 72 : "h" , 73 : "i" , 74 : "j" , 75 : "k" , 76 : "l" , 77 : "m" , 78 : "n" , 79 : "o" , 80 : "p" , 81 : "q" , 82 : "r" , 83 : "s" , 84 : "t" , 85 : "u" , 86 : "v" , 87 : "w" , 88 : "x" , 89 : "y" , 90 : "z" , 96 : "0" , 97 : "1" , 98 : "2" , 99 : "3" , 100 : "4" , 101 : "5" , 102 : "6" , 103 : "7" , 104 : "8" , 105 : "9" , 106 : "*" , 107 : "+" , 109 : "-" , 110 : "." , 111 : "/" } , KeyCode : { BACKSPACE : 8 , COMMA : 188 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , LEFT : 37 , NUMPAD _ADD : 107 , NUMPAD _DECIMAL : 110 , NUMPAD _DIVIDE : 111 , NUMPAD _ENTER : 108 , NUMPAD _MULTIPLY : 106 , NUMPAD _SUBTRACT : 109 , PAGE _DOWN : 34 , PAGE _UP : 33 , PERIOD : 190 , RIGHT : 39 , SPACE : 32 , TAB : 9 , UP : 38 } , Status : { SUCCESS : 1 , WRONG : 2 , START : 3 , END : 4 , WAITING : 5 , READY : 6 , RUNNING : 7 , OUTOFBOUNDS : 8 , NULL : - 1 } , Direction : { Top : "top" , Bottom : "bottom" , Left : "left" , Right : "right" , Custom : "custom" } , Axis : { Vertical : "vertical" , Horizontal : "horizontal" } , Selection : { Default : - 2 , None : - 1 , Single : 0 , Multi : 1 , All : 2 } , HorizontalAlign : { Left : "left" , Right : "right" , Center : "center" , Stretch : "stretch" } , VerticalAlign : { Middle : "middle" , Top : "top" , Bottom : "bottom" , Stretch : "stretch" } , StartOfWeek : 1 } ) , BI . version = "2.0" , BI . AbsoluteCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AbsoluteCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-absolute-center-layout" , hgap : 0 , lgap : 0 , rgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . AbsoluteCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AbsoluteCenterLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "absolute" , left : c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) , right : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) , top : c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) , bottom : c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) , margin : "auto" } ) , d } , resize : function ( ) { } , populate : function ( a ) { BI . AbsoluteCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.absolute_center_adapt" , BI . AbsoluteCenterLayout ) , BI . AbsoluteHorizontalLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AbsoluteHorizontalLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-absolute-horizontal-layout" , hgap : 0 , lgap : 0 , rgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . AbsoluteHorizontalLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AbsoluteHorizontalLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "absolute" , left : c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) , right : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) , margin : "auto" } ) , c . vgap + c . tgap + ( b . vgap || 0 ) + ( b . tgap || 0 ) !== 0 && d . element . css ( "top" , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) ) , c . vgap + c . bgap + ( b . vgap || 0 ) + ( b . bgap || 0 ) !== 0 && d . element . css ( "bottom" , c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) ) , d } , resize : function ( ) { } , populate : function ( a ) { BI . AbsoluteHorizontalLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.absolute_horizontal_adapt" , BI . AbsoluteHorizontalLayout ) , BI . AbsoluteVerticalLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AbsoluteVerticalLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-absolute-vertical-layout" , hgap : 0 , lgap : 0 , rgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . AbsoluteVerticalLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AbsoluteVerticalLayout . superclass . _addElement . apply ( this , argument
left : b . left || 0 , right : b . right || 0 , bottom : "initial" } ) } c = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "south" in a && ( b = a . south , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "south" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "south" , g ) } this . getWidgetByName ( this . getName ( ) + "south" ) . element . height ( b . height ) . css ( { position : "absolute" , bottom : b . bottom || 0 , left : b . left || 0 , right : b . right || 0 , top : "initial" } ) } d = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "west" in a && ( b = a . west , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "west" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "west" , g ) } this . getWidgetByName ( this . getName ( ) + "west" ) . element . width ( b . width ) . css ( { position : "absolute" , left : b . left || 0 , top : c , bottom : d , right : "initial" } ) } e = ( b . width || 0 ) + ( b . left || 0 ) + ( b . right || 0 ) } if ( "east" in a && ( b = a . east , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "east" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "east" , g ) } this . getWidgetByName ( this . getName ( ) + "east" ) . element . width ( b . width ) . css ( { position : "absolute" , right : b . right || 0 , top : c , bottom : d , left : "initial" } ) } f = ( b . width || 0 ) + ( b . left || 0 ) + ( b . right || 0 ) } if ( "center" in a && ( b = a . center , null != b ) ) { if ( ! this . hasWidget ( this . getName ( ) + "center" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "center" , g ) } this . getWidgetByName ( this . getName ( ) + "center" ) . element . css ( { position : "absolute" , top : c , bottom : d , left : e , right : f } ) } } , populate : function ( a ) { BI . BorderLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.border" , BI . BorderLayout ) , BI . CardLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . CardLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-card-layout" , items : [ ] } ) } , render : function ( ) { BI . CardLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , stroke : function ( a ) { var b = this , c = this . options ; this . showIndex = void 0 , BI . each ( a , function ( a , d ) { if ( d ) { if ( b . hasWidget ( d . cardName ) ) var e = b . getWidgetByName ( d . cardName ) ; else { var e = BI . createWidget ( d ) ; e . on ( BI . Events . DESTROY , function ( ) { var a = BI . findIndex ( c . items , function ( a , b ) { return b . cardName == d . cardName } ) ; a > - 1 && c . items . splice ( a , 1 ) } ) , b . addWidget ( d . cardName , e ) } e . element . css ( { position : "absolute" , top : "0" , right : "0" , bottom : "0" , left : "0" } ) , e . setVisible ( ! 1 ) } } ) } , update : function ( ) { } , empty : function ( ) { BI . CardLayout . superclass . empty . apply ( this , arguments ) , this . options . items = [ ] } , populate : function ( a ) { BI . CardLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) , this . options . defaultShowName && this . showCardByName ( this . options . defaultShowName ) } , isCardExisted : function ( a ) { return BI . some ( this . options . items , function ( b , c ) { return c . cardName == a && c . el } ) } , getCardByName : function ( a ) { if ( ! this . isCardExisted ( a ) ) throw new Error ( "cardName is not exist" ) ; return this . _children [ a ] } , _deleteCardByName : function ( a ) { delete this . _children [ a ] ; var b = BI . findIndex ( this . options . items , function ( b , c ) { return c . cardName == a } ) ; b > - 1 && this . options . items . splice ( b , 1 ) } , deleteCardByName : function ( a ) { if ( ! this . isCardExisted ( a ) ) throw new Error ( "cardName is not exist" ) ; var b = this . _children [ a ] ; this . _deleteCardByName ( a ) , b && b . _destroy ( ) } , addCardByName : function ( a , b ) { if ( this . isCardExisted ( a ) ) throw new Error ( "cardName is already exist" ) ; var c = BI . createWidget ( b , this ) ; return c . element . css ( { position : "relative" , top : "0" , left : "0" , width : "100%" , height : "100%" } ) . appendTo ( this . element ) , c . invisible ( ) , this . addWidget ( a , c ) , this . options . items . push ( { el : b , cardName : a } ) , c } , showCardByName : function ( a , b , c ) { var d = this , e = this . isCardExisted ( a ) ; null != this . showIndex && ( this . lastShowIndex = this . showIndex ) , this . showIndex = a ; var f = ! 1 ; BI . each ( this . options . items , function ( g , h ) { var i = d . _children [ h . cardName ] ; i && ( a != h . cardName ? ! f && ! e && BI . Action && b instanceof BI . Action ? ( b . actionBack ( i ) , f = ! 0 ) : i . invisible ( ) : BI . Action && b instanceof BI . Action ? b . actionPerformed ( void 0 , i , c ) : ( i . visible ( ) , c && c ( ) ) ) } ) } , showLastCard : function ( ) { var a = this ; this . showIndex = this . lastShowIndex , BI . each ( this . options . items , function ( b , c ) { a . _children [ c . cardName ] . setVisible ( a . showIndex == b ) } ) } , setDefaultShowName : function ( a ) { return this . options . defaultShowName = a , this } , getDefaultShowName : function ( ) { return th
rows : 1 , items : c } ) } , populate : function ( a ) { BI . CenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.center" , BI . CenterLayout ) , BI . FloatCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . FloatCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] , d = 100 / a . length ; BI . each ( a , function ( b ) { var e = BI . createWidget ( { type : "bi.default" } ) ; e . element . addClass ( "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) ) . css ( { width : d + "%" , height : "100%" } ) , c . push ( { el : e } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.left" , element : this , items : c } ) } , populate : function ( a ) { BI . FloatCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.float_center" , BI . FloatCenterLayout ) , BI . HorizontalCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizontal-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] ; BI . each ( a , function ( b ) { c . push ( { column : b , row : 0 , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : c . length , rows : 1 , items : c } ) } , populate : function ( a ) { BI . HorizontalCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.horizontal_center" , BI . HorizontalCenterLayout ) , BI . VerticalCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . VerticalCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-vertical-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . VerticalCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] ; BI . each ( a , function ( b ) { c . push ( { column : 0 , row : b , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : 1 , rows : c . length , items : c } ) } , populate : function ( a ) { BI . VerticalCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.vertical_center" , BI . VerticalCenterLayout ) , function ( ) { var a = { } ; BI . BufferPool = { put : function ( b , c ) { if ( BI . isNotNull ( a [ b ] ) ) throw new Error ( "Buffer Pool has the key already!" ) ; a [ b ] = c } , get : function ( b ) { return a [ b ] } } } ( ) , function ( ) { var a = { } ; BI . SharingPool = { _Shared : a , put : function ( b , c ) { a [ b ] = c } , cat : function ( ) { for ( var b = Array . prototype . slice . call ( arguments , 0 ) , c = a , d = 0 ; d < b . length ; d ++ ) c = c && c [ b [ d ] ] ; return c } , get : function ( ) { return BI . deepClone ( this . cat . apply ( this , arguments ) ) } , remove : function ( b ) { delete a [ b ] } } } ( ) , BI . Req = { } , function ( a , b ) { "object" == typeof exports && "undefined" != typeof module ? b ( exports , require ( "lodash" ) , require ( "underscore" ) ) : "function" == typeof define && define . amd ? define ( [ "exports" , "lodash" , " unde
b . doBehavior . apply ( b , c ) } ) , BI . each ( e , function ( a , c ) { c . on ( BI . Controller . EVENT _CHANGE , function ( a , e , f ) { if ( a === BI . Events . CLICK ) { switch ( d . chooseType ) { case BI . ButtonGroup . CHOOSE _TYPE _SINGLE : b . setValue ( c . getValue ( ) ) ; break ; case BI . ButtonGroup . CHOOSE _TYPE _NONE : b . setValue ( [ ] ) } b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b . fireEvent ( BI . ButtonGroup . EVENT _CHANGE , e , f ) } else b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , c . on ( BI . Events . DESTROY , function ( ) { BI . remove ( b . buttons , c ) } ) } ) , e } , _packageBtns : function ( a ) { for ( var b = this . options , c = b . layouts . length - 1 ; c > 0 ; c -- ) a = BI . map ( a , function ( a , d ) { return BI . extend ( { } , b . layouts [ c ] , { items : [ BI . extend ( { } , b . layouts [ c ] . el , { el : d } ) ] } ) } ) ; return a } , _packageSimpleItems : function ( a ) { var b = this . options ; return BI . map ( b . items , function ( b , c ) { return BI . stripEL ( c ) === c ? a [ b ] : BI . extend ( { } , c , { el : a [ b ] } ) } ) } , _packageItems : function ( a , b ) { return BI . createItems ( BI . makeArrayByArray ( a , { } ) , BI . clone ( b ) ) } , _packageLayout : function ( a ) { for ( var b = this . options , c = BI . deepClone ( b . layouts [ 0 ] ) , d = BI . formatEL ( c ) . el ; d && d . items && ! BI . isEmpty ( d . items ) ; ) d = BI . formatEL ( d . items [ 0 ] ) . el ; return d . items = a , c } , _isSimpleLayout : function ( ) { var a = this . options ; return 1 === a . layouts . length && ! BI . isArray ( a . items [ 0 ] ) } , doBehavior : function ( ) { var a = Array . prototype . slice . call ( arguments ) ; a . unshift ( this . buttons ) , BI . each ( this . behaviors , function ( b , c ) { c . doBehavior . apply ( c , a ) } ) } , prependItems : function ( a ) { var b = ( this . options , this . _btnsCreator . apply ( this , arguments ) ) ; return this . buttons = BI . concat ( b , this . buttons ) , this . _isSimpleLayout ( ) && this . layouts && this . layouts . prependItems ? void this . layouts . prependItems ( b ) : ( a = this . _packageItems ( a , this . _packageBtns ( b ) ) , void this . layouts . prependItems ( this . _packageLayout ( a ) . items ) ) } , addItems : function ( a ) { var b = ( this . options , this . _btnsCreator . apply ( this , arguments ) ) ; return this . buttons = BI . concat ( this . buttons , b ) , this . _isSimpleLayout ( ) && this . layouts && this . layouts . addItems ? void this . layouts . addItems ( b ) : ( a = this . _packageItems ( a , this . _packageBtns ( b ) ) , void this . layouts . addItems ( this . _packageLayout ( a ) . items ) ) } , removeItemAt : function ( a ) { BI . removeAt ( this . buttons , a ) , this . layouts . removeItemAt ( a ) } , removeItems : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] ; var b = [ ] ; BI . each ( this . buttons , function ( c , d ) { BI . deepContains ( a , d . getValue ( ) ) && b . push ( c ) } ) , BI . removeAt ( this . buttons , b ) , this . layouts . removeItemAt ( b ) } , populate : function ( a ) { a = a || [ ] , this . empty ( ) , this . options . items = a , this . buttons = this . _btnsCreator . apply ( this , arguments ) , a = this . _isSimpleLayout ( ) ? this . _packageSimpleItems ( this . buttons ) : this . _packageItems ( a , this . _packageBtns ( this . buttons ) ) , this . layouts = BI . createWidget ( BI . extend ( { element : this } , this . _packageLayout ( a ) ) ) } , setNotSelectedValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { BI . deepContains ( a , c . getValue ( ) ) ? c . setSelected && c . setSelected ( ! 1 ) : c . setSelected && c . setSelected ( ! 0 ) } ) } , setEnabledValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { BI . deepContains ( a , c . getValue ( ) ) ? c . setEnable ( ! 0 ) : c . setEnable ( ! 1 ) } ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { BI . deepContains ( a , c . getValue ( ) ) ? c . setSelected && c . setSelected ( ! 0 ) : c . setSelected && c . setSelected ( ! 1 ) } ) } , getNotSelectedValue : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { ! c . isEnabled ( ) || c . isSelected && c . isSelected ( ) || a . push ( c . getValue ( ) ) } ) , a } , getValue : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { c . isEnabled ( ) && c . isSelected && c . isSelected ( ) && a . push ( c . getValue ( ) ) } ) , a } , getAllButtons : function ( ) { return this . buttons } , getAllLeaves : function ( ) { return this . buttons } , getSelectedButtons : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { c . isSelected && c . isSelected ( ) && a . push ( c ) } ) , a } , getNotSelectedButtons : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { c . isSelected && ! c . isSelected ( ) && a . push ( c ) } ) , a } , getIndexByValue : function ( a ) { var b = - 1 ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) && d . getValue ( ) === a ) return b = c , ! 0 } ) , b } , getNodeById : function ( a ) { var b ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) && d . options . id === a ) return b = d , ! 0 } ) , b } , getNodeByValue : function ( a ) { var b ; return BI . any ( this . buttons , function ( c , d ) {
var b = this . options . hideChecker . apply ( this , [ a ] ) ; b !== ! 1 && this . _hideView ( ) } } , _hideView : function ( ) { this . fireEvent ( BI . Combo . EVENT _BEFORE _HIDEVIEW ) , this . options . destroyWhenHide === ! 0 ? ( this . popupView && this . popupView . destroy ( ) , this . popupView = null , this . _rendered = ! 1 ) : this . popupView && this . popupView . invisible ( ) , this . element . removeClass ( this . options . comboClass ) , BI . Widget . _renderEngine . createElement ( document ) . unbind ( "mousedown." + this . getName ( ) ) . unbind ( "mousewheel." + this . getName ( ) ) , this . fireEvent ( BI . Combo . EVENT _AFTER _HIDEVIEW ) } , _popupView : function ( a ) { this . _assertPopupViewRender ( ) , this . fireEvent ( BI . Combo . EVENT _BEFORE _POPUPVIEW ) , this . popupView . visible ( ) , this . adjustWidth ( a ) , this . adjustHeight ( a ) , this . element . addClass ( this . options . comboClass ) , BI . Widget . _renderEngine . createElement ( document ) . unbind ( "mousedown." + this . getName ( ) ) . unbind ( "mousewheel." + this . getName ( ) ) , BI . Widget . _renderEngine . createElement ( document ) . bind ( "mousedown." + this . getName ( ) , BI . bind ( this . _hideIf , this ) ) . bind ( "mousewheel." + this . getName ( ) , BI . bind ( this . _hideIf , this ) ) , this . fireEvent ( BI . Combo . EVENT _AFTER _POPUPVIEW ) } , adjustWidth : function ( a ) { var b = this . options ; if ( this . popupView && b . isNeedAdjustWidth === ! 0 ) { this . resetListWidth ( "" ) ; var c = this . popupView . element . outerWidth ( ) , d = this . element . outerWidth ( ) || b . width ; c > d + 80 ? d += 80 : c > d && ( d = c ) , this . resetListWidth ( d < 100 ? 100 : d ) } } , adjustHeight : function ( a ) { var b = this . options , c = { } ; if ( this . popupView ) { var d = this . popupView . isVisible ( ) ; this . popupView . visible ( ) ; var e = BI . isNotNull ( a ) ? { element : { offset : function ( ) { return { left : a . pageX , top : a . pageY } } , bounds : function ( ) { return { x : a . offsetX , y : a . offsetY , width : 0 , height : 24 } } , outerWidth : function ( ) { return 0 } , outerHeight : function ( ) { return 24 } } } : this . combo ; switch ( b . direction ) { case "bottom" : case "bottom,right" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset , b . adjustYOffset || b . adjustLength , b . isNeedAdjustHeight , [ "bottom" , "top" , "right" , "left" ] , b . offsetStyle ) ; break ; case "top" : case "top,right" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset , b . adjustYOffset || b . adjustLength , b . isNeedAdjustHeight , [ "top" , "bottom" , "right" , "left" ] , b . offsetStyle ) ; break ; case "left" : case "left,bottom" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength , b . adjustYOffset , b . isNeedAdjustHeight , [ "left" , "right" , "bottom" , "top" ] , b . offsetStyle ) ; break ; case "right" : case "right,bottom" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength , b . adjustYOffset , b . isNeedAdjustHeight , [ "right" , "left" , "bottom" , "top" ] , b . offsetStyle ) ; break ; case "top,left" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset , b . adjustYOffset || b . adjustLength , b . isNeedAdjustHeight , [ "top" , "bottom" , "left" , "right" ] , b . offsetStyle ) ; break ; case "bottom,left" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset , b . adjustYOffset || b . adjustLength , b . isNeedAdjustHeight , [ "bottom" , "top" , "left" , "right" ] , b . offsetStyle ) ; break ; case "left,top" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength , b . adjustYOffset , b . isNeedAdjustHeight , [ "left" , "right" , "top" , "bottom" ] , b . offsetStyle ) ; break ; case "right,top" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength , b . adjustYOffset , b . isNeedAdjustHeight , [ "right" , "left" , "top" , "bottom" ] , b . offsetStyle ) ; break ; case "top,custom" : case "custom,top" : c = BI . DOM . getTopAdaptPosition ( e , this . popupView , b . adjustYOffset || b . adjustLength , b . isNeedAdjustHeight ) ; break ; case "custom,bottom" : case "bottom,custom" : c = BI . DOM . getBottomAdaptPosition ( e , this . popupView , b . adjustYOffset || b . adjustLength , b . isNeedAdjustHeight ) ; break ; case "left,custom" : case "custom,left" : c = BI . DOM . getLeftAdaptPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength ) , delete c . top , delete c . adaptHeight ; break ; case "custom,right" : case "right,custom" : c = BI . DOM . getRightAdaptPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength ) , delete c . top , delete c . adaptHeight } "adaptHeight" in c && this . resetListHeight ( c . adaptHeight ) , "left" in c && this . popupView . element . css ( { left : c . left } ) , "top" in c && this . popupView . element . css ( { top : c . top } ) , this . position = c , this . popupView . setVisible ( d ) } } , resetListHeight : function ( a ) { this . _assertPopupView ( ) , this . popupView . resetHeight && this . pop
this . popupView . populate . apply ( this . popupView , arguments ) , this . switcher . populate . apply ( this . switcher , arguments ) } , _setEnable : function ( a ) { BI . Switcher . superclass . _setEnable . apply ( this , arguments ) , ! a && this . isViewVisible ( ) && this . _hideView ( ) } , setValue : function ( a ) { this . switcher . setValue ( a ) , BI . isNull ( this . popupView ) ? this . options . popup . value = a : this . popupView . setValue ( a ) } , getValue : function ( ) { return BI . isNull ( this . popupView ) ? this . options . popup . value : this . popupView . getValue ( ) } , setAdapter : function ( a ) { this . options . adapter = a , BI . Maskers . remove ( this . getName ( ) ) } , isViewVisible : function ( ) { return this . isEnabled ( ) && this . switcher . isEnabled ( ) && ( this . options . adapter ? BI . Maskers . isVisible ( this . getName ( ) ) : this . popupView && this . popupView . isVisible ( ) ) } , isExpanded : function ( ) { return this . isViewVisible ( ) } , showView : function ( ) { this . isEnabled ( ) && this . switcher . isEnabled ( ) && this . _popupView ( ) } , hideView : function ( ) { this . _hideView ( ) } , getView : function ( ) { return this . popupView } , adjustView : function ( ) { this . isViewVisible ( ) && BI . Maskers . show ( this . getName ( ) ) } , getAllLeaves : function ( ) { return this . popupView && this . popupView . getAllLeaves ( ) } , getNodeById : function ( a ) { return this . switcher . attr ( "id" ) === a ? this . switcher : this . popupView && this . popupView . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . switcher . getValue ( ) === a ? this . switcher : this . popupView && this . popupView . getNodeByValue ( a ) } , empty : function ( ) { this . popupView && this . popupView . empty ( ) } , destroy : function ( ) { BI . Switcher . superclass . destroy . apply ( this , arguments ) } } ) , BI . Switcher . EVENT _EXPAND = "EVENT_EXPAND" , BI . Switcher . EVENT _COLLAPSE = "EVENT_COLLAPSE" , BI . Switcher . EVENT _TRIGGER _CHANGE = "EVENT_TRIGGER_CHANGE" , BI . Switcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . Switcher . EVENT _AFTER _INIT = "EVENT_AFTER_INIT" , BI . Switcher . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . Switcher . EVENT _AFTER _POPUPVIEW = "EVENT_AFTER_POPUPVIEW" , BI . Switcher . EVENT _BEFORE _HIDEVIEW = "EVENT_BEFORE_HIDEVIEW" , BI . Switcher . EVENT _AFTER _HIDEVIEW = "EVENT_AFTER_HIDEVIEW" , BI . shortcut ( "bi.switcher" , BI . Switcher ) , BI . Tab = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Tab . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-tab" , direction : "top" , single : ! 1 , logic : { dynamic : ! 1 } , showIndex : ! 1 , tab : ! 1 , cardCreator : function ( a ) { return BI . createWidget ( ) } } ) } , render : function ( ) { var a = this , b = this . options ; BI . isObject ( b . tab ) && ( this . tab = BI . createWidget ( this . options . tab , { type : "bi.button_group" } ) , this . tab . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ) , this . cardMap = { } , this . layout = BI . createWidget ( { type : "bi.card" } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , this . tab , this . layout ) } ) ) ) ) ; var c = new BI . ShowListener ( { eventObj : this . tab , cardLayout : this . layout , cardCreator : function ( c ) { var d = b . cardCreator . apply ( a , arguments ) ; return a . cardMap [ c ] = d , d } , afterCardShow : function ( b ) { a . _deleteOtherCards ( b ) , a . curr = b } } ) ; c . on ( BI . ShowListener . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Tab . EVENT _CHANGE , b , a ) } ) } , _deleteOtherCards : function ( a ) { var b = this , c = this . options ; c . single === ! 0 && BI . each ( this . cardMap , function ( c , d ) { c !== a + "" && ( b . layout . deleteCardByName ( c ) , delete b . cardMap [ c ] ) } ) } , _assertCard : function ( a ) { if ( ! this . layout . isCardExisted ( a ) ) { var b = this . options . cardCreator ( a ) ; this . cardMap [ a ] = b , this . layout . addCardByName ( a , b ) } } , mounted : function ( ) { var a = this . options ; a . showIndex !== ! 1 && this . setSelect ( a . showIndex ) } , setSelect : function ( a ) { this . tab && this . tab . setValue ( a ) , this . _assertCard ( a ) , this . layout . showCardByName ( a ) , this . _deleteOtherCards ( a ) , this . curr !== a && ( this . curr = a ) } , removeTab : function ( a ) { var b = this ; this . options ; BI . any ( this . cardMap , function ( c , d ) { if ( BI . isEqual ( c , a + "" ) ) return b . layout . deleteCardByName ( c ) , delete b . cardMap [ c ] , ! 0 } ) } , getSelect : function ( ) { return this . curr } , getSelectedTab : function ( ) { return this . layout . getShowingCard ( ) } , getTab : function ( a ) { return this . _assertCard ( a ) , this . layout . getCardByName ( a ) } , setValue : function ( a ) { var b = this . layout . getShowingCard ( ) ; b && b . setValue ( a ) } , getValue : function ( ) { var a = this . layout . g
} ) , this . fireEvent ( BI . Pager . EVENT _AFTER _POPULATE ) } , getCurrentPage : function ( ) { return this . currPage } , setAllPages : function ( a ) { this . options . pages = a } , hasPrev : function ( a ) { a || ( a = 1 ) ; var b = this . options , c = this . options . pages ; return c === ! 1 ? b . hasPrev ( a ) : a > 1 } , hasNext : function ( a ) { a || ( a = 1 ) ; var b = this . options , c = this . options . pages ; return c === ! 1 ? b . hasNext ( a ) : a < c } , setValue : function ( a ) { var b = this . options ; if ( a = 0 | a , a = a < 1 ? 1 : a , b . pages === ! 1 ) { var c = BI . result ( b , "lastPage" ) , d = 1 ; this . currPage = a > c ? c : ( d = BI . result ( b , "firstPage" ) , a < d ? d : a ) } else a = a > b . pages ? b . pages : a , this . currPage = a ; this . _populate ( ) } , getValue : function ( ) { var a = this . button _group . getValue ( ) [ 0 ] ; switch ( a ) { case "prev" : return - 1 ; case "next" : return 1 ; case "first" : return BI . MIN ; case "last" : return BI . MAX ; default : return a } } , attr : function ( a , b ) { BI . Pager . superclass . attr . apply ( this , arguments ) , "curr" === a && ( this . currPage = BI . result ( this . options , "curr" ) ) } , populate : function ( ) { this . _populate ( ) } } ) , BI . Pager . EVENT _CHANGE = "EVENT_CHANGE" , BI . Pager . EVENT _AFTER _POPULATE = "EVENT_AFTER_POPULATE" , BI . shortcut ( "bi.pager" , BI . Pager ) , BI . A = BI . inherit ( BI . Text , { _defaultConfig : function ( ) { var a = BI . A . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-a display-block" , href : "" , target : "_blank" , el : null , tagName : "a" } ) } , _init : function ( ) { var a = this . options ; BI . A . superclass . _init . apply ( this , arguments ) , this . element . attr ( { href : a . href , target : a . target } ) , a . el && BI . createWidget ( a . el , { element : this } ) } } ) , BI . shortcut ( "bi.a" , BI . A ) , BI . LoadingBar = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . LoadingBar . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-loading-bar bi-tips" , height : 30 , handler : BI . emptyFn } ) } , _init : function ( ) { BI . LoadingBar . superclass . _init . apply ( this , arguments ) ; var a = this ; this . loaded = BI . createWidget ( { type : "bi.text_button" , cls : "loading-text bi-list-item-simple" , text : BI . i18nText ( "BI-Load_More" ) , width : 120 , handler : this . options . handler } ) , this . loaded . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . loading = BI . createWidget ( { type : "bi.layout" , width : this . options . height , height : this . options . height , cls : "loading-background cursor-default" } ) ; var b = BI . createWidget ( { type : "bi.center_adapt" , items : [ this . loaded ] } ) , c = BI . createWidget ( { type : "bi.center_adapt" , items : [ this . loading ] } ) ; this . cardLayout = BI . createWidget ( { type : "bi.card" , element : this , items : [ { el : b , cardName : "loaded" } , { el : c , cardName : "loading" } ] } ) , this . invisible ( ) } , _reset : function ( ) { this . visible ( ) , this . loaded . setText ( BI . i18nText ( "BI-Load_More" ) ) , this . loaded . enable ( ) } , setLoaded : function ( ) { this . _reset ( ) , this . cardLayout . showCardByName ( "loaded" ) } , setEnd : function ( ) { this . setLoaded ( ) , this . loaded . setText ( BI . i18nText ( "BI-No_More_Data" ) ) , this . loaded . disable ( ) } , setLoading : function ( ) { this . _reset ( ) , this . cardLayout . showCardByName ( "loading" ) } } ) , BI . shortcut ( "bi.loading_bar" , BI . LoadingBar ) , BI . IconButton = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . IconButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { _baseCls : ( a . _baseCls || "" ) + " bi-icon-button horizon-center" , iconWidth : null , iconHeight : null } ) } , _init : function ( ) { BI . IconButton . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . element . css ( { textAlign : "center" } ) , this . icon = BI . createWidget ( { 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 ] } ) ) : ( this . element . css ( "lineHeight" , "1" ) , 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 : "" , iconWidt
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 , { adjustYOffset : 2 } ) , 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 ( ) } , 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 ( ) } , destroyed : function ( ) { BI . Bubbles . remove ( this . getName ( ) ) } } ) , 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 . Widget , { _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 : function ( ) { var a = this , b = this . options ; BI . MultifileEditor . superclass . _init . apply ( this , arguments ) , this . file = BI . createWidget ( { type : "bi.file" , cls : "multifile-editor" , width : "100%" , height : "100%" , name : b . name , url : b . url , multiple : b . multiple , accept : b . accept , maxSize : b . maxSize , title : b . title } ) , this . file . on ( BI . File . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultifileEditor . EVENT _C
if ( BI . isNumber ( a . textWidth ) && a . textWidth > 0 ) { if ( BI . isNumber ( a . height ) && a . height > 0 ) { var c = ( a . width - a . textWidth ) / 2 ; return BI . createWidget ( { type : "bi.adaptive" , height : a . height , scrollable : "normal" === a . whiteSpace , element : this , items : [ { el : this . text = BI . createWidget ( b ) , left : c + a . hgap + a . lgap , right : c + a . hgap + a . rgap , top : a . vgap + a . tgap , bottom : a . vgap + a . bgap } ] } ) , void this . element . css ( { "line-height" : a . height + "px" } ) } return b . width = a . textWidth , void BI . createWidget ( { type : "bi.center_adapt" , scrollable : "normal" === a . whiteSpace , element : this , items : [ { el : this . text = BI . createWidget ( b ) } ] } ) } return "normal" == a . whiteSpace ? ( this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.center_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 ? ( this . element . css ( { "line-height" : a . height + "px" } ) , void BI . createWidget ( { type : "bi.absolute" , 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 } ] } ) ) : ( b . width = a . width - 2 * a . hgap , void BI . createWidget ( { type : "bi.center_adapt" , scrollable : "normal" === a . whiteSpace , element : this , items : [ { el : this . text = BI . createWidget ( b ) } ] } ) ) } return BI . isNumber ( a . textWidth ) && a . textWidth > 0 ? ( b . width = a . textWidth , void BI . createWidget ( { type : "bi.center_adapt" , scrollable : "normal" === a . whiteSpace , element : this , items : [ { el : this . text = BI . createWidget ( b ) } ] } ) ) : "normal" == a . whiteSpace ? ( this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.center_adapt" , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap , scrollable : "normal" === a . whiteSpace , 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.center_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 } ) ) ) } , _createNotCenterEl : function ( ) { var a = this . options , b = this . _createJson ( ) ; return BI . isNumber ( a . width ) && a . width > 0 ? BI . isNumber ( a . textWidth ) && a . textWidth > 0 ? ( b . width = a . textWidth , BI . isNumber ( a . height ) && a . height > 0 ? ( 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 } ] } ) , void this . element . css ( { "line-height" : a . height + "px" } ) ) : ( 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 ) } ] } ) , void ( a . textHeight && this . element . css ( { "line-height" : a . textHeight + "px" } ) ) ) ) : "normal" == a . whiteSpace ? ( this . text = BI . createWidget ( b ) , 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 ] } ) , void ( a . textHeight && this . element . css ( { "line-height" : a . textHeight + "px" } ) ) ) : BI . isNumber ( a . height ) && a . height > 0 ? ( this . element . css ( { "line-height" : a . height + "px" } ) , void BI . createWidget ( { type : "bi.absolute" , 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 } ] } ) ) : ( b . width = a . width
return ! 1 } , removeNodeCache : function ( a , b ) { var c = a . data . key . children ; if ( b [ c ] ) for ( var d = 0 , e = b [ c ] . length ; d < e ; d ++ ) arguments . callee ( a , b [ c ] [ d ] ) ; data . getCache ( a ) . nodes [ data . getNodeCacheId ( b . tId ) ] = null } , removeSelectedNode : function ( a , b ) { for ( var c = data . getRoot ( a ) , d = 0 , e = c . curSelectedList . length ; d < e ; d ++ ) b !== c . curSelectedList [ d ] && data . getNodeCache ( a , c . curSelectedList [ d ] . tId ) || ( c . curSelectedList . splice ( d , 1 ) , d -- , e -- ) } , setCache : function ( a , b ) { caches [ a . treeId ] = b } , setRoot : function ( a , b ) { roots [ a . treeId ] = b } , setZTreeTools : function ( a , b ) { for ( var c = 0 , d = _init . zTreeTools . length ; c < d ; c ++ ) _init . zTreeTools [ c ] . apply ( this , arguments ) } , transformToArrayFormat : function ( a , b ) { if ( ! b ) return [ ] ; var c = a . data . key . children , d = [ ] ; if ( tools . isArray ( b ) ) for ( var e = 0 , f = b . length ; e < f ; e ++ ) d . push ( b [ e ] ) , b [ e ] [ c ] && ( d = d . concat ( data . transformToArrayFormat ( a , b [ e ] [ c ] ) ) ) ; else d . push ( b ) , b [ c ] && ( d = d . concat ( data . transformToArrayFormat ( a , b [ c ] ) ) ) ; return d } , transformTozTreeFormat : function ( a , b ) { var c , d , e = a . data . simpleData . idKey , f = a . data . simpleData . pIdKey , g = a . data . key . children ; if ( ! e || "" == e || ! b ) return [ ] ; if ( tools . isArray ( b ) ) { var h = [ ] , i = [ ] ; for ( c = 0 , d = b . length ; c < d ; c ++ ) i [ b [ c ] [ e ] ] = b [ c ] ; for ( c = 0 , d = b . length ; c < d ; c ++ ) i [ b [ c ] [ f ] ] && b [ c ] [ e ] != b [ c ] [ f ] ? ( i [ b [ c ] [ f ] ] [ g ] || ( i [ b [ c ] [ f ] ] [ g ] = [ ] ) , i [ b [ c ] [ f ] ] [ g ] . push ( b [ c ] ) ) : h . push ( b [ c ] ) ; return h } return [ b ] } } , event = { bindEvent : function ( a ) { for ( var b = 0 , c = _init . bind . length ; b < c ; b ++ ) _init . bind [ b ] . apply ( this , arguments ) } , unbindEvent : function ( a ) { for ( var b = 0 , c = _init . unbind . length ; b < c ; b ++ ) _init . unbind [ b ] . apply ( this , arguments ) } , bindTree : function ( a ) { var b = { treeId : a . treeId } , c = a . treeObj ; a . view . txtSelectedEnable || c . bind ( "selectstart" , function ( a ) { var b = a . originalEvent . srcElement . nodeName . toLowerCase ( ) ; return "input" === b || "textarea" === b } ) . css ( { "-moz-user-select" : "-moz-none" } ) , c . bind ( "click" , b , event . proxy ) , c . bind ( "dblclick" , b , event . proxy ) , c . bind ( "mouseover" , b , event . proxy ) , c . bind ( "mouseout" , b , event . proxy ) , c . bind ( "mousedown" , b , event . proxy ) , c . bind ( "mouseup" , b , event . proxy ) , c . bind ( "contextmenu" , b , event . proxy ) } , unbindTree : function ( a ) { var b = a . treeObj ; b . unbind ( "click" , event . proxy ) . unbind ( "dblclick" , event . proxy ) . unbind ( "mouseover" , event . proxy ) . unbind ( "mouseout" , event . proxy ) . unbind ( "mousedown" , event . proxy ) . unbind ( "mouseup" , event . proxy ) . unbind ( "contextmenu" , event . proxy ) } , doProxy : function ( a ) { for ( var b = [ ] , c = 0 , d = _init . proxys . length ; c < d ; c ++ ) { var e = _init . proxys [ c ] . apply ( this , arguments ) ; if ( b . push ( e ) , e . stop ) break } return b } , proxy : function ( a ) { var b = data . getSetting ( a . data . treeId ) ; if ( ! tools . uCanDo ( b , a ) ) return ! 0 ; for ( var c = event . doProxy ( a ) , d = ! 0 , e = ! 1 , f = 0 , g = c . length ; f < g ; f ++ ) { var h = c [ f ] ; h . nodeEventCallback && ( e = ! 0 , d = h . nodeEventCallback . apply ( h , [ a , h . node ] ) && d ) , h . treeEventCallback && ( e = ! 0 , d = h . treeEventCallback . apply ( h , [ a , h . node ] ) && d ) } return d } } , handler = { onSwitchNode : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; if ( b . open ) { if ( 0 == tools . apply ( c . callback . beforeCollapse , [ c . treeId , b ] , ! 0 ) ) return ! 0 ; data . getRoot ( c ) . expandTriggerFlag = ! 0 , view . switchNode ( c , b ) } else { if ( 0 == tools . apply ( c . callback . beforeExpand , [ c . treeId , b ] , ! 0 ) ) return ! 0 ; data . getRoot ( c ) . expandTriggerFlag = ! 0 , view . switchNode ( c , b ) } return ! 0 } , onClickNode : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) , d = c . view . autoCancelSelected && ( a . ctrlKey || a . metaKey ) && data . isSelectedNode ( c , b ) ? 0 : c . view . autoCancelSelected && ( a . ctrlKey || a . metaKey ) && c . view . selectedMulti ? 2 : 1 ; return 0 == tools . apply ( c . callback . beforeClick , [ c . treeId , b , d ] , ! 0 ) || ( 0 === d ? view . cancelPreSelectedNode ( c , b ) : view . selectNode ( c , b , 2 === d ) , c . treeObj . trigger ( consts . event . CLICK , [ a , c . treeId , b , d ] ) , ! 0 ) } , onZTreeMousedown : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeMouseDown , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onMouseDown , [ a , c . treeId , b ] ) , ! 0 } , onZTreeMouseup : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeMouseUp , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onMouseUp , [ a , c . treeId , b ] ) , ! 0 } , onZTreeDblclick : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callback . beforeDblClick , [ c . treeId , b ] , ! 0 ) && tools . apply ( c . callback . onDblClick , [ a , c . treeId , b ] ) , ! 0 } , onZTreeContextmenu : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; return tools . apply ( c . callb
b && ( b . chkDisabled != c && d && ( b . chkDisabled = c ) , u . repairChkClass ( a , b ) , u . repairParentChkDisabled ( a , b . getParentNode ( ) , c , d ) ) } , setChkClass : function ( a , b , c ) { b && ( c . nocheck === ! 0 ? b . hide ( ) : b . show ( ) , b . attr ( "class" , u . makeChkClass ( a , c ) ) ) } , setParentNodeCheckBox : function ( a , b , c , d ) { var e = a . data . key . children , f = a . data . key . checked , g = w ( b , t . id . CHECK , a ) ; if ( d || ( d = b ) , v . makeChkFlag ( a , b ) , b . nocheck !== ! 0 && b . chkDisabled !== ! 0 && ( b [ f ] = c , u . setChkClass ( a , g , b ) , a . check . autoCheckTrigger && b != d && a . treeObj . trigger ( t . event . CHECK , [ null , a . treeId , b ] ) ) , b . parentTId ) { var h = ! 0 ; if ( ! c ) for ( var i = b . getParentNode ( ) [ e ] , j = 0 , k = i . length ; j < k ; j ++ ) if ( i [ j ] . nocheck !== ! 0 && i [ j ] . chkDisabled !== ! 0 && i [ j ] [ f ] || ( i [ j ] . nocheck === ! 0 || i [ j ] . chkDisabled === ! 0 ) && i [ j ] . check _Child _State > 0 ) { h = ! 1 ; break } h && u . setParentNodeCheckBox ( a , b . getParentNode ( ) , c , d ) } } , setSonNodeCheckBox : function ( a , b , c , d ) { if ( b ) { var e = a . data . key . children , f = a . data . key . checked , g = w ( b , t . id . CHECK , a ) ; d || ( d = b ) ; var h = ! 1 ; if ( b [ e ] ) for ( var i = 0 , j = b [ e ] . length ; i < j && b . chkDisabled !== ! 0 ; i ++ ) { var k = b [ e ] [ i ] ; u . setSonNodeCheckBox ( a , k , c , d ) , k . chkDisabled === ! 0 && ( h = ! 0 ) } b != v . getRoot ( a ) && b . chkDisabled !== ! 0 && ( h && b . nocheck !== ! 0 && v . makeChkFlag ( a , b ) , b . nocheck !== ! 0 && b . chkDisabled !== ! 0 ? ( b [ f ] = c , h || ( b . check _Child _State = b [ e ] && b [ e ] . length > 0 ? c ? 2 : 0 : - 1 ) ) : b . check _Child _State = - 1 , u . setChkClass ( a , g , b ) , a . check . autoCheckTrigger && b != d && b . nocheck !== ! 0 && b . chkDisabled !== ! 0 && a . treeObj . trigger ( t . event . CHECK , [ null , a . treeId , b ] ) ) } } } , q = { tools : o , view : p , event : m , data : l } ; a . extend ( ! 0 , a . fn . zTree . consts , b ) , a . extend ( ! 0 , a . fn . zTree . _z , q ) ; var r = a . fn . zTree , s = r . _z . tools , t = r . consts , u = r . _z . view , v = r . _z . data , w = ( r . _z . event , s . $ ) ; v . exSetting ( c ) , v . addInitBind ( f ) , v . addInitUnBind ( g ) , v . addInitCache ( e ) , v . addInitNode ( i ) , v . addInitProxy ( h , ! 0 ) , v . addInitRoot ( d ) , v . addBeforeA ( j ) , v . addZTreeTools ( k ) ; var x = u . createNodes ; u . createNodes = function ( a , b , c , d ) { x && x . apply ( u , arguments ) , c && u . repairParentChkClassWithSelf ( a , d ) } ; var y = u . removeNode ; u . removeNode = function ( a , b ) { var c = b . getParentNode ( ) ; y && y . apply ( u , arguments ) , b && c && ( u . repairChkClass ( a , c ) , u . repairParentChkClass ( a , c ) ) } ; var z = u . appendNodes ; u . appendNodes = function ( a , b , c , d , e , f ) { var g = "" ; return z && ( g = z . apply ( u , arguments ) ) , d && v . makeChkFlag ( a , d ) , g } } ( jQuery ) , BI . IconChangeButton = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . IconChangeButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-icon-change-button" , iconCls : "" , iconWidth : null , iconHeight : null , stopEvent : ! 1 , stopPropagation : ! 1 , selected : ! 1 , once : ! 1 , forceSelected : ! 1 , forceNotSelected : ! 1 , disableSelected : ! 1 , shadow : ! 1 , isShadowShowingOnSelected : ! 1 , trigger : null , handler : BI . emptyFn } ) } , _init : function ( ) { BI . IconChangeButton . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . button = BI . createWidget ( { type : "bi.icon_button" , element : this , cls : b . iconCls , height : b . height , iconWidth : b . iconWidth , iconHeight : b . iconHeight , stopEvent : b . stopEvent , stopPropagation : b . stopPropagation , selected : b . selected , once : b . once , forceSelected : b . forceSelected , forceNotSelected : b . forceNotSelected , disableSelected : b . disableSelected , shadow : b . shadow , isShadowShowingOnSelected : b . isShadowShowingOnSelected , trigger : b . trigger , handler : b . handler } ) , this . button . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . IconChangeButton . EVENT _CHANGE , arguments ) } ) } , isSelected : function ( ) { return this . button . isSelected ( ) } , setSelected : function ( a ) { this . button . setSelected ( a ) } , setIcon : function ( a ) { var b = this . options ; b . iconCls !== a && ( this . element . removeClass ( b . iconCls ) . addClass ( a ) , b . iconCls = a ) } } ) , BI . IconChangeButton . EVENT _CHANGE = "IconChangeButton.EVENT_CHANGE" , BI . shortcut ( "bi.icon_change_button" , BI . IconChangeButton ) , BI . TriggerIconButton = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { var a = BI . TriggerIconButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-trigger-icon-button" , extraCls : "pull-down-font" } ) } , _init : function ( ) { BI . TriggerIconButton . superclass . _init . apply ( this , arguments ) } , doClick : function ( ) { BI . TriggerIconButton . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . TriggerIco
BI . CalendarDateItem = BI . inherit ( BI . BasicButton , { render : function ( ) { var a = this , b = this . options ; return { type : "bi.absolute" , items : [ { el : { type : "bi.text_item" , cls : "bi-list-item-select" , textAlign : "center" , whiteSpace : "normal" , text : b . text , value : b . value , ref : function ( ) { a . text = this } } , left : b . lgap , right : b . rgap , top : 0 , bottom : 0 } ] } } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , setSelected : function ( a ) { BI . CalendarDateItem . superclass . setSelected . apply ( this , arguments ) , this . text . setSelected ( a ) } , getValue : function ( ) { return this . text . getValue ( ) } } ) , BI . shortcut ( "bi.calendar_date_item" , BI . CalendarDateItem ) , BI . Calendar = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . Calendar . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-calendar" , logic : { dynamic : ! 1 } , min : "1900-01-01" , max : "2099-12-31" , year : 2015 , month : 8 , day : 25 } ) } , _dateCreator : function ( a , b , c ) { var d = this . options , e = { } , f = BI . getDate ( ) , g = d . min . match ( /\d+/g ) , h = d . max . match ( /\d+/g ) ; a < ( 0 | g [ 0 ] ) && ( a = 0 | g [ 0 ] ) , a > ( 0 | h [ 0 ] ) && ( a = 0 | h [ 0 ] ) , f . setFullYear ( a , b , c ) , e . ymd = [ f . getFullYear ( ) , f . getMonth ( ) , f . getDate ( ) ] ; var i = BI . Date . _MD . slice ( 0 ) ; i [ 1 ] = BI . isLeapYear ( e . ymd [ 0 ] ) ? 29 : 28 , f . setFullYear ( e . ymd [ 0 ] , e . ymd [ 1 ] , 1 ) , e . FDay = f . getDay ( ) ; var j = ( 7 - BI . StartOfWeek + e . FDay ) % 7 ; e . PDay = i [ 0 === b ? 11 : b - 1 ] - j + 1 , e . NDay = 1 ; var k = [ ] ; return BI . each ( BI . range ( 42 ) , function ( a ) { var b , c = { } , d = e . ymd [ 0 ] , f = e . ymd [ 1 ] + 1 ; a < j ? ( c . lastMonth = ! 0 , b = a + e . PDay , 1 === f && ( d -= 1 ) , f = 1 === f ? 12 : f - 1 ) : a >= j && a < j + i [ e . ymd [ 1 ] ] ? ( b = a - j + 1 , a - j + 1 === e . ymd [ 2 ] && ( c . currentDay = ! 0 ) ) : ( c . nextMonth = ! 0 , b = e . NDay ++ , 12 === f && ( d += 1 ) , f = 12 === f ? 1 : f + 1 ) , BI . checkDateVoid ( d , f , b , g , h ) [ 0 ] && ( c . disabled = ! 0 ) , c . text = b , k . push ( c ) } ) , k } , _init : function ( ) { BI . Calendar . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = BI . map ( this . _getWeekLabel ( ) , function ( a , b ) { return { type : "bi.label" , height : 24 , text : b } } ) , d = BI . createWidget ( { type : "bi.button_group" , height : 44 , items : c , layouts : [ { type : "bi.center" , hgap : 5 , vgap : 10 } ] } ) , e = this . _dateCreator ( b . year , b . month - 1 , b . day ) ; c = [ ] , c . push ( e . slice ( 0 , 7 ) ) , c . push ( e . slice ( 7 , 14 ) ) , c . push ( e . slice ( 14 , 21 ) ) , c . push ( e . slice ( 21 , 28 ) ) , c . push ( e . slice ( 28 , 35 ) ) , c . push ( e . slice ( 35 , 42 ) ) , c = BI . map ( c , function ( a , c ) { return BI . map ( c , function ( a , c ) { var d = c . lastMonth ? b . month - 1 : c . nextMonth ? b . month + 1 : b . month ; return BI . extend ( c , { type : "bi.calendar_date_item" , textAlign : "center" , whiteSpace : "normal" , once : ! 1 , forceSelected : ! 0 , height : 24 , value : b . year + "-" + d + "-" + c . text , disabled : c . lastMonth || c . nextMonth || c . disabled , lgap : 5 , rgap : 5 } ) } ) } ) , this . days = BI . createWidget ( { type : "bi.button_group" , items : BI . createItems ( c , { } ) , layouts : [ BI . LogicFactory . createLogic ( "table" , BI . extend ( { } , b . logic , { columns : 7 , rows : 6 , columnSize : [ 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 ] , rowSize : 24 , vgap : 10 } ) ) ] } ) , this . days . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "vertical" , BI . extend ( { } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "top" , d , this . days ) } ) ) ) ) } , _getWeekLabel : function ( ) { return BI . map ( BI . range ( 0 , 7 ) , function ( a , b ) { return BI . Date . _SDN [ ( b + BI . StartOfWeek ) % 7 ] } ) } , isFrontDate : function ( ) { var a = this . options , b = ( this . _const , a . year ) , c = a . month , d = BI . getDate ( ) , e = d . getDay ( ) ; b = 0 | b , d . setFullYear ( b , c , 1 ) ; var f = BI . getOffsetDate ( d , - 1 * ( e + 1 ) ) ; return ! ! BI . checkDateVoid ( f . getFullYear ( ) , f . getMonth ( ) , f . getDate ( ) , a . min , a . max ) [ 0 ] } , isFinalDate : function ( ) { var a = this . options , b = ( this . _const , a . year ) , c = a . month , d = BI . getDate ( ) , e = d . getDay ( ) ; b = 0 | b , d . setFullYear ( b , c , 1 ) ; var f = BI . getOffsetDate ( d , 42 - e ) ; return ! ! BI . checkDateVoid ( f . getFullYear ( ) , f . getMonth ( ) , f . getDate ( ) , a . min , a . max ) [ 0 ] } , setValue : function ( a ) { this . days . setValue ( [ a . year + "-" + a . month + "-" + a . day ] ) } , getValue : function ( ) { var a = this . days . getValue ( ) [ 0 ] . match ( /\d+/g ) ; return { year : 0 | a [ 0 ] , month : 0 | a [ 1 ] , day : 0 | a [ 2 ] } } } ) , BI . extend ( BI . Calendar , { getPageByDateJSON : function ( a ) { var b = BI . getDate ( ) . getFullYear ( ) , c = BI . getDate ( ) . getMonth ( ) , d = 12 * ( a . year - b ) ; return d += a . month - 1 - c } , getDateJSONByPage : function ( a ) { var b = BI . getDate ( ) . getMonth ( ) , c = a ; c += b ; var
height : 101 } , { el : { type : "bi.layout" , cls : "marker" , ref : function ( b ) { a . hMarker = b } , scrollable : ! 1 , width : 17 , height : 17 } } , { el : { type : "bi.layout" , cls : "marker" , ref : function ( b ) { a . slMarker = b } , scrollable : ! 1 , width : 17 , height : 17 } } ] } } , mounted : function ( ) { var a = this . options ; BI . isKey ( a . value ) && this . setValue ( a . value ) } , _unpack : function ( a ) { return 7 === a . length ? [ parseInt ( "0x" + a . substring ( 1 , 3 ) ) / 255 , parseInt ( "0x" + a . substring ( 3 , 5 ) ) / 255 , parseInt ( "0x" + a . substring ( 5 , 7 ) ) / 255 ] : 4 === a . length ? [ parseInt ( "0x" + a . substring ( 1 , 2 ) ) / 15 , parseInt ( "0x" + a . substring ( 2 , 3 ) ) / 15 , parseInt ( "0x" + a . substring ( 3 , 4 ) ) / 15 ] : void 0 } , _pack : function ( a ) { var b = Math . round ( 255 * a [ 0 ] ) , c = Math . round ( 255 * a [ 1 ] ) , d = Math . round ( 255 * a [ 2 ] ) ; return "#" + ( b < 16 ? "0" : "" ) + b . toString ( 16 ) + ( c < 16 ? "0" : "" ) + c . toString ( 16 ) + ( d < 16 ? "0" : "" ) + d . toString ( 16 ) } , _setColor : function ( a ) { var b = this . _unpack ( a ) ; this . value !== a && b && ( this . value = a , this . rgb = b , this . hsl = this . _RGBToHSL ( this . rgb ) , this . _updateDisplay ( ) ) } , _setHSL : function ( a ) { return this . hsl = a , this . rgb = this . _HSLToRGB ( a ) , this . value = this . _pack ( this . rgb ) , this . _updateDisplay ( ) , this } , _HSLToRGB : function ( a ) { var b , c , d = a [ 0 ] , e = a [ 1 ] , f = a [ 2 ] ; return c = f <= . 5 ? f * ( e + 1 ) : f + e - f * e , b = 2 * f - c , [ this . _hueToRGB ( b , c , d + . 33333 ) , this . _hueToRGB ( b , c , d ) , this . _hueToRGB ( b , c , d - . 33333 ) ] } , _hueToRGB : function ( a , b , c ) { return c = c < 0 ? c + 1 : c > 1 ? c - 1 : c , 6 * c < 1 ? a + ( b - a ) * c * 6 : 2 * c < 1 ? b : 3 * c < 2 ? a + ( b - a ) * ( . 66666 - c ) * 6 : a } , _RGBToHSL : function ( a ) { var b , c , d , e , f , g , h = a [ 0 ] , i = a [ 1 ] , j = a [ 2 ] ; return b = Math . min ( h , Math . min ( i , j ) ) , c = Math . max ( h , Math . max ( i , j ) ) , d = c - b , g = ( b + c ) / 2 , f = 0 , g > 0 && g < 1 && ( f = d / ( g < . 5 ? 2 * g : 2 - 2 * g ) ) , e = 0 , d > 0 && ( c == h && c != i && ( e += ( i - j ) / d ) , c == i && c != j && ( e += 2 + ( j - h ) / d ) , c == j && c != h && ( e += 4 + ( h - i ) / d ) , e /= 6 ) , [ e , f , g ] } , _updateDisplay : function ( ) { var a = 6.28 * this . hsl [ 0 ] ; this . hMarker . element . css ( { left : Math . round ( Math . sin ( a ) * this . constants . RADIUS + this . constants . WIDTH / 2 ) + "px" , top : Math . round ( - Math . cos ( a ) * this . constants . RADIUS + this . constants . WIDTH / 2 ) + "px" } ) , this . slMarker . element . css ( { left : Math . round ( this . constants . SQUARE * ( . 5 - this . hsl [ 1 ] ) + this . constants . WIDTH / 2 ) + "px" , top : Math . round ( this . constants . SQUARE * ( . 5 - this . hsl [ 2 ] ) + this . constants . WIDTH / 2 ) + "px" } ) , this . colorWrapper . element . css ( "backgroundColor" , this . _pack ( this . _HSLToRGB ( [ this . hsl [ 0 ] , 1 , . 5 ] ) ) ) , this . fireEvent ( BI . Farbtastic . EVENT _CHANGE , this . getValue ( ) , this ) } , _absolutePosition : function ( a ) { var b = { x : a . offsetLeft , y : a . offsetTop } ; if ( a . offsetParent ) { var c = this . _absolutePosition ( a . offsetParent ) ; b . x += c . x , b . y += c . y } return b } , _widgetCoords : function ( a ) { var b , c , d = a . target || a . srcElement , e = this . wheel . element [ 0 ] ; if ( "undefined" != typeof a . offsetX ) { for ( var f = { x : a . offsetX , y : a . offsetY } , g = d ; g ; ) g . mouseX = f . x , g . mouseY = f . y , f . x += g . offsetLeft , f . y += g . offsetTop , g = g . offsetParent ; for ( var g = e , h = { x : 0 , y : 0 } ; g ; ) { if ( "undefined" != typeof g . mouseX ) { b = g . mouseX - h . x , c = g . mouseY - h . y ; break } h . x += g . offsetLeft , h . y += g . offsetTop , g = g . offsetParent } for ( g = d ; g ; ) g . mouseX = void 0 , g . mouseY = void 0 , g = g . offsetParent } else { var f = this . _absolutePosition ( e ) ; b = ( a . pageX || 0 ) - f . x , c = ( a . pageY || 0 ) - f . y } return { x : b - this . constants . WIDTH / 2 , y : c - this . constants . WIDTH / 2 } } , _doMouseMove : function ( a ) { var b = this . _widgetCoords ( a ) ; if ( this . circleDrag ) { var c = Math . atan2 ( b . x , - b . y ) / 6.28 ; c < 0 && ( c += 1 ) , this . _setHSL ( [ c , this . hsl [ 1 ] , this . hsl [ 2 ] ] ) } else { var d = Math . max ( 0 , Math . min ( 1 , - ( b . x / this . constants . SQUARE ) + . 5 ) ) , e = Math . max ( 0 , Math . min ( 1 , - ( b . y / this . constants . SQUARE ) + . 5 ) ) ; this . _setHSL ( [ this . hsl [ 0 ] , d , e ] ) } } , doClick : function ( a ) { var b = this . _widgetCoords ( a ) ; return this . circleDrag = 2 * Math . max ( Math . abs ( b . x ) , Math . abs ( b . y ) ) > this . constants . SQUARE , this . _doMouseMove ( a ) , ! 1 } , setValue : function ( a ) { this . _setColor ( a ) } , getValue : function ( ) { return this . value } } ) , BI . Farbtastic . EVENT _CHANGE = "Farbtastic.EVENT_CHANGE" , BI . shortcut ( "bi.farbtastic" , BI . Farbtastic ) , BI . BubbleCombo = BI . inherit ( BI . Widget , { _const : { TRIANGLE _LENGTH : 6 } , _defaultConfig : function ( ) { return BI . extend ( BI . BubbleCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-bubble-combo" , trigger : "click" , toggle : ! 0 , direction : "bottom,left" , isDefaultInit : ! 1 , destroyWhenHide : ! 1 , isNeedAdjustHeight : ! 0 , isNeedAdjustWidth : ! 0 , stopPropagation : ! 1 , adjustLength : 0 , hideChecker : BI . emptyFn , offsetStyle : "left" , el : { } , popup : { } } ) } , _init : function ( ) { BI . BubbleCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . opt
var a = this , b = this . options ; this . trigger = BI . createWidget ( b . el , { type : "bi.small_select_text_trigger" , items : b . items , height : b . height , text : b . text } ) , this . popup = BI . createWidget ( { type : "bi.text_value_combo_popup" , chooseType : b . chooseType , items : b . items } ) , this . popup . on ( BI . TextValueComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . SmallTextValueCombo . hideView ( ) , a . fireEvent ( BI . SmallTextValueCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . SmallTextValueCombo = BI . createWidget ( { type : "bi.combo" , element : this , container : b . container , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 240 } } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , populate : function ( a ) { this . options . items = a , this . SmallTextValueCombo . populate ( a ) } } ) , BI . SmallTextValueCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.small_text_value_combo" , BI . SmallTextValueCombo ) , BI . TextValueComboPopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueComboPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-text-icon-popup" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE } ) } , _init : function ( ) { BI . TextValueComboPopup . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this ; this . popup = BI . createWidget ( { type : "bi.button_group" , items : BI . createItems ( a . items , { type : "bi.single_select_item" , textAlign : a . textAlign , height : 24 } ) , chooseType : a . chooseType , layouts : [ { type : "bi.vertical" } ] , value : a . value } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . TextValueComboPopup . EVENT _CHANGE , c , d ) } ) , this . check ( ) , BI . createWidget ( { type : "bi.vertical" , element : this , vgap : 5 , items : [ this . popup ] } ) } , populate : function ( a ) { BI . TextValueComboPopup . superclass . populate . apply ( this , arguments ) , a = BI . createItems ( a , { type : "bi.single_select_item" , height : 24 } ) , this . popup . populate ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , setValue : function ( a ) { this . popup . setValue ( a ) } } ) , BI . TextValueComboPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_combo_popup" , BI . TextValueComboPopup ) , BI . TextValueDownListCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueDownListCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-text-value-down-list-combo" , height : 24 , attributes : { tabIndex : 0 } } ) } , _init : function ( ) { BI . TextValueDownListCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _createValueMap ( ) ; var c ; BI . isNotNull ( b . value ) && ( c = this . _digest ( b . value ) ) , this . trigger = BI . createWidget ( { type : "bi.down_list_select_text_trigger" , cls : "text-value-down-list-trigger" , height : b . height , items : b . items , text : b . text , value : c } ) , this . combo = BI . createWidget ( { type : "bi.down_list_combo" , element : this , chooseType : BI . Selection . Single , adjustLength : 2 , height : b . height , el : this . trigger , value : BI . isNull ( c ) ? [ ] : [ c ] , items : BI . deepClone ( b . items ) } ) , this . combo . on ( BI . DownListCombo . EVENT _CHANGE , function ( ) { var b = a . combo . getValue ( ) [ 0 ] . value ; b !== a . value && ( a . setValue ( b ) , a . fireEvent ( BI . TextValueDownListCombo . EVENT _CHANGE ) ) } ) , this . combo . on ( BI . DownListCombo . EVENT _SON _VALUE _CHANGE , function ( ) { var b = a . combo . getValue ( ) [ 0 ] . childValue ; b !== a . value && ( a . setValue ( b ) , a . fireEvent ( BI . TextValueDownListCombo . EVENT _CHANGE ) ) } ) } , _createValueMap : function ( ) { var a = this ; this . valueMap = { } , BI . each ( BI . flatten ( this . options . items ) , function ( b , c ) { BI . has ( c , "el" ) ? BI . each ( c . children , function ( b , d ) { a . valueMap [ d . value ] = { value : c . el . value , childValue : d . value } } ) : a . valueMap [ c . value ] = { value : c . value } } ) } , _digest : function ( a ) { return this . value = a , this . valueMap [ a ] } , setValue : function ( a ) { a = this . _digest ( a ) , this . combo . setValue ( [ a ] ) , this . trigger . setValue ( a ) } , getValue : function ( ) { var a = this . combo . getValue ( ) [ 0 ] ; return [ a . childValue || a . value ] } , populate : function ( a ) { this . options . items = BI . flatten ( a ) , this . combo . populate ( a ) , this . _createValueMap ( ) } } ) , BI . TextValueDownListCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_down_list_combo" , BI . TextValueDownListCombo ) , BI . DownListSelectText
} , _createToolBar : function ( ) { var a = this . options , b = this ; if ( 0 !== a . buttons . length ) { var c = [ ] ; return BI . each ( a . buttons , function ( a , b ) { c . push ( { text : b , value : a } ) } ) , this . buttongroup = BI . createWidget ( { type : "bi.button_group" , cls : "list-view-toolbar bi-high-light bi-split-top" , height : 24 , items : BI . createItems ( c , { type : "bi.text_button" , once : ! 1 , shadow : ! 0 , isShadowShowingOnSelected : ! 0 } ) , layouts : [ { type : "bi.center" , hgap : 0 , vgap : 0 } ] } ) , this . buttongroup . on ( BI . ButtonGroup . EVENT _CHANGE , function ( a , c ) { b . fireEvent ( BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON , a , c ) } ) , this . buttongroup } } } ) , BI . MultiPopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON" , BI . shortcut ( "bi.multi_popup_view" , BI . MultiPopupView ) , BI . PopupPanel = BI . inherit ( BI . MultiPopupView , { _defaultConfig : function ( ) { var a = BI . PopupPanel . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-popup-panel" , title : "" } ) } , _init : function ( ) { BI . PopupPanel . superclass . _init . apply ( this , arguments ) } , _createTool : function ( ) { var a = this , b = this . options , c = BI . createWidget ( { type : "bi.icon_button" , cls : "close-h-font" , width : 25 , height : 25 } ) ; return c . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . setVisible ( ! 1 ) , a . fireEvent ( BI . PopupPanel . EVENT _CLOSE ) } ) , BI . createWidget ( { type : "bi.htape" , cls : "popup-panel-title bi-header-background" , height : 25 , items : [ { el : { type : "bi.label" , textAlign : "left" , text : b . title , height : 25 , lgap : 10 } } , { el : c , width : 25 } ] } ) } } ) , BI . PopupPanel . EVENT _CHANGE = "EVENT_CHANGE" , BI . PopupPanel . EVENT _CLOSE = "EVENT_CLOSE" , BI . PopupPanel . EVENT _CLICK _TOOLBAR _BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON" , BI . shortcut ( "bi.popup_panel" , BI . PopupPanel ) , BI . ListPane = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { var a = BI . ListPane . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-list-pane" , logic : { dynamic : ! 0 } , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , vgap : 0 , hgap : 0 , items : [ ] , itemsCreator : BI . emptyFn , hasNext : BI . emptyFn , onLoaded : BI . emptyFn , el : { type : "bi.button_group" } } ) } , _init : function ( ) { BI . ListPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . button _group = BI . createWidget ( b . el , { type : "bi.button_group" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , behaviors : { } , items : b . items , itemsCreator : function ( c , d ) { 1 === c . times && ( a . empty ( ) , BI . nextTick ( function ( ) { a . loading ( ) } ) ) , b . itemsCreator ( c , function ( ) { d . apply ( a , arguments ) , 1 === c . times && BI . nextTick ( function ( ) { a . loaded ( ) } ) } ) } , hasNext : b . hasNext , layouts : [ { type : "bi.vertical" } ] } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . ListPane . EVENT _CHANGE , c , d ) } ) , this . check ( ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Top ) , BI . extend ( { scrolly : ! 0 , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , vgap : b . vgap , hgap : b . hgap } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Top , this . button _group ) } ) ) ) ) } , hasPrev : function ( ) { return this . button _group . hasPrev && this . button _group . hasPrev ( ) } , hasNext : function ( ) { return this . button _group . hasNext && this . button _group . hasNext ( ) } , prependItems : function ( a ) { this . options . items = a . concat ( this . options . items ) , this . button _group . prependItems . apply ( this . button _group , arguments ) , this . check ( ) } , addItems : function ( a ) { this . options . items = this . options . items . concat ( a ) , this . button _group . addItems . apply ( this . button _group , arguments ) , this . check ( ) } , removeItemAt : function ( a ) { a = a || [ ] , BI . removeAt ( this . options . items , a ) , this . button _group . removeItemAt . apply ( this . button _group , arguments ) , this . check ( ) } , populate : function ( a ) { var b = this ; this . options ; return 0 === arguments . length && BI . isFunction ( this . button _group . attr ( "itemsCreator" ) ) ? void this . button _group . attr ( "itemsCreator" ) . apply ( this , [ { times : 1 } , function ( ) { if ( 0 === arguments . length ) throw new Error ( "参数不能为空" ) ; b . populate . apply ( b , arguments ) } ] ) : ( BI . ListPane . superclass . populate . apply ( this , arguments ) , void this . button _group . populate . apply ( this . button _group , arguments ) ) } , empty : function ( ) { this . button _group . empty ( ) } , setNotSelectedValue : function ( ) { this . button _gr
BI . SegmentButton . superclass . setSelected . apply ( this , arguments ) } , setText : function ( a ) { BI . SegmentButton . superclass . setText . apply ( this , arguments ) , this . text . setText ( a ) } , destroy : function ( ) { BI . SegmentButton . superclass . destroy . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.segment_button" , BI . SegmentButton ) , BI . Segment = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Segment . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-segment" , items : [ ] , height : 24 } ) } , _init : function ( ) { BI . Segment . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . buttonGroup = BI . createWidget ( { element : this , type : "bi.button_group" , value : b . value , items : BI . createItems ( b . items , { type : "bi.segment_button" , height : b . height - 2 , whiteSpace : b . whiteSpace } ) , layout : [ { type : "bi.center" } ] } ) , this . buttonGroup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . buttonGroup . on ( BI . ButtonGroup . EVENT _CHANGE , function ( b , c ) { a . fireEvent ( BI . Segment . EVENT _CHANGE , b , c ) } ) } , _setEnable : function ( a ) { BI . Segment . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . removeClass ( "base-disabled disabled" ) : a === ! 1 && this . element . addClass ( "base-disabled disabled" ) } , setValue : function ( a ) { this . buttonGroup . setValue ( a ) } , setEnabledValue : function ( a ) { this . buttonGroup . setEnabledValue ( a ) } , getValue : function ( ) { return this . buttonGroup . getValue ( ) } } ) , BI . Segment . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.segment" , BI . Segment ) , BI . MultiSelectBar = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectBar . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-multi-select-bar" , height : 25 , text : BI . i18nText ( "BI-Select_All" ) , isAllCheckedBySelectedValue : BI . emptyFn , disableSelected : ! 0 , isHalfCheckedBySelectedValue : function ( a ) { return a . length > 0 } , halfSelected : ! 1 , iconWrapperWidth : 26 } ) } , _init : function ( ) { BI . MultiSelectBar . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = b . selected === ! 0 , d = ! b . selected && b . halfSelected ; this . checkbox = BI . createWidget ( { type : "bi.checkbox" , stopPropagation : ! 0 , handler : function ( ) { a . setSelected ( a . isSelected ( ) ) } , selected : c , invisible : d } ) , this . half = BI . createWidget ( { type : "bi.half_icon_button" , stopPropagation : ! 0 , handler : function ( ) { a . setSelected ( ! 0 ) } , invisible : c || ! d } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , a . isSelected ( ) , a ) } ) , this . checkbox . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , a . isSelected ( ) , a ) } ) , this . half . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , a . isSelected ( ) , a ) } ) , this . half . on ( BI . HalfIconButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , a . isSelected ( ) , a ) } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , keyword : b . keyword , value : b . value , py : b . py } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { width : b . iconWrapperWidth , el : { type : "bi.center_adapt" , items : [ this . checkbox , this . half ] } } , { el : this . text } ] } ) } , _setSelected : function ( a ) { this . checkbox . setSelected ( ! ! a ) } , beforeClick : function ( ) { var a = this . isHalfSelected ( ) , b = this . isSelected ( ) ; a === ! 0 ? this . setSelected ( ! 0 ) : this . setSelected ( ! b ) } , setSelected : function ( a ) { this . checkbox . setSelected ( a ) , this . setHalfSelected ( ! 1 ) } , setHalfSelected : function ( a ) { this . halfSelected = ! ! a , a === ! 0 ? ( this . checkbox . setSelected ( ! 1 ) , this . half . visible ( ) , this . checkbox . invisible ( ) ) : ( this . half . invisible ( ) , this . checkbox . visible ( ) ) } , isHalfSelected : function ( ) { return ! this . isSelected ( ) && ! ! this . halfSelected } , isSelected : function ( ) { return this . checkbox . isSelected ( ) } , setValue : function ( a ) { BI . MultiSelectBar . superclass . setValue . apply ( this , arguments ) ; var b = this . options . isAllCheckedBySelectedValue . apply ( this , arguments ) ; this . _setSelected ( b ) , ! b && this . setHalfSelected ( this . options . isHalfCheckedBySelectedValue . apply ( this , arguments ) ) } , doClick : function ( ) { BI . MultiSelectBar . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , this . isSelected ( ) , this ) } } ) , BI . MultiSelectBar . E
} ) , listeners : [ { eventName : BI . ButtonGroup . EVENT _CHANGE , action : function ( ) { var b = this . getValue ( ) [ 0 ] ; switch ( a . dateTab . setSelect ( b ) , b ) { case BI . DynamicDatePane . Static : var c = BI . DynamicDateHelper . getCalculation ( a . dynamicPane . getValue ( ) ) ; a . ymd . setValue ( { year : c . getFullYear ( ) , month : c . getMonth ( ) + 1 , day : c . getDate ( ) } ) ; break ; case BI . DynamicDatePane . Dynamic : a . dynamicPane . setValue ( { year : 0 } ) } } } ] , ref : function ( ) { a . switcher = this } } , height : 30 } , { type : "bi.tab" , ref : function ( ) { a . dateTab = this } , showIndex : BI . DynamicDatePane . Static , cardCreator : function ( c ) { switch ( c ) { case BI . DynamicDatePane . Static : return { type : "bi.static_date_pane_card" , behaviors : b . behaviors , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } ] , ref : function ( ) { a . ymd = this } } ; case BI . DynamicDatePane . Dynamic : default : return { type : "bi.dynamic_date_card" , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . _checkValue ( a . getValue ( ) ) && a . fireEvent ( "EVENT_CHANGE" ) } } ] , ref : function ( ) { a . dynamicPane = this } } } } } ] } } , mounted : function ( ) { this . setValue ( this . options . value ) } , _checkValueValid : function ( a ) { return BI . isNull ( a ) || BI . isEmptyObject ( a ) || BI . isEmptyString ( a ) } , _checkValue : function ( a ) { switch ( a . type ) { case BI . DynamicDateCombo . Dynamic : return BI . isNotEmptyObject ( a . value ) ; case BI . DynamicDateCombo . Static : default : return ! 0 } } , setValue : function ( a ) { a = a || { } ; var b = a . type || BI . DynamicDateCombo . Static , c = a . value || a ; switch ( this . switcher . setValue ( b ) , this . dateTab . setSelect ( b ) , b ) { case BI . DynamicDateCombo . Dynamic : this . dynamicPane . setValue ( c ) ; break ; case BI . DynamicDateCombo . Static : default : if ( this . _checkValueValid ( c ) ) { var d = BI . getDate ( ) ; this . ymd . setValue ( { year : d . getFullYear ( ) , month : d . getMonth ( ) + 1 } ) } else this . ymd . setValue ( c ) } } , getValue : function ( ) { return { type : this . dateTab . getSelect ( ) , value : this . dateTab . getValue ( ) } } } ) , BI . shortcut ( "bi.dynamic_date_pane" , BI . DynamicDatePane ) , BI . extend ( BI . DynamicDatePane , { Static : 1 , Dynamic : 2 } ) , BI . DateTimeCombo = BI . inherit ( BI . Single , { constants : { popupHeight : 290 , popupWidth : 270 , comboAdjustHeight : 1 , border : 1 , DATE _MIN _VALUE : "1900-01-01" , DATE _MAX _VALUE : "2099-12-31" } , _defaultConfig : function ( ) { return BI . extend ( BI . DateTimeCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-date-time-combo bi-border bi-border-radius" , width : 200 , height : 24 } ) } , _init : function ( ) { BI . DateTimeCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = BI . getDate ( ) ; this . storeValue = BI . isNotNull ( b . value ) ? b . value : { year : c . getFullYear ( ) , month : c . getMonth ( ) + 1 , day : c . getDate ( ) , hour : c . getHours ( ) , minute : c . getMinutes ( ) , second : c . getSeconds ( ) } , this . trigger = BI . createWidget ( { type : "bi.date_time_trigger" , min : this . constants . DATE _MIN _VALUE , max : this . constants . DATE _MAX _VALUE , value : b . value } ) , this . popup = BI . createWidget ( { type : "bi.date_time_popup" , behaviors : b . behaviors , min : this . constants . DATE _MIN _VALUE , max : this . constants . DATE _MAX _VALUE , value : b . value } ) , a . setValue ( this . storeValue ) , this . popup . on ( BI . DateTimePopup . BUTTON _CANCEL _EVENT _CHANGE , function ( ) { a . setValue ( a . storeValue ) , a . hidePopupView ( ) , a . fireEvent ( BI . DateTimeCombo . EVENT _CANCEL ) } ) , this . popup . on ( BI . DateTimePopup . BUTTON _OK _EVENT _CHANGE , function ( ) { a . storeValue = a . popup . getValue ( ) , a . setValue ( a . storeValue ) , a . hidePopupView ( ) , a . fireEvent ( BI . DateTimeCombo . EVENT _CONFIRM ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , container : b . container , toggle : ! 1 , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , adjustLength : this . constants . comboAdjustHeight , popup : { el : this . popup , width : this . constants . popupWidth , stopPropagation : ! 1 } , hideChecker : function ( a ) { return 0 === d . element . find ( a . target ) . length } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DateTimeCombo . EVENT _BEFORE _POPUPVIEW ) } ) ; var d = BI . createWidget ( { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-font" , width : 24 , height : 24 } ) ; d . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . combo . isViewVisible ( ) || 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 , right : 0 } ] } ] } ) } , setValue : function ( a ) { this . storeValue = a , this . popup . setValue ( a ) , this . trigger . setValue ( a ) } , getValue : fun
TYPE : { YEAR : 1 , QUARTER : 2 , MONTH : 3 , WEEK : 4 , DAY : 5 , WORK _DAY : 6 } , OFFSET : { CURRENT : 1 , BEGIN : 2 , END : 3 } } ) , BI . DynamicDateCombo = BI . inherit ( BI . Single , { constants : { popupHeight : 259 , popupWidth : 270 , comboAdjustHeight : 1 , border : 1 , DATE _MIN _VALUE : "1900-01-01" , DATE _MAX _VALUE : "2099-12-31" } , props : { baseCls : "bi-dynamic-date-combo bi-border bi-focus-shadow bi-border-radius" , height : 22 } , render : function ( ) { var a = this , b = this . options ; this . storeTriggerValue = "" ; var c = BI . getDate ( ) ; return this . storeValue = b . value , { type : "bi.htape" , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : b . height , height : b . height , ref : function ( ) { a . changeIcon = this } } , width : b . height } , { type : "bi.absolute" , items : [ { el : { type : "bi.combo" , container : b . container , ref : function ( ) { a . combo = this } , toggle : ! 1 , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : { type : "bi.dynamic_date_trigger" , min : this . constants . DATE _MIN _VALUE , max : this . constants . DATE _MAX _VALUE , height : b . height , value : b . value , ref : function ( ) { a . trigger = this } , listeners : [ { eventName : BI . DynamicDateTrigger . EVENT _KEY _DOWN , action : function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } } , { eventName : BI . DynamicDateTrigger . EVENT _STOP , action : function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } } , { eventName : BI . DynamicDateTrigger . EVENT _TRIGGER _CLICK , action : function ( ) { a . combo . toggle ( ) } } , { eventName : BI . DynamicDateTrigger . EVENT _FOCUS , action : function ( ) { a . storeTriggerValue = a . trigger . getKey ( ) , a . combo . isViewVisible ( ) || a . combo . showView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _FOCUS ) } } , { eventName : BI . DynamicDateTrigger . EVENT _ERROR , action : function ( ) { a . storeValue = { type : BI . DynamicDateCombo . Static , value : { year : c . getFullYear ( ) , month : c . getMonth ( ) + 1 } } , a . fireEvent ( BI . DynamicDateCombo . EVENT _ERROR ) } } , { eventName : BI . DynamicDateTrigger . EVENT _VALID , action : function ( ) { a . fireEvent ( BI . DynamicDateCombo . EVENT _VALID ) } } , { eventName : BI . DynamicDateTrigger . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDateCombo . EVENT _CHANGE ) } } , { eventName : BI . DynamicDateTrigger . EVENT _CONFIRM , action : function ( ) { if ( ! a . combo . isViewVisible ( ) ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI . isNotEmptyString ( c ) && ! BI . isEqual ( c , b ) ? ( a . storeValue = a . trigger . getValue ( ) , a . setValue ( a . trigger . getValue ( ) ) ) : BI . isEmptyString ( c ) && ( a . storeValue = null , a . trigger . setValue ( ) ) , a . _checkDynamicValue ( a . storeValue ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } } ] } , adjustLength : this . constants . comboAdjustHeight , popup : { el : { type : "bi.dynamic_date_popup" , behaviors : b . behaviors , min : this . constants . DATE _MIN _VALUE , max : this . constants . DATE _MAX _VALUE , value : b . value , ref : function ( ) { a . popup = this } , listeners : [ { eventName : BI . DynamicDatePopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicDatePopup . BUTTON _lABEL _EVENT _CHANGE , action : function ( ) { var b = BI . getDate ( ) ; a . setValue ( { type : BI . DynamicDateCombo . Static , value : { year : b . getFullYear ( ) , month : b . getMonth ( ) + 1 , day : b . getDate ( ) } } ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicDatePopup . BUTTON _OK _EVENT _CHANGE , action : function ( ) { var b = a . popup . getValue ( ) ; a . _checkValue ( b ) && a . setValue ( b ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicDatePopup . EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } ] } , stopPropagation : ! 1 } , hideChecker : function ( b ) { return 0 === a . triggerBtn . element . find ( b . target ) . length } , listeners : [ { eventName : BI . Combo . EVENT _BEFORE _POPUPVIEW , action : function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _BEFORE _POPUPVIEW ) } } ] } , top : 0 , left : 0 , right : 0 , bottom : 0 } , { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-font" , width : b . height , height : b . height , listeners : [ { eventName : BI . IconButton . EVENT _CHANGE , action : function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } } ] , ref : function ( ) { a . triggerBtn = this } } , top : 0 , right : 0 } ] } ] , ref : function ( b ) { a . comboWrapper = b } } } , mounted : function ( ) { this . _checkDynamicValue ( this . storeValue ) } , _checkDynamicValue : function ( a ) { var b = this . options , c = null ; switch ( BI . isNotNull ( a ) && ( c = a . type ) , c ) { case BI . Dyna
year : 0 | c [ 0 ] , month : 0 | c [ 1 ] , day : 0 | c [ 2 ] } ) } , quitChecker : function ( ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , watermark : BI . i18nText ( "BI-Basic_Unrestricted" ) , errorText : function ( ) { return a . editor . isEditing ( ) ? BI . i18nText ( "BI-Basic_Date_Time_Error_Text" ) : BI . i18nText ( "BI-Year_Trigger_Invalid_Text" ) } , title : function ( ) { var b = a . storeValue || { } , c = b . type || BI . DynamicDateCombo . Static , d = b . value ; switch ( c ) { case BI . DynamicDateCombo . Dynamic : var e = a . _getText ( d ) , f = BI . DynamicDateHelper . getCalculation ( d ) , g = BI . print ( f , "%Y-%x-%e %H:%M:%S" ) ; return BI . isEmptyString ( e ) ? g : e + ":" + g ; case BI . DynamicDateCombo . Static : default : return BI . isNull ( d ) || BI . isNull ( d . day ) ? "" : BI . print ( BI . getDate ( d . year , d . month - 1 , d . day , d . hour || 0 , d . minute || 0 , d . second || 0 ) , "%Y-%X-%d %H:%M:%S" ) } } } ) , this . editor . on ( BI . SignEditor . EVENT _KEY _DOWN , function ( ) { a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _KEY _DOWN ) } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . storeTriggerValue = a . getKey ( ) , a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _STOP ) } ) , this . editor . on ( BI . SignEditor . EVENT _VALID , function ( ) { a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _VALID ) } ) , this . editor . on ( BI . SignEditor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _ERROR ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; if ( BI . isNotNull ( b ) && a . editor . setState ( b ) , BI . isNotEmptyString ( b ) && ! BI . isEqual ( a . storeTriggerValue , a . getKey ( ) ) ) { var c = b . split ( /-|\s|:/ ) ; a . storeValue = { type : BI . DynamicDateCombo . Static , value : { year : 0 | c [ 0 ] , month : 0 | c [ 1 ] , day : 0 | c [ 2 ] , hour : 0 | c [ 3 ] , minute : 0 | c [ 4 ] , second : 0 | c [ 5 ] } } } a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _CONFIRM ) } ) , this . editor . on ( BI . SignEditor . EVENT _START , function ( ) { a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DynamicDateTimeTrigger . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . editor } , { el : BI . createWidget ( ) , width : 24 } ] } ) , this . setValue ( b . value ) } , _dateCheck : function ( a ) { return BI . print ( BI . parseDateTime ( a , "%Y-%x-%d %H:%M:%S" ) , "%Y-%x-%d %H:%M:%S" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%X-%d %H:%M:%S" ) , "%Y-%X-%d %H:%M:%S" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%x-%e %H:%M:%S" ) , "%Y-%x-%e %H:%M:%S" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%X-%e %H:%M:%S" ) , "%Y-%X-%e %H:%M:%S" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%x-%d" ) , "%Y-%x-%d" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%X-%d" ) , "%Y-%X-%d" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%x-%e" ) , "%Y-%x-%e" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%X-%e" ) , "%Y-%X-%e" ) === a } , _checkVoid : function ( a ) { return ! BI . checkDateVoid ( a . year , a . month , a . day , this . options . min , this . options . max ) [ 0 ] } , _autoAppend : function ( a , b ) { if ( BI . isNotNull ( b ) && BI . checkDateLegal ( a ) ) switch ( a . length ) { case this . _const . yearLength : this . _yearCheck ( a ) && this . editor . setValue ( a + "-" ) ; break ; case this . _const . yearMonthLength : case this . _const . yearFullMonthLength : var c = a . split ( "-" ) [ 1 ] ; ( BI . isNotNull ( c ) && 2 === c . length || this . _monthCheck ( a ) ) && this . editor . setValue ( a + "-" ) } } , _yearCheck : function ( a ) { var b = BI . print ( BI . parseDateTime ( a , "%Y-%X-%d" ) , "%Y-%X-%d" ) ; return BI . print ( BI . parseDateTime ( a , "%Y" ) , "%Y" ) === a && b >= this . options . min && b <= this . options . max } , _monthCheck : function ( a ) { var b = BI . parseDateTime ( a , "%Y-%X-%d" ) , c = BI . print ( b , "%Y-%X-%d" ) ; return b . getMonth ( ) > 0 && ( BI . print ( BI . parseDateTime ( a , "%Y-%X" ) , "%Y-%X" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%x" ) , "%Y-%x" ) === a ) && c >= this . options . min && c <= this . options . max } , _setInnerValue : function ( a ) { var b = BI . print ( a , "%Y-%X-%e %H:%M:%S" ) ; this . editor . setState ( b ) , this . editor . setValue ( b ) } , _getText : function ( a ) { function b ( a , b ) { switch ( b ) { case BI . DynamicDateCard . OFFSET . BEGIN : return a + BI . i18nText ( "BI-Basic_Begin_Start" ) ; case BI . DynamicDateCard . OFFSET . END : return a + BI . i18nText ( "BI-Basic_End_Stop" ) ; case BI . DynamicDateCard . OFFSET . CURRENT : default : return BI . i18nText ( "BI-Basic_Current_Day" ) } } var c = "" , d = "" ; return BI . isNotNull ( a . year ) && ( 0 !== BI . parseInt ( a . year ) && ( c += Math . abs ( a . year ) + BI . i18nText ( "BI-Basic_Year" ) + ( a . year < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , d = b ( BI . i18nT
var b = a . editor . getValue ( ) ; BI . isNotNull ( b ) && ( a . editor . setValue ( b ) , a . editor . setTitle ( b ) ) , a . fireEvent ( BI . MonthTrigger . 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 . MonthTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . MonthTrigger . EVENT _STOP ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : { type : "bi.text_button" , text : BI . i18nText ( "BI-Multi_Date_Month" ) , baseCls : "bi-trigger-month-text" , width : b . height } , width : b . height } , { el : { type : "bi.trigger_icon_button" , width : b . height } , width : b . height } ] } ) , this . setValue ( b . value ) } , setValue : function ( a ) { return BI . isNotNull ( a ) ? ( this . editor . setState ( a + 1 ) , this . editor . setValue ( a + 1 ) , void this . editor . setTitle ( a + 1 ) ) : ( this . editor . setState ( "" ) , this . editor . setValue ( "" ) , void this . editor . setTitle ( "" ) ) } , getKey : function ( ) { return 0 | this . editor . getValue ( ) } , getValue : function ( ) { return this . editor . getValue ( ) - 1 } } ) , BI . MonthTrigger . EVENT _FOCUS = "EVENT_FOCUS" , BI . MonthTrigger . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . MonthTrigger . EVENT _START = "EVENT_START" , BI . MonthTrigger . EVENT _STOP = "EVENT_STOP" , BI . MonthTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.month_trigger" , BI . MonthTrigger ) , BI . DownListCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DownListCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-down-list-combo" , height : 24 , items : [ ] , adjustLength : 0 , direction : "bottom" , trigger : "click" , container : null , stopPropagation : ! 1 , el : { } } ) } , _init : function ( ) { BI . DownListCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . popupview = BI . createWidget ( { type : "bi.multi_layer_down_list_popup" , items : b . items , chooseType : b . chooseType , value : b . value } ) , this . popupview . on ( BI . DownListPopup . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . DownListCombo . EVENT _CHANGE , b ) , a . downlistcombo . hideView ( ) } ) , this . popupview . on ( BI . DownListPopup . EVENT _SON _VALUE _CHANGE , function ( b , c ) { a . fireEvent ( BI . DownListCombo . EVENT _SON _VALUE _CHANGE , b , c ) , a . downlistcombo . hideView ( ) } ) , this . downlistcombo = BI . createWidget ( { element : this , type : "bi.combo" , trigger : b . trigger , isNeedAdjustWidth : ! 1 , container : b . container , adjustLength : b . adjustLength , direction : b . direction , stopPropagation : b . stopPropagation , el : BI . createWidget ( b . el , { type : "bi.icon_trigger" , extraCls : b . iconCls ? b . iconCls : "pull-down-font" , width : b . width , height : b . height } ) , popup : { el : this . popupview , stopPropagation : ! 0 , maxHeight : 1e3 } } ) , this . downlistcombo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . DownListCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , hideView : function ( ) { this . downlistcombo . hideView ( ) } , showView : function ( a ) { this . downlistcombo . showView ( a ) } , populate : function ( a ) { this . popupview . populate ( a ) } , setValue : function ( a ) { this . popupview . setValue ( a ) } , getValue : function ( ) { return this . popupview . getValue ( ) } } ) , BI . DownListCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . DownListCombo . EVENT _SON _VALUE _CHANGE = "EVENT_SON_VALUE_CHANGE" , BI . DownListCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.multi_layer_down_list_combo" , BI . DownListCombo ) , BI . MultiLayerDownListPopup = BI . inherit ( BI . Pane , { constants : { nextIcon : "pull-right-e-font" , height : 25 , iconHeight : 12 , iconWidth : 12 , hgap : 0 , vgap : 0 , border : 1 } , _defaultConfig : function ( ) { var a = BI . MultiLayerDownListPopup . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-down-list-popup" , items : [ ] , chooseType : BI . Selection . Multi } ) } , _init : function ( ) { BI . MultiLayerDownListPopup . superclass . _init . apply ( this , arguments ) , this . singleValues = [ ] , this . childValueMap = { } , this . fatherValueMap = { } ; var a = this , b = this . options , c = this . _createPopupItems ( b . items ) ; this . popup = BI . createWidget ( { type : "bi.button_tree" , items : BI . createItems ( c , { } , { adjustLength : - 2 } ) , layouts : [ { type : "bi.vertical" , hgap : this . constants . hgap , vgap : this . constants . vgap } ] , value : this . _digest ( b . value ) , chooseType : b . chooseType } ) , this . popup . on ( BI . ButtonTree . EVENT _CHANGE , function ( b , c ) { var d = b ; if ( BI . isNotNull ( a . childValueMap [ b ] ) ) { d = a . childValueMap [ b ] ; var e = a . fatherValueMap [ b ] , f = ( e + "" ) . split ( "_" ) ; a . fireEvent ( BI . MultiLayerDown
width : 12 , height : a . height } ) } ) , d . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( a . layer , 12 ) , items : [ d ] } ) } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , doClick : function ( ) { BI . MultiLayerSingleTreePlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSingleTreePlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . node ) && this . node . setOpened ( a ) } , _createNode : function ( ) { var a = this , b = this . options ; return BI . createWidget ( { type : "bi.plus_group_node" , cls : "bi-list-item-none" , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , open : b . open , isLastNode : b . isLastNode , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py , keyword : b . keyword , listeners : [ { eventName : BI . Controller . EVENT _CHANGE , action : function ( b ) { b !== BI . Events . CLICK && a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } } ] } ) } } ) , BI . shortcut ( "bi.multilayer_single_tree_plus_group_node" , BI . MultiLayerSingleTreePlusGroupNode ) , 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 : 24 } ) } , _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 , keyword : b . keyword } ) , this . item . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b !== BI . Events . CLICK && a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; for ( var c = [ ] , d = b . pNode ; d ; ) d . isLastNode && c . push ( d . layer ) , d = d . pNode ; var e = [ ] ; BI . count ( 0 , b . layer , function ( a ) { e . push ( { type : "bi.layout" , cls : BI . contains ( c , a ) ? "" : "base-line-conn-background" , width : 12 , height : b . height } ) } ) , e . push ( this . item ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 12 ) , items : [ e ] } ) } , doHighLight : function ( ) { this . item . doHighLight . apply ( this . item , arguments ) } , unHighLight : function ( ) { this . item . unHighLight . apply ( this . item , arguments ) } , getId : function ( ) { return this . options . id } , getPId : function ( ) { return this . options . pId } , doClick : function ( ) { BI . MultiLayerSingleTreeFirstTreeLeafItem . superclass . doClick . apply ( this , arguments ) , this . item . setSelected ( this . isSelected ( ) ) } , setSelected : function ( a ) { BI . MultiLayerSingleTreeFirstTreeLeafItem . superclass . setSelected . apply ( this , arguments ) , this . item . setSelected ( a ) } } ) , BI . shortcut ( "bi.multilayer_single_tree_first_tree_leaf_item" , BI . MultiLayerSingleTreeFirstTreeLeafItem ) , BI . MultiLayerSingleTreeLastTreeLeafItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSingleTreeLastTreeLeafItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-multilayer-single-tree-last-tree-leaf-item bi-list-item-active" , logic : { dynamic : ! 1 } , layer : 0 , id : "" , pId : "" , height : 24 } ) } , _init : function ( ) { BI . MultiLayerSingleTreeLastTreeLeafItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . item = BI . createWidget ( { type : "bi.last_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 , keyword : b . keyword } ) , this . item . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b !== BI . Events . CLICK && a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; for ( var c = [ ] , d = b . pNode ; d ; ) d . isLastNode && c . push ( d . layer ) , d = d . pNode ; var e = [ ] ; BI . count ( 0 , b . layer , function ( a ) { e . push ( { type : "bi.layout" , cls : BI . contains ( c , a ) ? "" : "base-line-conn-background" , width : 12 , height : b . height } ) } ) , e . push ( this . item ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 12 ) , items : [ e ] } ) } , doHighLight : function ( ) { this . item . doHighLight . apply ( this . item , arguments ) } , unHighLight : function ( ) { this . item . unHighLight . apply ( this . item , arguments ) } , getId : function ( ) { return this . options . id } , getPId : fu
BI . nextTick ( function ( ) { d . attr ( "items" ) [ 1 ] . width = b === ! 0 ? a . numberCounter . element . outerWidth ( ) + 8 : 0 , d . resize ( ) } ) } ) , this . element . click ( function ( b ) { a . element . find ( b . target ) . length > 0 && a . numberCounter . hideView ( ) } ) } , getCounter : function ( ) { return this . numberCounter } , getSearcher : function ( ) { return this . searcher } , stopEditing : function ( ) { this . searcher . stopSearch ( ) , this . numberCounter . hideView ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) , this . numberCounter . setAdapter ( a ) } , setValue : function ( a ) { this . searcher . setValue ( a ) , this . numberCounter . setValue ( a ) } , getKey : function ( ) { return this . searcher . getKey ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } } ) , BI . MultiSelectInsertTrigger . EVENT _TRIGGER _CLICK = "EVENT_TRIGGER_CLICK" , BI . MultiSelectInsertTrigger . EVENT _COUNTER _CLICK = "EVENT_COUNTER_CLICK" , BI . MultiSelectInsertTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiSelectInsertTrigger . EVENT _START = "EVENT_START" , BI . MultiSelectInsertTrigger . EVENT _STOP = "EVENT_STOP" , BI . MultiSelectInsertTrigger . EVENT _PAUSE = "EVENT_PAUSE" , BI . MultiSelectInsertTrigger . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . MultiSelectInsertTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW = "EVENT_BEFORE_COUNTER_POPUPVIEW" , BI . MultiSelectInsertTrigger . EVENT _ADD _ITEM = "EVENT_ADD_ITEM" , BI . shortcut ( "bi.multi_select_insert_trigger" , BI . MultiSelectInsertTrigger ) , BI . MultiSelectLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-loader" , logic : { dynamic : ! 0 } , el : { height : 400 } , valueFormatter : BI . emptyFn , itemsCreator : BI . emptyFn , onLoaded : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectLoader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = ! 1 ; this . storeValue = b . value || { } , this . _assertValue ( this . storeValue ) , this . button _group = BI . createWidget ( { type : "bi.select_list" , logic : b . logic , toolbar : { type : "bi.multi_select_bar" , cls : "bi-list-item-active" , iconWrapperWidth : 36 } , el : BI . extend ( { onLoaded : b . onLoaded , 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" } ] } } } , b . el ) , itemsCreator : function ( d , e ) { var f = a . _startValue ; a . storeValue && ( d = BI . extend ( d || { } , { selectedValues : BI . isKey ( f ) && a . storeValue . type === BI . Selection . Multi ? a . storeValue . value . concat ( f ) : a . storeValue . value } ) ) , b . itemsCreator ( d , function ( g ) { c = g . hasNext ; var h = [ ] ; if ( 1 === d . times && a . storeValue ) { var i = BI . map ( a . storeValue . value , function ( c , d ) { var e = b . valueFormatter ( d ) || d ; return { text : e , value : d , title : e , selected : a . storeValue . type === BI . Selection . Multi } } ) ; if ( BI . isKey ( a . _startValue ) && ! BI . contains ( a . storeValue . value , a . _startValue ) ) { var j = b . valueFormatter ( f ) || f ; i . unshift ( { text : j , value : f , title : j , selected : ! 0 } ) } h = a . _createItems ( i ) } e ( h . concat ( a . _createItems ( g . items ) ) , g . keyword || "" ) , 1 === d . times && a . storeValue && ( BI . isKey ( f ) && ( a . storeValue . type === BI . Selection . All ? BI . remove ( a . storeValue . value , f ) : BI . pushDistinct ( a . storeValue . value , f ) ) , a . setValue ( a . storeValue ) ) , 1 === d . times && a . _scrollToTop ( ) } ) } , hasNext : function ( ) { return c } , value : this . storeValue } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Top ) , BI . extend ( { scrolly : ! 0 , vgap : 5 } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Top , this . button _group ) } ) ) ) ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . SelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.multi_select_item" , logic : this . options . logic , cls : "bi-list-item-active" , height : 24 , selected : this . isAllSelected ( ) , iconWrapperWidth : 36 } ) } , _scrollToTop : function ( ) { var a = this ; BI . delay ( function ( ) { a . button _group . element . scrollTop ( 0 ) } , 30 ) } , isAllSelected : function ( ) { return this . button _group . isAllSelected ( ) } , _assertValue : function ( a ) { a || ( a = { } ) , a . type || ( a . type = BI . Selection . Multi ) , a . value || ( a . value = [ ] ) } , setStartValue : function ( a ) { this . _startValue = a } , setValue : function ( a ) { this . storeValue = a || {
} ) , this . switcher = BI . createWidget ( { type : "bi.switcher" , toggle : ! 1 , element : this , el : this . button , popup : BI . extend ( { type : "bi.multi_select_check_pane" , valueFormatter : b . valueFormatter , itemsCreator : b . itemsCreator , onClickContinueSelect : function ( ) { a . switcher . hideView ( ) } , value : b . value } , b . popup ) , adapter : b . adapter , masker : b . masker } ) , this . switcher . on ( BI . Switcher . EVENT _TRIGGER _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectCheckSelectedSwitcher . EVENT _TRIGGER _CHANGE ) } ) , this . switcher . on ( BI . Switcher . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . MultiSelectCheckSelectedSwitcher . EVENT _BEFORE _POPUPVIEW ) } ) , this . switcher . on ( BI . Switcher . EVENT _AFTER _POPUPVIEW , function ( ) { var a = this ; BI . nextTick ( function ( ) { a . populate ( ) } ) } ) , this . switcher . element . click ( function ( a ) { a . stopPropagation ( ) } ) } , adjustView : function ( ) { this . switcher . adjustView ( ) } , hideView : function ( ) { this . switcher . empty ( ) , this . switcher . hideView ( ) } , setAdapter : function ( a ) { this . switcher . setAdapter ( a ) } , setValue : function ( a ) { this . switcher . setValue ( a ) } , setButtonChecked : function ( a ) { this . button . setValue ( a ) } , getValue : function ( ) { } , populate : function ( a ) { this . switcher . populate . apply ( this . switcher , arguments ) } } ) , BI . MultiSelectCheckSelectedSwitcher . EVENT _TRIGGER _CHANGE = "MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE" , BI . MultiSelectCheckSelectedSwitcher . EVENT _BEFORE _POPUPVIEW = "MultiSelectCheckSelectedSwitcher.EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.multi_select_check_selected_switcher" , BI . MultiSelectCheckSelectedSwitcher ) , BI . MultiSelectInsertList = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectInsertList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-insert-list" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectInsertList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = b . value || { } ; var c = function ( ) { BI . isKey ( a . _startValue ) && ( a . storeValue . type === BI . Selection . All ? BI . remove ( a . storeValue . value , a . _startValue ) : BI . pushDistinct ( a . storeValue . value , a . _startValue ) ) } ; this . adapter = BI . createWidget ( { type : "bi.multi_select_loader" , cls : "popup-multi-select-list bi-border-left bi-border-right bi-border-bottom" , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , logic : { dynamic : ! 0 } , el : { } , value : b . value } ) , this . adapter . on ( BI . MultiSelectLoader . EVENT _CHANGE , function ( ) { a . storeValue = this . getValue ( ) , c ( ) , a . fireEvent ( BI . MultiSelectInsertList . EVENT _CHANGE ) } ) , this . searcherPane = BI . createWidget ( { type : "bi.multi_select_search_insert_pane" , cls : "bi-border-left bi-border-right bi-border-bottom" , valueFormatter : b . valueFormatter , keywordGetter : function ( ) { return a . trigger . getKeyword ( ) } , itemsCreator : function ( c , d ) { c . keywords = [ a . trigger . getKeyword ( ) ] , this . setKeyword ( c . keywords [ 0 ] ) , b . itemsCreator ( c , d ) } , listeners : [ { eventName : BI . MultiSelectSearchInsertPane . EVENT _ADD _ITEM , action : function ( ) { var b = a . trigger . getKeyword ( ) ; a . trigger . hasMatched ( ) || ( a . storeValue . type === BI . Selection . Multi && BI . pushDistinct ( a . storeValue . value , b ) , a . _showAdapter ( ) , a . adapter . setValue ( a . storeValue ) , a . adapter . populate ( ) , a . storeValue . type === BI . Selection . Multi && a . fireEvent ( BI . MultiSelectInsertList . EVENT _CHANGE ) ) } } ] } ) , this . searcherPane . setVisible ( ! 1 ) , this . trigger = BI . createWidget ( { type : "bi.searcher" , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( a , b ) { b ( ) } , adapter : this . adapter , popup : this . searcherPane , height : 200 , masker : ! 1 , listeners : [ { eventName : BI . Searcher . EVENT _START , action : function ( ) { a . _showSearcherPane ( ) , a . _setStartValue ( "" ) , this . setValue ( BI . deepClone ( a . storeValue ) ) } } , { eventName : BI . Searcher . EVENT _STOP , action : function ( ) { a . _showAdapter ( ) , a . _setStartValue ( "" ) , a . adapter . setValue ( a . storeValue ) , a . adapter . populate ( ) } } , { eventName : BI . Searcher . EVENT _PAUSE , action : function ( ) { var b = this . getKeyword ( ) ; this . hasMatched ( ) && a . _join ( { type : BI . Selection . Multi , value : [ b ] } , function ( ) { a . storeValue . type === BI . Selection . Multi && BI . pushDistinct ( a . storeValue . value , b ) , a . _showAdapter ( ) , a . adapter . setValue ( a . storeValue ) , a . _setStartValue ( b ) , c ( ) , a . adapter . populate ( ) , a . _setStartValue ( "" ) , a . fireEvent ( BI . MultiSelectInsertList . EVENT _CHANGE ) } ) , a . _showAdapter ( ) } } , { eventName : BI . Searcher . EVENT _SEARCHING , action :
a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . partTree . on ( BI . TreeView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiTreeSearchPane . EVENT _CHANGE ) } ) } , hasChecked : function ( ) { return this . partTree . hasChecked ( ) } , setValue : function ( a ) { this . setSelectedValue ( a . value ) } , setSelectedValue : function ( a ) { a || ( a = { } ) , this . partTree . setSelectedValue ( a ) } , getValue : function ( ) { return this . partTree . getValue ( ) } , empty : function ( ) { this . partTree . empty ( ) } , populate : function ( a ) { this . partTree . stroke . apply ( this . partTree , arguments ) } } ) , BI . MultiTreeSearchPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiTreeSearchPane . EVENT _CLICK _CONFIRM = "EVENT_CLICK_CONFIRM" , BI . MultiTreeSearchPane . EVENT _CLICK _CLEAR = "EVENT_CLICK_CLEAR" , BI . shortcut ( "bi.multi_tree_search_pane" , BI . MultiTreeSearchPane ) , BI . MultiTreeCheckSelectedButton = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiTreeCheckSelectedButton . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-tree-check-selected-button" , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . MultiTreeCheckSelectedButton . superclass . _init . apply ( this , arguments ) ; var a = this ; this . indicator = BI . createWidget ( { type : "bi.icon_button" , cls : "check-font trigger-check-selected icon-size-12" , width : 15 , height : 15 , stopPropagation : ! 0 } ) , this . checkSelected = BI . createWidget ( { type : "bi.text_button" , cls : "trigger-check-selected" , invisible : ! 0 , hgap : 4 , text : BI . i18nText ( "BI-Check_Selected" ) , textAlign : "center" , textHeight : 15 } ) , this . checkSelected . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . checkSelected . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectCheckSelectedButton . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( { type : "bi.horizontal" , element : this , items : [ this . indicator , this . checkSelected ] } ) , this . element . hover ( function ( ) { a . indicator . setVisible ( ! 1 ) , a . checkSelected . setVisible ( ! 0 ) } , function ( ) { a . indicator . setVisible ( ! 0 ) , a . checkSelected . setVisible ( ! 1 ) } ) , this . setVisible ( ! 1 ) } , setValue : function ( a ) { a || ( a = { } ) , this . setVisible ( BI . size ( a . value ) > 0 ) } } ) , BI . MultiTreeCheckSelectedButton . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_tree_check_selected_button" , BI . MultiTreeCheckSelectedButton ) , BI . MultiTreeSearcher = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiTreeSearcher . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-tree-searcher" , itemsCreator : BI . emptyFn , valueFormatter : function ( a ) { return a } , popup : { } , adapter : null , masker : { } } ) } , _init : function ( ) { BI . MultiTreeSearcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.multi_select_editor" , height : b . height , el : { type : "bi.simple_state_editor" , height : b . height } } ) , this . searcher = BI . createWidget ( { type : "bi.searcher" , element : this , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( b , c ) { c ( { keyword : a . editor . getValue ( ) } ) } , el : this . editor , popup : BI . extend ( { type : "bi.multi_tree_search_pane" , keywordGetter : function ( ) { return a . editor . getValue ( ) } , itemsCreator : function ( c , d ) { c . keyword = a . editor . getValue ( ) , b . itemsCreator ( c , d ) } , value : b . value } , b . popup ) , adapter : b . adapter , masker : b . masker } ) , this . searcher . on ( BI . Searcher . EVENT _START , function ( ) { a . fireEvent ( BI . MultiTreeSearcher . EVENT _START ) } ) , this . searcher . on ( BI . Searcher . EVENT _PAUSE , function ( ) { this . hasMatched ( ) , a . fireEvent ( BI . MultiTreeSearcher . EVENT _PAUSE ) } ) , this . searcher . on ( BI . Searcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . MultiTreeSearcher . EVENT _STOP ) } ) , this . searcher . on ( BI . Searcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiTreeSearcher . EVENT _CHANGE , arguments ) } ) , BI . isNotNull ( b . value ) && this . setState ( b . value ) } , adjustView : function ( ) { this . searcher . adjustView ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) } , 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 ( ) } , setState : function ( a ) { function b ( a ) { var e = "" , f = 0 , g = BI . size ( a ) ; return BI . each ( a , function ( a , h ) { f ++ ; var i = b ( h ) ; e += ( c . valueFormat
this . _checkError ( ) } , getValue : function ( ) { return BI . deepClone ( this . storeValue ) } , _populate : function ( ) { this . _count = null , this . combo . populate ( ) } , populate : function ( a ) { this . options . items = a , this . _populate ( ) } } ) , BI . extend ( BI . SearchMultiTextValueCombo , { REQ _GET _DATA _LENGTH : 1 , REQ _GET _ALL _DATA : - 1 } ) , BI . SearchMultiTextValueCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.search_multi_text_value_combo" , BI . SearchMultiTextValueCombo ) , BI . SearchMultiSelectTrigger = BI . inherit ( BI . Trigger , { constants : { height : 14 , rgap : 4 , lgap : 4 } , _defaultConfig : function ( ) { return BI . extend ( BI . SearchMultiSelectTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-trigger bi-border" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , searcher : { } , switcher : { } , adapter : null , masker : { } } ) } , _init : function ( ) { BI . SearchMultiSelectTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; b . height && this . setHeight ( b . height - 2 ) , this . searcher = BI . createWidget ( b . searcher , { type : "bi.search_multi_select_searcher" , height : b . height , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , allValueGetter : b . allValueGetter , popup : { } , adapter : b . adapter , masker : b . masker , value : b . value , text : b . text , tipType : b . tipType , warningTitle : b . warningTitle } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _START , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _START ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _PAUSE ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _SEARCHING , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _SEARCHING , arguments ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _STOP ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _CHANGE , arguments ) } ) , this . numberCounter = BI . createWidget ( b . switcher , { type : "bi.multi_select_check_selected_switcher" , valueFormatter : b . valueFormatter , itemsCreator : b . itemsCreator , adapter : b . adapter , masker : b . masker , value : b . value } ) , this . numberCounter . on ( BI . MultiSelectCheckSelectedSwitcher . EVENT _TRIGGER _CHANGE , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _COUNTER _CLICK ) } ) , this . numberCounter . on ( BI . MultiSelectCheckSelectedSwitcher . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . SearchMultiSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW ) } ) ; var c = BI . createWidget ( { type : "bi.right_vertical_adapt" , hgap : 4 , items : [ { el : this . numberCounter } ] } ) , d = BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . searcher , width : "fill" } , { el : c , width : 0 } , { el : BI . createWidget ( ) , width : 24 } ] } ) ; this . numberCounter . on ( BI . Events . VIEW , function ( b ) { BI . nextTick ( function ( ) { d . attr ( "items" ) [ 1 ] . width = b === ! 0 ? a . numberCounter . element . outerWidth ( ) + 8 : 0 , d . resize ( ) } ) } ) , this . element . click ( function ( b ) { a . element . find ( b . target ) . length > 0 && a . numberCounter . hideView ( ) } ) } , getCounter : function ( ) { return this . numberCounter } , getSearcher : function ( ) { return this . searcher } , stopEditing : function ( ) { this . searcher . stopSearch ( ) , this . numberCounter . hideView ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) , this . numberCounter . setAdapter ( a ) } , setValue : function ( a ) { this . searcher . setValue ( a ) , this . numberCounter . setValue ( a ) } , setTipType : function ( a ) { this . searcher . setTipType ( a ) } , getKey : function ( ) { return this . searcher . getKey ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } } ) , BI . SearchMultiSelectTrigger . EVENT _TRIGGER _CLICK = "EVENT_TRIGGER_CLICK" , BI . SearchMultiSelectTrigger . EVENT _COUNTER _CLICK = "EVENT_COUNTER_CLICK" , BI . SearchMultiSelectTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . SearchMultiSelectTrigger . EVENT _START = "EVENT_START" , BI . SearchMultiSelectTrigger . EVENT _STOP = "EVENT_STOP" , BI . SearchMultiSelectTrigger . EVENT _PAUSE = "EVENT_PAUSE" , BI . SearchMultiSelectTrigger . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . SearchMultiSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW = "EVENT_BEFORE_COUNTER_POPUPVIEW" , BI . shortcut ( "bi.search_multi_select_trigger" , BI . SearchMultiSelectTrigger ) , BI . SearchMultiSelectLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SearchMultiSelectLoader . superclass . _defaultConfig . apply ( this , argume
_defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectInsertCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-combo" , allowNoSelect : ! 1 , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , height : 24 , attributes : { tabIndex : 0 } } ) } , _init : function ( ) { BI . SingleSelectInsertCombo . 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 = b . value , this . requesting = ! 1 , this . trigger = BI . createWidget ( { type : "bi.single_select_trigger" , height : b . height , allowNoSelect : b . allowNoSelect , 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 ) } ) } , text : b . text , value : this . storeValue } ) , 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 ( ) { var b = this . getSearcher ( ) . getKeyword ( ) ; a . storeValue = b , 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 ( ) , a . _defaultState ( ) } ) , this . trigger . on ( BI . SingleSelectTrigger . EVENT _COUNTER _CLICK , function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , container : b . container , toggle : ! 1 , el : this . trigger , adjustLength : 1 , popup : { type : "bi.single_select_popup_view" , allowNoSelect : b . allowNoSelect , 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 ( ) , a . _defaultState ( ) } ) } } ] , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , onLoaded : function ( ) { BI . nextTick ( function ( ) { a . combo . adjustWidth ( ) , a . combo . adjustHeight ( ) , a . trigger . getSearcher ( ) . adjustView ( ) } ) } } , hideChecker : function ( a ) { return 0 === d . element . find ( a . target ) . length } , value : b . value } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { this . setValue ( a . storeValue ) , BI . nextTick ( function ( ) { a . populate ( ) } ) } ) , this . wants2Quit = ! 1 , this . combo . on ( BI . Combo . EVENT _AFTER _HIDEVIEW , function ( ) { a . trigger . stopEditing ( ) , a . requesting === ! 0 ? a . wants2Quit = ! 0 : a . fireEvent ( BI . SingleSelectInsertCombo . EVENT _CONFIRM ) } ) ; var d = BI . createWidget ( { type : "bi.trigger_icon_button" , width : b . height , height : b . height , cls : "single-select-trigger-icon-button" } ) ; d . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { a . combo . isViewVisible ( ) ? a . combo . hideView ( ) : a . combo . showView ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . combo , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : d , right : 0 , top : 0 , bottom : 0 } ] } ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) , this . combo . hideView ( ) } , _assertValue : function ( a ) { } , _makeMap : function ( a ) { return BI . makeObject ( a || [ ] ) } , _joinKeywords : function ( a , b ) { function c ( c ) { var e = d . _makeMap ( c ) ; BI . each ( a , function ( a , b ) { BI . isNotNull ( e [ b ] ) && BI . remove ( d . storeValue . value , b ) } ) , d . _adjust ( b ) } var d = this , e = this . options ; this . _assertValue ( this . storeValue ) , this . requesting = ! 0 , e . itemsCreator ( { type : BI . SingleSelectInsertCombo . REQ _GET _ALL _DATA , keywords : a } , function ( a ) { var b = BI . map ( a . items , "value" ) ; c ( b ) } ) } , _adjust : function ( a ) { function b ( ) { c . wants2Quit === ! 0 && ( c . fireEvent ( BI . SingleSelectInsertCombo . EVENT _CONFIRM ) , c . wants2Quit = ! 1 ) , c . requesting = ! 1 } var c = this ; this . options ; b ( ) , a ( ) } , _setStartValue : function ( a ) { this . _startValue = a , this . popup . setStartValue ( a ) } , setValue : function ( a ) { this . storeValue = a , this . _assertValue ( this . storeValue ) , this . combo . setValue ( this . storeValue ) } , getValue : function ( ) { return this . storeValue } , populate : function ( ) { this . combo . populate . apply ( th
this . _setAllPosition ( 100 ) ) ) } } ) , BI . SingleSlider . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.single_slider" , BI . SingleSlider ) , BI . SingleSliderLabel = BI . inherit ( BI . Widget , { _constant : { EDITOR _WIDTH : 90 , EDITOR _HEIGHT : 20 , HEIGHT : 20 , SLIDER _WIDTH _HALF : 15 , SLIDER _WIDTH : 30 , SLIDER _HEIGHT : 30 , TRACK _HEIGHT : 24 } , _defaultConfig : function ( ) { return BI . extend ( BI . SingleSliderLabel . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-slider-label bi-slider-track" , digit : ! 1 , unit : "" } ) } , _init : function ( ) { BI . SingleSliderLabel . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _constant ; this . enable = ! 1 , this . value = "" , this . grayTrack = BI . createWidget ( { type : "bi.layout" , cls : "gray-track" , height : 6 } ) , this . blueTrack = BI . createWidget ( { type : "bi.layout" , cls : "blue-track bi-high-light-background" , height : 6 } ) , this . track = this . _createTrackWrapper ( ) , this . slider = BI . createWidget ( { type : "bi.single_slider_button" } ) , this . _draggable ( this . slider ) ; var d = BI . createWidget ( { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ this . slider ] } ] , hgap : c . SLIDER _WIDTH _HALF , height : c . SLIDER _HEIGHT } ) ; d . element . click ( function ( d ) { if ( a . enable && a . isEnabled ( ) ) { var e = d . clientX - a . element . offset ( ) . left - c . SLIDER _WIDTH _HALF , f = a . track . element [ 0 ] . scrollWidth , g = 0 ; e < 0 && ( g = 0 ) , e > 0 && e < f - c . SLIDER _WIDTH && ( g = 100 * e / a . _getGrayTrackLength ( ) ) , e > f - c . SLIDER _WIDTH && ( g = 100 ) ; var h = BI . parseFloat ( g . toFixed ( 1 ) ) ; a . _setAllPosition ( h ) ; var i = a . _getValueByPercent ( h ) ; i = b . digit === ! 1 ? i : i . toFixed ( b . digit ) , a . label . setText ( i + b . unit ) , a . value = i , a . fireEvent ( BI . SingleSliderLabel . EVENT _CHANGE ) } } ) , this . label = BI . createWidget ( { type : "bi.label" , height : c . HEIGHT , width : c . EDITOR _WIDTH - 2 } ) , this . _setVisible ( ! 1 ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . track , width : "100%" , height : c . TRACK _HEIGHT } ] } ] , hgap : 7 , height : c . TRACK _HEIGHT } , top : 13 , left : 0 , width : "100%" } , { el : d , top : 10 , left : 0 , width : "100%" } , { el : { type : "bi.vertical" , items : [ { type : "bi.horizontal_auto" , items : [ this . label ] } ] , height : c . EDITOR _HEIGHT } , top : 0 , left : 0 , width : "100%" } ] } ) } , _draggable : function ( a ) { function b ( a ) { return BI . clamp ( a , 0 , c . _getGrayTrackLength ( ) ) } var c = this , d = this . options , e = ! 1 , f = 0 , g = 0 , h = 0 , i = new BI . MouseMoveTracker ( function ( j ) { if ( i . isDragging ( ) ) { e = ! 0 , g += j , f = b ( h + g ) , a . element . addClass ( "dragging" ) ; var k = 100 * f / c . _getGrayTrackLength ( ) , l = BI . parseFloat ( k . toFixed ( 1 ) ) ; c . _setBlueTrack ( l ) , c . _setLabelPosition ( l ) , c . _setSliderPosition ( l ) ; var m = c . _getValueByPercent ( l ) ; m = d . digit === ! 1 ? m : m . toFixed ( d . digit ) , c . label . setValue ( m + d . unit ) , c . value = m , c . fireEvent ( BI . SingleSliderLabel . EVENT _CHANGE ) } } , function ( ) { if ( e === ! 0 ) { f = b ( f ) ; var d = 100 * f / c . _getGrayTrackLength ( ) , j = BI . parseFloat ( d . toFixed ( 1 ) ) ; c . _setSliderPosition ( j ) , f = 0 , g = 0 , h = f , e = ! 1 } a . element . removeClass ( "dragging" ) , i . releaseMouseMoves ( ) , c . fireEvent ( BI . SingleSliderLabel . EVENT _CHANGE ) } , window ) ; a . element . on ( "mousedown" , function ( c ) { a . isEnabled ( ) && ( h = this . offsetLeft , b ( h ) , i . captureMouseMoves ( c ) ) } ) } , _createTrackWrapper : function ( ) { return BI . createWidget ( { type : "bi.absolute" , items : [ { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . grayTrack , top : 0 , left : 0 , width : "100%" } , { el : this . blueTrack , top : 0 , left : 0 , width : "0%" } ] } ] , hgap : 8 , height : 8 } , top : 8 , left : 0 , width : "100%" } ] } ) } , _checkValidation : function ( a ) { return BI . isNumeric ( a ) && ! ( BI . isNull ( a ) || a < this . min || a > this . max ) } , _setBlueTrack : function ( a ) { this . blueTrack . element . css ( { width : a + "%" } ) } , _setLabelPosition : function ( a ) { } , _setSliderPosition : function ( a ) { this . slider . element . css ( { left : a + "%" } ) } , _setAllPosition : function ( a ) { this . _setSliderPosition ( a ) , this . _setLabelPosition ( a ) , this . _setBlueTrack ( a ) } , _setVisible : function ( a ) { this . slider . setVisible ( a ) , this . label . setVisible ( a ) } , _getGrayTrackLength : function ( ) { return this . grayTrack . element [ 0 ] . scrollWidth } , _getValueByPercent : function ( a ) { var b = BI . parseInt ( 10 * a ) ; return ( this . max - this . min ) * b / 1e3 + this . min } , _getPercentByValue : function ( a ) { return 100 * ( a - this . min ) / ( this . max - this . min ) } , _setEnable : function ( a ) { BI . SingleSliderLabel . superclass . _setEnable . apply ( this , [ a ] ) , a ? this . blueTrack . element . removeClass ( "disabled-blue-track" ) . addClass ( "blue-track" ) : this . blueTrack . element . removeClass ( "blue-track" ) . addClass ( "
ref : function ( ) { a . popup = this } , listeners : [ { eventName : BI . DynamicYearPopup . EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearPopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearPopup . BUTTON _lABEL _EVENT _CHANGE , action : function ( ) { var b = BI . getDate ( ) ; a . setValue ( { type : BI . DynamicYearCombo . Static , value : { year : b . getFullYear ( ) } } ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearPopup . BUTTON _OK _EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } ] , behaviors : b . behaviors , min : b . min , max : b . max } , value : b . value || "" } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _BEFORE _POPUPVIEW ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , ref : function ( ) { a . comboWrapper = this } , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : 24 , height : 24 , ref : function ( ) { a . changeIcon = this } } , width : 24 } , this . combo ] } ) , this . _checkDynamicValue ( b . value ) } , _checkDynamicValue : function ( a ) { var b = null ; switch ( BI . isNotNull ( a ) && ( b = a . type ) , b ) { case BI . DynamicYearCombo . Dynamic : this . changeIcon . setVisible ( ! 0 ) , this . comboWrapper . attr ( "items" ) [ 0 ] . width = 24 , this . comboWrapper . resize ( ) ; break ; default : this . comboWrapper . attr ( "items" ) [ 0 ] . width = 0 , this . comboWrapper . resize ( ) , this . changeIcon . setVisible ( ! 1 ) } } , setValue : function ( a ) { this . storeValue = a , this . trigger . setValue ( a ) , this . _checkDynamicValue ( a ) } , getValue : function ( ) { return this . storeValue } } ) , BI . DynamicYearCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DynamicYearCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.dynamic_year_combo" , BI . DynamicYearCombo ) , BI . extend ( BI . DynamicYearCombo , { Static : 1 , Dynamic : 2 } ) , BI . DynamicYearPopup = BI . inherit ( BI . Widget , { constants : { tabHeight : 30 , buttonHeight : 24 } , props : { baseCls : "bi-year-popup" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , width : 180 , height : 240 } , render : function ( ) { var a = this , b = ( this . options , this . constants ) ; return this . storeValue = { type : BI . DynamicYearCombo . Static } , { type : "bi.vtape" , items : [ { el : this . _getTabJson ( ) } , { el : { type : "bi.grid" , items : [ [ { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-split-top bi-high-light" , textHeight : b . buttonHeight - 1 , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Clear" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicYearPopup . BUTTON _CLEAR _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , forceCenter : ! 0 , textHeight : b . buttonHeight - 1 , cls : "bi-split-left bi-split-right bi-high-light bi-split-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Current_Year" ) , ref : function ( ) { a . textButton = this } , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicYearPopup . BUTTON _lABEL _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , forceCenter : ! 0 , cls : "bi-split-top bi-high-light" , textHeight : b . buttonHeight - 1 , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicYearPopup . BUTTON _OK _EVENT _CHANGE ) } } ] } ] ] } , height : 24 } ] } } , _setInnerValue : function ( ) { if ( this . dateTab . getSelect ( ) === BI . DynamicDateCombo . Static ) this . textButton . setValue ( BI . i18nText ( "BI-Basic_Current_Year" ) ) , this . textButton . setEnable ( ! 0 ) ; else { var a = BI . DynamicDateHelper . getCalculation ( this . dynamicPane . getValue ( ) ) ; a = BI . print ( a , "%Y" ) , this . textButton . setValue ( a ) , this . textButton . setEnable ( ! 1 ) } } , _getTabJson : function ( ) { var a = this , b = this . options ; return { type : "bi.tab" , ref : function ( ) { a . dateTab = this } , tab : { type : "bi.linear_segment" , cls : "bi-split-bottom" , height : this . constants . tabHeight , items : BI . createItems ( [ { text : BI . i18nText ( "BI-Basic_Year_Fen" ) , value : BI . DynamicYearCombo . Static } , { text : BI . i18nText ( "BI-Basic_Dynamic_Title" ) , value : BI . DynamicYearCombo . Dynamic } ] , { textAlign : "center" } ) } , cardCreator : function ( c ) { switch ( c ) { case BI . DynamicYearCombo . Dynamic : return { type : "bi.dynamic_year_card" , listeners : [ { eventName : "EVENT_CHANGE" , action : functi
this . quarter . setValue ( ) } else this . selectedYear = BI . parseInt ( c . year ) , this . selectedQuarter = BI . parseInt ( c . quarter ) , this . yearPicker . setValue ( this . selectedYear ) , this . quarter . setValue ( this . selectedQuarter ) } } ) , BI . StaticYearQuarterCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.static_year_quarter_card" , BI . StaticYearQuarterCard ) , BI . DynamicYearQuarterCombo = BI . inherit ( BI . Widget , { props : { baseCls : "bi-year-quarter-combo bi-border bi-focus-shadow" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , height : 22 } , _init : function ( ) { BI . DynamicYearQuarterCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = b . value , a . storeTriggerValue = "" , this . trigger = BI . createWidget ( { type : "bi.dynamic_year_quarter_trigger" , min : b . min , max : b . max , height : b . height , value : b . value || "" } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _KEY _DOWN , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _START , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _STOP , function ( ) { a . combo . showView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _ERROR , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _CONFIRM , function ( ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI . isNotEmptyString ( c ) && ! BI . isEqual ( c , b ) && ( a . storeValue = a . trigger . getValue ( ) , a . setValue ( a . trigger . getValue ( ) ) ) , a . _checkDynamicValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearQuarterCombo . EVENT _CONFIRM ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _FOCUS , function ( ) { a . storeTriggerValue = a . trigger . getKey ( ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , container : b . container , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , stopPropagation : ! 1 , el : { type : "bi.dynamic_year_quarter_popup" , ref : function ( ) { a . popup = this } , listeners : [ { eventName : BI . DynamicYearQuarterPopup . EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearQuarterCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearQuarterPopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearQuarterCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearQuarterPopup . BUTTON _lABEL _EVENT _CHANGE , action : function ( ) { var b = BI . getDate ( ) ; a . setValue ( { type : BI . DynamicYearMonthCombo . Static , value : { year : b . getFullYear ( ) , quarter : BI . getQuarter ( b ) } } ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearQuarterPopup . BUTTON _OK _EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } ] , behaviors : b . behaviors , min : b . min , max : b . max } , value : b . value || "" } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearQuarterCombo . EVENT _BEFORE _POPUPVIEW ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , ref : function ( ) { a . comboWrapper = this } , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : 24 , height : 24 , ref : function ( ) { a . changeIcon = this } } , width : 24 } , this . combo ] } ) , this . _checkDynamicValue ( b . value ) } , _checkDynamicValue : function ( a ) { var b = null ; switch ( BI . isNotNull ( a ) && ( b = a . type ) , b ) { case BI . DynamicYearQuarterCombo . Dynamic : this . changeIcon . setVisible ( ! 0 ) , this . comboWrapper . attr ( "items" ) [ 0 ] . width = 24 , this . comboWrapper . resize ( ) ; break ; default : this . comboWrapper . attr ( "items" ) [ 0 ] . width = 0 , this . comboWrapper . resize ( ) , this . changeIcon . setVisible ( ! 1 ) } } , setValue : function ( a ) { this . storeValue = a , this . trigger . setValue ( a ) , this . _checkDynamicValue ( a ) } , getValue : function ( ) { return this . storeValue } } ) , BI . DynamicYearQuarterCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DynamicYearQuarterCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.dynamic_year_quarter_combo" , BI . DynamicYearQuarterCombo ) , BI . extend ( BI . DynamicYearQuarterCombo , { Static : 1 , Dynamic : 2 } ) , BI . DynamicYearQuarterPopup = BI . inherit ( BI . Widget , { constants : { tabHeight : 30 , buttonHeight : 24 } , props : { baseCls : "bi-year-quarter-popup" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , width : 1
return ; case 1 : for ( ; ++ d < e ; ) ( c = a [ d ] ) . callback . call ( c . ctx , f ) ; return ; case 2 : for ( ; ++ d < e ; ) ( c = a [ d ] ) . callback . call ( c . ctx , f , g ) ; return ; case 3 : for ( ; ++ d < e ; ) ( c = a [ d ] ) . callback . call ( c . ctx , f , g , h ) ; return ; default : for ( ; ++ d < e ; ) ( c = a [ d ] ) . callback . apply ( c . ctx , b ) ; return } } , e = BI . Router = function ( a ) { a || ( a = { } ) , a . routes && ( this . routes = a . routes ) , this . _bindRoutes ( ) , this . _init . apply ( this , arguments ) } , f = /\((.*?)\)/g , g = /(\(\?)?:\w+/g , h = /\*\w+/g , i = /[\-{}\[\]+?.,\\\^$|#\s]/g ; _ . extend ( e . prototype , a , { _init : function ( ) { } , route : function ( a , b , c ) { _ . isRegExp ( a ) || ( a = this . _routeToRegExp ( a ) ) , _ . isFunction ( b ) && ( c = b , b = "" ) , c || ( c = this [ b ] ) ; var d = this ; return BI . history . route ( a , function ( e ) { var f = d . _extractParameters ( a , e ) ; d . execute ( c , f , b ) !== ! 1 && ( d . trigger . apply ( d , [ "route:" + b ] . concat ( f ) ) , d . trigger ( "route" , b , f ) , BI . history . trigger ( "route" , d , b , f ) ) } ) , this } , execute : function ( a , b , c ) { a && a . apply ( this , b ) } , navigate : function ( a , b ) { return BI . history . navigate ( a , b ) , this } , _bindRoutes : function ( ) { if ( this . routes ) { this . routes = _ . result ( this , "routes" ) ; for ( var a , b = _ . keys ( this . routes ) ; null != ( a = b . pop ( ) ) ; ) this . route ( a , this . routes [ a ] ) } } , _routeToRegExp : function ( a ) { return a = a . replace ( i , "\\$&" ) . replace ( f , "(?:$1)?" ) . replace ( g , function ( a , b ) { return b ? a : "([^/?]+)" } ) . replace ( h , "([^?]*?)" ) , new RegExp ( "^" + a + "(?:\\?([\\s\\S]*))?$" ) } , _extractParameters : function ( a , b ) { var c = a . exec ( b ) . slice ( 1 ) ; return _ . map ( c , function ( a , b ) { return b === c . length - 1 ? a || null : a ? decodeURIComponent ( a ) : null } ) } } ) ; var j = function ( ) { this . handlers = [ ] , this . checkUrl = _ . bind ( this . checkUrl , this ) , "undefined" != typeof window && ( this . location = _global . location , this . history = _global . history ) } , k = /^[#\/]|\s+$/g , l = /^\/+|\/+$/g , m = /#.*$/ ; j . started = ! 1 , _ . extend ( j . prototype , a , { interval : 50 , atRoot : function ( ) { var a = this . location . pathname . replace ( /[^\/]$/ , "$&/" ) ; return a === this . root && ! this . getSearch ( ) } , getSearch : function ( ) { var a = this . location . href . replace ( /#.*/ , "" ) . match ( /\?.+/ ) ; return a ? a [ 0 ] : "" } , getHash : function ( a ) { var b = ( a || this ) . location . href . match ( /#(.*)$/ ) ; return b ? b [ 1 ] : "" } , getPath : function ( ) { var a = decodeURI ( this . location . pathname + this . getSearch ( ) ) , b = this . root . slice ( 0 , - 1 ) ; return a . indexOf ( b ) || ( a = a . slice ( b . length ) ) , "/" === a . charAt ( 0 ) ? a . slice ( 1 ) : a } , getFragment : function ( a ) { return null == a && ( a = this . _hasPushState || ! this . _wantsHashChange ? this . getPath ( ) : this . getHash ( ) ) , a . replace ( k , "" ) } , start : function ( a ) { if ( j . started ) throw new Error ( "BI.history has already been started" ) ; if ( j . started = ! 0 , this . options = _ . extend ( { root : "/" } , this . options , a ) , this . root = this . options . root , this . _wantsHashChange = this . options . hashChange !== ! 1 , this . _hasHashChange = "onhashchange" in window , this . _wantsPushState = ! ! this . options . pushState , this . _hasPushState = ! ! ( this . options . pushState && this . history && this . history . pushState ) , this . fragment = this . getFragment ( ) , this . root = ( "/" + this . root + "/" ) . replace ( l , "/" ) , this . _wantsHashChange && this . _wantsPushState ) { if ( ! this . _hasPushState && ! this . atRoot ( ) ) { var b = this . root . slice ( 0 , - 1 ) || "/" ; return this . location . replace ( b + "#" + this . getPath ( ) ) , ! 0 } this . _hasPushState && this . atRoot ( ) && this . navigate ( this . getHash ( ) , { replace : ! 0 } ) } if ( ! this . _hasHashChange && this . _wantsHashChange && ( ! this . _wantsPushState || ! this . _hasPushState ) ) { var c = document . createElement ( "iframe" ) ; c . src = "javascript:0" , c . style . display = "none" , c . tabIndex = - 1 ; var d = document . body ; this . iframe = d . insertBefore ( c , d . firstChild ) . contentWindow , this . iframe . document . open ( ) . close ( ) , this . iframe . location . hash = "#" + this . fragment } var e = _global . addEventListener || function ( a , b ) { return attachEvent ( "on" + a , b ) } ; if ( this . _hasPushState ? e ( "popstate" , this . checkUrl , ! 1 ) : this . _wantsHashChange && this . _hasHashChange && ! this . iframe ? e ( "hashchange" , this . checkUrl , ! 1 ) : this . _wantsHashChange && ( this . _checkUrlInterval = setInterval ( this . checkUrl , this . interval ) ) , ! this . options . silent ) return this . loadUrl ( ) } , stop : function ( ) { var a = _global . removeEventListener || function ( a , b ) { return detachEvent ( "on" + a , b ) } ; this . _hasPushState ? a ( "popstate" , this . checkUrl , ! 1 ) : this . _wantsHashChange && this . _hasHashChange && ! this . iframe && a ( "hashchange" , this . checkUrl , ! 1 ) , this . iframe && ( document . body . removeChild ( this . iframe . frameElement ) , this . iframe = null ) , this . _checkUrlInterval && clearInterval ( this . _checkUrlInterval ) , j . started = ! 1 } , rout