/*! fineui 2018-09-09 23:17:46 */
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 = [ ] ) , function ( ) { function a ( a , b , c ) { switch ( c . length ) { case 0 : return a . call ( b ) ; case 1 : return a . call ( b , c [ 0 ] ) ; case 2 : return a . call ( b , c [ 0 ] , c [ 1 ] ) ; case 3 : return a . call ( b , c [ 0 ] , c [ 1 ] , c [ 2 ] ) } return a . apply ( b , c ) } function b ( a , b , c , d ) { for ( var e = - 1 , f = null == a ? 0 : a . length ; ++ e < f ; ) { var g = a [ e ] ; b ( d , g , c ( g ) , a ) } return d } function c ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d && b ( a [ c ] , c , a ) !== ! 1 ; ) ; return a } function d ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d ; ) if ( ! b ( a [ c ] , c , a ) ) return ! 1 ; return ! 0 } function e ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; b ( g , c , a ) && ( f [ e ++ ] = g ) } return f } function f ( a , b ) { var c = null == a ? 0 : a . length ; return ! ! c && o ( a , b , 0 ) > - 1 } function g ( a , b , c ) { for ( var d = - 1 , e = null == a ? 0 : a . length ; ++ d < e ; ) if ( c ( b , a [ d ] ) ) return ! 0 ; return ! 1 } function h ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length , e = Array ( d ) ; ++ c < d ; ) e [ c ] = b ( a [ c ] , c , a ) ; return e } function i ( a , b ) { for ( var c = - 1 , d = b . length , e = a . length ; ++ c < d ; ) a [ e + c ] = b [ c ] ; return a } function j ( a , b , c , d ) { var e = - 1 , f = null == a ? 0 : a . length ; for ( d && f && ( c = a [ ++ e ] ) ; ++ e < f ; ) c = b ( c , a [ e ] , e , a ) ; return c } function k ( a , b ) { for ( var c = - 1 , d = null == a ? 0 : a . length ; ++ c < d ; ) if ( b ( a [ c ] , c , a ) ) return ! 0 ; return ! 1 } function l ( a ) { return a . split ( "" ) } function m ( a , b , c ) { var d ; return c ( a , function ( a , c , e ) { if ( b ( a , c , e ) ) return d = c , ! 1 } ) , d } function n ( a , b , c , d ) { for ( var e = a . length , f = c + ( d ? 1 : - 1 ) ; d ? f -- : ++ f < e ; ) if ( b ( a [ f ] , f , a ) ) return f ; return - 1 } function o ( a , b , c ) { return b === b ? J ( a , b , c ) : n ( a , p , c ) } function p ( a ) { return a !== a } function q ( a ) { return function ( b ) { return null == b ? Ie : b [ a ] } } function r ( a ) { return function ( b ) { return null == a ? Ie : a [ b ] } } function s ( a , b , c , d , e ) { return e ( a , function ( a , e , f ) { c = d ? ( d = ! 1 , a ) : b ( c , a , e , f ) } ) , c } function t ( a , b ) { var c = a . length ; for ( a . sort ( b ) ; c -- ; ) a [ c ] = a [ c ] . value ; return a } function u ( a , b ) { for ( var c = - 1 , d = Array ( a ) ; ++ c < a ; ) d [ c ] = b ( c ) ; return d } function v ( a ) { return function ( b ) { return a ( b ) } } function w ( a , b ) { return h ( b , function ( b ) { return a [ b ] } ) } function x ( a , b ) { return a . has ( b ) } function y ( a , b ) { for ( var c = - 1 , d = a . length ; ++ c < d && o ( b , a [ c ] , 0 ) > - 1 ; ) ; return c } function z ( a , b ) { for ( var c = a . length ; c -- && o ( b , a [ c ] , 0 ) > - 1 ; ) ; return c } function A ( a , b ) { for ( var c = a . length , d = 0 ; c -- ; ) a [ c ] === b && ++ d ; return d } function B ( a , b ) { return null == a ? Ie : a [ b ] } function C ( a ) { return Cg . test ( a ) } function D ( a ) { for ( var b , c = [ ] ; ! ( b = a . next ( ) ) . done ; ) c . push ( b . value ) ; return c } function E ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a , d ) { c [ ++ b ] = [ d , a ] } ) , c } function F ( a , b ) { return function ( c ) { return a ( b ( c ) ) } } function G ( a , b ) { for ( var c = - 1 , d = a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; g !== b && g !== Oe || ( a [ c ] = Oe , f [ e ++ ] = c ) } return f } function H ( a , b ) { return "__proto__" == b ? Ie : a [ b ] } function I ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a ) { c [ ++ b ] = a } ) , c } function J ( a , b , c ) { for ( var d = c - 1 , e = a . length ; ++ d < e ; ) if ( a [ d ] === b ) return d ; return - 1 } function K ( a ) { return C ( a ) ? M ( a ) : Vg ( a ) } function L ( a ) { return C ( a ) ? N ( a ) : l ( a ) } function M ( a ) { for ( var b = Bg . lastIndex = 0 ; Bg . test ( a ) ; ) ++ b ; return b } function N ( a ) { return a . match ( Bg ) || [ ] } function O ( a ) { if ( Td ( a ) && ! si ( a ) && ! ( a instanceof R ) ) { if ( a instanceof Q ) return a ; if ( ah . call ( a , "__wrapped__" ) ) return Xc ( a ) } return new Q ( a ) } function P ( ) { } function Q ( a , b ) { this . _ _wrapped _ _ = a , this . _ _actions _ _ = [ ] , this . _ _chain _ _ = ! ! b , this . _ _index _ _ = 0 , this . _ _values _ _ = Ie } function R ( a ) { this . _ _wrapped _ _ = a , this . _ _actions _ _ = [ ] , this . _ _dir _ _ = 1 , this . _ _filtered _ _ = ! 1 , this . _ _iteratees _ _ = [ ] , this . _ _takeCount _ _ = mf , this . _ _views _ _ = [ ] } function S ( ) { var a = new R ( this . _ _wrapped _ _ ) ; return a . _ _actions _ _ = Qb ( this . _ _actions _ _ ) , a . _ _dir _ _ = this . _ _dir _ _ , a . _ _filtered _ _ = this . _ _filtered _ _ , a . _ _iteratees _ _ = Qb ( this . _ _iteratees _ _ ) , a . _ _takeCount _ _ = this . _ _takeCount _ _ , a . _ _views _ _ = Qb ( this . _ _views _ _ ) , a } function T ( ) { if ( this . _ _filtered _ _ ) { var a = new R ( this ) ; a . _ _dir _ _ = - 1 , a . _ _filtered _ _ = ! 0 } else a = this . clone ( ) , a . _ _dir _ _ *= - 1 ; return a } function U ( ) { var a = this . _ _wrapped _ _ . value ( ) , b = this . _ _dir _ _ , c = si ( a ) , d = b < 0 , e = c ? a . length : 0 , f = uc ( 0 , e , this . _ _views _ _ ) , g = f . start , h = f . end , i = h - g , j = d ? h : g - 1 , k = this . _ _ite
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 = Na ( b , le ( b ) ) ) ; var g = ! ( Sd ( d ) && "chain" in d && ! d . chain ) , h = Qd ( a ) ; return c ( f , function ( c ) { var d = b [ c ] ; a [ c ] = d , h && ( a . prototype [ c ] = function ( ) { var b = this . _ _chain _ _ ; if ( g || b ) { var c = a ( this . _ _wrapped _ _ ) , e = c . _ _actions _ _ = Qb ( this . _ _actions _ _ ) ; return e . push ( { func : d , args : arguments , thisArg : a } ) , c . _ _chain _ _ = b , c } return d . apply ( a , i ( [ this . value ( ) ] , arguments ) ) } ) } ) , a } function Ae ( ) { return Kg . _ === this && ( Kg . _ = fh ) , this } function Be ( ) { } function Ce ( a ) { return Ec ( a ) ? q ( Uc ( a ) ) : rb ( a ) } function De ( ) { return [ ] } function Ee ( ) { return ! 1 } function Fe ( a ) { var b = ++ bh ; return ee ( a ) + b } function Ge ( a ) { return a && a . length ? Ia ( a , we , Ra ) : Ie } function He ( a ) { return a && a . length ? Ia ( a , we , ib ) : Ie } var Ie , Je = "4.17.5" , Ke = 200 , Le = "Expected a function" , Me = "__lodash_hash_undefined__" , Ne = 500 , Oe = "__lodash_placeholder__" , Pe = 1 , Qe = 2 , Re = 4 , Se = 1 , Te = 2 , Ue = 1 , Ve = 2 , We = 4 , Xe = 8 , Ye = 16 , Ze = 32 , $e = 64 , _e = 128 , af = 256 , bf = 512 , cf = 800 , df = 16 , ef = 1 , ff = 2 , gf = 3 , hf = 1 / 0 , jf = 9007199254740991 , kf = 1.7976931348623157 e308 , lf = NaN , mf = 4294967295 , nf = [ [ "ary" , _e ] , [ "bind" , Ue ] , [ "bindKey" , Ve ] , [ "curry" , Xe ] , [ "curryRight" , Ye ] , [ "flip" , bf ] , [ "partial" , Ze ] , [ "partialRight" , $e ] , [ "rearg" , af ] ] , of = "[object Arguments]" , pf = "[object Array]" , qf = "[object AsyncFunction]" , rf = "[object Boolean]" , sf = "[object Date]" , tf = "[object Error]" , uf = "[object Function]" , vf = "[object GeneratorFunction]" , wf = "[object Map]" , xf = "[object Number]" , yf = "[object Null]" , zf = "[object Object]" , Af = "[object Promise]" , Bf = "[object Proxy]" , Cf = "[object RegExp]" , Df = "[object Set]" , Ef = "[object String]" , Ff = "[object Symbol]" , Gf = "[object Undefined]" , Hf = "[object WeakMap]" , If = "[object ArrayBuffer]" , Jf = "[object DataView]" , Kf = "[object Float32Array]" , Lf = "[object Float64Array]" , Mf = "[object Int8Array]" , Nf = "[object Int16Array]" , Of = "[object Int32Array]" , Pf = "[object Uint8Array]" , Qf = "[object Uint8ClampedArray]" , Rf = "[object Uint16Array]" , Sf = "[object Uint32Array]" , Tf = /[&<>"']/g , Uf = RegExp ( Tf . source ) , Vf = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ , Wf = /^\w*$/ , Xf = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g , Yf = /[\\^$.*+?()[\]{}|]/g , Zf = /^\s+|\s+$/g , $f = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/ , _f = /\{\n\/\* \[wrapped with (.+)\] \*/ , ag = /,? & / , bg = /\\(\\)?/g , cg = /\w*$/ , dg = /^[-+]0x[0-9a-f]+$/i , eg = /^0b[01]+$/i , fg = /^\[object .+?Constructor\]$/ , gg = /^0o[0-7]+$/i , hg = /^(?:0|[1-9]\d*)$/ , ig = "\\ud800-\\udfff" , jg = "\\u0300-\\u036f" , kg = "\\ufe20-\\ufe2f" , lg = "\\u20d0-\\u20ff" , mg = jg + kg + lg , ng = "\\ufe0e\\ufe0f" , og = "[" + ig + "]" , pg = "[" + mg + "]" , qg = "\\ud83c[\\udffb-\\udfff]" , rg = "(?:" + pg + "|" + qg + ")" , sg = "[^" + ig + "]" , tg = "(?:\\ud83c[\\udde6-\\uddff]){2}" , ug = "[\\ud800-\\udbff][\\udc00-\\udfff]" , vg = "\\u200d" , wg = rg + "?" , xg = "[" + ng + "]?" , yg = "(?:" +
} ) , 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 . beforeInit ? ( this . _ _asking = ! 0 , this . beforeInit ( BI . bind ( this . _render , this ) ) , this . _ _asking === ! 0 && ( this . _ _async = ! 0 ) ) : this . _render ( ) } , _render : function ( ) { this . _ _asking = ! 1 , this . beforeCreate && this . beforeCreate ( ) , this . _initElement ( ) , this . _initEffects ( ) , this . created && this . created ( ) } , _initRoot : function ( ) { var a = this . options ; this . widgetName = a . widgetName || BI . uniqueId ( "widget" ) , this . _isRoot = a . root , BI . isWidget ( a . element ) ? ( a . element instanceof BI . Widget ? ( this . _parent = a . element , this . _parent . addWidget ( this . widgetName , this ) ) : this . _isRoot = ! 0 , this . element = this . options . element . element ) : a . element ? ( this . element = BI . Widget . _renderEngine . createElement ( this ) , this . _isRoot = ! 0 ) : this . element = BI . Widget . _renderEngine . createElement ( this ) , this . element . _isWidget = ! 0 , ( a . baseCls || a . extraCls || a . cls ) && this . element . addClass ( ( a . baseCls || "" ) + " " + ( a . extraCls || "" ) + " " + ( a . cls || "" ) ) , a . attributes && this . element . attr ( a . attributes ) , a . data && this . element . data ( a . data ) , this . _children = { } } , _initElementWidth : function ( ) { var a = this . options ; BI . isWidthOrHeight ( a . width ) && this . element . css ( "width" , a . width ) } , _initElementHeight : function ( ) { var a = this . options ; BI . isWidthOrHeight ( a . height ) && this . element . css ( "height" , a . height ) } , _initVisual : function ( ) { var a = this . options ; a . invisible && this . element . css ( "display" , "none" ) } , _initEffects : function ( ) { var a = this . options ; ( a . disabled || a . invalid ) && ( this . options . disabled && this . setEnable ( ! 1 ) , this . options . invalid && this . setValid ( ! 1 ) ) } , _initState : function ( ) { this . _isMounted = ! 1 } , _initElement : function ( ) { var a = this , b = this . render && this . render ( ) ; BI . isPlainObject ( b ) && ( b = [ b ] ) , BI . isArray ( b ) && BI . each ( b , function ( b , c ) { BI . createWidget ( c , { element : a } ) } ) , this . _mount ( ) } , _setParent : function ( a ) { this . _parent = a } , _mount : function ( a , b , c , d ) { var e = this ; return ! ! ( a || ! this . _isMounted && this . isVisible ( ) && this . _ _asking !== ! 0 && ( this . _isRoot === ! 0 || this . _parent && this . _parent . _isMounted === ! 0 ) ) && ( c !== ! 1 && this . beforeMount && this . beforeMount ( ) , this . _isMounted = ! 0 , this . _mountChildren && this . _mountChildren ( ) , BI . each ( this . _children , function ( f , g ) { ! e . isEnabled ( ) && g . _setEnable ( ! 1 ) , ! e . isValid ( ) && g . _setValid ( ! 1 ) , g . _mount && g . _mount ( ! ! b && a , b , c , d ) } ) , c !== ! 1 && this . mounted && this . mounted ( ) , d && d ( this ) , ! 0 ) } , _mountChildren : null , isMounted : function ( ) { return this . _isMounted } , setWidth : function ( a ) { this . options . width = a , this . _initElementWidth ( ) } , setHeight : function ( a ) { this . options . height = a , this . _initElementHeight ( ) } , _setEnable : function ( a ) { a === ! 0 ? this . options . disabled = ! 1 : a === ! 1 && ( this . options . disabled = ! 0 ) , BI . each ( this . _children , function ( b , c ) { ! c . _manualSetEnable && c . _setEnable && c . _setEnable ( a ) } ) } , _setValid : function ( a ) { a === ! 0 ? this . options . invalid = ! 1 : a === ! 1 && ( this . options . invalid = ! 0 ) , BI . each ( this . _children , function ( b , c ) { ! c . _manualSetValid && c . _setValid && c . _setValid ( a ) } ) } , _setVisible : function ( a ) { a === ! 0 ? this . options . invisible = ! 1 : a === ! 1 && ( this . options . invisible = ! 0 ) } , setEnable : function ( a ) { this . _manualSetEnable = ! 0 , this . _setEnable ( a ) , a === ! 0 ? this . element . removeClass ( "base-disabled disabled" ) : a === ! 1 && this . element . addClass ( "base-disabled disabled" ) } , setVisible : function ( a ) { this . _setVisi
19969 : "DZ" , 19975 : "WM" , 19988 : "QJ" , 20048 : "YL" , 20056 : "SC" , 20060 : "NM" , 20094 : "QG" , 20127 : "QJ" , 20167 : "QC" , 20193 : "YG" , 20250 : "KH" , 20256 : "ZC" , 20282 : "SC" , 20285 : "QJG" , 20291 : "TD" , 20314 : "YD" , 20315 : "BF" , 20340 : "NE" , 20375 : "TD" , 20389 : "YJ" , 20391 : "CZ" , 20415 : "PB" , 20446 : "YS" , 20447 : "SQ" , 20504 : "TC" , 20608 : "KG" , 20854 : "QJ" , 20857 : "ZC" , 20911 : "PF" , 20985 : "AW" , 21032 : "PB" , 21048 : "XQ" , 21049 : "SC" , 21089 : "YS" , 21119 : "JC" , 21242 : "SB" , 21273 : "SC" , 21305 : "YP" , 21306 : "QO" , 21330 : "ZC" , 21333 : "SDC" , 21345 : "QK" , 21378 : "CA" , 21397 : "SC" , 21414 : "XS" , 21442 : "SC" , 21477 : "JG" , 21480 : "TD" , 21484 : "ZS" , 21494 : "YX" , 21505 : "YX" , 21512 : "HG" , 21523 : "XH" , 21537 : "PB" , 21542 : "PF" , 21549 : "KH" , 21571 : "E" , 21574 : "DA" , 21588 : "TD" , 21589 : "O" , 21618 : "ZC" , 21621 : "KHA" , 21632 : "ZJ" , 21654 : "KG" , 21679 : "LKG" , 21683 : "KH" , 21710 : "A" , 21719 : "YH" , 21734 : "WOE" , 21769 : "A" , 21780 : "WN" , 21804 : "XH" , 21834 : "A" , 21899 : "ZD" , 21903 : "RN" , 21908 : "WO" , 21939 : "ZC" , 21956 : "SA" , 21964 : "YA" , 21970 : "TD" , 22003 : "A" , 22031 : "JG" , 22040 : "XS" , 22060 : "ZC" , 22066 : "ZC" , 22079 : "MH" , 22129 : "XJ" , 22179 : "XA" , 22237 : "NJ" , 22244 : "TD" , 22280 : "JQ" , 22300 : "YH" , 22313 : "XW" , 22331 : "YQ" , 22343 : "YJ" , 22351 : "PH" , 22395 : "DC" , 22412 : "TD" , 22484 : "PB" , 22500 : "PB" , 22534 : "ZD" , 22549 : "DH" , 22561 : "PB" , 22612 : "TD" , 22771 : "KQ" , 22831 : "HB" , 22841 : "JG" , 22855 : "QJ" , 22865 : "XQ" , 23013 : "ML" , 23081 : "WM" , 23487 : "SX" , 23558 : "QJ" , 23561 : "YW" , 23586 : "YW" , 23614 : "YW" , 23615 : "SN" , 23631 : "PB" , 23646 : "ZS" , 23663 : "ZT" , 23673 : "YG" , 23762 : "TD" , 23769 : "ZS" , 23780 : "QJ" , 23884 : "QK" , 24055 : "XH" , 24113 : "DC" , 24162 : "ZC" , 24191 : "GA" , 24273 : "QJ" , 24324 : "NL" , 24377 : "TD" , 24378 : "QJ" , 24439 : "PF" , 24554 : "ZS" , 24683 : "TD" , 24694 : "WE" , 24733 : "LK" , 24925 : "TN" , 25094 : "ZG" , 25100 : "XQ" , 25103 : "XH" , 25153 : "PB" , 25170 : "PB" , 25179 : "KG" , 25203 : "PB" , 25240 : "ZS" , 25282 : "FB" , 25303 : "NA" , 25324 : "KG" , 25341 : "ZY" , 25373 : "WZ" , 25375 : "XJ" , 25384 : "A" , 25457 : "A" , 25528 : "SD" , 25530 : "SC" , 25552 : "TD" , 25774 : "ZC" , 25874 : "ZC" , 26044 : "YW" , 26080 : "WM" , 26292 : "PB" , 26333 : "PB" , 26355 : "ZY" , 26366 : "CZ" , 26397 : "ZC" , 26399 : "QJ" , 26415 : "ZS" , 26451 : "SB" , 26526 : "ZC" , 26552 : "JG" , 26561 : "TD" , 26588 : "JG" , 26597 : "CZ" , 26629 : "ZS" , 26638 : "YL" , 26646 : "XQ" , 26653 : "KG" , 26657 : "XJ" , 26727 : "HG" , 26894 : "ZC" , 26937 : "ZS" , 26946 : "ZC" , 26999 : "KJ" , 27099 : "KJ" , 27449 : "YQ" , 27481 : "XS" , 27542 : "ZS" , 27663 : "ZS" , 27748 : "TS" , 27784 : "SC" , 27788 : "ZD" , 27795 : "TD" , 27812 : "O" , 27850 : "PB" , 27852 : "MB" , 27895 : "SL" , 27898 : "PL" , 27973 : "QJ" , 27981 : "KH" , 27986 : "HX" , 27994 : "XJ" , 28044 : "YC" , 28065 : "WG" , 28177 : "SM" , 28267 : "QJ" , 28291 : "KH" , 28337 : "ZQ" , 28463 : "TL" , 28548 : "DC" , 28601 : "TD" , 28689 : "PB" , 28805 : "JG" , 28820 : "QG" , 28846 : "PB" , 28952 : "TD" , 28975 : "ZC" , 29100 : "A" , 29325 : "QJ" , 29575 : "SL" , 29602 : "FB" , 30010 : "TD" , 30044 : "CX" , 30058 : "PF" , 30091 : "YSP" , 30111 : "YN" , 30229 : "XJ" , 30427 : "SC" , 30465 : "SX" , 30631 : "YQ" , 30655 : "QJ" , 30684 : "QJG" , 30707 : "SD" , 30729 : "XH" , 30796 : "LG" , 30917 : "PB" , 31074 : "NM" , 31085 : "JZ" , 31109 : "SC" , 31181 : "ZC" , 31192 : "MLB" , 31293 : "JQ" , 31400 : "YX" , 31584 : "YJ" , 31896 : "ZN" , 31909 : "ZY" , 31995 : "XJ" , 32321 : "PF" , 32327 : "ZY" , 32418 : "HG" , 32420 : "XQ" , 32421 : "HG" , 32438 : "LG" , 32473 : "GJ" , 32488 : "TD" , 32521 : "QJ" , 32527 : "PB" , 32562 : "ZSQ" , 32564 : "JZ" , 32735 : "ZD" , 32793 : "PB" , 33071 : "PF" , 33098 : "XL" , 33100 : "YA" , 33152 : "PB" , 33261 : "CX" , 33324 : "BP" , 33333 : "TD" , 33406 : "YA" , 33426 : "WM" , 33432 : "PB" , 33445 : "JG" , 33486 : "ZN" , 33493 : "TS" , 33507 : "QJ" , 33540 : "QJ" , 33544 : "ZC" , 33564 : "XQ" , 33617 : "YT" , 33632 : "QJ" , 33636 : "XH" , 33637 : "YX" , 33694 : "WG" , 33705 : "PF" , 33728 : "YW" , 33882 : "SR" , 34067 : "WM" , 34074 : "YW" , 34121 : "QJ" , 34255 : "ZC" , 34259 : "XL" , 34425 : "JH" , 34430 : "XH" , 34485 : "KH" , 34503 : "YS" , 34532 : "HG" , 34552 : "XS" , 34558 : "YE" , 34593 : "ZL" , 34660 : "YQ" , 34892 : "XH" , 34928 : "SC" , 34999 : "QJ" , 35048 : "PB" , 35059 : "SC" , 35098 : "ZC" , 35203 : "TQ" , 35265 : "JX" , 35299 : "JX" , 35782 : "SZ" , 35828 : "YS" , 35830 : "E" , 35843 : "TD" , 35895 : "YG" , 35977 : "MH" , 36158 : "JG" , 36228 : "QJ" , 36426 : "XQ" , 36466 : "DC" , 36710 : "JC" , 36711 : "ZYG" , 36767 : "PB" , 36866 : "SK" , 36951 : "YW" , 37034 : "YX" , 37063 : "XH" , 37218 : "ZC" , 37325 : "ZC" , 38063 : "PB" , 38079 : "TD" , 38085 : "QY" , 38107 : "DC" , 38116 : "TD" , 38123 : "YD" , 38224 : "HG" , 38241 : "XTC" , 38271 : "ZC" , 38415 : "YE" , 38426 : "KH" , 38461 : "YD" , 38463 : "AE" , 38466 : "PB" , 38477 : "XJ" , 38518 : "YT" , 38551 : "WK" , 38585 : "ZC" , 38704 : "XS" , 38739 : "LJ" , 38761 : "GJ" , 38808 : "SQ" , 39048 : "JG" , 39049 : "XJ" , 39052 : "HG" , 39076 : "CZ" , 39271 : "XT" , 39534 : "TD" , 39552 : "TD" , 39584 : "PB" , 39647 : "SB" , 39730 : "LG" , 39748 : "TPB" , 40109 : "ZQ" , 40479 : "ND" , 40516 : "HG" , 40536 : "HG" , 40583 : "QJ" , 40765 : "YQ" , 40784 : "QJ" , 40840 : "YK" , 40863 : "QJG" } , c = function (
} ) , BI . ActionFactory = { createAction : function ( a , b ) { var c ; switch ( a ) { case "show" : c = BI . ShowAction } return new c ( b ) } } , BI . ShowAction = BI . inherit ( BI . Action , { _defaultConfig : function ( ) { return BI . extend ( BI . ShowAction . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . ShowAction . superclass . _init . apply ( this , arguments ) } , actionPerformed : function ( a , b , c ) { b = b || this . options . tar , b . setVisible ( ! 0 ) , c && c ( ) } , actionBack : function ( a , b , c ) { a = a || this . options . tar , a . setVisible ( ! 1 ) , c && c ( ) } } ) , function ( ) { function isEmpty ( a ) { var b = "" === a || null === a || void 0 === a ; return b } function isInvalidDate ( a ) { return "Invalid Date" == a || "NaN" == a } function _eFormat ( a , b ) { function c ( a , b ) { var c = a < 0 ? ( a *= - 1 , "-" ) : "" , h = "" , i = a > 0 && a < 1 ? "floor" : "ceil" , j = Math [ i ] ( Math . log ( a ) / Math . log ( 10 ) ) ; if ( ! isFinite ( j ) ) return b . replace ( /#/gi , "" ) . replace ( /\.e/gi , "E" ) ; a /= Math . pow ( 10 , j ) , a > 0 && a < 1 && ( a *= 10 , j -= 1 ) ; var k = f ( j , b ) ; k > 1 && ( j -= k - 1 , a *= Math . pow ( 10 , k - 1 ) ) , j < 0 && ( h = "-" , j *= - 1 ) ; var l = e ( b ) , m = g ( a ) ; return a *= Math . pow ( 10 , l ) , a = Math . round ( a ) , m && ( a /= 10 , j += "-" === h ? - 1 : 1 ) , a /= Math . pow ( 10 , l ) , a = a . toFixed ( l ) , j = d ( b , j , h ) , c + a + "E" + j } function d ( a , b , c ) { if ( b += "" , ! /e/gi . test ( a ) ) return b ; for ( a = a . split ( /e/gi ) [ 1 ] ; b . length < a . length ; ) b = "0" + b ; for ( var d = ! 0 , e = 0 , f = b . length ; e < f ; e ++ ) d && ( d = "0" === b . charAt ( e ) ) ; return c = d ? "" : c , c + b } function e ( a ) { if ( ! /e/gi . test ( a ) ) return 0 ; var b = a . split ( /e/gi ) [ 0 ] . split ( "." ) ; return b . length > 1 ? b [ 1 ] . length : 0 } function f ( a , b ) { if ( ! /e/gi . test ( b ) ) return 0 ; var c , d , e = b . split ( /e/gi ) [ 0 ] . split ( "." ) [ 0 ] , f = e . length , g = 0 ; for ( c = 0 ; c < f ; c ++ ) d = e . charAt ( c ) , ( 0 == d || "#" == d && f - c <= a + 1 ) && g ++ ; return g } function g ( a ) { var b = Math . round ( a ) ; return a = ( a + "" ) . split ( "." ) [ 0 ] , b = ( b + "" ) . split ( "." ) [ 0 ] , a . length !== b . length } return a = + a , c ( a , b ) } function _dealNumberPrecision ( a , b ) { if ( /[eE]/ . test ( a ) ) { var c , d = 0 , e = 0 ; /[%‰]$/ . test ( b ) && ( d = /[%]$/ . test ( b ) ? 2 : 3 ) ; for ( var f = b . length ; e < f ; e ++ ) "0" != ( c = b . charAt ( e ) ) && "#" != c || d ++ ; return Number ( a ) . toFixed ( d ) } return a } function _numberFormat ( a , b ) { var a = a + "" ; if ( ! /[0-9]/ . test ( a ) || ! b ) return a ; var c = b . indexOf ( ";" ) ; if ( c > - 1 ) return a >= 0 ? _numberFormat ( a + "" , b . substring ( 0 , c ) ) : _numberFormat ( - a + "" , b . substr ( c + 1 ) ) ; if ( + a < 0 && "-" !== b . charAt ( 0 ) ) return _numberFormat ( - a + "" , "-" + b ) ; var d = b . split ( "." ) , e = d [ 0 ] || "" , f = d [ 1 ] || "" ; a = _dealNumberPrecision ( a , f ) ; var g = a . split ( "." ) , h = g [ 0 ] || "" , i = g [ 1 ] || "" ; if ( /[%‰]$/ . test ( b ) ) { var j = /[%]$/ . test ( b ) ? "00" : "000" ; i += j , h += i . substr ( 0 , j . length ) , h = h . replace ( /^0+/gi , "" ) , i = i . substr ( j . length ) . replace ( /0+$/gi , "" ) } var k = _dealWithRight ( i , f ) ; k . leftPlus && ( h = parseInt ( h ) + 1 + "" , h = isNaN ( h ) ? "1" : h ) , k = k . num ; var l = _dealWithLeft ( h , e ) ; return /[0-9]/ . test ( l ) || ( l += "0" ) , /[0-9]/ . test ( k ) ? l + "." + k : l + k } function _dealWithRight ( a , b ) { for ( var c = "" , d = 0 , e = 0 , f = b . length ; e < f ; e ++ ) { var g = b . charAt ( e ) , h = a . charAt ( d ) ; switch ( g ) { case "0" : isEmpty ( h ) && ( h = "0" ) , c += h , d ++ ; break ; case "#" : c += h , d ++ ; break ; default : c += g } } var i = a . substr ( d ) , j = { } ; if ( ! isEmpty ( i ) && i . charAt ( 0 ) > 4 ) { j . leftPlus = ! 0 ; var k = c . match ( /^[0-9]+/ ) ; if ( k ) { var l = k [ 0 ] , m = l . length , n = parseInt ( l ) + 1 + "" ; n . length > m ? n = n . substr ( 1 ) : ( n = BI . leftPad ( n , m , "0" ) , j . leftPlus = ! 1 ) , c = c . replace ( /^[0-9]+/ , n ) } } return j . num = c , j } function _dealWithLeft ( a , b ) { for ( var c = "" , d = a . length - 1 , e = - 1 , f = - 1 , g = b . length - 1 ; g >= 0 ; g -- ) { var h = b . charAt ( g ) , i = a . charAt ( d ) ; switch ( h ) { case "0" : isEmpty ( i ) && ( i = "0" ) , f = - 1 , c = i + c , d -- ; break ; case "#" : f = g , c = i + c , d -- ; break ; case "," : if ( ! isEmpty ( i ) ) { var j = b . match ( /,[#0]+/ ) ; j && ( e = j [ 0 ] . length - 1 ) , c = "," + c } break ; default : c = h + c } } if ( f > - 1 ) { var k = a . substr ( 0 , d + 1 ) ; c = c . substr ( 0 , f ) + k + c . substr ( f ) } if ( e > 0 ) { var l = c . match ( /[0-9]+,/ ) ; if ( l ) { l = l [ 0 ] ; for ( var m = "" , n = l . length - 1 - e ; n >= 0 ; n -= e ) m = l . substr ( n , e ) + "," + m ; var o = l . substr ( 0 , n + e ) ; isEmpty ( o ) || ( m = o + "," + m ) } c = c . replace ( /[0-9]+,/ , m ) } return c } var _global ; _global = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , _global . BI || ( _global . BI = { } ) , BI . cjkEncode = function ( a ) { if ( "string" != typeof a ) return a ; for ( var b = "" , c = 0 ; c < a . length ; c ++ ) { var d = a . charCodeAt ( c ) ; b += d >= 128 || 91 === d || 93 === d ? "[" + d . toString ( 16 ) + "]" : a . charAt ( c ) } return b } , BI . cjkDecode = function ( text ) { if ( null == text ) return "" ; if ( ! isNaN ( text ) || text . indexOf ( "[" ) == - 1 ) return text ; for ( var newText = "" , i = 0 ; i < text . length ; i ++ ) { var ch = text . charAt ( i ) ; if ( "[" == ch ) { var rightIdx = text . indexOf ( "]" , i + 1 ) ; if ( rightIdx > i + 1 ) { var subText = text . s
f > 0 ) { var h = Math . pow ( 10 , f ) ; c > d ? ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) * h ) : ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) * h , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ) } else a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ; return ( a + b ) / e } return c ( b , a ) } , sub : function ( a , b ) { function c ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } return e = Math . pow ( 10 , Math . max ( c , d ) ) , f = c >= d ? c : d , ( ( a * e - b * e ) / e ) . toFixed ( f ) } return c ( a , b ) } , mul : function ( a , b ) { function c ( a , b ) { var c = 0 , d = a . toString ( ) , e = b . toString ( ) ; try { c += d . split ( "." ) [ 1 ] . length } catch ( f ) { } try { c += e . split ( "." ) [ 1 ] . length } catch ( f ) { } return Number ( d . replace ( "." , "" ) ) * Number ( e . replace ( "." , "" ) ) / Math . pow ( 10 , c ) } return c ( b , a ) } , div : function ( a , b ) { function c ( a ) { var b = a . toString ( ) . split ( /[eE]/ ) , c = ( b [ 0 ] . split ( "." ) [ 1 ] || "" ) . length - + ( b [ 1 ] || 0 ) ; return c > 0 ? c : 0 } function d ( a ) { if ( a . toString ( ) . indexOf ( "e" ) === - 1 ) return Number ( a . toString ( ) . replace ( "." , "" ) ) ; var b = c ( a ) ; return b > 0 ? a * Math . pow ( 10 , b ) : a } function e ( a , b ) { for ( var f = [ ] , g = 2 ; g < arguments . length ; g ++ ) f [ g - 2 ] = arguments [ g ] ; if ( f . length > 0 ) return e . apply ( void 0 , [ e ( a , b ) , f [ 0 ] ] . concat ( f . slice ( 1 ) ) ) ; var h = d ( a ) , i = d ( b ) , j = c ( a ) + c ( b ) , k = h * i ; return k / Math . pow ( 10 , j ) } function f ( a , b ) { for ( var g = [ ] , h = 2 ; h < arguments . length ; h ++ ) g [ h - 2 ] = arguments [ h ] ; if ( g . length > 0 ) return f . apply ( void 0 , [ f ( a , b ) , g [ 0 ] ] . concat ( g . slice ( 1 ) ) ) ; var i = d ( a ) , j = d ( b ) ; return e ( i / j , Math . pow ( 10 , c ( b ) - c ( a ) ) ) } return f ( a , b ) } } ) , _ . extend ( BI , { startWith : function ( a , b ) { return a = a || "" , ! ( null == b || "" == b || 0 === a . length || b . length > a . length ) && a . substr ( 0 , b . length ) == b } , endWith : function ( a , b ) { return ! ( null == b || "" == b || 0 === a . length || b . length > a . length ) && a . substring ( a . length - b . length ) == b } , getQuery : function ( a , b ) { var c = new RegExp ( "(^|&)" + b + "=([^&]*)(&|$)" ) , d = a . substr ( a . indexOf ( "?" ) + 1 ) . match ( c ) ; return d ? unescape ( d [ 2 ] ) : null } , appendQuery : function ( a , b ) { if ( ! b ) return a ; var c = a ; return c . indexOf ( "?" ) === - 1 && ( c += "?" ) , c . endWith ( "?" ) !== ! 1 || ( c += "&" ) , _ . each ( b , function ( a , b ) { "string" == typeof b && ( c += b + "=" + a + "&" ) } ) , c = c . substr ( 0 , c . length - 1 ) } , replaceAll : function ( a , b , c ) { return a . replace ( new RegExp ( b , "gm" ) , c ) } , perfectStart : function ( a , b ) { return a . startWith ( b ) ? a : b + a } , allIndexOf : function ( a , b ) { if ( "string" != typeof b ) return [ ] ; for ( var c = [ ] , d = 0 ; a . length > 0 ; ) { var e = a . indexOf ( b ) ; if ( e === - 1 ) break ; c . push ( d + e ) , a = a . substring ( e + b . length , a . length ) , d += e + b . length } return c } } ) , function ( ) { var a = { } ; BI . constant = function ( b , c ) { null != a [ b ] && _global . console && console . error ( "constant:[" + b + "] has been registed" ) , a [ b ] = c } ; var b = { } ; BI . model = function ( a , c ) { null != b [ a ] && _global . console && console . error ( "model:[" + a + "] has been registed" ) , b [ a ] = c } ; var c = { } ; BI . store = function ( a , b ) { null != c [ a ] && _global . console && console . error ( "store:[" + a + "] has been registed" ) , c [ a ] = b } ; var d = { } ; BI . service = function ( a , b ) { null != d [ a ] && _global . console && console . error ( "service:[" + a + "] has been registed" ) , d [ a ] = b } ; var e = { } ; BI . provider = function ( a , b ) { null != e [ a ] && _global . console && console . error ( "provider:[" + a + "] has been registed" ) , e [ a ] = b } , BI . config = function ( b , c ) { return a [ b ] ? a [ b ] = c ( a [ b ] ) : e [ b ] ? ( l [ b ] || ( l [ b ] = new e [ b ] ) , c ( l [ b ] ) ) : void BI . Plugin . configWidget ( b , c ) } ; var f = { } , g = [ ] ; BI . action = function ( a , b ) { return BI . isFunction ( a ) ? ( g . push ( a ) , function ( ) { BI . remove ( g , function ( a ) { return g . indexOf ( b ) === a } ) } ) : ( f [ a ] || ( f [ a ] = [ ] ) , f [ a ] . push ( b ) , function ( ) { BI . remove ( f [ a ] , function ( c ) { return f [ a ] . indexOf ( b ) === c } ) , 0 === f [ a ] . length && delete f [ a ] } ) } ; var h = { } ; BI . point = function ( a , b , c , d ) { h [ a ] || ( h [ a ] = { } ) , h [ a ] [ b ] || ( h [ a ] [ b ] = { } ) , h [ a ] [ b ] [ d ? "after" : "before" ] || ( h [ a ] [ b ] [ d ? "after" : "before" ] = [ ] ) , h [ a ] [ b ] [ d ? "after" : "before" ] . push ( c ) } , BI . Constants = { getConstant : function ( b ) { return a [ b ] } } ; var i = function ( a , b ) { if ( h [ b ] ) for ( var c in h [ b ] ) { var d = h [ b ] [ c ] . before ; d && BI . aspect . before ( a , c , function ( b ) { return function ( ) { for ( var c = 0 , d = b . length ; c < d ; c ++ ) try { b [ c ] . apply ( a , arguments ) } catch ( e ) { _global . console && console . error ( e ) } } } ( d ) ) ; var e = h [ b ] [ c ] . after ; e && BI . aspect . after ( a , c , function ( b ) { return function ( ) { for ( var c = 0 , d = b . length ; c < d ; c ++ ) try { b [ c ] . apply ( a , arguments ) } catch ( e ) { _global . console && console . error ( e ) } } } ( e ) ) } } ; BI . Models = { getModel : function ( a , c ) { var d = new b [ a ] ( c ) ; return i ( d , a ) , d } } ; var j = { } ; BI . Sto
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 >= 0 && c < b ? [ this [ c ] ] : [ ] ) } , map : function ( a ) { return this . pushStack ( ia . map ( this , function ( b , c ) { return a . call ( b , c , b ) } ) ) } , end : function ( ) { return this . prevObject || this . constructor ( null ) } , push : ca , sort : [ ] . sort , splice : [ ] . splice } , ia . fn . init . prototype = ia . fn , ia . extend = ia . fn . extend = function ( ) { var a , c , d , e , f , g , h = arguments [ 0 ] || { } , i = 1 , j = arguments . length , k = ! 1 ; for ( "boolean" == typeof h && ( k = h , h = arguments [ 1 ] || { } , i = 2 ) , "object" == typeof h || ia . isFunction ( h ) || ( h = { } ) , j === i && ( h = this , -- i ) ; i < j ; i ++ ) if ( null != ( f = arguments [ i ] ) ) for ( e in f ) a = h [ e ] , d = f [ e ] , h !== d && ( k && d && ( ia . isPlainObject ( d ) || ( c = ia . isArray ( d ) ) ) ? ( c ? ( c = ! 1 , g = a && ia . isArray ( a ) ? a : [ ] ) : g = a && ia . isPlainObject ( a ) ? a : { } , h [ e ] = ia . extend ( k , g , d ) ) : d !== b && ( h [ e ] = d ) ) ; return h } , ia . extend ( { noConflict : function ( b ) { return a . $ === ia && ( a . $ = Z ) , b && a . jQuery === ia && ( a . jQuery = Y ) , ia } , isReady : ! 1 , readyWait : 1 , holdReady : function ( a ) { a ? ia . readyWait ++ : ia . ready ( ! 0 ) } , ready : function ( a ) { if ( a === ! 0 ? ! -- ia . readyWait : ! ia . isReady ) { if ( ! W . body ) return setTimeout ( ia . ready ) ; ia . isReady = ! 0 , a !== ! 0 && -- ia . readyWait > 0 || ( T . resolveWith ( W , [ ia ] ) , ia . fn . trigger && ia ( W ) . trigger ( "ready" ) . off ( "ready" ) ) } } , isFunction : function ( a ) { return "function" === ia . type ( a ) } , isArray : Array . isArray || function ( a ) { return "array" === ia . type ( a ) } , isWindow : function ( a ) { return null != a && a == a . window } , isNumeric : function ( a ) { return ! isNaN ( parseFloat ( a ) ) && isFinite ( a ) } , type : function ( a ) { return null == a ? String ( a ) : "object" == typeof a || "function" == typeof a ? $ [ fa . call ( a ) ] || "object" : typeof a } , isPlainObject : function ( a ) { if ( ! a || "object" !== ia . type ( a ) || a . nodeType || ia . isWindow ( a ) ) return ! 1 ; try { if ( a . constructor && ! ga . call ( a , "constructor" ) && ! ga . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( c ) { return ! 1 } var d ; for ( d in a ) ; return d === b || ga . call ( a , d ) } , isEmptyObject : function ( a ) { var b ; for ( b in a ) return ! 1 ; return ! 0 } , error : function ( a ) { throw new Error ( a ) } , parseHTML : function ( a , b , c ) { if ( ! a || "string" != typeof a ) return null ; "boolean" == typeof b && ( c = b , b = ! 1 ) , b = b || W ; var d = na . exec ( a ) , e = ! c && [ ] ; return d ? [ b . createElement ( d [ 1 ] ) ] : ( d = ia . buildFragment ( [ a ] , b , e ) , e && ia ( e ) . remove ( ) , ia . merge ( [ ] , d . childNodes ) ) } , parseJSON : function ( b ) { return a . JSON && a . JSON . parse ? a . JSON . parse ( b ) : null === b ? b : "string" == typeof b && ( b = ia . trim ( b ) , b && oa . test ( b . replace ( qa , "@" ) . replace ( ra , "]" ) . replace ( pa , "" ) ) ) ? new Function ( "return " + b ) ( ) : void ia . error ( "Invalid JSON: " + b ) } , parseXML : function ( c ) { var d , e ; if ( ! c || "string" != typeof c ) return null ; try { a . DOMParser ? ( e = new DOMParser , d = e . parseFromString ( c , "text/xml" ) ) : ( d = new ActiveXObject ( "Microsoft.XMLDOM" ) , d . async = "false" , d . loadXML ( c ) ) } catch ( f ) { d = b } return d && d . documentElement && ! d . getElementsByTagName ( "parsererror" ) . length || ia . error ( " Invali
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 } function f ( a ) { var b = F . createElement ( "div" ) ; try { return a ( b ) } catch ( c ) { return ! 1 } finally { b = null } } function g ( a , b , c , d ) { var e , f , g , h , i , j , k , n , o , p ; if ( ( b ? b . ownerDocument || b : O ) !== F && E ( b ) , b = b || F , c = c || [ ] , ! a || "string" != typeof a ) return c ; if ( 1 !== ( h = b . nodeType ) && 9 !== h ) return [ ] ; if ( ! H && ! d ) { if ( e = pa . exec ( a ) ) if ( g = e [ 1 ] ) { if ( 9 === h ) { if ( f = b . getElementById ( g ) , ! f || ! f . parentNode ) return c ; if ( f . id === g ) return c . push ( f ) , c } else if ( b . ownerDocument && ( f = b . ownerDocument . getElementById ( g ) ) && L ( b , f ) && f . id === g ) return c . push ( f ) , c } else { if ( e [ 2 ] ) return Z . apply ( c , $ . call ( b . getElementsByTagName ( a ) , 0 ) ) , c ; if ( ( g = e [ 3 ] ) && P . getByClassName && b . getElementsByClassName ) return Z . apply ( c , $ . call ( b . getElementsByClassName ( g ) , 0 ) ) , c } if ( P . qsa && ! I . test ( a ) ) { if ( k = ! 0 , n = N , o = b , p = 9 === h && a , 1 === h && "object" !== b . nodeName . toLowerCase ( ) ) { for ( j = l ( a ) , ( k = b . getAttribute ( "id" ) ) ? n = k . replace ( sa , "\\$&" ) : b . setAttribute ( "id" , n ) , n = "[id='" + n + "'] " , i = j . length ; i -- ; ) j [ i ] = n + m ( j [ i ] ) ; o = na . test ( a ) && b . parentNode || b , p = j . join ( "," ) } if ( p ) try { return Z . apply ( c , $ . call ( o . querySelectorAll ( p ) , 0 ) ) , c } catch ( q ) { } finally { k || b . removeAttribute ( "id" ) } } } return u ( a . replace ( ga , "$1" ) , b , c , d ) } function h ( a , b ) { var c = b && a , d = c && ( ~ b . sourceIndex || W ) - ( ~ a . sourceIndex || W ) ; if ( d ) return d ; if ( c ) for ( ; c = c . nextSibling ; ) if ( c === b ) return - 1 ; return a ? 1 : - 1 } function i ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return "input" === c && b . type === a } } function j ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return ( "input" === c || "button" === c ) && b . type === a } } function k ( a ) { return e ( function ( b ) { return b = + b , e ( function ( c , d ) { for ( var e , f = a ( [ ] , c . length , b ) , g = f . length ; g -- ; ) c [ e = f [ g ] ] && ( c [ e ] = ! ( d [ e ] = c [ e ] ) ) } ) } ) } function l ( a , b ) { var c , d , e , f , h , i , j , k = T [ a + " " ] ; if ( k ) return b ? 0 : k . slice ( 0 ) ; for ( h = a , i = [ ] , j = y . preFilter ; h ; ) { c && ! ( d = ha . exec ( h ) ) || ( d && ( h = h . slice ( d [ 0 ] . length ) || h ) , i . push ( e = [ ] ) ) , c = ! 1 , ( d = ja . exec ( h ) ) && ( c = d . shift ( ) , e . push ( { value : c , type : d [ 0 ] . replace ( ga , " " ) } ) , h = h . slice ( c . length ) ) ; for ( f in y . filter ) ! ( d = ma [ f ] . exec ( h ) ) || j [ f ] && ! ( d = j [ f ] ( d ) ) || ( c = d . shift ( ) , e . push ( { value : c , type : f , matches : d } ) , h = h . slice ( c . length ) ) ; if ( ! c ) break } return b ? h . length : h ? g . error ( a ) : T ( a , i ) . slice ( 0 ) } function m ( a ) { for ( var b = 0 , c = a . length , d = "" ; b < c ; b ++ ) d += a [ b ] . value ; return d } function n ( a , b , c ) { var d = b . dir , e = c && "parentNode" === d , f = R ++ ; return b . first ? function ( b , c , f ) { for ( ; b = b [ d ] ; ) if ( 1 === b . nodeType || e ) return a ( b , c , f ) } : function ( b , c , g ) { var h , i , j , k = Q + " " + f ; if ( g ) { for ( ; b = b [ d ] ; ) if ( ( 1 === b . nodeType || e ) && a ( b , c , g ) ) return ! 0 } else for ( ; b = b [ d ] ; ) if ( 1 === b . nodeType || e ) if ( j = b [ N ] || ( b [ N ] = { } ) , ( i = j [ d ] ) && i [ 0 ] === k ) { if ( ( h = i [ 1 ] ) === ! 0 || h === x ) return h === ! 0 } else if ( i = j [ d ] = [ k ] , i [ 1 ] = a ( b , c , g ) || x , i [ 1 ] === ! 0 ) return ! 0 } } function o ( a ) { return a . length > 1 ? fu
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 ( function ( ) { var a = ia . prop ( this , "elements" ) ; return a ? ia . makeArray ( a ) : this } ) . filter ( function ( ) { var a = this . type ; return this . name && ! ia ( this ) . is ( ":disabled" ) && Db . test ( this . nodeName ) && ! Cb . test ( a ) && ( this . checked || ! bb . test ( a ) ) } ) . map ( function ( a , b ) { var c = ia ( this ) . val ( ) ; return null == c ? null : ia . isArray ( c ) ? ia . map ( c , function ( a ) { return { name : b . name , value : a . replace ( Bb , "\r\n" ) } } ) : { name : b . name , value : c . replace ( Bb , "\r\n" ) } } ) . get ( ) } } ) , ia . param = function ( a , c ) { var d , e = [ ] , f = function ( a , b ) { b = ia . isFunction ( b ) ? b ( ) : null == b ? "" : b , e [ e . length ] = encodeURIComponent ( a ) + "=" + encodeURIComponent ( b ) } ; if ( c === b && ( c = ia . ajaxSettings && ia . ajaxSettings . traditional ) , ia . isArray ( a ) || a . jquery && ! ia . isPlainObject ( a ) ) ia . each ( a , function ( ) { f ( this . name , this . value ) } ) ; else for ( d in a ) D ( d , a [ d ] , c , f ) ; return e . join ( "&" ) . replace ( zb , "+" ) } , ia . each ( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu" . split ( " " ) , function ( a , b ) { ia . fn [ b ] = function ( a , c ) { return arguments . length > 0 ? this . on ( b , null , a , c ) : this . trigger ( b ) } } ) , ia . fn . hover = function ( a , b ) { return this . mouseenter ( a ) . mouseleave ( b || a ) } ; var Eb , Fb , Gb = ia . now ( ) , Hb = /\?/ , Ib = /#.*$/ , Jb = /([?&])_=[^&]*/ , Kb = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm , Lb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/ , Mb = /^(?:GET|HEAD)$/ , Nb = /^\/\// , Ob = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/ , Pb = ia . fn . load , Qb = { } , Rb = { } , Sb = "*/" . concat ( "*" ) ; try { Fb = X . href } catch ( Tb ) { Fb = W . createElement ( "a" ) , Fb . href = "" , Fb = Fb . href } Eb = Ob . exec ( Fb . toLowerCase ( ) ) || [ ] , ia . fn . load = function ( a , c , d ) { if ( "string" != typeof a && Pb ) return Pb . apply ( this , arguments ) ; var e , f , g , h = this , i = a . indexOf ( " " ) ; return i >= 0 && ( e = a . slice ( i , a . length ) , a = a . slice ( 0 , i ) ) , ia . isFunction ( c ) ? ( d = c , c = b ) : c && "object" == typeof c && ( g = "POST" ) , h . length > 0 && ia . ajax ( { url : a , type : g , dataType : "html" , data : c } ) . done ( function ( a ) { f = arguments , h . html ( e ? ia ( "<div>" ) . append ( ia . parseHTML ( a ) ) . find ( e ) : a ) } ) . complete ( d && function ( a , b ) { h . each ( d , f || [ a . responseText , b , a ] ) } ) , this } , ia . each ( [ "ajaxStart" , "ajaxStop" , "ajaxComplete" , "ajaxError" , "ajaxSuccess" , "ajaxSend" ] , function ( a , b ) { ia . fn [ b ] = function ( a ) { return this . on ( b , a ) } } ) , ia . each ( [ "get" , "post" ] , function ( a , c ) { ia [ c ] = function ( a , d , e , f ) { return ia . isFunction ( d ) && ( f = f || e , e = d , d = b ) , ia . ajax ( { url : a , type : c , dataType : f , data : d , success : e } ) } } ) , ia . extend ( { active : 0 , lastModified : { } , etag : { } , ajaxSettings : { url : Fb , type : "GET" , isLocal : Lb . test ( Eb [ 1 ] ) , global : ! 0 , processData : ! 0 , async : ! 0 , contentType : "application/x-www-form-urlencoded; charset=UTF-8" , accepts : { "*" : Sb , text : "text/plain" , html : "text/html" , xml : " applicatio
d } , resize : function ( ) { } , populate : function ( a ) { BI . AbsoluteHorizontalLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.absolute_horizontal_adapt" , BI . AbsoluteHorizontalLayout ) , BI . AbsoluteVerticalLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AbsoluteVerticalLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-absolute-vertical-layout" , hgap : 0 , lgap : 0 , rgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . AbsoluteVerticalLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AbsoluteVerticalLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "absolute" , left : b . lgap , right : b . rgap , top : c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) , bottom : c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) , margin : "auto" } ) , c . hgap + c . lgap + ( b . hgap || 0 ) + ( b . lgap || 0 ) !== 0 && d . element . css ( "left" , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) ) , c . hgap + c . rgap + ( b . hgap || 0 ) + ( b . rgap || 0 ) !== 0 && d . element . css ( "right" , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) ) , d } , resize : function ( ) { } , populate : function ( a ) { BI . AbsoluteVerticalLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.absolute_vertical_adapt" , BI . AbsoluteVerticalLayout ) , BI . CenterAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . CenterAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-center-adapt-layout" , columnSize : [ ] , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . CenterAdaptLayout . superclass . render . apply ( this , arguments ) , this . $table = BI . Widget . _renderEngine . createElement ( "<table>" ) . attr ( { cellspacing : 0 , cellpadding : 0 } ) . css ( { position : "relative" , width : "100%" , height : "100%" , "white-space" : "nowrap" , "border-spacing" : "0px" , border : "none" , "border-collapse" : "separate" } ) , this . $tr = BI . Widget . _renderEngine . createElement ( "<tr>" ) , this . $tr . appendTo ( this . $table ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c , d = this . options , e = d . columnSize [ a ] <= 1 ? 100 * d . columnSize [ a ] + "%" : d . columnSize [ a ] ; if ( this . hasWidget ( this . _getChildName ( a ) ) ) c = this . getWidgetByName ( this . _getChildName ( a ) ) , c . element . attr ( "width" , e ) ; else { var f = BI . createWidget ( b ) ; f . element . css ( { position : "relative" , top : "0" , left : "0" , margin : "0px auto" } ) , c = BI . createWidget ( { type : "bi.default" , tagName : "td" , attributes : { width : e } , items : [ f ] } ) , this . addWidget ( this . _getChildName ( a ) , c ) } return c . element . css ( { "max-width" : d . columnSize [ a ] } ) , 0 === a && c . element . addClass ( "first-element" ) , c . element . css ( { position : "relative" , height : "100%" , "vertical-align" : "middle" , margin : "0" , padding : "0" , border : "none" } ) , d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-top" : d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d . hgap + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-left" : ( 0 === a ? d . hgap : 0 ) + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-right" : d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-bottom" : d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c } , appendFragment : function ( a ) { this . $tr . append ( a ) , this . element . append ( this . $table ) } , resize : function ( ) { } , _getWrapper : function ( ) { return this . $tr } , populate : function ( a ) { BI . CenterAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.center_adapt" , BI . CenterAdaptLayout ) , BI . HorizontalAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizontal-adapt-layout" , verticalAlign : BI . VerticalAlign . Top , columnSize : [ ] , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalAdaptLayout . superclass . render . apply ( this , arguments ) , this . $table = BI . Widget . _renderEngine . createElement ( "<table>" ) . attr ( { cellspacing : 0 , cellpadding : 0 } ) . css ( { position : "relative" , width : "100%" , "white-space" : "nowrap" , "border-spacing" : "0px" , border : "none" , "border-collapse" : "separate" } ) , this . $tr = BI . Widget . _renderEngine . createElement ( "<tr>" ) , this . $tr . appendTo ( this . $table ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c , d = this . opt
if ( BI . isKey ( this . showIndex ) ) return this . getWidgetByName ( this . showIndex ) } , deleteAllCard : function ( ) { var a = this ; BI . each ( this . getAllCardNames ( ) , function ( b , c ) { a . deleteCardByName ( c ) } ) } , hideAllCard : function ( ) { var a = this ; BI . each ( this . options . items , function ( b , c ) { a . _children [ c . cardName ] . invisible ( ) } ) } , isAllCardHide : function ( ) { var a = this , b = ! 0 ; return BI . some ( this . options . items , function ( c , d ) { if ( a . _children [ d . cardName ] . isVisible ( ) ) return b = ! 1 , ! 1 } ) , b } , removeWidget : function ( a ) { var b ; BI . isWidget ( a ) ? BI . each ( this . _children , function ( c , d ) { d === a && ( b = c ) } ) : b = a , b && this . _deleteCardByName ( b ) } } ) , BI . shortcut ( "bi.card" , BI . CardLayout ) , BI . DefaultLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . DefaultLayout . superclass . props . apply ( this , arguments ) , { hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , items : [ ] } ) } , render : function ( ) { BI . DefaultLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . DefaultLayout . superclass . _addElement . apply ( this , arguments ) ; return c . vgap + c . tgap + ( b . tgap || 0 ) !== 0 && d . element . css ( { "margin-top" : c . vgap + c . tgap + ( b . tgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) !== 0 && d . element . css ( { "margin-left" : c . hgap + c . lgap + ( b . lgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) !== 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + ( b . rgap || 0 ) + "px" } ) , c . vgap + c . bgap + ( b . bgap || 0 ) !== 0 && d . element . css ( { "margin-bottom" : c . vgap + c . bgap + ( b . bgap || 0 ) + "px" } ) , d } , resize : function ( ) { } , populate : function ( a ) { BI . DefaultLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.default" , BI . DefaultLayout ) , BI . DivisionLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . DivisionLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-division-layout" , columns : null , rows : null , items : [ ] } ) } , render : function ( ) { BI . DivisionLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { this . stroke ( this . opitons . items ) } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { function b ( a , b , c ) { 0 === b && a . addClass ( "first-row" ) , 0 === c && a . addClass ( "first-col" ) , a . addClass ( BI . isOdd ( b + 1 ) ? "odd-row" : "even-row" ) , a . addClass ( BI . isOdd ( c + 1 ) ? "odd-col" : "even-col" ) , a . addClass ( "center-element" ) } function c ( a , b , c ) { var d = "" ; 0 === b && ( d += " first-row" ) , 0 === c && ( d += " first-col" ) , d += BI . isOdd ( b + 1 ) ? " odd-row" : " even-row" , d += BI . isOdd ( c + 1 ) ? " odd-col" : " even-col" , a . cls = ( a . cls || "" ) + d + " center-element" } function d ( a , d , e ) { a instanceof BI . Widget ? b ( a . element , d , e ) : a . el instanceof BI . Widget ? b ( a . el . element , d , e ) : a . el ? c ( a . el , d , e ) : c ( a , d , e ) } var e = this . options , 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 } } , 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 ( ) {
} } } function h ( a ) { Z . target && $ . push ( Z . target ) , Z . target = a } function i ( ) { Z . target = $ . pop ( ) } function j ( a , b , c , d ) { Object . defineProperty ( a , b , { value : c , enumerable : ! ! d , writable : ! 0 , configurable : ! 0 } ) } function k ( a , b , c ) { a . _ _proto _ _ = b } function l ( a , b , c ) { for ( var d = 0 , e = c . length ; d < e ; d ++ ) { var f = c [ d ] ; a [ f ] = b [ f ] } } function m ( a , b , c ) { if ( _ . isObject ( a ) ) { var d = void 0 ; return a . _ _ob _ _ instanceof na ? d = a . _ _ob _ _ : ma . shouldConvert && ( _ . isArray ( a ) || e ( a ) ) && ( d = new na ( a ) ) , d . parent = b || d . parent , d . parentKey = c , d } } function n ( a , b , c , d ) { if ( c . notify ( { observer : a , key : b , refresh : d } ) , a ) { _ . each ( a . _deps , function ( c ) { c . notify ( { observer : a , key : b } ) } ) ; for ( var e = a , f = a , g = b || "" ; e ; ) _ . each ( e . _scopeDeps , function ( c ) { c . notify ( { observer : a , key : b } ) } ) , null != e . parentKey && ( g = e . parentKey + "." + g ) , f = e , e = e . parent ; for ( var h in f . _globalDeps ) { var i = new RegExp ( h ) ; i . test ( g ) && f . _globalDeps [ h ] . notify ( { observer : a , key : h } ) } } } function o ( a , b , c ) { var d = { } , e = void 0 ; return _ . each ( a , function ( f , g ) { if ( ! ( g in X ) ) { var h = b && b [ "__dep" + g ] || new Z ; b && ( b [ "__dep" + g ] = h ) ; var i = ! c && m ( f , b , g ) ; d [ g ] = { enumerable : ! 0 , configurable : ! 0 , get : function ( ) { var a = i ? i . model : f ; return Z . target && ( h . depend ( ) , i && ( i . dep . depend ( ) , _ . isArray ( a ) && r ( a ) ) ) , a } , set : function ( d ) { var j = i ? i . model : f ; d === j || d !== d && j !== j || ( f = d , i = ! c && m ( d , b , g ) , i && j && j . _ _ob _ _ && ( i . _scopeDeps = j . _ _ob _ _ . _scopeDeps , i . _deps = j . _ _ob _ _ . _deps ) , a [ g ] = i ? i . model : d , n ( e . _ _ob _ _ , g , h ) ) } } } } ) , e = ka ( a , d ) } function p ( a , b , c ) { if ( _ . isArray ( a ) ) return a . length = Math . max ( a . length , b ) , a . splice ( b , 1 , c ) , c ; if ( _ . has ( a , b ) ) return a [ b ] = c , c ; var d = a . _ _ob _ _ ; return d ? ( d . value [ b ] = c , a = o ( d . value , d ) , n ( d , b , d . dep ) , a ) : ( a [ b ] = c , c ) } function q ( a , b ) { if ( _ . isArray ( a ) ) return void a . splice ( b , 1 ) ; var c = a . _ _ob _ _ ; if ( _ . has ( a , b ) ) return c ? ( delete c . value [ b ] , a = o ( c . value , c ) , n ( c , b , c . dep ) , a ) : ( delete a [ b ] , a ) } function r ( a ) { for ( var b , c = 0 , d = a . length ; c < d ; c ++ ) b = a [ c ] , b && b . _ _ob _ _ && b . _ _ob _ _ . dep . depend ( ) , _ . isArray ( b ) && r ( b ) } function s ( ) { ta = oa . length = pa . length = 0 , qa = { } , ra = sa = ! 1 } function t ( ) { sa = ! 0 ; var a = void 0 , b = void 0 , c = void 0 ; for ( oa . sort ( function ( a , b ) { return a . id - b . id } ) , ta = 0 ; ta < oa . length ; ta ++ ) a = oa [ ta ] . watcher , c = oa [ ta ] . options , b = a . id , qa [ b ] = null , a . run ( c ) ; s ( ) } function u ( a , b ) { var c = a . id ; if ( null == qa [ c ] ) { if ( qa [ c ] = ! 0 , sa ) { for ( var d = oa . length - 1 ; d > ta && oa [ d ] . watcher . id > a . id ; ) d -- ; oa . splice ( d + 1 , 0 , { watcher : a , options : b } ) } else oa . push ( { watcher : a , options : b } ) ; ra || ( ra = ! 0 , W ( t ) ) } } function v ( a ) { wa . clear ( ) , w ( a , wa ) } function w ( a , b ) { var c = void 0 , d = void 0 , e = _ . isArray ( a ) ; if ( e || _ . isObject ( a ) ) { if ( a . _ _ob _ _ ) { var f = a . _ _ob _ _ . dep . id ; if ( b . has ( f ) ) return ; b . add ( f ) } if ( e ) for ( c = a . length ; c -- ; ) w ( a [ c ] , b ) ; else for ( d = _ . keys ( a ) , c = d . length ; c -- ; ) w ( a [ d [ c ] ] , b ) } } function x ( a ) { for ( var b = "" , c = 0 , d = a . length ; c < d ; c ++ ) b += _ . isBoolean ( a [ c ] ) || _ . has ( xa , a [ c ] ) ? a [ c ] : "false" ; return new Function ( "return " + b ) ( ) } function y ( a ) { return a = a . replace ( /\*./g , "[a-zA-Z0-9_]+." ) , "^" + a + "$" } function z ( a , b , c , d ) { e ( c ) && ( d = c , c = c . handler ) , "string" == typeof c && ( c = a [ c ] ) , d = d || { } , d . user = ! 0 ; var h = void 0 ; if ( _ . isFunction ( b ) || ! ( h = b . match ( /[a-zA-Z0-9_.*]+|[|][|]|[&][&]|[(]|[)]/g ) ) || 1 === h . length && ! /\*/ . test ( b ) ) { var i = new va ( a , b , c , d ) ; return d . immediate && c ( i . value ) , function ( ) { i . teardown ( ) } } var j = [ ] , k = h . slice ( ) , l = ! 1 , m = ! 1 , n = function ( a , b , e , f ) { l !== ! 0 && ( k [ a ] = ! 0 , x ( k ) && ( l = ! 0 , c ( b , e , f ) ) , d && d . sync ? ( l = ! 1 , m = ! 1 , k = h . slice ( ) ) : m || ( m = ! 0 , W ( function ( ) { l = ! 1 , m = ! 1 , k = h . slice ( ) } ) ) ) } ; return _ . each ( h , function ( b , c ) { if ( ! _ . has ( xa , b ) ) { if ( /^[1-9a-zA-Z.]+(\*\*$|\*$)/ . test ( b ) || "**" === b ) { var e = /\*\*$/ . test ( b ) ; b = e ? b . replace ( ".**" , "" ) : b . replace ( ".*" , "" ) ; var h = "**" === b ? function ( a ) { return a } : g ( b ) , i = h . call ( a , a ) , k = new Z ; e ? ( i . _ _ob _ _ . _scopeDeps || ( i . _ _ob _ _ . _scopeDeps = [ ] ) ) . push ( k ) : ( i . _ _ob _ _ . _deps || ( i . _ _ob _ _ . _deps = [ ] ) ) . push ( k ) ; var l = new va ( a , function ( ) { return k . depend ( ) , NaN } , function ( a , b , d ) { n ( c , a , b , _ . extend ( { index : c } , d ) ) } , d ) ; return void j . push ( function ( ) { l . teardown ( ) , i . _ _ob _ _ . _scopeDeps && f ( i . _ _ob _ _ . _scopeDeps , k ) , i . _ _ob _ _ . _deps && f ( i . _ _ob _ _ . _deps , k ) } ) } if ( /\*\*$|\*$/ . test ( b ) ) throw new Error ( "not support" ) ; if ( /\*/ . test ( b ) ) { for ( var m = a , o = b . split ( "." ) , p = 0 , q = o . length ; p < q && "*" !== o [ p ] ; p ++ ) m = a [ o [ p ] ] ; b = b . substr ( b . indexOf ( "*" ) ) ; for ( var r = m . _ _ob _ _ . parent , s = m . _ _ob _ _ ; r ; ) b = "*." + b , s = r , r = r . parent ; var t = y ( b ) , u = new Z ; s . _globalDeps || ( s . _globalDeps = { } ) , s . _globalDeps [ t ] = u ; var v = new va ( m , function ( ) { return u . depend ( ) , NaN } , function ( a , b , d ) { n ( c ,
} , doBehavior : function ( ) { var a = Array . prototype . slice . call ( arguments ) ; a . unshift ( this . buttons ) , BI . each ( this . behaviors , function ( b , c ) { c . doBehavior . apply ( c , a ) } ) } , prependItems : function ( a ) { var b = ( this . options , this . _btnsCreator . apply ( this , arguments ) ) ; return this . buttons = BI . concat ( b , this . buttons ) , this . _isSimpleLayout ( ) && this . layouts && this . layouts . prependItems ? void this . layouts . prependItems ( b ) : ( a = this . _packageItems ( a , this . _packageBtns ( b ) ) , void this . layouts . prependItems ( this . _packageLayout ( a ) . items ) ) } , addItems : function ( a ) { var b = ( this . options , this . _btnsCreator . apply ( this , arguments ) ) ; return this . buttons = BI . concat ( this . buttons , b ) , this . _isSimpleLayout ( ) && this . layouts && this . layouts . addItems ? void this . layouts . addItems ( b ) : ( a = this . _packageItems ( a , this . _packageBtns ( b ) ) , void this . layouts . addItems ( this . _packageLayout ( a ) . items ) ) } , removeItemAt : function ( a ) { BI . removeAt ( this . buttons , a ) , this . layouts . removeItemAt ( a ) } , removeItems : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] ; var b = [ ] ; BI . each ( this . buttons , function ( c , d ) { BI . deepContains ( a , d . getValue ( ) ) && b . push ( c ) } ) , BI . removeAt ( this . buttons , b ) , this . layouts . removeItemAt ( b ) } , populate : function ( a ) { a = a || [ ] , this . empty ( ) , this . options . items = a , this . buttons = this . _btnsCreator . apply ( this , arguments ) , a = this . _isSimpleLayout ( ) ? this . _packageSimpleItems ( this . buttons ) : this . _packageItems ( a , this . _packageBtns ( this . buttons ) ) , this . layouts = BI . createWidget ( BI . extend ( { element : this } , this . _packageLayout ( a ) ) ) } , setNotSelectedValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { BI . deepContains ( a , c . getValue ( ) ) ? c . setSelected && c . setSelected ( ! 1 ) : c . setSelected && c . setSelected ( ! 0 ) } ) } , setEnabledValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { BI . deepContains ( a , c . getValue ( ) ) ? c . setEnable ( ! 0 ) : c . setEnable ( ! 1 ) } ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { BI . deepContains ( a , c . getValue ( ) ) ? c . setSelected && c . setSelected ( ! 0 ) : c . setSelected && c . setSelected ( ! 1 ) } ) } , getNotSelectedValue : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { ! c . isEnabled ( ) || c . isSelected && c . isSelected ( ) || a . push ( c . getValue ( ) ) } ) , a } , getValue : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { c . isEnabled ( ) && c . isSelected && c . isSelected ( ) && a . push ( c . getValue ( ) ) } ) , a } , getAllButtons : function ( ) { return this . buttons } , getAllLeaves : function ( ) { return this . buttons } , getSelectedButtons : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { c . isSelected && c . isSelected ( ) && a . push ( c ) } ) , a } , getNotSelectedButtons : function ( ) { var a = [ ] ; return BI . each ( this . buttons , function ( b , c ) { c . isSelected && ! c . isSelected ( ) && a . push ( c ) } ) , a } , getIndexByValue : function ( a ) { var b = - 1 ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) && d . getValue ( ) === a ) return b = c , ! 0 } ) , b } , getNodeById : function ( a ) { var b ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) && d . options . id === a ) return b = d , ! 0 } ) , b } , getNodeByValue : function ( a ) { var b ; return BI . any ( this . buttons , function ( c , d ) { if ( d . isEnabled ( ) && d . getValue ( ) === a ) return b = d , ! 0 } ) , b } , empty : function ( ) { BI . ButtonGroup . superclass . empty . apply ( this , arguments ) , this . options . items = [ ] } , destroy : function ( ) { BI . ButtonGroup . superclass . destroy . apply ( this , arguments ) , this . options . items = [ ] } } ) , BI . extend ( BI . ButtonGroup , { CHOOSE _TYPE _SINGLE : BI . Selection . Single , CHOOSE _TYPE _MULTI : BI . Selection . Multi , CHOOSE _TYPE _ALL : BI . Selection . All , CHOOSE _TYPE _NONE : BI . Selection . None , CHOOSE _TYPE _DEFAULT : BI . Selection . Default } ) , BI . ButtonGroup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.button_group" , BI . ButtonGroup ) , BI . ButtonTree = BI . inherit ( BI . ButtonGroup , { _defaultConfig : function ( ) { return BI . extend ( BI . ButtonTree . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-button-tree" } ) } , _init : function ( ) { BI . ButtonTree . superclass . _init . apply ( this , arguments ) } , setNotSelectedValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { return BI . isFunction ( c . setSelected ) ? void ( BI . deepContains ( a , c . getValue ( ) ) ? c . setSelected ( ! 1 ) : c . setSelected ( ! 0 ) ) : void c . setNotSelectedValue ( a ) } ) } , setEnabledValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttons , function ( b , c ) { return BI . isFunction ( c . setEnabledValue ) ? void c . setEnabledValue ( a ) : void ( BI . deepC
var a = this . options ; this . populate ( a . items ) , BI . isKey ( a . value ) && this . setValue ( a . value ) } , _packageBtns : function ( a ) { for ( var b = this . options , c = this . buttonMap = { } , d = b . layouts . length - 1 ; d > 0 ; d -- ) a = BI . map ( a , function ( a , e ) { var f = BI . stripEL ( e ) ; return BI . extend ( { } , b . layouts [ d ] , { items : [ BI . extend ( { } , b . layouts [ d ] . el , { el : BI . extend ( { ref : function ( a ) { BI . isKey ( c [ f . value ] ) && ( c [ f . value ] = a ) } } , f ) } ) ] } ) } ) ; return a } , _packageLayout : function ( a ) { for ( var b = this . options , c = BI . deepClone ( b . layouts [ 0 ] ) , d = BI . formatEL ( c ) . el ; d && d . items && ! BI . isEmpty ( d . items ) ; ) d = BI . formatEL ( d . items [ 0 ] ) . el ; return d . items = a , c } , addItems : function ( a ) { this . layouts . addItems ( a ) } , prependItems : function ( a ) { this . layouts . prependItems ( a ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , BI . each ( this . buttonMap , function ( b , c ) { c && ( a . deepContains ( b ) ? c . setSelected && c . setSelected ( ! 0 ) : c . setSelected && c . setSelected ( ! 1 ) ) } ) } , getNotSelectedValue : function ( ) { var a = [ ] ; return BI . each ( this . buttonMap , function ( b , c ) { c && ( ! c . isEnabled ( ) || c . isSelected && c . isSelected ( ) || a . push ( c . getValue ( ) ) ) } ) , a } , getValue : function ( ) { var a = [ ] ; return BI . each ( this . buttonMap , function ( b , c ) { c && c . isEnabled ( ) && c . isSelected && c . isSelected ( ) && a . push ( c . getValue ( ) ) } ) , a } , populate : function ( a ) { a = a || [ ] , this . options . items = a , a = this . _packageBtns ( a ) , this . layouts ? this . layouts . populate ( a ) : this . layouts = BI . createWidget ( BI . extend ( { element : this } , this . _packageLayout ( a ) ) ) } } ) , BI . VirtualGroup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.virtual_group" , BI . VirtualGroup ) , BI . Loader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Loader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-loader" , direction : "top" , isDefaultInit : ! 0 , logic : { dynamic : ! 0 , scrolly : ! 0 } , el : { type : "bi.button_group" } , items : [ ] , itemsCreator : BI . emptyFn , onLoaded : BI . emptyFn , count : ! 1 , prev : ! 1 , next : { } , hasPrev : BI . emptyFn , hasNext : BI . emptyFn } ) } , _prevLoad : function ( ) { var a = this , b = this . options ; this . prev . setLoading ( ) , b . itemsCreator . apply ( this , [ { times : -- this . times } , function ( ) { a . prev . setLoaded ( ) , a . prependItems . apply ( a , arguments ) } ] ) } , _nextLoad : function ( ) { var a = this , b = this . options ; this . next . setLoading ( ) , b . itemsCreator . apply ( this , [ { times : ++ this . times } , function ( ) { a . next . setLoaded ( ) , a . addItems . apply ( a , arguments ) } ] ) } , _init : function ( ) { BI . Loader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; b . itemsCreator === ! 1 && ( b . prev = ! 1 , b . next = ! 1 ) , b . prev !== ! 1 && ( this . prev = BI . createWidget ( BI . extend ( { type : "bi.loading_bar" } , b . prev ) ) , this . prev . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . _prevLoad ( ) } ) ) , this . button _group = BI . createWidget ( b . el , { type : "bi.button_group" , chooseType : 0 , items : b . items , behaviors : { } , layouts : [ { type : "bi.vertical" } ] } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . Loader . EVENT _CHANGE , d ) } ) , b . next !== ! 1 && ( this . next = BI . createWidget ( BI . extend ( { type : "bi.loading_bar" } , b . next ) ) , this . next . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . _nextLoad ( ) } ) ) , 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 . prev , this . button _group , this . next ) } ) ) ) ) , b . isDefaultInit && BI . isEmpty ( b . items ) && BI . nextTick ( BI . bind ( function ( ) { b . isDefaultInit && BI . isEmpty ( b . items ) && this . populate ( ) } , this ) ) , BI . isNotEmptyArray ( b . items ) && this . populate ( b . items ) } , hasPrev : function ( ) { var a = this . options ; return BI . isNumber ( a . count ) ? this . count < a . count : ! ! a . hasPrev . apply ( this , [ { times : this . times , count : this . count } ] ) } , hasNext : function ( ) { var a = this . options ; return BI . isNumber ( a . count ) ? this . count < a . count : ! ! a . hasNext . apply ( this , [ { times : this . times , count : this . count } ] ) } , prependItems : function ( a ) { this . count += a . length , this . next !== ! 1 && ( this . hasPrev ( ) ? ( this . options . items = this . options . items . concat ( a ) , this . prev . setLoaded ( ) ) : this . prev . setEnd ( ) ) , this . button _group . prependItems . apply ( this . button _group , arguments ) } , addItems : function ( a ) { this . count += a . length , BI . isObject ( this . next ) && ( this . hasNext ( ) ? ( this . options . items = this . options . items . concat ( a ) , this . next . setLoaded ( ) ) : t
BI . nextTick ( function ( ) { b . element . css ( { overflowX : a ? "auto" : "hidden" } ) } ) ) } , setOverflowY : function ( a ) { var b = this ; this . options . overflowY !== ! ! a && ( this . options . overflowY = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowY : a ? "auto" : "hidden" } ) } ) ) } , getScrollLeft : function ( ) { return this . options . scrollLeft } , getScrollTop : function ( ) { return this . options . scrollTop } , getMaxScrollLeft : function ( ) { return this . _getMaxScrollLeft ( ) } , getMaxScrollTop : function ( ) { return this . _getMaxScrollTop ( ) } , setEstimatedColumnSize : function ( a ) { this . options . estimatedColumnSize = a } , setEstimatedRowSize : function ( a ) { this . options . estimatedRowSize = a } , _reRange : function ( ) { this . renderRange = { } } , _clearChildren : function ( ) { this . container . _children = { } , this . container . attr ( "items" , [ ] ) } , restore : function ( ) { BI . each ( this . renderedCells , function ( a , b ) { b . el . _destroy ( ) } ) , this . _clearChildren ( ) , this . renderedCells = [ ] , this . renderedKeys = [ ] , this . renderRange = { } , this . _scrollLock = ! 1 } , populate : function ( a ) { a && a !== this . options . items && this . restore ( ) , this . _populate ( a ) } } ) , BI . GridView . EVENT _SCROLL = "EVENT_SCROLL" , BI . shortcut ( "bi.grid_view" , BI . GridView ) , BI . Popover = BI . inherit ( BI . Widget , { _constant : { SIZE : { SMALL : "small" , NORMAL : "normal" , BIG : "big" } , HEADER _HEIGHT : 40 } , _defaultConfig : function ( ) { return BI . extend ( BI . Popover . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-popover bi-card" , size : "normal" , header : null , body : null , footer : null } ) } , render : function ( ) { var a = this , b = this . options ; this . startX = 0 , this . startY = 0 , this . tracker = new BI . MouseMoveTracker ( function ( b , c ) { var d = a . _calculateSize ( ) , e = BI . Widget . _renderEngine . createElement ( "body" ) . width ( ) , f = BI . Widget . _renderEngine . createElement ( "body" ) . height ( ) ; a . startX += b , a . startY += c , a . element . css ( { left : BI . clamp ( a . startX , 0 , e - d . width ) + "px" , top : BI . clamp ( a . startY , 0 , f - d . height ) + "px" } ) , BI . Resizers . _resize ( ) } , function ( ) { a . tracker . releaseMouseMoves ( ) } , _global ) ; var c = { north : { el : { type : "bi.htape" , cls : "bi-message-title bi-header-background" , ref : function ( b ) { a . dragger = b } , items : [ { type : "bi.absolute" , items : [ { el : BI . isPlainObject ( b . header ) ? BI . createWidget ( b . header , { extraCls : "bi-font-bold" } ) : { type : "bi.label" , cls : "bi-font-bold" , height : this . _constant . HEADER _HEIGHT , text : b . header , textAlign : "left" } , left : 20 , top : 0 , right : 0 , bottom : 0 } ] } , { el : { type : "bi.icon_button" , cls : "bi-message-close close-font" , height : this . _constant . HEADER _HEIGHT , handler : function ( ) { a . close ( ) } } , width : 56 } ] } , height : this . _constant . HEADER _HEIGHT } , center : { el : { type : "bi.absolute" , items : [ { el : BI . createWidget ( b . body ) , left : 20 , top : 10 , right : 20 , bottom : 0 } ] } } } ; b . footer && ( c . south = { el : { type : "bi.absolute" , items : [ { el : BI . createWidget ( b . footer ) , left : 20 , top : 0 , right : 20 , bottom : 0 } ] } , height : 44 } ) ; var d = this . _calculateSize ( ) ; return { type : "bi.border" , items : c , width : d . width , height : d . height } } , mounted : function ( ) { var a = this ; this . dragger . element . mousedown ( function ( b ) { var c = a . element . offset ( ) ; a . startX = c . left , a . startY = c . top , a . tracker . captureMouseMoves ( b ) } ) } , _calculateSize : function ( ) { var a = this . options , b = { } ; if ( BI . isNotNull ( a . size ) ) switch ( a . size ) { case this . _constant . SIZE . SMALL : b . width = 450 , b . height = 220 ; break ; case this . _constant . SIZE . BIG : b . width = 900 , b . height = 500 ; break ; default : b . width = 550 , b . height = 500 } return { width : a . width || b . width , height : a . height || b . height } } , hide : function ( ) { } , open : function ( ) { this . show ( ) , this . fireEvent ( BI . Popover . EVENT _OPEN , arguments ) } , close : function ( ) { this . hide ( ) , this . fireEvent ( BI . Popover . EVENT _CLOSE , arguments ) } , setZindex : function ( a ) { this . element . css ( { "z-index" : a } ) } , destroyed : function ( ) { } } ) , BI . shortcut ( "bi.popover" , BI . Popover ) , BI . BarPopover = BI . inherit ( BI . Popover , { _defaultConfig : function ( ) { return BI . extend ( BI . BarPopover . superclass . _defaultConfig . apply ( this , arguments ) , { btns : [ BI . i18nText ( BI . i18nText ( "BI-Basic_Sure" ) ) , BI . i18nText ( BI . i18nText ( "BI-Basic_Cancel" ) ) ] } ) } , beforeCreate : function ( ) { var a = this , b = this . options ; b . footer || ( b . footer = { type : "bi.right_vertical_adapt" , lgap : 10 , items : [ { type : "bi.button" , text : this . options . btns [ 1 ] , value : 1 , level : "ignore" , handler : function ( b ) { a . fireEvent ( BI . Popover . EVENT _CANCEL , b ) , a . close ( b ) } } , { type : "bi.button" , text : this . options . btns [ 0 ] , warningTitle : b . warningTitle , value : 0 , handler : function ( b ) { a . fireEvent ( BI . Popover . EVENT _CONFIRM , b ) , a . close ( b )
items : BI . LogicFactory . createLogicItemsByDirection ( "left" , b , this . icon , this . text ) } ) ) ) ) } , doClick : function ( ) { BI . BlankIconTextItem . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . BlankIconTextItem . EVENT _CHANGE , this . getValue ( ) , this ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } } ) , BI . BlankIconTextItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.blank_icon_text_item" , BI . BlankIconTextItem ) , BI . IconTextIconItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . IconTextIconItem . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-icon-item" , logic : { dynamic : ! 1 } , iconCls1 : "close-ha-font" , iconCls2 : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextIconItem . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , height : a . height } ) ; var b = BI . createWidget ( { type : "bi.icon_label" , cls : a . iconCls1 , width : a . leftIconWrapperWidth , height : a . height , iconWidth : a . iconWidth , iconHeight : a . iconHeight } ) , c = BI . createWidget ( { type : "bi.layout" , width : a . height } ) ; BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.icon_label" , cls : a . iconCls2 , width : a . rightIconWrapperWidth , height : a . height , iconWidth : a . iconWidth , iconHeight : a . iconHeight } , top : 0 , bottom : 0 , right : 0 } ] } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , b , this . text , c ) } ) ) ) ) } , doClick : function ( ) { BI . IconTextIconItem . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextIconItem . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . IconTextIconItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_text_icon_item" , BI . IconTextIconItem ) , BI . IconTextItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . IconTextItem . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-item" , direction : BI . Direction . Left , logic : { dynamic : ! 1 } , iconWrapperWidth : null , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextItem . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _const ; this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , textAlign : "left" , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , height : a . height } ) , this . icon = BI . createWidget ( { type : "bi.icon_label" , width : a . iconWrapperWidth || a . height , height : a . height , iconWidth : a . iconWidth , iconHeight : a . iconHeight } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( a . direction ) , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( a . direction , this . icon , this . text ) } ) ) ) ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValu
responseText : a } ) } , target = [ "AjaxUpload" , ( new Date ) . getTime ( ) , String ( Math . random ( ) ) . substring ( 2 ) ] . join ( "_" ) ; try { var form = document . createElement ( '<form enctype="multipart/form-data"></form>' ) , iframe = handler . iframe || ( handler . iframe = document . createElement ( '<iframe id="' + target + '" name="' + target + '" src="' + url + '"></iframe>' ) ) } catch ( e ) { var form = document . createElement ( "form" ) , iframe = handler . iframe || ( handler . iframe = document . createElement ( "iframe" ) ) ; form . setAttribute ( "enctype" , "multipart/form-data" ) , iframe . setAttribute ( "name" , iframe . id = target ) , iframe . setAttribute ( "src" , url ) } with ( iframe . style . position = "absolute" , iframe . style . left = iframe . style . top = "-10000px" , iframe . onload = onload , iframe . onerror = function ( a ) { isFunction ( handler . onerror ) && handler . onerror ( rpe , a || _global . event ) } , iframe . onreadystatechange = function ( ) { /loaded|complete/i . test ( iframe . readyState ) ? onload ( ) : isFunction ( handler . onloadprogress ) && ( rpe . loaded < rpe . total && ++ rpe . loaded , handler . onloadprogress ( rpe , { readyState : { loading : 2 , interactive : 3 , loaded : 4 , complete : 4 } [ iframe . readyState ] || 1 } ) ) } , form . setAttribute ( "action" , handler . url + "&filename=" + _global . encodeURIComponent ( handler . file . fileName ) ) , form . setAttribute ( "target" , iframe . id ) , form . setAttribute ( "method" , "post" ) , form . appendChild ( handler . file ) , form . style . display = "none" , isFunction ( handler . onloadstart ) && handler . onloadstart ( rpe , { } ) , document . body || document . documentElement ) appendChild ( iframe ) , appendChild ( form ) , form . submit ( ) ; return handler } , xhr = null , sendFile } ( Object . prototype . toString ) , sendFiles = function ( a , b , c , d ) { var e = a . files . length , f = a . onload , g = a . onloadstart ; for ( a . current = 0 , a . total = 0 , a . sent = 0 ; a . current < e ; ) a . total += a . files [ a . current ] . fileSize || a . files [ a . current ] . size , a . current ++ ; return a . current = 0 , e && a . files [ 0 ] . fileSize !== - 1 ? ( a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = function ( h , i ) { a . onloadstart = null , a . sent += a . files [ a . current ] . fileSize || a . files [ a . current ] . size , ++ a . current < e ? ( a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = arguments . callee ) : f && ( a . onloadstart = g , a . onload = f , a . onload ( h , i ) ) } ) : e && ( a . total = 100 * e , a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = function ( h , i ) { var j = arguments . callee ; a . onloadstart = null , a . sent += 100 , ++ a . current < e ? ( /\b(chrome|safari)\b/i . test ( navigator . userAgent ) && ( a . iframe . parentNode . removeChild ( a . iframe ) , a . iframe = null ) , setTimeout ( function ( ) { a . file = a . files [ a . current ] , sendFile ( a , b , c , d ) . onload = j } , 15 ) ) : f && setTimeout ( function ( ) { a . iframe . parentNode . removeChild ( a . iframe ) , a . iframe = null , a . onloadstart = g , a . onload = f , a . onload ( h , i ) } , 15 ) } ) , a } ; BI . File = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . File . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-file display-block" , element : "<input type='file'>" , name : "" , url : "" , multiple : ! 0 , accept : "" , maxSize : - 1 } ) } , _init : function ( ) { var a = this . options ; BI . File . superclass . _init . apply ( this , arguments ) , a . multiple === ! 0 && this . element . attr ( "multiple" , "multiple" ) , this . element . attr ( "name" , a . name || this . getName ( ) ) , this . element . attr ( "title" , a . title || "" ) } , mounted : function ( ) { var a = this , b = this . options , c = this . wrap = this . _wrap ( this . element [ 0 ] , b . maxSize ) ; c . onloadstart = function ( b , c ) { a . fireEvent ( BI . File . EVENT _UPLOADSTART , arguments ) } , c . onprogress = function ( b , c ) { this . file . fileSize !== - 1 && b . simulation , a . fireEvent ( BI . File . EVENT _PROGRESS , { file : this . file , total : b . total , loaded : b . loaded , simulation : b . simulation } ) } , c . onerror = function ( ) { a . fireEvent ( BI . File . EVENT _ERROR ) } , c . onload = function ( b , c ) { var d = this ; setTimeout ( function ( ) { d . clean ( ) , d . hide ( ) , a . fireEvent ( BI . File . EVENT _UPLOADED ) } , 1e3 ) } , c . url = b . url , c . fileType = b . accept , c . attach _array = [ ] , c . attach _names = [ ] , c . attachNum = 0 } , _events : function ( a ) { var b = this ; return event . add ( a . dom . input , "change" , function ( ) { event . del ( a . dom . input , "change" , arguments . callee ) ; for ( var c = a . dom . input . cloneNode ( ! 0 ) , d = 0 , e = F ( a . dom . input ) ; d < e . length ; d ++ ) { var f = e . item ( d ) , g = f . value || f . name , h = f . fileName || ( f . fileName = g . split ( "\\" ) . pop ( ) ) , i = - 1 !== h . indexOf ( "." ) ? h . split ( "." ) . pop ( ) . toLowerCase ( ) : "unknown" , j = f . fileSize || f . size ; a . fileType && - 1 === a . fileType . indexOf ( "*." + i ) ? ( BI . Msg . toast ( BI . i18nText ( "BI-Upload_File_Type_Error" ) ) , b . fireEvent ( BI . File . EVENT _ERROR , { errorTy
onAsyncSuccess : null , onNodeCreated : null , onClick : null , onDblClick : null , onRightClick : null , onMouseDown : null , onMouseUp : null , onExpand : null , onCollapse : null , onRemove : null } } , _initRoot = function ( a ) { var b = data . getRoot ( a ) ; b || ( b = { } , data . setRoot ( a , b ) ) , b [ a . data . key . children ] = [ ] , b . expandTriggerFlag = ! 1 , b . curSelectedList = [ ] , b . noSelection = ! 0 , b . createdNodes = [ ] , b . zId = 0 , b . _ver = ( new Date ) . getTime ( ) } , _initCache = function ( a ) { var b = data . getCache ( a ) ; b || ( b = { } , data . setCache ( a , b ) ) , b . nodes = [ ] , b . doms = [ ] } , _bindEvent = function ( a ) { var b = a . treeObj , c = consts . event ; b . bind ( c . NODECREATED , function ( b , c , d ) { tools . apply ( a . callback . onNodeCreated , [ b , c , d ] ) } ) , b . bind ( c . CLICK , function ( b , c , d , e , f ) { tools . apply ( a . callback . onClick , [ c , d , e , f ] ) } ) , b . bind ( c . EXPAND , function ( b , c , d ) { tools . apply ( a . callback . onExpand , [ b , c , d ] ) } ) , b . bind ( c . COLLAPSE , function ( b , c , d ) { tools . apply ( a . callback . onCollapse , [ b , c , d ] ) } ) , b . bind ( c . ASYNC _SUCCESS , function ( b , c , d , e ) { tools . apply ( a . callback . onAsyncSuccess , [ b , c , d , e ] ) } ) , b . bind ( c . ASYNC _ERROR , function ( b , c , d , e , f , g ) { tools . apply ( a . callback . onAsyncError , [ b , c , d , e , f , g ] ) } ) , b . bind ( c . REMOVE , function ( b , c , d ) { tools . apply ( a . callback . onRemove , [ b , c , d ] ) } ) , b . bind ( c . SELECTED , function ( b , c , d , e ) { tools . apply ( a . callback . onSelected , [ c , d , e ] ) } ) , b . bind ( c . UNSELECTED , function ( b , c , d , e ) { tools . apply ( a . callback . onUnSelected , [ c , d , e ] ) } ) } , _unbindEvent = function ( a ) { var b = a . treeObj , c = consts . event ; b . unbind ( c . NODECREATED ) . unbind ( c . CLICK ) . unbind ( c . EXPAND ) . unbind ( c . COLLAPSE ) . unbind ( c . ASYNC _SUCCESS ) . unbind ( c . ASYNC _ERROR ) . unbind ( c . REMOVE ) . unbind ( c . SELECTED ) . unbind ( c . UNSELECTED ) } , _eventProxy = function ( a ) { var b = a . target , c = data . getSetting ( a . data . treeId ) , d = "" , e = null , f = "" , g = "" , h = null , i = null , j = null ; if ( tools . eqs ( a . type , "mousedown" ) ? g = "mousedown" : tools . eqs ( a . type , "mouseup" ) ? g = "mouseup" : tools . eqs ( a . type , "contextmenu" ) ? g = "contextmenu" : tools . eqs ( a . type , "click" ) ? tools . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + consts . id . SWITCH ) ? ( d = tools . getNodeMainDom ( b ) . id , f = "switchNode" ) : ( j = tools . getMDom ( c , b , [ { tagName : "a" , attrName : "treeNode" + consts . id . A } ] ) , j && ( d = tools . getNodeMainDom ( j ) . id , f = "clickNode" ) ) : tools . eqs ( a . type , "dblclick" ) && ( g = "dblclick" , j = tools . getMDom ( c , b , [ { tagName : "a" , attrName : "treeNode" + consts . id . A } ] ) , j && ( d = tools . getNodeMainDom ( j ) . id , f = "switchNode" ) ) , g . length > 0 && 0 == d . length && ( j = tools . getMDom ( c , b , [ { tagName : "a" , attrName : "treeNode" + consts . id . A } ] ) , j && ( d = tools . getNodeMainDom ( j ) . id ) ) , d . length > 0 ) switch ( e = data . getNodeCache ( c , d ) , f ) { case "switchNode" : e . isParent && ( tools . eqs ( a . type , "click" ) || tools . eqs ( a . type , "dblclick" ) && tools . apply ( c . view . dblClickExpand , [ c . treeId , e ] , c . view . dblClickExpand ) ) ? h = handler . onSwitchNode : f = "" ; break ; case "clickNode" : h = handler . onClickNode } switch ( g ) { case "mousedown" : i = handler . onZTreeMousedown ; break ; case "mouseup" : i = handler . onZTreeMouseup ; break ; case "dblclick" : i = handler . onZTreeDblclick ; break ; case "contextmenu" : i = handler . onZTreeContextmenu } var k = { stop : ! 1 , node : e , nodeEventType : f , nodeEventCallback : h , treeEventType : g , treeEventCallback : i } ; return k } , _initNode = function ( a , b , c , d , e , f , g ) { if ( c ) { var h = data . getRoot ( a ) , i = a . data . key . children ; c . level = b , c . tId = a . treeId + "_" + ++ h . zId , c . parentTId = d ? d . tId : null , c . open = "string" == typeof c . open ? tools . eqs ( c . open , "true" ) : ! ! c . open , c [ i ] && c [ i ] . length > 0 ? ( c . isParent = ! 0 , c . zAsync = ! 0 ) : ( c . isParent = "string" == typeof c . isParent ? tools . eqs ( c . isParent , "true" ) : ! ! c . isParent , c . open = ! ( ! c . isParent || a . async . enable ) && c . open , c . zAsync = ! c . isParent ) , c . isFirstNode = e , c . isLastNode = f , c . getParentNode = function ( ) { return data . getNodeCache ( a , c . parentTId ) } , c . getPreNode = function ( ) { return data . getPreNode ( a , c ) } , c . getNextNode = function ( ) { return data . getNextNode ( a , c ) } , c . isAjaxing = ! 1 , data . fixPIdKeyValue ( a , c ) } } , _init = { bind : [ _bindEvent ] , unbind : [ _unbindEvent ] , caches : [ _initCache ] , nodes : [ _initNode ] , proxys : [ _eventProxy ] , roots : [ _initRoot ] , beforeA : [ ] , afterA : [ ] , innerBeforeA : [ ] , innerAfterA : [ ] , zTreeTools : [ ] } , data = { addNodeCache : function ( a , b ) { data . getCache ( a ) . nodes [ data . getNodeCacheId ( b . tId ) ] = b } , getNodeCacheId : function ( a ) { return a . substring ( a . lastIndexOf ( "_" ) + 1 ) } , addAfterA : function ( a ) { _init . afterA . push ( a ) } , addBeforeA : function ( a ) { _init . beforeA . push ( a ) } , addInnerAfterA : function ( a ) { _init . innerAfterA . push ( a ) } , addInnerBeforeA : function ( a ) { _init . inner
if ( s . eqs ( a . type , "mouseover" ) ? c . check . enable && s . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + t . id . CHECK ) && ( d = s . getNodeMainDom ( b ) . id , f = "mouseoverCheck" ) : s . eqs ( a . type , "mouseout" ) ? c . check . enable && s . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + t . id . CHECK ) && ( d = s . getNodeMainDom ( b ) . id , f = "mouseoutCheck" ) : s . eqs ( a . type , "click" ) && c . check . enable && s . eqs ( b . tagName , "span" ) && null !== b . getAttribute ( "treeNode" + t . id . CHECK ) && ( d = s . getNodeMainDom ( b ) . id , f = "checkNode" ) , d . length > 0 ) switch ( e = v . getNodeCache ( c , d ) , f ) { case "checkNode" : h = n . onCheckNode ; break ; case "mouseoverCheck" : h = n . onMouseoverCheck ; break ; case "mouseoutCheck" : h = n . onMouseoutCheck } var j = { stop : "checkNode" === f , node : e , nodeEventType : f , nodeEventCallback : h , treeEventType : g , treeEventCallback : i } ; return j } , i = function ( a , b , c , d , e , f , g ) { if ( c ) { var h = a . data . key . checked ; if ( "string" == typeof c [ h ] && ( c [ h ] = s . eqs ( c [ h ] , "true" ) ) , c [ h ] = ! ! c [ h ] , c . checkedOld = c [ h ] , "string" == typeof c . nocheck && ( c . nocheck = s . eqs ( c . nocheck , "true" ) ) , c . nocheck = ! ! c . nocheck || a . check . nocheckInherit && d && ! ! d . nocheck , "string" == typeof c . chkDisabled && ( c . chkDisabled = s . eqs ( c . chkDisabled , "true" ) ) , c . chkDisabled = ! ! c . chkDisabled || a . check . chkDisabledInherit && d && ! ! d . chkDisabled , "string" == typeof c . halfCheck && ( c . halfCheck = s . eqs ( c . halfCheck , "true" ) ) , c . halfCheck = ! ! c . halfCheck , c . check _Child _State = - 1 , c . check _Focus = ! 1 , c . getCheckStatus = function ( ) { return v . getCheckStatus ( a , c ) } , a . check . chkStyle == t . radio . STYLE && a . check . radioType == t . radio . TYPE _ALL && c [ h ] ) { var i = v . getRoot ( a ) ; i . radioCheckedList . push ( c ) } } } , j = function ( a , b , c ) { a . data . key . checked ; a . check . enable && ( v . makeChkFlag ( a , b ) , c . push ( "<span ID='" , b . tId , t . id . CHECK , "' class='" , u . makeChkClass ( a , b ) , "' treeNode" , t . id . CHECK , b . nocheck === ! 0 ? " style='display:none;'" : "" , "></span>" ) ) } , k = function ( a , b ) { b . checkNode = function ( a , b , c , d ) { var e = this . setting . data . key . checked ; if ( a . chkDisabled !== ! 0 && ( b !== ! 0 && b !== ! 1 && ( b = ! a [ e ] ) , d = ! ! d , ( a [ e ] !== b || c ) && ( ! d || 0 != s . apply ( this . setting . callback . beforeCheck , [ this . setting . treeId , a ] , ! 0 ) ) && s . uCanDo ( this . setting ) && this . setting . check . enable && a . nocheck !== ! 0 ) ) { a [ e ] = b ; var f = w ( a , t . id . CHECK , this . setting ) ; ( c || this . setting . check . chkStyle === t . radio . STYLE ) && u . checkNodeRelation ( this . setting , a ) , u . setChkClass ( this . setting , f , a ) , u . repairParentChkClassWithSelf ( this . setting , a ) , d && this . setting . treeObj . trigger ( t . event . CHECK , [ null , this . setting . treeId , a ] ) } } , b . checkAllNodes = function ( a ) { u . repairAllChk ( this . setting , ! ! a ) } , b . getCheckedNodes = function ( a ) { var b = this . setting . data . key . children ; return a = a !== ! 1 , v . getTreeCheckedNodes ( this . setting , v . getRoot ( this . setting ) [ b ] , a ) } , b . getChangeCheckedNodes = function ( ) { var a = this . setting . data . key . children ; return v . getTreeChangeCheckedNodes ( this . setting , v . getRoot ( this . setting ) [ a ] ) } , b . setChkDisabled = function ( a , b , c , d ) { b = ! ! b , c = ! ! c , d = ! ! d , u . repairSonChkDisabled ( this . setting , a , b , d ) , u . repairParentChkDisabled ( this . setting , a . getParentNode ( ) , b , c ) } ; var c = b . updateNode ; b . updateNode = function ( a , d ) { if ( c && c . apply ( b , arguments ) , a && this . setting . check . enable ) { var e = w ( a , this . setting ) ; if ( e . get ( 0 ) && s . uCanDo ( this . setting ) ) { var f = w ( a , t . id . CHECK , this . setting ) ; 1 != d && this . setting . check . chkStyle !== t . radio . STYLE || u . checkNodeRelation ( this . setting , a ) , u . setChkClass ( this . setting , f , a ) , u . repairParentChkClassWithSelf ( this . setting , a ) } } } } , l = { getRadioCheckedList : function ( a ) { for ( var b = v . getRoot ( a ) . radioCheckedList , c = 0 , d = b . length ; c < d ; c ++ ) v . getNodeCache ( a , b [ c ] . tId ) || ( b . splice ( c , 1 ) , c -- , d -- ) ; return b } , getCheckStatus : function ( a , b ) { if ( ! a . check . enable || b . nocheck || b . chkDisabled ) return null ; var c = a . data . key . checked , d = { checked : b [ c ] , half : b . halfCheck ? b . halfCheck : a . check . chkStyle == t . radio . STYLE ? 2 === b . check _Child _State : b [ c ] ? b . check _Child _State > - 1 && b . check _Child _State < 2 : b . check _Child _State > 0 } ; return d } , getTreeCheckedNodes : function ( a , b , c , d ) { if ( ! b ) return [ ] ; var e = a . data . key . children , f = a . data . key . checked , g = c && a . check . chkStyle == t . radio . STYLE && a . check . radioType == t . radio . TYPE _ALL ; d = d ? d : [ ] ; for ( var h = 0 , i = b . length ; h < i && ( b [ h ] . nocheck === ! 0 || b [ h ] . chkDisabled === ! 0 || b [ h ] [ f ] != c || ( d . push ( b [ h ] ) , ! g ) ) && ( v . getTreeCheckedNodes ( a , b [ h ] [ e ] , c , d ) , ! ( g && d . length > 0 ) ) ; h ++ ) ; return d } , getTreeChangeCheckedNodes : function ( a , b , c ) { if ( ! b ) return [ ] ; var d = a . data . key . children , e = a . dat
var a = BI . LastPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-last-plus-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . LastPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.last_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 . LastPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . LastPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.last_plus_group_node" , BI . LastPlusGroupNode ) , BI . MidPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MidPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-mid-plus-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . MidPlusGroupNode . 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 , 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 . MidPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MidPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.mid_plus_group_node" , BI . MidPlusGroupNode ) , BI . MultiLayerIconArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerIconArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-icon-arrow-node bi-list-item" , layer : 0 , id : "" , pId : "" , open : ! 1 , height : 24 , iconHeight : 16 , iconWidth : 16 , iconCls : "" } ) } , _init : function ( ) { BI . MultiLayerIconArrowNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.icon_arrow_node" , iconCls : b . iconCls , id : b . id , pId : b . pId , open : b . open , height : b . height , iconHeight : b . iconHeight , iconWidth : b . iconWidth , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . node . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 , b . layer , function ( ) { c . push ( { type : "bi.layout" , width : 24 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 24 ) , items : [ c ] } ) } , isOnce : function ( ) { return ! 0 } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . nod
} , { el : { type : "bi.absolute" , items : [ { el : this . colorPicker , left : 10 , right : 10 , top : 5 , bottom : 5 } ] } , height : 60 } , { el : this . more , height : 24 } ] } , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : { type : "bi.layout" , cls : "disable-mask" , invisible : ! b . disabled , ref : function ( ) { a . mask = this } } , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } } , mounted : function ( ) { var a = this . options ; BI . isNotNull ( a . value ) && this . setValue ( a . value ) } , _setEnable : function ( a ) { BI . ColorChooserPopup . superclass . _setEnable . apply ( this , arguments ) , this . mask . setVisible ( ! a ) } , setStoreColors : function ( a ) { if ( BI . isArray ( a ) ) { var b = BI . map ( a , function ( a , b ) { return { value : b } } ) ; BI . count ( a . length , 8 , function ( a ) { b . push ( { value : "" , disabled : ! 0 } ) } ) , this . storeColors . populate ( [ b ] ) } } , setValue : function ( a ) { this . colorEditor . setValue ( a ) , this . colorPicker . setValue ( a ) , this . storeColors . setValue ( a ) } , getValue : function ( ) { return this . colorEditor . getValue ( ) } } ) , BI . ColorChooserPopup . EVENT _VALUE _CHANGE = "ColorChooserPopup.EVENT_VALUE_CHANGE" , BI . ColorChooserPopup . EVENT _CHANGE = "ColorChooserPopup.EVENT_CHANGE" , BI . shortcut ( "bi.color_chooser_popup" , BI . ColorChooserPopup ) , BI . SimpleColorChooserPopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SimpleColorChooserPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-color-chooser-popup" } ) } , _init : function ( ) { BI . SimpleColorChooserPopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . popup = BI . createWidget ( { type : "bi.color_chooser_popup" , value : b . value , element : this , editor : { type : "bi.simple_color_picker_editor" } } ) , this . popup . on ( BI . ColorChooserPopup . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SimpleColorChooserPopup . EVENT _CHANGE , arguments ) } ) , this . popup . on ( BI . ColorChooserPopup . EVENT _VALUE _CHANGE , function ( ) { a . fireEvent ( BI . SimpleColorChooserPopup . EVENT _VALUE _CHANGE , arguments ) } ) } , setStoreColors : function ( a ) { this . popup . setStoreColors ( a ) } , setValue : function ( a ) { this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . SimpleColorChooserPopup . EVENT _VALUE _CHANGE = "ColorChooserPopup.EVENT_VALUE_CHANGE" , BI . SimpleColorChooserPopup . EVENT _CHANGE = "ColorChooserPopup.EVENT_CHANGE" , BI . shortcut ( "bi.simple_color_chooser_popup" , BI . SimpleColorChooserPopup ) , BI . SimpleColorChooser = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SimpleColorChooser . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-simple-color-chooser" , value : "#ffffff" } ) } , _init : function ( ) { BI . SimpleColorChooser . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . combo = BI . createWidget ( { type : "bi.color_chooser" , element : this , container : b . container , value : b . value , popup : { type : "bi.simple_color_chooser_popup" } } ) , this . combo . on ( BI . ColorChooser . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SimpleColorChooser . EVENT _CHANGE , arguments ) } ) } , 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 . SimpleColorChooser . EVENT _CHANGE = "ColorChooser.EVENT_CHANGE" , BI . shortcut ( "bi.simple_color_chooser" , BI . SimpleColorChooser ) , BI . ColorChooserTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { var a = BI . ColorChooserTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-color-chooser-trigger bi-border" , height : 24 } ) } , _init : function ( ) { BI . ColorChooserTrigger . superclass . _init . apply ( this , arguments ) , this . colorContainer = BI . createWidget ( { type : "bi.layout" , cls : "color-chooser-trigger-content" + ( BI . isIE9Below && BI . isIE9Below ( ) ? " hack" : "" ) } ) ; var a = BI . createWidget ( { type : "bi.icon_button" , disableSelected : ! 0 , cls : "icon-combo-down-icon trigger-triangle-font" , width : 12 , height : 8 } ) ; BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . colorContainer , left : 3 , right : 3 , top : 3 , bottom : 3 } , { el : a , right : - 1 , bottom : 1 } ] } ) , BI . isNotNull ( this . options . value ) && this . setValue ( this . options . value ) } , setValue : function ( a ) { BI . ColorChooserTrigger . superclass . setValue . apply ( this , arguments ) , "" === a ? this . colorContainer . element . css ( "background-color" , "" ) . removeClass ( "trans-color-background" ) . addClass ( " auto - color - backgro
items : BI . createItems ( a . items , { type : "bi.single_select_icon_text_item" , height : 24 } ) , chooseType : a . chooseType , layouts : [ { type : "bi.vertical" } ] , value : a . value } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . IconComboPopup . EVENT _CHANGE , c , d ) } ) , BI . createWidget ( { type : "bi.vertical" , element : this , vgap : 5 , items : [ this . popup ] } ) } , populate : function ( a ) { BI . IconComboPopup . superclass . populate . apply ( this , arguments ) , a = BI . createItems ( a , { type : "bi.single_select_icon_text_item" , height : 24 } ) , this . popup . populate ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , setValue : function ( a ) { this . popup . setValue ( a ) } } ) , BI . IconComboPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_combo_popup" , BI . IconComboPopup ) , BI . IconComboTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . IconComboTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-icon-combo-trigger" , el : { } , items : [ ] , iconCls : "" , width : 24 , height : 24 , isShowDown : ! 0 , value : "" } ) } , _init : function ( ) { BI . IconComboTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = "" ; BI . isKey ( a . value ) && ( b = this . _digest ( a . value , a . items ) ) , this . button = BI . createWidget ( a . el , { type : "bi.icon_change_button" , cls : "icon-combo-trigger-icon" , iconCls : b , disableSelected : ! 0 , width : a . isShowDown ? a . width - 12 : a . width , height : a . height , iconWidth : a . iconWidth , iconHeight : a . iconHeight , selected : BI . isNotEmptyString ( b ) } ) , this . down = BI . createWidget ( { type : "bi.icon_button" , disableSelected : ! 0 , cls : "icon-combo-down-icon trigger-triangle-font font-size-12" , width : 12 , height : 8 , selected : BI . isNotEmptyString ( b ) } ) , this . down . setVisible ( a . isShowDown ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . button , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : this . down , right : 3 , bottom : 0 } ] } ) } , _digest : function ( a , b ) { var c = "" ; return a = BI . isArray ( a ) ? a [ 0 ] : a , BI . any ( b , function ( b , d ) { if ( a === d . value ) return c = d . iconCls , ! 0 } ) , c } , populate : function ( a ) { var b = this . options ; this . options . items = a || [ ] , this . button . setIcon ( b . iconCls ) , this . button . setSelected ( ! 1 ) , this . down . setSelected ( ! 1 ) } , setValue : function ( a ) { BI . IconComboTrigger . superclass . setValue . apply ( this , arguments ) ; var b = this . options , c = this . _digest ( a , this . options . items ) ; a = BI . isArray ( a ) ? a [ 0 ] : a , BI . isNotEmptyString ( c ) ? ( this . button . setIcon ( c ) , this . button . setSelected ( ! 0 ) , this . down . setSelected ( ! 0 ) ) : ( this . button . setIcon ( b . iconCls ) , this . button . setSelected ( ! 1 ) , this . down . setSelected ( ! 1 ) ) } } ) , BI . IconComboTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_combo_trigger" , BI . IconComboTrigger ) , BI . IconTextValueCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . IconTextValueCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-icon-text-value-combo" , height : 24 , iconHeight : null , iconWidth : null , value : "" , attributes : { tabIndex : 0 } } ) } , _init : function ( ) { BI . IconTextValueCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.select_icon_text_trigger" , cls : "icon-text-value-trigger" , items : b . items , height : b . height , text : b . text , iconCls : b . iconCls , value : b . value , iconHeight : b . iconHeight , iconWidth : b . iconWidth , iconWrapperWidth : b . iconWrapperWidth } ) , this . popup = BI . createWidget ( { type : "bi.icon_text_value_combo_popup" , items : b . items , value : b . value , iconHeight : b . iconHeight , iconWidth : b . iconWidth , iconWrapperWidth : b . iconWrapperWidth } ) , this . popup . on ( BI . IconTextValueComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . textIconCombo . hideView ( ) , a . fireEvent ( BI . IconTextValueCombo . EVENT _CHANGE , arguments ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . textIconCombo = BI . createWidget ( { type : "bi.combo" , element : this , container : b . container , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 240 } } ) , BI . isKey ( b . value ) && this . setValue ( b . value ) } , _checkError : function ( a ) { if ( BI . isNotNull ( a ) ) { a = BI . isArray ( a ) ? a : [ a ] ; var b = BI . find ( this . options . items , function ( b , c ) { return BI . contains ( a , c . value ) } ) ; BI . isNull ( b ) ? this . element . removeClass ( "combo-error" ) . addClass ( "combo-error" ) : this . element . removeClass ( "combo-error" ) } } ,
hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 0 , watermark : "" , errorText : "" , height : 24 } ) } , _init : function ( ) { BI . SignEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , value : b . value , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText } ) , this . text = BI . createWidget ( { type : "bi.text_button" , cls : "sign-editor-text" , title : b . title , warningTitle : b . warningTitle , tipType : b . tipType , textAlign : "left" , height : b . height , hgap : 4 , handler : function ( ) { a . _showInput ( ) , a . editor . focus ( ) , a . editor . selectAll ( ) } } ) , this . text . on ( BI . TextButton . EVENT _CHANGE , function ( ) { BI . nextTick ( function ( ) { a . fireEvent ( BI . SignEditor . EVENT _CLICK _LABEL ) } ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . text , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _FOCUS , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _BLUR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _CLICK , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . SignEditor . EVENT _KEY _DOWN , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _VALID , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . _showHint ( ) , a . _checkText ( ) , a . fireEvent ( BI . SignEditor . EVENT _CONFIRM , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _START , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _PAUSE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _STOP , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _SPACE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . _checkText ( ) , a . fireEvent ( BI . SignEditor . EVENT _ERROR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _ENTER , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _RESTRICT , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . fireEvent ( BI . SignEditor . EVENT _EMPTY , arguments ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ this . editor ] } ) , this . _showHint ( ) , a . _checkText ( ) } , _checkText : function ( ) { var a = this . options ; BI . nextTick ( BI . bind ( function ( ) { "" === 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" ) ) } , this ) ) } , _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 . getLastValidVa
} ) ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . next ] } ) , b . isDefaultInit && BI . isEmpty ( b . items ) && BI . nextTick ( BI . bind ( function ( ) { this . populate ( ) } , this ) ) , BI . isNotEmptyArray ( b . items ) && this . populate ( b . items ) } , hasNext : function ( ) { var a = this . options ; return BI . isNumber ( a . count ) ? this . count < a . count : ! ! a . hasNext . apply ( this , [ { times : this . times , count : this . count } ] ) } , addItems : function ( a ) { this . count += a . length , BI . isObject ( this . next ) && ( this . hasNext ( ) ? ( this . options . items = this . options . items . concat ( a ) , this . next . setLoaded ( ) ) : this . next . setEnd ( ) ) , this . button _group . addItems . apply ( this . button _group , arguments ) , this . next . element . appendTo ( this . element ) } , populate : function ( a ) { var b = this , c = this . options ; return 0 === arguments . length && BI . isFunction ( c . itemsCreator ) ? void c . itemsCreator . apply ( this , [ { times : 1 } , function ( ) { if ( 0 === arguments . length ) throw new Error ( "参数不能为空" ) ; b . populate . apply ( b , arguments ) , c . onLoaded ( ) } ] ) : ( this . options . items = a , this . times = 1 , this . count = 0 , this . count += a . length , BI . isObject ( this . next ) && ( this . hasNext ( ) ? this . next . setLoaded ( ) : this . next . invisible ( ) ) , BI . DOM . hang ( [ this . next ] ) , this . button _group . populate . apply ( this . button _group , arguments ) , void this . next . element . appendTo ( this . element ) ) } , empty : function ( ) { BI . DOM . hang ( [ this . next ] ) , this . button _group . empty ( ) , this . next . element . appendTo ( this . element ) , BI . each ( [ this . next ] , function ( a , b ) { b && b . setVisible ( ! 1 ) } ) } , setNotSelectedValue : function ( ) { this . button _group . setNotSelectedValue . apply ( this . button _group , arguments ) } , getNotSelectedValue : function ( ) { return this . button _group . getNotSelectedValue ( ) } , setValue : function ( ) { this . button _group . setValue . apply ( this . button _group , arguments ) } , getValue : function ( ) { return this . button _group . getValue . apply ( this . button _group , arguments ) } , getAllButtons : function ( ) { return this . button _group . getAllButtons ( ) } , getAllLeaves : function ( ) { return this . button _group . getAllLeaves ( ) } , getSelectedButtons : function ( ) { return this . button _group . getSelectedButtons ( ) } , getNotSelectedButtons : function ( ) { return this . button _group . getNotSelectedButtons ( ) } , getIndexByValue : function ( a ) { return this . button _group . getIndexByValue ( a ) } , getNodeById : function ( a ) { return this . button _group . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . button _group . getNodeByValue ( a ) } } ) , BI . ListLoader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.list_loader" , BI . ListLoader ) , BI . SortList = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SortList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-sort-list" , isDefaultInit : ! 0 , el : { type : "bi.button_group" } , items : [ ] , itemsCreator : BI . emptyFn , onLoaded : BI . emptyFn , count : ! 1 , next : { } , hasNext : BI . emptyFn } ) } , _init : function ( ) { BI . SortList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . loader = BI . createWidget ( { type : "bi.list_loader" , element : this , isDefaultInit : b . isDefaultInit , el : b . el , items : this . _formatItems ( b . items ) , itemsCreator : function ( c , d ) { b . itemsCreator ( c , function ( b ) { d ( a . _formatItems ( b ) ) } ) } , onLoaded : b . onLoaded , count : b . count , next : b . next , hasNext : b . hasNext } ) , this . loader . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SortList . EVENT _CHANGE , c , d ) } ) , this . loader . element . sortable ( { containment : b . containment || this . element , connectWith : b . connectWith || ".bi-sort-list" , items : ".sort-item" , cursor : b . cursor || "drag" , tolerance : b . tolerance || "intersect" , placeholder : { element : function ( a ) { var b = BI . createWidget ( { type : "bi.layout" , cls : "bi-sortable-holder" , height : a . outerHeight ( ) } ) ; return b . element . css ( { "margin-left" : a . css ( "margin-left" ) , "margin-right" : a . css ( "margin-right" ) , "margin-top" : a . css ( "margin-top" ) , "margin-bottom" : a . css ( "margin-bottom" ) , margin : a . css ( "margin" ) } ) , b . element } , update : function ( ) { } } , start : function ( a , b ) { } , stop : function ( b , c ) { a . fireEvent ( BI . SortList . EVENT _CHANGE ) } , over : function ( a , b ) { } } ) } , _formatItems : function ( a ) { return BI . each ( a , function ( a , b ) { b = BI . stripEL ( b ) , b . cls = b . cls ? b . cls + " sort-item" : "sort-item" , b . attributes = { sorted : b . value } } ) , a } , hasNext : function ( ) { return this . loader . hasNext ( ) } , addItems : function ( a ) { this . loader . addItems ( a ) } , populate : function ( a ) { a && ( arguments [ 0 ] = this . _format
_defaultConfig : function ( ) { return BI . extend ( BI . SmallSelectTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-small-select-text-trigger bi-border" , height : 20 } ) } , _init : function ( ) { this . options . height -= 2 , BI . SmallSelectTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _digest ( a . text , a . items ) ; this . trigger = BI . createWidget ( { type : "bi.small_text_trigger" , element : this , height : a . height - 2 , text : b . text , cls : b . cls } ) } , _digest : function ( a , b ) { var c = this . options ; a = BI . isArray ( a ) ? a : [ a ] ; var d = [ ] , e = BI . Tree . transformToArrayFormat ( b ) ; return BI . each ( e , function ( b , c ) { BI . deepContains ( a , c . value ) && ! BI . contains ( d , c . text || c . value ) && d . push ( c . text || c . value ) } ) , d . length > 0 ? { cls : "" , text : d . join ( "," ) } : { cls : "bi-water-mark" , text : c . text } } , setValue : function ( a ) { var b = this . _digest ( a , this . options . items ) ; this . trigger . element . removeClass ( "bi-water-mark" ) . addClass ( b . cls ) , this . trigger . setText ( b . text ) } , populate : function ( a ) { this . options . items = a } } ) , BI . shortcut ( "bi.small_select_text_trigger" , BI . SmallSelectTextTrigger ) , BI . SmallTextTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { var a = BI . SmallTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-trigger" , height : 20 } ) } , _init : function ( ) { BI . SmallTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , height : a . height , text : a . text , hgap : b . hgap } ) , this . trigerButton = BI . createWidget ( { type : "bi.trigger_icon_button" , width : a . triggerWidth || a . height } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . text } , { el : this . trigerButton , width : a . triggerWidth || a . height } ] } ) } , setValue : function ( a ) { this . text . setValue ( a ) } , setText : function ( a ) { this . text . setText ( a ) } } ) , BI . shortcut ( "bi.small_text_trigger" , BI . SmallTextTrigger ) , BI . MonthDateCombo = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . MonthDateCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-month-combo" , height : 24 , container : null } ) } , _init : function ( ) { BI . MonthDateCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.date_triangle_trigger" } ) , this . popup = BI . createWidget ( { type : "bi.month_popup" , behaviors : b . behaviors } ) , this . popup . on ( BI . YearPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , offsetStyle : "center" , container : b . container , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , stopPropagation : ! 1 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _CHANGE , function ( ) { a . combo . hideView ( ) , a . fireEvent ( BI . MonthDateCombo . EVENT _CHANGE ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . doBehavior ( ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . MonthDateCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.month_date_combo" , BI . MonthDateCombo ) , BI . YearDateCombo = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . YearDateCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-year-combo" , min : "1900-01-01" , max : "2099-12-31" , behaviors : { } , height : 24 , container : null } ) } , _init : function ( ) { BI . YearDateCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.date_triangle_trigger" } ) , this . popup = BI . createWidget ( { type : "bi.year_popup" , behaviors : b . behaviors , min : b . min , max : b . max } ) , this . popup . on ( BI . YearPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . YearDateCombo . EVENT _CHANGE ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , offsetStyle : "center" , element : this , container : b . container , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 100 , stopPropagation : ! 1 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . YearDateCombo . EVENT _CHANGE ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . doBehavior ( ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue :
this . dynamicPane . setValue ( c ) ; break ; case BI . DynamicDateTimePane . Static : default : if ( this . _checkValueValid ( c ) ) { var d = BI . getDate ( ) ; this . ymd . setValue ( { year : d . getFullYear ( ) , month : d . getMonth ( ) + 1 } ) } else this . ymd . setValue ( c ) } } , getValue : function ( ) { return { type : this . dateTab . getSelect ( ) , value : this . dateTab . getValue ( ) } } } ) , BI . shortcut ( "bi.dynamic_date_time_pane" , BI . DynamicDateTimePane ) , BI . extend ( BI . DynamicDateTimePane , { Static : 1 , Dynamic : 2 } ) , BI . DownListCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DownListCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-down-list-combo" , height : 24 , items : [ ] , adjustLength : 0 , direction : "bottom" , trigger : "click" , container : null , stopPropagation : ! 1 , el : { } } ) } , _init : function ( ) { BI . DownListCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . popupview = BI . createWidget ( { type : "bi.down_list_popup" , items : b . items , chooseType : b . chooseType , value : b . value } ) , this . popupview . on ( BI . DownListPopup . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . DownListCombo . EVENT _CHANGE , b ) , a . downlistcombo . hideView ( ) } ) , this . popupview . on ( BI . DownListPopup . EVENT _SON _VALUE _CHANGE , function ( b , c ) { a . fireEvent ( BI . DownListCombo . EVENT _SON _VALUE _CHANGE , b , c ) , a . downlistcombo . hideView ( ) } ) , this . downlistcombo = BI . createWidget ( { element : this , type : "bi.combo" , trigger : b . trigger , isNeedAdjustWidth : ! 1 , container : b . container , adjustLength : b . adjustLength , direction : b . direction , stopPropagation : b . stopPropagation , el : BI . createWidget ( b . el , { type : "bi.icon_trigger" , extraCls : b . iconCls ? b . iconCls : "" , width : b . width , height : b . height } ) , popup : { el : this . popupview , stopPropagation : ! 0 , maxHeight : 1e3 , minWidth : 140 } } ) , this . downlistcombo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . DownListCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , hideView : function ( ) { this . downlistcombo . hideView ( ) } , showView : function ( ) { this . downlistcombo . showView ( ) } , populate : function ( a ) { this . popupview . populate ( a ) } , setValue : function ( a ) { this . popupview . setValue ( a ) } , getValue : function ( ) { return this . popupview . getValue ( ) } } ) , BI . DownListCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . DownListCombo . EVENT _SON _VALUE _CHANGE = "EVENT_SON_VALUE_CHANGE" , BI . DownListCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.down_list_combo" , BI . DownListCombo ) , BI . DownListGroup = BI . inherit ( BI . Widget , { constants : { iconCls : "check-mark-ha-font" } , _defaultConfig : function ( ) { return BI . extend ( BI . DownListGroup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-down-list-group" , items : [ { el : { } } ] } ) } , _init : function ( ) { BI . DownListGroup . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this ; this . downlistgroup = BI . createWidget ( { element : this , type : "bi.button_tree" , items : a . items , chooseType : 0 , layouts : [ { type : "bi.vertical" , hgap : 0 , vgap : 0 } ] , value : a . value } ) , this . downlistgroup . on ( BI . Controller . EVENT _CHANGE , function ( a ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . DownListGroup . EVENT _CHANGE , arguments ) } ) } , getValue : function ( ) { return this . downlistgroup . getValue ( ) } , setValue : function ( a ) { this . downlistgroup . setValue ( a ) } } ) , BI . DownListGroup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.down_list_group" , BI . DownListGroup ) , BI . DownListItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . DownListItem . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-down-list-item bi-list-item-active" , cls : "" , height : 24 , logic : { dynamic : ! 0 } , selected : ! 1 , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . DownListItem . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , textAlign : "left" , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , height : a . height } ) , this . icon = BI . createWidget ( { type : "bi.center_adapt" , width : 36 , height : a . height , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( BI . Direct
} ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . storeTriggerValue = a . getKey ( ) , a . fireEvent ( BI . DynamicDateTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . DynamicDateTrigger . EVENT _STOP ) } ) , this . editor . on ( BI . SignEditor . EVENT _VALID , function ( ) { a . fireEvent ( BI . DynamicDateTrigger . EVENT _VALID ) } ) , this . editor . on ( BI . SignEditor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . DynamicDateTrigger . EVENT _ERROR ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; if ( BI . isNotNull ( b ) && a . editor . setState ( b ) , BI . isNotEmptyString ( b ) && ! BI . isEqual ( a . storeTriggerValue , a . getKey ( ) ) ) { var c = b . split ( "-" ) ; a . storeValue = { type : BI . DynamicDateCombo . Static , value : { year : 0 | c [ 0 ] , month : 0 | c [ 1 ] , day : 0 | c [ 2 ] } } } a . fireEvent ( BI . DynamicDateTrigger . EVENT _CONFIRM ) } ) , this . editor . on ( BI . SignEditor . EVENT _SPACE , function ( ) { a . editor . isValid ( ) && a . editor . blur ( ) } ) , this . editor . on ( BI . SignEditor . EVENT _START , function ( ) { a . fireEvent ( BI . DynamicDateTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DynamicDateTrigger . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . editor } , { el : BI . createWidget ( ) , width : 24 } ] } ) , this . setValue ( b . value ) } , _dateCheck : function ( a ) { return BI . print ( BI . parseDateTime ( a , "%Y-%x-%d" ) , "%Y-%x-%d" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%X-%d" ) , "%Y-%X-%d" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%x-%e" ) , "%Y-%x-%e" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%X-%e" ) , "%Y-%X-%e" ) === a } , _checkVoid : function ( a ) { return ! BI . checkDateVoid ( a . year , a . month , a . day , this . options . min , this . options . max ) [ 0 ] } , _autoAppend : function ( a , b ) { if ( BI . isNotNull ( b ) && BI . checkDateLegal ( a ) ) switch ( a . length ) { case this . _const . yearLength : this . _yearCheck ( a ) && this . editor . setValue ( a + "-" ) ; break ; case this . _const . yearMonthLength : case this . _const . yearFullMonthLength : var c = a . split ( "-" ) [ 1 ] ; ( BI . isNotNull ( c ) && 2 === c . length || this . _monthCheck ( a ) ) && this . editor . setValue ( a + "-" ) } } , _yearCheck : function ( a ) { var b = BI . print ( BI . parseDateTime ( a , "%Y-%X-%d" ) , "%Y-%X-%d" ) ; return BI . print ( BI . parseDateTime ( a , "%Y" ) , "%Y" ) === a && b >= this . options . min && b <= this . options . max } , _monthCheck : function ( a ) { var b = BI . parseDateTime ( a , "%Y-%X-%d" ) , c = BI . print ( b , "%Y-%X-%d" ) ; return b . getMonth ( ) >= 0 && ( BI . print ( BI . parseDateTime ( a , "%Y-%X" ) , "%Y-%X" ) === a || BI . print ( BI . parseDateTime ( a , "%Y-%x" ) , "%Y-%x" ) === a ) && c >= this . options . min && c <= this . options . max } , _setInnerValue : function ( a ) { var b = BI . print ( a , "%Y-%x-%e" ) ; this . editor . setState ( b ) , this . editor . setValue ( b ) } , _getText : function ( a ) { function b ( a , b ) { switch ( b ) { case BI . DynamicDateCard . OFFSET . BEGIN : return a + BI . i18nText ( "BI-Basic_Begin_Start" ) ; case BI . DynamicDateCard . OFFSET . END : return a + BI . i18nText ( "BI-Basic_End_Stop" ) ; case BI . DynamicDateCard . OFFSET . CURRENT : default : return BI . i18nText ( "BI-Basic_Current_Day" ) } } var c = "" , d = "" ; return BI . isNotNull ( a . year ) && ( 0 !== BI . parseInt ( a . year ) && ( c += Math . abs ( a . year ) + BI . i18nText ( "BI-Basic_Year" ) + ( a . year < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , d = b ( BI . i18nText ( "BI-Basic_Year" ) , a . position ) ) , BI . isNotNull ( a . quarter ) && ( 0 !== BI . parseInt ( a . quarter ) && ( c += Math . abs ( a . quarter ) + BI . i18nText ( "BI-Basic_Single_Quarter" ) + ( a . quarter < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , d = b ( BI . i18nText ( "BI-Basic_Single_Quarter" ) , a . position ) ) , BI . isNotNull ( a . month ) && ( 0 !== BI . parseInt ( a . month ) && ( c += Math . abs ( a . month ) + BI . i18nText ( "BI-Basic_Month" ) + ( a . month < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , d = b ( BI . i18nText ( "BI-Basic_Month" ) , a . position ) ) , BI . isNotNull ( a . week ) && ( 0 !== BI . parseInt ( a . week ) && ( c += Math . abs ( a . week ) + BI . i18nText ( "BI-Basic_Week" ) + ( a . week < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , d = b ( BI . i18nText ( "BI-Basic_Week" ) , a . position ) ) , BI . isNotNull ( a . day ) && ( 0 !== BI . parseInt ( a . day ) && ( c += Math . abs ( a . day ) + BI . i18nText ( "BI-Basic_Day" ) + ( a . day < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , d = 1 === BI . size ( a ) ? b ( BI . i18nText ( "BI-Basic_Month" ) , a . position ) : "" ) , BI . isNotNull ( a . workDay ) && 0 !== BI . parseInt ( a . workDay ) && ( c += Math . abs ( a . workDay ) + BI . i18nText ( "BI-Basic_Work_Day" ) + ( a . workDay < 0 ? BI . i18nText ( "BI-Basic_Front" ) : BI . i18nText ( "BI-Basic_Behind" ) ) ) , c
a . fireEvent ( BI . TextEditor . EVENT _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( b ) { a . fireEvent ( BI . TextEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _START ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _PAUSE ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _STOP ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _ERROR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . fireEvent ( BI . TextEditor . EVENT _EMPTY ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ this . editor ] } ) } , focus : function ( ) { this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) } , setErrorText : function ( a ) { this . editor . setErrorText ( a ) } , getErrorText : function ( ) { return this . editor . getErrorText ( ) } , isValid : function ( ) { return this . editor . isValid ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) } , getValue : function ( ) { return this . editor . getValue ( ) } } ) , BI . TextEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . TextEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . TextEditor . EVENT _BLUR = "EVENT_BLUR" , BI . TextEditor . EVENT _CLICK = "EVENT_CLICK" , BI . TextEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . TextEditor . EVENT _SPACE = "EVENT_SPACE" , BI . TextEditor . EVENT _BACKSPACE = "EVENT_BACKSPACE" , BI . TextEditor . EVENT _START = "EVENT_START" , BI . TextEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . TextEditor . EVENT _STOP = "EVENT_STOP" , BI . TextEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . TextEditor . EVENT _VALID = "EVENT_VALID" , BI . TextEditor . EVENT _ERROR = "EVENT_ERROR" , BI . TextEditor . EVENT _ENTER = "EVENT_ENTER" , BI . TextEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . TextEditor . EVENT _REMOVE = "EVENT_REMOVE" , BI . TextEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.text_editor" , BI . TextEditor ) , BI . SmallTextEditor = BI . inherit ( BI . TextEditor , { _defaultConfig : function ( ) { var a = BI . SmallTextEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-small-text-editor" , height : 24 } ) } , _init : function ( ) { BI . SmallTextEditor . superclass . _init . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.small_text_editor" , BI . SmallTextEditor ) , BI . IntervalSlider = BI . inherit ( BI . Single , { _constant : { EDITOR _WIDTH : 58 , EDITOR _R _GAP : 60 , EDITOR _HEIGHT : 30 , SLIDER _WIDTH _HALF : 15 , SLIDER _WIDTH : 30 , SLIDER _HEIGHT : 30 , TRACK _HEIGHT : 24 } , props : { baseCls : "bi-interval-slider bi-slider-track" , digit : ! 1 , unit : "" } , render : function ( ) { var a = this , b = this . _constant ; return this . enable = ! 1 , this . valueOne = "" , this . valueTwo = "" , this . calculation = new BI . AccurateCalculationModel , this . grayTrack = BI . createWidget ( { type : "bi.layout" , cls : "gray-track" , height : 6 } ) , this . blueTrack = BI . createWidget ( { type : "bi.layout" , cls : "blue-track bi-high-light-background" , height : 6 } ) , this . track = this . _createTrackWrapper ( ) , this . labelOne = BI . createWidget ( { type : "bi.sign_text_editor" , cls : "slider-editor-button" , text : this . options . unit , allowBlank : ! 1 , width : b . EDITOR _WIDTH , validationChecker : function ( b ) { return a . _checkValidation ( b ) } } ) , this . labelOne . element . hover ( function ( ) { a . labelOne . element . removeClass ( "bi-border" ) . addClass ( "bi-border" ) } , function ( ) { a . labelOne . element . removeClass ( "bi-border" ) } ) , this . labelOne . on ( BI . Editor . EVENT _CONFIRM , function ( ) { var b = a . valueOne , c = BI . parseFloat ( this . getValue ( ) ) ; a . valueOne = c ; var d = a . _getPercentByValue ( c ) , e = BI . parseFloat ( d . toFixed ( 1 ) ) ; a . _setSliderOnePosition ( e ) , a . _setBlueTrack ( ) , a . _checkLabelPosition ( b , a . valueTwo , a . valueOne , a . valueTwo ) , a . fireEvent ( BI . IntervalSlider . EVENT _CHANGE ) } ) , this . labelTwo = BI . createWidget ( { type : "bi.sign_text_editor" , cls : "slider-editor-button" , text : this . options . unit , allowBlank : ! 1 , width : b . EDITOR _WIDTH , validationChecker : function ( b ) { return a . _checkValidation ( b ) } } ) , this . labelTwo . element . hover ( function ( ) { a . labelTwo . element . removeClass ( "bi-border" ) . addClass ( "bi-border" ) } , function ( ) { a . labelTwo . element . removeClass ( "bi-border" ) } ) , this . labelTwo . on ( BI . Editor . EVENT _CONFIRM , function ( ) { var b = a . valueTwo , c = BI . parseFloat ( this . getValue ( ) ) ; a . valueTwo = c ; var d = a . _getPer
} ) , this . check ( ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . tree . setValue ( a ) } , populate : function ( a ) { BI . MultiLayerSelectTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( a ) } } ) , BI . MultiLayerSelectTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_select_tree_popup" , BI . MultiLayerSelectTreePopup ) , BI . MultiLayerSelectTreeFirstPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-select-tree-first-plus-group-node bi-list-item-active" , layer : 0 , id : "" , pId : "" , readonly : ! 0 , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.select_tree_first_plus_group_node" , cls : "bi-list-item-none" , stopPropagation : ! 0 , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , open : b . open , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . node . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 , b . layer , function ( ) { c . push ( { type : "bi.layout" , cls : "base-line-conn-background" , width : 12 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 12 ) , items : [ c ] } ) } , isOnce : function ( ) { return ! 0 } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , isSelected : function ( ) { return this . node . isSelected ( ) } , setSelected : function ( a ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . setSelected . apply ( this , arguments ) , this . node . setSelected ( a ) } , doClick : function ( ) { BI . NodeButton . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_select_tree_first_plus_group_node" , BI . MultiLayerSelectTreeFirstPlusGroupNode ) , BI . MultiLayerSelectTreeLastPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSelectTreeLastPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-select-tree-last-plus-group-node bi-list-item-active" , layer : 0 , id : "" , pId : "" , readonly : ! 0 , open : ! 1 , height : 24 } ) } , _init : function ( ) { BI . MultiLayerSelectTreeLastPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.select_tree_last_plus_group_node" , cls : "bi-list-item-none" , stopPropagation : ! 0 , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , open : b . open , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . node . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 , b . layer , function ( ) { c . push ( { type : "bi.layout" , cls : "base-line-conn-background" , width : 12 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 12 ) , items : [ c ] } ) } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , isSelected : function ( ) { return this . node . isSelected ( ) } , setSelected : function ( a ) { BI . MultiLayerSelectTreeLastPlusGroupNode . superclass . setSelected . apply ( this , arguments ) , this . node . setSelected ( a ) } , doClick : function ( ) { BI . MultiLayerSelectTreeLastPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSelectTreeLastPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_select_tree_last_plus_group_node" , BI . MultiLayerSelectTreeLastPlusGroupNode ) , BI . MultiLayerSelectTreeMidPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSelectTreeMidPlusGroupNode . superclass . _defaultConfig . apply ( this , ar
d instanceof BI . MultiSelectBar ? a . _joinAll ( this . getValue ( ) , function ( ) { c ( ) } ) : a . _join ( this . getValue ( ) , function ( ) { c ( ) } ) } ) , this . trigger . on ( BI . MultiSelectInsertTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW , function ( ) { this . getCounter ( ) . setValue ( a . storeValue ) } ) , this . trigger . on ( BI . MultiSelectInsertTrigger . EVENT _COUNTER _CLICK , function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , toggle : ! 1 , el : this . trigger , adjustLength : 1 , container : b . container , popup : { type : "bi.multi_select_popup_view" , ref : function ( ) { a . popup = this , a . trigger . setAdapter ( this ) } , listeners : [ { eventName : BI . MultiSelectPopupView . EVENT _CHANGE , action : function ( ) { a . storeValue = this . getValue ( ) , a . _adjust ( function ( ) { c ( ) } ) } } , { eventName : BI . MultiSelectPopupView . EVENT _CLICK _CONFIRM , action : function ( ) { a . _defaultState ( ) } } , { eventName : BI . MultiSelectPopupView . EVENT _CLICK _CLEAR , action : function ( ) { a . setValue ( ) , a . _defaultState ( ) } } ] , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , onLoaded : function ( ) { BI . nextTick ( function ( ) { a . combo . adjustWidth ( ) , a . combo . adjustHeight ( ) , a . trigger . getCounter ( ) . adjustView ( ) , a . trigger . getSearcher ( ) . adjustView ( ) } ) } } , value : b . value , hideChecker : function ( a ) { return 0 === d . element . find ( a . target ) . length } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { this . setValue ( a . storeValue ) , BI . nextTick ( function ( ) { a . populate ( ) } ) } ) , this . wants2Quit = ! 1 , this . combo . on ( BI . Combo . EVENT _AFTER _HIDEVIEW , function ( ) { a . trigger . stopEditing ( ) , a . requesting === ! 0 ? a . wants2Quit = ! 0 : a . fireEvent ( BI . MultiSelectInsertCombo . EVENT _CONFIRM ) } ) ; var d = BI . createWidget ( { type : "bi.trigger_icon_button" , width : b . height , height : b . height , cls : "multi-select-trigger-icon-button" } ) ; d . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { a . trigger . getCounter ( ) . hideView ( ) , a . combo . isViewVisible ( ) ? a . combo . hideView ( ) : a . combo . showView ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . combo , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : d , right : 0 , top : 0 , bottom : 0 } ] } ) } , _addItem : function ( a ) { var b = this , c = this . trigger . getSearcher ( ) . getKeyword ( ) ; this . _join ( { type : BI . Selection . Multi , value : [ c ] } , function ( ) { b . storeValue . type === BI . Selection . Multi && BI . pushDistinct ( b . storeValue . value , c ) , b . combo . setValue ( b . storeValue ) , b . _setStartValue ( c ) , a ( ) , b . populate ( ) , b . _setStartValue ( "" ) } ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) , this . combo . hideView ( ) } , _assertValue : function ( a ) { a || ( a = { } ) , a . type || ( a . type = BI . Selection . Multi ) , a . value || ( a . value = [ ] ) } , _makeMap : function ( a ) { return BI . makeObject ( a || [ ] ) } , _joinKeywords : function ( a , b ) { function c ( c ) { var e = d . _makeMap ( c ) ; BI . each ( a , function ( a , b ) { BI . isNotNull ( e [ b ] ) && ( d . storeValue . type === BI . Selection . Multi ? BI . pushDistinct ( d . storeValue . value , b ) : BI . remove ( d . storeValue . value , b ) ) } ) , d . _adjust ( b ) } var d = this , e = this . options ; this . _assertValue ( this . storeValue ) , this . requesting = ! 0 , e . itemsCreator ( { type : BI . MultiSelectInsertCombo . REQ _GET _ALL _DATA , keywords : a } , function ( a ) { var b = BI . map ( a . items , "value" ) ; c ( b ) } ) } , _joinAll : function ( a , b ) { var c = this , d = this . options ; this . _assertValue ( a ) , this . requesting = ! 0 , d . itemsCreator ( { type : BI . MultiSelectInsertCombo . REQ _GET _ALL _DATA , keywords : [ this . trigger . getKey ( ) ] } , function ( d ) { var e = BI . map ( d . items , "value" ) ; if ( c . storeValue . type === a . type ) { var f = ! 1 , g = c . _makeMap ( c . storeValue . value ) ; return BI . each ( e , function ( a , b ) { BI . isNotNull ( g [ b ] ) && ( f = ! 0 , c . storeValue . assist && c . storeValue . assist . push ( g [ b ] ) , delete g [ b ] ) } ) , f && ( c . storeValue . value = BI . values ( g ) ) , void c . _adjust ( b ) } var h = c . _makeMap ( c . storeValue . value ) , i = c . _makeMap ( a . value ) , j = [ ] ; BI . each ( e , function ( a , b ) { BI . isNotNull ( h [ e [ a ] ] ) && ( c . storeValue . assist && c . storeValue . assist . push ( h [ e [ a ] ] ) , delete h [ e [ a ] ] ) , BI . isNull ( i [ e [ a ] ] ) && ( BI . remove ( c . storeValue . assist , b ) , j . push ( b ) ) } ) , c . storeValue . value = j . concat ( BI . values ( h ) ) , c . _adjust ( b ) } ) } , _adjust : function ( a ) { function b ( ) { c . wants2Quit === ! 0 && ( c . fireEvent ( BI . MultiSelectInsertCombo . EVENT _CONFIRM ) , c . wants2Quit = ! 1 ) , c . requesting = ! 1 } var c = this ; this . options ; b ( ) , a ( ) } , _join : function ( a , b ) { var c = this ; this . options ; if ( this . _assertValue ( a ) , this . _assertValue ( this . storeValue ) , this . storeValue . type === a . type ) { var d = this . _makeMap ( this . storeValue . value ) ; BI . each ( a . value , function ( a , b ) { d [ b ] || ( c . storeValue . value . push ( b )
} ) ) , b . itemsCreator ( d , function ( f ) { var g = f . keyword = b . keywordGetter ( ) ; c = f . hasNext ; var h = [ ] ; if ( 1 === d . times && a . storeValue ) { var i = a . _filterValues ( a . storeValue ) ; h = a . _createItems ( i ) } e ( h . concat ( a . _createItems ( f . items ) ) , g ) , 1 === d . times && a . storeValue && a . setValue ( a . storeValue ) } ) } , hasNext : function ( ) { return c } } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . SelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectSearchLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.multi_select_item" , logic : { dynamic : ! 1 } , height : 24 , selected : this . isAllSelected ( ) , cls : "bi-list-item-active" , iconWrapperWidth : 36 } ) } , isAllSelected : function ( ) { return this . button _group . isAllSelected ( ) } , _filterValues : function ( a ) { var b = this . options , c = b . keywordGetter ( ) , d = BI . deepClone ( a . value ) || [ ] , e = BI . map ( d , function ( a , c ) { return { text : b . valueFormatter ( c ) || c , value : c } } ) ; if ( BI . isKey ( c ) ) { var f = BI . Func . getSearchResult ( e , c ) ; d = f . match . concat ( f . find ) } return BI . map ( d , function ( b , c ) { return { text : c . text , title : c . text , value : c . value , selected : a . type === BI . Selection . All } } ) } , setValue : function ( a ) { this . storeValue = BI . deepClone ( a ) , this . button _group . setValue ( a ) } , getValue : function ( ) { return this . button _group . getValue ( ) } , getAllButtons : function ( ) { return this . button _group . getAllButtons ( ) } , empty : function ( ) { this . button _group . empty ( ) } , populate : function ( a ) { this . button _group . populate . apply ( this . button _group , arguments ) } , resetHeight : function ( a ) { this . button _group . resetHeight ( a ) } , resetWidth : function ( a ) { this . button _group . resetWidth ( a ) } } ) , BI . MultiSelectSearchLoader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_search_loader" , BI . MultiSelectSearchLoader ) , BI . MultiSelectSearchPane = BI . inherit ( BI . Widget , { constants : { height : 24 , lgap : 10 , tgap : 5 } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectSearchPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-search-pane bi-card" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectSearchPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tooltipClick = BI . createWidget ( { type : "bi.label" , invisible : ! 0 , text : BI . i18nText ( "BI-Click_Blank_To_Select" ) , cls : "multi-select-toolbar" , height : this . constants . height } ) , this . loader = BI . createWidget ( { type : "bi.multi_select_search_loader" , keywordGetter : b . keywordGetter , valueFormatter : b . valueFormatter , itemsCreator : function ( c , d ) { b . itemsCreator . apply ( a , [ c , function ( c ) { d ( c ) , a . setKeyword ( b . keywordGetter ( ) ) } ] ) } , value : b . value } ) , this . loader . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . resizer = BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . tooltipClick , height : 0 } , { el : this . loader } ] } ) , this . tooltipClick . setVisible ( ! 1 ) } , setKeyword : function ( a ) { var b , c = this . loader . getAllButtons ( ) . length > 0 && ( b = this . loader . getAllButtons ( ) [ 0 ] ) && a === b . getValue ( ) ; c !== this . tooltipClick . isVisible ( ) && ( this . tooltipClick . setVisible ( c ) , this . resizer . attr ( "items" ) [ 0 ] . height = c ? this . constants . height : 0 , this . resizer . resize ( ) ) } , isAllSelected : function ( ) { return this . loader . isAllSelected ( ) } , hasMatched : function ( ) { return this . tooltipClick . isVisible ( ) } , setValue : function ( a ) { this . loader . setValue ( a ) } , getValue : function ( ) { return this . loader . getValue ( ) } , empty : function ( ) { this . loader . empty ( ) } , populate : function ( a ) { this . loader . populate . apply ( this . loader , arguments ) } } ) , BI . MultiSelectSearchPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_search_pane" , BI . MultiSelectSearchPane ) , BI . MultiSelectCheckSelectedButton = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectCheckSelectedButton . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-check-selected-button" , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectCheckSelectedButton . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . numberCounter = BI . createWidget ( { type : "bi.text_button" , element : this , hgap : 4 , text : "0" , textAlign : "center" , textHeight : 16 , cls : "bi-high-light-background count-tip" } ) , thi
c . _adjust ( b ) } ) } , _adjust : function ( a ) { function b ( ) { c . storeValue . type === BI . Selection . All && c . storeValue . value . length >= c . _count ? c . storeValue = { type : BI . Selection . Multi , value : [ ] } : c . storeValue . type === BI . Selection . Multi && c . storeValue . value . length >= c . _count && ( c . storeValue = { type : BI . Selection . All , value : [ ] } ) } var c = this , d = this . options ; this . _count ? ( b ( ) , a ( ) ) : d . itemsCreator ( { type : BI . MultiSelectList . REQ _GET _DATA _LENGTH } , function ( d ) { c . _count = d . count , b ( ) , a ( ) } ) } , _join : function ( a , b ) { var c = this ; this . options ; if ( this . _assertValue ( a ) , this . _assertValue ( this . storeValue ) , this . storeValue . type === a . type ) { var d = this . _makeMap ( this . storeValue . value ) ; BI . each ( a . value , function ( a , b ) { d [ b ] || ( c . storeValue . value . push ( b ) , d [ b ] = b ) } ) ; var e = ! 1 ; return BI . each ( a . assist , function ( a , b ) { BI . isNotNull ( d [ b ] ) && ( e = ! 0 , delete d [ b ] ) } ) , e && ( this . storeValue . value = BI . values ( d ) ) , void c . _adjust ( b ) } this . _joinAll ( a , b ) } , _setStartValue : function ( a ) { this . _startValue = a , this . adapter . setStartValue ( a ) } , isAllSelected : function ( ) { return this . adapter . isAllSelected ( ) } , resize : function ( ) { } , setValue : function ( a ) { this . storeValue = a || { } , this . _assertValue ( this . storeValue ) , this . adapter . setValue ( this . storeValue ) , this . trigger . setValue ( this . storeValue ) } , getValue : function ( ) { return BI . deepClone ( this . storeValue ) } , populate : function ( ) { this . _count = null , this . _allData = null , this . adapter . populate . apply ( this . adapter , arguments ) , this . trigger . populate . apply ( this . trigger , arguments ) } } ) , BI . extend ( BI . MultiSelectList , { REQ _GET _DATA _LENGTH : 1 , REQ _GET _ALL _DATA : - 1 } ) , BI . MultiSelectList . EVENT _CHANGE = "BI.MultiSelectList.EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_list" , BI . MultiSelectList ) , BI . MultiSelectTree = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectTree . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-tree" , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectTree . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = { value : { } } , this . adapter = BI . createWidget ( { type : "bi.multi_select_tree_popup" , itemsCreator : b . itemsCreator } ) , this . adapter . on ( BI . MultiSelectTreePopup . EVENT _CHANGE , function ( ) { a . searcher . isSearching ( ) ? a . storeValue = { value : a . searcherPane . getValue ( ) } : a . storeValue = { value : a . adapter . getValue ( ) } , a . setSelectedValue ( a . storeValue . value ) , a . fireEvent ( BI . MultiSelectTree . EVENT _CHANGE ) } ) , this . searcherPane = BI . createWidget ( { type : "bi.multi_tree_search_pane" , cls : "bi-border-left bi-border-right bi-border-bottom" , keywordGetter : function ( ) { return a . searcher . getKeyword ( ) } , itemsCreator : function ( c , d ) { c . keyword = a . searcher . getKeyword ( ) , b . itemsCreator ( c , d ) } } ) , this . searcherPane . setVisible ( ! 1 ) , this . searcher = BI . createWidget ( { type : "bi.searcher" , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( b , c ) { c ( { keyword : a . searcher . getKeyword ( ) } ) } , adapter : this . adapter , popup : this . searcherPane , masker : ! 1 , listeners : [ { eventName : BI . Searcher . EVENT _START , action : function ( ) { a . _showSearcherPane ( ) } } , { eventName : BI . Searcher . EVENT _STOP , action : function ( ) { a . _showAdapter ( ) , BI . nextTick ( function ( ) { a . adapter . populate ( ) } ) } } , { eventName : BI . Searcher . EVENT _CHANGE , action : function ( ) { a . searcher . isSearching ( ) ? a . storeValue = { value : a . searcherPane . getValue ( ) } : a . storeValue = { value : a . adapter . getValue ( ) } , a . setSelectedValue ( a . storeValue . value ) , a . fireEvent ( BI . MultiSelectTree . EVENT _CHANGE ) } } , { eventName : BI . Searcher . EVENT _PAUSE , action : function ( ) { a . _showAdapter ( ) } } ] } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . searcher , height : 24 } , { el : this . adapter , height : "fill" } ] } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . searcherPane , top : 30 , bottom : 0 , left : 0 , right : 0 } ] } ) } , _showAdapter : function ( ) { this . adapter . setVisible ( ! 0 ) , this . searcherPane . setVisible ( ! 1 ) } , _showSearcherPane : function ( ) { this . searcherPane . setVisible ( ! 0 ) , this . adapter . setVisible ( ! 1 ) } , resize : function ( ) { } , setSelectedValue : function ( a ) { this . storeValue . value = a || { } , this . adapter . setSelectedValue ( a ) , this . searcherPane . setSelectedValue ( a ) , this . searcher . setValue ( { value : a || { } } ) } , setValue : function ( a ) { this . adapter . setValue ( a ) } , stopSearch : function ( ) { this . searcher . stopSearch ( ) } , updateValue : function ( a ) { this . adapter . updateValue ( a ) } , getValue : function ( ) { return this . st
value : b . value } ) , this . popup . on ( BI . QuarterPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . QuarterCombo . EVENT _CONFIRM ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , container : b . container , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . QuarterCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return BI . isNull ( this . popup ) ? this . options . value || "" : this . popup . getValue ( ) || "" } } ) , BI . QuarterCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . QuarterCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.quarter_combo" , BI . QuarterCombo ) , BI . QuarterPopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . QuarterPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-quarter-popup" , behaviors : { } } ) } , _init : function ( ) { BI . QuarterPopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = [ { text : BI . Date . _QN [ 1 ] , value : 1 } , { text : BI . Date . _QN [ 2 ] , value : 2 } , { text : BI . Date . _QN [ 3 ] , value : 3 } , { text : BI . Date . _QN [ 4 ] , value : 4 } ] ; c = BI . map ( c , function ( a , b ) { return BI . extend ( b , { type : "bi.text_item" , cls : "bi-list-item-active" , textAlign : "left" , whiteSpace : "nowrap" , once : ! 1 , forceSelected : ! 0 , height : 25 } ) } ) , this . quarter = BI . createWidget ( { type : "bi.button_group" , element : this , behaviors : b . behaviors , items : BI . createItems ( c , { } ) , layouts : [ { type : "bi.vertical" } ] , value : b . value } ) , this . quarter . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . MonthPopup . EVENT _CHANGE ) } ) } , getValue : function ( ) { return this . quarter . getValue ( ) [ 0 ] } , setValue : function ( a ) { this . quarter . setValue ( [ a ] ) } } ) , BI . QuarterPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.quarter_popup" , BI . QuarterPopup ) , BI . QuarterTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , textWidth : 40 } , _defaultConfig : function ( ) { return BI . extend ( BI . QuarterTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-quarter-trigger bi-border" , height : 24 } ) } , _init : function ( ) { BI . QuarterTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , validationChecker : function ( a ) { return "" === a || BI . isPositiveInteger ( a ) && a >= 1 && a <= 4 } , quitChecker : function ( a ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , errorText : BI . i18nText ( "BI-Quarter_Trigger_Error_Text" ) } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . QuarterTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . QuarterTrigger . EVENT _CHANGE ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; BI . isNotNull ( b ) && ( a . editor . setValue ( b ) , a . editor . setTitle ( b ) ) , a . fireEvent ( BI . QuarterTrigger . EVENT _CONFIRM ) } ) , this . editor . on ( BI . SignEditor . EVENT _SPACE , function ( ) { a . editor . isValid ( ) && a . editor . blur ( ) } ) , this . editor . on ( BI . SignEditor . EVENT _START , function ( ) { a . fireEvent ( BI . QuarterTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . QuarterTrigger . EVENT _STOP ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : { type : "bi.text_button" , baseCls : "bi-trigger-quarter-text" , text : BI . i18nText ( "BI-Multi_Date_Quarter" ) , width : c . textWidth } , width : c . textWidth } , { el : { type : "bi.trigger_icon_button" , width : b . height } , width : b . height } ] } ) , this . setValue ( b . value ) } , setValue : function ( a ) { a = a || "" , this . editor . setState ( a ) , this . editor . setValue ( a ) , this . editor . setTitle ( a ) } , getKey : function ( ) { return this . editor . getValue ( ) } } ) , BI . QuarterTrigger . EVENT _FOCUS = "EVENT_FOCUS" , BI . QuarterTrigger . EVENT _CHANGE = "EVENT_CHANGE" , BI . QuarterTrigger . EVENT _START = "EVENT_START" , BI . QuarterTrigger . EVENT _STOP = "EVENT_STOP" , BI . QuarterTrigger . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.quarter_trigger" , BI . QuarterTrigger ) , BI . SearchMultiTextValueCombo = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . SearchMultiTextValueCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseC
f . type = "bi.select_tree_last_plus_group_node" ; break ; default : f . type = "bi.select_tree_mid_plus_group_node" } BI . defaults ( e , f ) , c . _formatItems ( e . children ) } else { switch ( d ) { case a . length - 1 : f . type = "bi.last_tree_leaf_item" ; break ; default : f . type = "bi.mid_tree_leaf_item" } BI . defaults ( e , f ) } } ) , a } , _init : function ( ) { BI . SelectTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : "bi.level_tree" , expander : { type : "bi.select_tree_expander" , isDefaultInit : ! 0 } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( b . items ) ) , value : b . value , chooseType : BI . Selection . Single } ) , BI . createWidget ( { type : "bi.vertical" , element : this , vgap : 5 , items : [ this . tree ] } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . tree . on ( BI . LevelTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SelectTreePopup . EVENT _CHANGE ) } ) , this . check ( ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . tree . setValue ( a ) } , populate : function ( a ) { BI . SelectTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) ) ) } } ) , BI . SelectTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.select_level_tree" , BI . SelectTreePopup ) , BI . SingleSelectSearchLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-loader" , itemsCreator : BI . emptyFn , keywordGetter : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchLoader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = ! 1 ; this . button _group = BI . createWidget ( { type : "bi.single_select_list" , element : this , logic : { dynamic : ! 1 } , value : b . value , el : { tipText : BI . i18nText ( "BI-No_Select" ) , el : { type : "bi.loader" , isDefaultInit : ! 1 , logic : { dynamic : ! 0 , scrolly : ! 0 } , el : { chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] } } } , itemsCreator : function ( d , e ) { a . storeValue && ( d = BI . extend ( d || { } , { selectedValues : [ a . storeValue ] } ) ) , b . itemsCreator ( d , function ( f ) { var g = f . keyword = b . keywordGetter ( ) ; c = f . hasNext ; var h = [ ] ; if ( 1 === d . times && BI . isNotNull ( a . storeValue ) ) { var i = a . _filterValues ( a . storeValue ) ; h = a . _createItems ( i ) } e ( h . concat ( a . _createItems ( f . items ) ) , g || "" ) , 1 === d . times && a . storeValue && a . setValue ( a . storeValue ) } ) } , hasNext : function ( ) { return c } } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . SingleSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearchLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.single_select_combo_item" , cls : "bi-list-item-active" , logic : { dynamic : ! 1 } , height : 25 , selected : ! 1 } ) } , _filterValues : function ( a ) { var b = this . options , c = b . keywordGetter ( ) , d = a || [ ] , e = BI . map ( BI . isArray ( d ) ? d : [ d ] , function ( a , c ) { return { text : b . valueFormatter ( c ) || c , value : c } } ) ; if ( BI . isKey ( c ) ) { var f = BI . Func . getSearchResult ( e , c ) ; d = f . match . concat ( f . find ) } return BI . map ( d , function ( a , b ) { return { text : b . text , title : b . text , value : b . value , selected : ! 1 } } ) } , setValue : function ( a ) { this . storeValue = a , this . button _group . setValue ( a ) } , getValue : function ( ) { return this . button _group . getValue ( ) } , getAllButtons : function ( ) { return this . button _group . getAllButtons ( ) } , empty : function ( ) { this . button _group . empty ( ) } , populate : function ( a ) { this . button _group . populate . apply ( this . button _group , arguments ) } , resetHeight : function ( a ) { this . button _group . resetHeight ( a ) } , resetWidth : function ( a ) { this . button _group . resetWidth ( a ) } } ) , BI . SingleSelectSearchLoader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.single_select_search_loader" , BI . SingleSelectSearchLoader ) , BI . SingleSelectSearchPane = BI . inherit ( BI . Widget , { constants : { height : 25 , lgap : 10 , tgap : 5 } , _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-pane bi-card" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchPane . superclass . _in
BI . SignTextEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . SignTextEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-sign-initial-editor" , validationChecker : BI . emptyFn , text : "" , height : 24 } ) } , _init : function ( ) { BI . SignTextEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , hgap : 4 , vgap : 2 , value : b . value , validationChecker : b . validationChecker , allowBlank : ! 1 } ) , this . text = BI . createWidget ( { type : "bi.text_button" , cls : "sign-editor-text" , title : function ( ) { return a . getValue ( ) } , textAlign : b . textAlign , height : b . height , hgap : 4 , handler : function ( ) { a . _showInput ( ) , a . editor . focus ( ) , a . editor . selectAll ( ) } } ) , this . text . on ( BI . TextButton . EVENT _CHANGE , function ( ) { BI . nextTick ( function ( ) { a . fireEvent ( BI . SignTextEditor . EVENT _CLICK _LABEL ) } ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . text , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . _showHint ( ) , a . _checkText ( ) , a . fireEvent ( BI . SignTextEditor . EVENT _CONFIRM , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . _checkText ( ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ this . editor ] } ) , this . _showHint ( ) , a . _checkText ( ) } , _checkText : function ( ) { var a = this . options ; BI . nextTick ( BI . bind ( function ( ) { if ( "" === this . editor . getValue ( ) ) this . text . setValue ( a . watermark || "" ) , this . text . element . addClass ( "bi-water-mark" ) ; else { var b = this . editor . getValue ( ) ; b = BI . isEmpty ( b ) || b == a . text ? a . text : b + a . text , this . text . setValue ( b ) , this . text . element . removeClass ( "bi-water-mark" ) } } , this ) ) } , _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 ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) , this . _checkText ( ) } , getValue : function ( ) { return this . editor . getValue ( ) } , getState : function ( ) { return this . text . getValue ( ) } , setState : function ( a ) { var b = this . options ; this . _showHint ( ) , a = BI . isEmpty ( a ) || a == b . text ? b . text : a + b . text , this . text . setValue ( a ) } } ) , BI . SignTextEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . SignTextEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . shortcut ( "bi.sign_text_editor" , BI . SignTextEditor ) , BI . SliderIconButton = BI . inherit ( BI . Widget , { props : { baseCls : "bi-single-slider-button" } , constants : { LARGE _SIZE : 16 , NORMAL _SIZE : 12 , LARGE _OFFSET : 4 , NORMAL _OFFSET : 6 } , render : function ( ) { var a = this ; return { type : "bi.absolute" , ref : function ( ) { a . wrapper = this } , items : [ { el : { type : "bi.text_button" , forceNotSelected : ! 0 , cls : "slider-button bi-list-item-select3 bi-high-light-border" , ref : function ( ) { a . slider = this } } } ] } } } ) , BI . shortcut ( "bi.single_slider_button" , BI . SliderIconButton ) , BI . SingleSlider = BI . inherit ( BI . Widget , { _constant : { EDITOR _WIDTH : 90 , EDITOR _HEIGHT : 30 , SLIDER _WIDTH _HALF : 15 , SLIDER _WIDTH : 30 , SLIDER _HEIGHT : 30 , TRACK _HEIGHT : 24 } , props : { baseCls : "bi-single-slider bi-slider-track" , digit : ! 1 , unit : "" } , render : function ( ) { var a = this , b = this . options , c = this . _constant ; this . enable = ! 1 , this . value = "" , this . grayTrack = BI . createWidget ( { type : "bi.layout" , cls : "gray-track" , height : 6 } ) , this . blueTrack = BI . createWidg
direction : "top" , element : this , single : ! 0 , logic : { dynamic : ! 0 } , tab : { type : "bi.htape" , cls : "bi-split-top bi-split-bottom" , height : 30 , items : [ { el : { type : "bi.center_adapt" , items : [ a . backBtn ] } , width : 25 } , { type : "bi.layout" } , { el : { type : "bi.center_adapt" , items : [ a . preBtn ] } , width : 25 } ] } , cardCreator : BI . bind ( this . _createYearCalendar , this ) , afterCardShow : function ( ) { this . setValue ( a . selectedYear ) ; var b = this . getSelectedCard ( ) ; a . backBtn . setEnable ( ! b . isFrontYear ( ) ) , a . preBtn . setEnable ( ! b . isFinalYear ( ) ) } } ) , this . navigation . on ( BI . Navigation . EVENT _CHANGE , function ( ) { a . selectedYear = this . getValue ( ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . StaticYearCard . EVENT _CHANGE , a . selectedYear ) } ) , BI . isKey ( b . value ) && this . setValue ( b . value ) } , _checkLeftValid : function ( ) { var a = ( this . options , ! 0 ) ; return this . backBtn . setEnable ( a ) , a } , _checkRightValid : function ( ) { var a = ( this . options , ! 0 ) ; return this . preBtn . setEnable ( a ) , a } , getValue : function ( ) { return { year : this . selectedYear } } , setValue : function ( a ) { var b = this . options ; a = a || { } ; var c = a . year ; BI . checkDateVoid ( c , 1 , 1 , b . min , b . max ) [ 0 ] ? ( c = BI . getDate ( ) . getFullYear ( ) , this . selectedYear = "" , this . navigation . setSelect ( BI . YearCalendar . getPageByYear ( c ) ) , this . navigation . setValue ( "" ) ) : ( this . selectedYear = BI . parseInt ( c ) , this . navigation . setSelect ( BI . YearCalendar . getPageByYear ( c ) ) , this . navigation . setValue ( this . selectedYear ) ) , this . _checkLeftValid ( ) , this . _checkRightValid ( ) } } ) , BI . StaticYearCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.static_year_card" , BI . StaticYearCard ) , BI . DynamicYearCombo = BI . inherit ( BI . Widget , { props : { baseCls : "bi-year-combo bi-border bi-focus-shadow" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , height : 22 } , _init : function ( ) { BI . DynamicYearCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = b . value , this . trigger = BI . createWidget ( { type : "bi.dynamic_year_trigger" , min : b . min , max : b . max , height : b . height , value : b . value || "" } ) , this . trigger . on ( BI . DynamicYearTrigger . EVENT _FOCUS , function ( ) { a . storeTriggerValue = this . getKey ( ) } ) , this . trigger . on ( BI . DynamicYearTrigger . EVENT _START , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearTrigger . EVENT _STOP , function ( ) { a . combo . showView ( ) } ) , this . trigger . on ( BI . DynamicYearTrigger . EVENT _ERROR , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearTrigger . EVENT _CONFIRM , function ( ) { a . combo . isViewVisible ( ) || ( this . getKey ( ) && this . getKey ( ) !== a . storeTriggerValue ? ( a . storeValue = a . trigger . getValue ( ) , a . setValue ( a . storeValue ) ) : this . getKey ( ) || ( a . storeValue = null , a . setValue ( ) ) , a . _checkDynamicValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _CONFIRM ) ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , container : b . container , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , stopPropagation : ! 1 , el : { type : "bi.dynamic_year_popup" , ref : function ( ) { a . popup = this } , listeners : [ { eventName : BI . DynamicYearPopup . EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearPopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearPopup . BUTTON _lABEL _EVENT _CHANGE , action : function ( ) { var b = BI . getDate ( ) ; a . setValue ( { type : BI . DynamicYearCombo . Static , value : { year : b . getFullYear ( ) } } ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearPopup . BUTTON _OK _EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } ] , behaviors : b . behaviors , min : b . min , max : b . max } , value : b . value || "" } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearCombo . EVENT _BEFORE _POPUPVIEW ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , ref : function ( ) { a . comboWrapper = this } , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : 24 , height : 24 , ref : function ( ) { a . changeIcon = this } } , width : 24 } , this . combo ] } ) , this . _checkDynamicValue ( b . value ) } , _checkDynamicValue : function ( a ) { var b = null ; swit
BI . YearMonthInterval . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.year_month_interval" , BI . YearMonthInterval ) , BI . DynamicYearQuarterCard = BI . inherit ( BI . Widget , { 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 . QUARTER , ref : function ( ) { a . quarter = 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 . quarter . setValue ( this . _createValue ( BI . DynamicDateCard . TYPE . QUARTER , a . quarter ) ) } , getValue : function ( ) { var a = this . year . getValue ( ) , b = this . quarter . getValue ( ) ; return { year : 0 === a . offset ? - a . value : a . value , quarter : 0 === b . offset ? - b . value : b . value } } } ) , BI . DynamicYearQuarterCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.dynamic_year_quarter_card" , BI . DynamicYearQuarterCard ) , BI . StaticYearQuarterCard = BI . inherit ( BI . Widget , { props : { baseCls : "bi-static-year-quarter-card" , behaviors : { } } , _createQuarter : function ( ) { var a = [ { text : BI . Date . _QN [ 1 ] , value : 1 } , { text : BI . Date . _QN [ 2 ] , value : 2 } , { text : BI . Date . _QN [ 3 ] , value : 3 } , { text : BI . Date . _QN [ 4 ] , value : 4 } ] ; return BI . map ( a , function ( a , b ) { return BI . extend ( b , { type : "bi.text_item" , cls : "bi-list-item-active" , textAlign : "center" , whiteSpace : "nowrap" , once : ! 1 , forceSelected : ! 0 , height : 24 } ) } ) } , 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 , quarter : a . selectedQuarter } ) } } ] } , { type : "bi.button_group" , behaviors : b . behaviors , ref : function ( ) { a . quarter = this } , items : this . _createQuarter ( ) , layouts : [ { type : "bi.vertical" , vgap : 10 } ] , value : b . value , listeners : [ { eventName : BI . ButtonGroup . EVENT _CHANGE , action : function ( ) { a . selectedYear = a . yearPicker . getValue ( ) , a . selectedQuarter = this . getValue ( ) [ 0 ] , a . fireEvent ( BI . StaticYearQuarterCard . EVENT _CHANGE ) } } ] } ] } } , getValue : function ( ) { return { year : this . selectedYear , quarter : this . selectedQuarter } } , setValue : function ( a ) { var b = this . options , c = { } ; if ( c . year = a . year || 0 , c . quarter = a . quarter || 0 , 0 === c . quarter || 0 === c . year || BI . checkDateVoid ( c . year , c . quarter , 1 , b . min , b . max ) [ 0 ] ) { var d = c . year || BI . getDate ( ) . getFullYear ( ) ; this . selectedYear = d , this . selectedQuarter = "" , this . yearPicker . setValue ( d ) , this . quarter . setValue ( ) } else this . selectedYear = BI . parseInt ( c . year ) , this . selectedQuarter = BI . parseInt ( c . quarter ) , this . yearPicker . setValue ( this . selectedYear ) , this . quarter . setValue ( this . selectedQuarter ) } } ) , BI . StaticYearQuarterCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.static_year_quarter_card" , BI . StaticYearQuarterCard ) , BI . DynamicYearQuarterCombo = BI . inherit ( BI . Widget , { props : { baseCls : "bi-year-quarter-combo bi-border bi-focus-shadow" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , height : 22 } , _init : function ( ) { BI . DynamicYearQuarterCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = b . value , a . storeTriggerValue = "" , this . trigger = BI . createWidget ( { type : "bi.dynamic_year_quarter_trigger" , min : b . min , max : b . max , height : b . height , value : b . value || "" } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _KEY _DOWN , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _START , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _STOP , function ( ) { a . combo . showView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _ERROR , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearQuarterTrigger . EVENT _CONFIRM , function ( ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI .
} ) , this . list . on ( BI . MultiSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . ValueChooserPane . EVENT _CHANGE ) } ) , BI . isNotNull ( b . items ) && ( this . items = b . items , this . list . populate ( ) ) } , setValue : function ( a ) { this . list . setValue ( a ) } , getValue : function ( ) { var a = this . list . getValue ( ) || { } ; return { type : a . type , value : a . value } } , populate : function ( a ) { a && ( this . items = a ) , this . list . populate . apply ( this . list , arguments ) } } ) , BI . ValueChooserPane . EVENT _CHANGE = "ValueChooserPane.EVENT_CHANGE" , BI . shortcut ( "bi.value_chooser_pane" , BI . ValueChooserPane ) , function ( ) { function a ( a , c ) { a . _watchers || ( a . _watchers = [ ] ) ; for ( var d in c ) { var e = c [ d ] ; if ( BI . isArray ( e ) ) for ( var f = 0 ; f < e . length ; f ++ ) a . _watchers . push ( b ( a , d , e [ f ] ) ) ; else a . _watchers . push ( b ( a , d , e ) ) } } function b ( a , b , c ) { return Fix . watch ( a . model , b , _ . bind ( c , a ) , { store : a . store } ) } function c ( a ) { 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 } } ) ; 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 = BI . isArray ( b ) ? b : [ b ] , BI . each ( b , function ( a , b ) { b ( ) } ) } ) , this . _watchers && ( this . _watchers = [ ] ) , this . store && ( this . store . _parent && ( this . store . _parent = null ) , this . store . _widget && ( this . store . _widget = null ) , this . store = null ) , delete this . _ _cacheStore } , _ . each ( [ "_mount" ] , function ( a ) { var b = BI . Widget . prototype [ a ] ; b && ( BI . Widget . prototype [ a ] = function ( ) { this . store && c ( this . store ) ; var a = b . apply ( this , arguments ) ; return this . store && d ( ) , a } ) } ) , BI . isIE9Below && BI . isIE9Below ( ) && ( _ . each ( [ "each" , "map" , "reduce" , "reduceRight" , "find" , "filter" , "reject" , "every" , "all" , "some" , "any" , "max" , "min" , "sortBy" , "groupBy" , "indexBy" , "countBy" , "partition" , "keys" , "allKeys" , "values" , "pairs" , "invert" , "mapObject" , "findKey" , "pick" , "omit" , "tap" ] , function ( a ) { var b = BI [ a ] ; BI [ a ] = function ( a , c , d ) { return "function" == typeof c ? b ( a , function ( a , b ) { if ( ! ( a in Fix . $$skipArray ) ) return c . apply ( this , arguments ) } , d ) : b . apply ( this , arguments ) } } ) , BI . isEmpty = function ( a ) { return BI . isPlainObject ( a ) && a . _ _ob _ _ ? 0 === BI . keys ( a ) . length : _ . isEmpty ( a ) } , BI . keys = function ( a ) { for ( var b = _ . keys ( a ) , c = [ ] , d = 0 ; d < b . length ; d ++ ) b [ d ] in Fix . $$skipArray || c . push ( b [ d ] ) ; return c } , BI . values = function ( a ) { for ( var b = BI . keys ( obj ) , c = b . length , d = [ ] , e = 0 ; e < c ; e ++ ) d [ e ] = obj [ b [ e ] ] ; return d } , BI . extend = function ( ) { var a = Array . prototype . slice . call ( arguments ) ; if ( a . length < 1 ) return { } ; for ( var b = a [ 0 ] , c = 1 ; c < a . length ; ) BI . each ( a [ c ] , function ( a , c ) { b [ a ] = c } ) , c ++ ; return b } , BI . size = function ( a ) { return BI . isPlainObject ( a ) && a . _ _ob _ _ ? BI . keys ( a ) . length : _ . size ( a ) } , BI . isEmptyObject = function ( a ) { return 0 === BI . size