/*! fineui 2019-06-19 21:00:03 */
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
return this . _cellSizeAndPositionManager . getLastMeasuredIndex ( ) } , getOffsetAdjustment : function ( a , b ) { var c = this . _cellSizeAndPositionManager . getTotalSize ( ) , d = this . getTotalSize ( ) , e = this . _getOffsetPercentage ( a , b , d ) ; return Math . round ( e * ( d - c ) ) } , getSizeAndPositionOfCell : function ( a ) { return this . _cellSizeAndPositionManager . getSizeAndPositionOfCell ( a ) } , getSizeAndPositionOfLastMeasuredCell : function ( ) { return this . _cellSizeAndPositionManager . getSizeAndPositionOfLastMeasuredCell ( ) } , getTotalSize : function ( ) { return Math . min ( this . _maxScrollSize , this . _cellSizeAndPositionManager . getTotalSize ( ) ) } , getUpdatedOffsetForIndex : function ( a , b , c , d ) { c = this . _safeOffsetToOffset ( b , c ) ; var e = this . _cellSizeAndPositionManager . getUpdatedOffsetForIndex ( a , b , c , d ) ; return this . _offsetToSafeOffset ( b , e ) } , getVisibleCellRange : function ( a , b ) { return b = this . _safeOffsetToOffset ( a , b ) , this . _cellSizeAndPositionManager . getVisibleCellRange ( a , b ) } , resetCell : function ( a ) { this . _cellSizeAndPositionManager . resetCell ( a ) } , _getOffsetPercentage : function ( a , b , c ) { return c <= a ? 0 : b / ( c - a ) } , _offsetToSafeOffset : function ( a , b ) { var c = this . _cellSizeAndPositionManager . getTotalSize ( ) , d = this . getTotalSize ( ) ; if ( c === d ) return b ; var e = this . _getOffsetPercentage ( a , b , c ) ; return Math . round ( e * ( d - a ) ) } , _safeOffsetToOffset : function ( a , b ) { var c = this . _cellSizeAndPositionManager . getTotalSize ( ) , d = this . getTotalSize ( ) ; if ( c === d ) return b ; var e = this . _getOffsetPercentage ( a , b , d ) ; return Math . round ( e * ( c - a ) ) } } , ! function ( ) { var a = " YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZD
has : function ( a ) { return a in this . map } , add : function ( a , b ) { "undefined" != typeof a && ( a in this . map ? this . map [ a ] = b : ( this . array . push ( a ) , this . map [ a ] = b ) ) } , remove : function ( a ) { if ( a in this . map ) { delete this . map [ a ] ; for ( var b = 0 ; b < this . array . length ; b ++ ) if ( this . array [ b ] == a ) { this . array . splice ( b , 1 ) ; break } } } , size : function ( ) { return this . array . length } , each : function ( a , b ) { var b = b || window , a = a || null ; if ( null != a && "function" == typeof a ) for ( var c = 0 ; c < this . array . length ; c ++ ) { var d = this . array [ c ] , e = this . map [ d ] , f = a . call ( b , d , e , c , this . array , this . map ) ; if ( 0 == f ) break } } , get : function ( a ) { return this . map [ a ] } , toArray : function ( ) { var a = [ ] ; return this . each ( function ( b , c ) { a . push ( c ) } ) , a } } } ( ) , ! function ( ) { BI . LRU = function ( a ) { this . size = 0 , this . limit = a , this . head = this . tail = void 0 , this . _keymap = { } } ; var a = BI . LRU . prototype ; a . put = function ( a , b ) { var c ; this . size === this . limit && ( c = this . shift ( ) ) ; var d = this . get ( a , ! 0 ) ; return d || ( d = { key : a } , this . _keymap [ a ] = d , this . tail ? ( this . tail . newer = d , d . older = this . tail ) : this . head = d , this . tail = d , this . size ++ ) , d . value = b , c } , a . shift = function ( ) { var a = this . head ; return a && ( this . head = this . head . newer , this . head . older = void 0 , a . newer = a . older = void 0 , this . _keymap [ a . key ] = void 0 , this . size -- ) , a } , a . get = function ( a , b ) { var c = this . _keymap [ a ] ; if ( void 0 !== c ) return c === this . tail ? b ? c : c . value : ( c . newer && ( c === this . head && ( this . head = c . newer ) , c . newer . older = c . older ) , c . older && ( c . older . newer = c . newer ) , c . newer = void 0 , c . older = this . tail , this . tail && ( this . tail . newer = c ) , this . tail = c , b ? c : c . value ) } , a . has = function ( a ) { return null != this . _keymap [ a ] } } ( ) , function ( ) { var a = function ( a ) { return Math . floor ( a / 2 ) } , b = _global . Int32Array || function ( a ) { for ( var b = [ ] , c = a - 1 ; c >= 0 ; -- c ) b [ c ] = 0 ; return b } , c = function ( a ) { for ( var b = 1 ; b < a ; ) b *= 2 ; return b } ; BI . PrefixIntervalTree = function ( a ) { this . _size = a . length , this . _half = c ( this . _size ) , this . _heap = new b ( 2 * this . _half ) ; var d ; for ( d = 0 ; d < this . _size ; ++ d ) this . _heap [ this . _half + d ] = a [ d ] ; for ( d = this . _half - 1 ; d > 0 ; -- d ) this . _heap [ d ] = this . _heap [ 2 * d ] + this . _heap [ 2 * d + 1 ] } , BI . PrefixIntervalTree . prototype = { constructor : BI . PrefixIntervalTree , set : function ( b , c ) { var d = this . _half + b ; for ( this . _heap [ d ] = c , d = a ( d ) ; 0 !== d ; d = a ( d ) ) this . _heap [ d ] = this . _heap [ 2 * d ] + this . _heap [ 2 * d + 1 ] } , get : function ( a ) { var b = this . _half + a ; return this . _heap [ b ] } , getSize : function ( ) { return this . _size } , sumUntil : function ( b ) { if ( 0 === b ) return 0 ; for ( var c = this . _half + b - 1 , d = this . _heap [ c ] ; 1 !== c ; c = a ( c ) ) c % 2 === 1 && ( d += this . _heap [ c - 1 ] ) ; return d } , sumTo : function ( a ) { return this . sumUntil ( a + 1 ) } , sum : function ( a , b ) { return this . sumUntil ( b ) - this . sumUntil ( a ) } , greatestLowerBound : function ( a ) { if ( a < 0 ) return - 1 ; var b = 1 ; if ( this . _heap [ b ] <= a ) return this . _size ; for ( ; b < this . _half ; ) { var c = this . _heap [ 2 * b ] ; a < c ? b = 2 * b : ( b = 2 * b + 1 , a -= c ) } return b - this . _half } , greatestStrictLowerBound : function ( a ) { if ( a <= 0 ) return - 1 ; var b = 1 ; if ( this . _heap [ b ] < a ) return this . _size ; for ( ; b < this . _half ; ) { var c = this . _heap [ 2 * b ] ; a <= c ? b = 2 * b : ( b = 2 * b + 1 , a -= c ) } return b - this . _half } , leastUpperBound : function ( a ) { return this . greatestStrictLowerBound ( a ) + 1 } , leastStrictUpperBound : function ( a ) { return this . greatestLowerBound ( a ) + 1 } } , BI . PrefixIntervalTree . uniform = function ( a , b ) { for ( var c = [ ] , d = a - 1 ; d >= 0 ; -- d ) c [ d ] = b ; return new BI . PrefixIntervalTree ( c ) } , BI . PrefixIntervalTree . empty = function ( a ) { return BI . PrefixIntervalTree . uniform ( a , 0 ) } } ( ) , ! function ( ) { BI . Queue = function ( a ) { this . capacity = a , this . array = [ ] } , BI . Queue . prototype = { constructor : BI . Queue , contains : function ( a ) { return BI . contains ( this . array , a ) } , indexOf : function ( a ) { return BI . contains ( this . array , a ) } , getElementByIndex : function ( a ) { return this . array [ a ] } , push : function ( a ) { this . array . push ( a ) , this . capacity && this . array . length > this . capacity && this . array . shift ( ) } , pop : function ( ) { this . array . pop ( ) } , shift : function ( ) { this . array . shift ( ) } , unshift : function ( a ) { this . array . unshift ( a ) , this . capacity && this . array . length > this . capacity && this . array . pop ( ) } , remove : function ( a ) { BI . remove ( this . array , a ) } , splice : function ( ) { this . array . splice . apply ( this . array , arguments ) } , slice : function ( ) { this . array . slice . apply ( this . array , arguments ) } , size : function ( ) { return this . array . length } , each : function ( a , b ) { var b = b || window , a = a || null ; if ( null != a && "function" == typeof a ) for ( var c = 0 ; c < this . array . length ; c ++ ) { var d = a . call ( b , c , this . array [ c ] , this . array ) ; if ( 0 == d ) break } } , toAr
} , BI . object2Date = function ( a ) { if ( null == a ) return new Date ; if ( a instanceof Date ) return a ; if ( "number" == typeof a ) return new Date ( a ) ; var b = a + "" ; b = b . replace ( /-/g , "/" ) ; var c = new Date ( b ) ; return isInvalidDate ( c ) ? new Date : c } , BI . object2Time = function ( a ) { if ( null == a ) return new Date ; if ( a instanceof Date ) return a ; var b = a + "" ; b = b . replace ( /-/g , "/" ) ; var c = new Date ( b ) ; return isInvalidDate ( c ) && ( b . indexOf ( "/" ) !== - 1 || b . indexOf ( ":" ) === - 1 || ( c = new Date ( "1970/01/01 " + b ) , isInvalidDate ( c ) ) ) ? ( c = BI . parseDateTime ( b , "HH:mm:ss" ) , isInvalidDate ( c ) ? new Date : c ) : c } } ( ) , BI . HighlightBehavior = BI . inherit ( BI . Behavior , { _defaultConfig : function ( ) { return BI . extend ( BI . HighlightBehavior . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . HighlightBehavior . superclass . _init . apply ( this , arguments ) } , doBehavior : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , c = this . options ; BI . each ( a , function ( a , d ) { function e ( a ) { a === ! 0 ? d . doHighLight && d . doHighLight . apply ( d , b ) : d . unHighLight && d . unHighLight . apply ( d , b ) } if ( d instanceof BI . Single ) { var f = c . rule ( d . getValue ( ) , d ) ; BI . isFunction ( f ) ? f ( e ) : e ( f ) } else d . doBehavior && d . doBehavior . apply ( d , b ) } ) } } ) , BI . RedMarkBehavior = BI . inherit ( BI . Behavior , { _defaultConfig : function ( ) { return BI . extend ( BI . RedMarkBehavior . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . RedMarkBehavior . superclass . _init . apply ( this , arguments ) } , doBehavior : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , c = this . options ; BI . each ( a , function ( a , d ) { d instanceof BI . Single ? c . rule ( d . getValue ( ) , d ) ? d . doRedMark && d . doRedMark . apply ( d , b ) : d . doRedMark && d . unRedMark . apply ( d , b ) : d . doBehavior && d . doBehavior . apply ( d , b ) } ) } } ) , BI . Controller = BI . inherit ( BI . OB , { _defaultConfig : function ( ) { return BI . extend ( BI . Controller . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . Controller . superclass . _init . apply ( this , arguments ) } , destroy : function ( ) { } } ) , BI . Controller . EVENT _CHANGE = "__EVENT_CHANGE__" , BI . BroadcastController = BI . inherit ( BI . Controller , { _defaultConfig : function ( ) { return BI . extend ( BI . BroadcastController . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . BroadcastController . superclass . _init . apply ( this , arguments ) , this . _broadcasts = { } } , on : function ( a , b ) { var c = this ; return this . _broadcasts [ a ] || ( this . _broadcasts [ a ] = [ ] ) , this . _broadcasts [ a ] . push ( b ) , function ( ) { c . remove ( a , b ) } } , send : function ( a ) { var b = [ ] . slice . call ( arguments , 1 ) ; BI . each ( this . _broadcasts [ a ] , function ( a , c ) { c . apply ( null , b ) } ) } , remove : function ( a , b ) { var c = this ; return b ? ( BI . remove ( this . _broadcasts [ a ] , function ( d ) { return c . _broadcasts [ a ] . indexOf ( b ) === d } ) , this . _broadcasts [ a ] . remove ( b ) , 0 === this . _broadcasts [ a ] . length && delete this . _broadcasts [ a ] ) : delete this . _broadcasts [ a ] , this } } ) , BI . BubblesController = BI . inherit ( BI . Controller , { _defaultConfig : function ( ) { return BI . extend ( BI . BubblesController . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _const : { bubbleHeight : 18 } , _init : function ( ) { BI . BubblesController . superclass . _init . apply ( this , arguments ) ; var a = this ; this . bubblesManager = { } , this . storeBubbles = { } , BI . Resizers . add ( "bubbleController" + BI . uniqueId ( ) , function ( ) { BI . each ( a . bubblesManager , function ( b ) { a . remove ( b ) } ) , a . bubblesManager = { } , a . storeBubbles = { } } ) } , _createBubble : function ( a , b , c , d ) { return BI . createWidget ( { type : "bi.bubble" , text : b , level : c , height : d || 18 , direction : a } ) } , _getOffsetLeft : function ( a , b , c ) { var d = 0 ; return "center" === c ? ( d = b . element . offset ( ) . left + ( b . element . bounds ( ) . width - this . get ( a ) . element . bounds ( ) . width ) / 2 , d < 0 && ( d = 0 ) , d ) : "right" === c ? ( d = b . element . offset ( ) . left + b . element . bounds ( ) . width - this . get ( a ) . element . bounds ( ) . width , d < 0 && ( d = 0 ) , d ) : b . element . offset ( ) . left } , _getOffsetTop : function ( a , b , c ) { var d = 0 ; return "center" === c ? ( d = b . element . offset ( ) . top + ( b . element . bounds ( ) . height - this . get ( a ) . element . bounds ( ) . height ) / 2 , d < 0 && ( d = 0 ) , d ) : "right" === c ? ( d = b . element . offset ( ) . top + b . element . bounds ( ) . height - this . get ( a ) . element . bounds ( ) . height , d < 0 && ( d = 0 ) , d ) : b . element . offset ( ) . top } , _getLeftPosition : function ( a , b , c ) { var d = BI . DOM . getLeftPosition ( b , this . get ( a ) ) ; return d . top = this . _getOffsetTop ( a , b , c ) , d } , _getBottomPosition : function ( a , b , c ) { var d = BI . DOM . getBottomPosition ( b , this . get ( a ) ) ; return d . left = this . _getOffsetLeft ( a , b , c )
return a = b . dynamic ? "bi.vertical" : "bi.vtape" , { type : a , scrollable : b . scrollable , scrolly : b . scrolly , scrollx : b . scrollx , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , items : b . items } } , _init : function ( ) { BI . VerticalLayoutLogic . superclass . _init . apply ( this , arguments ) } } ) , BI . HorizontalLayoutLogic = BI . inherit ( BI . Logic , { _defaultConfig : function ( ) { return BI . extend ( BI . HorizontalLayoutLogic . superclass . _defaultConfig . apply ( this , arguments ) , { dynamic : ! 1 , scrollable : null , scrolly : ! 1 , scrollx : ! 1 , items : [ ] , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , createLogic : function ( ) { var a , b = this . options ; return a = b . dynamic ? "bi.vertical_adapt" : "bi.htape" , { type : a , scrollable : b . scrollable , scrolly : b . scrolly , scrollx : b . scrollx , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , items : b . items } } , _init : function ( ) { BI . HorizontalLayoutLogic . superclass . _init . apply ( this , arguments ) } } ) , BI . TableLayoutLogic = BI . inherit ( BI . Logic , { _defaultConfig : function ( ) { return BI . extend ( BI . TableLayoutLogic . superclass . _defaultConfig . apply ( this , arguments ) , { dynamic : ! 1 , scrollable : null , scrolly : ! 1 , scrollx : ! 1 , columns : 0 , rows : 0 , columnSize : [ ] , rowSize : [ ] , hgap : 0 , vgap : 0 , items : [ ] } ) } , createLogic : function ( ) { var a , b = this . options ; return a = b . dynamic ? "bi.table" : "bi.window" , { type : a , scrollable : b . scrollable , scrolly : b . scrolly , scrollx : b . scrollx , columns : b . columns , rows : b . rows , columnSize : b . columnSize , rowSize : b . rowSize , hgap : b . hgap , vgap : b . vgap , items : b . items } } , _init : function ( ) { BI . TableLayoutLogic . superclass . _init . apply ( this , arguments ) } } ) , BI . HorizontalFillLayoutLogic = BI . inherit ( BI . Logic , { _defaultConfig : function ( ) { return BI . extend ( BI . HorizontalFillLayoutLogic . superclass . _defaultConfig . apply ( this , arguments ) , { dynamic : ! 1 , scrollable : null , scrolly : ! 1 , scrollx : ! 1 , items : [ ] , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , createLogic : function ( ) { var a , b = this . options , c = [ ] ; return BI . each ( b . items , function ( a , b ) { c . push ( b . width || 0 ) } ) , a = b . dynamic ? "bi.horizontal_adapt" : "bi.htape" , { type : a , columnSize : c , scrollable : b . scrollable , scrolly : b . scrolly , scrollx : b . scrollx , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , items : b . items } } , _init : function ( ) { BI . HorizontalFillLayoutLogic . superclass . _init . apply ( this , arguments ) } } ) , BI . prepares . push ( function ( ) { var a , b = function ( ) { return null == a && ( a = ! ( ! BI . isSupportCss3 || ! BI . isSupportCss3 ( "flex" ) ) ) , a } ; BI . Plugin . registerWidget ( "bi.horizontal" , function ( a ) { var c = BI . isIE ( ) , d = b ( ) , e = c && BI . getIEVersion ( ) < 8 ; return a . verticalAlign === BI . VerticalAlign . Middle && a . horizontalAlign === BI . HorizontalAlign . Center ? e ? a : BI . extend ( a , { type : "bi.table_adapt" } ) : a . verticalAlign === BI . VerticalAlign . Middle && a . horizontalAlign === BI . HorizontalAlign . Left ? e ? a : BI . extend ( a , { type : "bi.table_adapt" } ) : a . verticalAlign === BI . VerticalAlign . Top && a . horizontalAlign === BI . HorizontalAlign . Center ? e ? a : BI . extend ( a , { type : "bi.table_adapt" } ) : c ? a : d ? BI . extend ( a , { type : "bi.flex_horizontal" } ) : BI . extend ( a , { type : "bi.table_adapt" } ) } ) , BI . Plugin . registerWidget ( "bi.center_adapt" , function ( a ) { var c = BI . isIE ( ) , d = b ( ) , e = a . items && a . items . length <= 1 ; return ! c && d && e ? a . scrollable === ! 0 || a . scrollx === ! 0 || a . scrolly === ! 0 ? BI . extend ( a , { type : "bi.flex_scrollable_center_adapt" } ) : BI . extend ( a , { type : "bi.flex_center_adapt" } ) : e ? BI . extend ( a , { type : "bi.inline_center_adapt" } ) : a } ) , BI . Plugin . registerWidget ( "bi.vertical_adapt" , function ( a ) { var c = BI . isIE ( ) , d = b ( ) ; return ! c && d ? a . scrollable === ! 0 || a . scrollx === ! 0 || a . scrolly === ! 0 ? BI . extend ( { } , a , { type : "bi.flex_scrollable_vertical_center_adapt" } ) : BI . extend ( a , { type : "bi.flex_vertical_center_adapt" } ) : BI . extend ( a , { type : "bi.inline_vertical_adapt" } ) } ) , BI . Plugin . registerWidget ( "bi.horizontal_adapt" , function ( a ) { return a . items && a . items . length <= 1 ? BI . extend ( a , { type : "bi.horizontal_auto" } ) : a } ) , BI . Plugin . registerWidget ( "bi.float_center_adapt" , function ( a ) { return ! BI . isIE ( ) && b ( ) ? a . scrollable === ! 0 || a . scrollx === ! 0 || a . scrolly === ! 0 ? BI . extend ( { } , a , { type : "bi.flex_scrollable_center_adapt" } ) : BI . extend ( a , { type : "bi.flex_center_adapt" } ) : BI . extend ( a , { type : "bi.inline_center_adapt" } ) } ) , BI . Plugin . registerWidget ( "bi.flex_horizontal" , function ( a ) { if ( a . scrollable === ! 0 || a . scrolly === ! 0 ) return BI . extend ( { } , a , { type : "bi.flex_scrollable_horizontal" } ) } ) , BI . Plugin . regis
} function O ( a , b ) { var c , d , e , f , g ; for ( e in a ) if ( d = ia . camelCase ( e ) , f = b [ d ] , c = a [ e ] , ia . isArray ( c ) && ( f = c [ 1 ] , c = a [ e ] = c [ 0 ] ) , e !== d && ( a [ d ] = c , delete a [ e ] ) , g = ia . cssHooks [ d ] , g && "expand" in g ) { c = g . expand ( c ) , delete a [ d ] ; for ( e in c ) e in a || ( a [ e ] = c [ e ] , b [ e ] = f ) } else b [ d ] = f } function P ( a , b , c ) { var d , e , f , g , h , i , j , k , l , m = this , n = a . style , o = { } , p = [ ] , q = a . nodeType && w ( a ) ; c . queue || ( k = ia . _queueHooks ( a , "fx" ) , null == k . unqueued && ( k . unqueued = 0 , l = k . empty . fire , k . empty . fire = function ( ) { k . unqueued || l ( ) } ) , k . unqueued ++ , m . always ( function ( ) { m . always ( function ( ) { k . unqueued -- , ia . queue ( a , "fx" ) . length || k . empty . fire ( ) } ) } ) ) , 1 === a . nodeType && ( "height" in b || "width" in b ) && ( c . overflow = [ n . overflow , n . overflowX , n . overflowY ] , "inline" === ia . css ( a , "display" ) && "none" === ia . css ( a , "float" ) && ( ia . support . inlineBlockNeedsLayout && "inline" !== B ( a . nodeName ) ? n . zoom = 1 : n . display = "inline-block" ) ) , c . overflow && ( n . overflow = "hidden" , ia . support . shrinkWrapBlocks || m . always ( function ( ) { n . overflow = c . overflow [ 0 ] , n . overflowX = c . overflow [ 1 ] , n . overflowY = c . overflow [ 2 ] } ) ) ; for ( e in b ) if ( g = b [ e ] , ac . exec ( g ) ) { if ( delete b [ e ] , i = i || "toggle" === g , g === ( q ? "hide" : "show" ) ) continue ; p . push ( e ) } if ( f = p . length ) { h = ia . _data ( a , "fxshow" ) || ia . _data ( a , "fxshow" , { } ) , "hidden" in h && ( q = h . hidden ) , i && ( h . hidden = ! q ) , q ? ia ( a ) . show ( ) : m . done ( function ( ) { ia ( a ) . hide ( ) } ) , m . done ( function ( ) { var b ; ia . _removeData ( a , "fxshow" ) ; for ( b in o ) ia . style ( a , b , o [ b ] ) } ) ; for ( e = 0 ; e < f ; e ++ ) d = p [ e ] , j = m . createTween ( d , q ? h [ d ] : 0 ) , o [ d ] = h [ d ] || ia . style ( a , d ) , d in h || ( h [ d ] = j . start , q && ( j . end = j . start , j . start = "width" === d || "height" === d ? 1 : 0 ) ) } } function Q ( a , b , c , d , e ) { return new Q . prototype . init ( a , b , c , d , e ) } function R ( a , b ) { var c , d = { height : a } , e = 0 ; for ( b = b ? 1 : 0 ; e < 4 ; e += 2 - b ) c = xb [ e ] , d [ "margin" + c ] = d [ "padding" + c ] = a ; return b && ( d . opacity = d . width = a ) , d } function S ( a ) { return ia . isWindow ( a ) ? a : 9 === a . nodeType && ( a . defaultView || a . parentWindow ) } var T , U , V = typeof b , W = a . document , X = a . location , Y = a . jQuery , Z = a . $ , $ = { } , _ = [ ] , aa = "1.9.1" , ba = _ . concat , ca = _ . push , da = _ . slice , ea = _ . indexOf , fa = $ . toString , ga = $ . hasOwnProperty , ha = aa . trim , ia = function ( a , b ) { return new ia . fn . init ( a , b , U ) } , ja = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , ka = /\S+/g , la = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , ma = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/ , na = /^<(\w+)\s*\/?>(?:<\/\1>|)$/ , oa = /^[\],:{}\s]*$/ , pa = /(?:^|:|,)(?:\s*\[)+/g , qa = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g , ra = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g , sa = /^-ms-/ , ta = /-([\da-z])/gi , ua = function ( a , b ) { return b . toUpperCase ( ) } , va = function ( a ) { ( W . addEventListener || "load" === a . type || "complete" === W . readyState ) && ( wa ( ) , ia . ready ( ) ) } , wa = function ( ) { W . addEventListener ? ( W . removeEventListener ( "DOMContentLoaded" , va , ! 1 ) , a . removeEventListener ( "load" , va , ! 1 ) ) : ( W . detachEvent ( "onreadystatechange" , va ) , a . detachEvent ( "onload" , va ) ) } ; ia . fn = ia . prototype = { jquery : aa , constructor : ia , init : function ( a , c , d ) { var e , f ; if ( ! a ) return this ; if ( "string" == typeof a ) { if ( e = "<" === a . charAt ( 0 ) && ">" === a . charAt ( a . length - 1 ) && a . length >= 3 ? [ null , a , null ] : ma . exec ( a ) , ! e || ! e [ 1 ] && c ) return ! c || c . jquery ? ( c || d ) . find ( a ) : this . constructor ( c ) . find ( a ) ; if ( e [ 1 ] ) { if ( c = c instanceof ia ? c [ 0 ] : c , ia . merge ( this , ia . parseHTML ( e [ 1 ] , c && c . nodeType ? c . ownerDocument || c : W , ! 0 ) ) , na . test ( e [ 1 ] ) && ia . isPlainObject ( c ) ) for ( e in c ) ia . isFunction ( this [ e ] ) ? this [ e ] ( c [ e ] ) : this . attr ( e , c [ e ] ) ; return this } if ( f = W . getElementById ( e [ 2 ] ) , f && f . parentNode ) { if ( f . id !== e [ 2 ] ) return d . find ( a ) ; this . length = 1 , this [ 0 ] = f } return this . context = W , this . selector = a , this } return a . nodeType ? ( this . context = this [ 0 ] = a , this . length = 1 , this ) : ia . isFunction ( a ) ? d . ready ( a ) : ( a . selector !== b && ( this . selector = a . selector , this . context = a . context ) , ia . makeArray ( a , this ) ) } , selector : "" , length : 0 , size : function ( ) { return this . length } , toArray : function ( ) { return da . call ( this ) } , get : function ( a ) { return null == a ? this . toArray ( ) : a < 0 ? this [ this . length + a ] : this [ a ] } , pushStack : function ( a ) { var b = ia . merge ( this . constructor ( ) , a ) ; return b . prevObject = this , b . context = this . context , b } , each : function ( a , b ) { return ia . each ( this , a , b ) } , ready : function ( a ) { return ia . ready . promise ( ) . done ( a ) , this } , slice : function ( ) { return this . pushStack ( da . apply ( this , arguments ) ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , eq : function ( a ) { var b = this . length , c = + a + ( a < 0 ? b : 0 ) ; return this . pushStack ( c >
} , ia . Event . prototype = { isDefaultPrevented : j , isPropagationStopped : j , isImmediatePropagationStopped : j , preventDefault : function ( ) { var a = this . originalEvent ; this . isDefaultPrevented = i , a && ( a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 ) } , stopPropagation : function ( ) { var a = this . originalEvent ; this . isPropagationStopped = i , a && ( a . stopPropagation && a . stopPropagation ( ) , a . cancelBubble = ! 0 ) } , stopImmediatePropagation : function ( ) { this . isImmediatePropagationStopped = i , this . stopPropagation ( ) } } , ia . each ( { mouseenter : "mouseover" , mouseleave : "mouseout" } , function ( a , b ) { ia . event . special [ a ] = { delegateType : b , bindType : b , handle : function ( a ) { var c , d = this , e = a . relatedTarget , f = a . handleObj ; return e && ( e === d || ia . contains ( d , e ) ) || ( a . type = f . origType , c = f . handler . apply ( this , arguments ) , a . type = b ) , c } } } ) , ia . support . submitBubbles || ( ia . event . special . submit = { setup : function ( ) { return ! ia . nodeName ( this , "form" ) && void ia . event . add ( this , "click._submit keypress._submit" , function ( a ) { var c = a . target , d = ia . nodeName ( c , "input" ) || ia . nodeName ( c , "button" ) ? c . form : b ; d && ! ia . _data ( d , "submitBubbles" ) && ( ia . event . add ( d , "submit._submit" , function ( a ) { a . _submit _bubble = ! 0 } ) , ia . _data ( d , "submitBubbles" , ! 0 ) ) } ) } , postDispatch : function ( a ) { a . _submit _bubble && ( delete a . _submit _bubble , this . parentNode && ! a . isTrigger && ia . event . simulate ( "submit" , this . parentNode , a , ! 0 ) ) } , teardown : function ( ) { return ! ia . nodeName ( this , "form" ) && void ia . event . remove ( this , "._submit" ) } } ) , ia . support . changeBubbles || ( ia . event . special . change = { setup : function ( ) { return Ka . test ( this . nodeName ) ? ( "checkbox" !== this . type && "radio" !== this . type || ( ia . event . add ( this , "propertychange._change" , function ( a ) { "checked" === a . originalEvent . propertyName && ( this . _just _changed = ! 0 ) } ) , ia . event . add ( this , "click._change" , function ( a ) { this . _just _changed && ! a . isTrigger && ( this . _just _changed = ! 1 ) , ia . event . simulate ( "change" , this , a , ! 0 ) } ) ) , ! 1 ) : void ia . event . add ( this , "beforeactivate._change" , function ( a ) { var b = a . target ; Ka . test ( b . nodeName ) && ! ia . _data ( b , "changeBubbles" ) && ( ia . event . add ( b , "change._change" , function ( a ) { ! this . parentNode || a . isSimulated || a . isTrigger || ia . event . simulate ( "change" , this . parentNode , a , ! 0 ) } ) , ia . _data ( b , "changeBubbles" , ! 0 ) ) } ) } , handle : function ( a ) { var b = a . target ; if ( this !== b || a . isSimulated || a . isTrigger || "radio" !== b . type && "checkbox" !== b . type ) return a . handleObj . handler . apply ( this , arguments ) } , teardown : function ( ) { return ia . event . remove ( this , "._change" ) , ! Ka . test ( this . nodeName ) } } ) , ia . support . focusinBubbles || ia . each ( { focus : "focusin" , blur : "focusout" } , function ( a , b ) { var c = 0 , d = function ( a ) { ia . event . simulate ( b , a . target , ia . event . fix ( a ) , ! 0 ) } ; ia . event . special [ b ] = { setup : function ( ) { 0 === c ++ && W . addEventListener ( a , d , ! 0 ) } , teardown : function ( ) { 0 === -- c && W . removeEventListener ( a , d , ! 0 ) } } } ) , ia . fn . extend ( { on : function ( a , c , d , e , f ) { var g , h ; if ( "object" == typeof a ) { "string" != typeof c && ( d = d || c , c = b ) ; for ( g in a ) this . on ( g , c , d , a [ g ] , f ) ; return this } if ( null == d && null == e ? ( e = c , d = c = b ) : null == e && ( "string" == typeof c ? ( e = d , d = b ) : ( e = d , d = c , c = b ) ) , e === ! 1 ) e = j ; else if ( ! e ) return this ; return 1 === f && ( h = e , e = function ( a ) { return ia ( ) . off ( a ) , h . apply ( this , arguments ) } , e . guid = h . guid || ( h . guid = ia . guid ++ ) ) , this . each ( function ( ) { ia . event . add ( this , a , e , d , c ) } ) } , one : function ( a , b , c , d ) { return this . on ( a , b , c , d , 1 ) } , off : function ( a , c , d ) { var e , f ; if ( a && a . preventDefault && a . handleObj ) return e = a . handleObj , ia ( a . delegateTarget ) . off ( e . namespace ? e . origType + "." + e . namespace : e . origType , e . selector , e . handler ) , this ; if ( "object" == typeof a ) { for ( f in a ) this . off ( f , c , a [ f ] ) ; return this } return c !== ! 1 && "function" != typeof c || ( d = c , c = b ) , d === ! 1 && ( d = j ) , this . each ( function ( ) { ia . event . remove ( this , a , d , c ) } ) } , bind : function ( a , b , c ) { return this . on ( a , null , b , c ) } , unbind : function ( a , b ) { return this . off ( a , null , b ) } , delegate : function ( a , b , c , d ) { return this . on ( b , a , c , d ) } , undelegate : function ( a , b , c ) { return 1 === arguments . length ? this . off ( a , "**" ) : this . off ( b , a || "**" , c ) } , trigger : function ( a , b ) { return this . each ( function ( ) { ia . event . trigger ( a , b , this ) } ) } , triggerHandler : function ( a , b ) { var c = this [ 0 ] ; if ( c ) return ia . event . trigger ( a , b , c , ! 0 ) } } ) , function ( a , b ) { function c ( a ) { return oa . test ( a + "" ) } function d ( ) { var a , b = [ ] ; return a = function ( c , d ) { return b . push ( c += " " ) > y . cacheLength && delete a [ b . shift ( ) ] , a [ c ] = d } } function e ( a ) { return a [ N ] = ! 0 , a } fun
} , a , c , arguments . length > 1 ) } , show : function ( ) { return x ( this , ! 0 ) } , hide : function ( ) { return x ( this ) } , toggle : function ( a ) { var b = "boolean" == typeof a ; return this . each ( function ( ) { ( b ? a : w ( this ) ) ? ia ( this ) . show ( ) : ia ( this ) . hide ( ) } ) } } ) , ia . extend ( { cssHooks : { opacity : { get : function ( a , b ) { if ( b ) { var c = lb ( a , "opacity" ) ; return "" === c ? "1" : c } } } } , cssNumber : { columnCount : ! 0 , fillOpacity : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { "float" : ia . support . cssFloat ? "cssFloat" : "styleFloat" } , style : function ( a , c , d , e ) { if ( a && 3 !== a . nodeType && 8 !== a . nodeType && a . style ) { var f , g , h , i = ia . camelCase ( c ) , j = a . style ; if ( c = ia . cssProps [ i ] || ( ia . cssProps [ i ] = v ( j , i ) ) , h = ia . cssHooks [ c ] || ia . cssHooks [ i ] , d === b ) return h && "get" in h && ( f = h . get ( a , ! 1 , e ) ) !== b ? f : j [ c ] ; if ( g = typeof d , "string" === g && ( f = tb . exec ( d ) ) && ( d = ( f [ 1 ] + 1 ) * f [ 2 ] + parseFloat ( ia . css ( a , c ) ) , g = "number" ) , ! ( null == d || "number" === g && isNaN ( d ) || ( "number" !== g || ia . cssNumber [ i ] || ( d += "px" ) , ia . support . clearCloneStyle || "" !== d || 0 !== c . indexOf ( "background" ) || ( j [ c ] = "inherit" ) , h && "set" in h && ( d = h . set ( a , d , e ) ) === b ) ) ) try { j [ c ] = d } catch ( k ) { } } } , css : function ( a , c , d , e ) { var f , g , h , i = ia . camelCase ( c ) ; return c = ia . cssProps [ i ] || ( ia . cssProps [ i ] = v ( a . style , i ) ) , h = ia . cssHooks [ c ] || ia . cssHooks [ i ] , h && "get" in h && ( g = h . get ( a , ! 0 , d ) ) , g === b && ( g = lb ( a , c , e ) ) , "normal" === g && c in wb && ( g = wb [ c ] ) , "" === d || d ? ( f = parseFloat ( g ) , d === ! 0 || ia . isNumeric ( f ) ? f || 0 : g ) : g } , swap : function ( a , b , c , d ) { var e , f , g = { } ; for ( f in b ) g [ f ] = a . style [ f ] , a . style [ f ] = b [ f ] ; e = c . apply ( a , d || [ ] ) ; for ( f in b ) a . style [ f ] = g [ f ] ; return e } } ) , a . getComputedStyle ? ( kb = function ( b ) { return a . getComputedStyle ( b , null ) } , lb = function ( a , c , d ) { var e , f , g , h = d || kb ( a ) , i = h ? h . getPropertyValue ( c ) || h [ c ] : b , j = a . style ; return h && ( "" !== i || ia . contains ( a . ownerDocument , a ) || ( i = ia . style ( a , c ) ) , sb . test ( i ) && qb . test ( c ) && ( e = j . width , f = j . minWidth , g = j . maxWidth , j . minWidth = j . maxWidth = j . width = i , i = h . width , j . width = e , j . minWidth = f , j . maxWidth = g ) ) , i } ) : W . documentElement . currentStyle && ( kb = function ( a ) { return a . currentStyle } , lb = function ( a , c , d ) { var e , f , g , h = d || kb ( a ) , i = h ? h [ c ] : b , j = a . style ; return null == i && j && j [ c ] && ( i = j [ c ] ) , sb . test ( i ) && ! ob . test ( c ) && ( e = j . left , f = a . runtimeStyle , g = f && f . left , g && ( f . left = a . currentStyle . left ) , j . left = "fontSize" === c ? "1em" : i , i = j . pixelLeft + "px" , j . left = e , g && ( f . left = g ) ) , "" === i ? "auto" : i } ) , ia . each ( [ "height" , "width" ] , function ( a , b ) { ia . cssHooks [ b ] = { get : function ( a , c , d ) { if ( c ) return 0 === a . offsetWidth && pb . test ( ia . css ( a , "display" ) ) ? ia . swap ( a , vb , function ( ) { return A ( a , b , d ) } ) : A ( a , b , d ) } , set : function ( a , c , d ) { var e = d && kb ( a ) ; return y ( a , c , d ? z ( a , b , d , ia . support . boxSizing && "border-box" === ia . css ( a , "boxSizing" , ! 1 , e ) , e ) : 0 ) } } } ) , ia . support . opacity || ( ia . cssHooks . opacity = { get : function ( a , b ) { return nb . test ( ( b && a . currentStyle ? a . currentStyle . filter : a . style . filter ) || "" ) ? . 01 * parseFloat ( RegExp . $1 ) + "" : b ? "1" : "" } , set : function ( a , b ) { var c = a . style , d = a . currentStyle , e = ia . isNumeric ( b ) ? "alpha(opacity=" + 100 * b + ")" : "" , f = d && d . filter || c . filter || "" ; c . zoom = 1 , ( b >= 1 || "" === b ) && "" === ia . trim ( f . replace ( mb , "" ) ) && c . removeAttribute && ( c . removeAttribute ( "filter" ) , "" === b || d && ! d . filter ) || ( c . filter = mb . test ( f ) ? f . replace ( mb , e ) : f + " " + e ) } } ) , ia ( function ( ) { ia . support . reliableMarginRight || ( ia . cssHooks . marginRight = { get : function ( a , b ) { if ( b ) return ia . swap ( a , { display : "inline-block" } , lb , [ a , "marginRight" ] ) } } ) , ! ia . support . pixelPosition && ia . fn . position && ia . each ( [ "top" , "left" ] , function ( a , b ) { ia . cssHooks [ b ] = { get : function ( a , c ) { if ( c ) return c = lb ( a , b ) , sb . test ( c ) ? ia ( a ) . position ( ) [ b ] + "px" : c } } } ) } ) , ia . expr && ia . expr . filters && ( ia . expr . filters . hidden = function ( a ) { return a . offsetWidth <= 0 && a . offsetHeight <= 0 || ! ia . support . reliableHiddenOffsets && "none" === ( a . style && a . style . display || ia . css ( a , "display" ) ) } , ia . expr . filters . visible = function ( a ) { return ! ia . expr . filters . hidden ( a ) } ) , ia . each ( { margin : "" , padding : "" , border : "Width" } , function ( a , b ) { ia . cssHooks [ a + b ] = { expand : function ( c ) { for ( var d = 0 , e = { } , f = "string" == typeof c ? c . split ( " " ) : [ c ] ; d < 4 ; d ++ ) e [ a + xb [ d ] + b ] = f [ d ] || f [ d - 2 ] || f [ 0 ] ; return e } } , qb . test ( a ) || ( ia . cssHooks [ a + b ] . set = y ) } ) ; var zb = /%20/g , Ab = /\[\]$/ , Bb = /\r?\n/g , Cb = /^(?:submit|button|image|reset|file)$/i , Db = /^(?:input|select|textarea|keygen)/i ; ia . fn . extend ( { serialize : function ( ) { return ia . param ( this . serializeArray ( ) ) } , serializeArray : function ( ) { return this . map ( f
el : { type : "bi.vertical_adapt" , height : "100%" , items : a . items . left , hgap : a . lhgap , lgap : a . llgap , rgap : a . lrgap } } ] } ) , "right" in a . items && b . push ( { type : "bi.right" , items : [ { el : { type : "bi.vertical_adapt" , height : "100%" , items : a . items . right , textAlign : "right" , hgap : a . rhgap , lgap : a . rlgap , rgap : a . rrgap } } ] } ) , b } , resize : function ( ) { } , addItem : function ( ) { throw new Error ( "cannot be added" ) } , populate : function ( a ) { BI . LeftRightVerticalAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.left_right_vertical_adapt" , BI . LeftRightVerticalAdaptLayout ) , BI . LeftVerticalAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . LeftRightVerticalAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-left-vertical-adapt-layout" , items : [ ] , lgap : 0 , rgap : 0 , hgap : 0 } ) } , render : function ( ) { var a = this . options , b = this ; return BI . LeftVerticalAdaptLayout . superclass . render . apply ( this , arguments ) , { type : "bi.left" , ref : function ( a ) { b . layout = a } , items : [ { el : { type : "bi.vertical_adapt" , height : "100%" , items : a . items , lgap : a . lgap , hgap : a . hgap , rgap : a . rgap } } ] } } , resize : function ( ) { } , addItem : function ( ) { throw new Error ( "cannot be added" ) } , populate : function ( a ) { this . layout . populate . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.left_vertical_adapt" , BI . LeftVerticalAdaptLayout ) , BI . RightVerticalAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . RightVerticalAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-right-vertical-adapt-layout" , items : [ ] , lgap : 0 , rgap : 0 , hgap : 0 } ) } , render : function ( ) { var a = this . options , b = this ; return BI . RightVerticalAdaptLayout . superclass . render . apply ( this , arguments ) , { type : "bi.right" , ref : function ( a ) { b . layout = a } , items : [ { el : { type : "bi.vertical_adapt" , height : "100%" , textAlign : "right" , items : a . items , lgap : a . lgap , hgap : a . hgap , rgap : a . rgap } } ] } } , resize : function ( ) { } , addItem : function ( ) { throw new Error ( "cannot be added" ) } , populate : function ( a ) { this . layout . populate . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.right_vertical_adapt" , BI . RightVerticalAdaptLayout ) , BI . TableAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . TableAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-table-center-adapt-layout" , columnSize : [ ] , verticalAlign : BI . VerticalAlign . Top , horizontalAlign : BI . HorizontalAlign . Left , scrollx : ! 0 , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { var a = this . options ; BI . TableAdaptLayout . superclass . render . apply ( this , arguments ) , this . $table = BI . Widget . _renderEngine . createElement ( "<div>" ) . css ( { position : "relative" , display : "table" , height : a . verticalAlign === BI . VerticalAlign . Middle ? "100%" : "auto" , width : a . horizontalAlign === BI . HorizontalAlign . Center ? "100%" : "auto" , "white-space" : "nowrap" } ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c , d = this . options , e = d . columnSize [ a ] <= 1 ? 100 * d . columnSize [ a ] + "%" : d . columnSize [ a ] ; if ( this . hasWidget ( this . _getChildName ( a ) ) ) c = this . getWidgetByName ( this . _getChildName ( a ) ) , c . element . width ( e ) ; else { var f = BI . createWidget ( b ) ; f . element . css ( { position : "relative" , top : "0" , left : "0" , margin : "0px auto" } ) , c = BI . createWidget ( { type : "bi.default" , width : e , items : [ f ] } ) , this . addWidget ( this . _getChildName ( a ) , c ) } return c . element . css ( { "max-width" : d . columnSize [ a ] <= 1 ? e : e + "px" } ) , 0 === a && c . element . addClass ( "first-element" ) , c . element . css ( { position : "relative" , display : "table-cell" , "vertical-align" : d . verticalAlign , margin : "0" , padding : "0" , height : "100%" } ) , d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-top" : d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d . hgap + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-left" : ( 0 === a ? d . hgap : 0 ) + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-right" : d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-bottom" : d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c } , appendFragment : function ( a ) { this . $table . append ( a ) , this . element . append ( this . $table ) } , resize : function ( ) { } , populate : function ( a ) { BI . TableAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.table_adapt" , BI . TableAdaptLayout ) , BI . VerticalAdaptLayout = BI . inher
a . addClass ( "center-element" ) } function c ( a , b , c ) { var d = "" ; 0 === b && ( d += " first-row" ) , 0 === c && ( d += " first-col" ) , d += BI . isOdd ( b + 1 ) ? " odd-row" : " even-row" , d += BI . isOdd ( c + 1 ) ? " odd-col" : " even-col" , a . cls = ( a . cls || "" ) + d + " center-element" } function d ( a , d , e ) { a instanceof BI . Widget ? b ( a . element , d , e ) : a . el instanceof BI . Widget ? b ( a . el . element , d , e ) : a . el ? c ( a . el , d , e ) : c ( a , d , e ) } var e = this . options , f = e . rows || e . items . length , g = e . columns || 0 | ( e . items [ 0 ] && e . items [ 0 ] . length ) , h = BI . makeArray ( f ) , i = { } , j = { } ; BI . each ( h , function ( a ) { h [ a ] = BI . makeArray ( g ) } ) , BI . each ( a , function ( a , b ) { return BI . isArray ( b ) ? void BI . each ( b , function ( c , d ) { i [ a ] = ( i [ a ] || 0 ) + b . width , j [ c ] = ( j [ c ] || 0 ) + b . height , h [ a ] [ c ] = d } ) : ( i [ b . row ] = ( i [ b . row ] || 0 ) + b . width , j [ b . column ] = ( j [ b . column ] || 0 ) + b . height , void ( h [ b . row ] [ b . column ] = b ) ) } ) ; for ( var k = 0 ; k < f ; k ++ ) for ( var l = 0 , m = 0 ; m < g ; m ++ ) { if ( ! h [ k ] [ m ] ) throw new Error ( "item be required" ) ; if ( this . hasWidget ( this . getName ( ) + k + "_" + m ) ) n = this . getWidgetByName ( this . getName ( ) + k + "_" + m ) ; else { var n = BI . createWidget ( h [ k ] [ m ] ) ; this . addWidget ( this . getName ( ) + k + "_" + m , n ) } var o = 100 * l / i [ k ] ; if ( n . element . css ( { position : "absolute" , left : o + "%" } ) , m > 0 ) { var p = this . getWidgetByName ( this . getName ( ) + k + "_" + ( m - 1 ) ) ; p . element . css ( { right : 100 - o + "%" } ) } m == e . columns - 1 && n . element . css ( { right : "0%" } ) , d ( n , k , m ) , l += h [ k ] [ m ] . width } for ( var m = 0 ; m < e . columns ; m ++ ) for ( var q = 0 , k = 0 ; k < e . rows ; k ++ ) { var n = this . getWidgetByName ( this . getName ( ) + k + "_" + m ) , r = 100 * q / j [ m ] ; if ( n . element . css ( { top : r + "%" } ) , k > 0 ) { var p = this . getWidgetByName ( this . getName ( ) + ( k - 1 ) + "_" + m ) ; p . element . css ( { bottom : 100 - r + "%" } ) } k == e . rows - 1 && n . element . css ( { bottom : "0%" } ) , q += h [ k ] [ m ] . height } } , update : function ( ) { } , populate : function ( a ) { BI . DivisionLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.division" , BI . DivisionLayout ) , BI . FloatLeftLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatLeftLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-left-layout clearfix" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . FloatLeftLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . FloatLeftLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" , "float" : "left" } ) , BI . isNotNull ( b . left ) && d . element . css ( { left : b . left } ) , BI . isNotNull ( b . right ) && d . element . css ( { right : b . right } ) , BI . isNotNull ( b . top ) && d . element . css ( { top : b . top } ) , BI . isNotNull ( b . bottom ) && d . element . css ( { bottom : b . bottom } ) , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-top" : c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-left" : ( 0 === a ? c . hgap : 0 ) + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-bottom" : c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . FloatLeftLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.left" , BI . FloatLeftLayout ) , BI . FloatRightLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatRightLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-right-layout clearfix" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . FloatRightLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . FloatRightLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" , "float" : "right" } ) , BI . isNotNull ( b . left ) && d . element . css ( { left : b . left } ) , BI . isNotNull ( b . right ) && d . element . css ( { right : b . right } ) , BI . isNotNull ( b . top ) && d . element . css ( { top : b . top } ) , BI . isNotNull ( b . bottom ) && d . element . css ( { bottom : b . bottom } ) , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-top" : c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-left" : c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . el
if ( ! c . has ( Z , a ) ) { if ( /^[1-9a-zA-Z.]+(\*\*$|\*$)/ . test ( a ) || "**" === a ) { var d = /\*\*$/ . test ( a ) ; a = d ? a . replace ( ".**" , "" ) : a . replace ( ".*" , "" ) ; var g = d ? a : function ( ) { var a = { } ; return c . each ( f . model , function ( b , c ) { c in L || ( a [ c ] = b ) } ) , a } ; return void f . $watch ( g , function ( a , d , e ) { m ( b , a , d , c . extend ( { index : b } , e ) ) } , c . extend ( e , { deep : d } ) ) } if ( /\*\*$|\*$/ . test ( a ) ) throw new Error ( "not support" ) ; if ( /\*/ . test ( a ) ) { var h = a . split ( "." ) , i = function ( ) { for ( var a = { root : f . model } , b = ( function ( b , d ) { var e = { } ; "*" === h [ d ] ? c . each ( a , function ( a , b ) { c . each ( a , function ( a , c ) { b + c in L || ( e [ b + c ] = a ) } ) } ) : c . each ( a , function ( a , b ) { b + h [ d ] in L || ( e [ b + h [ d ] ] = a [ h [ d ] ] ) } ) , a = e } ) , d = 0 , e = h . length ; d < e ; d ++ ) b ( e , d ) ; return a } ; return void f . $watch ( i , function ( a , d , e ) { m ( b , a , d , c . extend ( { index : b } , e ) ) } , e ) } f . $watch ( a , function ( a , d , e ) { m ( b , a , d , c . extend ( { index : b } , e ) ) } , e ) } } ) , h } function s ( a , b ) { var c = a . _stateWatchers = { } ; for ( var d in b ) a . model [ d ] = b [ d ] ; var e = function ( d ) { var e = b [ d ] ; c [ d ] = new da ( { id : a . _modelHashId + "-" + d , get : function ( ) { return a . model [ d ] } , last : e , listener : a . options . defaultCallback || ba } ) } ; for ( var f in b ) e ( f ) } function t ( a , b ) { var d = a . _computedWatchers = { } , e = a . _computedOrder = [ ] ; for ( var f in b ) { var g = b [ f ] , h = a ; e . push ( f ) , d [ f ] = new da ( { id : a . _modelHashId + "-" + f , get : c . bind ( g , h ) , last : void 0 , listener : ba } ) } } function u ( a , b ) { a . _watchers || ( a . _watchers = [ ] ) ; for ( var d in b ) { var e = b [ d ] ; if ( c . isArray ( e ) ) for ( var f = 0 ; f < e . length ; f ++ ) r ( a , d , e [ f ] ) ; else r ( a , d , e ) } } function v ( a , b , d ) { var e = arguments . length > 3 && void 0 !== arguments [ 3 ] ? arguments [ 3 ] : { } ; i ( d ) && ( e = d , d = d . handler ) , "string" == typeof d && ( d = a [ d ] ) ; var f = c . isFunction ( b ) ? c . bind ( b , a ) : c . bind ( function ( ) { return j ( "model." + b ) ( a ) } , a ) ; return new da ( { get : f , listener : c . bind ( d , a ) , last : f ( ) , sync : e . sync , deep : e . deep , id : e . id } ) } function w ( a , b ) { return function ( ) { var c = a . apply ( b , [ ] . concat ( Array . prototype . slice . call ( arguments ) ) ) ; return b . $digest ( ) , c } } function x ( a , b ) { for ( var c in b ) a [ c ] = null == b [ c ] ? d : w ( b [ c ] , a ) } function y ( a ) { var b = arguments . length > 1 && void 0 !== arguments [ 1 ] ? arguments [ 1 ] : [ ] ; c . each ( b . reverse ( ) , function ( b ) { var d = o ( b ) ; for ( var e in d ) "function" == typeof d [ e ] && ( c . has ( a , e ) || ( a [ e ] = w ( d [ e ] , a ) ) ) } ) } function z ( a , b ) { function d ( b ) { for ( var c = a . _parent ; c ; ) { if ( c . childContext && c . childContext . indexOf ( b ) > - 1 ) return c . $watch ( b , function ( c , d , e ) { a . _contextWatchers [ b ] && ( a . model [ b ] = c , a . _contextWatchers [ b ] . last = l ( c ) , a . $digest ( ) ) } , { id : a . _modelHashId + "-" + b } ) , { p : c , value : c . model [ b ] } ; c = c . _parent } } var e = a . _contextWatchers = { } ; c . each ( b , function ( b ) { var f = d ( b ) ; f && ( a . model [ b ] = f . p ? f . p . model [ b ] : void 0 , e [ b ] = new da ( { id : f . p . _modelHashId + "-" + b , get : function ( ) { return a . model [ b ] } , last : a . model [ b ] , listener : c . bind ( function ( ) { f . p . model [ b ] = a . model [ b ] , f . p . $digest ( ) } , f . p ) } ) ) } ) } function A ( a , b , d , e ) { var f = { id : b . id , cb : c . bind ( b . listener , a , d , e , a ) } ; b . sync === ! 0 ? a . syncListeners . push ( f ) : a . asyncListeners . push ( f ) } function B ( a ) { var b = ! 1 ; return c . each ( a . _stateWatchers , function ( c , d ) { var e = c . get ( ) , f = c . last ; n ( e , f ) || ( A ( a , c , e , f ) , a . model [ d ] = e , b = ! 0 , c . last = l ( e ) ) } ) , b } function C ( a ) { var b = ! 1 , d = [ ] , e = [ ] ; return c . each ( a . _computedOrder , function ( c ) { var f = a . _computedWatchers [ c ] ; try { var g = f . get ( ) , h = f . last ; n ( g , h ) ? e . push ( c ) : ( A ( a , f , g , h ) , a . model [ c ] = g , b = ! 0 , d . push ( c ) , f . last = l ( g ) ) } catch ( i ) { b = ! 0 , d . push ( c ) } } ) , a . _computedOrder = [ ] . concat ( e , d ) , b } function D ( a ) { var b = ! 1 ; return c . each ( a . _contextWatchers , function ( d , e ) { var f = d . get ( ) , g = d . last ; if ( ! n ( f , g ) ) { var h = { id : d . id , cb : c . bind ( d . listener , a , f , g , a ) } ; a . contextListeners . push ( h ) , a . model [ e ] = f , b = ! 0 , d . last = l ( f ) } } ) , b } function E ( a ) { for ( var b = ! 0 , c = ! 0 , d = ! 0 , e = ca ; b && e > 0 ; e -- ) b = B ( a ) ; for ( var f = ca ; c && f > 0 ; f -- ) c = D ( a ) ; for ( var g = ca ; d && g > 0 ; g -- ) d = C ( a ) } function F ( a ) { var b = [ ] . concat ( a . syncListeners || [ ] ) , d = [ ] . concat ( a . asyncListeners || [ ] ) , e = [ ] . concat ( a . contextListeners || [ ] ) ; a . asyncListeners = [ ] , a . syncListeners = [ ] ; var f = [ ] . concat ( a . _watchers ) ; c . each ( f , function ( e ) { if ( e ) { var f = e . get ( ) , g = e . last ; if ( ! n ( f , g ) ) { var h = { id : e . id , cb : c . bind ( e . listener , a , f , g , a ) } ; e . sync === ! 0 ? b . push ( h ) : d . push ( h ) , e . last = l ( f ) } } } ) , c . each ( b , function ( a ) { a . cb ( ) } ) , Q ( function ( ) { c . each ( e , function ( a ) { a . cb ( ) } ) , c . each ( d , function ( a ) { a . cb ( ) } ) } ) } function G ( ) { c . each ( aa , function ( a ) { a && a . $digest && a . $digest ( ) } ) } function H ( ) { return $ } function I ( ) { c . each ( H ( ) , function ( a ) { a && a . $digest && a . $digest ( ) } ) } function J ( a ) { var b = m ( fa , { state : function
return c . isEnabled ( ) && ! BI . isFunction ( c . setSelected ) ? void ( a = BI . concat ( a , c . getValue ( ) ) ) : void ( c . isEnabled ( ) && c . isSelected && c . isSelected ( ) && a . push ( c . getValue ( ) ) ) } ) , a } , getSelectedButtons : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { return c . isEnabled ( ) && ! BI . isFunction ( c . setSelected ) ? void ( a = a . concat ( c . getSelectedButtons ( ) ) ) : void ( c . isSelected && c . isSelected ( ) && a . push ( c ) ) } ) , a } , getNotSelectedButtons : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { return c . isEnabled ( ) && ! BI . isFunction ( c . setSelected ) ? void ( a = a . concat ( c . getNotSelectedButtons ( ) ) ) : void ( c . isSelected && ! c . isSelected ( ) && a . push ( c ) ) } ) , a } , getAllLeaves : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { return c . isEnabled ( ) && ! BI . isFunction ( c . setSelected ) ? void ( a = a . concat ( c . getAllLeaves ( ) ) ) : void ( c . isEnabled ( ) && a . push ( c ) ) } ) , a } , getIndexByValue : function ( a ) { var b = - 1 ; return BI . any ( this . buttons , function ( c , d ) { var e = d . getValue ( ) ; if ( d . isEnabled ( ) && ( e === a || BI . contains ( e , a ) ) ) return b = c , ! 0 } ) , b } , getNodeById : function ( a ) { var b ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) ) { if ( d . attr ( "id" ) === a ) return b = d , ! 0 ; if ( BI . isFunction ( d . getNodeById ) && ( b = d . getNodeById ( a ) ) ) return ! 0 } } ) , b } , getNodeByValue : function ( a ) { var b ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) ) if ( BI . isFunction ( d . getNodeByValue ) ) { if ( b = d . getNodeByValue ( a ) ) return ! 0 } else if ( d . attr ( "value" ) === a ) return b = d , ! 0 } ) , b } } ) , BI . ButtonTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.button_tree" , BI . ButtonTree ) , BI . TreeView = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeView . superclass . _defaultConfig . apply ( this , arguments ) , { _baseCls : "bi-tree" , paras : { selectedValues : { } } , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . TreeView . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _stop = ! 1 , this . _createTree ( ) , this . tip = BI . createWidget ( { type : "bi.loading_bar" , invisible : ! 0 , handler : BI . bind ( this . _loadMore , this ) } ) , BI . createWidget ( { type : "bi.vertical" , scrollable : ! 0 , scrolly : ! 1 , element : this , items : [ this . tip ] } ) , BI . isNotNull ( a . value ) && this . setSelectedValue ( a . value ) , BI . isIE9Below && BI . isIE9Below ( ) && this . element . addClass ( "hack" ) } , _createTree : function ( ) { this . id = "bi-tree" + BI . UUID ( ) , this . nodes && this . nodes . destroy ( ) , this . tree && this . tree . destroy ( ) , this . tree = BI . createWidget ( { type : "bi.layout" , element : "<ul id='" + this . id + "' class='ztree'></ul>" } ) , BI . createWidget ( { type : "bi.default" , element : this . element , items : [ this . tree ] } ) } , _selectTreeNode : function ( a , b ) { this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , b , this ) , this . fireEvent ( BI . TreeView . EVENT _CHANGE , b , this ) } , _configSetting : function ( ) { function a ( a , b , c ) { var d = c . checked , e = c . getCheckStatus ( ) ; e . half === ! 0 && e . checked === ! 0 && ( d = ! 1 ) , l . nodes . checkNode ( c , ! d , ! 0 , ! 0 ) } function b ( a , b ) { var c = l . _getParentValues ( b ) ; b . times = b . times || 1 ; var d = "id=" + b . id + "×=" + b . times ++ + "&parentValues= " + _global . encodeURIComponent ( BI . jsonEncode ( c ) ) + "&checkState=" + _global . encodeURIComponent ( BI . jsonEncode ( b . getCheckStatus ( ) ) ) ; return "&" + d } function c ( a , b ) { return b . isAjaxing ? ( BI . Msg . toast ( "Please Wait。" , "warning" ) , ! 1 ) : ( b . children || ( b . times = 1 , f ( b , "refresh" ) ) , ! 0 ) } function d ( a , b , c , d ) { if ( c . halfCheck = ! 1 , d && 0 !== d . length && ! /^<html>[\s,\S]*<\/html>$/gi . test ( d ) && ! l . _stop ) { var e = l . nodes , g = c . count || 0 ; c . children . length > g ? ( c . count = c . children . length , BI . delay ( function ( ) { f ( c ) } , n ) ) : ( e . updateNode ( c ) , e . selectNode ( c . children [ 0 ] ) ) } } function e ( a , b , c , d , e , f ) { l . nodes ; BI . Msg . toast ( "Error!" , "warning" ) } function f ( a , b ) { var c = l . nodes ; "refresh" == b && c . updateNode ( a ) , c . reAsyncChildNodes ( a , b , ! 0 ) } function g ( a , b ) { function c ( a ) { BI . each ( a , function ( a , b ) { b . halfCheck === ! 0 && ( b . halfCheck = ! 1 , c ( b . children ) ) } ) } if ( b . halfCheck = ! 1 , b . checked === ! 0 ) { c ( b . children ) ; var d = l . nodes , e = d . getSelectedNodes ( ) ; $ . each ( e , function ( a , b ) { b . halfCheck = ! 1 } ) } var f = b . getCheckStatus ( ) ; f . half === ! 0 && f . checked === ! 0 && ( b . checked = ! 1 ) } function h ( a , b , c ) { l . _selectTreeNode ( b , c ) } function i ( a , b , c ) { c . halfCheck = ! 1 } function j ( a , b , c ) { } var k = this . options . paras , l = this , m = { async : { enable : ! 0 , url : b , autoParam : [ "id" , "name" ] , otherParam : BI . cjkEncodeDO ( k ) } , check : { enable : ! 0 } , data : { key : { title : "title" , name : "text" } , simpleData : { enable : ! 0 } } , view : { showIcon : ! 1 , expandSpeed : "" , nameIsH
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 "right,innerRight" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength , b . adjustYOffset , b . isNeedAdjustHeight , [ "right" , "left" , "innerRight" , "innerLeft" , "bottom" , "top" ] , b . offsetStyle ) ; break ; case "right,innerLeft" : c = BI . DOM . getComboPosition ( e , this . popupView , b . adjustXOffset || b . adjustLength , b . adjustYOffset , b . isNeedAdjustHeight , [ "right" , "left" , "innerLeft" , "innerRight" , "bottom" , "top" ] , 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 . popupView . resetHeight ( a ) } , resetListWidth : function ( a ) { this . _assertPopupView ( ) , this . popupView . resetWidth && this . popupView . resetWidth ( a ) } , populate : function ( a ) { this . _assertPopupView ( ) , this . popupView . populate . apply ( this . popupView , arguments ) , this . combo . populate . apply ( this . combo , arguments ) } , _setEnable : function ( a ) { BI . Combo . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . removeClass ( "base-disabled disabled" ) : a === ! 1 && this . element . addClass ( "base-disabled disabled" ) , ! a && this . element . removeClass ( this . options . hoverClass ) , ! a && this . isViewVisible ( ) && this . _hideView ( ) } , setValue : function ( a ) { this . combo . 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 ( ) } , isViewVisible : function ( ) { return this . is
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 . getShowingCard ( ) ; if ( a ) return a . getValue ( ) } , populate : function ( ) { var a = this . layout . getShowingCard ( ) ; if ( a ) return a . populate && a . populate . apply ( a , arguments ) } , empty : function ( ) { this . layout . deleteAllCard ( ) , this . cardMap = { } } , destroy : function ( ) { this . cardMap = { } , BI . Tab . superclass . destroy . apply ( this , arguments ) } } ) , BI . Tab . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.tab" , BI . Tab ) , BI . EL = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . EL . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-el" , el : { } , layout : { } } ) } , _init : function ( ) { BI . EL . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . ele = BI . createWidget ( b . el ) , BI . createWidget ( b . layout , { type : "bi.adaptive" , element : this , items : [ this . ele ] } ) , this . ele . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEve
} } , 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 : "" , iconWidth : "100%" , iconHeight : "100%" } ) } , _init : function ( ) { BI . ImageButton . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . image = BI . createWidget ( { type : "bi.img" , width : a . iconWidth , height : a . iconHeight , src : a . src } ) , BI . isNumber ( a . iconWidth ) || BI . isNumber ( a . iconHeight ) ? BI . createWidget ( { type : "bi.center_adapt" , element : this , items : [ this . image ] } ) : BI . createWidget ( { type : "bi.adaptive" , element : this , items : [ this . image ] , scrollable : ! 1 } ) } , setWidth : function ( a ) { BI . ImageButton . superclass . setWidth . apply ( this , arguments ) , this . options . width = a } , setHeight : function ( a ) { BI . ImageButton . superclass . setHeight . apply ( this , arguments ) , this . options . height = a } , setImageWidth : function ( a ) { this . image . setWidth ( a ) } , setImageHeight : function ( a ) { this . image . setHeight ( a ) } , getImageWidth : func
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 ( BI . trim ( 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 ( ) } , getLastChangedValue : function ( ) { return this . editor . getLastChangedValue ( ) } , 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 _CHANGE _CONFIRM = "EVENT_CHANGE_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 _CHANGE , arguments ) } ) , this . file . on ( BI . File . EVENT _UPLOADSTART , function ( ) { a . fireEvent ( BI . MultifileEditor . EVENT _UPLOADSTART , arguments ) } ) , this . file . on ( BI . File . EVENT _ERROR , function ( ) { a . fireEvent ( BI . MultifileEditor . EVENT _ERROR , arguments ) } ) , this . file . on ( BI . File . EVENT _PROGRESS , function ( ) { a . fireEvent ( BI . MultifileEditor . EVENT _PROGRESS , arguments ) } ) , this . file . on ( BI . File . EVENT _UPLOADED , function ( ) { a . fireEvent ( BI . MultifileEditor . EVENT _UPLOADED , arguments ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.adaptive" , scrollable : ! 1 , items : [ this . file ] } , top : 0 , right : 0 , left : 0 , bottom : 0 } ] } ) } , select : function ( ) { this . file . select ( ) } , getValue
hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) , this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.center_adapt" , scrollable : "normal" === a . whiteSpace , element : this , items : [ this . text ] } ) ) : BI . isNumber ( a . height ) && a . height > 0 ? ( this . element . css ( { "line-height" : a . height + "px" } ) , b . textAlign = a . textAlign , void ( this . text = BI . createWidget ( BI . extend ( b , { element : this , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) ) ) ) : ( BI . extend ( b , { hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap , maxWidth : "100%" } ) , this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.center_adapt" , scrollable : "normal" === a . whiteSpace , element : this , items : [ this . text ] } ) ) : BI . isNumber ( a . textWidth ) && a . textWidth > 0 ? ( b . maxWidth = 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 ? ( BI . extend ( b , { hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) , this . text = BI . createWidget ( b ) , void BI . createWidget ( { type : "bi.center_adapt" , scrollable : ! 0 , element : this , items : [ this . text ] } ) ) : BI . isNumber ( a . height ) && a . height > 0 ? ( this . element . css ( { "line-height" : a . height + "px" } ) , b . textAlign = a . textAlign , void ( this . text = BI . createWidget ( BI . extend ( b , { element : this , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) ) ) ) : ( BI . extend ( b , { hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) , this . text = BI . createWidget ( BI . extend ( b , { maxWidth : "100%" } ) ) , void BI . createWidget ( { type : "bi.center_adapt" , element : this , items : [ this . text ] } ) ) } , _createNotCenterEl : function ( ) { var a = this . options , b = "right" === a . textAlign ? "bi.right_vertical_adapt" : "bi.vertical_adapt" , c = this . _createJson ( ) ; return BI . isNumber ( a . width ) && a . width > 0 ? BI . isNumber ( a . textWidth ) && a . textWidth > 0 ? ( c . width = a . textWidth , BI . isNumber ( a . height ) && a . height > 0 ? void BI . createWidget ( { type : b , height : a . height , scrollable : "normal" === a . whiteSpace , element : this , items : [ { el : this . text = BI . createWidget ( c ) } ] } ) : void BI . createWidget ( { type : b , 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 ( c ) } ] } ) ) : BI . isNumber ( a . height ) && a . height > 0 ? ( this . text = BI . createWidget ( BI . extend ( c , { element : this , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) ) , void ( "normal" !== a . whiteSpace && this . element . css ( { "line-height" : a . height - 2 * a . vgap + "px" } ) ) ) : ( c . width = a . width - 2 * a . hgap - a . lgap - a . rgap , void BI . createWidget ( { type : b , 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 ( c ) } ] } ) ) : BI . isNumber ( a . textWidth ) && a . textWidth > 0 ? ( c . width = a . textWidth , void BI . createWidget ( { type : b , 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 ( c ) } ] } ) ) : BI . isNumber ( a . height ) && a . height > 0 ? ( "normal" !== a . whiteSpace && this . element . css ( { "line-height" : a . height - 2 * a . vgap + "px" } ) , void ( this . text = BI . createWidget ( BI . extend ( c , { element : this , hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) ) ) ) : ( BI . extend ( c , { hgap : a . hgap , vgap : a . vgap , lgap : a . lgap , rgap : a . rgap , tgap : a . tgap , bgap : a . bgap } ) , this . text = BI . createWidget ( BI . extend ( c , { maxWidth : "100%" } ) ) , void BI . createWidget ( { type : b , element : this , items : [ this . text ] } ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , setText : function ( a ) { this . options . text = a , this . text . setText ( a ) } , getText : function ( ) { return this . options . text } , setStyle : function ( a ) { this . text . setStyle ( a ) } , setValue : function ( a ) { BI . AbstractLabel . superclass . setValue . apply ( this , arguments ) , this . isReadOnly ( ) || this . text . setValue ( a ) } , populate : function ( ) { BI . AbstractLabel . superclass . populate . apply ( this , arguments ) } } ) , BI . HtmlLabel = BI . inherit ( BI . AbstractLabel , { p
var f = data . getRoot ( a ) , g = a . data . key . children ; if ( ! b ) return void tools . apply ( e , [ ] ) ; if ( f . expandTriggerFlag ) { var h = e ; e = function ( ) { h && h ( ) , b . open ? a . treeObj . trigger ( consts . event . EXPAND , [ a . treeId , b ] ) : a . treeObj . trigger ( consts . event . COLLAPSE , [ a . treeId , b ] ) } , f . expandTriggerFlag = ! 1 } if ( ! b . open && b . isParent && ( ! $$ ( b , consts . id . UL , a ) . get ( 0 ) || b [ g ] && b [ g ] . length > 0 && ! $$ ( b [ g ] [ 0 ] , a ) . get ( 0 ) ) && ( view . appendParentULDom ( a , b ) , view . createNodeCallback ( a ) ) , b . open == c ) return void tools . apply ( e , [ ] ) ; var i = $$ ( b , consts . id . UL , a ) , j = $$ ( b , consts . id . SWITCH , a ) , k = $$ ( b , consts . id . ICON , a ) ; b . isParent ? ( b . open = ! b . open , b . iconOpen && b . iconClose && k . attr ( "style" , view . makeNodeIcoStyle ( a , b ) ) , b . open ? ( view . replaceSwitchClass ( b , j , consts . folder . OPEN ) , view . replaceIcoClass ( b , k , consts . folder . OPEN ) , 0 == d || "" == a . view . expandSpeed ? ( i . show ( ) , tools . apply ( e , [ ] ) ) : b [ g ] && b [ g ] . length > 0 ? i . slideDown ( a . view . expandSpeed , e ) : ( i . show ( ) , tools . apply ( e , [ ] ) ) ) : ( view . replaceSwitchClass ( b , j , consts . folder . CLOSE ) , view . replaceIcoClass ( b , k , consts . folder . CLOSE ) , 0 != d && "" != a . view . expandSpeed && b [ g ] && b [ g ] . length > 0 ? i . slideUp ( a . view . expandSpeed , e ) : ( i . hide ( ) , tools . apply ( e , [ ] ) ) ) ) : tools . apply ( e , [ ] ) } , expandCollapseParentNode : function ( a , b , c , d , e ) { if ( b ) { if ( ! b . parentTId ) return void view . expandCollapseNode ( a , b , c , d , e ) ; view . expandCollapseNode ( a , b , c , d ) , b . parentTId && view . expandCollapseParentNode ( a , b . getParentNode ( ) , c , d , e ) } } , expandCollapseSonNode : function ( a , b , c , d , e ) { var f = data . getRoot ( a ) , g = a . data . key . children , h = b ? b [ g ] : f [ g ] , i = ! b && d , j = data . getRoot ( a ) . expandTriggerFlag ; if ( data . getRoot ( a ) . expandTriggerFlag = ! 1 , h ) for ( var k = 0 , l = h . length ; k < l ; k ++ ) h [ k ] && view . expandCollapseSonNode ( a , h [ k ] , c , i ) ; data . getRoot ( a ) . expandTriggerFlag = j , view . expandCollapseNode ( a , b , c , d , e ) } , isSelectedNode : function ( a , b ) { if ( ! b ) return ! 1 ; var c , d = data . getRoot ( a ) . curSelectedList ; for ( c = d . length - 1 ; c >= 0 ; c -- ) if ( b === d [ c ] ) return ! 0 ; return ! 1 } , makeDOMNodeIcon : function ( a , b , c ) { var d = data . getNodeName ( b , c ) , e = b . view . nameIsHTML ? d : d . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) ; a . push ( "<span id='" , c . tId , consts . id . ICON , "' title='' treeNode" , consts . id . ICON , " class='" , view . makeNodeIcoClass ( b , c ) , "' style='" , view . makeNodeIcoStyle ( b , c ) , "'></span><span id='" , c . tId , consts . id . SPAN , "'>" , e , "</span>" ) } , makeDOMNodeLine : function ( a , b , c ) { a . push ( "<span id='" , c . tId , consts . id . SWITCH , "' title='' class='" , view . makeNodeLineClass ( b , c ) , "' treeNode" , consts . id . SWITCH , "></span>" ) } , makeDOMNodeMainAfter : function ( a , b , c ) { a . push ( "</li>" ) } , makeDOMNodeMainBefore : function ( a , b , c ) { a . push ( "<li id='" , c . tId , "' class='" , consts . className . LEVEL , c . level , "' tabindex='0' hidefocus='true' treenode>" ) } , makeDOMNodeNameAfter : function ( a , b , c ) { a . push ( "</a>" ) } , makeDOMNodeNameBefore : function ( a , b , c ) { var d = data . getNodeTitle ( b , c ) , e = view . makeNodeUrl ( b , c ) , f = view . makeNodeFontCss ( b , c ) , g = [ ] ; for ( var h in f ) g . push ( h , ":" , f [ h ] , ";" ) ; a . push ( "<a id='" , c . tId , consts . id . A , "' class='" , consts . className . LEVEL , c . level , "' treeNode" , consts . id . A , ' onclick="' , c . click || "" , '" ' , null != e && e . length > 0 ? "href='" + e + "'" : "" , " target='" , view . makeNodeTarget ( c ) , "' style='" , g . join ( "" ) , "'" ) , tools . apply ( b . view . showTitle , [ b . treeId , c ] , b . view . showTitle ) && d && a . push ( "title='" , d . replace ( /'/g , "'" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) , "'" ) , a . push ( ">" ) } , makeNodeFontCss : function ( a , b ) { var c = tools . apply ( a . view . fontCss , [ a . treeId , b ] , a . view . fontCss ) ; return c && "function" != typeof c ? c : { } } , makeNodeIcoClass : function ( a , b ) { var c = [ "ico" ] ; return b . isAjaxing || ( c [ 0 ] = ( b . iconSkin ? b . iconSkin + "_" : "" ) + c [ 0 ] , b . isParent ? c . push ( b . open ? consts . folder . OPEN : consts . folder . CLOSE ) : c . push ( consts . folder . DOCU ) ) , consts . className . BUTTON + " " + c . join ( "_" ) } , makeNodeIcoStyle : function ( a , b ) { var c = [ ] ; if ( ! b . isAjaxing ) { var d = b . isParent && b . iconOpen && b . iconClose ? b . open ? b . iconOpen : b . iconClose : b . icon ; d && c . push ( "background:url(" , d , ") 0 0 no-repeat;" ) , 0 != a . view . showIcon && tools . apply ( a . view . showIcon , [ a . treeId , b ] , ! 0 ) || c . push ( "width:0px;height:0px;" ) } return c . join ( "" ) } , makeNodeLineClass : function ( a , b ) { var c = [ ] ; return a . view . showLine ? 0 == b . level && b . isFirstNode && b . isLastNode ? c . push ( consts . line . ROOT ) : 0 == b . level && b . isFirstNode ? c . push ( consts . line . ROOTS ) : b . isLastNode ? c . push ( consts . line . BOTTOM ) : c . push ( consts . line . CENTER ) : c . push ( consts . line
items : BI . LogicFactory . createLogicItemsByDirection ( "left" , { type : "bi.center_adapt" , items : [ this . radio ] , width : 16 } , this . text ) } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectRadioItem . superclass . doClick . apply ( this , arguments ) , this . radio . setSelected ( this . isSelected ( ) ) } , setSelected : function ( a ) { BI . SingleSelectRadioItem . superclass . setSelected . apply ( this , arguments ) , this . radio . setSelected ( a ) } } ) , BI . shortcut ( "bi.single_select_radio_item" , BI . SingleSelectRadioItem ) , BI . ArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . ArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-arrow-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 24 } ) } , _init : function ( ) { var a = this , b = this . options ; BI . ArrowNode . superclass . _init . apply ( this , arguments ) , this . checkbox = BI . createWidget ( { type : "bi.arrow_group_node_checkbox" } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 24 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . ArrowNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isOpened ( ) ) } , setText : function ( a ) { BI . ArrowNode . superclass . setText . apply ( this , arguments ) , this . text . setText ( a ) } , setOpened : function ( a ) { BI . ArrowNode . superclass . setOpened . apply ( this , arguments ) , this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.arrow_group_node" , BI . ArrowNode ) , BI . FirstPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . FirstPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-first-plus-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . FirstPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.first_tree_node_checkbox" , stopPropagation : ! 0 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py , keyword : b . keyword } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && ( this . isSelected ( ) ? a . triggerExpand ( ) : a . triggerCollapse ( ) ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 24 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . FirstPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . FirstPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.first_plus_group_node" , BI . FirstPlusGroupNode ) , BI . IconArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . IconArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-arrow-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 24 , iconHeight : 12 , iconWidth : 12 , iconCls : "" } ) } , _init : function ( ) { BI . IconArrowNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI .
extraCls : "tree-collapse-icon-type1" , iconWidth : 24 , iconHeight : 24 } ) } , _init : function ( ) { BI . TreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . TreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a ? this . element . addClass ( "tree-expand-icon-type1" ) : this . element . removeClass ( "tree-expand-icon-type1" ) } } ) , BI . shortcut ( "bi.tree_node_checkbox" , BI . TreeNodeCheckbox ) , BI . CustomColorChooser = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . CustomColorChooser . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-custom-color-chooser" , width : 227 , height : 245 } ) } , _init : function ( ) { BI . CustomColorChooser . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( b . editor , { type : "bi.simple_color_picker_editor" } ) , this . editor . on ( BI . ColorPickerEditor . EVENT _CHANGE , function ( ) { a . setValue ( this . getValue ( ) ) } ) , this . farbtastic = BI . createWidget ( { type : "bi.farbtastic" } ) , this . farbtastic . on ( BI . Farbtastic . EVENT _CHANGE , function ( ) { a . setValue ( this . getValue ( ) ) } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { type : "bi.absolute" , items : [ { el : this . editor , left : 0 , top : 0 , right : 0 } ] , height : 30 } , { type : "bi.absolute" , items : [ { el : this . farbtastic , left : 15 , right : 15 , top : 7 } ] , height : 215 } ] } ) } , setValue : function ( a ) { this . editor . setValue ( a ) , this . farbtastic . setValue ( a ) } , getValue : function ( ) { return this . editor . getValue ( ) } } ) , BI . CustomColorChooser . EVENT _CHANGE = "CustomColorChooser.EVENT_CHANGE" , BI . shortcut ( "bi.custom_color_chooser" , BI . CustomColorChooser ) , BI . ColorChooser = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . ColorChooser . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-color-chooser" , value : "" } ) } , _init : function ( ) { BI . ColorChooser . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . combo = BI . createWidget ( { type : "bi.combo" , element : this , container : b . container , adjustLength : 1 , isNeedAdjustWidth : ! 1 , isNeedAdjustHeight : ! 1 , el : BI . extend ( { type : b . width <= 24 ? "bi.color_chooser_trigger" : "bi.long_color_chooser_trigger" , ref : function ( b ) { a . trigger = b } , width : b . width , height : b . height } , b . el ) , popup : { el : BI . extend ( { type : "bi.color_chooser_popup" , ref : function ( b ) { a . colorPicker = b } , listeners : [ { eventName : BI . ColorChooserPopup . EVENT _VALUE _CHANGE , action : function ( ) { c ( ) , a . _isRGBColor ( a . colorPicker . getValue ( ) ) || a . combo . hideView ( ) } } , { eventName : BI . ColorChooserPopup . EVENT _CHANGE , action : function ( ) { c ( ) , a . combo . hideView ( ) } } ] } , b . popup ) , stopPropagation : ! 0 , width : 230 } , value : b . value } ) ; var c = function ( ) { var b = a . colorPicker . getValue ( ) ; a . trigger . setValue ( b ) ; var c = BI . string2Array ( BI . Cache . getItem ( "colors" ) || "" ) , d = new BI . Queue ( 8 ) ; d . fromArray ( c ) , d . remove ( b ) , d . unshift ( b ) , BI . Cache . setItem ( "colors" , BI . array2String ( d . toArray ( ) ) ) } ; this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . colorPicker . setStoreColors ( BI . string2Array ( BI . Cache . getItem ( "colors" ) || "" ) ) } ) , this . combo . on ( BI . Combo . EVENT _AFTER _HIDEVIEW , function ( ) { a . fireEvent ( BI . ColorChooser . EVENT _CHANGE , arguments ) } ) } , _isRGBColor : function ( a ) { return BI . isNotEmptyString ( a ) && "transparent" !== a } , isViewVisible : function ( ) { return this . combo . isViewVisible ( ) } , hideView : function ( ) { this . combo . hideView ( ) } , showView : function ( ) { this . combo . showView ( ) } , setValue : function ( a ) { this . combo . setValue ( a ) } , getValue : function ( ) { return this . combo . getValue ( ) } } ) , BI . ColorChooser . EVENT _CHANGE = "ColorChooser.EVENT_CHANGE" , BI . shortcut ( "bi.color_chooser" , BI . ColorChooser ) , BI . ColorChooserPopup = BI . inherit ( BI . Widget , { props : { baseCls : "bi-color-chooser-popup" , width : 230 , height : 145 } , render : function ( ) { var a = this , b = this . options ; this . colorEditor = BI . createWidget ( b . editor , { type : "bi.color_picker_editor" , value : b . value , cls : "bi-header-background bi-border-bottom" , height : 30 } ) , this . colorEditor . on ( BI . ColorPickerEditor . EVENT _CHANGE , function ( ) { a . setValue ( this . getValue ( ) ) , a . fireEvent ( BI . ColorChooserPopup . EVENT _VALUE _CHANGE , arguments ) } ) , this . storeColors = BI . createWidget ( { type : "bi.color_picker" , cls : "bi-border-bottom bi-border-right" , items : [ [ { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } , { value : "" , disabled : ! 0 } ]
text : BI . i18nText ( "BI-Basic_Cancel" ) } , { value : ! 0 , text : BI . i18nText ( "BI-Basic_Sure" ) } ] } } , render : function ( ) { var a = this , b = this . options , c = BI . map ( b . buttons , function ( b , c ) { return BI . isWidget ( c ) ? c : BI . extend ( { type : "bi.button" , height : 24 , handler : function ( b ) { a . fireEvent ( BI . BubblePopupBarView . EVENT _CLICK _TOOLBAR _BUTTON , b ) } } , c ) } ) ; return { type : "bi.bubble_bar_popup_view" , ref : function ( ) { a . popup = this } , el : { type : "bi.label" , text : b . text , whiteSpace : "normal" , textAlign : "left" , ref : function ( ) { a . text = this } } , buttons : c } } , populate : function ( a ) { this . text . setText ( a || this . options . text ) } } ) , BI . TextBubblePopupBarView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_bubble_bar_popup_view" , BI . TextBubblePopupBarView ) , BI . EditorIconCheckCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . EditorIconCheckCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseClass : "bi-check-editor-combo" , width : 100 , height : 24 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 0 , watermark : "" , errorText : "" } ) } , _init : function ( ) { BI . EditorIconCheckCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.editor_trigger" , items : b . items , height : b . height , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText , value : b . value } ) , this . trigger . on ( BI . EditorTrigger . EVENT _CHANGE , function ( ) { a . popup . setValue ( this . getValue ( ) ) , a . fireEvent ( BI . EditorIconCheckCombo . EVENT _CHANGE ) } ) , this . popup = BI . createWidget ( { type : "bi.text_value_check_combo_popup" , chooseType : b . chooseType , items : b . items , value : b . value } ) , this . popup . on ( BI . TextValueCheckComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . editorIconCheckCombo . hideView ( ) , a . fireEvent ( BI . EditorIconCheckCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editorIconCheckCombo = BI . createWidget ( { type : "bi.combo" , container : b . container , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) } , setValue : function ( a ) { this . editorIconCheckCombo . setValue ( a ) } , getValue : function ( ) { return this . trigger . getValue ( ) } , populate : function ( a ) { this . options . items = a , this . editorIconCheckCombo . populate ( a ) } } ) , BI . EditorIconCheckCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.editor_icon_check_combo" , BI . EditorIconCheckCombo ) , BI . IconCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . IconCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-icon-combo" , width : 24 , height : 24 , el : { } , popup : { } , minWidth : 100 , maxWidth : "auto" , maxHeight : 300 , direction : "bottom" , adjustLength : 3 , adjustXOffset : 0 , adjustYOffset : 0 , offsetStyle : "left" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE } ) } , _init : function ( ) { BI . IconCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( b . el , { type : "bi.icon_combo_trigger" , iconCls : b . iconCls , title : b . title , items : b . items , width : b . width , height : b . height , iconWidth : b . iconWidth , iconHeight : b . iconHeight , value : b . value } ) , this . popup = BI . createWidget ( b . popup , { type : "bi.icon_combo_popup" , chooseType : b . chooseType , items : b . items , value : b . value } ) , this . popup . on ( BI . IconComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . iconCombo . hideView ( ) , a . fireEvent ( BI . IconCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . iconCombo = BI . createWidget ( { type : "bi.combo" , element : this , direction : b . direction , trigger : b . trigger , container : b . container , adjustLength : b . adjustLength , adjustXOffset : b . adjustXOffset , adjustYOffset : b . adjustYOffset , offsetStyle : b . offsetStyle , el : this . trigger , popup : { el : this . popup , maxWidth : b . maxWidth , maxHeight : b . maxHeight , minWidth : b . minWidth } } ) } , showView : function ( ) { this . iconCombo . showView ( ) } , hideView : function ( ) { this . iconCombo . hideView ( ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { var a = this . popup . getValue ( ) ; return BI . isNull ( a ) ? [ ] : BI . isArray ( a ) ? a : [ a ] } , populate : function ( a ) { this . options . items = a , this . icon
this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , value : b . value , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText } ) , this . text = BI . createWidget ( { type : "bi.text_button" , cls : "shelter-editor-text" , title : b . title , warningTitle : b . warningTitle , tipType : b . tipType , textAlign : b . textAlign , height : b . height , hgap : b . hgap } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . text , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) , this . text . on ( BI . Controller . EVENT _CHANGE , function ( ) { arguments [ 2 ] = a , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . text . on ( BI . TextButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _CLICK _LABEL ) } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _FOCUS , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _BLUR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _CLICK , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . ShelterEditor . EVENT _KEY _DOWN , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _VALID , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . _showHint ( ) , a . _checkText ( ) , a . fireEvent ( BI . ShelterEditor . EVENT _CONFIRM , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE _CONFIRM , function ( ) { a . _showHint ( ) , a . _checkText ( ) , a . fireEvent ( BI . ShelterEditor . EVENT _CHANGE _CONFIRM , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _START , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _PAUSE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _STOP , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _SPACE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . _checkText ( ) , a . fireEvent ( BI . ShelterEditor . EVENT _ERROR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _ENTER , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _RESTRICT , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . fireEvent ( BI . ShelterEditor . EVENT _EMPTY , arguments ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ this . editor ] } ) , this . _showHint ( ) , a . _checkText ( ) , this . text . doRedMark ( b . keyword ) } , _checkText : function ( ) { var a = this . options ; "" === this . editor . getValue ( ) ? ( this . text . setValue ( a . watermark || "" ) , this . text . element . addClass ( "bi-water-mark" ) ) : ( this . text . setValue ( this . editor . getValue ( ) ) , this . text . element . removeClass ( "bi-water-mark" ) ) } , _showInput : function ( ) { this . editor . visible ( ) , this . text . invisible ( ) } , _showHint : function ( ) { this . editor . invisible ( ) , this . text . visible ( ) } , setTitle : function ( a ) { this . text . setTitle ( a ) } , setWarningTitle : function ( a ) { this . text . setWarningTitle ( a ) } , focus : function ( ) { this . _showInput ( ) , this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) , this . _showHint ( ) , this . _checkText ( ) } , doRedMark : function ( ) { "" === this . editor . getValue ( ) && BI . isKey ( this . options . watermark ) || this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { "" === this . editor . getValue ( ) && BI . isKey ( this . options . watermark ) || this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , isValid : function ( ) { return this . editor . isValid ( ) } , setErrorText : function ( a ) { this . editor . setErrorText ( a ) } , getErrorText : function ( ) { return this . editor . getErrorText ( ) } , isEditing : function ( ) { return this . editor . isEditing ( ) } , getLastValidValue : function ( ) { return this . editor . getLastValidValue ( ) } , getLastChanged
a . allSelected = this . isSelected ( ) , b === BI . Events . CLICK && ( a . setAllSelected ( a . allSelected ) , a . fireEvent ( BI . SelectList . EVENT _CHANGE , c , d ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . list = BI . createWidget ( b . el , { type : "bi.list_pane" , items : b . items , itemsCreator : function ( c , d ) { 1 === c . times && a . toolbar . setVisible ( ! 1 ) , b . itemsCreator ( c , function ( b ) { d . apply ( a , arguments ) , 1 === c . times && ( a . toolbar . setVisible ( b && b . length > 0 ) , a . toolbar . setEnable ( b && b . length > 0 ) ) , a . _checkAllSelected ( ) } ) } , onLoaded : b . onLoaded , hasNext : b . hasNext } ) , this . list . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { b === BI . Events . CLICK && ( a . _checkAllSelected ( ) , a . fireEvent ( BI . SelectList . EVENT _CHANGE , c , d ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { scrolly : ! 0 } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , this . toolbar , this . list ) } ) ) ) ) , b . items . length <= 0 && ( this . toolbar . setVisible ( ! 1 ) , this . toolbar . setEnable ( ! 1 ) ) , BI . isNotNull ( b . value ) && this . setValue ( b . value ) } , _checkAllSelected : function ( ) { var a = this . list . getValue ( ) . length , b = this . getAllLeaves ( ) . length - a , c = this . list . hasNext ( ) , d = this . toolbar . isSelected ( ) , e = a > 0 && ( b > 0 || ! d && c ) ; e = e || b > 0 && c && d , this . toolbar . setHalfSelected ( e ) , ! e && this . toolbar . setSelected ( a > 0 && b <= 0 && ( ! c || d ) ) } , setAllSelected : function ( a ) { BI . each ( this . getAllButtons ( ) , function ( b , c ) { ( c . setSelected || c . setAllSelected ) . apply ( c , [ a ] ) } ) , this . allSelected = ! ! a , this . toolbar . setSelected ( a ) , this . toolbar . setHalfSelected ( ! 1 ) } , setToolBarVisible : function ( a ) { this . toolbar . setVisible ( a ) } , isAllSelected : function ( ) { return this . allSelected } , hasPrev : function ( ) { return this . list . hasPrev ( ) } , hasNext : function ( ) { return this . list . hasNext ( ) } , prependItems : function ( a ) { this . list . prependItems . apply ( this . list , arguments ) } , addItems : function ( a ) { this . list . addItems . apply ( this . list , arguments ) } , setValue : function ( a ) { var b = a . type === BI . ButtonGroup . CHOOSE _TYPE _ALL ; this . setAllSelected ( b ) , this . list [ b ? "setNotSelectedValue" : "setValue" ] ( a . value ) , this . _checkAllSelected ( ) } , getValue : function ( ) { return this . isAllSelected ( ) === ! 1 ? { type : BI . ButtonGroup . CHOOSE _TYPE _MULTI , value : this . list . getValue ( ) , assist : this . list . getNotSelectedValue ( ) } : { type : BI . ButtonGroup . CHOOSE _TYPE _ALL , value : this . list . getNotSelectedValue ( ) , assist : this . list . getValue ( ) } } , empty : function ( ) { this . list . empty ( ) } , populate : function ( a ) { this . toolbar . setVisible ( ! BI . isEmptyArray ( a ) ) , this . toolbar . setEnable ( ! BI . isEmptyArray ( a ) ) , this . list . populate . apply ( this . list , arguments ) , this . _checkAllSelected ( ) } , _setEnable : function ( a ) { BI . SelectList . superclass . _setEnable . apply ( this , arguments ) , this . toolbar . setEnable ( a ) } , resetHeight : function ( a ) { var b = ( this . toolbar . element . outerHeight ( ) || 25 ) * ( this . toolbar . isVisible ( ) ? 1 : 0 ) ; this . list . resetHeight ? this . list . resetHeight ( a - b ) : this . list . element . css ( { "max-height" : a - b + "px" } ) } , setNotSelectedValue : function ( ) { this . list . setNotSelectedValue . apply ( this . list , arguments ) , this . _checkAllSelected ( ) } , getNotSelectedValue : function ( ) { return this . list . getNotSelectedValue ( ) } , getAllButtons : function ( ) { return this . list . getAllButtons ( ) } , getAllLeaves : function ( ) { return this . list . getAllLeaves ( ) } , getSelectedButtons : function ( ) { return this . list . getSelectedButtons ( ) } , getNotSelectedButtons : function ( ) { return this . list . getNotSelectedButtons ( ) } , getIndexByValue : function ( a ) { return this . list . getIndexByValue ( a ) } , getNodeById : function ( a ) { return this . list . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . list . getNodeByValue ( a ) } } ) , BI . SelectList . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.select_list" , BI . SelectList ) , BI . LazyLoader = BI . inherit ( BI . Widget , { _const : { PAGE : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . LazyLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-lazy-loader" , el : { } } ) } , _init : function ( ) { var a = this , b = this . options ; BI . LazyLoader . superclass . _init . apply ( this , arguments ) ; var c = b . items . length ; this . loader = BI . createWidget ( { type : "bi.loader" , element : this , el : b . el , itemsCreator : function ( b , c ) { c ( a . _getNextItems ( b ) ) } , hasNext : function ( a ) { return a . count < c } } ) , this . loader . on ( BI . Loader . EVENT _CHANGE , function ( b ) { a . fireE
} } ) , BI . ListDisplayTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.list_display_tree" , BI . ListDisplayTree ) , BI . SimpleTreeView = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SimpleTreeView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-simple-tree" , itemsCreator : BI . emptyFn , items : null } ) } , _init : function ( ) { BI . SimpleTreeView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . structure = new BI . Tree , this . tree = BI . createWidget ( { type : "bi.tree_view" , element : this , itemsCreator : function ( c , d ) { var e = function ( b ) { d ( { items : b } ) , a . structure . initTree ( BI . Tree . transformToTreeFormat ( b ) ) } ; BI . isNotNull ( b . items ) ? e ( b . items ) : b . itemsCreator ( c , e ) } } ) , this . tree . on ( BI . TreeView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SimpleTreeView . EVENT _CHANGE , arguments ) } ) , BI . isNotEmptyArray ( b . items ) && this . populate ( ) , BI . isNotNull ( b . value ) && this . setValue ( b . value ) } , populate : function ( a , b ) { a && ( this . options . items = a ) , this . tree . stroke ( { keyword : b } ) } , _digest : function ( a ) { a || ( a = [ ] ) ; var b = this , c = { } , d = [ ] ; return BI . each ( a , function ( a , e ) { var f = b . structure . search ( e , "value" ) ; if ( f ) { var g = f ; for ( g = g . getParent ( ) , g && ( c [ g . value ] || ( c [ g . value ] = 0 ) , c [ g . value ] ++ ) ; g && g . getChildrenLength ( ) <= c [ g . value ] ; ) d . push ( g . value ) , g = g . getParent ( ) , g && ( c [ g . value ] || ( c [ g . value ] = 0 ) , c [ g . value ] ++ ) } } ) , BI . makeObject ( a . concat ( d ) ) } , setValue : function ( a ) { this . tree . setValue ( this . _digest ( a ) ) } , _getValue : function ( ) { var a = [ ] , b = this . tree . getValue ( ) , c = function ( b ) { BI . each ( b , function ( b , d ) { BI . isEmpty ( d ) ? a . push ( b ) : c ( d ) } ) } ; return c ( b ) , a } , empty : function ( ) { this . tree . empty ( ) } , getValue : function ( ) { var a = this , b = [ ] , c = this . _getValue ( ) ; return BI . each ( c , function ( c , d ) { var e = a . structure . search ( d , "value" ) ; e && a . structure . _traverse ( e , function ( a ) { a . isLeaf ( ) && b . push ( a . value ) } ) } ) , b } } ) , BI . SimpleTreeView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.simple_tree" , BI . SimpleTreeView ) , BI . EditorTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { var a = BI . EditorTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-editor-trigger bi-border" , height : 24 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 , watermark : "" , errorText : "" } ) } , _init : function ( ) { this . options . height -= 2 , BI . EditorTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _const ; this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , value : b . value , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText , title : function ( ) { return a . getValue ( ) } } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . EditorTrigger . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : { type : "bi.trigger_icon_button" , width : b . triggerWidth || b . height } , width : b . triggerWidth || b . height } ] } ) } , getValue : function ( ) { return this . editor . getValue ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) } , setText : function ( a ) { this . editor . setState ( a ) } } ) , BI . EditorTrigger . EVENT _CHANGE = "BI.EditorTrigger.EVENT_CHANGE" , BI . shortcut ( "bi.editor_trigger" , BI . EditorTrigger ) , BI . IconTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . IconTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-icon-trigger" , el : { } , height : 24 } ) } , _init : function ( ) { var a = this . options ; BI . IconTrigger . superclass . _init . apply ( this , arguments ) , this . iconButton = BI . createWidget ( a . el , { type : "bi.trigger_icon_button" , element : this , width : a . width , height : a . height } ) } } ) , BI . shortcut ( "bi.icon_trigger" , BI . IconTrigger ) , BI . IconTextTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { var a = BI . IconTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-trigger" , height : 24 , iconHeight : null , iconWidth : null } ) } , _init : function ( ) { BI . IconTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _const ; this . text = BI . createWidget ( { type : "bi.label" , cls : "select-text-label" , textAlign : "left" , height : b .
} , _printTime : function ( a ) { return a < 10 ? "0" + a : a } , setValue : function ( a ) { var b , c = a ; if ( BI . isNull ( c ) ) c = BI . getDate ( ) , b = BI . print ( c , "%Y-%X-%d %H:%M:%S" ) ; else { var d = BI . getDate ( c . year , c . month - 1 , c . day , c . hour , c . minute , c . second ) ; b = BI . print ( d , "%Y-%X-%d %H:%M:%S" ) } this . text . setText ( b ) , this . text . setTitle ( b ) } } ) , BI . shortcut ( "bi.date_time_trigger" , BI . DateTimeTrigger ) , BI . StaticDateTimePaneCard = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . StaticDateTimePaneCard . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-date-time-pane" , min : "1900-01-01" , max : "2099-12-31" , selectedTime : null } ) } , _init : function ( ) { BI . StaticDateTimePaneCard . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . today = BI . getDate ( ) , this . _year = this . today . getFullYear ( ) , this . _month = this . today . getMonth ( ) + 1 , this . selectedTime = b . selectedTime || { year : this . _year , month : this . _month } , this . datePicker = BI . createWidget ( { type : "bi.date_picker" , behaviors : b . behaviors , min : b . min , max : b . max } ) , this . datePicker . on ( BI . DatePicker . EVENT _CHANGE , function ( ) { var b = a . datePicker . getValue ( ) , c = BI . getMonthDays ( BI . getDate ( b . year , b . month - 1 , 1 ) ) , d = a . selectedTime . day || 0 ; d > c && ( d = c ) , a . selectedTime = BI . extend ( a . selectedTime , { year : b . year , month : b . month , day : d } ) , 0 !== d && ( a . selectedTime . day = d ) , a . calendar . setSelect ( BI . Calendar . getPageByDateJSON ( a . selectedTime ) ) , a . calendar . setValue ( a . selectedTime ) , 0 !== d && a . fireEvent ( BI . DateCalendarPopup . EVENT _CHANGE ) } ) , this . calendar = BI . createWidget ( { direction : "custom" , type : "bi.navigation" , tab : this . datePicker , cardCreator : BI . bind ( this . _createNav , this ) } ) , this . calendar . on ( BI . Navigation . EVENT _CHANGE , function ( ) { a . selectedTime = BI . extend ( a . calendar . getValue ( ) , a . timeSelect . getValue ( ) ) , a . calendar . empty ( ) , a . setValue ( a . selectedTime ) , a . fireEvent ( BI . DateCalendarPopup . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.vtape" , element : this , hgap : 10 , items : [ { el : this . datePicker , height : 40 } , this . calendar , { el : { type : "bi.dynamic_date_time_select" , cls : "bi-split-top" , ref : function ( ) { a . timeSelect = this } , listeners : [ { eventName : BI . DynamicDateTimeSelect . EVENT _CONFIRM , action : function ( ) { a . selectedTime = BI . extend ( a . calendar . getValue ( ) , a . timeSelect . getValue ( ) ) , a . fireEvent ( "EVENT_CHANGE" ) } } ] } , height : 40 } ] } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.layout" , cls : "bi-split-top" } , height : 1 , top : 40 , left : 0 , right : 0 } ] } ) , this . setValue ( b . selectedTime ) } , _createNav : function ( a ) { var b = BI . Calendar . getDateJSONByPage ( a ) , c = BI . createWidget ( { type : "bi.calendar" , logic : { dynamic : ! 1 } , min : this . options . min , max : this . options . max , year : b . year , month : b . month , day : this . selectedTime . day } ) ; return c } , _getNewCurrentDate : function ( ) { var a = BI . getDate ( ) ; return { year : a . getFullYear ( ) , month : a . getMonth ( ) + 1 } } , _setCalenderValue : function ( a ) { this . calendar . setSelect ( BI . Calendar . getPageByDateJSON ( a ) ) , this . calendar . setValue ( a ) , this . selectedTime = BI . extend ( { } , this . timeSelect . getValue ( ) , a ) } , _setDatePicker : function ( a ) { BI . isNull ( a ) || BI . isNull ( a . year ) || BI . isNull ( a . month ) ? this . datePicker . setValue ( this . _getNewCurrentDate ( ) ) : this . datePicker . setValue ( a ) } , _setCalendar : function ( a ) { BI . isNull ( a ) || BI . isNull ( a . day ) ? ( this . calendar . empty ( ) , this . _setCalenderValue ( this . _getNewCurrentDate ( ) ) ) : this . _setCalenderValue ( a ) } , setValue : function ( a ) { a = a || { } , this . _setDatePicker ( a ) , this . _setCalendar ( a ) , this . timeSelect . setValue ( { hour : a . hour , minute : a . minute , second : a . second } ) } , getValue : function ( ) { return this . selectedTime } } ) , BI . shortcut ( "bi.static_date_time_pane_card" , BI . StaticDateTimePaneCard ) , BI . DynamicDateTimePane = BI . inherit ( BI . Widget , { props : { baseCls : "bi-dynamic-date-pane" } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vtape" , items : [ { el : { type : "bi.linear_segment" , cls : "bi-split-bottom" , height : 30 , items : BI . createItems ( [ { text : BI . i18nText ( "BI-Multi_Date_YMD" ) , value : BI . DynamicDateTimePane . Static } , { text : BI . i18nText ( "BI-Basic_Dynamic_Title" ) , value : BI . DynamicDateTimePane . Dynamic } ] , { textAlign : "center" } ) , listeners : [ { eventName : BI . ButtonGroup . EVENT _CHANGE , action : function ( ) { var b = this . getValue ( ) [ 0 ] ; switch ( a . dateTab . setSelect ( b ) , b ) { case BI . DynamicDateTimePane . Static : var c = BI . DynamicDateHelper . getCalculation ( a . dynamicPane . getValue ( ) ) ; a . ymd . setValue ( { year : c . getFu
buttonHeight : 24 } , props : { baseCls : "bi-dynamic-date-popup" , width : 248 , height : 344 } , _init : function ( ) { BI . DynamicDatePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . constants ; this . storeValue = { type : BI . DynamicDateCombo . Static } , BI . createWidget ( { element : this , type : "bi.vtape" , items : [ { el : this . _getTabJson ( ) } , { el : { type : "bi.grid" , items : [ [ { type : "bi.text_button" , cls : "bi-high-light bi-split-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Clear" ) , textHeight : c . buttonHeight - 1 , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . BUTTON _CLEAR _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , cls : "bi-split-left bi-split-right bi-high-light bi-split-top" , shadow : ! 0 , textHeight : c . buttonHeight - 1 , text : BI . i18nText ( "BI-Multi_Date_Today" ) , ref : function ( ) { a . textButton = this } , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . BUTTON _lABEL _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , cls : "bi-high-light bi-split-top" , textHeight : c . buttonHeight - 1 , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . BUTTON _OK _EVENT _CHANGE ) } } ] } ] ] } , height : 24 } ] } ) , this . setValue ( b . value ) } , _getTabJson : function ( ) { var a = this , 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-Multi_Date_YMD" ) , value : BI . DynamicDateCombo . Static } , { text : BI . i18nText ( "BI-Basic_Dynamic_Title" ) , value : BI . DynamicDateCombo . Dynamic } ] , { textAlign : "center" } ) } , cardCreator : function ( c ) { switch ( c ) { case BI . DynamicDateCombo . Dynamic : return { type : "bi.dynamic_date_card" , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . _setInnerValue ( a . year , c ) } } ] , ref : function ( ) { a . dynamicPane = this } } ; case BI . DynamicDateCombo . Static : default : return { type : "bi.date_calendar_popup" , behaviors : b . behaviors , min : a . options . min , max : a . options . max , listeners : [ { eventName : BI . DateCalendarPopup . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . DynamicDatePopup . EVENT _CHANGE ) } } ] , ref : function ( ) { a . ymd = this } } } } , listeners : [ { eventName : BI . Tab . EVENT _CHANGE , action : function ( ) { var b = a . dateTab . getSelect ( ) ; switch ( b ) { case BI . DynamicDateCombo . Static : var c = BI . DynamicDateHelper . getCalculation ( a . dynamicPane . getValue ( ) ) ; a . ymd . setValue ( { year : c . getFullYear ( ) , month : c . getMonth ( ) + 1 , day : c . getDate ( ) } ) , a . _setInnerValue ( ) ; break ; case BI . DynamicDateCombo . Dynamic : default : a . storeValue && a . storeValue . type === BI . DynamicDateCombo . Dynamic ? a . dynamicPane . setValue ( a . storeValue . value ) : a . dynamicPane . setValue ( { year : 0 } ) , a . _setInnerValue ( ) } } } ] } } , _setInnerValue : function ( ) { if ( this . dateTab . getSelect ( ) === BI . DynamicDateCombo . Static ) this . textButton . setValue ( BI . i18nText ( "BI-Multi_Date_Today" ) ) , this . textButton . setEnable ( ! 0 ) ; else { var a = BI . DynamicDateHelper . getCalculation ( this . dynamicPane . getValue ( ) ) ; a = BI . print ( a , "%Y-%X-%d" ) , this . textButton . setValue ( a ) , this . textButton . setEnable ( ! 1 ) } } , _checkValueValid : function ( a ) { return BI . isNull ( a ) || BI . isEmptyObject ( a ) || BI . isEmptyString ( a ) } , setValue : function ( a ) { this . storeValue = a ; var b , c , d = this ; switch ( a = a || { } , b = a . type || BI . DynamicDateCombo . Static , c = a . value || a , this . dateTab . setSelect ( b ) , b ) { case BI . DynamicDateCombo . Dynamic : this . dynamicPane . setValue ( c ) , d . _setInnerValue ( ) ; break ; case BI . DynamicDateCombo . Static : default : if ( this . _checkValueValid ( c ) ) { var e = BI . getDate ( ) ; this . ymd . setValue ( { year : e . getFullYear ( ) , month : e . getMonth ( ) + 1 , day : e . getDate ( ) } ) , this . textButton . setValue ( BI . i18nText ( "BI-Multi_Date_Today" ) ) } else this . ymd . setValue ( c ) , this . textButton . setValue ( BI . i18nText ( "BI-Multi_Date_Today" ) ) ; this . textButton . setEnable ( ! 0 ) } } , getValue : function ( ) { return { type : this . dateTab . getSelect ( ) , value : this . dateTab . getValue ( ) } } } ) , BI . DynamicDatePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . DynamicDatePopup . BUTTON _OK _EVENT _CHANGE = "BUTTON_OK_EVENT_CHANGE" , BI . DynamicDatePopup . BUTTON _lABEL _EVENT _CHANGE = "BUTTON_lABEL_EVENT_CHANGE" , BI . DynamicDatePopup . BUTTON _CLEAR _EVENT _CHANGE = "BUTTON_CLEAR_EVENT_CHANGE" , BI . shortcut ( "bi.dynamic_date_popup" , BI . DynamicDatePopup ) , BI . DynamicDateTrigger = BI . inherit ( BI . Trigger , {
b ) { case BI . DynamicDateCombo . Dynamic : var e = this . _getText ( c ) ; d = BI . DynamicDateHelper . getCalculation ( c ) , this . _setInnerValue ( d , e ) ; break ; case BI . DynamicDateCombo . Static : default : if ( BI . isNull ( c ) || BI . isNull ( c . day ) ) this . editor . setState ( "" ) , this . editor . setValue ( "" ) ; else { var f = BI . print ( BI . getDate ( c . year , c . month - 1 , c . day , c . hour || 0 , c . minute || 0 , c . second || 0 ) , this . _getFormatString ( ) ) ; this . editor . setState ( f ) , this . editor . setValue ( f ) } } } , getKey : function ( ) { return this . editor . getValue ( ) } , getValue : function ( ) { return this . storeValue } , isValid : function ( ) { return this . editor . isValid ( ) } } ) , BI . DynamicDateTimeTrigger . EVENT _FOCUS = "EVENT_FOCUS" , BI . DynamicDateTimeTrigger . EVENT _START = "EVENT_START" , BI . DynamicDateTimeTrigger . EVENT _STOP = "EVENT_STOP" , BI . DynamicDateTimeTrigger . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DynamicDateTimeTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . DynamicDateTimeTrigger . EVENT _VALID = "EVENT_VALID" , BI . DynamicDateTimeTrigger . EVENT _ERROR = "EVENT_ERROR" , BI . DynamicDateTimeTrigger . EVENT _TRIGGER _CLICK = "EVENT_TRIGGER_CLICK" , BI . DynamicDateTimeTrigger . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . shortcut ( "bi.dynamic_date_time_trigger" , BI . DynamicDateTimeTrigger ) , BI . SearchEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . SearchEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-search-editor bi-border bi-focus-shadow" , height : 24 , errorText : "" , watermark : BI . i18nText ( "BI-Basic_Search" ) , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn } ) } , _init : function ( ) { this . options . height -= 2 , BI . SearchEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , watermark : b . watermark , allowBlank : ! 0 , hgap : 1 , errorText : b . errorText , validationChecker : b . validationChecker , quitChecker : b . quitChecker } ) , this . clear = BI . createWidget ( { type : "bi.icon_button" , stopEvent : ! 0 , cls : "close-font" } ) , this . clear . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . setValue ( "" ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . STOPEDIT ) , a . fireEvent ( BI . SearchEditor . EVENT _CHANGE ) , a . fireEvent ( BI . SearchEditor . EVENT _CLEAR ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : { type : "bi.icon_label" , cls : "search-font" } , width : 24 } , { el : a . editor } , { el : this . clear , width : 24 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _FOCUS ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _BLUR ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _CLICK ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . SearchEditor . EVENT _CHANGE ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . SearchEditor . EVENT _KEY _DOWN , b ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _SPACE ) } ) , this . editor . on ( BI . Editor . EVENT _BACKSPACE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _BACKSPACE ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _VALID ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _ERROR ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . SearchEditor . EVENT _EMPTY ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE _CONFIRM , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _CHANGE _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _START ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _PAUSE ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _STOP ) } ) , this . clear . invisible ( ) } , _checkClear : function ( ) { this . getValue ( ) ? t
} ] } , innerVGap : 5 } , c . el . childValues = [ ] , BI . each ( c . children , function ( a , d ) { d = d . el ? BI . extend ( d . el , { children : d . children } ) : d ; var e = BI . deepClone ( c . el . value ) , f = BI . deepClone ( d . value ) ; b . singleValues . push ( d . value ) , d . type = "bi.down_list_item" , d . extraCls = " child-down-list-item" , d . title = d . title || d . text , d . textRgap = 10 , d . isNeedAdjustWidth = ! 1 , d . logic = { dynamic : ! 0 } , d . father = e , b . fatherValueMap [ b . _createChildValue ( e , f ) ] = e , b . childValueMap [ b . _createChildValue ( e , f ) ] = f , d . value = b . _createChildValue ( e , f ) , c . el . childValues . push ( d . value ) , BI . isNotEmptyArray ( d . children ) && ( d . type = "bi.down_list_group_item" , b . _createChildren ( d ) , d . height = b . constants . height , d . iconCls2 = b . constants . nextIcon , c . el . childValues = BI . concat ( c . el . childValues , d . childValues ) ) } ) ) : ( c . type = "bi.down_list_item" , c . title = c . title || c . text , c . textRgap = 10 , c . isNeedAdjustWidth = ! 1 , c . logic = { dynamic : ! 0 } ) ; var d = { } ; d . el = c , f . items . push ( d ) } ) , b . _isGroup ( f . items ) && BI . each ( f . items , function ( a , c ) { b . singleValues . push ( c . el . value ) } ) , c . push ( f ) , b . _needSpliter ( d , a . length ) ) { var g = BI . createWidget ( { type : "bi.vertical" , items : [ { el : { type : "bi.layout" , cls : "bi-down-list-spliter bi-border-top cursor-pointer" , height : 0 } } ] , cls : "bi-down-list-spliter-container cursor-pointer" , vgap : 5 , lgap : 10 } ) ; c . push ( g ) } } ) , c } , _createChildren : function ( a ) { var b = this ; a . childValues = [ ] , BI . each ( a . children , function ( c , d ) { var e = BI . deepClone ( a . value ) , f = BI . deepClone ( d . value ) ; d . type = "bi.down_list_item" , d . title = d . title || d . text , d . textRgap = 10 , d . isNeedAdjustWidth = ! 1 , d . logic = { dynamic : ! 0 } , d . father = e , b . fatherValueMap [ b . _createChildValue ( e , f ) ] = e , b . childValueMap [ b . _createChildValue ( e , f ) ] = f , d . value = b . _createChildValue ( e , f ) , a . childValues . push ( d . value ) } ) } , _isGroup : function ( a ) { return a . length > 1 } , _needSpliter : function ( a , b ) { return a < b - 1 } , _createChildValue : function ( a , b ) { var c = a ; return BI . isArray ( a ) && ( c = a . join ( "_" ) ) , c + "_" + b } , _digest : function ( a ) { var b = this , c = [ ] ; return BI . each ( a , function ( a , d ) { var e ; e = BI . isNotNull ( d . childValue ) ? b . _createChildValue ( d . value , d . childValue ) : d . value , c . push ( e ) } ) , c } , _checkValues : function ( a ) { function b ( a , b ) { var c = "" ; return BI . some ( a , function ( a , d ) { return BI . some ( b , function ( a , b ) { if ( d === b ) return c = d , ! 0 } ) } ) , c } function c ( a ) { var b = [ ] ; return BI . isNotNull ( a . children ) ? BI . each ( a . children , function ( a , d ) { b = BI . concat ( b , c ( d ) ) } ) : b . push ( a . value ) , b } var d = this . options , e = [ ] ; return BI . each ( d . items , function ( d , f ) { BI . each ( f , function ( f , g ) { if ( BI . isNotNull ( g . children ) ) { var h = c ( g ) , i = b ( h , a [ d ] ) ; BI . isNotEmptyString ( i ) && e . push ( i ) } else g . value === a [ d ] [ 0 ] && e . push ( a [ d ] [ 0 ] ) } ) } ) , e } , populate : function ( a ) { BI . MultiLayerDownListPopup . superclass . populate . apply ( this , arguments ) ; var b = this ; b . childValueMap = { } , b . fatherValueMap = { } , b . singleValues = [ ] ; var c = b . _createPopupItems ( a ) , d = BI . createItems ( c , { } , { adjustLength : - 2 } ) ; b . popup . populate ( d ) } , setValue : function ( a ) { this . popup . setValue ( this . _digest ( a ) ) } , _getValue : function ( ) { var a = [ ] ; return BI . each ( this . popup . getAllButtons ( ) , function ( b , c ) { b % 2 === 0 && a . push ( c . getValue ( ) ) } ) , a } , getValue : function ( ) { var a = this , b = [ ] , c = this . _checkValues ( this . _getValue ( ) ) ; return BI . each ( c , function ( c , d ) { var e = { } ; if ( BI . isNotNull ( a . childValueMap [ d ] ) ) { var f = a . fatherValueMap [ d ] ; e . childValue = a . childValueMap [ d ] ; var g = ( f + "" ) . split ( "_" ) ; e . value = g . length > 1 ? g : f } else e . value = d ; b . push ( e ) } ) , b } } ) , BI . MultiLayerDownListPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiLayerDownListPopup . EVENT _SON _VALUE _CHANGE = "EVENT_SON_VALUE_CHANGE" , BI . shortcut ( "bi.multi_layer_down_list_popup" , BI . MultiLayerDownListPopup ) , BI . MultiLayerSelectTreeCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSelectTreeCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-select-tree-combo" , isDefaultInit : ! 1 , height : 24 , text : "" , itemsCreator : BI . emptyFn , items : [ ] , value : "" , attributes : { tabIndex : 0 } , allowEdit : ! 1 } ) } , render : function ( ) { var a = this , b = this . options , c = b . itemsCreator === BI . emptyFn ? this . _getSyncConfig ( ) : this . _getAsyncConfig ( ) ; return b . allowEdit || b . itemsCreator !== BI . emptyFn ? { type : "bi.absolute" , items : [ { el : c , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : { type : "bi.trigger_icon_button" , cls : "trigger-icon-button" , ref : function ( b ) { a . triggerBtn = b } , width : b . height , height : b . height , handler : function ( ) { a . combo . isViewVisible ( )
var a = this . options ; this . node = this . _createNode ( ) ; for ( var b = [ ] , c = a . pNode ; c ; ) c . isLastNode && b . push ( c . layer ) , c = c . pNode ; var d = [ ] ; BI . count ( 0 , a . layer , function ( c ) { d . push ( { type : "bi.layout" , cls : BI . contains ( b , c ) ? "" : "base-line-conn-background" , 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 . MultiLayerSingleTreeMidPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSingleTreeMidPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . node ) && this . node . setOpened ( a ) } , _createNode : function ( ) { var a = this , b = this . options ; return BI . createWidget ( { type : "bi.mid_plus_group_node" , cls : "bi-list-item-none" , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , open : b . open , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py , 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_mid_plus_group_node" , BI . MultiLayerSingleTreeMidPlusGroupNode ) , BI . MultiLayerSingleTreePlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSingleTreePlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-single-tree-plus-group-node bi-list-item" , layer : 0 , id : "" , pId : "" , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . MultiLayerSingleTreePlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . node = this . _createNode ( ) ; for ( var b = [ ] , c = a . pNode ; c ; ) c . isLastNode && b . push ( c . layer ) , c = c . pNode ; var d = [ ] ; BI . count ( 0 , a . layer , function ( c ) { d . push ( { type : "bi.layout" , cls : BI . contains ( b , c ) ? "" : "base-line-conn-background" , 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 . mak
popup : { } , adapter : b . adapter , masker : b . masker , value : b . value } ) , this . searcher . on ( BI . MultiSelectInsertSearcher . EVENT _START , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . EVENT _START ) } ) , this . searcher . on ( BI . MultiSelectInsertSearcher . EVENT _ADD _ITEM , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . EVENT _ADD _ITEM ) } ) , this . searcher . on ( BI . MultiSelectInsertSearcher . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . EVENT _PAUSE ) } ) , this . searcher . on ( BI . MultiSelectInsertSearcher . EVENT _SEARCHING , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . EVENT _SEARCHING , arguments ) } ) , this . searcher . on ( BI . MultiSelectInsertSearcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . EVENT _STOP ) } ) , this . searcher . on ( BI . MultiSelectInsertSearcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . 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 . MultiSelectInsertTrigger . EVENT _COUNTER _CLICK ) } ) , this . numberCounter . on ( BI . MultiSelectCheckSelectedSwitcher . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . MultiSelectInsertTrigger . 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 } ] } ) ; ! b . allowEdit && BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.layout" } , left : 0 , right : 24 , top : 0 , bottom : 0 } ] } ) , 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 ) } , 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 .
var b = this . options ; if ( a || ( a = { } ) , a . value || ( a . value = [ ] ) , a . type === BI . Selection . All ) if ( 0 === a . value . length ) this . editor . setState ( BI . Selection . All ) ; else if ( BI . size ( a . assist ) <= 20 ) { var c = "" ; BI . each ( a . assist , function ( a , d ) { c += 0 === a ? "" + ( b . valueFormatter ( d + "" ) || d ) : "," + ( b . valueFormatter ( d + "" ) || d ) } ) , this . editor . setState ( c ) } else this . editor . setState ( BI . Selection . Multi ) ; else if ( 0 === a . value . length ) this . editor . setState ( BI . Selection . None ) ; else if ( BI . size ( a . value ) <= 20 ) { var c = "" ; BI . each ( a . value , function ( a , d ) { c += 0 === a ? "" + ( b . valueFormatter ( d + "" ) || d ) : "," + ( b . valueFormatter ( d + "" ) || d ) } ) , this . editor . setState ( c ) } else this . editor . setState ( BI . Selection . Multi ) } , setValue : function ( a ) { this . setState ( a ) , this . searcher . setValue ( a ) } , getKey : function ( ) { return this . editor . getValue ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } , populate : function ( a ) { this . searcher . populate . apply ( this . searcher , arguments ) } } ) , BI . MultiSelectSearcher . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . MultiSelectSearcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiSelectSearcher . EVENT _START = "EVENT_START" , BI . MultiSelectSearcher . EVENT _STOP = "EVENT_STOP" , BI . MultiSelectSearcher . EVENT _PAUSE = "EVENT_PAUSE" , BI . MultiSelectSearcher . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . shortcut ( "bi.multi_select_searcher" , BI . MultiSelectSearcher ) , BI . MultiSelectCheckSelectedSwitcher = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectCheckSelectedSwitcher . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-check-selected-switcher" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , el : { } , popup : { } , adapter : null , masker : { } } ) } , _init : function ( ) { BI . MultiSelectCheckSelectedSwitcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . button = BI . createWidget ( b . el , { type : "bi.multi_select_check_selected_button" , itemsCreator : b . itemsCreator , value : b . value } ) , this . button . on ( BI . Events . VIEW , function ( ) { a . fireEvent ( BI . Events . VIEW , arguments ) } ) , 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 . item
} : i ( ) && ( b . storeValue = { value : b . combo . getValue ( ) } ) , b . trigger . setValue ( b . storeValue ) } BI . MultiTreeInsertCombo . superclass . _init . apply ( this , arguments ) ; var b = this , c = this . options , d = ! 1 , e = ! 1 ; this . storeValue = { value : c . value || { } } , this . trigger = BI . createWidget ( { type : "bi.multi_select_trigger" , allowEdit : c . allowEdit , height : c . height , valueFormatter : c . valueFormatter , masker : { offset : this . constants . offset } , searcher : { type : "bi.multi_tree_searcher" , text : c . text , itemsCreator : c . itemsCreator , popup : { type : "bi.multi_tree_search_insert_pane" , listeners : [ { eventName : BI . MultiTreeSearchInsertPane . EVENT _ADD _ITEM , action : function ( ) { b . storeValue . value [ b . trigger . getSearcher ( ) . getKeyword ( ) ] = { } , b . _assertShowValue ( ) , b . combo . setValue ( b . storeValue ) , b . trigger . stopEditing ( ) } } ] } } , switcher : { el : { type : "bi.multi_tree_check_selected_button" } , popup : { type : "bi.multi_tree_check_pane" , itemsCreator : c . itemsCreator } } , value : { value : c . value || { } } } ) , this . combo = BI . createWidget ( { type : "bi.combo" , toggle : ! 1 , container : c . container , el : this . trigger , adjustLength : 1 , popup : { type : "bi.multi_tree_popup_view" , ref : function ( ) { b . popup = this , b . trigger . setAdapter ( this ) } , listeners : [ { eventName : BI . MultiTreePopup . EVENT _AFTERINIT , action : function ( ) { b . trigger . getCounter ( ) . adjustView ( ) , d = ! 0 , e === ! 0 && a ( ) } } , { eventName : BI . MultiTreePopup . EVENT _CHANGE , action : function ( ) { f = ! 0 ; var a = { type : BI . Selection . Multi , value : this . hasChecked ( ) ? this . getValue ( ) : { } } ; b . trigger . getSearcher ( ) . setState ( a ) , b . trigger . getCounter ( ) . setButtonChecked ( a ) } } , { eventName : BI . MultiTreePopup . EVENT _CLICK _CONFIRM , action : function ( ) { b . combo . hideView ( ) } } , { eventName : BI . MultiTreePopup . EVENT _CLICK _CLEAR , action : function ( ) { g = ! 0 , b . setValue ( ) , b . _defaultState ( ) } } ] , itemsCreator : c . itemsCreator , onLoaded : function ( ) { BI . nextTick ( function ( ) { b . trigger . getCounter ( ) . adjustView ( ) , b . trigger . getSearcher ( ) . adjustView ( ) } ) } } , value : { value : c . value || { } } , hideChecker : function ( a ) { return 0 === j . element . find ( a . target ) . length } } ) ; var f = ! 1 , g = ! 1 , h = function ( ) { return b . trigger . getSearcher ( ) . isSearching ( ) } , i = function ( ) { return b . combo . isViewVisible ( ) } ; this . trigger . on ( BI . MultiSelectTrigger . EVENT _START , function ( ) { b . storeValue = { value : b . combo . getValue ( ) } , this . setValue ( b . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _STOP , function ( ) { b . storeValue = { value : this . getValue ( ) } , b . combo . setValue ( b . storeValue ) , BI . nextTick ( function ( ) { i ( ) && b . combo . populate ( ) } ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW , function ( ) { e === ! 1 && ( e = ! 0 ) , d === ! 0 && ( e = null , a ( ) ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _TRIGGER _CLICK , function ( ) { b . combo . toggle ( ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _COUNTER _CLICK , function ( ) { b . combo . isViewVisible ( ) || b . combo . showView ( ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _CHANGE , function ( ) { var a = this . getSearcher ( ) . hasChecked ( ) , b = { type : BI . Selection . Multi , value : a ? { 1 : 1 } : { } } ; this . getSearcher ( ) . setState ( a ? BI . Selection . Multi : BI . Selection . None ) , this . getCounter ( ) . setButtonChecked ( b ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { h ( ) || ( f === ! 0 && ( b . storeValue = { value : b . combo . getValue ( ) } , f = ! 1 ) , b . combo . setValue ( b . storeValue ) , b . populate ( ) ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _HIDEVIEW , function ( ) { h ( ) ? ( b . trigger . stopEditing ( ) , b . fireEvent ( BI . MultiTreeInsertCombo . EVENT _CONFIRM ) ) : i ( ) && ( b . trigger . stopEditing ( ) , b . storeValue = { value : b . combo . getValue ( ) } , g === ! 0 && ( b . storeValue = { value : { } } ) , b . fireEvent ( BI . MultiTreeInsertCombo . EVENT _CONFIRM ) ) , g = ! 1 , f = ! 1 } ) ; var j = BI . createWidget ( { type : "bi.trigger_icon_button" , width : c . height , height : c . height , cls : "multi-select-trigger-icon-button" } ) ; j . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { b . trigger . getCounter ( ) . hideView ( ) , b . combo . isViewVisible ( ) ? b . combo . hideView ( ) : b . combo . showView ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . combo , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : j , right : 0 , top : 0 , bottom : 0 } ] } ) } , _assertShowValue : function ( ) { this . trigger . getSearcher ( ) . setState ( this . storeValue ) , this . trigger . getCounter ( ) . setButtonChecked ( this . storeValue ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) , this . combo . hideView ( ) } , setValue : function ( a ) { this . storeValue . value = a || { } , this . combo . setValue ( { value : a || { } } ) } , getValue : function ( ) { return this
b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; default : b . fireEvent ( BI . NumberInterval . EVENT _CHANGE ) , b . fireEvent ( BI . NumberInterval . EVENT _CONFIRM ) , b . fireEvent ( BI . NumberInterval . EVENT _VALID ) } } ) } , isStateValid : function ( ) { return "valid" === this . options . validation } , setMinEnable : function ( a ) { this . smallEditor . setEnable ( a ) } , setCloseMinEnable : function ( a ) { this . smallCombo . setEnable ( a ) } , setMaxEnable : function ( a ) { this . bigEditor . setEnable ( a ) } , setCloseMaxEnable : function ( a ) { this . bigCombo . setEnable ( a ) } , showNumTip : function ( ) { this . smallTip . setVisible ( ! 0 ) , this . bigTip . setVisible ( ! 0 ) } , hideNumTip : function ( ) { this . smallTip . setVisible ( ! 1 ) , this . bigTip . setVisible ( ! 1 ) } , setNumTip : function ( a ) { this . smallTip . setText ( a ) , this . bigTip . setText ( a ) } , getNumTip : function ( ) { return this . smallTip . getText ( ) } , setValue : function ( a ) { a = a || { } ; var b , c = this ; ( BI . isNumeric ( a . min ) || BI . isEmptyString ( a . min ) ) && c . smallEditor . setValue ( a . min ) , BI . isNotNull ( a . min ) || c . smallEditor . setValue ( "" ) , ( BI . isNumeric ( a . max ) || BI . isEmptyString ( a . max ) ) && c . bigEditor . setValue ( a . max ) , BI . isNotNull ( a . max ) || c . bigEditor . setValue ( "" ) , BI . isNull ( a . closeMin ) || ( b = a . closeMin === ! 0 ? 1 : 0 , c . smallCombo . setValue ( b ) ) , BI . isNull ( a . closeMax ) || ( b = a . closeMax === ! 0 ? 1 : 0 , c . bigCombo . setValue ( b ) ) , this . _checkValidation ( ) } , getValue : function ( ) { var a = this , b = { } , c = a . smallCombo . getValue ( ) , d = a . bigCombo . getValue ( ) ; return b . min = a . smallEditor . getValue ( ) , b . max = a . bigEditor . getValue ( ) , 0 === c [ 0 ] ? b . closeMin = ! 1 : b . closeMin = ! 0 , 0 === d [ 0 ] ? b . closeMax = ! 1 : b . closeMax = ! 0 , b } , destroyed : function ( ) { var a = this . constants ; BI . Bubbles . remove ( a . typeError ) , BI . Bubbles . remove ( a . numberError ) , BI . Bubbles . remove ( a . signalError ) } } ) , BI . NumberInterval . EVENT _CHANGE = "EVENT_CHANGE" , BI . NumberInterval . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . NumberInterval . EVENT _VALID = "EVENT_VALID" , BI . NumberInterval . EVENT _ERROR = "EVENT_ERROR" , BI . shortcut ( "bi.number_interval" , BI . NumberInterval ) , BI . NumberIntervalSingleEidtor = BI . inherit ( BI . Single , { props : { baseCls : "bi-number-interval-single-editor" , tipType : "success" , title : "" } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vertical" , items : [ { type : "bi.editor" , ref : function ( b ) { a . editor = b } , height : b . height - 2 , watermark : b . watermark , allowBlank : b . allowBlank , value : b . value , level : b . level , quitChecker : b . quitChecker , validationChecker : b . validationChecker , listeners : [ { eventName : BI . Editor . EVENT _ERROR , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _ERROR , arguments ) } } , { eventName : BI . Editor . EVENT _FOCUS , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _FOCUS , arguments ) } } , { eventName : BI . Editor . EVENT _BLUR , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _BLUR , arguments ) } } , { eventName : BI . Editor . EVENT _VALID , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _VALID , arguments ) } } , { eventName : BI . Editor . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _CHANGE , arguments ) } } , { eventName : BI . Editor . EVENT _CONFIRM , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _CONFIRM , arguments ) } } , { eventName : BI . Editor . EVENT _CHANGE _CONFIRM , action : function ( ) { a . fireEvent ( BI . NumberIntervalSingleEidtor . EVENT _CHANGE _CONFIRM , arguments ) } } ] } ] } } , isValid : function ( ) { return this . editor . isValid ( ) } , getValue : function ( ) { return this . editor . getValue ( ) } , setTitle : function ( a ) { return this . editor . setTitle ( a ) } , setValue : function ( a ) { return this . editor . setValue ( a ) } } ) , BI . NumberIntervalSingleEidtor . EVENT _FOCUS = "EVENT_FOCUS" , BI . NumberIntervalSingleEidtor . EVENT _BLUR = "EVENT_BLUR" , BI . NumberIntervalSingleEidtor . EVENT _ERROR = "EVENT_ERROR" , BI . NumberIntervalSingleEidtor . EVENT _VALID = "EVENT_VALID" , BI . NumberIntervalSingleEidtor . EVENT _CHANGE = "EVENT_CHANGE" , BI . NumberIntervalSingleEidtor . EVENT _CHANGE _CONFIRM = "EVENT_CHANGE_CONFIRM" , BI . NumberIntervalSingleEidtor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.number_interval_single_editor" , BI . NumberIntervalSingleEidtor ) , BI . QuarterCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . QuarterCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-quarter-combo" , behaviors : { } , height : 25 } ) } , _init : function ( ) { BI . QuarterCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . op
width : 24 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , isOnce : function ( ) { return ! 0 } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . NodeButton . superclass . doClick . apply ( this , arguments ) } , setOpened : function ( a ) { BI . SelectTreeLastPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.select_tree_last_plus_group_node" , BI . SelectTreeLastPlusGroupNode ) , BI . SelectTreeMidPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . SelectTreeMidPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-select-tree-mid-plus-group-node bi-list-item-active" , logic : { dynamic : ! 1 } , id : "" , pId : "" , readonly : ! 0 , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . SelectTreeMidPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.mid_tree_node_checkbox" , stopPropagation : ! 0 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , keyword : b . keyword , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && ( this . isSelected ( ) ? a . triggerExpand ( ) : a . triggerCollapse ( ) ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 24 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , isOnce : function ( ) { return ! 0 } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . NodeButton . superclass . doClick . apply ( this , arguments ) } , setOpened : function ( a ) { BI . SelectTreeMidPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.select_tree_mid_plus_group_node" , BI . SelectTreeMidPlusGroupNode ) , BI . SelectTreePlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . SelectTreePlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-select-tree-plus-group-node bi-list-item-active" , logic : { dynamic : ! 1 } , id : "" , pId : "" , readonly : ! 0 , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . SelectTreePlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.tree_node_checkbox" , stopPropagation : ! 0 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , keyword : b . keyword , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && ( this . isSelected ( ) ? a . triggerExpand ( ) : a . triggerCollapse ( ) ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 24 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , isOnce : function ( ) { return ! 0 } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . NodeButton . superclass . doClick . apply ( this , arguments ) } , setOpened : function ( a ) { BI . SelectTreePlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.select_tree_plus_group_node" , BI . SelectTreePlusGroupNode ) , BI . SelectTreeCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SelectTreeCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-select-tree-combo" , height : 24 , text : "" , items : [ ] , value : "" , attributes : { tabIndex : 0 } } ) } , _init : function ( ) { BI . SelectTreeCombo . superclass . _init
BI . SingleSelectTrigger = BI . inherit ( BI . Trigger , { constants : { height : 14 , rgap : 4 , lgap : 4 } , _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-trigger bi-border" , allowNoSelect : ! 1 , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , searcher : { } , switcher : { } , adapter : null , masker : { } } ) } , _init : function ( ) { BI . SingleSelectTrigger . 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.single_select_searcher" , allowNoSelect : b . allowNoSelect , text : b . text , height : b . height , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , popup : { } , adapter : b . adapter , masker : b . masker , value : b . value } ) , this . searcher . on ( BI . SingleSelectSearcher . EVENT _START , function ( ) { a . fireEvent ( BI . SingleSelectTrigger . EVENT _START ) } ) , this . searcher . on ( BI . SingleSelectSearcher . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SingleSelectTrigger . EVENT _PAUSE ) } ) , this . searcher . on ( BI . SingleSelectSearcher . EVENT _SEARCHING , function ( ) { a . fireEvent ( BI . SingleSelectTrigger . EVENT _SEARCHING , arguments ) } ) , this . searcher . on ( BI . SingleSelectSearcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . SingleSelectTrigger . EVENT _STOP ) } ) , this . searcher . on ( BI . SingleSelectSearcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectTrigger . EVENT _CHANGE , arguments ) } ) ; BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . searcher , width : "fill" } , { el : BI . createWidget ( ) , width : 24 } ] } ) } , getSearcher : function ( ) { return this . searcher } , stopEditing : function ( ) { this . searcher . stopSearch ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) } , setValue : function ( a ) { this . searcher . setValue ( a ) } , getKey : function ( ) { return this . searcher . getKey ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } } ) , BI . SingleSelectTrigger . EVENT _TRIGGER _CLICK = "EVENT_TRIGGER_CLICK" , BI . SingleSelectTrigger . EVENT _COUNTER _CLICK = "EVENT_COUNTER_CLICK" , BI . SingleSelectTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . SingleSelectTrigger . EVENT _START = "EVENT_START" , BI . SingleSelectTrigger . EVENT _STOP = "EVENT_STOP" , BI . SingleSelectTrigger . EVENT _PAUSE = "EVENT_PAUSE" , BI . SingleSelectTrigger . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . SingleSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW = "EVENT_BEFORE_COUNTER_POPUPVIEW" , BI . shortcut ( "bi.single_select_trigger" , BI . SingleSelectTrigger ) , BI . SingleSelectInsertList = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectInsertList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-insert-list" , allowNoSelect : ! 1 , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectInsertList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = b . value ; var c = function ( ) { BI . isKey ( a . _startValue ) && ( a . storeValue = a . _startValue ) } ; this . adapter = BI . createWidget ( { type : "bi.single_select_loader" , allowNoSelect : b . allowNoSelect , cls : "popup-single-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 . SingleSelectLoader . EVENT _CHANGE , function ( ) { a . storeValue = this . getValue ( ) , c ( ) , a . fireEvent ( BI . SingleSelectInsertList . EVENT _CHANGE ) } ) , this . searcherPane = BI . createWidget ( { type : "bi.single_select_search_pane" , allowNoSelect : b . allowNoSelect , 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 ) } } ) , 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 , value : b . value , 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 . Searc
text : a . text , items : a . items , height : a . height , value : a . value } ) } , _checkTitle : function ( ) { var a = this , b = this . getValue ( ) ; BI . any ( this . options . items , function ( c , d ) { if ( BI . contains ( b , d . value ) ) return a . trigger . setTitle ( d . text || d . value ) , ! 0 } ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . options . value = a , this . trigger . setValue ( a ) , this . _checkTitle ( ) } , getValue : function ( ) { return this . options . value || [ ] } , populate : function ( a ) { BI . SingleTreeTrigger . superclass . populate . apply ( this , arguments ) , this . trigger . populate ( a ) } } ) , BI . shortcut ( "bi.single_tree_trigger" , BI . SingleTreeTrigger ) , ! function ( ) { BI . TimePopup = BI . inherit ( BI . Widget , { props : { baseCls : "bi-date-time-popup" , height : 68 } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vtape" , items : [ { el : { type : "bi.center_adapt" , cls : "bi-split-top" , items : [ { type : "bi.dynamic_date_time_select" , value : b . value , ref : function ( b ) { a . timeSelect = b } } ] } , hgap : 10 , height : 44 } , { el : { type : "bi.grid" , items : [ [ { type : "bi.text_button" , cls : "bi-high-light bi-split-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Clears" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . TimePopup . BUTTON _CLEAR _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , cls : "bi-split-left bi-split-right bi-high-light bi-split-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_Now" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . TimePopup . BUTTON _NOW _EVENT _CHANGE ) } } ] } , { type : "bi.text_button" , cls : "bi-high-light bi-split-top" , shadow : ! 0 , text : BI . i18nText ( "BI-Basic_OK" ) , listeners : [ { eventName : BI . TextButton . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . TimePopup . BUTTON _OK _EVENT _CHANGE ) } } ] } ] ] } , height : 24 } ] } } , setValue : function ( a ) { this . _checkValueValid ( a ) ? this . timeSelect . setValue ( ) : this . timeSelect . setValue ( { hour : a . hour , minute : a . minute , second : a . second } ) } , getValue : function ( ) { return this . timeSelect . getValue ( ) } , _checkValueValid : function ( a ) { return BI . isNull ( a ) || BI . isEmptyObject ( a ) || BI . isEmptyString ( a ) } } ) , BI . TimePopup . BUTTON _OK _EVENT _CHANGE = "BUTTON_OK_EVENT_CHANGE" , BI . TimePopup . BUTTON _CLEAR _EVENT _CHANGE = "BUTTON_CLEAR_EVENT_CHANGE" , BI . TimePopup . BUTTON _NOW _EVENT _CHANGE = "BUTTON_NOW_EVENT_CHANGE" , BI . TimePopup . CALENDAR _EVENT _CHANGE = "CALENDAR_EVENT_CHANGE" , BI . shortcut ( "bi.time_popup" , BI . TimePopup ) } ( ) , ! function ( ) { BI . TimeCombo = BI . inherit ( BI . Single , { constants : { popupHeight : 80 , popupWidth : 240 , comboAdjustHeight : 1 , border : 1 } , props : { baseCls : "bi-time-combo bi-border bi-border-radius" , width : 78 , height : 22 , format : "" , allowEdit : ! 1 } , render : function ( ) { var a = this , b = this . options ; this . storeTriggerValue = "" , this . storeValue = b . value ; var c = { type : "bi.time_popup" , value : b . value , listeners : [ { eventName : BI . TimePopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . hidePopupView ( ) , a . fireEvent ( BI . TimeCombo . EVENT _CONFIRM ) } } , { eventName : BI . TimePopup . BUTTON _OK _EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . hidePopupView ( ) , a . fireEvent ( BI . TimeCombo . EVENT _CONFIRM ) } } , { eventName : BI . TimePopup . BUTTON _NOW _EVENT _CHANGE , action : function ( ) { a . _setNowTime ( ) } } ] , ref : function ( b ) { a . popup = b } } ; return { type : "bi.htape" , items : [ { type : "bi.absolute" , items : [ { el : { type : "bi.combo" , container : b . container , toggle : ! 1 , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : { type : "bi.time_trigger" , allowEdit : b . allowEdit , watermark : b . watermark , format : b . format , value : b . value , ref : function ( b ) { a . trigger = b } , listeners : [ { eventName : "EVENT_KEY_DOWN" , action : function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } } , { eventName : "EVENT_STOP" , action : function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } } , { eventName : "EVENT_FOCUS" , action : function ( ) { a . storeTriggerValue = a . trigger . getKey ( ) , a . combo . isViewVisible ( ) || a . combo . showView ( ) , a . fireEvent ( "EVENT_FOCUS" ) } } , { eventName : "EVENT_ERROR" , action : function ( ) { var b = BI . getDate ( ) ; a . storeValue = { hour : b . getHours ( ) , minute : b . getMinutes ( ) , second : b . getSeconds ( ) } , a . fireEvent ( "EVENT_ERROR" ) } } , { eventName : "EVENT_VALID" , action : function ( ) { a . fireEvent ( "EVENT_VALID" ) } } , { eventName : "EVENT_CHANGE" , action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } , { eventName : "EVENT_CONFIRM" , action : function ( ) { if ( ! a . combo . isViewVisible ( ) ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI . isNotEmptyString ( c ) && ! BI . isEqual ( c , b ) ? ( a . s
props : { baseCls : "bi-year-month-card" } , render : function ( ) { var a = this ; return { type : "bi.vertical" , items : [ { type : "bi.label" , text : BI . i18nText ( "BI-Multi_Date_Relative_Current_Time" ) , textAlign : "left" , height : 24 } , { type : "bi.dynamic_date_param_item" , ref : function ( ) { a . year = this } , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } ] } , { type : "bi.dynamic_date_param_item" , dateType : BI . DynamicDateCard . TYPE . MONTH , ref : function ( ) { a . month = this } , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } ] } ] , vgap : 10 , hgap : 10 } } , _createValue : function ( a , b ) { return { dateType : a , value : Math . abs ( b ) , offset : b > 0 ? 1 : 0 } } , setValue : function ( a ) { a = a || { year : 0 , month : 0 } , this . year . setValue ( this . _createValue ( BI . DynamicDateCard . TYPE . YEAR , a . year ) ) , this . month . setValue ( this . _createValue ( BI . DynamicDateCard . TYPE . MONTH , a . month ) ) } , getValue : function ( ) { var a = this . year . getValue ( ) , b = this . month . getValue ( ) ; return { year : 0 === a . offset ? - a . value : a . value , month : 0 === b . offset ? - b . value : b . value } } } ) , BI . DynamicYearMonthCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.dynamic_year_month_card" , BI . DynamicYearMonthCard ) , BI . StaticYearMonthCard = BI . inherit ( BI . Widget , { props : { baseCls : "bi-static-year-month-card" , behaviors : { } } , _createMonths : function ( ) { var a = [ 1 , 7 , 2 , 8 , 3 , 9 , 4 , 10 , 5 , 11 , 6 , 12 ] , b = [ ] ; return b . push ( a . slice ( 0 , 2 ) ) , b . push ( a . slice ( 2 , 4 ) ) , b . push ( a . slice ( 4 , 6 ) ) , b . push ( a . slice ( 6 , 8 ) ) , b . push ( a . slice ( 8 , 10 ) ) , b . push ( a . slice ( 10 , 12 ) ) , BI . map ( b , function ( a , b ) { return BI . map ( b , function ( a , b ) { return { type : "bi.text_item" , cls : "bi-list-item-select" , textAlign : "center" , whiteSpace : "nowrap" , once : ! 1 , forceSelected : ! 0 , height : 23 , width : 38 , value : b , text : b } } ) } ) } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vertical" , items : [ { type : "bi.year_picker" , ref : function ( ) { a . yearPicker = this } , behaviors : b . behaviors , height : 30 , listeners : [ { eventName : BI . YearPicker . EVENT _CHANGE , action : function ( ) { var b = this . getValue ( ) ; a . setValue ( { year : b , month : a . selectedMonth } ) } } ] } , { type : "bi.button_group" , cls : "bi-split-top" , behaviors : b . behaviors , ref : function ( ) { a . month = this } , items : this . _createMonths ( ) , layouts : [ BI . LogicFactory . createLogic ( "table" , BI . extend ( { dynamic : ! 0 } , { columns : 2 , rows : 6 , columnSize : [ . 5 , . 5 ] , rowSize : 25 } ) ) , { type : "bi.center_adapt" , vgap : 1 , hgap : 2 } ] , value : b . value , listeners : [ { eventName : BI . ButtonGroup . EVENT _CHANGE , action : function ( ) { a . selectedYear = a . yearPicker . getValue ( ) , a . selectedMonth = this . getValue ( ) [ 0 ] , a . fireEvent ( BI . StaticYearMonthCard . EVENT _CHANGE ) } } ] } ] } } , getValue : function ( ) { return { year : this . selectedYear , month : this . selectedMonth } } , setValue : function ( a ) { var b = this . options , c = { } ; if ( c . year = a . year || 0 , c . month = a . month || 0 , 0 === c . year || 0 === c . month || BI . checkDateVoid ( c . year , c . month , 1 , b . min , b . max ) [ 0 ] ) { var d = c . year || BI . getDate ( ) . getFullYear ( ) ; this . selectedYear = d , this . selectedMonth = "" , this . yearPicker . setValue ( d ) , this . month . setValue ( ) } else this . selectedYear = BI . parseInt ( c . year ) , this . selectedMonth = BI . parseInt ( c . month ) , this . yearPicker . setValue ( this . selectedYear ) , this . month . setValue ( this . selectedMonth ) } } ) , BI . StaticYearMonthCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.static_year_month_card" , BI . StaticYearMonthCard ) , BI . DynamicYearMonthCombo = BI . inherit ( BI . Single , { props : { baseCls : "bi-year-month-combo bi-border bi-focus-shadow" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , height : 22 } , _init : function ( ) { BI . DynamicYearMonthCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = b . value , this . storeTriggerValue = "" , this . trigger = BI . createWidget ( { type : "bi.dynamic_year_month_trigger" , min : b . min , max : b . max , height : b . height , value : b . value || "" } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _KEY _DOWN , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _START , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _STOP , function ( ) { a . combo . showView ( ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _ERROR , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _ERROR ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _VALID , function ( ) { a . fireEvent ( BI . DynamicYearMonthCombo .
} ) ; return e . on ( BI . SignEditor . EVENT _KEY _DOWN , function ( ) { b . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _KEY _DOWN ) } ) , e . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { b . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _FOCUS ) } ) , e . on ( BI . SignEditor . EVENT _STOP , function ( ) { b . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _STOP ) } ) , e . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { b . _doEditorConfirm ( e ) , b . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _CONFIRM ) } ) , e . on ( BI . SignEditor . EVENT _SPACE , function ( ) { e . isValid ( ) && e . blur ( ) } ) , e . on ( BI . SignEditor . EVENT _START , function ( ) { b . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _START ) } ) , e . on ( BI . SignEditor . EVENT _ERROR , function ( ) { b . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _ERROR ) } ) , e . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a && b . _autoSwitch ( e ) } ) , e } , _doEditorConfirm : function ( a ) { var b = a . getValue ( ) ; BI . isNotNull ( b ) && a . setValue ( b ) ; var c = this . quarterEditor . getValue ( ) ; this . storeValue = { type : BI . DynamicYearQuarterCombo . Static , value : { year : this . yearEditor . getValue ( ) , quarter : BI . isEmptyString ( this . quarterEditor . getValue ( ) ) ? "" : c } } , this . setTitle ( this . _getStaticTitle ( this . storeValue . value ) ) } , _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 } , _autoSwitch : function ( a ) { var b = a . getValue ( ) ; BI . isNotEmptyString ( b ) && BI . checkDateLegal ( b ) && 4 === b . length && this . _yearCheck ( b ) && ( this . _doEditorConfirm ( a ) , this . fireEvent ( BI . DynamicYearQuarterTrigger . EVENT _CONFIRM ) , this . quarterEditor . focus ( ) ) } , _getStaticTitle : function ( a ) { a = a || { } ; var b = ! ( BI . isNull ( a . year ) || BI . isEmptyString ( a . year ) ) , c = ! ( BI . isNull ( a . quarter ) || BI . isEmptyString ( a . quarter ) ) ; switch ( b << 1 | c ) { case 0 : return "" ; case 1 : return a . quarter ; case 2 : return a . year ; case 3 : default : return a . year + "-" + a . quarter } } , _getText : function ( a ) { var b = "" ; return BI . isNotNull ( a . year ) && 0 !== BI . parseInt ( a . year ) && ( b += Math . abs ( a . year ) + BI . i18nText ( "BI-Basic_Year" ) + ( a . year < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , BI . isNotNull ( a . quarter ) && 0 !== BI . parseInt ( a . quarter ) && ( b += Math . abs ( a . quarter ) + BI . i18nText ( "BI-Basic_Single_Quarter" ) + ( a . quarter < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , b } , _setInnerValue : function ( a , b ) { var c = BI . print ( a , "%Y-%Q" ) ; this . yearEditor . setValue ( a . getFullYear ( ) ) , this . quarterEditor . setValue ( BI . getQuarter ( a ) ) , this . setTitle ( BI . isEmptyString ( b ) ? c : b + ":" + c ) } , setValue : function ( a ) { var b , c , d = BI . getDate ( ) ; switch ( this . storeValue = a , BI . isNotNull ( a ) && ( b = a . type || BI . DynamicYearQuarterCombo . Static , c = a . value || a ) , b ) { case BI . DynamicYearQuarterCombo . Dynamic : var e = this . _getText ( c ) ; d = BI . DynamicDateHelper . getCalculation ( c ) , this . _setInnerValue ( d , e ) ; break ; case BI . DynamicYearQuarterCombo . Static : default : c = c || { } ; var f = BI . isNull ( c . quarter ) ? null : c . quarter ; this . yearEditor . setValue ( c . year ) , this . yearEditor . setTitle ( c . year ) , this . quarterEditor . setValue ( f ) , this . quarterEditor . setTitle ( f ) , this . setTitle ( this . _getStaticTitle ( c ) ) } } , getValue : function ( ) { return this . storeValue } , getKey : function ( ) { return this . yearEditor . getValue ( ) + "-" + this . quarterEditor . getValue ( ) } } ) , BI . DynamicYearQuarterTrigger . EVENT _FOCUS = "EVENT_FOCUS" , BI . DynamicYearQuarterTrigger . EVENT _ERROR = "EVENT_ERROR" , BI . DynamicYearQuarterTrigger . EVENT _START = "EVENT_START" , BI . DynamicYearQuarterTrigger . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DynamicYearQuarterTrigger . EVENT _STOP = "EVENT_STOP" , BI . DynamicYearQuarterTrigger . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . shortcut ( "bi.dynamic_year_quarter_trigger" , BI . DynamicYearQuarterTrigger ) , BI . AbstractAllValueChooser = BI . inherit ( BI . Widget , { _const : { perPage : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AbstractAllValueChooser . superclass . _defaultConfig . apply ( this , arguments ) , { width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _valueFormatter : function ( a ) { var b = a ; return BI . isNotNull ( this . items ) && BI . some ( this . items , function ( c , d ) { if ( d . value === a || d . value + "" === a ) return b = d . text , ! 0 } ) , b } , _itemsCreator : function ( a , b ) { function c ( c ) { var d = ( a . keywords || [ ] ) . slice ( ) ; if ( a . keyword && d . push ( a . keyword ) , BI . each ( d , function ( a , b ) { var d = BI . Func . getSearchResult ( c , b ) ; c = d . match . concat ( d . find ) } ) , a . selectedValues ) { var e = BI . makeO
! 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 } , route : function ( a , b ) { this . handlers . unshift ( { route : a , callback : b } ) } , checkUrl : function ( a ) { var b = this . getFragment ( ) ; return b === this . fragment && this . iframe && ( b = this . getHash ( this . iframe ) ) , b !== this . fragment && ( this . iframe && this . navigate ( b ) , void this . loadUrl ( ) ) } , loadUrl : function ( a ) { return a = this . fragment = this . getFragment ( a ) , _ . some ( this . handlers , function ( b ) { if ( b . route . test ( a ) ) return b . callback ( a ) , ! 0 } ) } , navigate : function ( a , b ) { if ( ! j . started ) return ! 1 ; b && b !== ! 0 || ( b = { trigger : ! ! b } ) , a = this . getFragment ( a || "" ) ; var c = this . root ; "" !== a && "?" !== a . charAt ( 0 ) || ( c = c . slice ( 0 , - 1 ) || "/" ) ; var d = c + a ; if ( a = decodeURI ( a . replace ( m , "" ) ) , this . fragment !== a ) { if ( this . fragment = a , this . _hasPushState ) this . history [ b . replace ? "replaceState" : "pushState" ] ( { } , document . title , d ) ; else { if ( ! this . _wantsHashChange ) return this . location . assign ( d ) ; this . _updateHash ( this . location , a , b . replace ) , this . iframe && a !== this . getHash ( this . iframe ) && ( b . replace || this . iframe . document . open ( ) . close ( ) , this . _updateHash ( this . iframe . location , a , b . replace ) ) } return b . trigger ? this . loadUrl ( a ) : void 0 } } , _updateHash : function ( a , b , c ) { if ( c ) { var d = a . href . replace ( /(javascript:|#).*$/ , "" ) ; a . replace ( d + "#" + b ) } else a . hash = "#" + b } } ) , BI . history = new j } ( ) , function ( ) { function a ( a , c ) { a . _watchers || ( a . _watchers = [ ] ) ; for ( var d in c ) { var e = c [ d ] ; if ( BI . isArray ( e ) ) for ( var f = 0 ; f < e . length ; f ++ ) a . _watchers . push ( b ( a , d , e [ f ] ) ) ; else a . _watchers . push ( b ( a , d , e ) ) } } function b ( a , b , c ) { return Fix . watch ( a . store , b , _ . bind ( c , a ) , { store : a . store } ) } function c ( a ) { i && j . push ( i ) , Fix . Model . target = i = a } function d ( ) { Fix . Model . target = i = j . pop ( ) } function e ( a ) { k && l . push ( k ) , Fix . Model . context = k = a } function f ( ) { Fix . Model . context = k = l . pop ( ) } function g ( a ) { if ( null != i ) return i ; a = a || k ; for ( var b = a ; b && ! ( b instanceof Fix . Model || b . store || b . _ _cacheStore ) ; ) b = b . _parent || b . options && b . options . element ; return b ? b instanceof Fix . Model ? a . _ _cacheStore = b : ( a . _ _cacheStore = b . store || b . _ _cacheStore , b . _ _cacheStore || b . store ) : void 0 } function h ( ) { var a = ! 1 ; if ( _global . Fix && this . _store ) { var b = g ( this . options . context || this . options . element ) ; b && ( c ( b ) , a = ! 0 ) , this . store = this . _store ( ) , this . store && ( this . store . _widget = this ) , a && d ( ) , a = ! 1 , c ( this . store ) , this . store instanceof Fix . Model ? this . model = this . store . model : this . model = this . store , a = ! 0 } return a } var i = null , j = [ ] , k = null , l = [ ] , m = Fix . watch ; Fix . watch = function ( a , b , e , f ) { return BI . isPlainObject ( e ) && ( f = e , e = e . handler ) , "string" == typeof e && ( e = a [ e ] ) , m . call ( this , a , b , function ( ) { f && f . store && c ( f . store ) ; var a = e . apply ( this , arguments ) ; return f && f . store && d ( ) , a } , f ) } ; var n = BI . createWidget ; BI . createWidget = function ( a , b , c ) { var d = ! 1 ; BI . isWidget ( b ) ? ( e ( b ) , d = ! 0 ) : null != c && ( e ( c ) , d = ! 0 ) ; var g = n . apply ( this , arguments ) ; return d && f ( ) , g } , _ . each ( [ "populate" , "addItems" , "prependItems" ] , function ( a ) { var b = BI . Loader . prototype [ a ] ; BI . Loader . prototype [ a ] = function ( ) { e ( this ) ; var a = b . apply ( this , arguments ) ; return f ( ) , a } } ) , BI . Widget . prototype . _init = function ( ) { BI . Widget . superclass . _init . apply ( this , arguments ) , this . _initRoot ( ) , this . _initElementWidth ( ) , this . _initElementHeight ( ) , this . _initVisual ( ) , this . _initState ( ) , this . beforeInit ? ( this . _ _asking = ! 0 , this . beforeInit ( BI . bind ( function ( ) { this . model && this . model . $vm && this . model . $vm . $digest ( ) , this . _render ( ) } , this ) ) , this . _ _asking === ! 0 && ( this . _ _async = ! 0 ) ) : this . _render ( ) } ; var o = BI . Widget . prototype . _init ; BI . Widget . prototype . _init = function ( ) { var a = h . call ( this ) ; o . apply ( this , arguments ) , a && d ( ) } ; var p = BI . Widget . prototype . _render ; BI . Widget . prototype . _render = function ( ) { var b = ! 1 ; _global . Fix && this . _store && ( b = ! 0 , c ( this . store ) , a ( this , this . watch ) ) , p . apply ( this , arguments ) , b && d ( ) } ; var q = BI . Widget . prototype . _ _d ; BI . Widget . prototype . _ _d = function ( ) { q . apply ( this , arguments ) , this . store && BI . isFunction ( this . store . destroy ) && this . store . destroy ( ) , BI . each ( this . _watchers , function ( a , b ) { b = B