/*! fineui 2019-10-18 10:20:43 */
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 ) && ! ti ( 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 = ti ( 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 . _ _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 . baseCls || a . extraCls || a . cls ) && this . element . addClass ( ( a . _baseCls || "" ) + " " + ( a . baseCls || "" ) + " " + ( a . extraCls || "" ) + " " + ( a . cls || "" ) ) , a . attributes && this . element . attr ( a . attributes ) , a . data && this . element . data ( a . data ) , a . css && this . element . css ( a . css ) , 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 ( ) , this . fireEvent ( BI . Events . MOUNT ) , 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 . _setVisible ( a ) , a === ! 0 ? ( this . element . css ( "display" , "" ) , this . _mount ( ) ) : a === ! 1 && this . element . css ( "display" , "none" ) , this . fireEvent ( BI . Events . VIEW , a ) } , setValid : function ( a ) { this . _manualSetValid = ! 0 , this . _setValid ( a ) , a === ! 0 ? this . element . removeClass ( "base-invalid invalid" ) : a === ! 1 && this . element . addClass ( "base-invalid invalid" ) } , doBehavior : function ( ) { var a = arguments ; BI . each ( this . _children , function ( b , c ) { c . doBehavior && c . doBehavior . apply ( c , a ) } ) } , getWidth : function ( ) { return this . options . width } , getHeight : function ( ) { return this . options . height } , isValid : function ( ) { return ! this . options . invalid } , addWidget : function ( a , b ) { var c = this ; if ( a instanceof BI . Widget && ( b = a , a = b . getName ( ) ) , BI . isKey ( a ) && ( a += "" ) , a = a || b . getName ( ) || BI . uniqueId ( "widget" ) , this . _children [ a ] ) throw new Error ( "name has already been existed" ) ; return b . _setParent && b . _setParent ( this ) , b . on ( BI . Events . DESTROY , function ( ) { BI . remove ( c . _children , this ) } ) , this . _children [ a ] = b } , getWidgetByName : function ( a ) { if ( ! BI . isKey ( a ) || a === this . getName ( ) ) return this ; a += "" ; var b = void 0 , c = { } ; return BI . any ( this . _children , function ( d , e ) { return d
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 (
} , registerObject : function ( a , b ) { d [ a ] || ( d [ a ] = [ ] ) , d [ a ] . length > 0 && console . log ( "对象已经注册过了!" ) , d [ a ] . push ( b ) } , relieveObject : function ( a ) { delete d [ a ] } } ) } ( ) , BI . Action = BI . inherit ( BI . OB , { _defaultConfig : function ( ) { return BI . extend ( BI . Action . superclass . _defaultConfig . apply ( this , arguments ) , { src : null , tar : null } ) } , _init : function ( ) { BI . Action . superclass . _init . apply ( this , arguments ) } , actionPerformed : function ( a , b , c ) { } , actionBack : function ( a , b , c ) { } } ) , BI . ActionFactory = { createAction : function ( a , b ) { var c ; switch ( a ) { case "show" : c = BI . ShowAction } return new c ( b ) } } , BI . ShowAction = BI . inherit ( BI . Action , { _defaultConfig : function ( ) { return BI . extend ( BI . ShowAction . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . ShowAction . superclass . _init . apply ( this , arguments ) } , actionPerformed : function ( a , b , c ) { b = b || this . options . tar , b . setVisible ( ! 0 ) , c && c ( ) } , actionBack : function ( a , b , c ) { a = a || this . options . tar , a . setVisible ( ! 1 ) , c && c ( ) } } ) , function ( ) { function isEmpty ( a ) { var b = "" === a || null === a || void 0 === a ; return b } function isInvalidDate ( a ) { return "Invalid Date" == a || "NaN" == a } function _eFormat ( a , b ) { function c ( a , b ) { var c = a < 0 ? ( a *= - 1 , "-" ) : "" , h = "" , i = a > 0 && a < 1 ? "floor" : "ceil" , j = Math [ i ] ( Math . log ( a ) / Math . log ( 10 ) ) ; if ( ! isFinite ( j ) ) return b . replace ( /#/gi , "" ) . replace ( /\.e/gi , "E" ) ; a /= Math . pow ( 10 , j ) , a > 0 && a < 1 && ( a *= 10 , j -= 1 ) ; var k = f ( j , b ) ; k > 1 && ( j -= k - 1 , a *= Math . pow ( 10 , k - 1 ) ) , j < 0 && ( h = "-" , j *= - 1 ) ; var l = e ( b ) , m = g ( a ) ; return a *= Math . pow ( 10 , l ) , a = Math . round ( a ) , m && ( a /= 10 , j += "-" === h ? - 1 : 1 ) , a /= Math . pow ( 10 , l ) , a = a . toFixed ( l ) , j = d ( b , j , h ) , c + a + "E" + j } function d ( a , b , c ) { if ( b += "" , ! /e/gi . test ( a ) ) return b ; for ( a = a . split ( /e/gi ) [ 1 ] ; b . length < a . length ; ) b = "0" + b ; for ( var d = ! 0 , e = 0 , f = b . length ; e < f ; e ++ ) d && ( d = "0" === b . charAt ( e ) ) ; return c = d ? "" : c , c + b } function e ( a ) { if ( ! /e/gi . test ( a ) ) return 0 ; var b = a . split ( /e/gi ) [ 0 ] . split ( "." ) ; return b . length > 1 ? b [ 1 ] . length : 0 } function f ( a , b ) { if ( ! /e/gi . test ( b ) ) return 0 ; var c , d , e = b . split ( /e/gi ) [ 0 ] . split ( "." ) [ 0 ] , f = e . length , g = 0 ; for ( c = 0 ; c < f ; c ++ ) d = e . charAt ( c ) , ( 0 == d || "#" == d && f - c <= a + 1 ) && g ++ ; return g } function g ( a ) { var b = Math . round ( a ) ; return a = ( a + "" ) . split ( "." ) [ 0 ] , b = ( b + "" ) . split ( "." ) [ 0 ] , a . length !== b . length } return a = + a , c ( a , b ) } function _dealNumberPrecision ( a , b ) { if ( /[eE]/ . test ( a ) ) { var c , d = 0 , e = 0 ; /[%‰]$/ . test ( b ) && ( d = /[%]$/ . test ( b ) ? 2 : 3 ) ; for ( var f = b . length ; e < f ; e ++ ) "0" != ( c = b . charAt ( e ) ) && "#" != c || d ++ ; return Number ( a ) . toFixed ( d ) } return a } function _numberFormat ( a , b ) { var a = a + "" ; if ( ! /[0-9]/ . test ( a ) || ! b ) return a ; var c = b . indexOf ( ";" ) ; if ( c > - 1 ) return a >= 0 ? _numberFormat ( a + "" , b . substring ( 0 , c ) ) : _numberFormat ( - a + "" , b . substr ( c + 1 ) ) ; if ( + a < 0 && "-" !== b . charAt ( 0 ) ) return _numberFormat ( - a + "" , "-" + b ) ; var d = b . split ( "." ) , e = d [ 0 ] || "" , f = d [ 1 ] || "" ; a = _dealNumberPrecision ( a , f ) ; var g = a . split ( "." ) , h = g [ 0 ] || "" , i = g [ 1 ] || "" ; if ( /[%‰]$/ . test ( b ) ) { var j = /[%]$/ . test ( b ) ? "00" : "000" ; i += j , h += i . substr ( 0 , j . length ) , h = h . replace ( /^0+/gi , "" ) , i = i . substr ( j . length ) . replace ( /0+$/gi , "" ) } var k = _dealWithRight ( i , f ) ; k . leftPlus && ( h = parseInt ( h ) + 1 + "" , h = isNaN ( h ) ? "1" : h ) , k = k . num ; var l = _dealWithLeft ( h , e ) ; return /[0-9]/ . test ( l ) || ( l += "0" ) , /[0-9]/ . test ( k ) ? l + "." + k : l + k } function _dealWithRight ( a , b ) { for ( var c = "" , d = 0 , e = 0 , f = b . length ; e < f ; e ++ ) { var g = b . charAt ( e ) , h = a . charAt ( d ) ; switch ( g ) { case "0" : isEmpty ( h ) && ( h = "0" ) , c += h , d ++ ; break ; case "#" : c += h , d ++ ; break ; default : c += g } } var i = a . substr ( d ) , j = { } ; if ( ! isEmpty ( i ) && i . charAt ( 0 ) > 4 ) { j . leftPlus = ! 0 ; var k = c . match ( /^[0-9]+/ ) ; if ( k ) { var l = k [ 0 ] , m = l . length , n = parseInt ( l ) + 1 + "" ; n . length > m ? n = n . substr ( 1 ) : ( n = BI . leftPad ( n , m , "0" ) , j . leftPlus = ! 1 ) , c = c . replace ( /^[0-9]+/ , n ) } } return j . num = c , j } function _dealWithLeft ( a , b ) { for ( var c = "" , d = a . length - 1 , e = - 1 , f = - 1 , g = b . length - 1 ; g >= 0 ; g -- ) { var h = b . charAt ( g ) , i = a . charAt ( d ) ; switch ( h ) { case "0" : isEmpty ( i ) && ( i = "0" ) , f = - 1 , c = i + c , d -- ; break ; case "#" : f = g , c = i + c , d -- ; break ; case "," : if ( ! isEmpty ( i ) ) { var j = b . match ( /,[#0]+/ ) ; j && ( e = j [ 0 ] . length - 1 ) , c = "," + c } break ; default : c = h + c } } if ( f > - 1 ) { var k = a . substr ( 0 , d + 1 ) ; c = c . substr ( 0 , f ) + k + c . substr ( f ) } if ( e > 0 ) { var l = c . match ( /[0-9]+,/ ) ; if ( l ) { l = l [ 0 ] ; for ( var m = "" , n = l . length - 1 - e ; n >= 0 ; n -= e ) m = l . substr ( n , e ) + "," + m ; var o = l . substr ( 0 , n + e ) ; isEmpty ( o ) || ( m = o + "," + m ) } c = c . replace ( /[0-9]+,/ , m ) } return c } var _global ; _global = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , _global . BI || ( _glo
Math . ceil ( a . length / 2 ) } , getSearchResult : function ( a , b , c ) { var d = BI . isArray ( a ) ; if ( a = d ? BI . flatten ( a ) : a , c || ( c = "text" ) , ! BI . isKey ( b ) ) return { find : BI . deepClone ( a ) , match : d ? [ ] : { } } ; var e , f , g ; b = BI . toUpperCase ( b ) ; var h = d ? [ ] : { } , i = d ? [ ] : { } ; return BI . each ( a , function ( a , j ) { if ( j = BI . deepClone ( j ) , e = BI . stripEL ( j ) , f = BI . find ( [ e [ c ] , e . text , e . value , e . name , e ] , function ( a , b ) { return BI . isNotNull ( b ) } ) , ! BI . isNull ( f ) && ! BI . isObject ( f ) ) { g = BI . makeFirstPY ( f ) , f = BI . toUpperCase ( f ) , g = BI . toUpperCase ( g ) ; var k ; f . indexOf ( b ) > - 1 ? f === b ? d ? h . push ( j ) : h [ a ] = j : d ? i . push ( j ) : i [ a ] = j : ( k = g . indexOf ( b ) , k > - 1 && Math . floor ( k / f . length ) === Math . floor ( ( k + b . length - 1 ) / f . length ) && ( f === b || b . length === f . length ? d ? h . push ( j ) : h [ a ] = j : d ? i . push ( j ) : i [ a ] = j ) ) } } ) , { match : h , find : i } } } ) , _ . extend ( BI , { beforeFunc : function ( a , b ) { var c = a ; return function ( ) { return b . apply ( a , arguments ) !== ! 1 && c . apply ( a , arguments ) } } , afterFunc : function ( a , b ) { var c = a ; return function ( ) { var d = c . apply ( a , arguments ) ; return d !== ! 1 && ( b . apply ( a , arguments ) , d ) } } } ) , _ . extend ( BI , { add : function ( a , b ) { function c ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } if ( f = Math . abs ( c - d ) , e = Math . pow ( 10 , Math . max ( c , d ) ) , f > 0 ) { var h = Math . pow ( 10 , f ) ; c > d ? ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) * h ) : ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) * h , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ) } else a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ; return ( a + b ) / e } return c ( b , a ) } , sub : function ( a , b ) { function c ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } return e = Math . pow ( 10 , Math . max ( c , d ) ) , f = c >= d ? c : d , ( ( a * e - b * e ) / e ) . toFixed ( f ) } return c ( a , b ) } , mul : function ( a , b ) { function c ( a , b ) { var c = 0 , d = a . toString ( ) , e = b . toString ( ) ; try { c += d . split ( "." ) [ 1 ] . length } catch ( f ) { } try { c += e . split ( "." ) [ 1 ] . length } catch ( f ) { } return Number ( d . replace ( "." , "" ) ) * Number ( e . replace ( "." , "" ) ) / Math . pow ( 10 , c ) } return c ( b , a ) } , div : function ( a , b ) { function c ( a ) { var b = a . toString ( ) . split ( /[eE]/ ) , c = ( b [ 0 ] . split ( "." ) [ 1 ] || "" ) . length - + ( b [ 1 ] || 0 ) ; return c > 0 ? c : 0 } function d ( a ) { if ( a . toString ( ) . indexOf ( "e" ) === - 1 ) return Number ( a . toString ( ) . replace ( "." , "" ) ) ; var b = c ( a ) ; return b > 0 ? a * Math . pow ( 10 , b ) : a } function e ( a , b ) { for ( var f = [ ] , g = 2 ; g < arguments . length ; g ++ ) f [ g - 2 ] = arguments [ g ] ; if ( f . length > 0 ) return e . apply ( void 0 , [ e ( a , b ) , f [ 0 ] ] . concat ( f . slice ( 1 ) ) ) ; var h = d ( a ) , i = d ( b ) , j = c ( a ) + c ( b ) , k = h * i ; return k / Math . pow ( 10 , j ) } function f ( a , b ) { for ( var g = [ ] , h = 2 ; h < arguments . length ; h ++ ) g [ h - 2 ] = arguments [ h ] ; if ( g . length > 0 ) return f . apply ( void 0 , [ f ( a , b ) , g [ 0 ] ] . concat ( g . slice ( 1 ) ) ) ; var i = d ( a ) , j = d ( b ) ; return e ( i / j , Math . pow ( 10 , c ( b ) - c ( a ) ) ) } return f ( a , b ) } } ) , _ . extend ( BI , { startWith : function ( a , b ) { return a = a || "" , ! ( null == b || "" == b || 0 === a . length || b . length > a . length ) && a . substr ( 0 , b . length ) == b } , endWith : function ( a , b ) { return ! ( null == b || "" == b || 0 === a . length || b . length > a . length ) && a . substring ( a . length - b . length ) == b } , getQuery : function ( a , b ) { var c = new RegExp ( "(^|&)" + b + "=([^&]*)(&|$)" ) , d = a . substr ( a . indexOf ( "?" ) + 1 ) . match ( c ) ; return d ? unescape ( d [ 2 ] ) : null } , appendQuery : function ( a , b ) { if ( ! b ) return a ; var c = a ; return c . indexOf ( "?" ) === - 1 && ( c += "?" ) , c . endWith ( "?" ) !== ! 1 || ( c += "&" ) , _ . each ( b , function ( a , b ) { "string" == typeof b && ( c += b + "=" + a + "&" ) } ) , c = c . substr ( 0 , c . length - 1 ) } , replaceAll : function ( a , b , c ) { return a . replace ( new RegExp ( b , "gm" ) , c ) } , perfectStart : function ( a , b ) { return a . startWith ( b ) ? a : b + a } , allIndexOf : function ( a , b ) { if ( "string" != typeof b ) return [ ] ; for ( var c = [ ] , d = 0 ; a . length > 0 ; ) { var e = a . indexOf ( b ) ; if ( e === - 1 ) break ; c . push ( d + e ) , a = a . substring ( e + b . length , a . length ) , d += e + b . length } return c } } ) , ! function ( ) { var a = { } ; _ . extend ( BI , { addI18n : function ( b ) { BI . extend ( a , b ) } , i18nText : function ( b ) { var c = a [ b ] || BI . i18n && BI . i18n [ b ] || "" ; c || ( c = b ) ; var d = arguments . length ; if ( d > 1 ) { if ( ! ( c . indexOf ( "{R1}" ) > - 1 ) ) { var e = Array . prototype . slice . call ( arguments ) , f = 1 ; return BI . replaceAll ( c , "\\{\\s*\\}" , function ( ) { return e [ f ++ ] + "" } ) } for ( var g = 1 ; g < d ; g ++ ) { var b = "{R" + g + "}" ; c = BI . replaceAll ( c , b , arguments [ g ] + "" ) } } return c } } ) } ( ) , function ( ) { var a = { } ; BI . module = function ( b , c ) { null != a [ b ] && _global . console && console . error ( "module:[" + b + "] has been registed" ) , a [ b ] = c } ; var b = { } ; BI . constant = function ( a , c ) { nul
this . _ _IEVersion = a } , isIE9Below : function ( ) { return ! ! BI . isIE ( ) && this . getIEVersion ( ) < 9 } , isEdge : function ( ) { return ! ! _global . navigator && /edge/i . test ( navigator . userAgent . toLowerCase ( ) ) } , isChrome : function ( ) { return ! ! _global . navigator && /chrome/i . test ( navigator . userAgent . toLowerCase ( ) ) } , isFireFox : function ( ) { return ! ! _global . navigator && /firefox/i . test ( navigator . userAgent . toLowerCase ( ) ) } , isOpera : function ( ) { return ! ! _global . navigator && /opera/i . test ( navigator . userAgent . toLowerCase ( ) ) } , isSafari : function ( ) { return ! ! _global . navigator && ( /safari/i . test ( navigator . userAgent . toLowerCase ( ) ) && ! /chrome/i . test ( navigator . userAgent . toLowerCase ( ) ) ) } , isKhtml : function ( ) { return ! ! _global . navigator && /Konqueror|Safari|KHTML/i . test ( navigator . userAgent ) } , isMac : function ( ) { return ! ! _global . navigator && /macintosh|mac os x/i . test ( navigator . userAgent ) } , isWindows : function ( ) { return ! ! _global . navigator && /windows|win32/i . test ( navigator . userAgent ) } , isSupportCss3 : function ( a ) { if ( ! _global . document ) return ! 1 ; var b , c , d = [ "webkit" , "Moz" , "ms" , "o" ] , e = [ ] , f = document . documentElement . style , g = function ( a ) { return a . replace ( /-(\w)/g , function ( a , b ) { return b . toUpperCase ( ) } ) } ; for ( b in d ) e . push ( g ( d [ b ] + "-" + a ) ) ; for ( e . push ( g ( a ) ) , b = 0 , c = e . length ; b < c ; b ++ ) if ( e [ b ] in f ) return ! 0 ; return ! 1 } } ) , function ( a , b ) { function c ( a ) { var b = a . length , c = ia . type ( a ) ; return ! ia . isWindow ( a ) && ( ! ( 1 !== a . nodeType || ! b ) || ( "array" === c || "function" !== c && ( 0 === b || "number" == typeof b && b > 0 && b - 1 in a ) ) ) } function d ( a ) { var b = xa [ a ] = { } ; return ia . each ( a . match ( ka ) || [ ] , function ( a , c ) { b [ c ] = ! 0 } ) , b } function e ( a , c , d , e ) { if ( ia . acceptData ( a ) ) { var f , g , h = ia . expando , i = "string" == typeof c , j = a . nodeType , k = j ? ia . cache : a , l = j ? a [ h ] : a [ h ] && h ; if ( l && k [ l ] && ( e || k [ l ] . data ) || ! i || d !== b ) return l || ( j ? a [ h ] = l = _ . pop ( ) || ia . guid ++ : l = h ) , k [ l ] || ( k [ l ] = { } , j || ( k [ l ] . toJSON = ia . noop ) ) , "object" != typeof c && "function" != typeof c || ( e ? k [ l ] = ia . extend ( k [ l ] , c ) : k [ l ] . data = ia . extend ( k [ l ] . data , c ) ) , f = k [ l ] , e || ( f . data || ( f . data = { } ) , f = f . data ) , d !== b && ( f [ ia . camelCase ( c ) ] = d ) , i ? ( g = f [ c ] , null == g && ( g = f [ ia . camelCase ( c ) ] ) ) : g = f , g } } function f ( a , b , c ) { if ( ia . acceptData ( a ) ) { var d , e , f , g = a . nodeType , i = g ? ia . cache : a , j = g ? a [ ia . expando ] : ia . expando ; if ( i [ j ] ) { if ( b && ( f = c ? i [ j ] : i [ j ] . data ) ) { ia . isArray ( b ) ? b = b . concat ( ia . map ( b , ia . camelCase ) ) : b in f ? b = [ b ] : ( b = ia . camelCase ( b ) , b = b in f ? [ b ] : b . split ( " " ) ) ; for ( d = 0 , e = b . length ; d < e ; d ++ ) delete f [ b [ d ] ] ; if ( ! ( c ? h : ia . isEmptyObject ) ( f ) ) return } ( c || ( delete i [ j ] . data , h ( i [ j ] ) ) ) && ( g ? ia . cleanData ( [ a ] , ! 0 ) : ia . support . deleteExpando || i != i . window ? delete i [ j ] : i [ j ] = null ) } } } function g ( a , c , d ) { if ( d === b && 1 === a . nodeType ) { var e = "data-" + c . replace ( za , "-$1" ) . toLowerCase ( ) ; if ( d = a . getAttribute ( e ) , "string" == typeof d ) { try { d = "true" === d || "false" !== d && ( "null" === d ? null : + d + "" === d ? + d : ya . test ( d ) ? ia . parseJSON ( d ) : d ) } catch ( f ) { } ia . data ( a , c , d ) } else d = b } return d } function h ( a ) { var b ; for ( b in a ) if ( ( "data" !== b || ! ia . isEmptyObject ( a [ b ] ) ) && "toJSON" !== b ) return ! 1 ; return ! 0 } function i ( ) { return ! 0 } function j ( ) { return ! 1 } function k ( a , b ) { do a = a [ b ] ; while ( a && 1 !== a . nodeType ) ; return a } function l ( a , b , c ) { if ( b = b || 0 , ia . isFunction ( b ) ) return ia . grep ( a , function ( a , d ) { var e = ! ! b . call ( a , d , a ) ; return e === c } ) ; if ( b . nodeType ) return ia . grep ( a , function ( a ) { return a === b === c } ) ; if ( "string" == typeof b ) { var d = ia . grep ( a , function ( a ) { return 1 === a . nodeType } ) ; if ( Ra . test ( b ) ) return ia . filter ( b , d , ! c ) ; b = ia . filter ( b , d ) } return ia . grep ( a , function ( a ) { return ia . inArray ( a , b ) >= 0 === c } ) } function m ( a ) { var b = Ua . split ( "|" ) , c = a . createDocumentFragment ( ) ; if ( c . createElement ) for ( ; b . length ; ) c . createElement ( b . pop ( ) ) ; return c } function n ( a , b ) { return a . getElementsByTagName ( b ) [ 0 ] || a . appendChild ( a . ownerDocument . createElement ( b ) ) } function o ( a ) { var b = a . getAttributeNode ( "type" ) ; return a . type = ( b && b . specified ) + "/" + a . type , a } function p ( a ) { var b = eb . exec ( a . type ) ; return b ? a . type = b [ 1 ] : a . removeAttribute ( "type" ) , a } function q ( a , b ) { for ( var c , d = 0 ; null != ( c = a [ d ] ) ; d ++ ) ia . _data ( c , "globalEval" , ! b || ia . _data ( b [ d ] , "globalEval" ) ) } function r ( a , b ) { if ( 1 === b . nodeType && ia . hasData ( a ) ) { var c , d , e , f = ia . _data ( a ) , g = ia . _data ( b , f ) , h = f . events ; if ( h ) { delete g . handle , g . events = { } ; for ( c in h ) for ( d = 0 , e = h [ c ] . length ; d < e ; d ++ ) ia . event . add ( b , c , h [ c ] [ d ] ) } g . data && ( g . data = ia . extend ( { } , g . data ) ) } } function s ( a , b ) { var c , d , e ; if ( 1 === b . nodeType ) { if ( c = b . nodeName . toLowerCase ( ) , ! ia . suppo
if ( f && 1 === a . nodeType ) for ( ; c = f [ e ++ ] ; ) d = ia . propFix [ c ] || c , Ga . test ( c ) ? ! Ia && Ha . test ( c ) ? a [ ia . camelCase ( "default-" + c ) ] = a [ d ] = ! 1 : a [ d ] = ! 1 : ia . attr ( a , c , "" ) , a . removeAttribute ( Ia ? c : d ) } , attrHooks : { type : { set : function ( a , b ) { if ( ! ia . support . radioValue && "radio" === b && ia . nodeName ( a , "input" ) ) { var c = a . value ; return a . setAttribute ( "type" , b ) , c && ( a . value = c ) , b } } } } , propFix : { tabindex : "tabIndex" , readonly : "readOnly" , "for" : "htmlFor" , "class" : "className" , maxlength : "maxLength" , cellspacing : "cellSpacing" , cellpadding : "cellPadding" , rowspan : "rowSpan" , colspan : "colSpan" , usemap : "useMap" , frameborder : "frameBorder" , contenteditable : "contentEditable" } , prop : function ( a , c , d ) { var e , f , g , h = a . nodeType ; if ( a && 3 !== h && 8 !== h && 2 !== h ) return g = 1 !== h || ! ia . isXMLDoc ( a ) , g && ( c = ia . propFix [ c ] || c , f = ia . propHooks [ c ] ) , d !== b ? f && "set" in f && ( e = f . set ( a , d , c ) ) !== b ? e : a [ c ] = d : f && "get" in f && null !== ( e = f . get ( a , c ) ) ? e : a [ c ] } , propHooks : { tabIndex : { get : function ( a ) { var c = a . getAttributeNode ( "tabindex" ) ; return c && c . specified ? parseInt ( c . value , 10 ) : Ea . test ( a . nodeName ) || Fa . test ( a . nodeName ) && a . href ? 0 : b } } } } ) , Ba = { get : function ( a , c ) { var d = ia . prop ( a , c ) , e = "boolean" == typeof d && a . getAttribute ( c ) , f = "boolean" == typeof d ? Ja && Ia ? null != e : Ha . test ( c ) ? a [ ia . camelCase ( "default-" + c ) ] : ! ! e : a . getAttributeNode ( c ) ; return f && f . value !== ! 1 ? c . toLowerCase ( ) : b } , set : function ( a , b , c ) { return b === ! 1 ? ia . removeAttr ( a , c ) : Ja && Ia || ! Ha . test ( c ) ? a . setAttribute ( ! Ia && ia . propFix [ c ] || c , c ) : a [ ia . camelCase ( "default-" + c ) ] = a [ c ] = ! 0 , c } } , Ja && Ia || ( ia . attrHooks . value = { get : function ( a , c ) { var d = a . getAttributeNode ( c ) ; return ia . nodeName ( a , "input" ) ? a . defaultValue : d && d . specified ? d . value : b } , set : function ( a , b , c ) { return ia . nodeName ( a , "input" ) ? void ( a . defaultValue = b ) : Aa && Aa . set ( a , b , c ) } } ) , Ia || ( Aa = ia . valHooks . button = { get : function ( a , c ) { var d = a . getAttributeNode ( c ) ; return d && ( "id" === c || "name" === c || "coords" === c ? "" !== d . value : d . specified ) ? d . value : b } , set : function ( a , c , d ) { var e = a . getAttributeNode ( d ) ; return e || a . setAttributeNode ( e = a . ownerDocument . createAttribute ( d ) ) , e . value = c += "" , "value" === d || c === a . getAttribute ( d ) ? c : b } } , ia . attrHooks . contenteditable = { get : Aa . get , set : function ( a , b , c ) { Aa . set ( a , "" !== b && b , c ) } } , ia . each ( [ "width" , "height" ] , function ( a , b ) { ia . attrHooks [ b ] = ia . extend ( ia . attrHooks [ b ] , { set : function ( a , c ) { if ( "" === c ) return a . setAttribute ( b , "auto" ) , c } } ) } ) ) , ia . support . hrefNormalized || ( ia . each ( [ "href" , "src" , "width" , "height" ] , function ( a , c ) { ia . attrHooks [ c ] = ia . extend ( ia . attrHooks [ c ] , { get : function ( a ) { var d = a . getAttribute ( c , 2 ) ; return null == d ? b : d } } ) } ) , ia . each ( [ "href" , "src" ] , function ( a , b ) { ia . propHooks [ b ] = { get : function ( a ) { return a . getAttribute ( b , 4 ) } } } ) ) , ia . support . style || ( ia . attrHooks . style = { get : function ( a ) { return a . style . cssText || b } , set : function ( a , b ) { return a . style . cssText = b + "" } } ) , ia . support . optSelected || ( ia . propHooks . selected = ia . extend ( ia . propHooks . selected , { get : function ( a ) { var b = a . parentNode ; return b && ( b . selectedIndex , b . parentNode && b . parentNode . selectedIndex ) , null } } ) ) , ia . support . enctype || ( ia . propFix . enctype = "encoding" ) , ia . support . checkOn || ia . each ( [ "radio" , "checkbox" ] , function ( ) { ia . valHooks [ this ] = { get : function ( a ) { return null === a . getAttribute ( "value" ) ? "on" : a . value } } } ) , ia . each ( [ "radio" , "checkbox" ] , function ( ) { ia . valHooks [ this ] = ia . extend ( ia . valHooks [ this ] , { set : function ( a , b ) { if ( ia . isArray ( b ) ) return a . checked = ia . inArray ( ia ( a ) . val ( ) , b ) >= 0 } } ) } ) ; var Ka = /^(?:input|select|textarea)$/i , La = /^key/ , Ma = /^(?:mouse|contextmenu)|click/ , Na = /^(?:focusinfocus|focusoutblur)$/ , Oa = /^([^.]*)(?:\.(.+)|)$/ ; ia . event = { global : { } , add : function ( a , c , d , e , f ) { var g , h , i , j , k , l , m , n , o , p , q , r = ia . _data ( a ) ; if ( r ) { for ( d . handler && ( j = d , d = j . handler , f = j . selector ) , d . guid || ( d . guid = ia . guid ++ ) , ( h = r . events ) || ( h = r . events = { } ) , ( l = r . handle ) || ( l = r . handle = function ( a ) { return typeof ia === V || a && ia . event . triggered === a . type ? b : ia . event . dispatch . apply ( l . elem , arguments ) } , l . elem = a ) , c = ( c || "" ) . match ( ka ) || [ "" ] , i = c . length ; i -- ; ) g = Oa . exec ( c [ i ] ) || [ ] , o = q = g [ 1 ] , p = ( g [ 2 ] || "" ) . split ( "." ) . sort ( ) , k = ia . event . special [ o ] || { } , o = ( f ? k . delegateType : k . bindType ) || o , k = ia . event . special [ o ] || { } , m = ia . extend ( { type : o , origType : q , data : e , handler : d , guid : d . guid , selector : f , needsContext : f && ia . expr . match . needsContext . test ( f ) , namespace : p . join ( "." ) } , j ) , ( n = h [ o ] ) || ( n = h [ o ] = [ ] , n . delegateCount = 0 , k . setup && k . setup . call ( a , e , p , l ) !== !
return this . pushStack ( l ( this , a , ! 1 ) ) } , filter : function ( a ) { return this . pushStack ( l ( this , a , ! 0 ) ) } , is : function ( a ) { return ! ! a && ( "string" == typeof a ? Sa . test ( a ) ? ia ( a , this . context ) . index ( this [ 0 ] ) >= 0 : ia . filter ( a , this ) . length > 0 : this . filter ( a ) . length > 0 ) } , closest : function ( a , b ) { for ( var c , d = 0 , e = this . length , f = [ ] , g = Sa . test ( a ) || "string" != typeof a ? ia ( a , b || this . context ) : 0 ; d < e ; d ++ ) for ( c = this [ d ] ; c && c . ownerDocument && c !== b && 11 !== c . nodeType ; ) { if ( g ? g . index ( c ) > - 1 : ia . find . matchesSelector ( c , a ) ) { f . push ( c ) ; break } c = c . parentNode } return this . pushStack ( f . length > 1 ? ia . unique ( f ) : f ) } , index : function ( a ) { return a ? "string" == typeof a ? ia . inArray ( this [ 0 ] , ia ( a ) ) : ia . inArray ( a . jquery ? a [ 0 ] : a , this ) : this [ 0 ] && this [ 0 ] . parentNode ? this . first ( ) . prevAll ( ) . length : - 1 } , add : function ( a , b ) { var c = "string" == typeof a ? ia ( a , b ) : ia . makeArray ( a && a . nodeType ? [ a ] : a ) , d = ia . merge ( this . get ( ) , c ) ; return this . pushStack ( ia . unique ( d ) ) } , addBack : function ( a ) { return this . add ( null == a ? this . prevObject : this . prevObject . filter ( a ) ) } } ) , ia . fn . andSelf = ia . fn . addBack , ia . each ( { parent : function ( a ) { var b = a . parentNode ; return b && 11 !== b . nodeType ? b : null } , parents : function ( a ) { return ia . dir ( a , "parentNode" ) } , parentsUntil : function ( a , b , c ) { return ia . dir ( a , "parentNode" , c ) } , next : function ( a ) { return k ( a , "nextSibling" ) } , prev : function ( a ) { return k ( a , "previousSibling" ) } , nextAll : function ( a ) { return ia . dir ( a , "nextSibling" ) } , prevAll : function ( a ) { return ia . dir ( a , "previousSibling" ) } , nextUntil : function ( a , b , c ) { return ia . dir ( a , "nextSibling" , c ) } , prevUntil : function ( a , b , c ) { return ia . dir ( a , "previousSibling" , c ) } , siblings : function ( a ) { return ia . sibling ( ( a . parentNode || { } ) . firstChild , a ) } , children : function ( a ) { return ia . sibling ( a . firstChild ) } , contents : function ( a ) { return ia . nodeName ( a , "iframe" ) ? a . contentDocument || a . contentWindow . document : ia . merge ( [ ] , a . childNodes ) } } , function ( a , b ) { ia . fn [ a ] = function ( c , d ) { var e = ia . map ( this , b , c ) ; return Pa . test ( a ) || ( d = c ) , d && "string" == typeof d && ( e = ia . filter ( d , e ) ) , e = this . length > 1 && ! Ta [ a ] ? ia . unique ( e ) : e , this . length > 1 && Qa . test ( a ) && ( e = e . reverse ( ) ) , this . pushStack ( e ) } } ) , ia . extend ( { filter : function ( a , b , c ) { return c && ( a = ":not(" + a + ")" ) , 1 === b . length ? ia . find . matchesSelector ( b [ 0 ] , a ) ? [ b [ 0 ] ] : [ ] : ia . find . matches ( a , b ) } , dir : function ( a , c , d ) { for ( var e = [ ] , f = a [ c ] ; f && 9 !== f . nodeType && ( d === b || 1 !== f . nodeType || ! ia ( f ) . is ( d ) ) ; ) 1 === f . nodeType && e . push ( f ) , f = f [ c ] ; return e } , sibling : function ( a , b ) { for ( var c = [ ] ; a ; a = a . nextSibling ) 1 === a . nodeType && a !== b && c . push ( a ) ; return c } } ) ; var Ua = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video" , Va = / jQuery\d+="(?:null|\d+)"/g , Wa = new RegExp ( "<(?:" + Ua + ")[\\s/>]" , "i" ) , Xa = /^\s+/ , Ya = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi , Za = /<([\w:]+)/ , $a = /<tbody/i , _a = /<|&#?\w+;/ , ab = /<(?:script|style|link)/i , bb = /^(?:checkbox|radio)$/i , cb = /checked\s*(?:[^=]|=\s*.checked.)/i , db = /^$|\/(?:java|ecma)script/i , eb = /^true\/(.*)/ , fb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g , gb = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , legend : [ 1 , "<fieldset>" , "</fieldset>" ] , area : [ 1 , "<map>" , "</map>" ] , param : [ 1 , "<object>" , "</object>" ] , thead : [ 1 , "<table>" , "</table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , col : [ 2 , "<table><tbody></tbody><colgroup>" , "</colgroup></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : ia . support . htmlSerialize ? [ 0 , "" , "" ] : [ 1 , "X<div>" , "</div>" ] } , hb = m ( W ) , ib = hb . appendChild ( W . createElement ( "div" ) ) ; gb . optgroup = gb . option , gb . tbody = gb . tfoot = gb . colgroup = gb . caption = gb . thead , gb . th = gb . td , ia . fn . extend ( { text : function ( a ) { return ia . access ( this , function ( a ) { return a === b ? ia . text ( this ) : this . empty ( ) . append ( ( this [ 0 ] && this [ 0 ] . ownerDocument || W ) . createTextNode ( a ) ) } , null , a , arguments . length ) } , wrapAll : function ( a ) { if ( ia . isFunction ( a ) ) return this . each ( function ( b ) { ia ( this ) . wrapAll ( a . call ( this , b ) ) } ) ; if ( this [ 0 ] ) { var b = ia ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) ; this [ 0 ] . parentNode && b . insertBefore ( this [ 0 ] ) , b . map ( function ( ) { for ( var a = this ; a . firstChild && 1 === a . firstChild . nodeType ; ) a = a . firstChild ; return a } ) . append ( this ) } return this } , wrapInner : function ( a ) { return ia . isFunction ( a ) ? this . each ( function ( b ) { ia ( this ) . wrapInner ( a . call ( this , b ) ) } ) : t
break } this . append ( BI . htmlEncode ( d . substr ( 0 , f ) ) ) , this . append ( BI . $ ( "<span>" ) . addClass ( "bi-keyword-red-mark" ) . html ( BI . htmlEncode ( d . substr ( f , b . length ) ) ) ) , null != c && ( c = c . substr ( f + b . length ) ) , d = d . substr ( f + b . length ) } } return this } , getDomHeight : function ( a ) { var b = BI . $ ( this ) . clone ( ) ; b . appendTo ( BI . $ ( a || "body" ) ) ; var c = b . height ( ) ; return b . remove ( ) , c } , hasVerticalScroll : function ( ) { return this . height ( ) > 0 && this [ 0 ] . clientWidth < this [ 0 ] . offsetWidth } , hasHorizonScroll : function ( ) { return this . width ( ) > 0 && this [ 0 ] . clientHeight < this [ 0 ] . offsetHeight } , getStyle : function ( a ) { var b = this [ 0 ] , c = void 0 ; if ( _global . getComputedStyle && ( c = _global . getComputedStyle ( b , null ) ) ) return c . getPropertyValue ( BI . hyphenate ( a ) ) ; if ( document . defaultView && document . defaultView . getComputedStyle ) { if ( c = document . defaultView . getComputedStyle ( b , null ) ) return c . getPropertyValue ( BI . hyphenate ( a ) ) ; if ( "display" === a ) return "none" } return b . currentStyle ? "float" === a ? b . currentStyle . cssFloat || b . currentStyle . styleFloat : b . currentStyle [ BI . camelize ( a ) ] : b . style && b . style [ BI . camelize ( a ) ] } , _ _isMouseInBounds _ _ : function ( a ) { var b = this . get ( 0 ) . getBoundingClientRect ? this . get ( 0 ) . getBoundingClientRect ( ) : this . offset ( ) , c = b . width || this . outerWidth ( ) , d = b . height || this . outerHeight ( ) ; return ! ( a . pageX < Math . floor ( b . left ) || a . pageX > b . left + c || a . pageY < Math . floor ( b . top ) || a . pageY > b . top + d ) } , _ _hasZIndexMask _ _ : function ( a ) { return a && null != this . zIndexMask [ a ] } , _ _buildZIndexMask _ _ : function ( a , b ) { this . zIndexMask = this . zIndexMask || { } , this . indexMask = this . indexMask || [ ] ; var c = BI . createWidget ( { type : "bi.center_adapt" , cls : "bi-z-index-mask" , items : b } ) ; return c . element . css ( { "z-index" : a } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : c , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) , this . indexMask . push ( c ) , a && ( this . zIndexMask [ a ] = c ) , c . element } , _ _releaseZIndexMask _ _ : function ( a ) { if ( a && this . zIndexMask [ a ] ) return BI . remove ( this . indexMask , this . zIndexMask [ a ] ) , void this . zIndexMask [ a ] . destroy ( ) ; this . indexMask = this . indexMask || [ ] ; var b = this . indexMask . pop ( ) ; b && b . destroy ( ) } } ) ) , _ . extend ( BI , { $import : function ( ) { function a ( a , c ) { var d = BI . $ ( "head script, body script" ) ; BI . $ . each ( d , function ( c , d ) { d . src . indexOf ( a ) != - 1 && ( b [ a ] = ! 0 ) } ) ; var e = BI . $ ( "head link" ) ; BI . $ . each ( e , function ( d , e ) { e . href . indexOf ( a ) != - 1 && c && ( b [ a ] = ! 1 , BI . $ ( e ) . remove ( ) ) } ) } var b = { } ; return function ( c , d , e ) { if ( a ( c , e ) , b [ c ] !== ! 0 ) if ( "css" === d ) { var f = document . createElement ( "link" ) ; f . rel = "stylesheet" , f . type = "text/css" , f . href = c ; var g = document . getElementsByTagName ( "head" ) [ 0 ] ; g . appendChild ( f ) , b [ c ] = ! 0 } else BI . $ . ajax ( { url : c , dataType : "script" , async : ! 1 , cache : ! 0 , complete : function ( a , d ) { "success" == d && ( b [ c ] = ! 0 ) } } ) } } ( ) } ) , Number . prototype . toFixed && "0.000" === 8e-5 . toFixed ( 3 ) && "0" !== . 9. toFixed ( 0 ) && "1.25" === 1.255 . toFixed ( 2 ) && "1000000000000000128" === ( 0xde0b6b3a7640080 ) . toFixed ( 0 ) || ! function ( ) { function a ( a , b ) { for ( var c = - 1 ; ++ c < g ; ) b += a * h [ c ] , h [ c ] = b % f , b = Math . floor ( b / f ) } function b ( a ) { for ( var b = g , c = 0 ; -- b >= 0 ; ) c += h [ b ] , h [ b ] = Math . floor ( c / a ) , c = c % a * f } function c ( ) { for ( var a = g , b = "" ; -- a >= 0 ; ) if ( "" !== b || 0 === a || 0 !== h [ a ] ) { var c = String ( h [ a ] ) ; "" === b ? b = c : b += "0000000" . slice ( 0 , 7 - c . length ) + c } return b } function d ( a , b , c ) { return 0 === b ? c : b % 2 === 1 ? d ( a , b - 1 , c * a ) : d ( a * a , b / 2 , c ) } function e ( a ) { for ( var b = 0 ; a >= 4096 ; ) b += 12 , a /= 4096 ; for ( ; a >= 2 ; ) b += 1 , a /= 2 ; return b } var f , g , h ; f = 1e7 , g = 6 , h = [ 0 , 0 , 0 , 0 , 0 , 0 ] , Number . prototype . toFixed = function ( f ) { var g , h , i , j , k , l , m , n ; if ( g = Number ( f ) , g = g !== g ? 0 : Math . floor ( g ) , g < 0 || g > 20 ) throw new RangeError ( "Number.toFixed called with invalid number of decimals" ) ; if ( h = Number ( this ) , h !== h ) return "NaN" ; if ( h <= - 1e21 || h > 1e21 ) return String ( h ) ; if ( i = "" , h < 0 && ( i = "-" , h = - h ) , j = "0" , h > 1e-21 ) if ( k = e ( h * d ( 2 , 69 , 1 ) ) - 69 , l = k < 0 ? h * d ( 2 , - k , 1 ) : h / d ( 2 , k , 1 ) , l *= 4503599627370496 , k = 52 - k , k > 0 ) { for ( a ( 0 , l ) , m = g ; m >= 7 ; ) a ( 1e7 , 0 ) , m -= 7 ; for ( a ( d ( 10 , m , 1 ) , 0 ) , m = k - 1 ; m >= 23 ; ) b ( 1 << 23 ) , m -= 23 ; b ( 1 << m ) , a ( 1 , 1 ) , b ( 2 ) , j = c ( ) } else a ( 0 , l ) , a ( 1 << - k , 0 ) , j = c ( ) + "0.00000000000000000000" . slice ( 2 , 2 + g ) ; return g > 0 ? ( n = j . length , j = n <= g ? i + "0.0000000000000000000" . slice ( 0 , g - n + 2 ) + j : i + j . slice ( 0 , n - g ) + "." + j . slice ( n - g ) ) : j = i + j , j } } ( ) , _ . extend ( BI , { MAX : 0x1000000000000000 , MIN : - 0x1000000000000000 , EVENT _RESPONSE _TIME : 200 , zIndex _layer : 1e5 , zIndex _popover : 1e6 , zIndex _popup : 1e7 , zIndex _masker : 1e8 , zIndex _tip : 1e9 , emptyStr : "" , emptyFn : function ( ) { } , empty : null , Key : { 48 : "0" , 49 : " 1
this . _mount ( ) } } ) , BI . shortcut ( "bi.flex_scrollable_vertical" , BI . FlexWrapperVerticalLayout ) , BI . AbsoluteLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AbsoluteLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-absolute-layout" , hgap : null , vgap : null , lgap : null , rgap : null , tgap : null , bgap : null } ) } , render : function ( ) { BI . AbsoluteLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AbsoluteLayout . superclass . _addElement . apply ( this , arguments ) , e = 0 , f = 0 , g = 0 , h = 0 ; return BI . isNotNull ( b . left ) && ( d . element . css ( { left : b . left } ) , e += b . left ) , BI . isNotNull ( b . right ) && ( d . element . css ( { right : b . right } ) , f += b . right ) , BI . isNotNull ( b . top ) && ( d . element . css ( { top : b . top } ) , g += b . top ) , BI . isNotNull ( b . bottom ) && ( d . element . css ( { bottom : b . bottom } ) , h += b . bottom ) , BI . isNotNull ( c . hgap ) && ( e += c . hgap , d . element . css ( { left : e } ) , f += c . hgap , d . element . css ( { right : f } ) ) , BI . isNotNull ( c . vgap ) && ( g += c . vgap , d . element . css ( { top : g } ) , h += c . vgap , d . element . css ( { bottom : h } ) ) , BI . isNotNull ( c . lgap ) && ( e += c . lgap , d . element . css ( { left : e } ) ) , BI . isNotNull ( c . rgap ) && ( f += c . rgap , d . element . css ( { right : f } ) ) , BI . isNotNull ( c . tgap ) && ( g += c . tgap , d . element . css ( { top : g } ) ) , BI . isNotNull ( c . bgap ) && ( h += c . bgap , d . element . css ( { bottom : h } ) ) , BI . isNotNull ( b . width ) && d . element . css ( { width : b . width } ) , BI . isNotNull ( b . height ) && d . element . css ( { height : b . height } ) , d . element . css ( { position : "absolute" } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , stroke : function ( a ) { this . options . items = a || [ ] ; var b = this ; BI . each ( a , function ( a , c ) { if ( c ) { if ( ! BI . isWidget ( c ) && ! c . el ) throw new Error ( "el must be exist" ) ; b . _addElement ( a , c ) } } ) } , populate : function ( a ) { BI . AbsoluteLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.absolute" , BI . AbsoluteLayout ) , BI . AdaptiveLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . AdaptiveLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-adaptive-layout" , hgap : null , vgap : null , lgap : null , rgap : null , tgap : null , bgap : null } ) } , render : function ( ) { BI . AdaptiveLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AdaptiveLayout . superclass . _addElement . apply ( this , arguments ) ; d . element . css ( { position : "relative" } ) ; var e = 0 , f = 0 , g = 0 , h = 0 ; return BI . isNotNull ( b . left ) && d . element . css ( { left : b . left } ) , BI . isNotNull ( b . right ) && d . element . css ( { right : b . right } ) , BI . isNotNull ( b . top ) && d . element . css ( { top : b . top } ) , BI . isNotNull ( b . bottom ) && d . element . css ( { bottom : b . bottom } ) , BI . isNotNull ( c . hgap ) && ( e += c . hgap , d . element . css ( { "margin-left" : e } ) , f += c . hgap , d . element . css ( { "margin-right" : f } ) ) , BI . isNotNull ( c . vgap ) && ( g += c . vgap , d . element . css ( { "margin-top" : g } ) , h += c . vgap , d . element . css ( { "margin-bottom" : h } ) ) , BI . isNotNull ( c . lgap ) && ( e += c . lgap , d . element . css ( { "margin-left" : e } ) ) , BI . isNotNull ( c . rgap ) && ( f += c . rgap , d . element . css ( { "margin-right" : f } ) ) , BI . isNotNull ( c . tgap ) && ( g += c . tgap , d . element . css ( { "margin-top" : g } ) ) , BI . isNotNull ( c . bgap ) && ( h += c . bgap , d . element . css ( { "margin-bottom" : h } ) ) , BI . isNotNull ( b . width ) && d . element . css ( { width : b . width } ) , BI . isNotNull ( b . height ) && d . element . css ( { height : b . height } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . AbsoluteLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.adaptive" , BI . AdaptiveLayout ) , BI . BorderLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . BorderLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-border-layout" , items : { } } ) } , render : function ( ) { BI . BorderLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { this . stroke ( this . options . items ) } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b , c = 0 , d = 0 , e = 0 , f = 0 ; if ( "north" in a && ( b = a . north , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "north" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "north" , g ) } this . getWidgetByName ( this . getName ( ) + "north" ) . element . height ( b . height ) . css ( { position : "absolute" , top : b . top || 0 , left : b . left || 0 , right : b . right || 0 , bottom : "initial" } ) } c = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "south" in a && ( b = a . south , null != b ) ) { if ( b . el
items : [ [ { el : { type : "bi.button" , text : "button1" } } , { el : { type : "bi.button" , text : "button2" } } , { el : { type : "bi.button" , text : "button3" } } ] ] } ) } , render : function ( ) { BI . WindowLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { this . stroke ( this . options . items ) } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { 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 ; BI . isNumber ( e . rowSize ) && ( e . rowSize = BI . makeArray ( e . items . length , 1 / e . items . length ) ) , BI . isNumber ( e . columnSize ) && ( e . columnSize = BI . makeArray ( e . items [ 0 ] . length , 1 / e . items [ 0 ] . length ) ) ; for ( var f = 0 ; f < e . rows ; f ++ ) for ( var g = 0 ; g < e . columns ; g ++ ) { if ( ! e . items [ f ] [ g ] ) throw new Error ( "item be required" ) ; if ( ! this . hasWidget ( this . getName ( ) + f + "_" + g ) ) { var h = BI . createWidget ( e . items [ f ] [ g ] ) ; h . element . css ( { position : "absolute" } ) , this . addWidget ( this . getName ( ) + f + "_" + g , h ) } } var i = { } , j = { } , k = { } , l = { } ; i [ 0 ] = 0 , k [ 0 ] = 0 , j [ e . columns - 1 ] = 0 , l [ e . rows - 1 ] = 0 ; for ( var f = 0 ; f < e . rows ; f ++ ) { for ( var g = 0 ; g < e . columns ; g ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( k [ f ] ) && ( k [ f ] = k [ f - 1 ] + ( e . rowSize [ f - 1 ] < 1 ? e . rowSize [ f - 1 ] : e . rowSize [ f - 1 ] + e . vgap + e . bgap ) ) ; var n = k [ f ] <= 1 ? 100 * k [ f ] + "%" : k [ f ] + e . vgap + e . tgap + "px" , o = "" ; BI . isNumber ( e . rowSize [ f ] ) && ( o = e . rowSize [ f ] <= 1 ? 100 * e . rowSize [ f ] + "%" : e . rowSize [ f ] + "px" ) , m . element . css ( { top : n , height : o } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . rowSize [ f ] ) ) break } for ( var f = e . rows - 1 ; f >= 0 ; f -- ) { for ( var g = 0 ; g < e . columns ; g ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( l [ f ] ) && ( l [ f ] = l [ f + 1 ] + ( e . rowSize [ f + 1 ] < 1 ? e . rowSize [ f + 1 ] : e . rowSize [ f + 1 ] + e . vgap + e . tgap ) ) ; var p = l [ f ] <= 1 ? 100 * l [ f ] + "%" : l [ f ] + e . vgap + e . bgap + "px" , o = "" ; BI . isNumber ( e . rowSize [ f ] ) && ( o = e . rowSize [ f ] <= 1 ? 100 * e . rowSize [ f ] + "%" : e . rowSize [ f ] + "px" ) , m . element . css ( { bottom : p , height : o } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . rowSize [ f ] ) ) break } for ( var g = 0 ; g < e . columns ; g ++ ) { for ( var f = 0 ; f < e . rows ; f ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( i [ g ] ) && ( i [ g ] = i [ g - 1 ] + ( e . columnSize [ g - 1 ] < 1 ? e . columnSize [ g - 1 ] : e . columnSize [ g - 1 ] + e . hgap + e . rgap ) ) ; var q = i [ g ] <= 1 ? 100 * i [ g ] + "%" : i [ g ] + e . hgap + e . lgap + "px" , h = "" ; BI . isNumber ( e . columnSize [ g ] ) && ( h = e . columnSize [ g ] <= 1 ? 100 * e . columnSize [ g ] + "%" : e . columnSize [ g ] + "px" ) , m . element . css ( { left : q , width : h } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . columnSize [ g ] ) ) break } for ( var g = e . columns - 1 ; g >= 0 ; g -- ) { for ( var f = 0 ; f < e . rows ; f ++ ) { var m = this . getWidgetByName ( this . getName ( ) + f + "_" + g ) ; BI . isNull ( j [ g ] ) && ( j [ g ] = j [ g + 1 ] + ( e . columnSize [ g + 1 ] < 1 ? e . columnSize [ g + 1 ] : e . columnSize [ g + 1 ] + e . hgap + e . lgap ) ) ; var r = j [ g ] <= 1 ? 100 * j [ g ] + "%" : j [ g ] + e . hgap + e . rgap + "px" , h = "" ; BI . isNumber ( e . columnSize [ g ] ) && ( h = e . columnSize [ g ] <= 1 ? 100 * e . columnSize [ g ] + "%" : e . columnSize [ g ] + "px" ) , m . element . css ( { right : r , width : h } ) , d ( m , f , g ) } if ( ! BI . isNumber ( e . columnSize [ g ] ) ) break } } , update : function ( ) { } , populate : function ( a ) { BI . WindowLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.window" , BI . WindowLayout ) , BI . CenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . CenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . CenterLayout . superclass . render . apply ( this , arguments ) ; var a = this , b = this . options , c = [ ] , d = b . items ; return BI . each ( d , function ( a ) { c . push ( { column : a , row : 0 , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === a ? "first-element " : "" ) + ( a === d . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( d , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , { type : "bi.grid" , ref : function ( b ) { a . wrapper = b } , columns : c . length ,
this . fireEvent ( BI . BasicButton . EVENT _CHANGE , c , this ) , b . action && BI . Actions . runAction ( b . action , "click" , b , this ) , BI . Actions . runGlobalAction ( "click" , b , this ) } } , _doClick : function ( a ) { this . isValid ( ) && this . beforeClick ( a ) , this . _trigger ( a ) , this . isValid ( ) && this . doClick ( a ) } , beforeClick : function ( ) { } , doClick : function ( ) { } , handle : function ( ) { return this } , hover : function ( ) { this . _hover = ! 0 , this . handle ( ) . element . addClass ( "hover" ) , this . options . shadow && this . $mask && this . $mask . setVisible ( ! 0 ) } , dishover : function ( ) { this . _hover = ! 1 , this . handle ( ) . element . removeClass ( "hover" ) , this . options . shadow && this . $mask && this . $mask . setVisible ( ! 1 ) } , setSelected : function ( a ) { var b = this . options ; b . selected = a , a ? this . handle ( ) . element . addClass ( "active" ) : this . handle ( ) . element . removeClass ( "active" ) , b . shadow && ! b . isShadowShowingOnSelected && this . $mask && this . $mask . setVisible ( ! 1 ) } , isSelected : function ( ) { return this . options . selected } , isOnce : function ( ) { return this . options . once } , isForceSelected : function ( ) { return this . options . forceSelected } , isForceNotSelected : function ( ) { return this . options . forceNotSelected } , isDisableSelected : function ( ) { return this . options . disableSelected } , setText : function ( a ) { this . options . text = a } , getText : function ( ) { return this . options . text } , _setEnable : function ( a ) { BI . BasicButton . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . removeClass ( "base-disabled disabled" ) : a === ! 1 && this . element . addClass ( "base-disabled disabled" ) , a || this . options . shadow && this . $mask && this . $mask . setVisible ( ! 1 ) } , empty : function ( ) { BI . Widget . _renderEngine . createElement ( document ) . unbind ( "mouseup." + this . getName ( ) ) , BI . BasicButton . superclass . empty . apply ( this , arguments ) } , destroy : function ( ) { BI . BasicButton . superclass . destroy . apply ( this , arguments ) } } ) , BI . BasicButton . EVENT _CHANGE = "BasicButton.EVENT_CHANGE" , BI . NodeButton = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { var a = BI . NodeButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { _baseCls : ( a . _baseCls || "" ) + " bi-node" , open : ! 1 } ) } , _init : function ( ) { BI . NodeButton . superclass . _init . apply ( this , arguments ) ; var a = this ; BI . nextTick ( function ( ) { a . setOpened ( a . isOpened ( ) ) } ) } , doClick : function ( ) { BI . NodeButton . superclass . doClick . apply ( this , arguments ) , this . setOpened ( ! this . isOpened ( ) ) } , isOnce : function ( ) { return ! 1 } , isOpened : function ( ) { return ! ! this . options . open } , setOpened : function ( a ) { this . options . open = ! ! a } , triggerCollapse : function ( ) { this . isOpened ( ) && ( this . setOpened ( ! 1 ) , this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . COLLAPSE , this . getValue ( ) , this ) ) } , triggerExpand : function ( ) { this . isOpened ( ) || ( this . setOpened ( ! 0 ) , this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . EXPAND , this . getValue ( ) , this ) ) } } ) , BI . Tip = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . Tip . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { _baseCls : ( a . _baseCls || "" ) + " bi-tip" , zIndex : BI . zIndex _tip } ) } , _init : function ( ) { BI . Tip . superclass . _init . apply ( this , arguments ) , this . element . css ( { zIndex : this . options . zIndex } ) } } ) , BI . ButtonGroup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . ButtonGroup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-button-group" , behaviors : { } , items : [ ] , value : "" , chooseType : BI . Selection . Single , layouts : [ { type : "bi.center" , hgap : 0 , vgap : 0 } ] } ) } , _init : function ( ) { BI . ButtonGroup . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = { } ; BI . each ( a . behaviors , function ( a , c ) { b [ a ] = BI . BehaviorFactory . createBehavior ( a , { rule : c } ) } ) , this . behaviors = b , this . populate ( a . items ) , ( BI . isKey ( a . value ) || BI . isNotEmptyArray ( a . value ) ) && this . setValue ( a . value ) } , _createBtns : function ( a ) { this . options ; return BI . createWidgets ( BI . createItems ( a , { type : "bi.text_button" } ) ) } , _btnsCreator : function ( a ) { var b = this , c = Array . prototype . slice . call ( arguments ) , d = this . options , e = this . _createBtns ( a ) ; return c [ 0 ] = e , BI . each ( this . behaviors , function ( a , b ) { b . doBehavior . apply ( b , c ) } ) , BI . each ( e , function ( a , c ) { c . on ( BI . Controller . EVENT _CHANGE , function ( a , e , f ) { if ( a === BI . Events . CLICK ) { switch ( d . chooseType ) { case BI . ButtonGroup . CHOOSE _TYPE _SINGLE : b . setValue ( c . getValue ( ) ) ; break ; case BI . ButtonGroup . CHOOSE _TYPE _NONE : b . setValue ( [ ] ) } b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b . fireEvent ( BI . B
type : "bi.label" , width : q . width , height : q . height } , b . items [ q . index ] , { cls : ( b . items [ q . index ] . cls || "" ) + " container-cell" + ( 0 === q . y ? " first-row" : "" ) + ( 0 === q . x ? " first-col" : "" ) , _left : q . x , _top : q . y } ) ) , j . push ( { el : z , left : q . x , top : q . y , _left : q . x , _top : q . y , _width : q . width , _height : q . height } ) ) ; for ( var B = 0 | s [ q . y ] , C = 0 | s [ q . y + q . height ] , D = B ; D <= C ; D ++ ) { var E = n [ D ] ; x ( t , E ) , y ( u , E ) , t [ E ] = Math . min ( t [ E ] , q . x ) , u [ E ] = Math . max ( u [ E ] , q . x + q . width ) } for ( var F = 0 | r [ q . x ] , G = 0 | r [ q . x + q . width ] , D = F ; D <= G ; D ++ ) { var H = m [ D ] ; x ( v , H ) , y ( w , H ) , v [ H ] = Math . min ( v [ H ] , q . y ) , w [ H ] = Math . max ( w [ H ] , q . y + q . height ) } k [ q . index ] = [ q . index , o ] , l [ o ] = z } var I = { } , J = { } , K = [ ] ; BI . each ( k , function ( b , c ) { a . renderedKeys [ b ] ? I [ b ] = c : J [ b ] = c } ) , BI . each ( this . renderedKeys , function ( a , b ) { I [ a ] || J [ a ] || K . push ( b [ 1 ] ) } ) , BI . each ( K , function ( b , c ) { a . renderedCells [ c ] . el . _destroy ( ) } ) ; var L = [ ] ; BI . each ( J , function ( a , b ) { L . push ( j [ b [ 1 ] ] ) } ) , this . container . addItems ( L ) , this . container . _children = l , this . container . attr ( "items" , j ) , this . renderedCells = j , this . renderedKeys = k ; var M = BI . min ( t ) , N = BI . max ( u ) , O = BI . max ( v ) , P = BI . min ( w ) ; this . renderRange = { minX : M , minY : O , maxX : N , maxY : P } } } , _getMaxScrollLeft : function ( ) { return Math . max ( 0 , this . _width - this . options . width + ( this . options . overflowX ? BI . DOM . getScrollWidth ( ) : 0 ) ) } , _getMaxScrollTop : function ( ) { return Math . max ( 0 , this . _height - this . options . height + ( this . options . overflowY ? BI . DOM . getScrollWidth ( ) : 0 ) ) } , _populate : function ( a ) { var b = this . options ; if ( this . _reRange ( ) , a && a !== this . options . items && ( this . options . items = a , this . _calculateSizeAndPositionData ( ) ) , b . items . length > 0 ) { this . container . setWidth ( this . _width ) , this . container . setHeight ( this . _height ) , this . _calculateChildrenToRender ( ) ; try { this . element . scrollTop ( b . scrollTop ) , this . element . scrollLeft ( b . scrollLeft ) } catch ( c ) { } } } , setScrollLeft : function ( a ) { this . options . scrollLeft !== a && ( this . _scrollLock = ! 0 , this . options . scrollLeft = BI . clamp ( a || 0 , 0 , this . _getMaxScrollLeft ( ) ) , this . _debounceRelease ( ) , this . _calculateChildrenToRender ( ) , this . element . scrollLeft ( this . options . scrollLeft ) ) } , setScrollTop : function ( a ) { this . options . scrollTop !== a && ( this . _scrollLock = ! 0 , this . options . scrollTop = BI . clamp ( a || 0 , 0 , this . _getMaxScrollTop ( ) ) , this . _debounceRelease ( ) , this . _calculateChildrenToRender ( ) , this . element . scrollTop ( this . options . scrollTop ) ) } , setOverflowX : function ( a ) { var b = this ; this . options . overflowX !== ! ! a && ( this . options . overflowX = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowX : a ? "auto" : "hidden" } ) } ) ) } , setOverflowY : function ( a ) { var b = this ; this . options . overflowY !== ! ! a && ( this . options . overflowY = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowY : a ? "auto" : "hidden" } ) } ) ) } , getScrollLeft : function ( ) { return this . options . scrollLeft } , getScrollTop : function ( ) { return this . options . scrollTop } , getMaxScrollLeft : function ( ) { return this . _getMaxScrollLeft ( ) } , getMaxScrollTop : function ( ) { return this . _getMaxScrollTop ( ) } , _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 . CollectionView . EVENT _SCROLL = "EVENT_SCROLL" , BI . shortcut ( "bi.collection_view" , BI . CollectionView ) , BI . Combo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . Combo . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-combo" , trigger : "click" , toggle : ! 0 , direction : "bottom" , logic : { dynamic : ! 0 } , container : null , isDefaultInit : ! 1 , destroyWhenHide : ! 1 , isNeedAdjustHeight : ! 0 , isNeedAdjustWidth : ! 0 , stopEvent : ! 1 , stopPropagation : ! 1 , adjustLength : 0 , adjustXOffset : 0 , adjustYOffset : 0 , hideChecker : BI . emptyFn , offsetStyle : "left" , el : { } , popup : { } , comboClass : "bi-combo-popup" , hoverClass : "bi-combo-hover" } ) } , _init : function ( ) { BI . Combo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _initCombo ( ) , this . _initPullDownAction ( ) , this . combo . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . isEnabled ( ) && a . isValid ( ) && ( b === BI . Events . EXPAND && a . _popupView ( ) , b === BI . Events . COLLAPSE && a . _hideView ( ) , b === BI . Events . EXPAND && ( a . fireEvent (
hgap : 0 , isDefaultInit : ! 1 , isAutoSearch : ! 0 , isAutoSync : ! 0 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , onSearch : function ( a , b ) { b ( [ ] ) } , el : { type : "bi.search_editor" } , popup : { type : "bi.searcher_view" } , adapter : null , masker : { offset : { } } } ) } , _init : function ( ) { BI . Searcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( b . el , { type : "bi.search_editor" } ) , BI . createWidget ( { type : "bi.vertical" , element : this , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , vgap : b . vgap , hgap : b . hgap , items : [ this . editor ] } ) , b . isDefaultInit && this . _assertPopupView ( ) ; var c = BI . debounce ( BI . bind ( this . _search , this ) , BI . EVENT _RESPONSE _TIME , { leading : ! 0 , trailing : ! 1 } ) ; this . editor . on ( BI . Controller . EVENT _CHANGE , function ( b ) { switch ( b ) { case BI . Events . STARTEDIT : a . _startSearch ( ) ; break ; case BI . Events . EMPTY : a . _stopSearch ( ) ; break ; case BI . Events . CHANGE : c ( ) ; break ; case BI . Events . PAUSE : a . _pauseSearch ( ) } } ) } , _assertPopupView : function ( ) { var a = this , b = this . options ; ( b . masker && ! BI . Maskers . has ( this . getName ( ) ) || b . masker === ! 1 && ! this . popupView ) && ( this . popupView = BI . createWidget ( b . popup , { type : "bi.searcher_view" , chooseType : b . chooseType } ) , this . popupView . on ( BI . Controller . EVENT _CHANGE , function ( c , d , e ) { if ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , c === BI . Events . CLICK ) { if ( b . isAutoSync ) { var f = b . adapter && b . adapter . getValue ( ) ; if ( e . isSelected ( ) ) switch ( b . chooseType ) { case BI . ButtonGroup . CHOOSE _TYPE _SINGLE : b . adapter && b . adapter . setValue ( [ e . getValue ( ) ] ) ; break ; case BI . ButtonGroup . CHOOSE _TYPE _MULTI : f . push ( e . getValue ( ) ) , b . adapter && b . adapter . setValue ( f ) } else b . adapter && b . adapter . setValue ( BI . deepWithout ( f , e . getValue ( ) ) ) } a . fireEvent ( BI . Searcher . EVENT _CHANGE , d , e ) } } ) , BI . nextTick ( function ( ) { a . fireEvent ( BI . Searcher . EVENT _AFTER _INIT ) } ) ) , b . masker && ! BI . Maskers . has ( this . getName ( ) ) && BI . Maskers . create ( this . getName ( ) , b . adapter , BI . extend ( { container : this , render : this . popupView } , b . masker ) , this ) } , _startSearch : function ( ) { this . _assertPopupView ( ) , this . _stop = ! 1 , this . _isSearching = ! 0 , this . fireEvent ( BI . Searcher . EVENT _START ) , this . popupView . startSearch && this . popupView . startSearch ( ) , BI . nextTick ( function ( a ) { BI . Maskers . show ( a ) } , this . getName ( ) ) } , _pauseSearch : function ( ) { this . options , this . getName ( ) ; this . _stop = ! 0 , BI . nextTick ( function ( a ) { BI . Maskers . hide ( a ) } , this . getName ( ) ) , this . _isSearching === ! 0 && ( this . popupView && this . popupView . pauseSearch && this . popupView . pauseSearch ( ) , this . fireEvent ( BI . Searcher . EVENT _PAUSE ) ) , this . _isSearching = ! 1 } , _stopSearch : function ( ) { var a = ( this . options , this . getName ( ) ) ; this . _stop = ! 0 , BI . Maskers . hide ( a ) , this . _isSearching === ! 0 && ( this . popupView && this . popupView . stopSearch && this . popupView . stopSearch ( ) , this . fireEvent ( BI . Searcher . EVENT _STOP ) ) , this . _isSearching = ! 1 } , _search : function ( ) { var a = this , b = this . options , c = this . editor . getValue ( ) ; if ( "" !== c && ! this . _stop ) { if ( b . isAutoSearch ) { var d = b . adapter && ( b . adapter . getItems && b . adapter . getItems ( ) || b . adapter . attr ( "items" ) ) || [ ] , e = BI . Func . getSearchResult ( d , c ) , f = e . match , g = e . find ; return this . popupView . populate ( g , f , c ) , b . isAutoSync && b . adapter && b . adapter . getValue && this . popupView . setValue ( b . adapter . getValue ( ) ) , void a . fireEvent ( BI . Searcher . EVENT _SEARCHING ) } this . popupView . loading && this . popupView . loading ( ) , b . onSearch ( { times : 1 , keyword : c , selectedValues : b . adapter && b . adapter . getValue ( ) } , function ( d , e ) { if ( ! a . _stop ) { var f = [ ] . slice . call ( arguments ) ; f . length > 0 && f . push ( c ) , BI . Maskers . show ( a . getName ( ) ) , a . popupView . populate . apply ( a . popupView , f ) , b . isAutoSync && b . adapter && b . adapter . getValue && a . popupView . setValue ( b . adapter . getValue ( ) ) , a . popupView . loaded && a . popupView . loaded ( ) , a . fireEvent ( BI . Searcher . EVENT _SEARCHING ) } } ) } } , setAdapter : function ( a ) { this . options . adapter = a , BI . Maskers . remove ( this . getName ( ) ) } , doSearch : function ( ) { this . isSearching ( ) && this . _search ( ) } , stopSearch : function ( ) { this . _stopSearch ( ) ; try { this . editor . blur ( ) } catch ( a ) { if ( ! this . editor . blur ) throw new Error ( "editor没有实现blur方法" ) } finally { this . editor . setValue ( "" ) } } , isSearching : function ( ) { return this . _isSearching } , isViewVisible : function ( ) { return this . editor . isEnabled ( ) && BI . Maskers . isVisible ( this . getName ( ) ) } , getView : function ( ) { return this . popupView } , hasMatched : function ( ) { return this . _assertPopupView ( ) , this . popupView . hasMatched ( ) } , adj
redmark : function ( ) { return ! 0 } } , items : [ ] , layouts : [ { type : "bi.vertical" } ] } } ) } , _init : function ( ) { BI . SearcherView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . matcher = BI . createWidget ( b . matcher , { type : "bi.button_group" , chooseType : b . chooseType , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] , value : b . value } ) , this . matcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SearcherView . EVENT _CHANGE , c , d ) } ) , this . spliter = BI . createWidget ( { type : "bi.vertical" , height : 1 , hgap : 10 , items : [ { type : "bi.layout" , height : 1 , cls : "searcher-view-spliter bi-background" } ] } ) , this . searcher = BI . createWidget ( b . searcher , { type : "bi.button_group" , chooseType : b . chooseType , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] , value : b . value } ) , this . searcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SearcherView . EVENT _CHANGE , c , d ) } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . matcher , this . spliter , this . searcher ] } ) } , startSearch : function ( ) { } , stopSearch : function ( ) { } , setValue : function ( a ) { this . matcher . setValue ( a ) , this . searcher . setValue ( a ) } , getValue : function ( ) { return this . matcher . getValue ( ) . concat ( this . searcher . getValue ( ) ) } , populate : function ( a , b , c ) { a || ( a = [ ] ) , b || ( b = [ ] ) , this . setTipVisible ( a . length + b . length === 0 ) , this . spliter . setVisible ( BI . isNotEmptyArray ( b ) && BI . isNotEmptyArray ( a ) ) , this . matcher . populate ( b , c ) , this . searcher . populate ( a , c ) } , empty : function ( ) { this . searcher . empty ( ) , this . matcher . empty ( ) } , hasMatched : function ( ) { return this . matcher . getAllButtons ( ) . length > 0 } } ) , BI . SearcherView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.searcher_view" , BI . SearcherView ) , BI . ListView = BI . inherit ( BI . Widget , { props : function ( ) { return { baseCls : "bi-list-view" , overscanHeight : 100 , blockSize : 10 , scrollTop : 0 , el : { } , items : [ ] } } , init : function ( ) { this . renderedIndex = - 1 , this . cache = { } } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vertical" , items : [ BI . extend ( { type : "bi.vertical" , scrolly : ! 1 , ref : function ( ) { a . container = this } } , b . el ) ] , element : this } } , mounted : function ( ) { var a = this , b = this . options ; this . _populate ( ) , this . element . scroll ( function ( c ) { b . scrollTop = a . element . scrollTop ( ) , a . _calculateBlocksToRender ( ) } ) ; var c = this . element . width ( ) , d = this . element . height ( ) ; BI . ResizeDetector . addResizeListener ( this , function ( ) { var b = a . element . width ( ) , e = a . element . height ( ) ; b === c && e === d || ( c = b , d = e , a . _calculateBlocksToRender ( ) ) } ) } , _renderMoreIf : function ( ) { for ( var a , b = this , c = this . options , d = this . element . height ( ) , e = c . scrollTop + d + c . overscanHeight , f = this . cache [ this . renderedIndex ] && this . cache [ this . renderedIndex ] . index + c . blockSize || 0 , g = this . renderedIndex + 1 , h = function ( ) { return b . container . element . height ( ) } ; ( a = h ( ) ) < e && f < c . items . length ; ) { var i = c . items . slice ( f , f + c . blockSize ) ; this . container . addItems ( i , this ) ; var j = h ( ) - a ; this . cache [ g ] = { index : f , scrollTop : a , height : j } , this . renderedIndex = g , g ++ , f += c . blockSize } } , _calculateBlocksToRender : function ( ) { this . options ; this . _renderMoreIf ( ) } , _populate : function ( a ) { var b = this . options ; a && this . options . items !== a && ( this . options . items = a ) , this . _calculateBlocksToRender ( ) , this . element . scrollTop ( b . scrollTop ) } , restore : function ( ) { this . renderedIndex = - 1 , this . container . empty ( ) , this . cache = { } } , populate : function ( a ) { a && this . options . items !== a && this . restore ( ) , this . _populate ( a ) } , destroyed : function ( ) { this . restore ( ) } } ) , BI . shortcut ( "bi.list_view" , BI . ListView ) , BI . VirtualList = BI . inherit ( BI . Widget , { props : function ( ) { return { baseCls : "bi-virtual-list" , overscanHeight : 100 , blockSize : 10 , scrollTop : 0 , items : [ ] } } , init : function ( ) { this . renderedIndex = - 1 , this . cache = { } } , render : function ( ) { var a = this ; this . options ; return { type : "bi.vertical" , items : [ { type : "bi.layout" , ref : function ( ) { a . topBlank = this } } , { type : "bi.vertical" , scrolly : ! 1 , ref : function ( ) { a . container = this } } , { type : "bi.layout" , ref : function ( ) { a . bottomBlank = this } } ] , element : this } } , mounted : function ( ) { var a = this , b = this . options ; this . _populate ( ) , this . element . scroll ( function ( c ) { b . scrollTop = a . element . scrollTop ( ) , a . _calculateBlocksToRender ( ) } ) , BI . ResizeDetector . addResizeListener (
BI . shortcut ( "bi.text_item" , BI . TextItem ) , BI . IconTextIconNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . IconTextIconNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-icon-node" , logic : { dynamic : ! 1 } , iconCls1 : "close-ha-font" , iconCls2 : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextIconNode . superclass . _init . apply ( this , arguments ) ; var a = this . options ; 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 . height , height : a . height , iconWidth : a . iconWidth , iconHeight : a . iconHeight } ) , c = BI . createWidget ( { type : "bi.layout" , width : a . height , height : a . height } ) ; BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.icon_label" , cls : a . iconCls2 , width : 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 . IconTextIconNode . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextIconNode . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . IconTextIconNode . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_text_icon_node" , BI . IconTextIconNode ) , BI . IconTextNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . IconTextNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-node" , logic : { dynamic : ! 1 } , cls : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextNode . 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 . height , height : a . height , iconWidth : a . iconWidth , iconHeight : a . iconHeight } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , this . icon , this . text ) } ) ) ) ) } , 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 ( ) } , doClick : function ( ) { BI . IconTextNode . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextNode . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } } ) , BI . IconTextNode . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_text_node" , BI . IconTextNode ) , BI . TextIconNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . TextIconNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-text-icon-node" , logic : { dynamic : ! 1 } , cls : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . TextIconNode . 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 :
b . value = "" , this . _events ( { dom : { input : b , disabled : ! 1 } , name : b . name , maxSize : a . maxSize ? a . maxSize >> 0 : - 1 , files : [ ] , clean : function ( ) { this . files = [ ] } , upload : function ( a ) { if ( a ) for ( var b in a ) this [ b ] = a [ b ] ; return sendFiles ( this , this . maxSize ) , this } , hide : function ( ) { this . dom . disabled && ( this . dom . disabled = ! 1 , this . dom . input . removeAttribute ( "disabled" ) ) } , show : function ( a , b , c , d ) { this . dom . disabled || ( this . dom . disabled = ! 0 , this . dom . input . setAttribute ( "disabled" , "disabled" ) ) } } ) } , select : function ( ) { this . wrap && BI . Widget . _renderEngine . createElement ( this . wrap . dom . input ) . click ( ) } , upload : function ( a ) { this . wrap && this . wrap . upload ( a ) } , getValue : function ( ) { return this . wrap ? this . wrap . attach _array : [ ] } , reset : function ( ) { this . wrap && ( this . wrap . attach _array = [ ] , this . wrap . attach _names = [ ] , this . wrap . attachNum = 0 ) } , _setEnable : function ( a ) { BI . File . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . attr ( "disabled" , "disabled" ) : this . element . removeAttr ( "disabled" ) } } ) , BI . File . EVENT _CHANGE = "EVENT_CHANGE" , BI . File . EVENT _UPLOADSTART = "EVENT_UPLOADSTART" , BI . File . EVENT _ERROR = "EVENT_ERROR" , BI . File . EVENT _PROGRESS = "EVENT_PROGRESS" , BI . File . EVENT _UPLOADED = "EVENT_UPLOADED" , BI . shortcut ( "bi.file" , BI . File ) } ( _global . document || { } ) , BI . Input = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . Input . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-input display-block overflow-dot" , tagName : "input" , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 } ) } , _init : function ( ) { BI . Input . superclass . _init . apply ( this , arguments ) ; var a = this , b = ! 1 , c = null , d = ! 1 , e = BI . debounce ( function ( c ) { a . onKeyDown ( c , b ) , a . _keydown _ = ! 1 } , 300 ) , f = BI . debounce ( BI . bind ( this . _click , this ) , BI . EVENT _RESPONSE _TIME , { leading : ! 0 , trailing : ! 1 } ) ; this . _focusDebounce = BI . debounce ( BI . bind ( this . _focus , this ) , BI . EVENT _RESPONSE _TIME , { leading : ! 0 , trailing : ! 1 } ) , this . _blurDebounce = BI . debounce ( BI . bind ( this . _blur , this ) , BI . EVENT _RESPONSE _TIME , { leading : ! 0 , trailing : ! 1 } ) , this . element . keydown ( function ( e ) { d = ! 1 , b = e . ctrlKey || e . metaKey , c = e . keyCode , a . fireEvent ( BI . Input . EVENT _QUICK _DOWN , arguments ) } ) . keyup ( function ( b ) { c = null , d && b . keyCode === BI . KeyCode . ENTER || ( a . _keydown _ = ! 0 , e ( b . keyCode ) ) } ) . on ( "input propertychange" , function ( b ) { var f = b . originalEvent ; ( BI . isNull ( f . propertyName ) || "value" === f . propertyName ) && ( d = ! 0 , a . _keydown _ = ! 0 , e ( c ) , c = null ) } ) . click ( function ( a ) { a . stopPropagation ( ) , f ( ) } ) . mousedown ( function ( b ) { a . element . val ( a . element . val ( ) ) } ) . focus ( function ( b ) { a . _focusDebounce ( ) } ) . focusout ( function ( b ) { a . _blurDebounce ( ) } ) , ( BI . isKey ( this . options . value ) || BI . isEmptyString ( this . options . value ) ) && this . setValue ( this . options . value ) } , _focus : function ( ) { this . element . addClass ( "bi-input-focus" ) , this . _checkValidationOnValueChange ( ) , this . _isEditing = ! 0 , "" == this . getValue ( ) && ( this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . EMPTY , this . getValue ( ) , this ) , this . fireEvent ( BI . Input . EVENT _EMPTY ) ) , this . fireEvent ( BI . Input . EVENT _FOCUS ) } , _blur : function ( ) { function a ( ) { if ( b . isValid ( ) || b . options . quitChecker . apply ( b , [ BI . trim ( b . getValue ( ) ) ] ) === ! 1 || ( b . element . val ( b . _lastValidValue ? b . _lastValidValue : "" ) , b . _checkValidationOnValueChange ( ) , b . _defaultState ( ) ) , b . element . removeClass ( "bi-input-focus" ) , b . _isEditing = ! 1 , b . _start = ! 1 , b . isValid ( ) ) { var a = b . _lastValidValue ; b . _lastValidValue = b . getValue ( ) , b . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CONFIRM , b . getValue ( ) , b ) , b . fireEvent ( BI . Input . EVENT _CONFIRM ) , b . _lastValidValue !== a && b . fireEvent ( BI . Input . EVENT _CHANGE _CONFIRM ) } b . fireEvent ( BI . Input . EVENT _BLUR ) } var b = this ; b . _keydown _ === ! 0 ? BI . delay ( a , 300 ) : a ( ) } , _click : function ( ) { this . _isEditing !== ! 0 && ( this . selectAll ( ) , this . fireEvent ( BI . Input . EVENT _CLICK ) ) } , onClick : function ( ) { this . _click ( ) } , onKeyDown : function ( a , b ) { this . isValid ( ) && BI . trim ( this . _lastChangedValue ) === BI . trim ( this . getValue ( ) ) || this . _checkValidationOnValueChange ( ) , this . isValid ( ) && "" !== BI . trim ( this . getValue ( ) ) && ( ( BI . trim ( this . getValue ( ) ) === this . _lastValue || this . _start && null != this . _lastValue && "" !== this . _lastValue ) && ( this . _pause !== ! 0 || /(\s|\u00A0)$/ . test ( this . getValue ( ) ) ) || ( this . _start = ! 0 , this . _pause = ! 1 , this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . STARTEDIT , this . getValue ( ) , this ) , this . fireEvent ( BI . Input .
return null } , getRoot : function ( a ) { return a ? roots [ a . treeId ] : null } , getRoots : function ( ) { return roots } , getSetting : function ( a ) { return settings [ a ] } , getSettings : function ( ) { return settings } , getZTreeTools : function ( a ) { var b = this . getRoot ( this . getSetting ( a ) ) ; return b ? b . treeTools : null } , initCache : function ( a ) { for ( var b = 0 , c = _init . caches . length ; b < c ; b ++ ) _init . caches [ b ] . apply ( this , arguments ) } , initNode : function ( a , b , c , d , e , f ) { for ( var g = 0 , h = _init . nodes . length ; g < h ; g ++ ) _init . nodes [ g ] . apply ( this , arguments ) } , initRoot : function ( a ) { for ( var b = 0 , c = _init . roots . length ; b < c ; b ++ ) _init . roots [ b ] . apply ( this , arguments ) } , isSelectedNode : function ( a , b ) { for ( var c = data . getRoot ( a ) , d = 0 , e = c . curSelectedList . length ; d < e ; d ++ ) if ( b === c . curSelectedList [ d ] ) return ! 0 ; return ! 1 } , removeNodeCache : function ( a , b ) { var c = a . data . key . children ; if ( b [ c ] ) for ( var d = 0 , e = b [ c ] . length ; d < e ; d ++ ) arguments . callee ( a , b [ c ] [ d ] ) ; data . getCache ( a ) . nodes [ data . getNodeCacheId ( b . tId ) ] = null } , removeSelectedNode : function ( a , b ) { for ( var c = data . getRoot ( a ) , d = 0 , e = c . curSelectedList . length ; d < e ; d ++ ) b !== c . curSelectedList [ d ] && data . getNodeCache ( a , c . curSelectedList [ d ] . tId ) || ( c . curSelectedList . splice ( d , 1 ) , d -- , e -- ) } , setCache : function ( a , b ) { caches [ a . treeId ] = b } , setRoot : function ( a , b ) { roots [ a . treeId ] = b } , setZTreeTools : function ( a , b ) { for ( var c = 0 , d = _init . zTreeTools . length ; c < d ; c ++ ) _init . zTreeTools [ c ] . apply ( this , arguments ) } , transformToArrayFormat : function ( a , b ) { if ( ! b ) return [ ] ; var c = a . data . key . children , d = [ ] ; if ( tools . isArray ( b ) ) for ( var e = 0 , f = b . length ; e < f ; e ++ ) d . push ( b [ e ] ) , b [ e ] [ c ] && ( d = d . concat ( data . transformToArrayFormat ( a , b [ e ] [ c ] ) ) ) ; else d . push ( b ) , b [ c ] && ( d = d . concat ( data . transformToArrayFormat ( a , b [ c ] ) ) ) ; return d } , transformTozTreeFormat : function ( a , b ) { var c , d , e = a . data . simpleData . idKey , f = a . data . simpleData . pIdKey , g = a . data . key . children ; if ( ! e || "" == e || ! b ) return [ ] ; if ( tools . isArray ( b ) ) { var h = [ ] , i = { } ; for ( c = 0 , d = b . length ; c < d ; c ++ ) i [ b [ c ] [ e ] ] = b [ c ] ; for ( c = 0 , d = b . length ; c < d ; c ++ ) i [ b [ c ] [ f ] ] && b [ c ] [ e ] != b [ c ] [ f ] ? ( i [ b [ c ] [ f ] ] [ g ] || ( i [ b [ c ] [ f ] ] [ g ] = [ ] ) , i [ b [ c ] [ f ] ] [ g ] . push ( b [ c ] ) ) : h . push ( b [ c ] ) ; return h } return [ b ] } } , event = { bindEvent : function ( a ) { for ( var b = 0 , c = _init . bind . length ; b < c ; b ++ ) _init . bind [ b ] . apply ( this , arguments ) } , unbindEvent : function ( a ) { for ( var b = 0 , c = _init . unbind . length ; b < c ; b ++ ) _init . unbind [ b ] . apply ( this , arguments ) } , bindTree : function ( a ) { var b = { treeId : a . treeId } , c = a . treeObj ; a . view . txtSelectedEnable || c . bind ( "selectstart" , function ( a ) { var b = a . originalEvent . srcElement . nodeName . toLowerCase ( ) ; return "input" === b || "textarea" === b } ) . css ( { "-moz-user-select" : "-moz-none" } ) , c . bind ( "click" , b , event . proxy ) , c . bind ( "dblclick" , b , event . proxy ) , c . bind ( "mouseover" , b , event . proxy ) , c . bind ( "mouseout" , b , event . proxy ) , c . bind ( "mousedown" , b , event . proxy ) , c . bind ( "mouseup" , b , event . proxy ) , c . bind ( "contextmenu" , b , event . proxy ) } , unbindTree : function ( a ) { var b = a . treeObj ; b . unbind ( "click" , event . proxy ) . unbind ( "dblclick" , event . proxy ) . unbind ( "mouseover" , event . proxy ) . unbind ( "mouseout" , event . proxy ) . unbind ( "mousedown" , event . proxy ) . unbind ( "mouseup" , event . proxy ) . unbind ( "contextmenu" , event . proxy ) } , doProxy : function ( a ) { for ( var b = [ ] , c = 0 , d = _init . proxys . length ; c < d ; c ++ ) { var e = _init . proxys [ c ] . apply ( this , arguments ) ; if ( b . push ( e ) , e . stop ) break } return b } , proxy : function ( a ) { var b = data . getSetting ( a . data . treeId ) ; if ( ! tools . uCanDo ( b , a ) ) return ! 0 ; for ( var c = event . doProxy ( a ) , d = ! 0 , e = ! 1 , f = 0 , g = c . length ; f < g ; f ++ ) { var h = c [ f ] ; h . nodeEventCallback && ( e = ! 0 , d = h . nodeEventCallback . apply ( h , [ a , h . node ] ) && d ) , h . treeEventCallback && ( e = ! 0 , d = h . treeEventCallback . apply ( h , [ a , h . node ] ) && d ) } return d } } , handler = { onSwitchNode : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) ; if ( b . open ) { if ( 0 == tools . apply ( c . callback . beforeCollapse , [ c . treeId , b ] , ! 0 ) ) return ! 0 ; data . getRoot ( c ) . expandTriggerFlag = ! 0 , view . switchNode ( c , b ) } else { if ( 0 == tools . apply ( c . callback . beforeExpand , [ c . treeId , b ] , ! 0 ) ) return ! 0 ; data . getRoot ( c ) . expandTriggerFlag = ! 0 , view . switchNode ( c , b ) } return ! 0 } , onClickNode : function ( a , b ) { var c = data . getSetting ( a . data . treeId ) , d = c . view . autoCancelSelected && ( a . ctrlKey || a . metaKey ) && data . isSelectedNode ( c , b ) ? 0 : c . view . autoCancelSelected && ( a . ctrlKey || a . metaKey ) && c . view . selectedMulti ? 2 : 1 ; return 0 == tools . apply ( c . callback . beforeClick , [ c . treeId , b , d ] , ! 0 ) || ( 0 === d ? view . cancelPreSelectedNode ( c , b ) : view . selectNode ( c ,
var h = e [ d ] [ f ] ; h . nocheck !== ! 0 && h . chkDisabled !== ! 0 && ( h [ c ] = b ) , u . setSonNodeCheckBox ( a , h , b ) } } , repairChkClass : function ( a , b ) { if ( b && ( v . makeChkFlag ( a , b ) , b . nocheck !== ! 0 ) ) { var c = w ( b , t . id . CHECK , a ) ; u . setChkClass ( a , c , b ) } } , repairParentChkClass : function ( a , b ) { if ( b && b . parentTId ) { var c = b . getParentNode ( ) ; u . repairChkClass ( a , c ) , u . repairParentChkClass ( a , c ) } } , repairParentChkClassWithSelf : function ( a , b ) { if ( b ) { var c = a . data . key . children ; b [ c ] && b [ c ] . length > 0 ? u . repairParentChkClass ( a , b [ c ] [ 0 ] ) : u . repairParentChkClass ( a , b ) } } , repairSonChkDisabled : function ( a , b , c , d ) { if ( b ) { var e = a . data . key . children ; if ( b . chkDisabled != c && ( b . chkDisabled = c ) , u . repairChkClass ( a , b ) , b [ e ] && d ) for ( var f = 0 , g = b [ e ] . length ; f < g ; f ++ ) { var h = b [ e ] [ f ] ; u . repairSonChkDisabled ( a , h , c , d ) } } } , repairParentChkDisabled : function ( a , b , c , d ) { b && ( b . chkDisabled != c && d && ( b . chkDisabled = c ) , u . repairChkClass ( a , b ) , u . repairParentChkDisabled ( a , b . getParentNode ( ) , c , d ) ) } , setChkClass : function ( a , b , c ) { b && ( c . nocheck === ! 0 ? b . hide ( ) : b . show ( ) , b . attr ( "class" , u . makeChkClass ( a , c ) ) ) } , setParentNodeCheckBox : function ( a , b , c , d ) { var e = a . data . key . children , f = a . data . key . checked , g = w ( b , t . id . CHECK , a ) ; if ( d || ( d = b ) , v . makeChkFlag ( a , b ) , b . nocheck !== ! 0 && b . chkDisabled !== ! 0 && ( b [ f ] = c , u . setChkClass ( a , g , b ) , a . check . autoCheckTrigger && b != d && a . treeObj . trigger ( t . event . CHECK , [ null , a . treeId , b ] ) ) , b . parentTId ) { var h = ! 0 ; if ( ! c ) for ( var i = b . getParentNode ( ) [ e ] , j = 0 , k = i . length ; j < k ; j ++ ) if ( i [ j ] . nocheck !== ! 0 && i [ j ] . chkDisabled !== ! 0 && i [ j ] [ f ] || ( i [ j ] . nocheck === ! 0 || i [ j ] . chkDisabled === ! 0 ) && i [ j ] . check _Child _State > 0 ) { h = ! 1 ; break } h && u . setParentNodeCheckBox ( a , b . getParentNode ( ) , c , d ) } } , setSonNodeCheckBox : function ( a , b , c , d ) { if ( b ) { var e = a . data . key . children , f = a . data . key . checked , g = w ( b , t . id . CHECK , a ) ; d || ( d = b ) ; var h = ! 1 ; if ( b [ e ] ) for ( var i = 0 , j = b [ e ] . length ; i < j && b . chkDisabled !== ! 0 ; i ++ ) { var k = b [ e ] [ i ] ; u . setSonNodeCheckBox ( a , k , c , d ) , k . chkDisabled === ! 0 && ( h = ! 0 ) } b != v . getRoot ( a ) && b . chkDisabled !== ! 0 && ( h && b . nocheck !== ! 0 && v . makeChkFlag ( a , b ) , b . nocheck !== ! 0 && b . chkDisabled !== ! 0 ? ( b [ f ] = c , h || ( b . check _Child _State = b [ e ] && b [ e ] . length > 0 ? c ? 2 : 0 : - 1 ) ) : b . check _Child _State = - 1 , u . setChkClass ( a , g , b ) , a . check . autoCheckTrigger && b != d && b . nocheck !== ! 0 && b . chkDisabled !== ! 0 && a . treeObj . trigger ( t . event . CHECK , [ null , a . treeId , b ] ) ) } } } , q = { tools : o , view : p , event : m , data : l } ; a . extend ( ! 0 , a . fn . zTree . consts , b ) , a . extend ( ! 0 , a . fn . zTree . _z , q ) ; var r = a . fn . zTree , s = r . _z . tools , t = r . consts , u = r . _z . view , v = r . _z . data , w = ( r . _z . event , s . $ ) ; v . exSetting ( c ) , v . addInitBind ( f ) , v . addInitUnBind ( g ) , v . addInitCache ( e ) , v . addInitNode ( i ) , v . addInitProxy ( h , ! 0 ) , v . addInitRoot ( d ) , v . addBeforeA ( j ) , v . addZTreeTools ( k ) ; var x = u . createNodes ; u . createNodes = function ( a , b , c , d ) { x && x . apply ( u , arguments ) , c && u . repairParentChkClassWithSelf ( a , d ) } ; var y = u . removeNode ; u . removeNode = function ( a , b ) { var c = b . getParentNode ( ) ; y && y . apply ( u , arguments ) , b && c && ( u . repairChkClass ( a , c ) , u . repairParentChkClass ( a , c ) ) } ; var z = u . appendNodes ; u . appendNodes = function ( a , b , c , d , e , f ) { var g = "" ; return z && ( g = z . apply ( u , arguments ) ) , d && v . makeChkFlag ( a , d ) , g } } ( BI . jQuery ) , BI . IconChangeButton = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . IconChangeButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-icon-change-button" , iconCls : "" , iconWidth : null , iconHeight : null , stopEvent : ! 1 , stopPropagation : ! 1 , selected : ! 1 , once : ! 1 , forceSelected : ! 1 , forceNotSelected : ! 1 , disableSelected : ! 1 , shadow : ! 1 , isShadowShowingOnSelected : ! 1 , trigger : null , handler : BI . emptyFn } ) } , _init : function ( ) { BI . IconChangeButton . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . button = BI . createWidget ( { type : "bi.icon_button" , element : this , cls : b . iconCls , height : b . height , iconWidth : b . iconWidth , iconHeight : b . iconHeight , stopEvent : b . stopEvent , stopPropagation : b . stopPropagation , selected : b . selected , once : b . once , forceSelected : b . forceSelected , forceNotSelected : b . forceNotSelected , disableSelected : b . disableSelected , shadow : b . shadow , isShadowShowingOnSelected : b . isShadowShowingOnSelected , trigger : b . trigger , handler : b . handler } ) , this . button . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . IconChangeButton . EVENT _CHANGE , arguments ) } ) } , isSelected : function ( ) { return thi
textHeight : a . height , height : a . height , hgap : a . hgap , lgap : a . lgap , rgap : a . hgap , text : a . text , value : a . value , py : a . py } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . text } ] } ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , getId : function ( ) { return this . options . id } , getPId : function ( ) { return this . options . pId } } ) , BI . shortcut ( "bi.tree_text_leaf_item" , BI . TreeTextLeafItem ) , BI . CalendarDateItem = BI . inherit ( BI . BasicButton , { render : function ( ) { var a = this , b = this . options ; return { type : "bi.absolute" , items : [ { el : { type : "bi.text_item" , cls : "bi-list-item-select" , textAlign : "center" , whiteSpace : "normal" , text : b . text , value : b . value , ref : function ( ) { a . text = this } } , left : b . lgap , right : b . rgap , top : 0 , bottom : 0 } ] } } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , setSelected : function ( a ) { BI . CalendarDateItem . superclass . setSelected . apply ( this , arguments ) , this . text . setSelected ( a ) } , getValue : function ( ) { return this . text . getValue ( ) } } ) , BI . shortcut ( "bi.calendar_date_item" , BI . CalendarDateItem ) , BI . Calendar = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . Calendar . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-calendar" , logic : { dynamic : ! 1 } , min : "1900-01-01" , max : "2099-12-31" , year : 2015 , month : 8 , day : 25 } ) } , _dateCreator : function ( a , b , c ) { var d = this . options , e = { } , f = BI . getDate ( ) , g = d . min . match ( /\d+/g ) , h = d . max . match ( /\d+/g ) ; a < ( 0 | g [ 0 ] ) && ( a = 0 | g [ 0 ] ) , a > ( 0 | h [ 0 ] ) && ( a = 0 | h [ 0 ] ) , f . setFullYear ( a , b , c ) , e . ymd = [ f . getFullYear ( ) , f . getMonth ( ) , f . getDate ( ) ] ; var i = BI . Date . _MD . slice ( 0 ) ; i [ 1 ] = BI . isLeapYear ( e . ymd [ 0 ] ) ? 29 : 28 , f . setFullYear ( e . ymd [ 0 ] , e . ymd [ 1 ] , 1 ) , e . FDay = f . getDay ( ) ; var j = ( 7 - BI . StartOfWeek + e . FDay ) % 7 ; e . PDay = i [ 0 === b ? 11 : b - 1 ] - j + 1 , e . NDay = 1 ; var k = [ ] ; return BI . each ( BI . range ( 42 ) , function ( a ) { var b , c = { } , d = e . ymd [ 0 ] , f = e . ymd [ 1 ] + 1 ; a < j ? ( c . lastMonth = ! 0 , b = a + e . PDay , 1 === f && ( d -= 1 ) , f = 1 === f ? 12 : f - 1 ) : a >= j && a < j + i [ e . ymd [ 1 ] ] ? ( b = a - j + 1 , a - j + 1 === e . ymd [ 2 ] && ( c . currentDay = ! 0 ) ) : ( c . nextMonth = ! 0 , b = e . NDay ++ , 12 === f && ( d += 1 ) , f = 12 === f ? 1 : f + 1 ) , BI . checkDateVoid ( d , f , b , g , h ) [ 0 ] && ( c . disabled = ! 0 ) , c . text = b , k . push ( c ) } ) , k } , _init : function ( ) { BI . Calendar . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = BI . map ( this . _getWeekLabel ( ) , function ( a , b ) { return { type : "bi.label" , height : 24 , text : b } } ) , d = BI . createWidget ( { type : "bi.button_group" , height : 44 , items : c , layouts : [ { type : "bi.center" , hgap : 5 , vgap : 10 } ] } ) , e = this . _dateCreator ( b . year , b . month - 1 , b . day ) ; c = [ ] , c . push ( e . slice ( 0 , 7 ) ) , c . push ( e . slice ( 7 , 14 ) ) , c . push ( e . slice ( 14 , 21 ) ) , c . push ( e . slice ( 21 , 28 ) ) , c . push ( e . slice ( 28 , 35 ) ) , c . push ( e . slice ( 35 , 42 ) ) , c = BI . map ( c , function ( a , c ) { return BI . map ( c , function ( a , c ) { var d = c . lastMonth ? b . month - 1 : c . nextMonth ? b . month + 1 : b . month ; return BI . extend ( c , { type : "bi.calendar_date_item" , textAlign : "center" , whiteSpace : "normal" , once : ! 1 , forceSelected : ! 0 , height : 24 , value : b . year + "-" + d + "-" + c . text , disabled : c . lastMonth || c . nextMonth || c . disabled , lgap : 5 , rgap : 5 } ) } ) } ) , this . days = BI . createWidget ( { type : "bi.button_group" , items : BI . createItems ( c , { } ) , layouts : [ BI . LogicFactory . createLogic ( "table" , BI . extend ( { } , b . logic , { columns : 7 , rows : 6 , columnSize : [ 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 , 1 / 7 ] , rowSize : 24 , vgap : 10 } ) ) ] } ) , this . days . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "vertical" , BI . extend ( { } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "top" , d , this . days ) } ) ) ) ) } , _getWeekLabel : function ( ) { return BI . map ( BI . range ( 0 , 7 ) , function ( a , b ) { return BI . Date . _SDN [ ( b + BI . StartOfWeek ) % 7 ] } ) } , isFrontDate : function ( ) { var a = this . options , b = ( this . _const , a . year ) , c = a . month , d = BI . getDate ( ) , e = d . getDay ( ) ; b = 0 | b , d . setFullYear ( b , c , 1 ) ; var f = BI . getOffsetDate ( d , - 1 * ( e + 1 ) ) ; return ! ! BI . checkDateVoid ( f . getFullYear ( ) , f . getMonth ( ) , f . getDate ( ) , a . min , a . max ) [ 0 ] } , isFinalDate : function ( ) { var a = this . options , b =
r : this . R . getValue ( ) , g : this . G . getValue ( ) , b : this . B . getValue ( ) } ) ) } } ) , BI . SimpleColorPickerEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.simple_color_picker_editor" , BI . SimpleColorPickerEditor ) , BI . Farbtastic = BI . inherit ( BI . BasicButton , { constants : { RADIUS : 84 , SQUARE : 100 , WIDTH : 194 } , props : { baseCls : "bi-farbtastic" , width : 195 , height : 195 , stopPropagation : ! 0 , value : "#000000" } , render : function ( ) { var a = this ; return { type : "bi.absolute" , items : [ { el : { type : "bi.layout" , cls : "" , ref : function ( b ) { a . colorWrapper = b } } , top : 47 , left : 47 , width : 101 , height : 101 } , { el : { type : "bi.layout" , cls : "wheel" , ref : function ( b ) { a . wheel = b } } , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : { type : "bi.layout" , cls : "overlay" , ref : function ( b ) { a . overlay = b } } , top : 47 , left : 47 , width : 101 , height : 101 } , { el : { type : "bi.layout" , cls : "marker" , ref : function ( b ) { a . hMarker = b } , scrollable : ! 1 , width : 17 , height : 17 } } , { el : { type : "bi.layout" , cls : "marker" , ref : function ( b ) { a . slMarker = b } , scrollable : ! 1 , width : 17 , height : 17 } } ] } } , mounted : function ( ) { var a = this . options ; BI . isKey ( a . value ) && this . setValue ( a . value ) } , _unpack : function ( a ) { return 7 === a . length ? [ parseInt ( "0x" + a . substring ( 1 , 3 ) ) / 255 , parseInt ( "0x" + a . substring ( 3 , 5 ) ) / 255 , parseInt ( "0x" + a . substring ( 5 , 7 ) ) / 255 ] : 4 === a . length ? [ parseInt ( "0x" + a . substring ( 1 , 2 ) ) / 15 , parseInt ( "0x" + a . substring ( 2 , 3 ) ) / 15 , parseInt ( "0x" + a . substring ( 3 , 4 ) ) / 15 ] : void 0 } , _pack : function ( a ) { var b = Math . round ( 255 * a [ 0 ] ) , c = Math . round ( 255 * a [ 1 ] ) , d = Math . round ( 255 * a [ 2 ] ) ; return "#" + ( b < 16 ? "0" : "" ) + b . toString ( 16 ) + ( c < 16 ? "0" : "" ) + c . toString ( 16 ) + ( d < 16 ? "0" : "" ) + d . toString ( 16 ) } , _setColor : function ( a ) { var b = this . _unpack ( a ) ; this . value !== a && b && ( this . value = a , this . rgb = b , this . hsl = this . _RGBToHSL ( this . rgb ) , this . _updateDisplay ( ) ) } , _setHSL : function ( a ) { return this . hsl = a , this . rgb = this . _HSLToRGB ( a ) , this . value = this . _pack ( this . rgb ) , this . _updateDisplay ( ) , this } , _HSLToRGB : function ( a ) { var b , c , d = a [ 0 ] , e = a [ 1 ] , f = a [ 2 ] ; return c = f <= . 5 ? f * ( e + 1 ) : f + e - f * e , b = 2 * f - c , [ this . _hueToRGB ( b , c , d + . 33333 ) , this . _hueToRGB ( b , c , d ) , this . _hueToRGB ( b , c , d - . 33333 ) ] } , _hueToRGB : function ( a , b , c ) { return c = c < 0 ? c + 1 : c > 1 ? c - 1 : c , 6 * c < 1 ? a + ( b - a ) * c * 6 : 2 * c < 1 ? b : 3 * c < 2 ? a + ( b - a ) * ( . 66666 - c ) * 6 : a } , _RGBToHSL : function ( a ) { var b , c , d , e , f , g , h = a [ 0 ] , i = a [ 1 ] , j = a [ 2 ] ; return b = Math . min ( h , Math . min ( i , j ) ) , c = Math . max ( h , Math . max ( i , j ) ) , d = c - b , g = ( b + c ) / 2 , f = 0 , g > 0 && g < 1 && ( f = d / ( g < . 5 ? 2 * g : 2 - 2 * g ) ) , e = 0 , d > 0 && ( c == h && c != i && ( e += ( i - j ) / d ) , c == i && c != j && ( e += 2 + ( j - h ) / d ) , c == j && c != h && ( e += 4 + ( h - i ) / d ) , e /= 6 ) , [ e , f , g ] } , _updateDisplay : function ( ) { var a = 6.28 * this . hsl [ 0 ] ; this . hMarker . element . css ( { left : Math . round ( Math . sin ( a ) * this . constants . RADIUS + this . constants . WIDTH / 2 ) + "px" , top : Math . round ( - Math . cos ( a ) * this . constants . RADIUS + this . constants . WIDTH / 2 ) + "px" } ) , this . slMarker . element . css ( { left : Math . round ( this . constants . SQUARE * ( . 5 - this . hsl [ 1 ] ) + this . constants . WIDTH / 2 ) + "px" , top : Math . round ( this . constants . SQUARE * ( . 5 - this . hsl [ 2 ] ) + this . constants . WIDTH / 2 ) + "px" } ) , this . colorWrapper . element . css ( "backgroundColor" , this . _pack ( this . _HSLToRGB ( [ this . hsl [ 0 ] , 1 , . 5 ] ) ) ) , this . fireEvent ( BI . Farbtastic . EVENT _CHANGE , this . getValue ( ) , this ) } , _absolutePosition : function ( a ) { var b = { x : a . offsetLeft , y : a . offsetTop } ; if ( a . offsetParent ) { var c = this . _absolutePosition ( a . offsetParent ) ; b . x += c . x , b . y += c . y } return b } , _widgetCoords : function ( a ) { var b , c , d = a . target || a . srcElement , e = this . wheel . element [ 0 ] ; if ( "undefined" != typeof a . offsetX ) { for ( var f = { x : a . offsetX , y : a . offsetY } , g = d ; g ; ) g . mouseX = f . x , g . mouseY = f . y , f . x += g . offsetLeft , f . y += g . offsetTop , g = g . offsetParent ; for ( var g = e , h = { x : 0 , y : 0 } ; g ; ) { if ( "undefined" != typeof g . mouseX ) { b = g . mouseX - h . x , c = g . mouseY - h . y ; break } h . x += g . offsetLeft , h . y += g . offsetTop , g = g . offsetParent } for ( g = d ; g ; ) g . mouseX = void 0 , g . mouseY = void 0 , g = g . offsetParent } else { var f = this . _absolutePosition ( e ) ; b = ( a . pageX || 0 ) - f . x , c = ( a . pageY || 0 ) - f . y } return { x : b - this . constants . WIDTH / 2 , y : c - this . constants . WIDTH / 2 } } , _doMouseMove : function ( a ) { var b = this . _widgetCoords ( a ) ; if ( this . circleDrag ) { var c = Math . atan2 ( b . x , - b . y ) / 6.28 ; c < 0 && ( c += 1 ) , this . _setHSL ( [ c , this . hsl [ 1 ] , this . hsl [ 2 ] ] ) } else { var d = Math . max ( 0 , Math . min ( 1 , - ( b . x / this . constants . SQUARE ) + . 5 ) ) , e = Math . max ( 0 , Math . min ( 1 , - ( b . y / this . constants . SQUARE ) + . 5 ) ) ; this . _setHSL ( [ this . hsl [ 0 ] , d , e ] ) } } , doClick : function ( a ) { var b = this . _widgetCoords ( a ) ; return this . circleDrag = 2 * Math . max ( Math . abs ( b . x ) , Math . abs ( b . y ) ) > this . constants . SQUARE , th
this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . SmallTextValueCombo = BI . createWidget ( { type : "bi.combo" , element : this , container : b . container , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 240 , minHeight : 25 } } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , populate : function ( a ) { this . options . items = a , this . SmallTextValueCombo . populate ( a ) } } ) , BI . SmallTextValueCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.small_text_value_combo" , BI . SmallTextValueCombo ) , BI . TextValueComboPopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueComboPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-text-icon-popup" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE } ) } , _init : function ( ) { BI . TextValueComboPopup . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this ; this . popup = BI . createWidget ( { type : "bi.button_group" , items : BI . createItems ( a . items , { type : "bi.single_select_item" , textAlign : a . textAlign , height : 24 } ) , chooseType : a . chooseType , layouts : [ { type : "bi.vertical" } ] , value : a . value } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . TextValueComboPopup . EVENT _CHANGE , c , d ) } ) , this . check ( ) , BI . createWidget ( { type : "bi.vertical" , element : this , vgap : 5 , items : [ this . popup ] } ) } , populate : function ( a ) { BI . TextValueComboPopup . superclass . populate . apply ( this , arguments ) , a = BI . createItems ( a , { type : "bi.single_select_item" , height : 24 } ) , this . popup . populate ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , setValue : function ( a ) { this . popup . setValue ( a ) } } ) , BI . TextValueComboPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_combo_popup" , BI . TextValueComboPopup ) , BI . ClearEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . ClearEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-clear-editor" , height : 24 , errorText : "" , watermark : "" , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn } ) } , _init : function ( ) { BI . ClearEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , watermark : b . watermark , allowBlank : ! 0 , errorText : b . errorText , validationChecker : b . validationChecker , quitChecker : b . quitChecker , value : b . value } ) , this . clear = BI . createWidget ( { type : "bi.icon_button" , stopEvent : ! 0 , cls : "search-close-h-font" } ) , this . clear . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . setValue ( "" ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . STOPEDIT ) , a . fireEvent ( BI . ClearEditor . EVENT _CLEAR ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : this . clear , width : 24 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _FOCUS ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _BLUR ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _CLICK ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . ClearEditor . EVENT _CHANGE ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . ClearEditor . EVENT _KEY _DOWN , b ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _SPACE ) } ) , this . editor . on ( BI . Editor . EVENT _BACKSPACE , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _BACKSPACE ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _VALID ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _ERROR ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . ClearEditor . EVENT _EMPTY ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _
height : 25 , lgap : 10 } } , { el : c , width : 25 } ] } ) } } ) , BI . PopupPanel . EVENT _CHANGE = "EVENT_CHANGE" , BI . PopupPanel . EVENT _CLOSE = "EVENT_CLOSE" , BI . PopupPanel . EVENT _CLICK _TOOLBAR _BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON" , BI . shortcut ( "bi.popup_panel" , BI . PopupPanel ) , BI . ListPane = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { var a = BI . ListPane . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-list-pane" , logic : { dynamic : ! 0 } , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , vgap : 0 , hgap : 0 , items : [ ] , itemsCreator : BI . emptyFn , hasNext : BI . emptyFn , onLoaded : BI . emptyFn , el : { type : "bi.button_group" } } ) } , _init : function ( ) { BI . ListPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . button _group = BI . createWidget ( b . el , { type : "bi.button_group" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , behaviors : { } , items : b . items , itemsCreator : function ( c , d ) { 1 === c . times && ( a . empty ( ) , BI . nextTick ( function ( ) { a . loading ( ) } ) ) , b . itemsCreator ( c , function ( ) { d . apply ( a , arguments ) , 1 === c . times && BI . nextTick ( function ( ) { a . loaded ( ) , a . check ( ) } ) } ) } , hasNext : b . hasNext , layouts : [ { type : "bi.vertical" } ] } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . ListPane . EVENT _CHANGE , c , d ) } ) , this . check ( ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Top ) , BI . extend ( { scrolly : ! 0 , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , vgap : b . vgap , hgap : b . hgap } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Top , this . button _group ) } ) ) ) ) } , hasPrev : function ( ) { return this . button _group . hasPrev && this . button _group . hasPrev ( ) } , hasNext : function ( ) { return this . button _group . hasNext && this . button _group . hasNext ( ) } , prependItems : function ( a ) { this . options . items = a . concat ( this . options . items ) , this . button _group . prependItems . apply ( this . button _group , arguments ) , this . check ( ) } , addItems : function ( a ) { this . options . items = this . options . items . concat ( a ) , this . button _group . addItems . apply ( this . button _group , arguments ) , this . check ( ) } , removeItemAt : function ( a ) { a = a || [ ] , BI . removeAt ( this . options . items , a ) , this . button _group . removeItemAt . apply ( this . button _group , arguments ) , this . check ( ) } , populate : function ( a ) { var b = this ; this . options ; return 0 === arguments . length && BI . isFunction ( this . button _group . attr ( "itemsCreator" ) ) ? void this . button _group . attr ( "itemsCreator" ) . apply ( this , [ { times : 1 } , function ( ) { if ( 0 === arguments . length ) throw new Error ( "参数不能为空" ) ; b . populate . apply ( b , arguments ) } ] ) : ( BI . ListPane . superclass . populate . apply ( this , arguments ) , void this . button _group . populate . apply ( this . button _group , arguments ) ) } , empty : function ( ) { this . button _group . empty ( ) } , setNotSelectedValue : function ( ) { this . button _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 . ListPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.list_pane" , BI . ListPane ) , BI . Panel = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Panel . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-panel bi-border" , title : "" , titleButtons : [ ] , el : { } , logic : { dynamic : ! 1 } } ) } , _init : function ( ) { BI . Panel . superclass . _init . apply ( this , arguments ) ; var a = this . options ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "vertical" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "top" , this . _createTitle ( ) , this . options . el ) } ) ) ) )
height : b . height - 2 , whiteSpace : b . whiteSpace } ) , layout : [ { type : "bi.center" } ] } ) , this . buttonGroup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . buttonGroup . on ( BI . ButtonGroup . EVENT _CHANGE , function ( b , c ) { a . fireEvent ( BI . Segment . EVENT _CHANGE , b , c ) } ) } , _setEnable : function ( a ) { BI . Segment . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . removeClass ( "base-disabled disabled" ) : a === ! 1 && this . element . addClass ( "base-disabled disabled" ) } , setValue : function ( a ) { this . buttonGroup . setValue ( a ) } , setEnabledValue : function ( a ) { this . buttonGroup . setEnabledValue ( a ) } , getValue : function ( ) { return this . buttonGroup . getValue ( ) } } ) , BI . Segment . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.segment" , BI . Segment ) , BI . MultiSelectBar = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectBar . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-multi-select-bar" , height : 25 , text : BI . i18nText ( "BI-Select_All" ) , isAllCheckedBySelectedValue : BI . emptyFn , disableSelected : ! 0 , isHalfCheckedBySelectedValue : function ( a ) { return a . length > 0 } , halfSelected : ! 1 , iconWrapperWidth : 26 } ) } , _init : function ( ) { BI . MultiSelectBar . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = b . selected === ! 0 , d = ! b . selected && b . halfSelected ; this . checkbox = BI . createWidget ( { type : "bi.checkbox" , stopPropagation : ! 0 , handler : function ( ) { a . setSelected ( a . isSelected ( ) ) } , selected : c , invisible : d } ) , this . half = BI . createWidget ( { type : "bi.half_icon_button" , stopPropagation : ! 0 , handler : function ( ) { a . setSelected ( ! 0 ) } , invisible : c || ! d } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , a . isSelected ( ) , a ) } ) , this . checkbox . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , a . isSelected ( ) , a ) } ) , this . half . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , a . isSelected ( ) , a ) } ) , this . half . on ( BI . HalfIconButton . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , a . isSelected ( ) , a ) } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , keyword : b . keyword , value : b . value , py : b . py } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { width : b . iconWrapperWidth , el : { type : "bi.center_adapt" , items : [ this . checkbox , this . half ] } } , { el : this . text } ] } ) } , _setSelected : function ( a ) { this . checkbox . setSelected ( ! ! a ) } , beforeClick : function ( ) { var a = this . isHalfSelected ( ) , b = this . isSelected ( ) ; a === ! 0 ? this . setSelected ( ! 0 ) : this . setSelected ( ! b ) } , setSelected : function ( a ) { this . checkbox . setSelected ( a ) , this . setHalfSelected ( ! 1 ) } , setHalfSelected : function ( a ) { this . halfSelected = ! ! a , a === ! 0 ? ( this . checkbox . setSelected ( ! 1 ) , this . half . visible ( ) , this . checkbox . invisible ( ) ) : ( this . half . invisible ( ) , this . checkbox . visible ( ) ) } , isHalfSelected : function ( ) { return ! this . isSelected ( ) && ! ! this . halfSelected } , isSelected : function ( ) { return this . checkbox . isSelected ( ) } , setValue : function ( a ) { BI . MultiSelectBar . superclass . setValue . apply ( this , arguments ) ; var b = this . options . isAllCheckedBySelectedValue . apply ( this , arguments ) ; this . _setSelected ( b ) , ! b && this . setHalfSelected ( this . options . isHalfCheckedBySelectedValue . apply ( this , arguments ) ) } , doClick : function ( ) { BI . MultiSelectBar . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . MultiSelectBar . EVENT _CHANGE , this . isSelected ( ) , this ) } } ) , BI . MultiSelectBar . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_bar" , BI . MultiSelectBar ) , BI . LevelTree = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . LevelTree . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-level-tree" , el : { chooseType : 0 } , expander : { } , items : [ ] , value : "" } ) } , _init : function ( ) { BI . LevelTree . superclass . _init . apply ( this , arguments ) , this . initTree ( this . options . items ) } , _formatItems : function ( a , b , c ) { var d = this ; return BI . each ( a , function ( e , f ) { var g = { layer : b } ; BI . isKey ( f . id ) || ( f . id = BI . UUID ( ) ) , g . pNode = c , f . isParent === ! 0 || f . parent === ! 0 || BI . isNotEmptyArray ( f . children ) ? ( g . type = "bi.mid_plus_group_node" , e === a . length - 1 && ( g . type = "bi.last_plus_group_node" , g . isLastNode = ! 0 ) , 0 !== e || c || ( g
this . selectedTime = b . selectedTime || { year : this . _year , month : this . _month } , this . datePicker = BI . createWidget ( { type : "bi.date_picker" , behaviors : b . behaviors , min : b . min , max : b . max } ) , this . datePicker . on ( BI . DatePicker . EVENT _CHANGE , function ( ) { var b = a . datePicker . getValue ( ) , c = BI . getMonthDays ( BI . getDate ( b . year , b . month - 1 , 1 ) ) , d = a . selectedTime . day || 0 ; d > c && ( d = c ) , a . selectedTime = { year : b . year , month : b . month } , 0 !== d && ( a . selectedTime . day = d ) , a . calendar . setSelect ( BI . Calendar . getPageByDateJSON ( a . selectedTime ) ) , a . calendar . setValue ( a . selectedTime ) , 0 !== d && a . fireEvent ( BI . DateCalendarPopup . EVENT _CHANGE ) } ) , this . calendar = BI . createWidget ( { direction : "custom" , type : "bi.navigation" , tab : this . datePicker , cardCreator : BI . bind ( this . _createNav , this ) } ) , this . calendar . on ( BI . Navigation . EVENT _CHANGE , function ( ) { a . selectedTime = a . calendar . getValue ( ) , a . calendar . empty ( ) , a . setValue ( a . selectedTime ) , a . fireEvent ( BI . DateCalendarPopup . EVENT _CHANGE ) } ) , this . setValue ( b . selectedTime ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . datePicker , height : 40 } , this . calendar ] , hgap : 10 } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.layout" , cls : "bi-split-top" } , height : 1 , top : 40 , left : 0 , right : 0 } ] } ) } , _createNav : function ( a ) { var b = BI . Calendar . getDateJSONByPage ( a ) , c = BI . createWidget ( { type : "bi.calendar" , logic : { dynamic : ! 1 } , min : this . options . min , max : this . options . max , year : b . year , month : b . month , day : this . selectedTime . day } ) ; return c } , _getNewCurrentDate : function ( ) { var a = BI . getDate ( ) ; return { year : a . getFullYear ( ) , month : a . getMonth ( ) + 1 } } , _setCalenderValue : function ( a ) { this . calendar . setSelect ( BI . Calendar . getPageByDateJSON ( a ) ) , this . calendar . setValue ( a ) , this . selectedTime = a } , _setDatePicker : function ( a ) { BI . isNull ( a ) || BI . isNull ( a . year ) || BI . isNull ( a . month ) ? this . datePicker . setValue ( this . _getNewCurrentDate ( ) ) : this . datePicker . setValue ( a ) } , _setCalendar : function ( a ) { BI . isNull ( a ) || BI . isNull ( a . day ) ? ( this . calendar . empty ( ) , this . _setCalenderValue ( this . _getNewCurrentDate ( ) ) ) : this . _setCalenderValue ( a ) } , setValue : function ( a ) { this . _setDatePicker ( a ) , this . _setCalendar ( a ) } , getValue : function ( ) { return this . selectedTime } } ) , BI . shortcut ( "bi.static_date_pane_card" , BI . StaticDatePaneCard ) , BI . DynamicDatePane = BI . inherit ( BI . Widget , { props : { baseCls : "bi-dynamic-date-pane" } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vtape" , items : [ { el : { type : "bi.linear_segment" , cls : "bi-split-bottom" , height : 30 , items : BI . createItems ( [ { text : BI . i18nText ( "BI-Multi_Date_YMD" ) , value : BI . DynamicDatePane . Static } , { text : BI . i18nText ( "BI-Basic_Dynamic_Title" ) , value : BI . DynamicDatePane . Dynamic } ] , { textAlign : "center" } ) , listeners : [ { eventName : BI . ButtonGroup . EVENT _CHANGE , action : function ( ) { var b = this . getValue ( ) [ 0 ] ; switch ( a . dateTab . setSelect ( b ) , b ) { case BI . DynamicDatePane . Static : var c = BI . DynamicDateHelper . getCalculation ( a . dynamicPane . getValue ( ) ) ; a . ymd . setValue ( { year : c . getFullYear ( ) , month : c . getMonth ( ) + 1 , day : c . getDate ( ) } ) ; break ; case BI . DynamicDatePane . Dynamic : a . dynamicPane . setValue ( { year : 0 } ) } a . fireEvent ( "EVENT_CHANGE" ) } } ] , ref : function ( ) { a . switcher = this } } , height : 30 } , { type : "bi.tab" , ref : function ( ) { a . dateTab = this } , showIndex : BI . DynamicDatePane . Static , cardCreator : function ( c ) { switch ( c ) { case BI . DynamicDatePane . Static : return { type : "bi.static_date_pane_card" , behaviors : b . behaviors , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } ] , ref : function ( ) { a . ymd = this } } ; case BI . DynamicDatePane . Dynamic : default : return { type : "bi.dynamic_date_card" , listeners : [ { eventName : "EVENT_CHANGE" , action : function ( ) { a . _checkValue ( a . getValue ( ) ) && a . fireEvent ( "EVENT_CHANGE" ) } } ] , ref : function ( ) { a . dynamicPane = this } } } } } ] } } , mounted : function ( ) { this . setValue ( this . options . value ) } , _checkValueValid : function ( a ) { return BI . isNull ( a ) || BI . isEmptyObject ( a ) || BI . isEmptyString ( a ) } , _checkValue : function ( a ) { switch ( a . type ) { case BI . DynamicDateCombo . Dynamic : return BI . isNotEmptyObject ( a . value ) ; case BI . DynamicDateCombo . Static : default : return ! 0 } } , setValue : function ( a ) { a = a || { } ; var b = a . type || BI . DynamicDateCombo . Static , c = a . value || a ; switch ( this . switcher . setValue ( b ) , this . dateTab . setSelect ( b ) , b ) { case BI . DynamicDateCombo . Dynamic : this . dynamicPane . setValue ( c ) ; break ; case BI . DynamicDateCombo . Static : default : if (
text : BI . i18nText ( "BI-Basic_Current_Day" ) , value : BI . DynamicDateCard . OFFSET . CURRENT } , { text : BI . i18nText ( "BI-Basic_Month_Begin" ) , value : BI . DynamicDateCard . OFFSET . BEGIN } , { text : BI . i18nText ( "BI-Basic_Month_End" ) , value : BI . DynamicDateCard . OFFSET . END } ] ; case BI . DynamicDateCard . TYPE . WEEK : default : return [ { text : BI . i18nText ( "BI-Basic_Current_Day" ) , value : BI . DynamicDateCard . OFFSET . CURRENT } , { text : BI . i18nText ( "BI-Basic_Week_Begin" ) , value : BI . DynamicDateCard . OFFSET . BEGIN } , { text : BI . i18nText ( "BI-Basic_Week_End" ) , value : BI . DynamicDateCard . OFFSET . END } ] } } , _createValue : function ( a , b ) { return { dateType : a , value : Math . abs ( b ) , offset : b > 0 ? 1 : 0 } } , setValue : function ( a ) { a = a || { } , this . position = a . position || BI . DynamicDateCard . OFFSET . CURRENT ; var b = [ ] , c = [ ] ; BI . isNotNull ( a . year ) && ( b . push ( BI . DynamicDateCard . TYPE . YEAR ) , c . push ( this . _createValue ( BI . DynamicDateCard . TYPE . YEAR , a . year ) ) ) , BI . isNotNull ( a . quarter ) && ( b . push ( BI . DynamicDateCard . TYPE . QUARTER ) , c . push ( this . _createValue ( BI . DynamicDateCard . TYPE . QUARTER , a . quarter ) ) ) , BI . isNotNull ( a . month ) && ( b . push ( BI . DynamicDateCard . TYPE . MONTH ) , c . push ( this . _createValue ( BI . DynamicDateCard . TYPE . MONTH , a . month ) ) ) , BI . isNotNull ( a . week ) && ( b . push ( BI . DynamicDateCard . TYPE . WEEK ) , c . push ( this . _createValue ( BI . DynamicDateCard . TYPE . WEEK , a . week ) ) ) , BI . isNotNull ( a . day ) && ( b . push ( BI . DynamicDateCard . TYPE . DAY ) , c . push ( this . _createValue ( BI . DynamicDateCard . TYPE . DAY , a . day ) ) ) , BI . isNotNull ( a . workDay ) && ( b . push ( BI . DynamicDateCard . TYPE . WORK _DAY ) , c . push ( this . _createValue ( BI . DynamicDateCard . TYPE . WORK _DAY , a . workDay ) ) ) , this . checkgroup . setValue ( b ) , this . workDayBox . setSelected ( BI . isNotNull ( a . workDay ) ) , this . resultPane . populate ( this . _getParamJson ( c , a . position ) ) } , getValue : function ( ) { var a = this , b = { } , c = this . checkgroup . getValue ( ) , d = this . resultPane . getAllButtons ( ) ; if ( 0 !== c . length && BI . each ( d , function ( c , d ) { var e = d . getValue ( ) ; switch ( e . dateType ) { case BI . DynamicDateCard . TYPE . YEAR : b . year = 0 === e . offset ? - e . value : e . value ; break ; case BI . DynamicDateCard . TYPE . QUARTER : b . quarter = 0 === e . offset ? - e . value : e . value ; break ; case BI . DynamicDateCard . TYPE . MONTH : b . month = 0 === e . offset ? - e . value : e . value ; break ; case BI . DynamicDateCard . TYPE . WEEK : b . week = 0 === e . offset ? - e . value : e . value ; break ; case BI . DynamicDateCard . TYPE . DAY : b . day = 0 === e . offset ? - e . value : e . value } BI . isNull ( e . dateType ) && ( b . position = a . position || BI . DynamicDateCard . OFFSET . CURRENT ) } ) , this . workDayBox . isSelected ( ) ) { var e = d [ 0 ] . getValue ( ) ; b . workDay = 0 === e . offset ? - e . value : e . value } return b } } ) , BI . shortcut ( "bi.dynamic_date_card" , BI . DynamicDateCard ) , BI . extend ( BI . DynamicDateCard , { TYPE : { YEAR : 1 , QUARTER : 2 , MONTH : 3 , WEEK : 4 , DAY : 5 , WORK _DAY : 6 } , OFFSET : { CURRENT : 1 , BEGIN : 2 , END : 3 } } ) , BI . DynamicDateCombo = BI . inherit ( BI . Single , { constants : { popupHeight : 259 , popupWidth : 270 , comboAdjustHeight : 1 , border : 1 } , props : { baseCls : "bi-dynamic-date-combo bi-border bi-focus-shadow bi-border-radius" , height : 22 , minDate : "1900-01-01" , maxDate : "2099-12-31" , format : "" , allowEdit : ! 0 } , render : function ( ) { var a = this , b = this . options ; this . storeTriggerValue = "" ; var c = BI . getDate ( ) ; return this . storeValue = b . value , { type : "bi.htape" , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : b . height , height : b . height , ref : function ( ) { a . changeIcon = this } } , width : b . height } , { type : "bi.absolute" , items : [ { el : { type : "bi.combo" , container : b . container , ref : function ( ) { a . combo = this } , toggle : ! 1 , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : { type : "bi.dynamic_date_trigger" , min : b . minDate , max : b . maxDate , format : b . format , allowEdit : b . allowEdit , watermark : b . watermark , height : b . height , value : b . value , ref : function ( ) { a . trigger = this } , listeners : [ { eventName : BI . DynamicDateTrigger . EVENT _KEY _DOWN , action : function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _KEY _DOWN , arguments ) } } , { eventName : BI . DynamicDateTrigger . EVENT _STOP , action : function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } } , { eventName : BI . DynamicDateTrigger . EVENT _FOCUS , action : function ( ) { a . storeTriggerValue = a . trigger . getKey ( ) , a . combo . isViewVisible ( ) || a . combo . showView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _FOCUS ) } } , { eventName : BI . DynamicDateTrigger . EVENT _BLUR , action : function ( ) { a . fireEvent ( BI . DynamicDateCombo . EVENT _BLUR ) } } , { eventName : BI . DynamicDateTrigger . EVENT _ERRO
a . hour = this } , validationChecker : function ( a ) { return BI . isNaturalNumber ( a ) && BI . parseInt ( a ) < 24 } , errorText : function ( a ) { return BI . isNumeric ( a ) ? BI . i18nText ( "BI-Basic_Input_From_To_Number" , '"00-23"' ) : BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) } , listeners : [ { eventName : BI . SignEditor . EVENT _CONFIRM , action : function ( ) { var b = this . getValue ( ) ; a . _checkHour ( b ) , this . setValue ( a . _formatValueToDoubleDigit ( b ) ) , a . fireEvent ( BI . DynamicDateTimeSelect . EVENT _CONFIRM ) } } , { eventName : BI . SignEditor . EVENT _CHANGE , action : function ( ) { var b = a . _autoSwitch ( this . getValue ( ) , BI . DynamicDateTimeSelect . HOUR ) ; this . setValue ( b ) } } ] , width : 60 , height : 24 } } , { type : "bi.label" , text : ":" , width : 20 } , { type : "bi.number_editor" , ref : function ( ) { a . minute = this } , validationChecker : function ( a ) { return BI . isNaturalNumber ( a ) && BI . parseInt ( a ) < 60 } , errorText : function ( a ) { return BI . isNumeric ( a ) ? BI . i18nText ( "BI-Basic_Input_From_To_Number" , '"00-59"' ) : BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) } , listeners : [ { eventName : BI . SignEditor . EVENT _CONFIRM , action : function ( ) { var b = this . getValue ( ) ; a . _checkMinute ( b ) , this . setValue ( a . _formatValueToDoubleDigit ( b ) , BI . DynamicDateTimeSelect . MINUTE ) , a . fireEvent ( BI . DynamicDateTimeSelect . EVENT _CONFIRM ) } } , { eventName : BI . SignEditor . EVENT _CHANGE , action : function ( ) { var b = a . _autoSwitch ( this . getValue ( ) , BI . DynamicDateTimeSelect . MINUTE ) ; this . setValue ( b ) } } ] , width : 60 , height : 24 } , { type : "bi.label" , text : ":" , width : 20 } , { type : "bi.number_editor" , ref : function ( ) { a . second = this } , validationChecker : function ( a ) { return BI . isNaturalNumber ( a ) && BI . parseInt ( a ) < 60 } , errorText : function ( a ) { return BI . isNumeric ( a ) ? BI . i18nText ( "BI-Basic_Input_From_To_Number" , '"00-59"' ) : BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) } , listeners : [ { eventName : BI . SignEditor . EVENT _CONFIRM , action : function ( ) { var b = this . getValue ( ) ; a . _checkSecond ( b ) , this . setValue ( a . _formatValueToDoubleDigit ( b ) ) , a . fireEvent ( BI . DynamicDateTimeSelect . EVENT _CONFIRM ) } } ] , width : 60 , height : 24 } ] } ] } } , _checkBorder : function ( a ) { a = a || { } , this . _checkHour ( a . hour ) , this . _checkMinute ( a . minute ) , this . _checkSecond ( a . second ) } , _checkHour : function ( a ) { this . hour . setDownEnable ( BI . parseInt ( a ) > 0 ) , this . hour . setUpEnable ( BI . parseInt ( a ) < 23 ) } , _checkMinute : function ( a ) { this . minute . setDownEnable ( BI . parseInt ( a ) > 0 ) , this . minute . setUpEnable ( BI . parseInt ( a ) < 59 ) } , _checkSecond : function ( a ) { this . second . setDownEnable ( BI . parseInt ( a ) > 0 ) , this . second . setUpEnable ( BI . parseInt ( a ) < 59 ) } , _autoSwitch : function ( a , b ) { var c = 0 , d = a + "" ; switch ( b ) { case BI . DynamicDateTimeSelect . HOUR : c = 2 ; break ; case BI . DynamicDateTimeSelect . MINUTE : c = 5 } if ( 1 === d . length && BI . parseInt ( d ) > c && ( d = "0" + d ) , 2 === d . length ) switch ( b ) { case BI . DynamicDateTimeSelect . HOUR : this . hour . isEditing ( ) && this . minute . focus ( ) ; break ; case BI . DynamicDateTimeSelect . MINUTE : this . minute . isEditing ( ) && this . second . focus ( ) ; break ; case BI . DynamicDateTimeSelect . SECOND : } return d } , _formatValueToDoubleDigit : function ( a ) { ( BI . isNull ( a ) || BI . isEmptyString ( a ) ) && ( a = 0 ) ; var b = BI . parseInt ( a ) ; return b < 10 && ( b = "0" + b ) , b } , _assertValue : function ( a ) { return a = a || { } , a . hour = this . _formatValueToDoubleDigit ( a . hour ) || "00" , a . minute = this . _formatValueToDoubleDigit ( a . minute ) || "00" , a . second = this . _formatValueToDoubleDigit ( a . second ) || "00" , a } , getValue : function ( ) { return { hour : BI . parseInt ( this . hour . getValue ( ) ) , minute : BI . parseInt ( this . minute . getValue ( ) ) , second : BI . parseInt ( this . second . getValue ( ) ) } } , setValue : function ( a ) { a = this . _assertValue ( a ) , this . hour . setValue ( a . hour ) , this . minute . setValue ( a . minute ) , this . second . setValue ( a . second ) , this . _checkBorder ( a ) } } ) , BI . DynamicDateTimeSelect . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.dynamic_date_time_select" , BI . DynamicDateTimeSelect ) , BI . extend ( BI . DynamicDateTimeSelect , { HOUR : 1 , MINUTE : 2 , SECOND : 3 } ) , BI . DynamicDateTimeTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , yearLength : 4 , yearMonthLength : 6 , yearFullMonthLength : 7 , compareFormat : "%Y-%X-%d %H:%M:%S" } , props : { extraCls : "bi-date-time-trigger" , min : "1900-01-01" , max : "2099-12-31" , height : 24 , format : "" , allowEdit : ! 0 , watermark : "" } , _init : function ( ) { BI . DynamicDateTimeTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . storeTriggerValue = "" , this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , validatio
return BI . parseFloat ( l ) } , _accurateAddition : function ( a , b ) { function c ( a , b ) { for ( var c = b - a . length , d = 0 ; d < c ; d ++ ) a = "0" + a ; return a } var d = this . _stringNumberFactory ( a ) , e = this . _stringNumberFactory ( b ) , f = BI . parseInt ( d . numInteger ) + BI . parseInt ( e . numInteger ) ; this . _formatDecimal ( d , e ) ; var g = ( BI . parseInt ( d . numDecimal ) + BI . parseInt ( e . numDecimal ) ) . toString ( ) ; "0" !== g && ( g . length <= d . numDecimal . length ? g = c ( g , d . numDecimal . length ) : ( f ++ , g = g . slice ( 1 ) ) ) ; var h = f + "." + g ; return BI . parseFloat ( h ) } , _accurateMultiplication : function ( a , b ) { var c = this . _stringNumberFactory ( a ) , d = this . _stringNumberFactory ( b ) , e = BI . parseInt ( c . numInteger ) * BI . parseInt ( d . numInteger ) , f = this . _accurateDivisionTenExponent ( BI . parseInt ( c . numDecimal ) * BI . parseInt ( d . numInteger ) , c . numDecimalLength ) , g = this . _accurateDivisionTenExponent ( BI . parseInt ( c . numInteger ) * BI . parseInt ( d . numDecimal ) , d . numDecimalLength ) , h = this . _accurateDivisionTenExponent ( BI . parseInt ( c . numDecimal ) * BI . parseInt ( d . numDecimal ) , c . numDecimalLength + d . numDecimalLength ) ; return this . _accurateAddition ( this . _accurateAddition ( this . _accurateAddition ( e , f ) , g ) , h ) } , _accurateDivisionTenExponent : function ( a , b ) { function c ( a , b ) { for ( var c = b - a . length , d = 0 ; d < c ; d ++ ) a = "0" + a ; return a } var d = this . _stringNumberFactory ( a ) ; if ( d . numInteger . length > b ) var e = d . numInteger . slice ( 0 , d . numInteger . length - b ) , f = d . numInteger . slice ( - b ) ; else var e = "0" , f = c ( d . numInteger , b ) ; var g = e + "." + f + d . numDecimal ; return BI . parseFloat ( g ) } , accurateSubtraction : function ( a , b ) { return a >= 0 && b >= 0 ? a >= b ? this . _accurateSubtraction ( a , b ) : - this . _accurateSubtraction ( b , a ) : a >= 0 && b < 0 ? this . _accurateAddition ( a , - b ) : a < 0 && b >= 0 ? - this . _accurateAddition ( - a , b ) : a < 0 && b < 0 ? a >= b ? this . _accurateSubtraction ( - b , - a ) : this . _accurateSubtraction ( - a , - b ) : void 0 } , accurateAddition : function ( a , b ) { return a >= 0 && b >= 0 ? this . _accurateAddition ( a , b ) : a >= 0 && b < 0 ? this . accurateSubtraction ( a , - b ) : a < 0 && b >= 0 ? this . accurateSubtraction ( b , - a ) : a < 0 && b < 0 ? - this . _accurateAddition ( - a , - b ) : void 0 } , accurateMultiplication : function ( a , b ) { return a >= 0 && b >= 0 ? this . _accurateMultiplication ( a , b ) : a >= 0 && b < 0 ? - this . _accurateMultiplication ( a , - b ) : a < 0 && b >= 0 ? - this . _accurateMultiplication ( - a , b ) : a < 0 && b < 0 ? this . _accurateMultiplication ( - a , - b ) : void 0 } , accurateDivisionTenExponent : function ( a , b ) { return a >= 0 ? this . _accurateDivisionTenExponent ( a , b ) : - this . _accurateDivisionTenExponent ( - a , b ) } } ) , BI . DownListCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DownListCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-down-list-combo" , height : 24 , items : [ ] , adjustLength : 0 , direction : "bottom" , trigger : "click" , container : null , stopPropagation : ! 1 , el : { } } ) } , _init : function ( ) { BI . DownListCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . popupview = BI . createWidget ( { type : "bi.multi_layer_down_list_popup" , items : b . items , chooseType : b . chooseType , value : b . value } ) , this . popupview . on ( BI . DownListPopup . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . DownListCombo . EVENT _CHANGE , b ) , a . downlistcombo . hideView ( ) } ) , this . popupview . on ( BI . DownListPopup . EVENT _SON _VALUE _CHANGE , function ( b , c ) { a . fireEvent ( BI . DownListCombo . EVENT _SON _VALUE _CHANGE , b , c ) , a . downlistcombo . hideView ( ) } ) , this . downlistcombo = BI . createWidget ( { element : this , type : "bi.combo" , trigger : b . trigger , isNeedAdjustWidth : ! 1 , container : b . container , adjustLength : b . adjustLength , direction : b . direction , stopPropagation : b . stopPropagation , el : BI . createWidget ( b . el , { type : "bi.icon_trigger" , extraCls : b . iconCls ? b . iconCls : "pull-down-font" , width : b . width , height : b . height } ) , popup : { el : this . popupview , stopPropagation : b . stopPropagation , maxHeight : 1e3 } } ) , this . downlistcombo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . DownListCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , hideView : function ( ) { this . downlistcombo . hideView ( ) } , showView : function ( a ) { this . downlistcombo . showView ( a ) } , populate : function ( a ) { this . popupview . populate ( a ) } , setValue : function ( a ) { this . popupview . setValue ( a ) } , getValue : function ( ) { return this . popupview . getValue ( ) } } ) , BI . DownListCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . DownListCombo . EVENT _SON _VALUE _CHANGE = "EVENT_SON_VALUE_CHANGE" , BI . DownListCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.multi_layer_down_list_combo" , BI . DownListCombo ) , B
a . fireEvent ( BI . MultiLayerSingleTreeCombo . EVENT _CHANGE ) } } ] } , value : b . value , maxHeight : 400 , minHeight : 240 } } } , _getSearchConfig : function ( ) { var a = this , b = this . options ; return { el : { type : "bi.multilayer_single_tree_trigger" , allowInsertValue : b . allowInsertValue , allowSearchValue : b . allowSearchValue , allowEdit : b . allowEdit , cls : "multilayer-single-tree-trigger" , ref : function ( b ) { a . trigger = b } , watermark : b . watermark , items : b . items , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , height : b . height - 2 , text : b . text , value : b . value , tipType : b . tipType , warningTitle : b . warningTitle , title : b . title , listeners : [ { eventName : BI . MultiLayerSingleTreeTrigger . EVENT _CHANGE , action : function ( ) { a . setValue ( this . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . MultiLayerSingleTreeCombo . EVENT _CHANGE ) } } , { eventName : BI . MultiLayerSingleTreeTrigger . EVENT _FOCUS , action : function ( ) { a . fireEvent ( BI . MultiLayerSingleTreeCombo . EVENT _FOCUS ) } } , { eventName : BI . MultiLayerSingleTreeTrigger . EVENT _BLUR , action : function ( ) { a . fireEvent ( BI . MultiLayerSingleTreeCombo . EVENT _BLUR ) } } , { eventName : BI . MultiLayerSingleTreeTrigger . EVENT _SEARCHING , action : function ( ) { a . fireEvent ( BI . MultiLayerSingleTreeCombo . EVENT _SEARCHING ) } } , { eventName : BI . MultiLayerSingleTreeTrigger . EVENT _ADD _ITEM , action : function ( ) { var b = a . trigger . getSearcher ( ) . getKeyword ( ) ; a . combo . setValue ( [ b ] ) , a . combo . hideView ( ) } } ] } , hideChecker : function ( b ) { return 0 === a . triggerBtn . element . find ( b . target ) . length } , listeners : [ { eventName : BI . Combo . EVENT _AFTER _HIDEVIEW , action : function ( ) { a . trigger . stopEditing ( ) } } ] } } , _getSyncConfig : function ( ) { var a = this . options , b = this . _getBaseConfig ( ) ; return BI . extend ( b , a . allowEdit ? this . _getSearchConfig ( ) : { el : { type : "bi.single_tree_trigger" , text : a . text , height : a . height , items : a . items , value : a . value } } ) } , _getAsyncConfig : function ( ) { var a = this . _getBaseConfig ( ) ; return BI . extend ( a , this . _getSearchConfig ( ) ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . combo . setValue ( a ) } , getValue : function ( ) { return this . combo . getValue ( ) } , populate : function ( a ) { this . combo . populate ( a ) } } ) , BI . MultiLayerSingleTreeCombo . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . MultiLayerSingleTreeCombo . EVENT _BLUR = "EVENT_BLUR" , BI . MultiLayerSingleTreeCombo . EVENT _FOCUS = "EVENT_FOCUS" , BI . MultiLayerSingleTreeCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_single_tree_combo" , BI . MultiLayerSingleTreeCombo ) , BI . MultiLayerSingleTreeInsertSearchPane = BI . inherit ( BI . Widget , { props : function ( ) { return { baseCls : "bi-multilayer-single-tree-popup" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , isDefaultInit : ! 1 , itemsCreator : BI . emptyFn , items : [ ] , value : "" } } , render : function ( ) { var a = this , b = this . options ; return this . tree = BI . createWidget ( { type : "bi.multilayer_select_level_tree" , isDefaultInit : b . isDefaultInit , items : b . items , itemsCreator : b . itemsCreator === BI . emptyFn ? BI . emptyFn : function ( c , d ) { b . itemsCreator ( c , function ( c ) { d ( c ) , a . setKeyword ( b . keywordGetter ( ) ) } ) } , keywordGetter : b . keywordGetter , value : b . value , scrollable : null , listeners : [ { eventName : BI . Controller . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } } , { eventName : BI . MultiLayerSelectLevelTree . EVENT _CHANGE , action : function ( ) { a . fireEvent ( BI . MultiLayerSingleTreeInsertSearchPane . EVENT _CHANGE ) } } ] } ) , { type : "bi.vertical" , scrolly : ! 1 , scrollable : ! 0 , vgap : 5 , items : [ { type : "bi.text_button" , invisible : ! 0 , text : BI . i18nText ( "BI-Basic_Click_To_Add_Text" , "" ) , height : 24 , cls : "bi-high-light" , hgap : 5 , ref : function ( b ) { a . addNotMatchTip = b } , handler : function ( ) { a . fireEvent ( BI . MultiLayerSingleTreeInsertSearchPane . EVENT _ADD _ITEM , b . keywordGetter ( ) ) } } , this . tree ] } } , setKeyword : function ( a ) { var b = BI . isEmptyArray ( this . tree . getAllLeaves ( ) ) ; this . addNotMatchTip . setVisible ( b ) , b && this . addNotMatchTip . setText ( BI . i18nText ( "BI-Basic_Click_To_Add_Text" , a ) ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . tree . setValue ( a ) } , populate : function ( a ) { this . tree . populate ( a ) } } ) , BI . MultiLayerSingleTreeInsertSearchPane . EVENT _ADD _ITEM = "EVENT_ADD_ITEM" , BI . MultiLayerSingleTreeInsertSearchPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_single_tree_insert_search_pane" , BI . MultiLayerSingleTreeInsertSearchPane ) , BI . MultiLayerSingleLevelTree = BI . inherit ( BI . Pane , {
a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . numberCounter . on ( BI . MultiSelectCheckSelectedSwitcher . EVENT _BEFORE _POPUPVIEW , function ( ) { this . updateSelectedValue ( a . storeValue ) } ) , this . numberCounter . on ( BI . Events . VIEW , function ( b ) { BI . nextTick ( function ( ) { a . trigger . refreshPlaceHolderWidth ( b === ! 0 ? a . numberCounter . element . outerWidth ( ) + 8 : 0 ) } ) } ) , this . trigger . element . click ( function ( b ) { a . trigger . element . find ( b . target ) . length > 0 && a . numberCounter . hideView ( ) } ) , 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 } , { el : { type : "bi.vertical_adapt" , items : [ this . numberCounter ] } , right : b . height , top : 0 , height : b . height } ] } ) } , _itemsCreator4Trigger : function ( a , b ) { var c = this , d = this . options ; d . itemsCreator ( a , function ( d ) { 1 === a . times && BI . isNotNull ( a . keywords ) && c . trigger . setValue ( BI . deepClone ( c . getValue ( ) ) ) , b . apply ( c , arguments ) } ) } , _stopEditing : function ( ) { this . trigger . stopEditing ( ) , this . numberCounter . hideView ( ) } , _defaultState : function ( ) { this . _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 . MultiSelectCombo . 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 . MultiSelectCombo . 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 . MultiSelectCombo . 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 ) , BI . remove ( c . storeValue . assist , b ) , d [ b ] = b ) } ) ; var e = ! 1 ; return BI . each ( a . assist , function ( a , b ) { BI . isNotNull ( d [ b ] ) && ( e = ! 0 , c . storeValue . assist && c . storeValue . assist . push ( d [ b ] ) , 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 . popup . setStartValue ( a ) } , setValue : function ( a ) { this . storeValue = a || { } , this . _assertValue ( this . storeValue ) , this . combo . setValue ( this . storeValue ) , this . numberCounter . setValue ( this . storeValue ) } , getValue : function ( ) { return BI . deepClone ( this . storeValue ) } , populate : function ( ) { this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . extend ( BI . MultiSelectCombo , { REQ _GET _DATA _LENGTH : 1 , REQ _GET _ALL _DATA : - 1 } ) , BI . MultiSelectCombo . EVENT _BLUR = "EVENT_BLUR" , BI . MultiSelectCombo . EVENT _FOCUS = "EVENT_FOCUS" , BI . MultiSelectCombo . EVENT _STOP = "EVENT_STOP" , BI . MultiSelectCombo . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . MultiSelectCombo . EVENT _CLICK _ITEM = "EVENT_CLICK_ITEM" , BI . MultiSelectCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.multi_select_combo" , BI . MultiSelectCombo ) , BI . MultiSelectInsertCombo = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectInsertCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-insert-combo" , itemsCreator : BI . emptyFn , valueFormatter : B
} , resetWidth : function ( a ) { this . popupView . resetWidth ( a ) } } ) , BI . MultiSelectPopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiSelectPopupView . EVENT _CLICK _CONFIRM = "EVENT_CLICK_CONFIRM" , BI . MultiSelectPopupView . EVENT _CLICK _CLEAR = "EVENT_CLICK_CLEAR" , BI . shortcut ( "bi.multi_select_popup_view" , BI . MultiSelectPopupView ) , BI . MultiSelectNoBarPopupView = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectNoBarPopupView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-popup-view" , maxWidth : "auto" , minWidth : 135 , maxHeight : 400 , valueFormatter : BI . emptyFn , itemsCreator : BI . emptyFn , onLoaded : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectNoBarPopupView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . loader = BI . createWidget ( { type : "bi.multi_select_no_bar_loader" , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , onLoaded : b . onLoaded , value : b . value } ) , this . popupView = BI . createWidget ( { type : "bi.multi_popup_view" , stopPropagation : ! 1 , maxWidth : b . maxWidth , minWidth : b . minWidth , maxHeight : b . maxHeight , element : this , buttons : [ BI . i18nText ( "BI-Basic_Clears" ) , BI . i18nText ( "BI-Basic_Sure" ) ] , el : this . loader , value : b . value } ) , this . popupView . on ( BI . MultiPopupView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectNoBarPopupView . EVENT _CHANGE ) } ) , this . popupView . on ( BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON , function ( b ) { switch ( b ) { case 0 : a . fireEvent ( BI . MultiSelectNoBarPopupView . EVENT _CLICK _CLEAR ) ; break ; case 1 : a . fireEvent ( BI . MultiSelectNoBarPopupView . EVENT _CLICK _CONFIRM ) } } ) } , setStartValue : function ( a ) { this . loader . setStartValue ( a ) } , setValue : function ( a ) { this . popupView . setValue ( a ) } , getValue : function ( ) { return this . popupView . getValue ( ) } , populate : function ( a ) { this . popupView . populate . apply ( this . popupView , arguments ) } , resetHeight : function ( a ) { this . popupView . resetHeight ( a ) } , resetWidth : function ( a ) { this . popupView . resetWidth ( a ) } } ) , BI . MultiSelectNoBarPopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiSelectNoBarPopupView . EVENT _CLICK _CONFIRM = "EVENT_CLICK_CONFIRM" , BI . MultiSelectNoBarPopupView . EVENT _CLICK _CLEAR = "EVENT_CLICK_CLEAR" , BI . shortcut ( "bi.multi_select_no_bar_popup_view" , BI . MultiSelectNoBarPopupView ) , BI . MultiSelectTrigger = BI . inherit ( BI . Trigger , { constants : { height : 14 , rgap : 4 , lgap : 4 } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-trigger bi-border bi-border-radius" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , searcher : { } , switcher : { } , adapter : null , masker : { } , allowEdit : ! 0 } ) } , _init : function ( ) { BI . MultiSelectTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; b . height && this . setHeight ( b . height - 2 ) , this . searcher = BI . createWidget ( b . searcher , { type : "bi.multi_select_searcher" , height : b . height , text : b . text , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , watermark : b . watermark , popup : { } , adapter : b . adapter , masker : b . masker , value : b . value } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _START , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _START ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _PAUSE ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _SEARCHING , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _SEARCHING , arguments ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _STOP ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _CHANGE , arguments ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _BLUR , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _BLUR ) } ) , this . searcher . on ( BI . MultiSelectSearcher . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . MultiSelectTrigger . EVENT _FOCUS ) } ) , this . wrapNumberCounter = BI . createWidget ( { type : "bi.layout" } ) , this . wrapper = BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . searcher , width : "fill" } , { el : this . wrapNumberCounter , width : 0 } , { el : BI . createWidget ( ) , width : 24 } ] } ) , ! b . allowEdit && BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.layout" } , left : 0 , right : 24 , top : 0 , bottom : 0 } ] } ) } , refreshPlaceHolderWidth : function ( a ) { this . wrapper . att
} , itemsCreator : function ( c , d ) { c . keywords = [ a . trigger . getKeyword ( ) ] , this . setKeyword ( c . keywords [ 0 ] ) , b . itemsCreator ( c , d ) } , listeners : [ { eventName : BI . MultiSelectSearchInsertPane . EVENT _ADD _ITEM , action : function ( ) { var b = a . trigger . getKeyword ( ) ; a . trigger . hasMatched ( ) || ( a . storeValue . type === BI . Selection . Multi && BI . pushDistinct ( a . storeValue . value , b ) , a . _showAdapter ( ) , a . adapter . setValue ( a . storeValue ) , a . adapter . populate ( ) , a . storeValue . type === BI . Selection . Multi && a . fireEvent ( BI . MultiSelectInsertNoBarList . EVENT _CHANGE ) ) } } ] } ) , this . searcherPane . setVisible ( ! 1 ) , this . trigger = BI . createWidget ( { type : "bi.searcher" , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( a , b ) { b ( ) } , adapter : this . adapter , popup : this . searcherPane , height : 200 , masker : ! 1 , listeners : [ { eventName : BI . Searcher . EVENT _START , action : function ( ) { a . _showSearcherPane ( ) , a . _setStartValue ( "" ) , this . setValue ( BI . deepClone ( a . storeValue ) ) } } , { eventName : BI . Searcher . EVENT _STOP , action : function ( ) { a . _showAdapter ( ) , a . _setStartValue ( "" ) , a . adapter . setValue ( a . storeValue ) , a . adapter . populate ( ) } } , { eventName : BI . Searcher . EVENT _PAUSE , action : function ( ) { var b = this . getKeyword ( ) ; this . hasMatched ( ) && a . _join ( { type : BI . Selection . Multi , value : [ b ] } , function ( ) { a . storeValue . type === BI . Selection . Multi && BI . pushDistinct ( a . storeValue . value , b ) , a . _showAdapter ( ) , a . adapter . setValue ( a . storeValue ) , a . _setStartValue ( b ) , c ( ) , a . adapter . populate ( ) , a . _setStartValue ( "" ) , a . fireEvent ( BI . MultiSelectInsertNoBarList . EVENT _CHANGE ) } ) } } , { eventName : BI . Searcher . EVENT _SEARCHING , action : function ( ) { var b = this . getKeywords ( ) , d = BI . last ( b ) ; b = BI . initial ( b || [ ] ) , b . length > 0 && a . _joinKeywords ( b , function ( ) { BI . isEndWithBlank ( d ) ? ( a . adapter . setValue ( a . storeValue ) , c ( ) , a . adapter . populate ( ) , a . _setStartValue ( "" ) ) : ( a . adapter . setValue ( a . storeValue ) , c ( ) ) , a . fireEvent ( BI . MultiSelectInsertNoBarList . EVENT _CHANGE ) } ) } } , { eventName : BI . Searcher . EVENT _CHANGE , action : function ( b , d ) { d instanceof BI . MultiSelectBar ? a . _joinAll ( this . getValue ( ) , function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectInsertNoBarList . EVENT _CHANGE ) } ) : a . _join ( this . getValue ( ) , function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectInsertNoBarList . EVENT _CHANGE ) } ) } } ] , value : { type : BI . Selection . Multi , value : b . value || [ ] } } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . trigger , 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 ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) } , _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 ) ) } ) , b ( ) } var d = this , e = this . options ; this . _assertValue ( this . storeValue ) , e . itemsCreator ( { type : BI . MultiSelectInsertNoBarList . 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 ) , d . itemsCreator ( { type : BI . MultiSelectInsertNoBarList . REQ _GET _ALL _DATA , keywords : [ c . trigger . getKeyword ( ) ] } , 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 , delete g [ b ] ) } ) , f && ( c . storeValue . value = BI . values ( g ) ) , void b ( ) } var h = c . _makeMap ( c . storeValue . value ) , i = c . _makeMap ( a . value ) , j = [ ] ; BI . each ( e , function ( a , b ) { BI . isNotNull ( h [ e [ a ] ] ) && delete h [ e [ a ] ] , BI . isNull ( i [ e [ a ] ] ) && j . push ( b ) } ) , c . storeValue . value = j . concat ( BI . values ( h ) ) , b ( ) } ) } , _join : function ( a , b ) { var c = this ; this . options ; if ( this . _assertValue ( a ) , this . _assertValue ( this . storeValue ) , this . storeValue . type === a . type ) { var d = this . _makeMap ( this . storeValue . value ) ; BI . each ( a . value , function ( a , b ) { d [ b ] || ( c . storeValue . value . push ( b ) , d [ b ] = b ) } ) ; var e = ! 1 ; return BI . each ( a . assist , function ( a , b ) { BI . isNotNull ( d [ b ] ) && ( e = ! 0 , delete d [ b ] ) } ) , e && ( this . sto
b . storeValue = { value : b . combo . getValue ( ) } , this . setValue ( b . storeValue ) , b . numberCounter . setValue ( b . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _STOP , function ( ) { b . storeValue = { value : this . getValue ( ) } , b . combo . setValue ( b . storeValue ) , b . numberCounter . setValue ( b . storeValue ) , BI . nextTick ( function ( ) { i ( ) && b . combo . populate ( ) } ) , b . fireEvent ( BI . MultiTreeListCombo . EVENT _STOP ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _SEARCHING , function ( ) { b . fireEvent ( BI . MultiTreeListCombo . EVENT _SEARCHING ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _TRIGGER _CLICK , function ( ) { b . combo . toggle ( ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _CHANGE , function ( ) { var a = this . getSearcher ( ) . hasChecked ( ) , c = { type : BI . Selection . Multi , value : a ? { 1 : 1 } : { } } ; this . getSearcher ( ) . setState ( a ? BI . Selection . Multi : BI . Selection . None ) , b . numberCounter . setButtonChecked ( c ) , b . fireEvent ( BI . MultiTreeListCombo . EVENT _CLICK _ITEM , b . combo . getValue ( ) ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { h ( ) || ( f === ! 0 && ( b . storeValue = { value : b . combo . getValue ( ) } , f = ! 1 ) , b . combo . setValue ( b . storeValue ) , b . numberCounter . setValue ( b . storeValue ) , b . populate ( ) ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _HIDEVIEW , function ( ) { h ( ) ? ( b . trigger . stopEditing ( ) , b . fireEvent ( BI . MultiTreeListCombo . EVENT _CONFIRM ) ) : i ( ) && ( b . _stopEditing ( ) , b . storeValue = { value : b . combo . getValue ( ) } , g === ! 0 && ( b . storeValue = { value : [ ] } ) , b . fireEvent ( BI . MultiTreeListCombo . EVENT _CONFIRM ) ) , g = ! 1 , f = ! 1 } ) ; var j = BI . createWidget ( { type : "bi.trigger_icon_button" , width : c . height , height : c . height , cls : "multi-select-trigger-icon-button" } ) ; j . on ( BI . TriggerIconButton . EVENT _CHANGE , function ( ) { b . numberCounter . hideView ( ) , b . combo . isViewVisible ( ) ? b . combo . hideView ( ) : b . combo . showView ( ) } ) , this . numberCounter = BI . createWidget ( { type : "bi.multi_select_check_selected_switcher" , el : { type : "bi.multi_tree_check_selected_button" } , popup : { type : "bi.multi_tree_check_pane" } , itemsCreator : c . itemsCreator , masker : { offset : { left : 0 , top : 0 , right : 0 , bottom : 25 } } , valueFormatter : c . valueFormatter , value : c . value } ) , this . numberCounter . on ( BI . MultiSelectCheckSelectedSwitcher . EVENT _TRIGGER _CHANGE , function ( ) { b . combo . isViewVisible ( ) || b . combo . showView ( ) } ) , this . numberCounter . on ( BI . MultiSelectCheckSelectedSwitcher . EVENT _BEFORE _POPUPVIEW , function ( ) { e === ! 1 && ( e = ! 0 ) , d === ! 0 && ( e = null , a ( ) ) } ) , this . numberCounter . on ( BI . Events . VIEW , function ( a ) { BI . nextTick ( function ( ) { b . trigger . refreshPlaceHolderWidth ( a === ! 0 ? b . numberCounter . element . outerWidth ( ) + 8 : 0 ) } ) } ) , this . trigger . element . click ( function ( a ) { b . trigger . element . find ( a . target ) . length > 0 && b . numberCounter . hideView ( ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . combo , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : j , right : 0 , top : 0 , bottom : 0 } , { el : { type : "bi.vertical_adapt" , items : [ this . numberCounter ] } , right : c . height , top : 0 , height : c . height } ] } ) } , _assertShowValue : function ( ) { this . trigger . getSearcher ( ) . setState ( this . storeValue ) , this . numberCounter . setButtonChecked ( this . storeValue ) } , _stopEditing : function ( ) { this . trigger . stopEditing ( ) , this . numberCounter . hideView ( ) } , _defaultState : function ( ) { this . _stopEditing ( ) , this . combo . hideView ( ) } , setValue : function ( a ) { this . storeValue . value = a || [ ] , this . combo . setValue ( { value : a || [ ] } ) , this . numberCounter . setValue ( { value : a || [ ] } ) } , getValue : function ( ) { return BI . deepClone ( this . storeValue . value ) } , populate : function ( ) { this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . MultiTreeListCombo . EVENT _FOCUS = "EVENT_FOCUS" , BI . MultiTreeListCombo . EVENT _BLUR = "EVENT_BLUR" , BI . MultiTreeListCombo . EVENT _STOP = "EVENT_STOP" , BI . MultiTreeListCombo . EVENT _CLICK _ITEM = "EVENT_CLICK_ITEM" , BI . MultiTreeListCombo . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . MultiTreeListCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.multi_tree_list_combo" , BI . MultiTreeListCombo ) , BI . MultiTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-tree-popup" , maxWidth : "auto" , minWidth : 140 , maxHeight : 400 , onLoaded : BI . emptyFn , el : { type : "bi.async_tree" } } ) } , _init : function ( ) { BI . MultiTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = b . value ; this . selectedValues = { } , this . tree = BI . createWidget ( b . el , { type : " bi . async _
text : b . text , height : b . height , masker : { offset : { left : 0 , top : 0 , right : 0 , bottom : 25 } } , allValueGetter : function ( ) { return a . allValue } , valueFormatter : b . valueFormatter , itemsCreator : function ( b , c ) { a . _itemsCreator ( b , function ( d ) { 1 === b . times && BI . isNotNull ( b . keywords ) && a . trigger . setValue ( BI . deepClone ( a . getValue ( ) ) ) , c . apply ( a , arguments ) } ) } , value : this . storeValue , warningTitle : b . warningTitle } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _START , function ( ) { a . _setStartValue ( "" ) , this . getSearcher ( ) . setValue ( a . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _STOP , function ( ) { a . _setStartValue ( "" ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _PAUSE , function ( ) { if ( this . getSearcher ( ) . hasMatched ( ) ) { var b = this . getSearcher ( ) . getKeyword ( ) ; a . _join ( { type : BI . Selection . Multi , value : [ b ] } , function ( ) { a . combo . setValue ( a . storeValue ) , a . _setStartValue ( b ) , c ( ) , a . _populate ( ) , a . _setStartValue ( "" ) } ) } } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _SEARCHING , function ( b ) { var d = BI . last ( b ) ; b = BI . initial ( b || [ ] ) , b . length > 0 && a . _joinKeywords ( b , function ( ) { BI . isEndWithBlank ( d ) ? ( a . combo . setValue ( a . storeValue ) , c ( ) , a . combo . populate ( ) , a . _setStartValue ( "" ) ) : ( a . combo . setValue ( a . storeValue ) , c ( ) ) } ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _CHANGE , function ( b , d ) { d instanceof BI . MultiSelectBar ? a . _joinAll ( this . getValue ( ) , function ( ) { c ( ) } ) : a . _join ( this . getValue ( ) , function ( ) { c ( ) } ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _BEFORE _COUNTER _POPUPVIEW , function ( ) { this . getCounter ( ) . setValue ( a . storeValue ) } ) , this . trigger . on ( BI . MultiSelectTrigger . EVENT _COUNTER _CLICK , function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , toggle : ! 1 , container : b . container , el : this . trigger , adjustLength : 1 , popup : { type : "bi.search_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 : BI . bind ( a . _itemsCreator , this ) , 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 : ( c ( ) , a . fireEvent ( BI . SearchMultiTextValueCombo . 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 } ] } ) , this . _checkError ( ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) , this . combo . hideView ( ) } , _assertValue : function ( a ) { var b = this . options ; a || ( a = { } ) , a . type || ( a . type = BI . Selection . Multi ) , a . value || ( a . value = [ ] ) , BI . remove ( a . value , function ( a , c ) { return ! BI . contains ( BI . map ( b . items , "value" ) , c ) } ) } , _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 ; this . options ; this . _assertValue ( this . storeValue ) , this . requesting = ! 0 , this . _itemsCreator ( { type : BI . SearchMultiTextValueCombo . REQ _GET _ALL _DATA , keywords : a } , function ( a ) { var b = BI . map ( a . items , "value" ) ; c ( b ) } ) } , _joinAll : function ( a , b ) { var c = this ; this . options ; this . _assertValue ( a ) , this . requesting = ! 0 , this . _itemsCreator ( { type : BI . SearchMultiTextValueCombo . REQ _
} ) , this . button _group . on ( BI . SingleSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearchLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : this . options . allowNoSelect ? "bi.single_select_item" : "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 . SingleSelectSearchInsertPane = BI . inherit ( BI . Widget , { constants : { height : 25 , lgap : 10 , tgap : 5 } , _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchInsertPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-pane bi-card" , allowNoSelect : ! 1 , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchInsertPane . 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 . addNotMatchTip = BI . createWidget ( { type : "bi.text_button" , invisible : ! 0 , text : BI . i18nText ( "BI-Basic_Click_To_Add_Text" , "" ) , height : this . constants . height , cls : "bi-high-light" , hgap : 5 , handler : function ( ) { a . fireEvent ( BI . SingleSelectSearchInsertPane . EVENT _ADD _ITEM , b . keywordGetter ( ) ) } } ) , this . loader = BI . createWidget ( { type : "bi.single_select_search_loader" , allowNoSelect : b . allowNoSelect , 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 : [ { type : "bi.vertical" , items : [ this . tooltipClick , this . addNotMatchTip ] , height : this . constants . height } , { el : this . loader } ] } ) } , setKeyword : function ( a ) { var b , c = this . loader . getAllButtons ( ) . length > 0 && ( b = this . loader . getAllButtons ( ) [ 0 ] ) && a === b . getValue ( ) ; this . tooltipClick . setVisible ( c ) , this . addNotMatchTip . setVisible ( ! c ) , ! c && this . addNotMatchTip . setText ( BI . i18nText ( "BI-Basic_Click_To_Add_Text" , a ) ) } , 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 . SingleSelectSearchInsertPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . SingleSelectSearchInsertPane . EVENT _ADD _ITEM = "EVENT_ADD_ITEM" , BI . shortcut ( "bi.single_select_search_insert_pane" , BI . SingleSelectSearchInsertPane ) , 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" , allowNoSelect : ! 1 , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , keywordGetter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tooltipClick = BI . createWidget ( { type : "bi.label" , invisible : ! 0 , text : BI . i18nText ( "BI-Click_Blank_To_Select" ) , cls : "multi-select-toolbar" , height : this . constants . height } ) , this . loa
a . fireEvent ( BI . SingleSelectEditor . EVENT _BLUR ) } ) } , focus : function ( ) { this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) } , setState : function ( a ) { this . editor . setState ( a ) } , setValue : function ( a ) { this . editor . setValue ( a ) } , getValue : function ( ) { var a = this . editor . getState ( ) ; return BI . isArray ( a ) && a . length > 0 ? a [ a . length - 1 ] : "" } , getKeywords : function ( ) { var a = this . editor . getLastChangedValue ( ) , b = a . match ( /[\S]+/g ) ; return BI . isEndWithBlank ( a ) ? b . concat ( [ " " ] ) : b } , populate : function ( a ) { } } ) , BI . SingleSelectEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . SingleSelectEditor . EVENT _BLUR = "EVENT_BLUR" , BI . SingleSelectEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . shortcut ( "bi.single_select_editor" , BI . SingleSelectEditor ) , BI . SingleSelectSearcher = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearcher . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-searcher" , itemsCreator : BI . emptyFn , el : { } , popup : { } , valueFormatter : BI . emptyFn , adapter : null , masker : { } , allowNoSelect : ! 1 } ) } , _init : function ( ) { BI . SingleSelectSearcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( b . el , { type : "bi.single_select_editor" , height : b . height , text : b . text , listeners : [ { eventName : BI . SingleSelectEditor . EVENT _FOCUS , action : function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _FOCUS ) } } , { eventName : BI . SingleSelectEditor . EVENT _BLUR , action : function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _BLUR ) } } ] } ) , this . searcher = BI . createWidget ( { type : "bi.searcher" , element : this , height : b . height , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( a , b ) { b ( ) } , el : this . editor , popup : BI . extend ( { type : "bi.single_select_search_pane" , allowNoSelect : b . allowNoSelect , valueFormatter : b . valueFormatter , keywordGetter : function ( ) { return a . editor . getValue ( ) } , itemsCreator : function ( c , d ) { var e = a . editor . getValue ( ) ; c . keywords = [ e ] , this . setKeyword ( e ) , b . itemsCreator ( c , d ) } , value : b . value } , b . popup ) , adapter : b . adapter , masker : b . masker } ) , this . searcher . on ( BI . Searcher . EVENT _START , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _START ) } ) , this . searcher . on ( BI . Searcher . EVENT _PAUSE , function ( ) { this . hasMatched ( ) , a . fireEvent ( BI . SingleSelectSearcher . EVENT _PAUSE ) } ) , this . searcher . on ( BI . Searcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _STOP ) } ) , this . searcher . on ( BI . Searcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _CHANGE , arguments ) } ) , this . searcher . on ( BI . Searcher . EVENT _SEARCHING , function ( ) { var b = this . getKeywords ( ) ; a . fireEvent ( BI . SingleSelectSearcher . EVENT _SEARCHING , b ) } ) , BI . isNotNull ( b . value ) && this . setState ( b . value ) } , adjustView : function ( ) { this . searcher . adjustView ( ) } , isSearching : function ( ) { return this . searcher . isSearching ( ) } , stopSearch : function ( ) { this . searcher . stopSearch ( ) } , getKeyword : function ( ) { return this . editor . getValue ( ) } , hasMatched : function ( ) { return this . searcher . hasMatched ( ) } , hasChecked : function ( ) { return this . searcher . getView ( ) && this . searcher . getView ( ) . hasChecked ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) } , setState : function ( a ) { var b = this . options ; BI . isNull ( a ) ? this . editor . setState ( BI . Selection . None ) : this . editor . setState ( b . valueFormatter ( a + "" ) || a + "" ) } , setValue : function ( a ) { this . setState ( a ) , this . searcher . setValue ( a ) } , getKey : function ( ) { return this . editor . getValue ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } , populate : function ( a ) { this . searcher . populate . apply ( this . searcher , arguments ) } } ) , BI . SingleSelectSearcher . EVENT _FOCUS = "EVENT_FOCUS" , BI . SingleSelectSearcher . EVENT _BLUR = "EVENT_BLUR" , BI . SingleSelectSearcher . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . SingleSelectSearcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . SingleSelectSearcher . EVENT _START = "EVENT_START" , BI . SingleSelectSearcher . EVENT _STOP = "EVENT_STOP" , BI . SingleSelectSearcher . EVENT _PAUSE = "EVENT_PAUSE" , BI . SingleSelectSearcher . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . shortcut ( "bi.single_select_searcher" , BI . SingleSelectSearcher ) , BI . 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 : func
action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } , { eventName : "EVENT_CONFIRM" , action : function ( ) { if ( ! a . combo . isViewVisible ( ) ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI . isNotEmptyString ( c ) && ! BI . isEqual ( c , b ) ? ( a . storeValue = a . trigger . getValue ( ) , a . setValue ( a . trigger . getValue ( ) ) ) : BI . isEmptyString ( c ) && ( a . storeValue = null , a . trigger . setValue ( ) ) , a . fireEvent ( "EVENT_CONFIRM" ) } } } ] } , adjustLength : this . constants . comboAdjustHeight , popup : { el : c , width : this . constants . popupWidth , stopPropagation : ! 1 } , hideChecker : function ( b ) { return 0 === a . triggerBtn . element . find ( b . target ) . length } , listeners : [ { eventName : BI . Combo . EVENT _BEFORE _POPUPVIEW , action : function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . TimeCombo . EVENT _BEFORE _POPUPVIEW ) } } ] , ref : function ( b ) { a . combo = b } } , top : 0 , left : 0 , right : 22 , bottom : 0 } , { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button time-font icon-size-16" , width : 22 , height : 22 , listeners : [ { eventName : BI . IconButton . EVENT _CHANGE , action : function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } } ] , ref : function ( b ) { a . triggerBtn = b } } , top : 0 , right : 0 } ] } ] } } , setValue : function ( a ) { this . storeValue = a , this . trigger . setValue ( a ) } , getValue : function ( ) { return this . storeValue } , hidePopupView : function ( ) { this . combo . hideView ( ) } , _setNowTime : function ( ) { var a = BI . getDate ( ) , b = { hour : a . getHours ( ) , minute : a . getMinutes ( ) , second : a . getSeconds ( ) } ; this . setValue ( b ) , this . hidePopupView ( ) , this . fireEvent ( BI . TimeCombo . EVENT _CONFIRM ) } } ) , BI . TimeCombo . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . TimeCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . TimeCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . TimeCombo . EVENT _VALID = "EVENT_VALID" , BI . TimeCombo . EVENT _ERROR = "EVENT_ERROR" , BI . TimeCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.time_combo" , BI . TimeCombo ) } ( ) , ! function ( ) { BI . TimeTrigger = BI . inherit ( BI . Trigger , { _const : { COMPARE _FORMAT : "%H:%M:%S" , COMPLETE _COMPARE _FORMAT : "%Y-%M-%d %H:%M:%S %P" , FORMAT _ARRAY : [ "%H:%M:%S" , "%I:%M:%S" , "%l:%M:%S" , "%k:%M:%S" , "%l:%M:%S %p" , "%l:%M:%S %P" , "%H:%M:%S %p" , "%H:%M:%S %P" , "%l:%M" , "%k:%M" , "%I:%M" , "%H:%M" , "%M:%S" ] , DEFAULT _DATE _STRING : "2000-01-01" } , props : { extraCls : "bi-time-trigger" , value : { } , format : "" , allowEdit : ! 1 } , render : function ( ) { var a = this , b = this . options ; return this . storeTriggerValue = "" , this . storeValue = b . value , { type : "bi.absolute" , items : [ { el : { type : "bi.sign_editor" , height : b . height , validationChecker : function ( b ) { return a . _dateCheck ( b ) } , quitChecker : function ( ) { return ! 1 } , ref : function ( b ) { a . editor = b } , value : this . _formatValue ( b . value ) , hgap : 4 , allowBlank : ! 0 , watermark : BI . isKey ( b . watermark ) ? b . watermark : BI . i18nText ( "BI-Basic_Unrestricted" ) , title : BI . bind ( this . _getTitle , this ) , listeners : [ { eventName : "EVENT_KEY_DOWN" , action : function ( ) { a . fireEvent ( "EVENT_KEY_DOWN" , arguments ) } } , { eventName : "EVENT_FOCUS" , action : function ( ) { a . storeTriggerValue = a . getKey ( ) , a . fireEvent ( "EVENT_FOCUS" ) } } , { eventName : "EVENT_BLUR" , action : function ( ) { a . fireEvent ( "EVENT_BLUR" ) } } , { eventName : "EVENT_STOP" , action : function ( ) { a . fireEvent ( "EVENT_STOP" ) } } , { eventName : "EVENT_VALID" , action : function ( ) { a . fireEvent ( "EVENT_VALID" ) } } , { eventName : "EVENT_ERROR" , action : function ( ) { a . fireEvent ( "EVENT_ERROR" ) } } , { eventName : "EVENT_CONFIRM" , action : 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 . match ( /\d+/g ) ; a . storeValue = { hour : 0 | c [ 0 ] , minute : 0 | c [ 1 ] , second : 0 | c [ 2 ] } } a . fireEvent ( "EVENT_CONFIRM" ) } } , { eventName : "EVENT_START" , action : function ( ) { a . fireEvent ( "EVENT_START" ) } } , { eventName : "EVENT_CHANGE" , action : function ( ) { a . fireEvent ( "EVENT_CHANGE" ) } } ] } , left : 0 , right : 0 , top : 0 , bottom : 0 } , { el : { type : "bi.text" , invisible : b . allowEdit , cls : "show-text" , title : BI . bind ( this . _getTitle , this ) , hgap : 4 } , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } } , _dateCheck : function ( a ) { var b = this . _const ; return BI . any ( b . FORMAT _ARRAY , function ( c , d ) { return BI . print ( BI . parseDateTime ( b . DEFAULT _DATE _STRING + " " + a , b . COMPLETE _COMPARE _FORMAT ) , d ) === a } ) } , _getTitle : function ( ) { var a = this . storeValue || { } , b = BI . getDate ( ) ; return BI . print ( BI . getDate ( b . getFullYear ( ) , 0 , 1 , a . hour , a . minute , a . second ) , this . _getFormatString ( ) ) } , _getFormatString : function ( ) { return this . options . format || this . _const . COMPARE _FORMAT } , _formatValue : function ( a ) { var b
var a = this , b = this . options ; this . storeValue = b . value , this . storeTriggerValue = "" , this . trigger = BI . createWidget ( { type : "bi.dynamic_year_month_trigger" , min : b . minDate , max : b . maxDate , height : b . height , value : b . value || "" } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _KEY _DOWN , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _START , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _STOP , function ( ) { a . combo . showView ( ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _ERROR , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _ERROR ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _VALID , function ( ) { a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _VALID ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _CONFIRM , function ( ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI . isNotEmptyString ( c ) && ! BI . isEqual ( c , b ) && ( a . storeValue = a . trigger . getValue ( ) , a . setValue ( a . trigger . getValue ( ) ) ) , a . _checkDynamicValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _CONFIRM ) } ) , this . trigger . on ( BI . DynamicYearMonthTrigger . EVENT _FOCUS , function ( ) { a . storeTriggerValue = a . trigger . getKey ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _FOCUS ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , container : b . container , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 100 , stopPropagation : ! 1 , el : { type : "bi.dynamic_year_month_popup" , ref : function ( ) { a . popup = this } , listeners : [ { eventName : BI . DynamicYearMonthPopup . EVENT _CHANGE , action : function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearMonthPopup . BUTTON _CLEAR _EVENT _CHANGE , action : function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearMonthPopup . BUTTON _lABEL _EVENT _CHANGE , action : function ( ) { var b = BI . getDate ( ) ; a . setValue ( { type : BI . DynamicYearMonthCombo . Static , value : { year : b . getFullYear ( ) , month : b . getMonth ( ) + 1 } } ) , a . combo . hideView ( ) , a . fireEvent ( BI . DynamicDateCombo . EVENT _CONFIRM ) } } , { eventName : BI . DynamicYearMonthPopup . 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 . minDate , max : b . maxDate } , value : b . value || "" } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . popup . setValue ( a . storeValue ) , a . fireEvent ( BI . DynamicYearMonthCombo . EVENT _BEFORE _POPUPVIEW ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , ref : function ( ) { a . comboWrapper = this } , items : [ { el : { type : "bi.icon_button" , cls : "bi-trigger-icon-button date-change-h-font" , width : 24 , height : 24 , ref : function ( ) { a . changeIcon = this } } , width : 24 } , this . combo ] } ) , this . _checkDynamicValue ( b . value ) } , _checkDynamicValue : function ( a ) { var b = null ; switch ( BI . isNotNull ( a ) && ( b = a . type ) , b ) { case BI . DynamicYearMonthCombo . Dynamic : this . changeIcon . setVisible ( ! 0 ) , this . comboWrapper . attr ( "items" ) [ 0 ] . width = 24 , this . comboWrapper . resize ( ) ; break ; default : this . comboWrapper . attr ( "items" ) [ 0 ] . width = 0 , this . comboWrapper . resize ( ) , this . changeIcon . setVisible ( ! 1 ) } } , hideView : function ( ) { this . combo . hideView ( ) } , setValue : function ( a ) { this . storeValue = a , this . trigger . setValue ( a ) , this . _checkDynamicValue ( a ) } , getValue : function ( ) { return this . storeValue } , getKey : function ( ) { return this . trigger . getKey ( ) } , isValid : function ( ) { return this . trigger . isValid ( ) } } ) , BI . DynamicYearMonthCombo . EVENT _ERROR = "EVENT_ERROR" , BI . DynamicYearMonthCombo . EVENT _VALID = "EVENT_VALID" , BI . DynamicYearMonthCombo . EVENT _FOCUS = "EVENT_FOCUS" , BI . DynamicYearMonthCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . DynamicYearMonthCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.dynamic_year_month_combo" , BI . DynamicYearMonthCombo ) , BI . extend ( BI . DynamicYearMonthCombo , { Static : 1 , Dynamic : 2 } ) , BI . DynamicYearMonthPopup = BI . inherit ( BI . Widget , { constants : { tabHeight : 30 , buttonHeight : 24 } , props : { baseCls : "bi-year-month-popup" , behaviors : { } , min : "1900-01-01" , max : "2099-12-31" , width : 180 , height : 240 } , render : function ( ) { var a = this , b = ( this . options , this . constants ) ; return this . storeValue
BI . DynamicYearQuarterTrigger . EVENT _STOP = "EVENT_STOP" , BI . DynamicYearQuarterTrigger . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . shortcut ( "bi.dynamic_year_quarter_trigger" , BI . DynamicYearQuarterTrigger ) , BI . AbstractAllValueChooser = BI . inherit ( BI . Widget , { _const : { perPage : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AbstractAllValueChooser . superclass . _defaultConfig . apply ( this , arguments ) , { width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _valueFormatter : function ( a ) { var b = a ; return BI . isNotNull ( this . items ) && BI . some ( this . items , function ( c , d ) { if ( d . value === a || d . value + "" === a ) return b = d . text , ! 0 } ) , b } , _itemsCreator : function ( a , b ) { function c ( c ) { var d = ( a . keywords || [ ] ) . slice ( ) ; a . keyword && d . push ( a . keyword ) ; var e = c ; if ( BI . isNotEmptyArray ( d ) && ( e = [ ] , BI . each ( d , function ( a , b ) { var d = BI . Func . getSearchResult ( c , b ) ; e = e . concat ( d . match ) . concat ( d . find ) } ) , e = BI . uniq ( e ) ) , a . selectedValues ) { var f = BI . makeObject ( a . selectedValues , ! 0 ) ; e = BI . filter ( e , function ( a , b ) { return ! f [ b . value ] } ) } return a . type === BI . MultiSelectCombo . REQ _GET _ALL _DATA ? void b ( { items : e } ) : a . type === BI . MultiSelectCombo . REQ _GET _DATA _LENGTH ? void b ( { count : e . length } ) : void b ( { items : e , hasNext : ! 1 } ) } var d = this , e = this . options ; e . cache && this . items ? c ( this . items ) : e . itemsCreator ( { } , function ( a ) { d . items = a , c ( a ) } ) } } ) , BI . AllValueChooserCombo = BI . inherit ( BI . AbstractAllValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . AllValueChooserCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-all-value-chooser-combo" , width : 200 , height : 24 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . AllValueChooserCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNotNull ( b . items ) && ( this . items = b . items ) , this . combo = BI . createWidget ( { type : "bi.multi_select_combo" , text : b . text , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) , valueFormatter : BI . bind ( this . _valueFormatter , this ) , width : b . width , height : b . height , value : { type : BI . Selection . Multi , value : b . value || [ ] } } ) , this . combo . on ( BI . MultiSelectCombo . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . AllValueChooserCombo . EVENT _CONFIRM ) } ) } , setValue : function ( a ) { this . combo . setValue ( { type : BI . Selection . Multi , value : a || [ ] } ) } , getValue : function ( ) { var a = this . combo . getValue ( ) || { } ; return a . type === BI . Selection . All ? a . assist : a . value || [ ] } , populate : function ( a ) { this . items = a , this . combo . populate . apply ( this , arguments ) } } ) , BI . AllValueChooserCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.all_value_chooser_combo" , BI . AllValueChooserCombo ) , BI . AllValueChooserPane = BI . inherit ( BI . AbstractAllValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . AllValueChooserPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-all-value-chooser-pane" , width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . AllValueChooserPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNotNull ( b . items ) && ( this . items = b . items ) , this . list = BI . createWidget ( { type : "bi.multi_select_list" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) , valueFormatter : BI . bind ( this . _valueFormatter , this ) , width : b . width , height : b . height } ) , this . list . on ( BI . MultiSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . AllValueChooserPane . EVENT _CHANGE ) } ) } , setValue : function ( a ) { this . list . setValue ( { type : BI . Selection . Multi , value : a || [ ] } ) } , getValue : function ( ) { var a = this . list . getValue ( ) || { } ; return a . type === BI . Selection . All ? a . assist : a . value || [ ] } , populate : function ( a ) { this . items = a , this . list . populate . apply ( this . list , arguments ) } } ) , BI . AllValueChooserPane . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.all_value_chooser_pane" , BI . AllValueChooserPane ) , BI . AllValueMultiTextValueCombo = BI . inherit ( BI . Widget , { props : { baseCls : "bi-all-value-multi-text-value-combo" , width : 200 , height : 24 , items : [ ] } , render : function ( ) { var a = this , b = this . options , c = this . _digestValue ( b . value ) ; return { type : "bi.search_multi_text_value_combo" , text : b . text , height : b . height , items : b . items , value : c , numOfPage : 100 , valueFormatter : b . valueFormatter , warningTitle : b . warningTitle , listeners : [ { eventName : BI . SearchMultiTextValueCombo . EVENT _CONFIRM , action : function ( ) { a . fireEvent ( BI . AllValueMultiTextValueCombo . EVENT _CONFIRM ) } } ] , ref : function ( ) {
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 ) ; try { var a = b . apply ( this , arguments ) } catch ( e ) { console . error ( e ) } return this . store && d ( ) , a } ) } ) ; var r = function ( ) { BI . nextTick ( function ( ) { Fix && Fix . refreshAll && Fix . refreshAll ( ) } ) } ; if ( $ ( document ) . ajaxComplete ( r ) , BI . history ) { var s = BI . history . navigate ; BI . history . navigate = function ( ) { s . apply ( this , arguments ) , BI . defer ( function ( ) { r ( ) } , 200 ) } ; var t = window . history . back ; window . history . back = function ( ) { t . apply ( this , arguments ) , BI . defer ( function ( ) { r ( ) } , 200 ) } } if ( BI . Router ) { var u = BI . Router . prototype . execute ; BI . Router . prototype . execute = function ( ) { u . apply ( this , arguments ) , r ( ) } } _ . 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 ( a ) } , BI . deepClone = function ( a ) { return Fix . toJSON ( a ) } , Fix . set = function ( a , b , c ) { try { a && ( a [ b ] = c ) } catch ( d ) { } finally { return _ . cloneDeep ( a ) } } , Fix . del = function ( a , b ) { try { delete a [ b ] } catch ( c ) { } finally { return _ . cloneDeep ( a ) } } , BI . watch = Fix . watch } ( ) , function ( ) { var a = { on : function ( a , b , d ) { if ( ! c ( this , "on" , a , [ b , d ] ) || ! b ) return this ; this . _events || ( this . _events = { } ) ; var e = this . _events [ a ] || ( this . _events [ a ] = [ ] ) ; return e . push ( { callback : b , context : d , ctx : d || this } ) , this } , once : function ( a , b , d ) { if ( ! c ( this , "once" , a , [ b , d ] ) || ! b ) return this ; var e = this , f = _ . once ( function ( ) { e . off ( a , f ) , b . apply ( this , arguments ) } ) ; return f . _callback = b , this . on ( a , f , d ) } , off : function ( a , b , d ) { if ( ! this . _events || ! c ( this , "off" , a , [ b , d ] ) ) return this ; if ( ! a && ! b && ! d ) return this . _events = void 0 , this ; for ( var e = a ? [ a ] : _ . keys ( this . _events ) , f = 0 , g = e . length ; f < g ; f ++ ) { a = e [ f ] ; var h = this . _events [ a ] ; if ( h ) if ( b || d ) { for ( var i = [ ] , j = 0 , k = h . length ; j < k ; j ++ ) { var l = h [ j ] ; ( b && b !== l . callback && b !== l . callback . _callback || d && d !== l . context ) && i . push ( l ) } i . length ? this . _events [ a ] = i : delete this . _events [ a ] } else delete this . _events [ a ] } return this } , un : function ( ) { this . off . apply ( this , arguments ) } , trigger : function ( a ) { if ( ! this . _events ) return this ; var b = slice . call ( arguments , 1 ) ; if ( ! c ( this , "trigger" , a , b ) ) return this ; var e = this . _events [ a ] , f = this . _events . all ; return e && d ( e , b ) , f && d ( f , arguments ) , this } , fireEvent : function ( ) { this . trigger . apply ( this , arguments ) } , listenTo : function ( a , b , c ) { var d = this . _listeningTo || ( this . _listeningTo = { } ) , e = a . _listenId || ( a . _listenId = _ . uniqueId ( "l" ) ) ; return d [ e ] = a , c || "object" != typeof b || ( c = this ) , a . on ( b , c , this ) , this } , listenToOnce : function ( a , c , d ) { if ( "object" == typeof c ) { for ( var e in c ) this . listenToOnce ( a , e , c [ e ] ) ; return this } if ( b . test ( c ) ) { for ( var f = c . split ( b ) , g = 0 , h = f . length ; g < h ; g ++ ) this . listenToOnce ( a , f [ g ] , d ) ; return this } if ( ! d ) return this ; var i = _ . once ( function ( ) { this . stopListening ( a , c , i ) , d . apply ( this , arguments ) } ) ; return i . _callback = d , this . listenTo ( a , c , i ) } , stopListening : function ( a , b , c ) { var d = this . _listeningTo ; if ( ! d ) return