/*! fineui */
function accAdd ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } if ( f = Math . abs ( c - d ) , e = Math . pow ( 10 , Math . max ( c , d ) ) , f > 0 ) { var h = Math . pow ( 10 , f ) ; c > d ? ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) * h ) : ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) * h , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ) } else a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ; return ( a + b ) / e } function accSub ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } return e = Math . pow ( 10 , Math . max ( c , d ) ) , f = c >= d ? c : d , ( ( a * e - b * e ) / e ) . toFixed ( f ) } function accMul ( a , b ) { var c = 0 , d = a . toString ( ) , e = b . toString ( ) ; try { c += d . split ( "." ) [ 1 ] . length } catch ( f ) { } try { c += e . split ( "." ) [ 1 ] . length } catch ( f ) { } return Number ( d . replace ( "." , "" ) ) * Number ( e . replace ( "." , "" ) ) / Math . pow ( 10 , c ) } function accDiv ( arg1 , arg2 ) { var t1 = 0 , t2 = 0 , r1 , r2 ; try { t1 = arg1 . toString ( ) . split ( "." ) [ 1 ] . length } catch ( e ) { } try { t2 = arg2 . toString ( ) . split ( "." ) [ 1 ] . length } catch ( e ) { } with ( Math ) return r1 = Number ( arg1 . toString ( ) . replace ( "." , "" ) ) , r2 = Number ( arg2 . toString ( ) . replace ( "." , "" ) ) , t2 > t1 ? r1 / r2 * pow ( 10 , t2 - t1 ) : r1 / r2 / pow ( 10 , t1 - t2 ) } ! function ( 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 . support . noCloneEvent &&
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 ) !== ! 1 || ( a . addEventListener ? a . addEventListener ( o , l , ! 1 ) : a . att
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 ) ) } ) : this . each ( function ( ) { var b = ia ( this ) , c = b . contents ( ) ; c . leng
for ( var c = a . length , d = 0 ; c -- ; ) a [ c ] === b && ++ d ; return d } function w ( a , b ) { return null == a ? Nd : a [ b ] } function x ( a ) { return Hf . test ( a ) } function y ( a ) { for ( var b , c = [ ] ; ! ( b = a . next ( ) ) . done ; ) c . push ( b . value ) ; return c } function z ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a , d ) { c [ ++ b ] = [ d , a ] } ) , c } function A ( a , b ) { return function ( c ) { return a ( b ( c ) ) } } function B ( a , b ) { for ( var c = - 1 , d = a . length , e = 0 , f = [ ] ; ++ c < d ; ) { var g = a [ c ] ; g !== b && g !== Td || ( a [ c ] = Td , f [ e ++ ] = c ) } return f } function C ( a ) { var b = - 1 , c = Array ( a . size ) ; return a . forEach ( function ( a ) { c [ ++ b ] = a } ) , c } function D ( a , b , c ) { for ( var d = c - 1 , e = a . length ; ++ d < e ; ) if ( a [ d ] === b ) return d ; return - 1 } function E ( a ) { return x ( a ) ? G ( a ) : Zf ( a ) } function F ( a ) { return x ( a ) ? H ( a ) : j ( a ) } function G ( a ) { for ( var b = Gf . lastIndex = 0 ; Gf . test ( a ) ; ) ++ b ; return b } function H ( a ) { return a . match ( Gf ) || [ ] } function I ( a ) { if ( fd ( a ) && ! kh ( a ) && ! ( a instanceof L ) ) { if ( a instanceof K ) return a ; if ( eg . call ( a , "__wrapped__" ) ) return wc ( a ) } return new K ( a ) } function J ( ) { } function K ( a , b ) { this . _ _wrapped _ _ = a , this . _ _actions _ _ = [ ] , this . _ _chain _ _ = ! ! b , this . _ _index _ _ = 0 , this . _ _values _ _ = Nd } function L ( a ) { this . _ _wrapped _ _ = a , this . _ _actions _ _ = [ ] , this . _ _dir _ _ = 1 , this . _ _filtered _ _ = ! 1 , this . _ _iteratees _ _ = [ ] , this . _ _takeCount _ _ = qe , this . _ _views _ _ = [ ] } function M ( ) { var a = new L ( this . _ _wrapped _ _ ) ; return a . _ _actions _ _ = ub ( this . _ _actions _ _ ) , a . _ _dir _ _ = this . _ _dir _ _ , a . _ _filtered _ _ = this . _ _filtered _ _ , a . _ _iteratees _ _ = ub ( this . _ _iteratees _ _ ) , a . _ _takeCount _ _ = this . _ _takeCount _ _ , a . _ _views _ _ = ub ( this . _ _views _ _ ) , a } function N ( ) { if ( this . _ _filtered _ _ ) { var a = new L ( this ) ; a . _ _dir _ _ = - 1 , a . _ _filtered _ _ = ! 0 } else a = this . clone ( ) , a . _ _dir _ _ *= - 1 ; return a } function O ( ) { var a = this . _ _wrapped _ _ . value ( ) , b = this . _ _dir _ _ , c = kh ( a ) , d = b < 0 , e = c ? a . length : 0 , f = Vb ( 0 , e , this . _ _views _ _ ) , g = f . start , h = f . end , i = h - g , j = d ? h : g - 1 , k = this . _ _iteratees _ _ , l = k . length , m = 0 , n = Bg ( i , this . _ _takeCount _ _ ) ; if ( ! c || ! d && e == i && n == i ) return ib ( a , this . _ _actions _ _ ) ; var o = [ ] ; a : for ( ; i -- && m < n ; ) { j += b ; for ( var p = - 1 , q = a [ j ] ; ++ p < l ; ) { var r = k [ p ] , s = r . iteratee , t = r . type , u = s ( q ) ; if ( t == ke ) q = u ; else if ( ! u ) { if ( t == je ) continue a ; break a } } o [ m ++ ] = q } return o } function P ( a ) { var b = - 1 , c = null == a ? 0 : a . length ; for ( this . clear ( ) ; ++ b < c ; ) { var d = a [ b ] ; this . set ( d [ 0 ] , d [ 1 ] ) } } function Q ( ) { this . _ _data _ _ = Ig ? Ig ( null ) : { } , this . size = 0 } function R ( a ) { var b = this . has ( a ) && delete this . _ _data _ _ [ a ] ; return this . size -= b ? 1 : 0 , b } function S ( a ) { var b = this . _ _data _ _ ; if ( Ig ) { var c = b [ a ] ; return c === Rd ? Nd : c } return eg . call ( b , a ) ? b [ a ] : Nd } function T ( a ) { var b = this . _ _data _ _ ; return Ig ? b [ a ] !== Nd : eg . call ( b , a ) } function U ( a , b ) { var c = this . _ _data _ _ ; return this . size += this . has ( a ) ? 0 : 1 , c [ a ] = Ig && b === Nd ? Rd : b , this } function V ( a ) { var b = - 1 , c = null == a ? 0 : a . length ; for ( this . clear ( ) ; ++ b < c ; ) { var d = a [ b ] ; this . set ( d [ 0 ] , d [ 1 ] ) } } function W ( ) { this . _ _data _ _ = [ ] , this . size = 0 } function X ( a ) { var b = this . _ _data _ _ , c = qa ( b , a ) ; if ( c < 0 ) return ! 1 ; var d = b . length - 1 ; return c == d ? b . pop ( ) : rg . call ( b , c , 1 ) , -- this . size , ! 0 } function Y ( a ) { var b = this . _ _data _ _ , c = qa ( b , a ) ; return c < 0 ? Nd : b [ c ] [ 1 ] } function Z ( a ) { return qa ( this . _ _data _ _ , a ) > - 1 } function $ ( a , b ) { var c = this . _ _data _ _ , d = qa ( c , a ) ; return d < 0 ? ( ++ this . size , c . push ( [ a , b ] ) ) : c [ d ] [ 1 ] = b , this } function _ ( a ) { var b = - 1 , c = null == a ? 0 : a . length ; for ( this . clear ( ) ; ++ b < c ; ) { var d = a [ b ] ; this . set ( d [ 0 ] , d [ 1 ] ) } } function aa ( ) { this . size = 0 , this . _ _data _ _ = { hash : new P , map : new ( Eg || V ) , string : new P } } function ba ( a ) { var b = Rb ( this , a ) [ "delete" ] ( a ) ; return this . size -= b ? 1 : 0 , b } function ca ( a ) { return Rb ( this , a ) . get ( a ) } function da ( a ) { return Rb ( this , a ) . has ( a ) } function ea ( a , b ) { var c = Rb ( this , a ) , d = c . size ; return c . set ( a , b ) , this . size += c . size == d ? 0 : 1 , this } function fa ( a ) { var b = - 1 , c = null == a ? 0 : a . length ; for ( this . _ _data _ _ = new _ ; ++ b < c ; ) this . add ( a [ b ] ) } function ga ( a ) { return this . _ _data _ _ . set ( a , Rd ) , this } function ha ( a ) { return this . _ _data _ _ . has ( a ) } function ia ( a ) { var b = this . _ _data _ _ = new V ( a ) ; this . size = b . size } function ja ( ) { this . _ _data _ _ = new V , this . size = 0 } function ka ( a ) { var b = this . _ _data _ _ , c = b [ "delete" ] ( a ) ; return this . size = b . size , c } function la ( a ) { return this . _ _data _ _ . get ( a ) } function ma ( a ) { return this . _ _data _ _ . has ( a ) } function na ( a , b ) { var c = this . _ _data _ _ ; if ( c instanceof V ) { var d = c . _ _data _ _ ; if ( ! Eg || d . length < Pd - 1 ) return d . push ( [ a , b ] ) , this . size = ++ c . size , this ; c = this . _ _data _ _ = new _ ( d ) } return c . set ( a , b ) , this . size = c . size , this } function oa ( a , b ) { var c = kh ( a ) , d =
return vg ( a , "toString" , { configurable : ! 0 , enumerable : ! 1 , value : Ad ( b ) , writable : ! 0 } ) } : Bd , Yg = Jg ? function ( a ) { return Jg . get ( a ) } : Gd , Zg = wg ? function ( a ) { return null == a ? [ ] : ( a = Object ( a ) , d ( wg ( a ) , function ( b ) { return qg . call ( a , b ) } ) ) } : Id , $g = wg ? function ( a ) { for ( var b = [ ] ; a ; ) g ( b , Zg ( a ) ) , a = og ( a ) ; return b } : Id , _g = Fa ; ( Dg && _g ( new Dg ( new ArrayBuffer ( 1 ) ) ) != Ne || Eg && _g ( new Eg ) != Ae || Fg && _g ( Fg . resolve ( ) ) != Ee || Gg && _g ( new Gg ) != He || Hg && _g ( new Hg ) != Le ) && ( _g = function ( a ) { var b = Fa ( a ) , c = b == De ? a . constructor : Nd , d = c ? uc ( c ) : "" ; if ( d ) switch ( d ) { case Lg : return Ne ; case Mg : return Ae ; case Ng : return Ee ; case Og : return He ; case Pg : return Le } return b } ) ; var ah = sc ( Wg ) , bh = sc ( Xg ) , ch = kc ( function ( a ) { var b = [ ] ; return 46 === a . charCodeAt ( 0 ) && b . push ( "" ) , a . replace ( _e , function ( a , c , d , e ) { b . push ( d ? e . replace ( ff , "$1" ) : c || a ) } ) , b } ) , dh = ( Mb ( function ( a ) { var b = a . length , c = b ? a [ 0 ] : 0 , d = this . _ _wrapped _ _ , e = function ( b ) { return ua ( b , a ) } ; return ! ( b > 1 || this . _ _actions _ _ . length ) && d instanceof L && bc ( c ) ? ( d = d . slice ( c , + c + ( b ? 1 : 0 ) ) , d . _ _actions _ _ . push ( { func : Ic , args : [ e ] , thisArg : Nd } ) , new K ( d , this . _ _chain _ _ ) . thru ( function ( a ) { return b && ! a . length && a . push ( Nd ) , a } ) ) : this . thru ( e ) } ) , Eb ( zc ) ) , eh = db ( function ( a , b ) { if ( null == a ) return [ ] ; var c = b . length ; return c > 1 && cc ( a , b [ 0 ] , b [ 1 ] ) ? b = [ ] : c > 2 && cc ( b [ 0 ] , b [ 1 ] , b [ 2 ] ) && ( b = [ b [ 0 ] ] ) , _a ( a , Aa ( b , 1 ) , [ ] ) } ) , fh = function ( ) { return Of . Date . now ( ) } , gh = db ( function ( a , b , c ) { var d = Zd ; if ( c . length ) { var e = B ( c , Qb ( gh ) ) ; d |= ce } return Ib ( a , d , b , c , e ) } ) , hh = db ( function ( a , b ) { return wa ( a , 1 , b ) } ) , ih = db ( function ( a , b , c ) { return wa ( a , pd ( b ) || 0 , c ) } ) ; Tc . Cache = _ ; var jh = Ka ( function ( ) { return arguments } ( ) ) ? Ka : function ( a ) { return fd ( a ) && eg . call ( a , "callee" ) && ! qg . call ( a , "callee" ) } , kh = Array . isArray , lh = xg || Jd , mh = Uf ? s ( Uf ) : La , nh = Vf ? s ( Vf ) : Oa , oh = Wf ? s ( Wf ) : Ra , ph = Xf ? s ( Xf ) : Sa , qh = Yf ? s ( Yf ) : Ta , rh = yb ( function ( a , b ) { vb ( b , wd ( b ) , a ) } ) , sh = db ( function ( a , b ) { a = Object ( a ) ; var c = - 1 , d = b . length , e = d > 2 ? b [ 2 ] : Nd ; for ( e && cc ( b [ 0 ] , b [ 1 ] , e ) && ( d = 1 ) ; ++ c < d ; ) for ( var f = b [ c ] , g = wd ( f ) , h = - 1 , i = g . length ; ++ h < i ; ) { var j = g [ h ] , k = a [ j ] ; ( k === Nd || Yc ( k , bg [ j ] ) && ! eg . call ( a , j ) ) && ( a [ j ] = f [ j ] ) } return a } ) , th = Mb ( function ( a , b ) { return null == a ? { } : ab ( a , b ) } ) ; I . assignIn = rh , I . before = Rc , I . bind = gh , I . chain = Gc , I . compact = xc , I . concat = yc , I . create = rd , I . debounce = Sc , I . defaults = sh , I . defer = hh , I . delay = ih , I . filter = Lc , I . flatten = Ac , I . flattenDeep = Bc , I . iteratee = Cd , I . keys = vd , I . map = Nc , I . matches = Dd , I . mixin = Ed , I . negate = Uc , I . once = Vc , I . pick = th , I . slice = Fc , I . sortBy = eh , I . tap = Hc , I . throttle = Wc , I . thru = Ic , I . toArray = md , I . values = yd , I . extend = rh , Ed ( I , I ) , I . clone = Xc , I . escape = zd , I . every = Kc , I . find = dh , I . forEach = Mc , I . has = td , I . head = Cc , I . identity = Bd , I . indexOf = Dc , I . isArguments = jh , I . isArray = kh , I . isBoolean = $c , I . isDate = mh , I . isEmpty = _c , I . isEqual = ad , I . isFinite = bd , I . isFunction = cd , I . isNaN = gd , I . isNull = hd , I . isNumber = id , I . isObject = ed , I . isRegExp = oh , I . isString = jd , I . isUndefined = ld , I . last = Ec , I . max = Ld , I . min = Md , I . noConflict = Fd , I . noop = Gd , I . reduce = Oc , I . result = xd , I . size = Pc , I . some = Qc , I . uniqueId = Kd , I . each = Mc , I . first = Cc , Ed ( I , function ( ) { var a = { } ; return Ba ( I , function ( b , c ) { eg . call ( I . prototype , c ) || ( a [ c ] = b ) } ) , a } ( ) , { chain : ! 1 } ) , I . VERSION = Od , b ( [ "drop" , "take" ] , function ( a , b ) { L . prototype [ a ] = function ( c ) { c = c === Nd ? 1 : Ag ( od ( c ) , 0 ) ; var d = this . _ _filtered _ _ && ! b ? new L ( this ) : this . clone ( ) ; return d . _ _filtered _ _ ? d . _ _takeCount _ _ = Bg ( c , d . _ _takeCount _ _ ) : d . _ _views _ _ . push ( { size : Bg ( c , qe ) , type : a + ( d . _ _dir _ _ < 0 ? "Right" : "" ) } ) , d } , L . prototype [ a + "Right" ] = function ( b ) { return this . reverse ( ) [ a ] ( b ) . reverse ( ) } } ) , b ( [ "filter" , "map" , "takeWhile" ] , function ( a , b ) { var c = b + 1 , d = c == je || c == le ; L . prototype [ a ] = function ( a ) { var b = this . clone ( ) ; return b . _ _iteratees _ _ . push ( { iteratee : getIteratee ( a , 3 ) , type : c } ) , b . _ _filtered _ _ = b . _ _filtered _ _ || d , b } } ) , b ( [ "head" , "last" ] , function ( a , b ) { var c = "take" + ( b ? "Right" : "" ) ; L . prototype [ a ] = function ( ) { return this [ c ] ( 1 ) . value ( ) [ 0 ] } } ) , b ( [ "initial" , "tail" ] , function ( a , b ) { var c = "drop" + ( b ? "" : "Right" ) ; L . prototype [ a ] = function ( ) { return this . _ _filtered _ _ ? new L ( this ) : this [ c ] ( 1 ) } } ) , L . prototype . compact = function ( ) { return this . filter ( Bd ) } , L . prototype . find = function ( a ) { return this . filter ( a ) . head ( ) } , L . prototype . findLast = function ( a ) { return this . reverse ( ) . find ( a ) } , L . prototype . invokeMap = db ( function ( a , b ) { return "function" == typeof a ? new L ( this ) : this . map ( function ( c ) { return Ja ( c , a , b ) } ) } ) , L . prototype . reject = function ( a ) { return this . filter ( Uc ( getIterate
var c = localStorage . key ( b ) ; if ( c ) { var d = BI . Cache . _getKeyPrefix ( ) ; 0 === c . indexOf ( d ) && ( a [ a . length ] = c . substring ( d . length ) ) } } return a } , addCookie : function ( a , b , c , d ) { var e = a + "=" + escape ( b ) ; if ( d && d > 0 ) { var f = new Date ; f . setTime ( f . getTime ( ) + 3600 * d * 1e3 ) , e = e + "; expires=" + f . toGMTString ( ) } c && ( e = e + "; path=" + c ) , document . cookie = e } , getCookie : function ( a ) { var b , c = new RegExp ( "(^| )" + a + "=([^;]*)(;|$)" ) ; return ( b = document . cookie . match ( c ) ) ? unescape ( b [ 2 ] ) : null } , deleteCookie : function ( a , b ) { var c = new Date ; c . setTime ( c . getTime ( ) - 1e4 ) ; var d = a + "=v; expires=" + c . toGMTString ( ) ; b && ( d = d + "; path=" + b ) , document . cookie = d } } , BI . CellSizeAndPositionManager = function ( a , b , c ) { this . _cellSizeGetter = b , this . _cellCount = a , this . _estimatedCellSize = c , this . _cellSizeAndPositionData = { } , this . _lastMeasuredIndex = - 1 } , BI . CellSizeAndPositionManager . prototype = { constructor : BI . CellSizeAndPositionManager , configure : function ( a , b ) { this . _cellCount = a , this . _estimatedCellSize = b } , getCellCount : function ( ) { return this . _cellCount } , getEstimatedCellSize : function ( ) { return this . _estimatedCellSize } , getLastMeasuredIndex : function ( ) { return this . _lastMeasuredIndex } , getSizeAndPositionOfCell : function ( a ) { if ( ! ( a < 0 || a >= this . _cellCount ) ) { if ( a > this . _lastMeasuredIndex ) { for ( var b = this . getSizeAndPositionOfLastMeasuredCell ( ) , c = b . offset + b . size , d = this . _lastMeasuredIndex + 1 ; d <= a ; d ++ ) { var e = this . _cellSizeGetter ( d ) ; null == e || isNaN ( e ) || ( this . _cellSizeAndPositionData [ d ] = { offset : c , size : e } , c += e ) } this . _lastMeasuredIndex = a } return this . _cellSizeAndPositionData [ a ] } } , getSizeAndPositionOfLastMeasuredCell : function ( ) { return this . _lastMeasuredIndex >= 0 ? this . _cellSizeAndPositionData [ this . _lastMeasuredIndex ] : { offset : 0 , size : 0 } } , getTotalSize : function ( ) { var a = this . getSizeAndPositionOfLastMeasuredCell ( ) ; return a . offset + a . size + ( this . _cellCount - this . _lastMeasuredIndex - 1 ) * this . _estimatedCellSize } , getUpdatedOffsetForIndex : function ( a , b , c , d ) { var e , f = this . getSizeAndPositionOfCell ( d ) , g = f . offset , h = g - b + f . size ; switch ( a ) { case "start" : e = g ; break ; case "end" : e = h ; break ; case "center" : e = g - ( b - f . size ) / 2 ; break ; default : e = Math . max ( h , Math . min ( g , c ) ) } var i = this . getTotalSize ( ) ; return Math . max ( 0 , Math . min ( i - b , e ) ) } , getVisibleCellRange : function ( a , b ) { var c = this . getTotalSize ( ) ; if ( 0 === c ) return { } ; var d = b + a , e = this . _findNearestCell ( b ) , f = this . getSizeAndPositionOfCell ( e ) ; b = f . offset + f . size ; for ( var g = e ; b < d && g < this . _cellCount - 1 ; ) g ++ , b += this . getSizeAndPositionOfCell ( g ) . size ; return { start : e , stop : g } } , resetCell : function ( a ) { this . _lastMeasuredIndex = Math . min ( this . _lastMeasuredIndex , a - 1 ) } , _binarySearch : function ( a , b , c ) { for ( var d , e ; b <= a ; ) { if ( d = b + Math . floor ( ( a - b ) / 2 ) , e = this . getSizeAndPositionOfCell ( d ) . offset , e === c ) return d ; e < c ? b = d + 1 : e > c && ( a = d - 1 ) } if ( b > 0 ) return b - 1 } , _exponentialSearch : function ( a , b ) { for ( var c = 1 ; a < this . _cellCount && this . getSizeAndPositionOfCell ( a ) . offset < b ; ) a += c , c *= 2 ; return this . _binarySearch ( Math . min ( a , this . _cellCount - 1 ) , Math . floor ( a / 2 ) , b ) } , _findNearestCell : function ( a ) { if ( ! isNaN ( a ) ) { a = Math . max ( 0 , a ) ; var b = this . getSizeAndPositionOfLastMeasuredCell ( ) , c = Math . max ( 0 , this . _lastMeasuredIndex ) ; return b . offset >= a ? this . _binarySearch ( c , 0 , a ) : this . _exponentialSearch ( c , a ) } } } , BI . ScalingCellSizeAndPositionManager = function ( a , b , c , d ) { this . _cellSizeAndPositionManager = new BI . CellSizeAndPositionManager ( a , b , c ) , this . _maxScrollSize = d || 1e7 } , BI . ScalingCellSizeAndPositionManager . prototype = { constructor : BI . ScalingCellSizeAndPositionManager , configure : function ( ) { this . _cellSizeAndPositionManager . configure . apply ( this . _cellSizeAndPositionManager , arguments ) } , getCellCount : function ( ) { return this . _cellSizeAndPositionManager . getCellCount ( ) } , getEstimatedCellSize : function ( ) { return this . _cellSizeAndPositionManager . getEstimatedCellSize ( ) } , getLastMeasuredIndex : function ( ) { return this . _cellSizeAndPositionManager . getLastMeasuredIndex ( ) } , getOffsetAdjustment : function ( a , b ) { var c = this . _cellSizeAndPositionManager . getTotalSize ( ) , d = this . getTotalSize ( ) , e = this . _getOffsetPercentage ( a , b , d ) ; return Math . round ( e * ( d - c ) ) } , getSizeAndPositionOfCell : function ( a ) { return this . _cellSizeAndPositionManager . getSizeAndPositionOfCell ( a ) } , getSizeAndPositionOfLastMeasuredCell : function ( ) { return this . _cellSizeAndPositionManager . getSizeAndPositionOfLastMeasuredCell ( ) } , getTotalSi
o = m [ q ] , j = o + "Animation" , k = "-" + o . toLowerCase ( ) + "-" , l = n [ q ] , i = ! 0 ; break } var r = "resizeanim" , s = "@" + k + "keyframes " + r + " { from { opacity: 0; } to { opacity: 0; } } " , t = k + "animation: 1ms " + r + "; " } var u = function ( ) { if ( ! c ) { var a = ( s ? s : "" ) + ".resize-triggers { " + ( t ? t : "" ) + 'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }' , b = document . head || document . getElementsByTagName ( "head" ) [ 0 ] , d = document . createElement ( "style" ) ; d . type = "text/css" , d . styleSheet ? d . styleSheet . cssText = a : d . appendChild ( document . createTextNode ( a ) ) , b . appendChild ( d ) , c = ! 0 } } , v = function ( a , c ) { b ? ( a . _ _resizeTriggers _ _ || ( "static" === getComputedStyle ( a ) . position && ( a . style . position = "relative" ) , u ( ) , a . _ _resizeLast _ _ = { } , a . _ _resizeListeners _ _ = [ ] , ( a . _ _resizeTriggers _ _ = document . createElement ( "div" ) ) . className = "resize-triggers" , a . _ _resizeTriggers _ _ . innerHTML = '<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>' , a . appendChild ( a . _ _resizeTriggers _ _ ) , f ( a ) , a . addEventListener ( "scroll" , h , ! 0 ) , l && a . _ _resizeTriggers _ _ . addEventListener ( l , function ( b ) { b . animationName === r && f ( a ) } ) ) , a . _ _resizeListeners _ _ . push ( c ) ) : a . attachEvent ( "onresize" , c ) } , w = function ( a , c ) { b ? ( a . _ _resizeListeners _ _ . splice ( a . _ _resizeListeners _ _ . indexOf ( c ) , 1 ) , a . _ _resizeListeners _ _ . length || ( a . removeEventListener ( "scroll" , h , ! 0 ) , a . _ _resizeTriggers _ _ = ! a . removeChild ( a . _ _resizeTriggers _ _ ) ) ) : a . detachEvent ( "onresize" , c ) } ; BI . ResizeDetector = { addResizeListener : function ( a , b ) { return v ( a . element [ 0 ] , b ) , function ( ) { w ( a . element [ 0 ] , b ) } } , removeResizeListener : function ( a , b ) { w ( a . element [ 0 ] , b ) } } } ( ) , function ( ) { function a ( a , b ) { return a < b } BI . Heap = function ( b , c ) { this . _items = b || [ ] , this . _size = this . _items . length , this . _comparator = c || a , this . _heapify ( ) } , BI . Heap . prototype = { constructor : BI . Heap , empty : function ( ) { return 0 === this . _size } , pop : function ( ) { if ( 0 !== this . _size ) { var a = this . _items [ 0 ] , b = this . _items . pop ( ) ; return this . _size -- , this . _size > 0 && ( this . _items [ 0 ] = b , this . _sinkDown ( 0 ) ) , a } } , push : function ( a ) { this . _items [ this . _size ++ ] = a , this . _bubbleUp ( this . _size - 1 ) } , size : function ( ) { return this . _size } , peek : function ( ) { if ( 0 !== this . _size ) return this . _items [ 0 ] } , _heapify : function ( ) { for ( var a = Math . floor ( ( this . _size + 1 ) / 2 ) ; a >= 0 ; a -- ) this . _sinkDown ( a ) } , _bubbleUp : function ( a ) { for ( var b = this . _items [ a ] ; a > 0 ; ) { var c = Math . floor ( ( a + 1 ) / 2 ) - 1 , d = this . _items [ c ] ; if ( this . _comparator ( d , b ) ) return ; this . _items [ c ] = b , this . _items [ a ] = d , a = c } } , _sinkDown : function ( a ) { for ( var b = this . _items [ a ] ; ; ) { var c = 2 * ( a + 1 ) - 1 , d = 2 * ( a + 1 ) , e = - 1 ; if ( c < this . _size ) { var f = this . _items [ c ] ; this . _comparator ( f , b ) && ( e = c ) } if ( d < this . _size ) { var g = this . _items [ d ] ; this . _comparator ( g , b ) && ( e === - 1 || this . _comparator ( g , this . _items [ e ] ) ) && ( e = d ) } if ( e === - 1 ) return ; this . _items [ a ] = this . _items [ e ] , this . _items [ e ] = b , a = e } } } } ( ) , function ( ) { var a = function ( a , b , c ) { return b < a ? a : b > c ? c : b } , b = 5 , c = { index : 0 , offset : 0 , position : 0 , contentHeight : 0 } ; BI . TableScrollHelper = function ( a , b , c , d ) { this . _rowOffsets = BI . PrefixIntervalTree . uniform ( a , b ) , this . _storedHeights = new Array ( a ) ; for ( var e = 0 ; e < a ; ++ e ) this . _storedHeights [ e ] = b ; this . _rowCount = a , this . _position = 0 , this . _contentHeight = a * b , this . _defaultRowHeight = b , this . _rowHeightGetter = d ? d : function ( ) { return b } , this . _viewportHeight = c , this . _updateHeightsInViewport ( 0 , 0 ) } , BI . TableScrollHelper . prototype = { constructor : BI . TableScrollHelper , setRowHeightGetter : function ( a ) { this . _rowHeightGetter = a } , setViewportHeight : function ( a ) { this . _viewportHeight = a } , getContentHeight : function ( ) { return this . _contentHeight } , _updateHeightsInViewport : function ( a , b ) { for ( var c = b , d = a ; c <= this . _viewportHeight && d < this . _rowCount ; ) this . _updateRowHeight ( d ) , c += this . _storedHeights [ d ] , d ++ } , _updateHeightsAboveViewport : function ( a ) { for ( var c = a - 1 ; c >= 0 && c >= a - b ; ) { var d = this . _updateRowHeight ( c ) ; this . _position += d , c -- } } , _updateRowHeight : function ( a ) { if ( a < 0 || a >= this . _rowCount ) return 0 ; var b = this . _rowHeightGetter ( a ) ; if ( b !== this . _storedHeights [ a ] ) { var c = b - this . _storedHeights [ a ] ; return this . _rowOffsets . set ( a , b ) , this . _sto
this . options . items . splice ( a , 0 , b ) } , _removeItemAt : function ( a ) { for ( var b = a ; b < this . options . items . length - 1 ; b ++ ) this . _children [ this . _getChildName ( b ) ] = this . _children [ this . _getChildName ( b + 1 ) ] ; delete this . _children [ this . _getChildName ( this . options . items . length - 1 ) ] , this . options . items . splice ( a , 1 ) } , addItem : function ( a ) { return this . addItemAt ( this . options . items . length , a ) } , prependItem : function ( a ) { return this . addItemAt ( 0 , a ) } , addItemAt : function ( a , b ) { if ( ! ( a < 0 || a > this . options . items . length ) ) { this . _addItemAt ( a , b ) ; var c = this . _addElement ( a , b ) ; return a > 0 ? this . _children [ this . _getChildName ( a - 1 ) ] . element . after ( c . element ) : c . element . prependTo ( this . _getWrapper ( ) ) , c . _mount ( ) , c } } , removeItemAt : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] ; for ( var b = [ ] , c = [ ] , d = { } , e = 0 , f = this . options . items . length ; e < f ; e ++ ) { var g = this . _children [ this . _getChildName ( e ) ] ; a . contains ( e ) ? g && b . push ( g ) : ( d [ this . _getChildName ( c . length ) ] = g , c . push ( this . options . items [ e ] ) ) } this . options . items = c , this . _children = d , BI . each ( b , function ( a , b ) { b . _destroy ( ) } ) } , shouldUpdateItem : function ( a , b ) { if ( a < 0 || a > this . options . items . length - 1 ) return ! 1 ; var c = this . _children [ this . _getChildName ( a ) ] ; return c . shouldUpdate ? c . shouldUpdate ( this . _getOptions ( b ) ) === ! 0 : null } , updateItemAt : function ( a , b ) { if ( ! ( a < 0 || a > this . options . items . length - 1 ) ) { var c , d = this . _children [ this . _getChildName ( a ) ] ; if ( c = d . update ( this . _getOptions ( b ) ) ) return c ; var e = this . _children [ this . _getChildName ( a ) ] ; delete this . _children [ this . _getChildName ( a ) ] , this . options . items . splice ( a , 1 ) ; var f = this . _addElement ( a , b ) ; this . options . items . splice ( a , 0 , b ) , this . _children [ this . _getChildName ( a ) ] = f , a > 0 ? this . _children [ this . _getChildName ( a - 1 ) ] . element . after ( f . element ) : f . element . prependTo ( this . _getWrapper ( ) ) , e . _destroy ( ) , f . _mount ( ) } } , addItems : function ( a ) { var b = this , c = this . options , d = document . createDocumentFragment ( ) , e = [ ] ; BI . each ( a , function ( a , f ) { var g = b . _addElement ( c . items . length , f ) ; b . _children [ b . _getChildName ( c . items . length ) ] = g , c . items . push ( f ) , e . push ( g ) , d . appendChild ( g . element [ 0 ] ) } ) , this . _getWrapper ( ) . append ( d ) , BI . each ( e , function ( a , b ) { b . _mount ( ) } ) } , prependItems : function ( a ) { var b = this ; a = a || [ ] ; for ( var c = document . createDocumentFragment ( ) , d = [ ] , e = a . length - 1 ; e >= 0 ; e -- ) { this . _addItemAt ( 0 , a [ e ] ) ; var f = this . _addElement ( 0 , a [ e ] ) ; b . _children [ b . _getChildName ( 0 ) ] = f , this . options . items . unshift ( a [ e ] ) , d . push ( f ) , c . appendChild ( f . element [ 0 ] ) } this . _getWrapper ( ) . prepend ( c ) , BI . each ( d , function ( a , b ) { b . _mount ( ) } ) } , getValue : function ( ) { var a , b = this , c = [ ] ; return BI . each ( this . options . items , function ( d ) { if ( a = b . _children [ b . _getChildName ( d ) ] ) { var e = a . getValue ( ) ; e = BI . isArray ( e ) ? e : [ e ] , c = c . concat ( e ) } } ) , c } , setValue : function ( a ) { var b , c = this ; BI . each ( this . options . items , function ( d ) { ( b = c . _children [ c . _getChildName ( d ) ] ) && b . setValue ( a ) } ) } , setText : function ( a ) { var b , c = this ; BI . each ( this . options . items , function ( d ) { ( b = c . _children [ c . _getChildName ( d ) ] ) && b . setText ( a ) } ) } , patchItem : function ( a , b , c ) { var d = this . shouldUpdateItem ( c , b ) ; if ( d === ! 0 || null === d && ! this . _compare ( a , b ) ) return this . updateItemAt ( c , b ) } , updateChildren : function ( a , b ) { function c ( a , b , c , d ) { return a = j . _getOptions ( a ) , b = j . _getOptions ( b ) , BI . isKey ( a . key ) ? a . key === b . key : c >= 0 ? c === d : void 0 } function d ( a , b ) { var c = j . _getOptions ( a ) , d = null == c . key ? b : c . key ; return s [ d ] = j . _addElement ( d , a ) } function e ( a , b , c , e ) { for ( ; c <= e ; ++ c ) { var f = d ( b [ c ] , c ) ; g ( f , a , ! 1 , c ) } } function f ( a , b , c ) { for ( ; b <= c ; ++ b ) { var d = j . _getOptions ( a [ b ] ) , e = null == d . key ? b : d . key ; s [ e ] . _destroy ( ) } } function g ( a , b , c , d ) { a = j . _getOptions ( a ) , b = b && j . _getOptions ( b ) ; var e = BI . isKey ( a . key ) ? a . key : d ; if ( b && s [ b . key ] ) { var f , g = BI . isKey ( b . key ) ? b . key : d ; f = c ? s [ g ] . element . next ( ) : s [ g ] . element , f . length > 0 ? f . before ( s [ e ] . element ) : j . _getWrapper ( ) . append ( s [ e ] . element ) } else j . _getWrapper ( ) . append ( s [ e ] . element ) } var h , i , j = this , k = 0 , l = 0 , m = a . length - 1 , n = a [ 0 ] , o = a [ m ] , p = b . length - 1 , q = b [ 0 ] , r = b [ p ] , s = { } ; for ( BI . each ( a , function ( a , b ) { b = j . _getOptions ( b ) ; var c = null == b . key ? a : b . key ; BI . isKey ( c ) && ( s [ c ] = j . _children [ j . _getChildName ( a ) ] ) } ) ; k <= m && l <= p ; ) if ( BI . isNull ( n ) ) n = a [ ++ k ] ; else if ( BI . isNull ( o ) ) o = a [ -- m ] ; else if ( c ( n , q , k , l ) ) i = this . patchItem ( n , q , k ) || i , s [ null == n . key ? this . _getChildName ( k ) : n . key ] = this . _children [ this . _getChildName ( k ) ] , n = a [ ++ k ] , q = b [ ++ l ] ; else if ( c ( o , r , m , p ) ) i = this . patchItem ( o , r , m ) || i , s [ null == o . key ? this . _getChi
} , getStyle : function ( a ) { var b = this [ 0 ] , c = void 0 ; if ( window . getComputedStyle && ( c = window . 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 . offset ( ) ; return ! ( a . pageX < b . left || a . pageX > b . left + this . outerWidth ( ) || a . pageY < b . top || a . pageY > b . top + this . outerHeight ( ) ) } , _ _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 this . indexMask . remove ( this . zIndexMask [ a ] ) , void this . zIndexMask [ a ] . destroy ( ) ; this . indexMask = this . indexMask || [ ] ; var b = this . indexMask . pop ( ) ; b && b . destroy ( ) } } ) , BI . extend ( jQuery , { getLeftPosition : function ( a , b , c ) { return { left : a . element . offset ( ) . left - b . element . outerWidth ( ) - ( c || 0 ) } } , getRightPosition : function ( a , b , c ) { var d = a . element ; return { left : d . offset ( ) . left + d . outerWidth ( ) + ( c || 0 ) } } , getTopPosition : function ( a , b , c ) { return { top : a . element . offset ( ) . top - b . element . outerHeight ( ) - ( c || 0 ) } } , getBottomPosition : function ( a , b , c ) { var d = a . element ; return { top : d . offset ( ) . top + d . outerHeight ( ) + ( c || 0 ) } } , isLeftSpaceEnough : function ( a , b , c ) { return $ . getLeftPosition ( a , b , c ) . left >= 0 } , isRightSpaceEnough : function ( a , b , c ) { var d = b . element . bounds ( ) , e = $ ( "body" ) . bounds ( ) ; return $ . getRightPosition ( a , b , c ) . left + d . width <= e . width } , isTopSpaceEnough : function ( a , b , c ) { return $ . getTopPosition ( a , b , c ) . top >= 0 } , isBottomSpaceEnough : function ( a , b , c ) { var d = b . element . bounds ( ) , e = $ ( "body" ) . bounds ( ) ; return $ . getBottomPosition ( a , b , c ) . top + d . height <= e . height } , isRightSpaceLarger : function ( a ) { var b = $ ( "body" ) . bounds ( ) ; return b . width - a . element . offset ( ) . left - a . element . bounds ( ) . width >= a . element . offset ( ) . left } , isBottomSpaceLarger : function ( a ) { var b = $ ( "body" ) . bounds ( ) ; return b . height - a . element . offset ( ) . top - a . element . bounds ( ) . height >= a . element . offset ( ) . top } , getLeftAlignPosition : function ( a , b , c ) { var d = b . element . bounds ( ) , e = $ ( "body" ) . bounds ( ) , f = a . element . offset ( ) . left + c ; return f + d . width > e . width && ( f = e . width - d . width ) , f < 0 && ( f = 0 ) , { left : f } } , getLeftAdaptPosition : function ( a , b , c ) { return $ . isLeftSpaceEnough ( a , b , c ) ? $ . getLeftPosition ( a , b , c ) : { left : 0 } } , getRightAlignPosition : function ( a , b , c ) { var d = a . element . bounds ( ) , e = b . element . bounds ( ) , f = a . element . offset ( ) . left + d . width - e . width - c ; return f < 0 && ( f = 0 ) , { left : f } } , getRightAdaptPosition : function ( a , b , c ) { return $ . isRightSpaceEnough ( a , b , c ) ? $ . getRightPosition ( a , b , c ) : { left : $ ( "body" ) . bounds ( ) . width - b . element . bounds ( ) . width } } , getTopAlignPosition : function ( a , b , c , d ) { var e , f , g = a . element . offset ( ) , h = a . element . bounds ( ) , i = b . element . bounds ( ) , j = $ ( "body" ) . bounds ( ) ; return $ . isBottomSpaceEnough ( a , b , - 1 * h . height + c ) ? e = g . top + c : d ? ( e = g . top + c , f = j . height - e ) : ( e = j . height - i . height , e < c && ( f = j . height - c ) ) , e < c && ( e = c ) , f ? { top : e , adaptHeight : f } : { top : e } } , getTopAdaptPosition : function ( a , b , c , d ) { var e = b . element . bounds ( ) , f = $ ( "body" ) . bounds ( ) ; return $ . isTopSpaceEnough ( a , b , c ) ? $ . getTopPosition ( a , b , c ) : d ? { top : 0 , adaptHeight : a . element . offset ( ) . top - c } : e . height + c > f . height ? { top : 0 , adaptHeight : f . height - c } : { top : 0 } } , getBottomAlignPosition : function ( a , b , c , d ) { var e , f , g = a . element . offset ( ) , h = a . element . bounds ( ) , i = b . element . bounds ( ) , j = $ ( "body" ) . bounds ( ) ; return $ . isTopSpaceEnough ( a , b , - 1 * h . height + c ) ? e = g . top + h . height - i . height - c : d ? ( e = 0 , f = g . top + h . height - c ) : ( e = 0 , i . height + c > j . height && ( f = j . height - c ) ) , e < 0 && ( e = 0 ) , f ? { top : e , adaptHeight : f } : { top : e } } , getBottomAdaptPosition : function ( a , b , c , d ) { var e = a . element . offset ( ) , f = a . element . bounds ( ) , g = b . element . bounds ( ) , h = $ ( "body" ) . bounds ( ) ; return $ . isBottomSpaceEnough ( a , b , c ) ? $ . getBottomPositio
return a instanceof r ? a : this instanceof r ? void ( this . _wrapped = a ) : new r ( a ) } ; "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = r ) , exports . _ = r ) : d . _ = r , r . VERSION = "1.8.2" ; var s = function ( a , b , c ) { if ( void 0 === b ) return a ; switch ( null == c ? 3 : c ) { case 1 : return function ( c ) { return a . call ( b , c ) } ; case 2 : return function ( c , d ) { return a . call ( b , c , d ) } ; case 3 : return function ( c , d , e ) { return a . call ( b , c , d , e ) } ; case 4 : return function ( c , d , e , f ) { return a . call ( b , c , d , e , f ) } } return function ( ) { return a . apply ( b , arguments ) } } , t = function ( a , b , c ) { return null == a ? r . identity : r . isFunction ( a ) ? s ( a , b , c ) : r . isObject ( a ) ? r . matcher ( a ) : r . property ( a ) } ; r . iteratee = function ( a , b ) { return t ( a , b , 1 / 0 ) } ; var u = function ( a , b ) { return function ( c ) { var d = arguments . length ; if ( d < 2 || null == c ) return c ; for ( var e = 1 ; e < d ; e ++ ) for ( var f = arguments [ e ] , g = a ( f ) , h = g . length , i = 0 ; i < h ; i ++ ) { var j = g [ i ] ; b && void 0 !== c [ j ] || ( c [ j ] = f [ j ] ) } return c } } , v = function ( a ) { if ( ! r . isObject ( a ) ) return { } ; if ( p ) return p ( a ) ; q . prototype = a ; var b = new q ; return q . prototype = null , b } , w = Math . pow ( 2 , 53 ) - 1 , x = function ( a ) { var b = null != a && a . length ; return "number" == typeof b && b >= 0 && b <= w } ; r . each = r . forEach = function ( a , b , c ) { b = s ( b , c ) ; var d , e ; if ( x ( a ) ) for ( d = 0 , e = a . length ; d < e ; d ++ ) b ( a [ d ] , d , a ) ; else { var f = r . keys ( a ) ; for ( d = 0 , e = f . length ; d < e ; d ++ ) b ( a [ f [ d ] ] , f [ d ] , a ) } return a } , r . map = r . collect = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = Array ( e ) , g = 0 ; g < e ; g ++ ) { var h = d ? d [ g ] : g ; f [ g ] = b ( a [ h ] , h , a ) } return f } , r . reduce = r . foldl = r . inject = a ( 1 ) , r . reduceRight = r . foldr = a ( - 1 ) , r . find = r . detect = function ( a , b , c ) { var d ; if ( d = x ( a ) ? r . findIndex ( a , b , c ) : r . findKey ( a , b , c ) , void 0 !== d && d !== - 1 ) return a [ d ] } , r . filter = r . select = function ( a , b , c ) { var d = [ ] ; return b = t ( b , c ) , r . each ( a , function ( a , c , e ) { b ( a , c , e ) && d . push ( a ) } ) , d } , r . reject = function ( a , b , c ) { return r . filter ( a , r . negate ( t ( b ) ) , c ) } , r . every = r . all = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = 0 ; f < e ; f ++ ) { var g = d ? d [ f ] : f ; if ( ! b ( a [ g ] , g , a ) ) return ! 1 } return ! 0 } , r . some = r . any = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = 0 ; f < e ; f ++ ) { var g = d ? d [ f ] : f ; if ( b ( a [ g ] , g , a ) ) return ! 0 } return ! 1 } , r . contains = r . includes = r . include = function ( a , b , c ) { return x ( a ) || ( a = r . values ( a ) ) , r . indexOf ( a , b , "number" == typeof c && c ) >= 0 } , r . invoke = function ( a , b ) { var c = j . call ( arguments , 2 ) , d = r . isFunction ( b ) ; return r . map ( a , function ( a ) { var e = d ? b : a [ b ] ; return null == e ? e : e . apply ( a , c ) } ) } , r . pluck = function ( a , b ) { return r . map ( a , r . property ( b ) ) } , r . where = function ( a , b ) { return r . filter ( a , r . matcher ( b ) ) } , r . findWhere = function ( a , b ) { return r . find ( a , r . matcher ( b ) ) } , r . max = function ( a , b , c ) { var d , e , f = - ( 1 / 0 ) , g = - ( 1 / 0 ) ; if ( null == b && null != a ) { a = x ( a ) ? a : r . values ( a ) ; for ( var h = 0 , i = a . length ; h < i ; h ++ ) d = a [ h ] , d > f && ( f = d ) } else b = t ( b , c ) , r . each ( a , function ( a , c , d ) { e = b ( a , c , d ) , ( e > g || e === - ( 1 / 0 ) && f === - ( 1 / 0 ) ) && ( f = a , g = e ) } ) ; return f } , r . min = function ( a , b , c ) { var d , e , f = 1 / 0 , g = 1 / 0 ; if ( null == b && null != a ) { a = x ( a ) ? a : r . values ( a ) ; for ( var h = 0 , i = a . length ; h < i ; h ++ ) d = a [ h ] , d < f && ( f = d ) } else b = t ( b , c ) , r . each ( a , function ( a , c , d ) { e = b ( a , c , d ) , ( e < g || e === 1 / 0 && f === 1 / 0 ) && ( f = a , g = e ) } ) ; return f } , r . shuffle = function ( a ) { for ( var b , c = x ( a ) ? a : r . values ( a ) , d = c . length , e = Array ( d ) , f = 0 ; f < d ; f ++ ) b = r . random ( 0 , f ) , b !== f && ( e [ f ] = e [ b ] ) , e [ b ] = c [ f ] ; return e } , r . sample = function ( a , b , c ) { return null == b || c ? ( x ( a ) || ( a = r . values ( a ) ) , a [ r . random ( a . length - 1 ) ] ) : r . shuffle ( a ) . slice ( 0 , Math . max ( 0 , b ) ) } , r . sortBy = function ( a , b , c ) { return b = t ( b , c ) , r . pluck ( r . map ( a , function ( a , c , d ) { return { value : a , index : c , criteria : b ( a , c , d ) } } ) . sort ( function ( a , b ) { var c = a . criteria , d = b . criteria ; if ( c !== d ) { if ( c > d || void 0 === c ) return 1 ; if ( c < d || void 0 === d ) return - 1 } return a . index - b . index } ) , "value" ) } ; var y = function ( a ) { return function ( b , c , d ) { var e = { } ; return c = t ( c , d ) , r . each ( b , function ( d , f ) { var g = c ( d , f , b ) ; a ( e , d , g ) } ) , e } } ; r . groupBy = y ( function ( a , b , c ) { r . has ( a , c ) ? a [ c ] . push ( b ) : a [ c ] = [ b ] } ) , r . indexBy = y ( function ( a , b , c ) { a [ c ] = b } ) , r . countBy = y ( function ( a , b , c ) { r . has ( a , c ) ? a [ c ] ++ : a [ c ] = 1 } ) , r . toArray = function ( a ) { return a ? r . isArray ( a ) ? j . call ( a ) : x ( a ) ? r . map ( a , r . identity ) : r . values ( a ) : [ ] } , r . size = function ( a ) { return null == a ? 0 : x ( a ) ? a . length : r . keys ( a ) . length } , r . partition = function ( a , b , c ) { b = t ( b , c ) ; var d = [ ] , e = [ ] ; return r . each ( a , function ( a , c , f ) { ( b ( a , c , f ) ? d : e ) . push ( a ) } ) , [ d , e ] } , r . first = r . head = r . take = function ( a , b , c ) { if ( null !
f . element . css ( { position : "relative" , top : "0" , left : "0" , margin : "0px auto" } ) , c = BI . createWidget ( { type : "bi.default" , tagName : "td" , attributes : { width : e } , items : [ f ] } ) , this . addWidget ( this . _getChildName ( a ) , c ) } return 0 === a && c . element . addClass ( "first-element" ) , c . element . css ( { position : "relative" , height : "100%" , "vertical-align" : "middle" , margin : "0" , padding : "0" , border : "none" } ) , d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-top" : d . vgap + d . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d . hgap + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-left" : ( 0 === a ? d . hgap : 0 ) + d . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && f . element . css ( { "margin-right" : d . hgap + d . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && f . element . css ( { "margin-bottom" : d . vgap + d . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c } , _mountChildren : function ( ) { var a = this , b = document . createDocumentFragment ( ) , c = ! 1 ; BI . each ( this . _children , function ( d , e ) { e . element !== a . element && ( b . appendChild ( e . element [ 0 ] ) , c = ! 0 ) } ) , c === ! 0 && ( this . $tr . append ( b ) , this . element . append ( this . $table ) ) } , _getWrapper : function ( ) { return this . $tr } , resize : function ( ) { } , populate : function ( a ) { BI . VerticalAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.vertical_adapt" , BI . VerticalAdaptLayout ) , BI . HorizontalAutoLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalAutoLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizon-auto-layout" , hgap : 0 , lgap : 0 , rgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalAutoLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . HorizontalAutoLayout . superclass . _addElement . apply ( this , arguments ) ; return d . element . css ( { position : "relative" , margin : "0px auto" } ) , c . vgap + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-top" : ( 0 === a ? c . vgap : 0 ) + c . tgap + ( b . tgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-left" : c . hgap + c . lgap + ( b . lgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) !== 0 && d . element . css ( { "margin-right" : c . hgap + c . rgap + ( b . rgap || 0 ) + ( b . hgap || 0 ) + "px" } ) , c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) !== 0 && d . element . css ( { "margin-bottom" : c . vgap + c . bgap + ( b . bgap || 0 ) + ( b . vgap || 0 ) + "px" } ) , d } , resize : function ( ) { } , populate : function ( a ) { BI . HorizontalAutoLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.horizontal_auto" , BI . HorizontalAutoLayout ) , BI . FloatCenterAdaptLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatCenterAdaptLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-center-adapt-layout" , items : [ ] , hgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 , lgap : 0 , rgap : 0 } ) } , render : function ( ) { BI . FloatCenterAdaptLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( ) { throw new Error ( "cannot be added" ) } , mounted : function ( ) { var a = this , b = this . left . element . outerWidth ( ) , c = this . left . element . outerHeight ( ) ; this . left . element . width ( b ) . height ( c ) . css ( "float" , "none" ) , BI . remove ( this . _children , function ( b , c ) { c === a . container && delete a . _children [ b ] } ) , BI . createWidget ( { type : "bi.center_adapt" , element : this , items : [ this . left ] } ) } , stroke : function ( a ) { var b = this . options ; this . left = BI . createWidget ( { type : "bi.vertical" , items : a , hgap : b . hgap , vgap : b . vgap , tgap : b . tgap , bgap : b . bgap , lgap : b . lgap , rgap : b . rgap } ) , this . container = BI . createWidget ( { type : "bi.left" , element : this , items : [ this . left ] } ) } , populate : function ( a ) { BI . FloatCenterAdaptLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.float_center_adapt" , BI . FloatCenterAdaptLayout ) , BI . FloatHorizontalLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatHorizontalLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-horizontal-adapt-layout" , items : [ ] , hgap : 0 , vgap : 0 , tgap : 0 , bgap : 0 , lgap : 0 , rgap : 0 } ) } , render : function ( ) { BI . FloatHorizontalLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , mounted : function ( ) { var a = this , b = this . left . element . width ( ) , c = this . left . elem
this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . LatticeLayout . superclass . _addElement . apply ( this , arguments ) ; if ( c . columnSize && c . columnSize [ a ] ) var e = c . columnSize [ a ] / BI . sum ( c . columnSize ) * 100 + "%" ; else var e = 1 / this . options . items . length * 100 + "%" ; return d . element . css ( { position : "relative" , "float" : "left" , width : e } ) , d } , addItem : function ( a ) { var b = BI . LatticeLayout . superclass . addItem . apply ( this , arguments ) ; return this . resize ( ) , b } , addItemAt : function ( a ) { var b = BI . LatticeLayout . superclass . addItemAt . apply ( this , arguments ) ; return this . resize ( ) , b } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . LatticeLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.lattice" , BI . LatticeLayout ) , BI . TableLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . TableLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-table-layout" , scrolly : ! 0 , columnSize : [ 200 , 200 , "fill" ] , rowSize : 30 , hgap : 0 , vgap : 0 , items : [ [ { el : { text : "label1" } } , { el : { text : "label2" } } , { el : { text : "label3" } } ] ] } ) } , render : function ( ) { BI . TableLayout . superclass . render . apply ( this , arguments ) , this . rows = 0 , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { function c ( a , b , c ) { 0 === b && a . addClass ( "first-row" ) , 0 === c && a . addClass ( "first-col" ) , a . addClass ( BI . isOdd ( b + 1 ) ? "odd-row" : "even-row" ) , a . addClass ( BI . isOdd ( c + 1 ) ? "odd-col" : "even-col" ) , a . addClass ( "center-element" ) } function d ( a , b , c ) { var d = "" ; 0 === b && ( d += " first-row" ) , 0 === c && ( d += " first-col" ) , d += BI . isOdd ( b + 1 ) ? " odd-row" : " even-row" , d += BI . isOdd ( c + 1 ) ? " odd-col" : " even-col" , a . cls = ( a . cls || "" ) + d + " center-element" } function e ( a , b , e ) { a instanceof BI . Widget ? c ( a . element , b , e ) : a . el instanceof BI . Widget ? c ( a . el . element , b , e ) : a . el ? d ( a . el , b , e ) : d ( a , b , e ) } var f , g , h = this . options , i = [ ] , j = 0 , k = 0 ; for ( f = 0 ; f < b . length && BI . isNumber ( h . columnSize [ f ] ) ; f ++ ) e ( b [ f ] , this . rows , f ) , i . push ( BI . extend ( { top : 0 , bottom : 0 , left : h . columnSize [ f ] <= 1 ? 100 * j + "%" : j , width : h . columnSize [ f ] <= 1 ? 100 * h . columnSize [ f ] + "%" : h . columnSize [ f ] } , b [ f ] ) ) , j += h . columnSize [ f ] + ( h . columnSize [ f ] < 1 ? 0 : h . hgap ) ; for ( g = b . length - 1 ; g > f ; g -- ) { if ( ! BI . isNumber ( h . columnSize [ g ] ) ) throw new Error ( "item with fill can only be one" ) ; e ( b [ g ] , this . rows , g ) , i . push ( BI . extend ( { top : 0 , bottom : 0 , right : h . columnSize [ g ] <= 1 ? 100 * k + "%" : k , width : h . columnSize [ g ] <= 1 ? 100 * h . columnSize [ g ] + "%" : h . columnSize [ g ] } , b [ g ] ) ) , k += h . columnSize [ g ] + ( h . columnSize [ g ] < 1 ? 0 : h . hgap ) } f >= 0 && f < b . length && ( e ( b [ f ] , this . rows , f ) , i . push ( BI . extend ( { top : 0 , bottom : 0 , left : j <= 1 ? 100 * j + "%" : j , right : k <= 1 ? 100 * k + "%" : k } , b [ f ] ) ) ) ; var l = BI . createWidget ( { type : "bi.absolute" , height : BI . isArray ( h . rowSize ) ? h . rowSize [ this . rows ] : h . rowSize , items : i } ) ; return this . rows > 0 && this . getWidgetByName ( this . getName ( ) + ( this . rows - 1 ) ) . element . css ( { "margin-bottom" : h . vgap } ) , l . element . css ( { position : "relative" } ) , this . addWidget ( this . getName ( ) + this . rows ++ , l ) , l } , resize : function ( ) { } , addItem : function ( a ) { if ( ! BI . isArray ( a ) ) throw new Error ( "item must be array" ) ; return BI . TableLayout . superclass . addItem . apply ( this , arguments ) } , populate : function ( a ) { BI . TableLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.table" , BI . TableLayout ) , BI . HTapeLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HTapeLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-h-tape-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , items : [ { width : 100 , el : { type : "bi.button" , text : "button1" } } , { width : "fill" , el : { type : "bi.button" , text : "button2" } } , { width : 200 , el : { type : "bi.button" , text : "button3" } } ] } ) } , render : function ( ) { BI . HTapeLayout . 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 = this , c = this . options ; a = BI . compact ( a ) , BI . each ( a , function ( a , d ) { if ( b . hasWidget ( b . getName ( ) + a + "" ) ) e = b . getWidgetByName ( b . getName ( ) + a + "" ) ; else { var e = BI . createWidget ( d ) ; b . addWidget ( b . getName ( ) + a + "" , e ) } e . element . css ( { position : "absolute" , top : ( d . vgap || 0 ) + ( d . tgap || 0 ) + c . vgap + c . tgap + "px" , bottom : ( d . bgap || 0 ) + ( d . vgap || 0 ) + c . vgap + c . bgap + "px" } ) } ) ; var d = { } , e = { } ; d [ 0 ] = 0 , e [ a . length - 1 ] = 0 , BI . any ( a , function ( e , f ) { var g = b . getWidgetByName ( b . getName ( ) + e + "" ) ; i
} function b ( b ) { if ( a ( b ) , ! ( ! d . isEnabled ( ) || d . isOnce ( ) && d . isSelected ( ) ) ) { if ( BI . isKey ( e . bubble ) || BI . isFunction ( e . bubble ) ) { if ( BI . isNull ( d . combo ) ) { var f ; BI . createWidget ( { type : "bi.absolute" , element : d , items : [ { el : { type : "bi.bubble_combo" , trigger : "" , ref : function ( ) { d . combo = this } , el : { type : "bi.layout" , height : "100%" } , popup : { type : "bi.text_bubble_bar_popup_view" , text : c ( ) , ref : function ( ) { f = this } , listeners : [ { eventName : BI . BubblePopupBarView . EVENT _CLICK _TOOLBAR _BUTTON , action : function ( a ) { d . combo . hideView ( ) , a && h . apply ( d , arguments ) } } ] } , listeners : [ { eventName : BI . BubbleCombo . EVENT _BEFORE _POPUPVIEW , action : function ( ) { f . populate ( c ( ) ) } } ] } , left : 0 , right : 0 , bottom : 0 , top : 0 } ] } ) } return void ( d . combo . isViewVisible ( ) ? d . combo . hideView ( ) : d . combo . showView ( ) ) } h . apply ( d , arguments ) } } function c ( ) { var a = d . options . bubble ; return BI . isFunction ( a ) ? a ( ) : a } var d = this , e = this . options , f = this . handle ( ) ; if ( f ) { f = f . element ; var g = ( e . trigger || "" ) . split ( "," ) ; BI . each ( g , function ( c , g ) { switch ( g ) { case "mouseup" : var h = ! 1 ; f . mousedown ( function ( ) { h = ! 0 } ) , f . mouseup ( function ( c ) { h === ! 0 && b ( c ) , h = ! 1 , a ( c ) } ) ; break ; case "mousedown" : var h = ! 1 , i = ! 1 ; f . mousedown ( function ( c ) { $ ( document ) . bind ( "mouseup." + d . getName ( ) , function ( a ) { ! BI . DOM . isExist ( d ) || f . _ _isMouseInBounds _ _ ( a ) || h !== ! 0 || i || d . _trigger ( ) , h = ! 1 , $ ( document ) . unbind ( "mouseup." + d . getName ( ) ) } ) , h !== ! 0 && ( d . isSelected ( ) ? i = ! 0 : b ( c ) , h = ! 0 , a ( c ) ) } ) , f . mouseup ( function ( a ) { BI . DOM . isExist ( d ) && h === ! 0 && i === ! 0 && b ( a ) , h = ! 1 , i = ! 1 , $ ( document ) . unbind ( "mouseup." + d . getName ( ) ) } ) ; break ; case "dblclick" : f . dblclick ( b ) ; break ; case "lclick" : var j , h = ! 1 ; f . mousedown ( function ( b ) { $ ( document ) . bind ( "mouseup." + d . getName ( ) , function ( a ) { j && clearInterval ( j ) , j = null , h = ! 1 , $ ( document ) . unbind ( "mouseup." + d . getName ( ) ) } ) , h !== ! 0 && ( ! d . isEnabled ( ) || d . isOnce ( ) && d . isSelected ( ) || ( j = setInterval ( function ( ) { d . isEnabled ( ) && d . doClick ( ) } , 100 ) , h = ! 0 , a ( b ) ) ) } ) ; break ; default : ( e . stopEvent || e . stopPropagation ) && f . mousedown ( function ( b ) { a ( b ) } ) , f . click ( b ) } } ) ; var h = BI . debounce ( this . _doClick , BI . EVENT _RESPONSE _TIME , ! 0 ) } } , _trigger : function ( ) { var a = this . options ; if ( this . isEnabled ( ) && ( this . isDisableSelected ( ) || ( this . isForceSelected ( ) ? this . setSelected ( ! 0 ) : this . isForceNotSelected ( ) ? this . setSelected ( ! 1 ) : this . setSelected ( ! this . isSelected ( ) ) ) , this . isValid ( ) ) ) { a . handler . call ( this , this . getValue ( ) , this ) ; var b = this . getValue ( ) ; this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , b , this ) , this . fireEvent ( BI . BasicButton . EVENT _CHANGE , b , this ) , a . action && BI . Actions . runAction ( a . action , a ) } } , _doClick : function ( a ) { this . isValid ( ) && this . beforeClick ( a ) , this . _trigger ( ) , 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 ( ) { $ ( 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 ) ; retu
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" , 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 ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . Combo . EVENT _EXPAND ) ) , b === BI . Events . COLLAPSE && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . isViewVisible ( ) && a . fireEvent ( BI . Combo . EVENT _COLLAPSE ) ) , b === BI . Events . CLICK && a . fireEvent ( BI . Combo . EVENT _TRIGGER _CHANGE , d ) ) } ) , a . element . on ( "mouseenter." + a . getName ( ) , function ( c ) { a . isEnabled ( ) && a . isValid ( ) && a . combo . isEnabled ( ) && a . combo . isValid ( ) && a . element . addClass ( b . hoverClass ) } ) , a . element . on ( "mouseleave." + a . getName ( ) , function ( c ) { a . isEnabled ( ) && a . isValid ( ) && a . combo . isEnabled ( ) && a . combo . isValid ( ) && a . element . removeClass ( b . hoverClass ) } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , element : this , items : [ { el : this . combo } ] } ) , b . isDefaultInit && this . _assertPopupView ( ) , BI . Resizers . add ( this . getName ( ) , BI . bind ( function ( ) { this . isViewVisible ( ) && this . _hideView ( )
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 ( ) } , adjustHeight : function ( ) { BI . Maskers . has ( this . getName ( ) ) && BI . Maskers . get ( this . getName ( ) ) . isVisible ( ) && BI . Maskers . show ( this . getName ( ) ) } , adjustView : function ( ) { this . isViewVisible ( ) && BI . Maskers . show ( this . getName ( ) ) } , setValue : function ( a ) { BI . isNull ( this . popupView ) ? this . options . popup . value = a : this . popupView . setValue ( a ) } , getKeyword : function ( ) { return this . editor . getValue ( ) } , getKeywords : function ( ) { return this . editor . getKeywords ( ) } , getValue : function ( ) { var a = this . options ; return a . isAutoSync && a . adapter && a . adapter . getValue ? a . adapter . getValue ( ) : this . isSearching ( ) ? this . popupView . getValue ( ) : a . adapter && a . adapter . getValue ? a . adapter . getValue ( ) : BI . isNull ( this . popupView ) ? a . popup . value : this . popupView . getValue ( ) } , populate : function ( a , b , c ) { var d = this . options ; this . _assertPopupView ( ) , this . popupView . populate . apply ( this . popupView , arguments ) , d . isAutoSync && d . adapter && d . adapter . getValue && this . popupView . setValue ( d . adapter . getValue ( ) ) } , empty : function ( ) { this . popupView && this . popupView . empty ( ) } , destroy : function ( ) { BI . Maskers . remove ( this . getName ( ) ) , BI . Searcher . superclass . destroy . apply ( this , arguments ) } } ) , BI . Searcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . Searcher . EVENT _START = "EVENT_START" , BI . Searcher . EVENT _STOP = "EVENT_STOP" , BI . Searcher . EVENT _PAUSE = "EVENT_PAUSE" , BI . Searcher . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . Searcher . EVENT _AFTER _INIT = "EVENT_AFTER_INIT" , BI . shortcut ( "bi.searcher" , BI . Searcher ) , BI . Switcher = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Switcher . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-switcher" , direction : BI . Direction . Top , trigger : "click" , toggle : ! 0 , el : { } , popup : { } , adapter : null , masker : { } , switcherClass : "bi-switcher-popup" , hoverClass : "bi-switcher-hover" } ) } , _init : function ( ) { BI . Switcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _initSwitcher ( ) , this . _initPullDownAction ( ) , this . switcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . isEnabled ( ) && a . isValid ( ) && ( b === BI . Events . EXPAND && a . _popupView ( ) , b === BI . Events . COLLAPSE && a . _hideView ( ) , b === BI . Events . EXPAND && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . Switcher . EVENT _EXPAND ) ) , b === BI . Events . COLLAPSE && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . isViewVisible ( ) && a . fireEvent ( BI . Switcher . EVENT _COLLAPSE ) ) , b === BI . Events . CLICK && a . fireEvent ( BI . Switcher . EVENT _TRIGGER _CHANGE , c , d ) ) } ) , this . element . hover ( function ( ) { a . isEnabled ( ) && a . switcher . isEnabled ( ) && a . element . addClass ( b . hoverClass ) } , function ( ) { a . isEnabled ( ) && a . switcher . isEnabl
b = e . childNodes [ c ] , c = 0 , ! b ) ) { var g = a . rest ? Ce ( a . rest ) : a . line ; return ha ( Ff ( Zd ( g ) , g . text . length ) , f ) } var h = 3 == b . nodeType ? b : null , i = b ; for ( h || 1 != b . childNodes . length || 3 != b . firstChild . nodeType || ( h = b . firstChild , c && ( c = h . nodeValue . length ) ) ; i . parentNode != e ; ) i = i . parentNode ; var j = a . measure , k = j . maps , l = d ( h , i , c ) ; if ( l ) return ha ( l , f ) ; for ( var m = i . nextSibling , n = h ? h . nodeValue . length - c : 0 ; m ; m = m . nextSibling ) { if ( l = d ( m , m . firstChild , 0 ) ) return ha ( Ff ( l . line , l . ch - n ) , f ) ; n += m . textContent . length } for ( var o = i . previousSibling , n = c ; o ; o = o . previousSibling ) { if ( l = d ( o , o . firstChild , - 1 ) ) return ha ( Ff ( l . line , l . ch + n ) , f ) ; n += m . textContent . length } } function ka ( a , b , c , d , e ) { function f ( a ) { return function ( b ) { return b . id == a } } function g ( b ) { if ( 1 == b . nodeType ) { var c = b . getAttribute ( "cm-text" ) ; if ( null != c ) return "" == c && ( c = b . textContent . replace ( /\u200b/g , "" ) ) , void ( h += c ) ; var j , k = b . getAttribute ( "cm-marker" ) ; if ( k ) { var l = a . findMarks ( Ff ( d , 0 ) , Ff ( e + 1 , 0 ) , f ( + k ) ) ; return void ( l . length && ( j = l [ 0 ] . find ( ) ) && ( h += Wd ( a . doc , j . from , j . to ) . join ( "\n" ) ) ) } if ( "false" == b . getAttribute ( "contenteditable" ) ) return ; for ( var m = 0 ; m < b . childNodes . length ; m ++ ) g ( b . childNodes [ m ] ) ; /^(pre|div|p)$/i . test ( b . nodeName ) && ( i = ! 0 ) } else if ( 3 == b . nodeType ) { var n = b . nodeValue ; if ( ! n ) return ; i && ( h += "\n" , i = ! 1 ) , h += n } } for ( var h = "" , i = ! 1 ; g ( b ) , b != c ; ) b = b . nextSibling ; return h } function la ( a , b ) { this . ranges = a , this . primIndex = b } function ma ( a , b ) { this . anchor = a , this . head = b } function na ( a , b ) { var c = a [ b ] ; a . sort ( function ( a , b ) { return Gf ( a . from ( ) , b . from ( ) ) } ) , b = De ( a , c ) ; for ( var d = 1 ; d < a . length ; d ++ ) { var e = a [ d ] , f = a [ d - 1 ] ; if ( Gf ( f . to ( ) , e . from ( ) ) >= 0 ) { var g = X ( f . from ( ) , e . from ( ) ) , h = W ( f . to ( ) , e . to ( ) ) , i = f . empty ( ) ? e . from ( ) == e . head : f . from ( ) == f . head ; d <= b && -- b , a . splice ( -- d , 2 , new ma ( i ? h : g , i ? g : h ) ) } } return new la ( a , b ) } function oa ( a , b ) { return new la ( [ new ma ( a , b || a ) ] , 0 ) } function pa ( a , b ) { return Math . max ( a . first , Math . min ( b , a . first + a . size - 1 ) ) } function qa ( a , b ) { if ( b . line < a . first ) return Ff ( a . first , 0 ) ; var c = a . first + a . size - 1 ; return b . line > c ? Ff ( c , Vd ( a , c ) . text . length ) : ra ( b , Vd ( a , b . line ) . text . length ) } function ra ( a , b ) { var c = a . ch ; return null == c || c > b ? Ff ( a . line , b ) : c < 0 ? Ff ( a . line , 0 ) : a } function sa ( a , b ) { return b >= a . first && b < a . first + a . size } function ta ( a , b ) { for ( var c = [ ] , d = 0 ; d < b . length ; d ++ ) c [ d ] = qa ( a , b [ d ] ) ; return c } function ua ( a , b , c , d ) { if ( a . cm && a . cm . display . shift || a . extend ) { var e = b . anchor ; if ( d ) { var f = Gf ( c , e ) < 0 ; f != Gf ( d , e ) < 0 ? ( e = c , c = d ) : f != Gf ( c , d ) < 0 && ( c = d ) } return new ma ( e , c ) } return new ma ( d || c , c ) } function va ( a , b , c , d ) { Ba ( a , new la ( [ ua ( a , a . sel . primary ( ) , b , c ) ] , 0 ) , d ) } function wa ( a , b , c ) { for ( var d = [ ] , e = 0 ; e < a . sel . ranges . length ; e ++ ) d [ e ] = ua ( a , a . sel . ranges [ e ] , b [ e ] , null ) ; var f = na ( d , a . sel . primIndex ) ; Ba ( a , f , c ) } function xa ( a , b , c , d ) { var e = a . sel . ranges . slice ( 0 ) ; e [ b ] = c , Ba ( a , na ( e , a . sel . primIndex ) , d ) } function ya ( a , b , c , d ) { Ba ( a , oa ( b , c ) , d ) } function za ( a , b ) { var c = { ranges : b . ranges , update : function ( b ) { this . ranges = [ ] ; for ( var c = 0 ; c < b . length ; c ++ ) this . ranges [ c ] = new ma ( qa ( a , b [ c ] . anchor ) , qa ( a , b [ c ] . head ) ) } } ; return zg ( a , "beforeSelectionChange" , a , c ) , a . cm && zg ( a . cm , "beforeSelectionChange" , a . cm , c ) , c . ranges != b . ranges ? na ( c . ranges , c . ranges . length - 1 ) : b } function Aa ( a , b , c ) { var d = a . history . done , e = Ce ( d ) ; e && e . ranges ? ( d [ d . length - 1 ] = b , Ca ( a , b , c ) ) : Ba ( a , b , c ) } function Ba ( a , b , c ) { Ca ( a , b , c ) , he ( a , a . sel , a . cm ? a . cm . curOp . id : NaN , c ) } function Ca ( a , b , c ) { ( xe ( a , "beforeSelectionChange" ) || a . cm && xe ( a . cm , "beforeSelectionChange" ) ) && ( b = za ( a , b ) ) ; var d = c && c . bias || ( Gf ( b . primary ( ) . head , a . sel . primary ( ) . head ) < 0 ? - 1 : 1 ) ; Da ( a , Fa ( a , b , d , ! 0 ) ) , c && c . scroll === ! 1 || ! a . cm || Ic ( a . cm ) } function Da ( a , b ) { b . equals ( a . sel ) || ( a . sel = b , a . cm && ( a . cm . curOp . updateInput = a . cm . curOp . selectionChanged = ! 0 , we ( a . cm ) ) , te ( a , "cursorActivity" , a ) ) } function Ea ( a ) { Da ( a , Fa ( a , a . sel , null , ! 1 ) , Dg ) } function Fa ( a , b , c , d ) { for ( var e , f = 0 ; f < b . ranges . length ; f ++ ) { var g = b . ranges [ f ] , h = Ga ( a , g . anchor , c , d ) , i = Ga ( a , g . head , c , d ) ; ( e || h != g . anchor || i != g . head ) && ( e || ( e = b . ranges . slice ( 0 , f ) ) , e [ f ] = new ma ( h , i ) ) } return e ? na ( e , b . primIndex ) : b } function Ga ( a , b , c , d ) { var e = ! 1 , f = b , g = c || 1 ; a . cantEdit = ! 1 ; a : for ( ; ; ) { var h = Vd ( a , f . line ) ; if ( h . markedSpans ) for ( var i = 0 ; i < h . markedSpans . length ; ++ i ) { var j = h . markedSpans [ i ] , k = j . marker ; if ( ( null == j . from || ( k . inclusiveLeft ? j . from <= f . ch : j . from < f . ch ) ) && ( null == j . to || ( k . inclusiveRight ? j . to >= f . ch : j . to > f . ch ) ) ) { if ( d && ( zg ( k , "beforeCursorEnter" ) , k . explicitlyCle
ug ( b ) , void ( f . wheelStartX = null ) ; if ( e && null != Qf ) { var k = e * Qf , l = a . doc . scrollTop , m = l + f . wrapper . clientHeight ; k < 0 ? l = Math . max ( 0 , l + k - 50 ) : m = Math . min ( a . doc . height , m + k + 50 ) , D ( a , { top : l , bottom : m } ) } Pf < 20 && ( null == f . wheelStartX ? ( f . wheelStartX = g . scrollLeft , f . wheelStartY = g . scrollTop , f . wheelDX = d , f . wheelDY = e , setTimeout ( function ( ) { if ( null != f . wheelStartX ) { var a = g . scrollLeft - f . wheelStartX , b = g . scrollTop - f . wheelStartY , c = b && f . wheelDY && b / f . wheelDY || a && f . wheelDX && a / f . wheelDX ; f . wheelStartX = f . wheelStartY = null , c && ( Qf = ( Qf * Pf + c ) / ( Pf + 1 ) , ++ Pf ) } } , 200 ) ) : ( f . wheelDX += d , f . wheelDY += e ) ) } } function dc ( a , b , c ) { if ( "string" == typeof b && ( b = dg [ b ] , ! b ) ) return ! 1 ; a . display . input . ensurePolled ( ) ; var d = a . display . shift , e = ! 1 ; try { Z ( a ) && ( a . state . suppressEdits = ! 0 ) , c && ( a . display . shift = ! 1 ) , e = b ( a ) != Cg } finally { a . display . shift = d , a . state . suppressEdits = ! 1 } return e } function ec ( a , b , c ) { for ( var d = 0 ; d < a . state . keyMaps . length ; d ++ ) { var e = fg ( b , a . state . keyMaps [ d ] , c , a ) ; if ( e ) return e } return a . options . extraKeys && fg ( b , a . options . extraKeys , c , a ) || fg ( b , a . options . keyMap , c , a ) } function fc ( a , b , c , d ) { var e = a . state . keySeq ; if ( e ) { if ( gg ( b ) ) return "handled" ; Sf . set ( 50 , function ( ) { a . state . keySeq == e && ( a . state . keySeq = null , a . display . input . reset ( ) ) } ) , b = e + " " + b } var f = ec ( a , b , d ) ; return "multi" == f && ( a . state . keySeq = b ) , "handled" == f && te ( a , "keyHandled" , a , b , c ) , "handled" != f && "multi" != f || ( ug ( c ) , La ( a ) ) , e && ! f && /\'$/ . test ( b ) ? ( ug ( c ) , ! 0 ) : ! ! f } function gc ( a , b ) { var c = hg ( b , ! 0 ) ; return ! ! c && ( b . shiftKey && ! a . state . keySeq ? fc ( a , "Shift-" + c , b , function ( b ) { return dc ( a , b , ! 0 ) } ) || fc ( a , c , b , function ( b ) { if ( "string" == typeof b ? /^go[A-Z]/ . test ( b ) : b . motion ) return dc ( a , b ) } ) : fc ( a , c , b , function ( b ) { return dc ( a , b ) } ) ) } function hc ( a , b , c ) { return fc ( a , "'" + c + "'" , b , function ( b ) { return dc ( a , b , ! 0 ) } ) } function ic ( a ) { var b = this ; if ( b . curOp . focus = Pe ( ) , ! ve ( b , a ) ) { nf && of < 11 && 27 == a . keyCode && ( a . returnValue = ! 1 ) ; var c = a . keyCode ; b . display . shift = 16 == c || a . shiftKey ; var d = gc ( b , a ) ; sf && ( Tf = d ? c : null , ! d && 88 == c && ! Wg && ( yf ? a . metaKey : a . ctrlKey ) && b . replaceSelection ( "" , null , "cut" ) ) , 18 != c || /\bCodeMirror-crosshair\b/ . test ( b . display . lineDiv . className ) || jc ( b ) } } function jc ( a ) { function b ( a ) { 18 != a . keyCode && a . altKey || ( Qg ( c , "CodeMirror-crosshair" ) , yg ( document , "keyup" , b ) , yg ( document , "mouseover" , b ) ) } var c = a . display . lineDiv ; Rg ( c , "CodeMirror-crosshair" ) , xg ( document , "keyup" , b ) , xg ( document , "mouseover" , b ) } function kc ( a ) { 16 == a . keyCode && ( this . doc . sel . shift = ! 1 ) , ve ( this , a ) } function lc ( a ) { var b = this ; if ( ! ( Sb ( b . display , a ) || ve ( b , a ) || a . ctrlKey && ! a . altKey || yf && a . metaKey ) ) { var c = a . keyCode , d = a . charCode ; if ( sf && c == Tf ) return Tf = null , void ug ( a ) ; if ( ! sf || a . which && ! ( a . which < 10 ) || ! gc ( b , a ) ) { var e = String . fromCharCode ( null == d ? c : d ) ; hc ( b , a , e ) || b . display . input . onKeyPress ( a ) } } } function mc ( a ) { a . state . delayingBlurEvent = ! 0 , setTimeout ( function ( ) { a . state . delayingBlurEvent && ( a . state . delayingBlurEvent = ! 1 , oc ( a ) ) } , 100 ) } function nc ( a ) { a . state . delayingBlurEvent && ( a . state . delayingBlurEvent = ! 1 ) , "nocursor" != a . options . readOnly && ( a . state . focused || ( zg ( a , "focus" , a ) , a . state . focused = ! 0 , Rg ( a . display . wrapper , "CodeMirror-focused" ) , a . curOp || a . display . selForContextMenu == a . doc . sel || ( a . display . input . reset ( ) , pf && setTimeout ( function ( ) { a . display . input . reset ( ! 0 ) } , 20 ) ) , a . display . input . receivedFocus ( ) ) , La ( a ) ) } function oc ( a ) { a . state . delayingBlurEvent || ( a . state . focused && ( zg ( a , "blur" , a ) , a . state . focused = ! 1 , Qg ( a . display . wrapper , "CodeMirror-focused" ) ) , clearInterval ( a . display . blinker ) , setTimeout ( function ( ) { a . state . focused || ( a . display . shift = ! 1 ) } , 150 ) ) } function pc ( a , b ) { Sb ( a . display , b ) || qc ( a , b ) || a . display . input . onContextMenu ( b ) } function qc ( a , b ) { return ! ! xe ( a , "gutterContextMenu" ) && Yb ( a , b , "gutterContextMenu" , ! 1 , zg ) } function rc ( a , b ) { if ( Gf ( a , b . from ) < 0 ) return a ; if ( Gf ( a , b . to ) <= 0 ) return Uf ( b ) ; var c = a . line + b . text . length - ( b . to . line - b . from . line ) - 1 , d = a . ch ; return a . line == b . to . line && ( d += Uf ( b ) . ch - b . to . ch ) , Ff ( c , d ) } function sc ( a , b ) { for ( var c = [ ] , d = 0 ; d < a . sel . ranges . length ; d ++ ) { var e = a . sel . ranges [ d ] ; c . push ( new ma ( rc ( e . anchor , b ) , rc ( e . head , b ) ) ) } return na ( c , a . sel . primIndex ) } function tc ( a , b , c ) { return a . line == b . line ? Ff ( c . line , a . ch - b . ch + c . ch ) : Ff ( c . line + ( a . line - b . line ) , a . ch ) } function uc ( a , b , c ) { for ( var d = [ ] , e = Ff ( a . first , 0 ) , f = e , g = 0 ; g < b . length ; g ++ ) { var h = b [ g ] , i = tc ( h . from , e , f ) , j = tc ( Uf ( h ) , e , f ) ; if ( e = h . to , f = j , "around" == c ) { var
e . lastSelOrigin = f , e . lastSelOp = c , d && d . clearRedo !== ! 1 && de ( e . undone ) } function ie ( a , b ) { var c = Ce ( b ) ; c && c . ranges && c . equals ( a ) || b . push ( a ) } function je ( a , b , c , d ) { var e = b [ "spans_" + a . id ] , f = 0 ; a . iter ( Math . max ( a . first , c ) , Math . min ( a . first + a . size , d ) , function ( c ) { c . markedSpans && ( ( e || ( e = b [ "spans_" + a . id ] = { } ) ) [ f ] = c . markedSpans ) , ++ f } ) } function ke ( a ) { if ( ! a ) return null ; for ( var b , c = 0 ; c < a . length ; ++ c ) a [ c ] . marker . explicitlyCleared ? b || ( b = a . slice ( 0 , c ) ) : b && b . push ( a [ c ] ) ; return b ? b . length ? b : null : a } function le ( a , b ) { var c = b [ "spans_" + a . id ] ; if ( ! c ) return null ; for ( var d = 0 , e = [ ] ; d < b . text . length ; ++ d ) e . push ( ke ( c [ d ] ) ) ; return e } function me ( a , b , c ) { for ( var d = 0 , e = [ ] ; d < a . length ; ++ d ) { var f = a [ d ] ; if ( f . ranges ) e . push ( c ? la . prototype . deepCopy . call ( f ) : f ) ; else { var g = f . changes , h = [ ] ; e . push ( { changes : h } ) ; for ( var i = 0 ; i < g . length ; ++ i ) { var j , k = g [ i ] ; if ( h . push ( { from : k . from , to : k . to , text : k . text } ) , b ) for ( var l in k ) ( j = l . match ( /^spans_(\d+)$/ ) ) && De ( b , Number ( j [ 1 ] ) ) > - 1 && ( Ce ( h ) [ l ] = k [ l ] , delete k [ l ] ) } } } return e } function ne ( a , b , c , d ) { c < a . line ? a . line += d : b < a . line && ( a . line = b , a . ch = 0 ) } function oe ( a , b , c , d ) { for ( var e = 0 ; e < a . length ; ++ e ) { var f = a [ e ] , g = ! 0 ; if ( f . ranges ) { f . copied || ( f = a [ e ] = f . deepCopy ( ) , f . copied = ! 0 ) ; for ( var h = 0 ; h < f . ranges . length ; h ++ ) ne ( f . ranges [ h ] . anchor , b , c , d ) , ne ( f . ranges [ h ] . head , b , c , d ) } else { for ( var h = 0 ; h < f . changes . length ; ++ h ) { var i = f . changes [ h ] ; if ( c < i . from . line ) i . from = Ff ( i . from . line + d , i . from . ch ) , i . to = Ff ( i . to . line + d , i . to . ch ) ; else if ( b <= i . to . line ) { g = ! 1 ; break } } g || ( a . splice ( 0 , e + 1 ) , e = 0 ) } } } function pe ( a , b ) { var c = b . from . line , d = b . to . line , e = b . text . length - ( d - c ) - 1 ; oe ( a . done , c , d , e ) , oe ( a . undone , c , d , e ) } function qe ( a ) { return null != a . defaultPrevented ? a . defaultPrevented : 0 == a . returnValue } function re ( a ) { return a . target || a . srcElement } function se ( a ) { var b = a . which ; return null == b && ( 1 & a . button ? b = 1 : 2 & a . button ? b = 3 : 4 & a . button && ( b = 2 ) ) , yf && a . ctrlKey && 1 == b && ( b = 3 ) , b } function te ( a , b ) { function c ( a ) { return function ( ) { a . apply ( null , f ) } } var d = a . _handlers && a . _handlers [ b ] ; if ( d ) { var e , f = Array . prototype . slice . call ( arguments , 2 ) ; Mf ? e = Mf . delayedCallbacks : Ag ? e = Ag : ( e = Ag = [ ] , setTimeout ( ue , 0 ) ) ; for ( var g = 0 ; g < d . length ; ++ g ) e . push ( c ( d [ g ] ) ) } } function ue ( ) { var a = Ag ; Ag = null ; for ( var b = 0 ; b < a . length ; ++ b ) a [ b ] ( ) } function ve ( a , b , c ) { return "string" == typeof b && ( b = { type : b , preventDefault : function ( ) { this . defaultPrevented = ! 0 } } ) , zg ( a , c || b . type , a , b ) , qe ( b ) || b . codemirrorIgnore } function we ( a ) { var b = a . _handlers && a . _handlers . cursorActivity ; if ( b ) for ( var c = a . curOp . cursorActivityHandlers || ( a . curOp . cursorActivityHandlers = [ ] ) , d = 0 ; d < b . length ; ++ d ) De ( c , b [ d ] ) == - 1 && c . push ( b [ d ] ) } function xe ( a , b ) { var c = a . _handlers && a . _handlers [ b ] ; return c && c . length > 0 } function ye ( a ) { a . prototype . on = function ( a , b ) { xg ( this , a , b ) } , a . prototype . off = function ( a , b ) { yg ( this , a , b ) } } function ze ( ) { this . id = null } function Ae ( a , b , c ) { for ( var d = 0 , e = 0 ; ; ) { var f = a . indexOf ( "\t" , d ) ; f == - 1 && ( f = a . length ) ; var g = f - d ; if ( f == a . length || e + g >= b ) return d + Math . min ( g , b - e ) ; if ( e += f - d , e += c - e % c , d = f + 1 , e >= b ) return d } } function Be ( a ) { for ( ; Hg . length <= a ; ) Hg . push ( Ce ( Hg ) + " " ) ; return Hg [ a ] } function Ce ( a ) { return a [ a . length - 1 ] } function De ( a , b ) { for ( var c = 0 ; c < a . length ; ++ c ) if ( a [ c ] == b ) return c ; return - 1 } function Ee ( a , b ) { for ( var c = [ ] , d = 0 ; d < a . length ; d ++ ) c [ d ] = b ( a [ d ] , d ) ; return c } function Fe ( ) { } function Ge ( a , b ) { var c ; return Object . create ? c = Object . create ( a ) : ( Fe . prototype = a , c = new Fe ) , b && He ( b , c ) , c } function He ( a , b , c ) { b || ( b = { } ) ; for ( var d in a ) ! a . hasOwnProperty ( d ) || c === ! 1 && b . hasOwnProperty ( d ) || ( b [ d ] = a [ d ] ) ; return b } function Ie ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) ; return function ( ) { return a . apply ( null , b ) } } function Je ( a , b ) { return b ? ! ! ( b . source . indexOf ( "\\w" ) > - 1 && Lg ( a ) ) || b . test ( a ) : Lg ( a ) } function Ke ( a ) { for ( var b in a ) if ( a . hasOwnProperty ( b ) && a [ b ] ) return ! 1 ; return ! 0 } function Le ( a ) { return a . charCodeAt ( 0 ) >= 768 && Mg . test ( a ) } function Me ( a , b , c , d ) { var e = document . createElement ( a ) ; if ( c && ( e . className = c ) , d && ( e . style . cssText = d ) , "string" == typeof b ) e . appendChild ( document . createTextNode ( b ) ) ; else if ( b ) for ( var f = 0 ; f < b . length ; ++ f ) e . appendChild ( b [ f ] ) ; return e } function Ne ( a ) { for ( var b = a . childNodes . length ; b > 0 ; -- b ) a . removeChild ( a . firstChild ) ; return a } function Oe ( a , b ) { return Ne ( a ) . appendChild ( b ) } function Pe ( ) { return document . activeElement } function Qe ( a ) { return new RegExp ( "(^|\\s)" + a + " ( ? : $ | \
b . state . specialChars = new RegExp ( c . source + ( c . test ( "\t" ) ? "" : "|\t" ) , "g" ) , d != a . Init && b . refresh ( ) } ) , Pc ( "specialCharPlaceholder" , Jd , function ( a ) { a . refresh ( ) } , ! 0 ) , Pc ( "electricChars" , ! 0 ) , Pc ( "inputStyle" , xf ? "contenteditable" : "textarea" , function ( ) { throw new Error ( "inputStyle can not (yet) be changed in a running editor" ) } , ! 0 ) , Pc ( "rtlMoveVisually" , ! zf ) , Pc ( "wholeLineUpdateBefore" , ! 0 ) , Pc ( "theme" , "default" , function ( a ) { h ( a ) , i ( a ) } , ! 0 ) , Pc ( "keyMap" , "default" , function ( b , c , d ) { var e = Rc ( c ) , f = d != a . Init && Rc ( d ) ; f && f . detach && f . detach ( b , e ) , e . attach && e . attach ( b , f || null ) } ) , Pc ( "extraKeys" , null ) , Pc ( "lineWrapping" , ! 1 , e , ! 0 ) , Pc ( "gutters" , [ ] , function ( a ) { n ( a . options ) , i ( a ) } , ! 0 ) , Pc ( "fixedGutter" , ! 0 , function ( a , b ) { a . display . gutters . style . left = b ? y ( a . display ) + "px" : "0" , a . refresh ( ) } , ! 0 ) , Pc ( "coverGutterNextToScrollbar" , ! 1 , function ( a ) { s ( a ) } , ! 0 ) , Pc ( "scrollbarStyle" , "native" , function ( a ) { r ( a ) , s ( a ) , a . display . scrollbars . setScrollTop ( a . doc . scrollTop ) , a . display . scrollbars . setScrollLeft ( a . doc . scrollLeft ) } , ! 0 ) , Pc ( "lineNumbers" , ! 1 , function ( a ) { n ( a . options ) , i ( a ) } , ! 0 ) , Pc ( "firstLineNumber" , 1 , i , ! 0 ) , Pc ( "lineNumberFormatter" , function ( a ) { return a } , i , ! 0 ) , Pc ( "showCursorWhenSelecting" , ! 1 , Ha , ! 0 ) , Pc ( "resetSelectionOnContextMenu" , ! 0 ) , Pc ( "lineWiseCopyCut" , ! 0 ) , Pc ( "readOnly" , ! 1 , function ( a , b ) { "nocursor" == b ? ( oc ( a ) , a . display . input . blur ( ) , a . display . disabled = ! 0 ) : ( a . display . disabled = ! 1 , b || a . display . input . reset ( ) ) } ) , Pc ( "disableInput" , ! 1 , function ( a , b ) { b || a . display . input . reset ( ) } , ! 0 ) , Pc ( "dragDrop" , ! 0 , Qb ) , Pc ( "cursorBlinkRate" , 530 ) , Pc ( "cursorScrollMargin" , 0 ) , Pc ( "cursorHeight" , 1 , Ha , ! 0 ) , Pc ( "singleCursorHeightPerLine" , ! 0 , Ha , ! 0 ) , Pc ( "workTime" , 100 ) , Pc ( "workDelay" , 100 ) , Pc ( "flattenSpans" , ! 0 , d , ! 0 ) , Pc ( "addModeClass" , ! 1 , d , ! 0 ) , Pc ( "pollInterval" , 100 ) , Pc ( "undoDepth" , 200 , function ( a , b ) { a . doc . history . undoDepth = b } ) , Pc ( "historyEventDelay" , 1250 ) , Pc ( "viewportMargin" , 10 , function ( a ) { a . refresh ( ) } , ! 0 ) , Pc ( "maxHighlightLength" , 1e4 , d , ! 0 ) , Pc ( "moveInputWithCursor" , ! 0 , function ( a , b ) { b || a . display . input . resetPosition ( ) } ) , Pc ( "tabindex" , null , function ( a , b ) { a . display . input . getField ( ) . tabIndex = b || "" } ) , Pc ( "autofocus" , null ) ; var Yf = a . modes = { } , Zf = a . mimeModes = { } ; a . defineMode = function ( b , c ) { a . defaults . mode || "null" == b || ( a . defaults . mode = b ) , arguments . length > 2 && ( c . dependencies = Array . prototype . slice . call ( arguments , 2 ) ) , Yf [ b ] = c } , a . defineMIME = function ( a , b ) { Zf [ a ] = b } , a . resolveMode = function ( b ) { if ( "string" == typeof b && Zf . hasOwnProperty ( b ) ) b = Zf [ b ] ; else if ( b && "string" == typeof b . name && Zf . hasOwnProperty ( b . name ) ) { var c = Zf [ b . name ] ; "string" == typeof c && ( c = { name : c } ) , b = Ge ( c , b ) , b . name = c . name } else if ( "string" == typeof b && /^[\w\-]+\/[\w\-]+\+xml$/ . test ( b ) ) return a . resolveMode ( "application/xml" ) ; return "string" == typeof b ? { name : b } : b || { name : "null" } } , a . getMode = function ( b , c ) { var c = a . resolveMode ( c ) , d = Yf [ c . name ] ; if ( ! d ) return a . getMode ( b , "text/plain" ) ; var e = d ( b , c ) ; if ( $f . hasOwnProperty ( c . name ) ) { var f = $f [ c . name ] ; for ( var g in f ) f . hasOwnProperty ( g ) && ( e . hasOwnProperty ( g ) && ( e [ "_" + g ] = e [ g ] ) , e [ g ] = f [ g ] ) } if ( e . name = c . name , c . helperType && ( e . helperType = c . helperType ) , c . modeProps ) for ( var g in c . modeProps ) e [ g ] = c . modeProps [ g ] ; return e } , a . defineMode ( "null" , function ( ) { return { token : function ( a ) { a . skipToEnd ( ) } } } ) , a . defineMIME ( "text/plain" , "null" ) ; var $f = a . modeExtensions = { } ; a . extendMode = function ( a , b ) { var c = $f . hasOwnProperty ( a ) ? $f [ a ] : $f [ a ] = { } ; He ( b , c ) } , a . defineExtension = function ( b , c ) { a . prototype [ b ] = c } , a . defineDocExtension = function ( a , b ) { rg . prototype [ a ] = b } , a . defineOption = Pc ; var _f = [ ] ; a . defineInitHook = function ( a ) { _f . push ( a ) } ; var ag = a . helpers = { } ; a . registerHelper = function ( b , c , d ) { ag . hasOwnProperty ( b ) || ( ag [ b ] = a [ b ] = { _global : [ ] } ) , ag [ b ] [ c ] = d } , a . registerGlobalHelper = function ( b , c , d , e ) { a . registerHelper ( b , c , e ) , ag [ b ] . _global . push ( { pred : d , val : e } ) } ; var bg = a . copyState = function ( a , b ) { if ( b === ! 0 ) return b ; if ( a . copyState ) return a . copyState ( b ) ; var c = { } ; for ( var d in b ) { var e = b [ d ] ; e instanceof Array && ( e = e . concat ( [ ] ) ) , c [ d ] = e } return c } , cg = a . startState = function ( a , b , c ) { return ! a . startState || a . startState ( b , c ) } ; a . innerMode = function ( a , b ) { for ( ; a . innerMode ; ) { var c = a . innerMode ( b ) ; if ( ! c || c . mode == a ) break ; b = c . state , a = c . mode } return c || { mode : a , state : b } } ; var dg = a . commands = { selectAll : function ( a ) { a . setSelection ( Ff ( a . firstLine ( ) , 0 ) , Ff ( a . lastLine ( ) ) , Dg ) } , s
} catch ( c ) { } return ! ( ! b || b . parentElement ( ) != a ) && 0 != b . compareEndPoints ( "StartToEnd" , b ) } , Wg = function ( ) { var a = Me ( "div" ) ; return "oncopy" in a || ( a . setAttribute ( "oncopy" , "return;" ) , "function" == typeof a . oncopy ) } ( ) , Xg = null , Yg = { 3 : "Enter" , 8 : "Backspace" , 9 : "Tab" , 13 : "Enter" , 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 19 : "Pause" , 20 : "CapsLock" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "PrintScrn" , 45 : "Insert" , 46 : "Delete" , 59 : ";" , 61 : "=" , 91 : "Mod" , 92 : "Mod" , 93 : "Mod" , 107 : "=" , 109 : "-" , 127 : "Delete" , 173 : "-" , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 63232 : "Up" , 63233 : "Down" , 63234 : "Left" , 63235 : "Right" , 63272 : "Delete" , 63273 : "Home" , 63275 : "End" , 63276 : "PageUp" , 63277 : "PageDown" , 63302 : "Insert" } ; a . keyNames = Yg , function ( ) { for ( var a = 0 ; a < 10 ; a ++ ) Yg [ a + 48 ] = Yg [ a + 96 ] = String ( a ) ; for ( var a = 65 ; a <= 90 ; a ++ ) Yg [ a ] = String . fromCharCode ( a ) ; for ( var a = 1 ; a <= 12 ; a ++ ) Yg [ a + 111 ] = Yg [ a + 63235 ] = "F" + a } ( ) ; var Zg , $g = function ( ) { function a ( a ) { return a <= 247 ? c . charAt ( a ) : 1424 <= a && a <= 1524 ? "R" : 1536 <= a && a <= 1773 ? d . charAt ( a - 1536 ) : 1774 <= a && a <= 2220 ? "r" : 8192 <= a && a <= 8203 ? "w" : 8204 == a ? "b" : "L" } function b ( a , b , c ) { this . level = a , this . from = b , this . to = c } var c = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN" , d = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm" , e = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/ , f = /[stwN]/ , g = /[LRr]/ , h = /[Lb1n]/ , i = /[1n]/ , j = "L" ; return function ( c ) { if ( ! e . test ( c ) ) return ! 1 ; for ( var d , k = c . length , l = [ ] , m = 0 ; m < k ; ++ m ) l . push ( d = a ( c . charCodeAt ( m ) ) ) ; for ( var m = 0 , n = j ; m < k ; ++ m ) { var d = l [ m ] ; "m" == d ? l [ m ] = n : n = d } for ( var m = 0 , o = j ; m < k ; ++ m ) { var d = l [ m ] ; "1" == d && "r" == o ? l [ m ] = "n" : g . test ( d ) && ( o = d , "r" == d && ( l [ m ] = "R" ) ) } for ( var m = 1 , n = l [ 0 ] ; m < k - 1 ; ++ m ) { var d = l [ m ] ; "+" == d && "1" == n && "1" == l [ m + 1 ] ? l [ m ] = "1" : "," != d || n != l [ m + 1 ] || "1" != n && "n" != n || ( l [ m ] = n ) , n = d } for ( var m = 0 ; m < k ; ++ m ) { var d = l [ m ] ; if ( "," == d ) l [ m ] = "N" ; else if ( "%" == d ) { for ( var p = m + 1 ; p < k && "%" == l [ p ] ; ++ p ) ; for ( var q = m && "!" == l [ m - 1 ] || p < k && "1" == l [ p ] ? "1" : "N" , r = m ; r < p ; ++ r ) l [ r ] = q ; m = p - 1 } } for ( var m = 0 , o = j ; m < k ; ++ m ) { var d = l [ m ] ; "L" == o && "1" == d ? l [ m ] = "L" : g . test ( d ) && ( o = d ) } for ( var m = 0 ; m < k ; ++ m ) if ( f . test ( l [ m ] ) ) { for ( var p = m + 1 ; p < k && f . test ( l [ p ] ) ; ++ p ) ; for ( var s = "L" == ( m ? l [ m - 1 ] : j ) , t = "L" == ( p < k ? l [ p ] : j ) , q = s || t ? "L" : "R" , r = m ; r < p ; ++ r ) l [ r ] = q ; m = p - 1 } for ( var u , v = [ ] , m = 0 ; m < k ; ) if ( h . test ( l [ m ] ) ) { var w = m ; for ( ++ m ; m < k && h . test ( l [ m ] ) ; ++ m ) ; v . push ( new b ( 0 , w , m ) ) } else { var x = m , y = v . length ; for ( ++ m ; m < k && "L" != l [ m ] ; ++ m ) ; for ( var r = x ; r < m ; ) if ( i . test ( l [ r ] ) ) { x < r && v . splice ( y , 0 , new b ( 1 , x , r ) ) ; var z = r ; for ( ++ r ; r < m && i . test ( l [ r ] ) ; ++ r ) ; v . splice ( y , 0 , new b ( 2 , z , r ) ) , x = r } else ++ r ; x < m && v . splice ( y , 0 , new b ( 1 , x , m ) ) } return 1 == v [ 0 ] . level && ( u = c . match ( /^\s+/ ) ) && ( v [ 0 ] . from = u [ 0 ] . length , v . unshift ( new b ( 0 , 0 , u [ 0 ] . length ) ) ) , 1 == Ce ( v ) . level && ( u = c . match ( /\s+$/ ) ) && ( Ce ( v ) . to -= u [ 0 ] . length , v . push ( new b ( 0 , k - u [ 0 ] . length , k ) ) ) , 2 == v [ 0 ] . level && v . unshift ( new b ( 1 , v [ 0 ] . to , v [ 0 ] . to ) ) , v [ 0 ] . level != Ce ( v ) . level && v . push ( new b ( v [ 0 ] . level , k , k ) ) , v } } ( ) ; return a . version = "5.4.1" , a } ) , function ( a ) { a ( CodeMirror ) } ( function ( a ) { function b ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; ++ c ) b ( a [ c ] ) } function c ( a , b ) { if ( ! Array . prototype . indexOf ) { for ( var c = a . length ; c -- ; ) if ( a [ c ] === b ) return ! 0 ; return ! 1 } return a . indexOf ( b ) != - 1 } function d ( b , c , d , e ) { var f = b . getCursor ( ) , i = d ( b , f ) ; if ( ! /\b(?:string)\b/ . test ( i . type ) ) { i . state = a . innerMode ( b . getMode ( ) , i . state ) . state , /^[\w$_]*$/ . test ( i . string ) ? i . end > f . ch && ( i . end = f . ch , i . string = i . string . slice ( 0 , f . ch - i . start ) ) : i = { start : f . ch , end : f . ch , string : "" , state : i . state , type : "." == i . string ? "property" : null } ; for ( var j = i ; "property" == j . type ; ) { if ( j = d ( b , h ( f . line , j . start ) ) , "." != j . string ) return ; if ( j = d ( b , h ( f . line , j . start ) ) , ! k ) var k = [ ] ; k . push ( j ) } return { list : g ( i , k , c , e ) , from : h ( f . line , i . start ) , to : h ( f . line , i . end ) } } } function e ( ) { return BI . FormulaCollections } function f ( a , b ) { return d ( a , e ( ) , function ( a , b ) { return a . getTokenAt ( b ) } , b ) } function g ( a , d , e , f ) { function g ( a )
} ) } , setValue : function ( a ) { this . tab && this . tab . setValue ( a ) , this . button _group . setValue ( a ) } , getValue : function ( ) { return this . button _group . getValue ( ) } } ) , BI . PopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.popup_view" , BI . PopupView ) , BI . SearcherView = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { var a = BI . SearcherView . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-searcher-view bi-card" , tipText : BI . i18nText ( "BI-No_Select" ) , chooseType : BI . Selection . Single , matcher : { type : "bi.button_group" , behaviors : { redmark : function ( ) { return ! 0 } } , items : [ ] , layouts : [ { type : "bi.vertical" } ] } , searcher : { type : "bi.button_group" , behaviors : { 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 ( ) } ) , BI . ResizeDetector . addResizeListener ( this , function ( ) { 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 ) ; 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
this . isValid ( ) && this . fireEvent ( BI . TextItem . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doHighLight : function ( ) { this . text . doHighLight . apply ( this . text , arguments ) } , unHighLight : function ( ) { this . text . unHighLight . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . TextItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_item" , BI . TextItem ) , BI . IconTextIconNode = BI . inherit ( BI . NodeButton , { _const : { commonWidth : 25 } , _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 , b = 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 c = BI . createWidget ( { type : "bi.center_adapt" , cls : a . iconCls1 , width : b . commonWidth , height : a . height , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } ) , d = BI . createWidget ( { type : "bi.layout" , width : b . commonWidth , height : a . height } ) ; BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.center_adapt" , cls : a . iconCls2 , width : b . commonWidth , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : 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" , c , this . text , d ) } ) ) ) ) } , 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 , { _const : { commonWidth : 25 } , _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 , b = 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.center_adapt" , width : b . commonWidth , height : a . height , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : 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 ( ) { th
file : f } ) ) : a . maxSize !== - 1 && j && a . maxSize < j ? ( BI . Msg . toast ( BI . i18nText ( "BI-Upload_File_Size_Error" ) ) , b . fireEvent ( BI . File . EVENT _ERROR , { errorType : 1 , file : f } ) ) : ( a . files . unshift ( f ) , b . fireEvent ( BI . File . EVENT _CHANGE , { file : f } ) ) } c . value = "" , a . dom . input . parentNode . replaceChild ( c , a . dom . input ) , a . dom . input = c , event . add ( a . dom . input , "change" , arguments . callee ) } ) , a } , _wrap : function ( ) { var a = this . options , b = this . element [ 0 ] ; return a . multiple === ! 0 && this . element . attr ( "multiple" , "multiple" ) , 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 . dom . input ) . click ( ) } , upload : function ( a ) { this . wrap . upload ( a ) } , getValue : function ( ) { return this . wrap . attach _array } , reset : function ( ) { 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 = "BI.File.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 ) } ( ) , 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" , element : "<input/>" , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 } ) } , _init : function ( ) { BI . Input . superclass . _init . apply ( this , arguments ) ; var a = this , b = ! 1 , c = ! 1 , d = BI . debounce ( function ( c ) { a . onKeyDown ( c , b ) , a . _keydown _ = ! 1 } , 300 ) , e = BI . debounce ( BI . bind ( this . _click , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) ; this . _blurDebounce = BI . debounce ( BI . bind ( this . _blur , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) , this . element . keydown ( function ( d ) { c = ! 1 , b = d . ctrlKey , a . fireEvent ( BI . Input . EVENT _QUICK _DOWN ) } ) . keyup ( function ( b ) { c && b . keyCode === BI . KeyCode . ENTER || ( a . _keydown _ = ! 0 , d ( b . keyCode ) ) } ) . on ( "input propertychange" , function ( b ) { BI . isNotNull ( b . keyCode ) && ( c = ! 0 , a . _keydown _ = ! 0 , d ( b . keyCode ) ) } ) . click ( function ( a ) { a . stopPropagation ( ) , e ( ) } ) . mousedown ( function ( b ) { a . element . val ( a . element . val ( ) ) } ) . 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 ( ) { 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 ( ) && ( b . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CONFIRM , b . getValue ( ) , b ) , b . fireEvent ( BI . Input . EVENT _CONFIRM ) ) , b . fireEvent ( BI . Input . EVENT _BLUR ) } var b = this ; b . _keydown _ === ! 0 ? BI . delay ( a , 300 ) : a ( ) } , _click : function ( ) { this . _isEditing !== ! 0 && ( this . _focus ( ) , this . selectAll ( ) , this . fireEvent ( BI . Input . EVENT _CLICK ) ) } , onClick : function ( ) { this . _click ( ) } , onKeyDown : function ( a , b ) { this . isValid ( ) && BI . trim ( this . _lastValidValue ) === 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 . EVENT _START ) ) ) , b === ! 0 && 86 === a ? this . _val
return function ( ) { j . apply ( null , [ a , null ] . concat ( b ) . concat ( [ ] . slice . call ( arguments , 0 ) ) ) } } , j . stop = function ( ) { b = 1 } , j . nt = function ( b ) { return b ? new RegExp ( "(?:\\.|\\/|^)" + b + "(?:\\.|\\/|$)" ) . test ( a ) : a } , j . nts = function ( ) { return a . split ( e ) } , j . off = j . unbind = function ( a , b ) { if ( ! a ) return void ( j . _events = i = { n : { } } ) ; var c , g , h , k , l , m , n , o = a . split ( e ) , p = [ i ] ; for ( k = 0 , l = o . length ; k < l ; k ++ ) for ( m = 0 ; m < p . length ; m += h . length - 2 ) { if ( h = [ m , 1 ] , c = p [ m ] . n , o [ k ] != f ) c [ o [ k ] ] && h . push ( c [ o [ k ] ] ) ; else for ( g in c ) c [ d ] ( g ) && h . push ( c [ g ] ) ; p . splice . apply ( p , h ) } for ( k = 0 , l = p . length ; k < l ; k ++ ) for ( c = p [ k ] ; c . n ; ) { if ( b ) { if ( c . f ) { for ( m = 0 , n = c . f . length ; m < n ; m ++ ) if ( c . f [ m ] == b ) { c . f . splice ( m , 1 ) ; break } ! c . f . length && delete c . f } for ( g in c . n ) if ( c . n [ d ] ( g ) && c . n [ g ] . f ) { var q = c . n [ g ] . f ; for ( m = 0 , n = q . length ; m < n ; m ++ ) if ( q [ m ] == b ) { q . splice ( m , 1 ) ; break } ! q . length && delete c . n [ g ] . f } } else { delete c . f ; for ( g in c . n ) c . n [ d ] ( g ) && c . n [ g ] . f && delete c . n [ g ] . f } c = c . n } } , j . once = function ( a , b ) { var c = function ( ) { return j . unbind ( a , c ) , b . apply ( this , arguments ) } ; return j . on ( a , c ) } , j . version = c , j . toString = function ( ) { return "You are running Eve " + c } , j } ) , function ( a , b ) { "function" == typeof define && define . amd ? define ( "raphael.core" , [ "eve" ] , function ( a ) { return b ( a ) } ) : "object" == typeof exports ? module . exports = b ( require ( "eve" ) ) : a . Raphael = b ( a . eve ) } ( this , function ( a ) { function b ( c ) { if ( b . is ( c , "function" ) ) return t ? c ( ) : a . on ( "raphael.DOMload" , c ) ; if ( b . is ( c , U ) ) return b . _engine . create [ C ] ( b , c . splice ( 0 , 3 + b . is ( c [ 0 ] , S ) ) ) . add ( c ) ; var d = Array . prototype . slice . call ( arguments , 0 ) ; if ( b . is ( d [ d . length - 1 ] , "function" ) ) { var e = d . pop ( ) ; return t ? e . call ( b . _engine . create [ C ] ( b , d ) ) : a . on ( "raphael.DOMload" , function ( ) { e . call ( b . _engine . create [ C ] ( b , d ) ) } ) } return b . _engine . create [ C ] ( b , arguments ) } function c ( a ) { if ( "function" == typeof a || Object ( a ) !== a ) return a ; var b = new a . constructor ; for ( var d in a ) a [ y ] ( d ) && ( b [ d ] = c ( a [ d ] ) ) ; return b } function d ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) if ( a [ c ] === b ) return a . push ( a . splice ( c , 1 ) [ 0 ] ) } function e ( a , b , c ) { function e ( ) { var f = Array . prototype . slice . call ( arguments , 0 ) , g = f . join ( "␀" ) , h = e . cache = e . cache || { } , i = e . count = e . count || [ ] ; return h [ y ] ( g ) ? ( d ( i , g ) , c ? c ( h [ g ] ) : h [ g ] ) : ( i . length >= 1e3 && delete h [ i . shift ( ) ] , i . push ( g ) , h [ g ] = a [ C ] ( b , f ) , c ? c ( h [ g ] ) : h [ g ] ) } return e } function f ( ) { return this . hex } function g ( a , b ) { for ( var c = [ ] , d = 0 , e = a . length ; e - 2 * ! b > d ; d += 2 ) { var f = [ { x : + a [ d - 2 ] , y : + a [ d - 1 ] } , { x : + a [ d ] , y : + a [ d + 1 ] } , { x : + a [ d + 2 ] , y : + a [ d + 3 ] } , { x : + a [ d + 4 ] , y : + a [ d + 5 ] } ] ; b ? d ? e - 4 == d ? f [ 3 ] = { x : + a [ 0 ] , y : + a [ 1 ] } : e - 2 == d && ( f [ 2 ] = { x : + a [ 0 ] , y : + a [ 1 ] } , f [ 3 ] = { x : + a [ 2 ] , y : + a [ 3 ] } ) : f [ 0 ] = { x : + a [ e - 2 ] , y : + a [ e - 1 ] } : e - 4 == d ? f [ 3 ] = f [ 2 ] : d || ( f [ 0 ] = { x : + a [ d ] , y : + a [ d + 1 ] } ) , c . push ( [ "C" , ( - f [ 0 ] . x + 6 * f [ 1 ] . x + f [ 2 ] . x ) / 6 , ( - f [ 0 ] . y + 6 * f [ 1 ] . y + f [ 2 ] . y ) / 6 , ( f [ 1 ] . x + 6 * f [ 2 ] . x - f [ 3 ] . x ) / 6 , ( f [ 1 ] . y + 6 * f [ 2 ] . y - f [ 3 ] . y ) / 6 , f [ 2 ] . x , f [ 2 ] . y ] ) } return c } function h ( a , b , c , d , e ) { var f = - 3 * b + 9 * c - 9 * d + 3 * e , g = a * f + 6 * b - 12 * c + 6 * d ; return a * g - 3 * b + 3 * c } function i ( a , b , c , d , e , f , g , i , j ) { null == j && ( j = 1 ) , j = j > 1 ? 1 : j < 0 ? 0 : j ; for ( var k = j / 2 , l = 12 , m = [ - . 1252 , . 1252 , - . 3678 , . 3678 , - . 5873 , . 5873 , - . 7699 , . 7699 , - . 9041 , . 9041 , - . 9816 , . 9816 ] , n = [ . 2491 , . 2491 , . 2335 , . 2335 , . 2032 , . 2032 , . 1601 , . 1601 , . 1069 , . 1069 , . 0472 , . 0472 ] , o = 0 , p = 0 ; p < l ; p ++ ) { var q = k * m [ p ] + k , r = h ( q , a , c , e , g ) , s = h ( q , b , d , f , i ) , t = r * r + s * s ; o += n [ p ] * M . sqrt ( t ) } return k * o } function j ( a , b , c , d , e , f , g , h , j ) { if ( ! ( j < 0 || i ( a , b , c , d , e , f , g , h ) < j ) ) { var k , l = 1 , m = l / 2 , n = l - m , o = . 01 ; for ( k = i ( a , b , c , d , e , f , g , h , n ) ; P ( k - j ) > o ; ) m /= 2 , n += ( k < j ? 1 : - 1 ) * m , k = i ( a , b , c , d , e , f , g , h , n ) ; return n } } function k ( a , b , c , d , e , f , g , h ) { if ( ! ( N ( a , c ) < O ( e , g ) || O ( a , c ) > N ( e , g ) || N ( b , d ) < O ( f , h ) || O ( b , d ) > N ( f , h ) ) ) { var i = ( a * d - b * c ) * ( e - g ) - ( a - c ) * ( e * h - f * g ) , j = ( a * d - b * c ) * ( f - h ) - ( b - d ) * ( e * h - f * g ) , k = ( a - c ) * ( f - h ) - ( b - d ) * ( e - g ) ; if ( k ) { var l = i / k , m = j / k , n = + l . toFixed ( 2 ) , o = + m . toFixed ( 2 ) ; if ( ! ( n < + O ( a , c ) . toFixed ( 2 ) || n > + N ( a , c ) . toFixed ( 2 ) || n < + O ( e , g ) . toFixed ( 2 ) || n > + N ( e , g ) . toFixed ( 2 ) || o < + O ( b , d ) . toFixed ( 2 ) || o > + N ( b , d ) . toFixed ( 2 ) || o < + O ( f , h ) . toFixed ( 2 ) || o > + N ( f , h ) . toFixed ( 2 ) ) ) return { x : l , y : m } } } } function l ( a , c , d ) { var e = b . bezierBBox ( a ) , f = b . bezierBBox ( c ) ; if ( ! b . isBBoxIntersect ( e , f ) ) return d ? 0 : [ ] ; for ( var g = i . apply ( 0 , a ) , h = i . apply ( 0 , c ) , j = N ( ~ ~ ( g / 5 ) , 1 ) , l = N ( ~ ~ ( h / 5 ) , 1 ) , m = [ ] , n = [ ] , o = { } , p = d ? 0 : [ ] , q = 0 ; q < j + 1 ; q ++ ) { var r = b . findDotsAtSegment . apply ( b , a . concat ( q / j ) ) ; m . push ( { x : r . x , y : r . y , t : q / j } ) } for ( q = 0 ; q < l + 1 ; q ++ ) r = b . findDotsAtSegment . apply ( b , c . concat ( q / l ) ) , n . push ( { x : r . x , y : r . y , t : q / l } ) ; for ( q = 0 ; q < j ; q ++ ) for ( var s = 0 ; s < l ; s ++ ) { var t = m [ q ] , u = m [ q
return new n ( a . d / b , - a . b / b , - a . c / b , a . a / b , ( a . c * a . f - a . d * a . e ) / b , ( a . b * a . e - a . a * a . f ) / b ) } , a . clone = function ( ) { return new n ( this . a , this . b , this . c , this . d , this . e , this . f ) } , a . translate = function ( a , b ) { this . add ( 1 , 0 , 0 , 1 , a , b ) } , a . scale = function ( a , b , c , d ) { null == b && ( b = a ) , ( c || d ) && this . add ( 1 , 0 , 0 , 1 , c , d ) , this . add ( a , 0 , 0 , b , 0 , 0 ) , ( c || d ) && this . add ( 1 , 0 , 0 , 1 , - c , - d ) } , a . rotate = function ( a , c , d ) { a = b . rad ( a ) , c = c || 0 , d = d || 0 ; var e = + M . cos ( a ) . toFixed ( 9 ) , f = + M . sin ( a ) . toFixed ( 9 ) ; this . add ( e , f , - f , e , c , d ) , this . add ( 1 , 0 , 0 , 1 , - c , - d ) } , a . x = function ( a , b ) { return a * this . a + b * this . c + this . e } , a . y = function ( a , b ) { return a * this . b + b * this . d + this . f } , a . get = function ( a ) { return + this [ H . fromCharCode ( 97 + a ) ] . toFixed ( 4 ) } , a . toString = function ( ) { return b . svg ? "matrix(" + [ this . get ( 0 ) , this . get ( 1 ) , this . get ( 2 ) , this . get ( 3 ) , this . get ( 4 ) , this . get ( 5 ) ] . join ( ) + ")" : [ this . get ( 0 ) , this . get ( 2 ) , this . get ( 1 ) , this . get ( 3 ) , 0 , 0 ] . join ( ) } , a . toFilter = function ( ) { return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this . get ( 0 ) + ", M12=" + this . get ( 2 ) + ", M21=" + this . get ( 1 ) + ", M22=" + this . get ( 3 ) + ", Dx=" + this . get ( 4 ) + ", Dy=" + this . get ( 5 ) + ", sizingmethod='auto expand')" } , a . offset = function ( ) { return [ this . e . toFixed ( 4 ) , this . f . toFixed ( 4 ) ] } , a . split = function ( ) { var a = { } ; a . dx = this . e , a . dy = this . f ; var e = [ [ this . a , this . c ] , [ this . b , this . d ] ] ; a . scalex = M . sqrt ( c ( e [ 0 ] ) ) , d ( e [ 0 ] ) , a . shear = e [ 0 ] [ 0 ] * e [ 1 ] [ 0 ] + e [ 0 ] [ 1 ] * e [ 1 ] [ 1 ] , e [ 1 ] = [ e [ 1 ] [ 0 ] - e [ 0 ] [ 0 ] * a . shear , e [ 1 ] [ 1 ] - e [ 0 ] [ 1 ] * a . shear ] , a . scaley = M . sqrt ( c ( e [ 1 ] ) ) , d ( e [ 1 ] ) , a . shear /= a . scaley ; var f = - e [ 0 ] [ 1 ] , g = e [ 1 ] [ 1 ] ; return g < 0 ? ( a . rotate = b . deg ( M . acos ( g ) ) , f < 0 && ( a . rotate = 360 - a . rotate ) ) : a . rotate = b . deg ( M . asin ( f ) ) , a . isSimple = ! ( + a . shear . toFixed ( 9 ) || a . scalex . toFixed ( 9 ) != a . scaley . toFixed ( 9 ) && a . rotate ) , a . isSuperSimple = ! + a . shear . toFixed ( 9 ) && a . scalex . toFixed ( 9 ) == a . scaley . toFixed ( 9 ) && ! a . rotate , a . noRotation = ! + a . shear . toFixed ( 9 ) && ! a . rotate , a } , a . toTransformString = function ( a ) { var b = a || this [ I ] ( ) ; return b . isSimple ? ( b . scalex = + b . scalex . toFixed ( 4 ) , b . scaley = + b . scaley . toFixed ( 4 ) , b . rotate = + b . rotate . toFixed ( 4 ) , ( b . dx || b . dy ? "t" + [ b . dx , b . dy ] : F ) + ( 1 != b . scalex || 1 != b . scaley ? "s" + [ b . scalex , b . scaley , 0 , 0 ] : F ) + ( b . rotate ? "r" + [ b . rotate , 0 , 0 ] : F ) ) : "m" + [ this . get ( 0 ) , this . get ( 1 ) , this . get ( 2 ) , this . get ( 3 ) , this . get ( 4 ) , this . get ( 5 ) ] } } ( n . prototype ) ; for ( var Oa = function ( ) { this . returnValue = ! 1 } , Pa = function ( ) { return this . originalEvent . preventDefault ( ) } , Qa = function ( ) { this . cancelBubble = ! 0 } , Ra = function ( ) { return this . originalEvent . stopPropagation ( ) } , Sa = function ( a ) { var b = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , c = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft ; return { x : a . clientX + c , y : a . clientY + b } } , Ta = function ( ) { return z . doc . addEventListener ? function ( a , b , c , d ) { var e = function ( a ) { var b = Sa ( a ) ; return c . call ( d , a , b . x , b . y ) } ; if ( a . addEventListener ( b , e , ! 1 ) , E && K [ b ] ) { var f = function ( b ) { for ( var e = Sa ( b ) , f = b , g = 0 , h = b . targetTouches && b . targetTouches . length ; g < h ; g ++ ) if ( b . targetTouches [ g ] . target == a ) { b = b . targetTouches [ g ] , b . originalEvent = f , b . preventDefault = Pa , b . stopPropagation = Ra ; break } return c . call ( d , b , e . x , e . y ) } ; a . addEventListener ( K [ b ] , f , ! 1 ) } return function ( ) { return a . removeEventListener ( b , e , ! 1 ) , E && K [ b ] && a . removeEventListener ( K [ b ] , f , ! 1 ) , ! 0 } } : z . doc . attachEvent ? function ( a , b , c , d ) { var e = function ( a ) { a = a || z . win . event ; var b = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , e = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft , f = a . clientX + e , g = a . clientY + b ; return a . preventDefault = a . preventDefault || Oa , a . stopPropagation = a . stopPropagation || Qa , c . call ( d , a , f , g ) } ; a . attachEvent ( "on" + b , e ) ; var f = function ( ) { return a . detachEvent ( "on" + b , e ) , ! 0 } ; return f } : void 0 } ( ) , Ua = [ ] , Va = function ( b ) { for ( var c , d = b . clientX , e = b . clientY , f = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , g = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft , h = Ua . length ; h -- ; ) { if ( c = Ua [ h ] , E && b . touches ) { for ( var i , j = b . touches . length ; j -- ; ) if ( i = b . touches [ j ] , i . identifier == c . el . _drag . id ) { d = i . clientX , e = i . clientY , ( b . originalEvent ? b . originalEvent : b ) . preventDefault ( ) ; break } } else b . preventDefault ( ) ; var k , l = c . el . node , m = l . nextSibling , n = l . parentNode , o = l . style . display ; z . win . opera && n . removeChild ( l ) , l . style . display = "none" , k = c . el . paper . getElementByPoint ( d , e ) , l . style . display = o , z . win . opera && ( m ? n . insertBefore ( l , m ) : n . appendChild ( l ) ) , k && a ( "raphael.drag.over." + c . el . id , c . el , k
this [ 0 ] = this . node = b , b . raphael = ! 0 , this . id = a . _oid ++ , b . raphaelid = this . id , this . matrix = a . matrix ( ) , this . realPath = null , this . paper = c , this . attrs = this . attrs || { } , this . _ = { transform : [ ] , sx : 1 , sy : 1 , deg : 0 , dx : 0 , dy : 0 , dirty : 1 } , ! c . bottom && ( c . bottom = this ) , this . prev = c . top , c . top && ( c . top . next = this ) , c . top = this , this . next = null } , B = a . el ; A . prototype = B , B . constructor = A , a . _engine . path = function ( a , b ) { var c = q ( "path" ) ; b . canvas && b . canvas . appendChild ( c ) ; var d = new A ( c , b ) ; return d . type = "path" , w ( d , { fill : "none" , stroke : "#000" , path : a } ) , d } , B . rotate = function ( a , b , e ) { if ( this . removed ) return this ; if ( a = c ( a ) . split ( j ) , a . length - 1 && ( b = d ( a [ 1 ] ) , e = d ( a [ 2 ] ) ) , a = d ( a [ 0 ] ) , null == e && ( b = e ) , null == b || null == e ) { var f = this . getBBox ( 1 ) ; b = f . x + f . width / 2 , e = f . y + f . height / 2 } return this . transform ( this . _ . transform . concat ( [ [ "r" , a , b , e ] ] ) ) , this } , B . scale = function ( a , b , e , f ) { if ( this . removed ) return this ; if ( a = c ( a ) . split ( j ) , a . length - 1 && ( b = d ( a [ 1 ] ) , e = d ( a [ 2 ] ) , f = d ( a [ 3 ] ) ) , a = d ( a [ 0 ] ) , null == b && ( b = a ) , null == f && ( e = f ) , null == e || null == f ) var g = this . getBBox ( 1 ) ; return e = null == e ? g . x + g . width / 2 : e , f = null == f ? g . y + g . height / 2 : f , this . transform ( this . _ . transform . concat ( [ [ "s" , a , b , e , f ] ] ) ) , this } , B . translate = function ( a , b ) { return this . removed ? this : ( a = c ( a ) . split ( j ) , a . length - 1 && ( b = d ( a [ 1 ] ) ) , a = d ( a [ 0 ] ) || 0 , b = + b || 0 , this . transform ( this . _ . transform . concat ( [ [ "t" , a , b ] ] ) ) , this ) } , B . transform = function ( c ) { var d = this . _ ; if ( null == c ) return d . transform ; if ( a . _extractTransform ( this , c ) , this . clip && q ( this . clip , { transform : this . matrix . invert ( ) } ) , this . pattern && s ( this ) , this . node && q ( this . node , { transform : this . matrix } ) , 1 != d . sx || 1 != d . sy ) { var e = this . attrs [ b ] ( "stroke-width" ) ? this . attrs [ "stroke-width" ] : 1 ; this . attr ( { "stroke-width" : e } ) } return this } , B . hide = function ( ) { return this . removed || ( this . node . style . display = "none" ) , this } , B . show = function ( ) { return this . removed || ( this . node . style . display = "" ) , this } , B . remove = function ( ) { var b = z ( this . node ) ; if ( ! this . removed && b . parentNode ) { var c = this . paper ; c . _ _set _ _ && c . _ _set _ _ . exclude ( this ) , k . unbind ( "raphael.*.*." + this . id ) , this . gradient && c . defs . removeChild ( this . gradient ) , a . _tear ( this , c ) , b . parentNode . removeChild ( b ) , this . removeData ( ) ; for ( var d in this ) this [ d ] = "function" == typeof this [ d ] ? a . _removedFactory ( d ) : null ; this . removed = ! 0 } } , B . _getBBox = function ( ) { if ( "none" == this . node . style . display ) { this . show ( ) ; var a = ! 0 } var b , c = ! 1 ; this . paper . canvas . parentElement ? b = this . paper . canvas . parentElement . style : this . paper . canvas . parentNode && ( b = this . paper . canvas . parentNode . style ) , b && "none" == b . display && ( c = ! 0 , b . display = "" ) ; var d = { } ; try { d = this . node . getBBox ( ) } catch ( e ) { d = { x : this . node . clientLeft , y : this . node . clientTop , width : this . node . clientWidth , height : this . node . clientHeight } } finally { d = d || { } , c && ( b . display = "none" ) } return a && this . hide ( ) , d } , B . attr = function ( c , d ) { if ( this . removed ) return this ; if ( null == c ) { var e = { } ; for ( var f in this . attrs ) this . attrs [ b ] ( f ) && ( e [ f ] = this . attrs [ f ] ) ; return e . gradient && "none" == e . fill && ( e . fill = e . gradient ) && delete e . gradient , e . transform = this . _ . transform , e } if ( null == d && a . is ( c , "string" ) ) { if ( "fill" == c && "none" == this . attrs . fill && this . attrs . gradient ) return this . attrs . gradient ; if ( "transform" == c ) return this . _ . transform ; for ( var g = c . split ( j ) , h = { } , i = 0 , l = g . length ; i < l ; i ++ ) c = g [ i ] , c in this . attrs ? h [ c ] = this . attrs [ c ] : a . is ( this . paper . customAttributes [ c ] , "function" ) ? h [ c ] = this . paper . customAttributes [ c ] . def : h [ c ] = a . _availableAttrs [ c ] ; return l - 1 ? h : h [ g [ 0 ] ] } if ( null == d && a . is ( c , "array" ) ) { for ( h = { } , i = 0 , l = c . length ; i < l ; i ++ ) h [ c [ i ] ] = this . attr ( c [ i ] ) ; return h } if ( null != d ) { var m = { } ; m [ c ] = d } else null != c && a . is ( c , "object" ) && ( m = c ) ; for ( var n in m ) k ( "raphael.attr." + n + "." + this . id , this , m [ n ] ) ; for ( n in this . paper . customAttributes ) if ( this . paper . customAttributes [ b ] ( n ) && m [ b ] ( n ) && a . is ( this . paper . customAttributes [ n ] , "function" ) ) { var o = this . paper . customAttributes [ n ] . apply ( this , [ ] . concat ( m [ n ] ) ) ; this . attrs [ n ] = m [ n ] ; for ( var p in o ) o [ b ] ( p ) && ( m [ p ] = o [ p ] ) } return w ( this , m ) , this } , B . toFront = function ( ) { if ( this . removed ) return this ; var b = z ( this . node ) ; b . parentNode . appendChild ( b ) ; var c = this . paper ; return c . top != this && a . _tofront ( this , c ) , this } , B . toBack = function ( ) { if ( this . removed ) return this ; var b = z ( this . node ) , c = b . parentNode ; c . insertBefore ( b , c . firstChild ) , a . _toback ( this , this . paper ) ; this . paper ; return this } , B . insertAfter = function ( b ) { if ( this . remove
} , setHeight : function ( a ) { BI . CollectionTableCell . superclass . setHeight . apply ( this , arguments ) ; var b = this . options ; this . cell . setHeight ( b . height - ( 0 === b . _top ? 1 : 0 ) - 1 ) } } ) , BI . shortcut ( "bi.collection_table_cell" , BI . CollectionTableCell ) , BI . CollectionTable = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . CollectionTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-collection-table" , headerRowSize : 25 , rowSize : 25 , columnSize : [ ] , isNeedFreeze : ! 1 , freezeCols : [ ] , isNeedMerge : ! 1 , mergeCols : [ ] , mergeRule : BI . emptyFn , header : [ ] , items : [ ] , regionColumnSize : [ ] } ) } , render : function ( ) { var a = this , b = this . options ; this . _width = 0 , this . _height = 0 , this . _scrollBarSize = BI . DOM . getScrollWidth ( ) , this . topLeftCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . topLeftItems [ b ] } } ) , this . topLeftCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . topRightCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . topRightItems [ b ] } } ) , this . topRightCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomRightCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . bottomLeftCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . bottomLeftItems [ b ] } } ) , this . bottomLeftCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomRightCollection . setScrollTop ( b . scrollTop ) , a . topLeftCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . bottomRightCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . bottomRightItems [ b ] } } ) , this . bottomRightCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollTop ( b . scrollTop ) , a . topRightCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . topLeft = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . topLeftCollection ] } ) , this . topRight = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . topRightCollection ] } ) , this . bottomLeft = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . bottomLeftCollection ] } ) , this . bottomRight = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . bottomRightCollection ] } ) , this . contextLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . topLeft , top : 0 , left : 0 } , { el : this . topRight , top : 0 } , { el : this . bottomLeft , left : 0 } , { el : this . bottomRight } ] } ) , this . topScrollbar = BI . createWidget ( { type : "bi.grid_table_scrollbar" , width : BI . GridTableScrollbar . SIZE } ) , this . topScrollbar . on ( BI . GridTableScrollbar . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollTop ( b ) , a . bottomRightCollection . setScrollTop ( b ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . leftScrollbar = BI . createWidget ( { type : "bi.grid_table_horizontal_scrollbar" , height : BI . GridTableScrollbar . SIZE } ) , this . leftScrollbar . on ( BI . GridTableScrollbar . EVENT _SCROLL , function ( b ) { a . topLeftCollection . setScrollLeft ( b ) , a . bottomLeftCollection . setScrollLeft ( b ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . rightScrollbar = BI . createWidget ( { type : "bi.grid_table_horizontal_scrollbar" , height : BI . GridTableScrollbar . SIZE } ) , this . rightScrollbar . on ( BI . GridTableScrollbar . EVENT _SCROLL , function ( b ) { a . topRightCollection . setScrollLeft ( b ) , a . bottomRightCollection . setScrollLeft ( b ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . scrollBarLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . topScrollbar , right : 0 , top : 0 } , { el : this . leftScrollbar , left : 0 } , { el : this . rightScrollbar } ] } ) , this . _width = b . width - BI . GridTableScrollbar . SIZE , this . _height = b . height - BI . GridTableScrollbar . SIZE } , mounted : function ( ) { var a = this . options ; ( a . items . length > 0 || a . header . length > 0 ) && ( this . _digest ( ) , this . _populate ( ) ) } , _getFreezeColLength : function ( ) { var a =
} , _defaultConfig : function ( ) { return BI . extend ( BI . GridTableScrollbar . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "scrollbar-layout-main public-scrollbar-main" , attributes : { tabIndex : 0 } , contentSize : 0 , defaultPosition : 0 , isOpaque : ! 1 , orientation : "vertical" , position : 0 , size : 0 } ) } , render : function ( ) { this . options ; this . focused = ! 1 , this . isDragging = ! 1 , this . face = BI . createWidget ( { type : "bi.layout" , cls : "scrollbar-layout-face public-scrollbar-face " + ( this . _isHorizontal ( ) ? "scrollbar-layout-face-horizontal" : "scrollbar-layout-face-vertical" ) } ) , this . contextLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . face , left : 0 , top : 0 } ] } ) } , mounted : function ( ) { var a = this , b = this . options , c = "horizontal" === b . orientation ? this . _onWheelX : this . _onWheelY ; this . _wheelHandler = new BI . WheelHandler ( BI . bind ( c , this ) , BI . bind ( this . _shouldHandleX , this ) , BI . bind ( this . _shouldHandleY , this ) ) , this . _mouseMoveTracker = new BI . MouseMoveTracker ( BI . bind ( this . _onMouseMove , this ) , BI . bind ( this . _onMouseMoveEnd , this ) , document ) , this . element . on ( "mousedown" , BI . bind ( this . _onMouseDown , this ) ) , this . element . on ( "mousewheel" , function ( b ) { a . _wheelHandler . onWheel ( b . originalEvent ) } ) , this . element . on ( "keydown" , BI . bind ( this . _onKeyDown , this ) ) , this . element . on ( "focus" , function ( ) { a . focused = ! 0 , a . _populate ( ) } ) , this . element . on ( "blur" , function ( ) { a . focused = ! 1 , a . _populate ( ) } ) , this . _isHorizontal ( ) ? this . element . addClass ( "scrollbar-layout-main-horizontal" ) : this . element . addClass ( "scrollbar-layout-main-vertical" ) , this . _populate ( ) } , _isHorizontal : function ( ) { return "horizontal" === this . options . orientation } , _getScale : function ( ) { var a = this . options , b = a . size / a . contentSize , c = a . size * b ; return c < this . _const . FACE _SIZE _MIN && ( b = ( a . size - this . _const . FACE _SIZE _MIN ) / ( a . contentSize - a . size ) ) , b } , _getFaceSize : function ( ) { var a = this . options , b = a . size / a . contentSize , c = a . size * b ; return c < this . _const . FACE _SIZE _MIN && ( c = this . _const . FACE _SIZE _MIN ) , c } , _shouldHandleX : function ( a ) { return "horizontal" === this . options . orientation && this . _shouldHandleChange ( a ) } , _shouldHandleY : function ( a ) { return "horizontal" !== this . options . orientation && this . _shouldHandleChange ( a ) } , _shouldHandleChange : function ( a ) { return this . options . position + a !== this . options . position } , _onWheelY : function ( a , b ) { this . _onWheel ( b ) } , _onWheelX : function ( a , b ) { this . _onWheel ( a ) } , _onWheel : function ( a ) { var b = this . options . contentSize - this . options . size ; this . options . position += a , this . options . position < 0 ? this . options . position = 0 : this . options . position > b && ( this . options . position = b ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } , _onMouseDown : function ( a ) { if ( a . target !== this . face . element [ 0 ] ) { var b = this . _isHorizontal ( ) ? a . offsetX : a . offsetY ; b /= this . _getScale ( ) , this . options . position = BI . clamp ( b - . 5 * this . _getFaceSize ( ) / this . _getScale ( ) , 0 , this . options . contentSize - this . options . size ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } else this . _mouseMoveTracker . captureMouseMoves ( a ) ; try { this . element [ 0 ] . focus ( ) } catch ( a ) { } } , _onMouseMove : function ( a , b ) { var c = this . _isHorizontal ( ) ? a : b ; c /= this . _getScale ( ) , this . options . position = BI . clamp ( this . options . position + c , 0 , this . options . contentSize - this . options . size ) , this . isDragging = this . _mouseMoveTracker . isDragging ( ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } , _onMouseMoveEnd : function ( a ) { this . _mouseMoveTracker . releaseMouseMoves ( ) , this . isDragging === ! 0 && ( this . isDragging = ! 1 , this . _populate ( ) ) } , _onKeyDown : function ( a ) { var b = { BACKSPACE : 8 , TAB : 9 , RETURN : 13 , ALT : 18 , ESC : 27 , SPACE : 32 , PAGE _UP : 33 , PAGE _DOWN : 34 , END : 35 , HOME : 36 , LEFT : 37 , UP : 38 , RIGHT : 39 , DOWN : 40 , DELETE : 46 , COMMA : 188 , PERIOD : 190 , A : 65 , Z : 90 , ZERO : 48 , NUMPAD _0 : 96 , NUMPAD _9 : 105 } , c = a . keyCode ; if ( c !== b . TAB ) { var d = 40 , e = 0 ; if ( this . _isHorizontal ( ) ) switch ( c ) { case b . HOME : e = - 1 , d = this . options . contentSize ; break ; case b . LEFT : e = - 1 ; break ; case b . RIGHT : e = 1 ; break ; default : return } if ( ! this . _isHorizontal ( ) ) switch ( c ) { case b . SPACE : e = a . shiftKey ? - 1 : 1 ; break ; case b . HOME : e = - 1 , d = this . options . contentSize ; break ; case b . UP : e = - 1 ; break ; case b . DOWN : e = 1 ; break ; case b . PAGE _UP : e = - 1 , d = this . options . size ; break ; case b . PAGE _DOWN : e = 1 , d = this . options . size ; break ; default : retu
this . partitions . resize ( ) ) : this . tableContainer . element . width ( a [ 0 ] ) : b . isNeedFreeze ? ( this . partitions . attr ( "columnSize" , this . _isRightFreeze ( ) ? [ 0 , "fill" ] : [ "fill" , 0 ] ) , this . partitions . resize ( ) ) : this . tableContainer . element . width ( a [ 0 ] ) } , getRegionColumnSize : function ( ) { return this . options . regionColumnSize } , getCalculateRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element . width ( ) , this . scrollBottomRight . element . width ( ) ] : [ this . scrollBottomRight . element . width ( ) ] } , getCalculateRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollTopRight . element . height ( ) , this . scrollBottomRight . element . height ( ) ] : [ this . scrollBottomRight . element . height ( ) ] } , getClientRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . clientWidth , this . scrollBottomRight . element [ 0 ] . clientWidth ] : [ this . scrollBottomRight . element [ 0 ] . clientWidth ] } , getClientRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . clientHeight , this . scrollBottomRight . element [ 0 ] . clientHeight ] : [ this . scrollBottomRight . element [ 0 ] . clientHeight ] } , getScrollRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . scrollWidth , this . scrollBottomRight . element [ 0 ] . scrollWidth ] : [ this . scrollBottomRight . element [ 0 ] . scrollWidth ] } , getScrollRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? a . freezeCols . length < a . columnSize . length ? [ this . scrollTopRight . element [ 0 ] . scrollHeight , this . scrollBottomRight . element [ 0 ] . scrollHeight ] : [ this . scrollTopLeft . element [ 0 ] . scrollHeight , this . scrollBottomLeft . element [ 0 ] . scrollHeight ] : [ this . scrollBottomRight . element [ 0 ] . scrollHeight ] } , hasVerticalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element . hasVerticalScroll ( ) || this . scrollBottomLeft . element . hasVerticalScroll ( ) : this . scrollBottomRight . element . hasVerticalScroll ( ) } , setVerticalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomRight . element [ 0 ] . scrollTop !== a && ( this . scrollBottomRight . element [ 0 ] . scrollTop = a ) , this . scrollBottomLeft . element [ 0 ] . scrollTop !== a && ( this . scrollBottomLeft . element [ 0 ] . scrollTop = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollTop !== a && ( this . scrollBottomRight . element [ 0 ] . scrollTop = a ) } , setLeftHorizontalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomLeft . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomLeft . element [ 0 ] . scrollLeft = a ) , this . scrollTopLeft . element [ 0 ] . scrollLeft !== a && ( this . scrollTopLeft . element [ 0 ] . scrollLeft = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) } , setRightHorizontalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) , this . scrollTopRight . element [ 0 ] . scrollLeft !== a && ( this . scrollTopRight . element [ 0 ] . scrollLeft = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) } , getVerticalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element [ 0 ] . scrollTop || this . scrollBottomLeft . element [ 0 ] . scrollTop : this . scrollBottomRight . element [ 0 ] . scrollTop } , getLeftHorizontalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomLeft . element [ 0 ] . scrollLeft : this . scrollBottomRight . element [ 0 ] . scrollLeft } , getRightHorizontalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element [ 0 ] . scrollLeft : this . scrollBottomRight . element [ 0 ] . scrollLeft } , getColumns : function ( ) { var a = this . options ; return a . isNeedFreeze ? { topLeft : this . topLeftBodyItems , topRight : this . topRightBodyItems , bottomLeft : this . bottomLeftBodyItems , bottomRight : this . bottomRightBodyItems } : { header : this . headerItems , body : this . bodyItems , footer : this . footerItems } } , _empty : function ( ) { this . scrollBottomRight && this . scrollBottomRight . destroy ( ) , BI . each ( this . partitions && this . partitions . _children , function ( a , b ) { b && b . destroy ( ) } ) } , populate : function ( a , b ) { this . options . items = a || [ ] , b && ( this . options . header = b ) , this . _empty ( ) , this . options . isNeedFreeze ?
var _tmpV = data . getRoot ( setting ) . _ver ; return $ . ajax ( { contentType : setting . async . contentType , cache : ! 1 , type : setting . async . type , url : tools . apply ( setting . async . url , [ setting . treeId , node ] , setting . async . url ) , data : tmpParam , dataType : setting . async . dataType , success : function ( msg ) { if ( _tmpV == data . getRoot ( setting ) . _ver ) { var newNodes = [ ] ; try { newNodes = msg && 0 != msg . length ? "string" == typeof msg ? eval ( "(" + msg + ")" ) : msg : [ ] } catch ( err ) { newNodes = msg } node && ( node . isAjaxing = null , node . zAsync = ! 0 ) , view . setNodeLineIcos ( setting , node ) , newNodes && "" !== newNodes ? ( newNodes = tools . apply ( setting . async . dataFilter , [ setting . treeId , node , newNodes ] , newNodes ) , view . addNodes ( setting , node , newNodes ? tools . clone ( newNodes ) : [ ] , ! ! isSilent ) ) : view . addNodes ( setting , node , [ ] , ! ! isSilent ) , setting . treeObj . trigger ( consts . event . ASYNC _SUCCESS , [ setting . treeId , node , msg ] ) , tools . apply ( callback ) } } , error : function ( a , b , c ) { _tmpV == data . getRoot ( setting ) . _ver && ( node && ( node . isAjaxing = null ) , view . setNodeLineIcos ( setting , node ) , setting . treeObj . trigger ( consts . event . ASYNC _ERROR , [ setting . treeId , node , a , b , c ] ) ) } } ) , ! 0 } , cancelPreSelectedNode : function ( a , b , c ) { var d , e , f = data . getRoot ( a ) . curSelectedList ; for ( d = f . length - 1 ; d >= 0 ; d -- ) if ( e = f [ d ] , b === e || ! b && ( ! c || c !== e ) ) { if ( $$ ( e , consts . id . A , a ) . removeClass ( consts . node . CURSELECTED ) , b ) { data . removeSelectedNode ( a , b ) , a . treeObj . trigger ( consts . event . UNSELECTED , [ event , a . treeId , e ] ) ; break } f . splice ( d , 1 ) , a . treeObj . trigger ( consts . event . UNSELECTED , [ event , a . treeId , e ] ) } } , createNodeCallback : function ( a ) { if ( a . callback . onNodeCreated || a . view . addDiyDom ) for ( var b = data . getRoot ( a ) ; b . createdNodes . length > 0 ; ) { var c = b . createdNodes . shift ( ) ; tools . apply ( a . view . addDiyDom , [ a . treeId , c ] ) , a . callback . onNodeCreated && a . treeObj . trigger ( consts . event . NODECREATED , [ a . treeId , c ] ) } } , createNodes : function ( a , b , c , d ) { if ( c && 0 != c . length ) { var e = data . getRoot ( a ) , f = a . data . key . children , g = ! d || d . open || ! ! $$ ( d [ f ] [ 0 ] , a ) . get ( 0 ) ; e . createdNodes = [ ] ; var h = view . appendNodes ( a , b , c , d , ! 0 , g ) ; if ( d ) { var i = $$ ( d , consts . id . UL , a ) ; i . get ( 0 ) && i . append ( h . join ( "" ) ) } else a . treeObj . append ( h . join ( "" ) ) ; view . createNodeCallback ( a ) } } , destroy : function ( a ) { a && ( data . initCache ( a ) , data . initRoot ( a ) , event . unbindTree ( a ) , event . unbindEvent ( a ) , a . treeObj . empty ( ) , delete settings [ a . treeId ] ) } , expandCollapseNode : function ( a , b , c , d , e ) { var f = data . getRoot ( a ) , g = a . data . key . children ; if ( ! b ) return void tools . apply ( e , [ ] ) ; if ( f . expandTriggerFlag ) { var h = e ; e = function ( ) { h && h ( ) , b . open ? a . treeObj . trigger ( consts . event . EXPAND , [ a . treeId , b ] ) : a . treeObj . trigger ( consts . event . COLLAPSE , [ a . treeId , b ] ) } , f . expandTriggerFlag = ! 1 } if ( ! b . open && b . isParent && ( ! $$ ( b , consts . id . UL , a ) . get ( 0 ) || b [ g ] && b [ g ] . length > 0 && ! $$ ( b [ g ] [ 0 ] , a ) . get ( 0 ) ) && ( view . appendParentULDom ( a , b ) , view . createNodeCallback ( a ) ) , b . open == c ) return void tools . apply ( e , [ ] ) ; var i = $$ ( b , consts . id . UL , a ) , j = $$ ( b , consts . id . SWITCH , a ) , k = $$ ( b , consts . id . ICON , a ) ; b . isParent ? ( b . open = ! b . open , b . iconOpen && b . iconClose && k . attr ( "style" , view . makeNodeIcoStyle ( a , b ) ) , b . open ? ( view . replaceSwitchClass ( b , j , consts . folder . OPEN ) , view . replaceIcoClass ( b , k , consts . folder . OPEN ) , 0 == d || "" == a . view . expandSpeed ? ( i . show ( ) , tools . apply ( e , [ ] ) ) : b [ g ] && b [ g ] . length > 0 ? i . slideDown ( a . view . expandSpeed , e ) : ( i . show ( ) , tools . apply ( e , [ ] ) ) ) : ( view . replaceSwitchClass ( b , j , consts . folder . CLOSE ) , view . replaceIcoClass ( b , k , consts . folder . CLOSE ) , 0 != d && "" != a . view . expandSpeed && b [ g ] && b [ g ] . length > 0 ? i . slideUp ( a . view . expandSpeed , e ) : ( i . hide ( ) , tools . apply ( e , [ ] ) ) ) ) : tools . apply ( e , [ ] ) } , expandCollapseParentNode : function ( a , b , c , d , e ) { if ( b ) { if ( ! b . parentTId ) return void view . expandCollapseNode ( a , b , c , d , e ) ; view . expandCollapseNode ( a , b , c , d ) , b . parentTId && view . expandCollapseParentNode ( a , b . getParentNode ( ) , c , d , e ) } } , expandCollapseSonNode : function ( a , b , c , d , e ) { var f = data . getRoot ( a ) , g = a . data . key . children , h = b ? b [ g ] : f [ g ] , i = ! b && d , j = data . getRoot ( a ) . expandTriggerFlag ; if ( data . getRoot ( a ) . expandTriggerFlag = ! 1 , h ) for ( var k = 0 , l = h . length ; k < l ; k ++ ) h [ k ] && view . expandCollapseSonNode ( a , h [ k ] , c , i ) ; data . getRoot ( a ) . expandTriggerFlag = j , view . expandCollapseNode ( a , b , c , d , e ) } , isSelectedNode : function ( a , b ) { if ( ! b ) return ! 1 ; var c , d = data . getRoot ( a ) . curSelectedList ; for ( c = d . length - 1 ; c >= 0 ; c -- ) if ( b === d [ c ] ) return ! 0 ; return ! 1 } , makeDOMNodeIcon : function ( a , b , c ) { var d = data . getNodeName ( b , c ) , e = b . view . nameIsHTML ? d : d . replace (
var a = this . options ; this . text = BI . createWidget ( { type : "bi.label" , element : this , textAlign : a . textAlign , whiteSpace : "nowrap" , textHeight : a . height , height : a . height , hgap : a . hgap , text : a . text , keyword : a . keyword , value : a . value , py : a . py } ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectItem . superclass . doClick . apply ( this , arguments ) } , setSelected : function ( a ) { BI . SingleSelectItem . superclass . setSelected . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.single_select_item" , BI . SingleSelectItem ) , BI . SingleSelectRadioItem = BI . inherit ( BI . BasicButton , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectRadioItem . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-single-select-radio-item bi-list-item-active" , logic : { dynamic : ! 1 } , hgap : 10 , height : 25 } ) } , _init : function ( ) { BI . SingleSelectRadioItem . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . radio = BI . createWidget ( { type : "bi.radio" } ) , this . radio . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , 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 ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , { type : "bi.center_adapt" , items : [ this . radio ] , width : 36 } , this . text ) } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectRadioItem . superclass . doClick . apply ( this , arguments ) , this . radio . setSelected ( this . isSelected ( ) ) } , setSelected : function ( a ) { BI . SingleSelectRadioItem . superclass . setSelected . apply ( this , arguments ) , this . radio . setSelected ( a ) } } ) , BI . shortcut ( "bi.single_select_radio_item" , BI . SingleSelectRadioItem ) , BI . ArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . ArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-arrow-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { var a = this , b = this . options ; BI . ArrowNode . superclass . _init . apply ( this , arguments ) , this . checkbox = BI . createWidget ( { type : "bi.arrow_group_node_checkbox" , iconWidth : 13 , iconHeight : 13 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 25 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . ArrowNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isOpened ( ) ) } , setText : function ( a ) { BI . ArrowNode . superclass . setText . apply ( this , arguments ) , this . text . setText ( a ) } , setOpened : function ( a ) { BI . ArrowNode . superclass . setOpened . apply ( this , arguments ) , this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.arrow_group_node" , BI . ArrowNode ) , BI . FirstPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . FirstPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-first-plus-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { BI . FirstPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.first_tree_node_checkbox" , stopPropagation : ! 0 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlig
extraCls : "tree-collapse-icon-type2" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . FirstTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . FirstTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type2" ) : this . element . removeClass ( "tree-expand-icon-type2" ) } } ) , BI . shortcut ( "bi.first_tree_node_checkbox" , BI . FirstTreeNodeCheckbox ) , BI . LastTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . LastTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type4" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . LastTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . LastTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type3" ) : this . element . removeClass ( "tree-expand-icon-type3" ) } } ) , BI . shortcut ( "bi.last_tree_node_checkbox" , BI . LastTreeNodeCheckbox ) , BI . MidTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MidTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type3" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . MidTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . MidTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type3" ) : this . element . removeClass ( "tree-expand-icon-type3" ) } } ) , BI . shortcut ( "bi.mid_tree_node_checkbox" , BI . MidTreeNodeCheckbox ) , BI . TreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type1" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . TreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . TreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a ? this . element . addClass ( "tree-expand-icon-type1" ) : this . element . removeClass ( "tree-expand-icon-type1" ) } } ) , BI . shortcut ( "bi.tree_node_checkbox" , BI . TreeNodeCheckbox ) ; try { ! function ( a ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = a ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , a ) ; else { var b ; b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , b . Clipboard = a ( ) } } ( function ( ) { var a ; return function b ( a , c , d ) { function e ( g , h ) { if ( ! c [ g ] ) { if ( ! a [ g ] ) { var i = "function" == typeof require && require ; if ( ! h && i ) return i ( g , ! 0 ) ; if ( f ) return f ( g , ! 0 ) ; var j = new Error ( "Cannot find module '" + g + "'" ) ; throw j . code = "MODULE_NOT_FOUND" , j } var k = c [ g ] = { exports : { } } ; a [ g ] [ 0 ] . call ( k . exports , function ( b ) { var c = a [ g ] [ 1 ] [ b ] ; return e ( c ? c : b ) } , k , k . exports , b , a , c , d ) } return c [ g ] . exports } for ( var f = "function" == typeof require && require , g = 0 ; g < d . length ; g ++ ) e ( d [ g ] ) ; return e } ( { 1 : [ function ( a , b , c ) { function d ( a , b ) { for ( ; a && a . nodeType !== e ; ) { if ( a . matches ( b ) ) return a ; a = a . parentNode } } var e = 9 ; if ( "undefined" != typeof Element && ! Element . prototype . matches ) { var f = Element . prototype ; f . matches = f . matchesSelector || f . mozMatchesSelector || f . msMatchesSelector || f . oMatchesSelector || f . webkitMatchesSelector } b . exports = d } , { } ] , 2 : [ function ( a , b , c ) { function d ( a , b , c , d , f ) { var g = e . apply ( this , arguments ) ; return a . addEventListener ( c , g , f ) , { destroy : function ( ) { a . removeEventListener ( c , g , f ) } } } function e ( a , b , c , d ) { return function ( c ) { c . delegateTarget = f ( c . target , b ) , c . delegateTarget && d . call ( a , c ) } } var f = a ( "./closest" ) ; b . exports = d } , { "./closest" : 1 } ] , 3 : [ function ( a , b , c ) { c . node = function ( a ) { return void 0 !== a && a instanceof HTMLElement && 1 === a . nodeType } , c . nodeList = function ( a ) { var b = Object . prototype . toString . call ( a ) ; return void 0 !== a && ( "[object NodeList]" === b || "[object HTMLCollection]" === b ) && "length" in a && ( 0 === a . length || c . node ( a [ 0 ] ) ) } , c . string = function ( a ) { return "string" == typeof a || a instanceof String } , c . fn = function ( a ) { var b = Object . prototype . toString . call ( a ) ; return "[object Function]" === b } } , { } ] , 4 : [ function ( a , b , c ) { function d ( a , b , c ) { if ( ! a && ! b && ! c ) throw new Error ( "Missing required arguments" ) ; if ( ! h . string ( b ) ) throw new TypeError ( " Second argu
a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) , this . transparent = BI . createWidget ( { type : "bi.checkbox" , title : BI . i18nText ( "BI-Transparent_Color" ) } ) , this . transparent . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? ( a . lastColor = a . getValue ( ) , a . setValue ( "transparent" ) ) : a . setValue ( a . lastColor || "#000000" ) , a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . colorShow , width : "fill" } , { el : b [ 0 ] , lgap : 10 , width : 16 } , { el : this . R , width : 32 } , { el : b [ 1 ] , lgap : 10 , width : 16 } , { el : this . G , width : 32 } , { el : b [ 2 ] , lgap : 10 , width : 16 } , { el : this . B , width : 32 } , { el : { type : "bi.center_adapt" , items : [ this . none ] } , width : 18 } , { el : { type : "bi.center_adapt" , items : [ this . transparent ] } , width : 18 } ] } ) } , setValue : function ( a ) { if ( "transparent" === a ) return this . transparent . setSelected ( ! 0 ) , this . none . setSelected ( ! 1 ) , this . R . setValue ( "" ) , this . G . setValue ( "" ) , void this . B . setValue ( "" ) ; a ? this . none . setSelected ( ! 1 ) : ( a = "" , this . none . setSelected ( ! 0 ) ) , this . transparent . setSelected ( ! 1 ) , this . colorShow . element . css ( "background-color" , a ) ; var b = BI . DOM . rgb2json ( BI . DOM . hex2rgb ( a ) ) ; this . R . setValue ( BI . isNull ( b . r ) ? "" : b . r ) , this . G . setValue ( BI . isNull ( b . g ) ? "" : b . g ) , this . B . setValue ( BI . isNull ( b . b ) ? "" : b . b ) } , getValue : function ( ) { return this . transparent . isSelected ( ) ? "transparent" : BI . DOM . rgb2hex ( BI . DOM . json2rgb ( { r : this . R . getValue ( ) , g : this . G . getValue ( ) , b : this . B . getValue ( ) } ) ) } } ) , BI . ColorPickerEditor . EVENT _CHANGE = "ColorPickerEditor.EVENT_CHANGE" , BI . shortcut ( "bi.color_picker_editor" , BI . ColorPickerEditor ) , BI . Farbtastic = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Farbtastic . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-farbtastic" , width : 195 , height : 195 } ) } , _init : function ( ) { BI . Farbtastic . superclass . _init . apply ( this , arguments ) } , mounted : function ( ) { var a = this ; this . farbtastic = $ . farbtastic ( this . element , function ( b ) { a . fireEvent ( BI . Farbtastic . EVENT _CHANGE , a . getValue ( ) , a ) } ) } , setValue : function ( a ) { this . farbtastic . setColor ( a ) } , getValue : function ( ) { return this . farbtastic . color } } ) , BI . Farbtastic . EVENT _CHANGE = "Farbtastic.EVENT_CHANGE" , BI . shortcut ( "bi.farbtastic" , BI . Farbtastic ) , jQuery . fn . farbtastic = function ( a ) { return $ . farbtastic ( this , a ) , this } , jQuery . farbtastic = function ( a , b ) { var a = $ ( a ) . get ( 0 ) ; return a . farbtastic || ( a . farbtastic = new jQuery . _farbtastic ( a , b ) ) } , jQuery . _farbtastic = function ( a , b ) { var c = this ; $ ( a ) . html ( '<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>' ) ; var d = $ ( ".farbtastic" , a ) ; c . wheel = $ ( ".wheel" , a ) . get ( 0 ) , c . radius = 84 , c . square = 100 , c . width = 194 , navigator . appVersion . match ( /MSIE [0-6]\./ ) && $ ( "*" , d ) . each ( function ( ) { if ( "none" != this . currentStyle . backgroundImage ) { var a = this . currentStyle . backgroundImage ; a = this . currentStyle . backgroundImage . substring ( 5 , a . length - 2 ) , $ ( this ) . css ( { backgroundImage : "none" , filter : "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + a + "')" } ) } } ) , c . linkTo = function ( a ) { return "object" == typeof c . callback && $ ( c . callback ) . unbind ( "keyup" , c . updateValue ) , c . color = null , "function" == typeof a ? c . callback = a : "object" != typeof a && "string" != typeof a || ( c . callback = $ ( a ) , c . callback . bind ( "keyup" , c . updateValue ) , c . callback . get ( 0 ) . value && c . setColor ( c . callback . get ( 0 ) . value ) ) , this } , c . updateValue = function ( a ) { this . value && this . value != c . color && c . setColor ( this . value ) } , c . setColor = function ( a ) { var b = c . unpack ( a ) ; return c . color != a && b && ( c . color = a , c . rgb = b , c . hsl = c . RGBToHSL ( c . rgb ) , c . updateDisplay ( ) ) , this } , c . setHSL = function ( a ) { return c . hsl = a , c . rgb = c . HSLToRGB ( a ) , c . color = c . pack ( c . rgb ) , c . updateDisplay ( ) , this } , c . widgetCoords = function ( a ) { var b , d , e = a . target || a . srcElement , f = c . wheel ; if ( "undefined" != typeof a . offsetX ) { for ( var g = { x : a . offsetX , y : a . offsetY } , h = e ; h ; ) h . mouseX = g . x , h . mouseY = g . y , g . x += h . offsetLeft , g . y += h . offsetTop , h = h . offsetParent ; for ( var h = f , i = { x : 0 , y : 0 } ; h ; ) { if ( "undefined" != typeof h . mouseX ) { b = h . mouseX - i . x , d = h . m
_init : function ( ) { BI . TextValueCheckComboPopup . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this ; this . popup = BI . createWidget ( { type : "bi.button_group" , items : this . _formatItems ( a . items ) , 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 . TextValueCheckComboPopup . EVENT _CHANGE , c , d ) } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . popup ] } ) } , _formatItems : function ( a ) { return BI . map ( a , function ( a , b ) { return BI . extend ( { type : "bi.icon_text_item" , cls : "item-check-font bi-list-item" , height : 30 } , b ) } ) } , populate : function ( a ) { BI . TextValueCheckComboPopup . superclass . populate . apply ( this , arguments ) , this . popup . populate ( this . _formatItems ( a ) ) } , getValue : function ( ) { return this . popup . getValue ( ) } , setValue : function ( a ) { this . popup . setValue ( a ) } } ) , BI . TextValueCheckComboPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_check_combo_popup" , BI . TextValueCheckComboPopup ) , BI . TextValueCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . TextValueCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseClass : "bi-text-value-combo" , height : 30 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , text : "" , value : "" } ) } , _init : function ( ) { BI . TextValueCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.select_text_trigger" , items : b . items , height : b . height , text : b . text , value : b . value } ) , this . popup = BI . createWidget ( { type : "bi.text_value_combo_popup" , chooseType : b . chooseType , value : b . value , items : b . items } ) , this . popup . on ( BI . TextValueComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . textIconCombo . hideView ( ) , a . fireEvent ( BI . TextValueCombo . EVENT _CHANGE , arguments ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . textIconCombo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { var a = this . popup . getValue ( ) ; return BI . isNull ( a ) ? [ ] : BI . isArray ( a ) ? a : [ a ] } , populate : function ( a ) { this . options . items = a , this . textIconCombo . populate ( a ) } } ) , BI . TextValueCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_combo" , BI . TextValueCombo ) , BI . SmallTextValueCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SmallTextValueCombo . superclass . _defaultConfig . apply ( this , arguments ) , { width : 100 , height : 24 , chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , el : { } , text : "" } ) } , _init : function ( ) { BI . SmallTextValueCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( b . el , { type : "bi.small_select_text_trigger" , items : b . items , height : b . height , text : b . text } ) , this . popup = BI . createWidget ( { type : "bi.text_value_combo_popup" , chooseType : b . chooseType , items : b . items } ) , this . popup . on ( BI . TextValueComboPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . SmallTextValueCombo . hideView ( ) , a . fireEvent ( BI . SmallTextValueCombo . EVENT _CHANGE ) } ) , this . popup . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . SmallTextValueCombo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup , maxHeight : 300 } } ) } , 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 . ite
BI . isNumber ( a ) ? void ( a === BI . Selection . All ? ( this . text . setText ( BI . i18nText ( "BI-Select_All" ) ) , this . text . setTitle ( "" ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : a === BI . Selection . Multi ? ( this . text . setText ( BI . i18nText ( "BI-Select_Part" ) ) , this . text . setTitle ( "" ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( BI . i18nText ( "BI-Basic_Unrestricted" ) ) , this . text . setTitle ( "" ) , this . text . element . addClass ( "state-editor-infinite-text" ) ) ) : BI . isString ( a ) ? ( this . text . setText ( a ) , this . text . setTitle ( a ) , void this . text . element . removeClass ( "state-editor-infinite-text" ) ) : void ( BI . isArray ( a ) && ( BI . isEmpty ( a ) ? ( this . text . setText ( BI . i18nText ( "BI-Basic_Unrestricted" ) ) , this . text . element . addClass ( "state-editor-infinite-text" ) ) : 1 === a . length ? ( this . text . setText ( a [ 0 ] ) , this . text . setTitle ( a [ 0 ] ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( BI . i18nText ( "BI-Select_Part" ) ) , this . text . setTitle ( "" ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) ) ) } } ) , BI . StateEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . StateEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . StateEditor . EVENT _BLUR = "EVENT_BLUR" , BI . StateEditor . EVENT _CLICK = "EVENT_CLICK" , BI . StateEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . StateEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . StateEditor . EVENT _START = "EVENT_START" , BI . StateEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . StateEditor . EVENT _STOP = "EVENT_STOP" , BI . StateEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . StateEditor . EVENT _VALID = "EVENT_VALID" , BI . StateEditor . EVENT _ERROR = "EVENT_ERROR" , BI . StateEditor . EVENT _ENTER = "EVENT_ENTER" , BI . StateEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . StateEditor . EVENT _SPACE = "EVENT_SPACE" , BI . StateEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.state_editor" , BI . StateEditor ) , BI . SimpleStateEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . SimpleStateEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-simple-state-editor" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , mouseOut : ! 1 , allowBlank : ! 0 , watermark : "" , errorText : "" , height : 24 } ) } , _init : function ( ) { BI . SimpleStateEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , value : b . value , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText } ) , this . text = BI . createWidget ( { type : "bi.text_button" , cls : "state-editor-infinite-text bi-disabled" , textAlign : "left" , height : b . height , text : BI . i18nText ( "BI-Basic_Unrestricted" ) , hgap : 4 , handler : function ( ) { a . _showInput ( ) , a . editor . focus ( ) , a . editor . setValue ( "" ) } } ) , this . text . on ( BI . TextButton . EVENT _CHANGE , function ( ) { BI . nextTick ( function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _CLICK _LABEL ) } ) } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . text , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _FOCUS , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _BLUR , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _CLICK , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _KEY _DOWN , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _VALID , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . _showHint ( ) , a . fireEvent ( BI . SimpleStateEditor . EVENT _CONFIRM , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _START , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SimpleStateEditor . EVENT _PAUSE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _
height : 20 , value : c . curr , title : c . curr , invisible : ! 0 } ) , this . hpager = BI . createWidget ( { type : "bi.pager" , width : 76 , layouts : [ { type : "bi.horizontal" , scrollx : ! 1 , rgap : 24 , vgap : 1 } ] , invisible : ! 0 , dynamicShow : ! 1 , pages : c . pages , curr : c . curr , groups : 0 , first : ! 1 , last : ! 1 , prev : { type : "bi.icon_button" , value : "prev" , title : BI . i18nText ( "BI-Left_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_First_Page" ) , height : 20 , iconWidth : 16 , iconHeight : 16 , cls : "direction-pager-prev row-pre-page-h-font" } , next : { type : "bi.icon_button" , value : "next" , title : BI . i18nText ( "BI-Right_Page" ) , warningTitle : BI . i18nText ( "BI-Current_Is_Last_Page" ) , height : 20 , iconWidth : 16 , iconHeight : 16 , cls : "direction-pager-next row-next-page-h-font" } , hasPrev : c . hasPrev , hasNext : c . hasNext , firstPage : c . firstPage , lastPage : c . lastPage } ) , this . hpager . on ( BI . Pager . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DirectionPager . EVENT _CHANGE ) } ) , this . hpager . on ( BI . Pager . EVENT _AFTER _POPULATE , function ( ) { a . hlabel . setValue ( this . getCurrentPage ( ) ) , a . hlabel . setTitle ( this . getCurrentPage ( ) ) } ) } , getVPage : function ( ) { return this . vpager . getCurrentPage ( ) } , getHPage : function ( ) { return this . hpager . getCurrentPage ( ) } , setVPage : function ( a ) { this . vpager . setValue ( a ) , this . vlabel . setValue ( a ) , this . vlabel . setTitle ( a ) } , setHPage : function ( a ) { this . hpager . setValue ( a ) , this . hlabel . setValue ( a ) , this . hlabel . setTitle ( a ) } , hasVNext : function ( ) { return this . vpager . hasNext ( ) } , hasHNext : function ( ) { return this . hpager . hasNext ( ) } , hasVPrev : function ( ) { return this . vpager . hasPrev ( ) } , hasHPrev : function ( ) { return this . hpager . hasPrev ( ) } , setHPagerVisible : function ( a ) { this . hpager . setVisible ( a ) , this . hlabel . setVisible ( a ) } , setVPagerVisible : function ( a ) { this . vpager . setVisible ( a ) , this . vlabel . setVisible ( a ) } , populate : function ( ) { this . vpager . populate ( ) , this . hpager . populate ( ) ; var a = ! 1 , b = ! 1 ; this . hasHNext ( ) || this . hasHPrev ( ) ? ( this . setHPagerVisible ( ! 0 ) , b = ! 0 ) : this . setHPagerVisible ( ! 1 ) , this . hasVNext ( ) || this . hasVPrev ( ) ? ( this . setVPagerVisible ( ! 0 ) , a = ! 0 ) : this . setVPagerVisible ( ! 1 ) , this . setVisible ( b || a ) ; var c = [ 74 , 111 , - 9 , 28 ] , d = this . layout . attr ( "items" ) ; a === ! 0 && b === ! 0 ? ( d [ 0 ] . right = c [ 0 ] , d [ 1 ] . right = c [ 1 ] , d [ 2 ] . right = c [ 2 ] , d [ 3 ] . right = c [ 3 ] ) : a === ! 0 ? ( d [ 0 ] . right = c [ 2 ] , d [ 1 ] . right = c [ 3 ] ) : b === ! 0 && ( d [ 2 ] . right = c [ 2 ] , d [ 3 ] . right = c [ 3 ] ) , this . layout . attr ( "items" , d ) , this . layout . resize ( ) } , clear : function ( ) { this . vpager . attr ( "curr" , 1 ) , this . hpager . attr ( "curr" , 1 ) } } ) , BI . DirectionPager . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.direction_pager" , BI . DirectionPager ) , BI . DetailPager = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . DetailPager . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-detail-pager" , behaviors : { } , layouts : [ { type : "bi.horizontal" , hgap : 10 , vgap : 0 } ] , dynamicShow : ! 0 , dynamicShowFirstLast : ! 1 , dynamicShowPrevNext : ! 1 , pages : ! 1 , curr : function ( ) { return 1 } , groups : 0 , jump : BI . emptyFn , first : ! 1 , last : ! 1 , prev : "上一页" , next : "下一页" , firstPage : 1 , lastPage : function ( ) { return 1 } , hasPrev : BI . emptyFn , hasNext : BI . emptyFn } ) } , _init : function ( ) { BI . DetailPager . superclass . _init . apply ( this , arguments ) ; var a = this ; this . currPage = BI . result ( this . options , "curr" ) , this . _lock = ! 1 , this . _debouce = BI . debounce ( function ( ) { a . _lock = ! 1 } , 300 ) , this . _populate ( ) } , _populate : function ( ) { var a = this , b = this . options , c = [ ] , d = { } ; this . empty ( ) ; var e = BI . result ( b , "pages" ) , f = BI . result ( this , "currPage" ) , g = BI . result ( b , "groups" ) , h = BI . result ( b , "first" ) , i = BI . result ( b , "last" ) , j = BI . result ( b , "prev" ) , k = BI . result ( b , "next" ) ; e === ! 1 ? ( g = 0 , h = ! 1 , i = ! 1 ) : g > e && ( g = e ) , d . index = Math . ceil ( ( f + ( g > 1 && g !== e ? 1 : 0 ) ) / ( 0 === g ? 1 : g ) ) , ( ! b . dynamicShow && ! b . dynamicShowPrevNext || f > 1 ) && j !== ! 1 && ( BI . isKey ( j ) ? c . push ( { text : j , value : "prev" , disabled : e === ! 1 ? b . hasPrev ( f ) === ! 1 : ! ( f > 1 && j !== ! 1 ) } ) : c . push ( BI . extend ( { disabled : e === ! 1 ? b . hasPrev ( f ) === ! 1 : ! ( f > 1 && j !== ! 1 ) } , j ) ) ) , ( ! b . dynamicShow && ! b . dynamicShowFirstLast || d . index > 1 && 0 !== g ) && h && ( c . push ( { text : h , value : "first" , disabled : ! ( d . index > 1 && 0 !== g ) } ) , d . index > 1 && 0 !== g && c . push ( { type : "bi.label" , cls : "page-ellipsis" , text : "…" } ) ) , d . poor = Math . floor ( ( g - 1 ) / 2 ) , d . start = d . index > 1 ? f - d . poor : 1 , d . end = d . index > 1 ? function ( ) { var a = f + ( g - d . poor - 1 ) ; return a > e ? e : a } ( ) : g , d . end - d . start < g - 1 && ( d . start = d . end - g + 1 ) ; var l = d . start , m = d . end ; for ( h && i && d . index > 1 && 0 !== g && e > g && d . end < e && 0 !== g && ( l ++ , m -- ) ; l <= m ; l ++ ) l === f ? c . push ( { text : l , va
} , _createHeader : function ( a ) { var b = this . options , c = b . header || [ ] , d = b . crossHeader || [ ] , e = BI . TableTree . formatCrossItems ( b . crossItems , a , b . headerCellStyleGetter ) , f = [ ] ; if ( BI . each ( e , function ( a , b ) { var c = [ d [ a ] ] ; f . push ( c . concat ( b || [ ] ) ) } ) , c && c . length > 0 ) { var g = this . _formatColumns ( c ) , h = this . _getHDeep ( ) ; h <= 0 ? g . unshift ( b . rowHeaderCreator || { type : "bi.table_style_cell" , text : BI . i18nText ( "BI-Row_Header" ) , styleGetter : b . headerCellStyleGetter } ) : g [ 0 ] = b . rowHeaderCreator || { type : "bi.table_style_cell" , text : BI . i18nText ( "BI-Row_Header" ) , styleGetter : b . headerCellStyleGetter } , f . push ( g ) } return f } , _formatItems : function ( a , b , c ) { function d ( a , b ) { a . type || ( a . type = "bi.layer_tree_table_cell" ) , a . layer = b ; var c = [ a ] ; c = c . concat ( a . values || [ ] ) , c . length > 0 && f . push ( c ) , BI . isNotEmptyArray ( a . children ) && BI . each ( a . children , function ( a , c ) { d ( c , b + 1 ) } ) } var e = this . options , f = [ ] ; return BI . each ( a , function ( a , b ) { if ( BI . each ( b . children , function ( a , b ) { d ( b , 0 ) } ) , BI . isArray ( b . values ) ) { var c = [ { type : "bi.table_style_cell" , text : BI . i18nText ( "BI-Summary_Values" ) , styleGetter : function ( ) { return e . summaryCellStyleGetter ( ! 0 ) } } ] . concat ( b . values ) ; f . push ( c ) } } ) , BI . DynamicSummaryTreeTable . formatSummaryItems ( f , b , e . crossItems , 1 ) } , _formatColumns : function ( a , b ) { return BI . isNotEmptyArray ( a ) ? ( b = b || this . _getHDeep ( ) , a . slice ( Math . max ( 0 , b - 1 ) ) ) : a } , _formatFreezeCols : function ( ) { return this . options . freezeCols . length > 0 ? [ 0 ] : [ ] } , _formatColumnSize : function ( a , b ) { if ( a . length <= 0 ) return [ ] ; var c = [ 0 ] ; return b = b || this . _getHDeep ( ) , BI . each ( a , function ( a , d ) { return a < b ? void ( c [ 0 ] += d ) : void c . push ( d ) } ) , c } , _recomputeColumnSize : function ( ) { var a = this . options ; a . regionColumnSize = this . table . getRegionColumnSize ( ) ; var b = this . table . getColumnSize ( ) . slice ( ) ; if ( a . freezeCols . length > 1 ) for ( var c = 0 ; c < a . freezeCols . length - 1 ; c ++ ) b . splice ( 1 , 0 , 0 ) ; a . columnSize = b } , _digest : function ( ) { var a = this . options , b = this . _getHDeep ( ) , c = this . _getVDeep ( ) , d = this . _createHeader ( c ) , e = this . _formatItems ( a . items , d , b ) , f = a . columnSize . slice ( ) , g = a . minColumnSize . slice ( ) , h = a . maxColumnSize . slice ( ) ; return BI . removeAt ( f , e . deletedCols ) , BI . removeAt ( g , e . deletedCols ) , BI . removeAt ( h , e . deletedCols ) , { header : e . header , items : e . items , columnSize : this . _formatColumnSize ( f , b ) , minColumnSize : this . _formatColumns ( g , b ) , maxColumnSize : this . _formatColumns ( h , b ) , freezeCols : this . _formatFreezeCols ( ) } } , _init : function ( ) { BI . DynamicSummaryLayerTreeTable . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _digest ( ) ; this . table = BI . createWidget ( b . el , { type : "bi.resizable_table" , element : this , width : b . width , height : b . height , isNeedResize : b . isNeedResize , isResizeAdapt : b . isResizeAdapt , isNeedFreeze : b . isNeedFreeze , freezeCols : c . freezeCols , isNeedMerge : b . isNeedMerge , mergeCols : [ ] , mergeRule : b . mergeRule , columnSize : c . columnSize , minColumnSize : c . minColumnSize , maxColumnSize : c . maxColumnSize , headerRowSize : b . headerRowSize , rowSize : b . rowSize , regionColumnSize : b . regionColumnSize , header : c . header , items : c . items } ) , this . table . on ( BI . Table . EVENT _TABLE _SCROLL , function ( ) { a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , function ( ) { a . _recomputeColumnSize ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , function ( ) { a . _recomputeColumnSize ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , arguments ) } ) } , setWidth : function ( a ) { BI . DynamicSummaryLayerTreeTable . superclass . setWidth . apply ( this , arguments ) , this . table . setWidth ( a ) } , setHeight : function ( a ) { BI . DynamicSummaryLayerTreeTable . superclass . setHeight . apply ( this , arguments ) , this . table . setHeight ( a ) } , setColumnSize : function ( a ) { this . options . columnSize = a } , getColumnSize : function ( ) { return this . options . columnSize } , setRegionColumnSize : function ( a ) { this . options . regionColumnSize = a , this . table . setRegionColumnSize ( a ) } , getRegionColumnSize : function ( ) { return this . table . getRegionColumnSize ( ) } , setVerticalScroll : function ( a ) { this . table . setVerticalScroll ( a ) } , setLeftHorizontalScroll : function ( a ) { this . table . setLeftHorizontalScroll ( a ) } , setRightHorizontalScroll : function ( a ) { this . table . setRightHorizontalScroll ( a ) } , getVerticalScroll : function ( ) { return this . table . getVerticalScroll ( ) } , getLeftHorizontalScroll : function
_defaultConfig : function ( ) { return BI . extend ( BI . HandStandBranchExpander . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-handstand-branch-expander" , direction : BI . Direction . Top , logic : { dynamic : ! 0 } , el : { type : "bi.label" } , popup : { } } ) } , _init : function ( ) { BI . HandStandBranchExpander . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _initExpander ( ) , this . _initBranchView ( ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( a . direction ) , BI . extend ( { } , a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( a . direction , { type : "bi.center_adapt" , items : [ this . expander ] } , this . branchView ) } ) ) ) ) } , _initExpander : function ( ) { var a = this , b = this . options ; this . expander = BI . createWidget ( b . el ) , this . expander . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , _initBranchView : function ( ) { var a = this , b = this . options ; this . branchView = BI . createWidget ( b . popup , { } ) , this . branchView . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { this . branchView . populate . apply ( this . branchView , arguments ) } , getValue : function ( ) { return this . branchView . getValue ( ) } } ) , BI . HandStandBranchExpander . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.handstand_branch_expander" , BI . HandStandBranchExpander ) , BI . BranchExpander = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . BranchExpander . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-branch-expander" , direction : BI . Direction . Left , logic : { dynamic : ! 0 } , el : { } , popup : { } } ) } , _init : function ( ) { BI . BranchExpander . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . _initExpander ( ) , this . _initBranchView ( ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( a . direction ) , BI . extend ( { } , a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( a . direction , this . expander , this . branchView ) } ) ) ) ) } , _initExpander : function ( ) { var a = this , b = this . options ; this . expander = BI . createWidget ( b . el , { type : "bi.label" , width : 30 , height : "100%" } ) , this . expander . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , _initBranchView : function ( ) { var a = this , b = this . options ; this . branchView = BI . createWidget ( b . popup , { } ) , this . branchView . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { this . branchView . populate . apply ( this . branchView , arguments ) } , getValue : function ( ) { return this . branchView . getValue ( ) } } ) , BI . BranchExpander . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.branch_expander" , BI . BranchExpander ) , BI . HandStandBranchTree = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . HandStandBranchTree . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-handstand-branch-tree" , expander : { } , el : { } , items : [ ] } ) } , _init : function ( ) { BI . HandStandBranchTree . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . branchTree = BI . createWidget ( { type : "bi.custom_tree" , element : this , expander : BI . extend ( { type : "bi.handstand_branch_expander" , el : { } , popup : { type : "bi.custom_tree" } } , b . expander ) , el : BI . extend ( { type : "bi.button_tree" , chooseType : BI . ButtonGroup . CHOOSE _TYPE _MULTI , layouts : [ { type : "bi.horizontal_adapt" } ] } , b . el ) , items : this . options . items } ) , this . branchTree . on ( BI . CustomTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . HandStandBranchTree . EVENT _CHANGE , arguments ) } ) , this . branchTree . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) } , populate : function ( ) { this . branchTree . populate . apply ( this . branchTree , arguments ) } , getValue : function ( ) { return this . branchTree . getValue ( ) } } ) , BI . HandStandBranchTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.handstand_branch_tree" , BI . HandStandBranchTree ) , BI . BranchTree = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . BranchTree . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-branch-tree" , expander : { } , el : { } , items : [ ] } ) } , _init : function ( ) { BI . BranchTree . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . branchTree = BI . createWidget ( { typ
} , _defaultConfig : function ( ) { return BI . extend ( BI . DateTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-date-trigger" , min : "1900-01-01" , max : "2099-12-31" , height : 24 } ) } , _init : function ( ) { BI . DateTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , validationChecker : function ( b ) { var c = b . match ( /\d+/g ) ; return a . _autoAppend ( b , c ) , a . _dateCheck ( b ) && Date . checkLegal ( b ) && a . _checkVoid ( { year : c [ 0 ] , month : c [ 1 ] , day : c [ 2 ] } ) } , quitChecker : function ( ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , watermark : BI . i18nText ( "BI-Basic_Unrestricted" ) , errorText : function ( ) { return a . editor . isEditing ( ) ? BI . i18nText ( "BI-Date_Trigger_Error_Text" ) : BI . i18nText ( "BI-Year_Trigger_Invalid_Text" ) } } ) , this . editor . on ( BI . SignEditor . EVENT _KEY _DOWN , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _KEY _DOWN ) } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _STOP ) } ) , this . editor . on ( BI . SignEditor . EVENT _VALID , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _VALID ) } ) , this . editor . on ( BI . SignEditor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _ERROR ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; if ( BI . isNotNull ( b ) && a . editor . setState ( b ) , BI . isNotEmptyString ( b ) ) { var c = b . split ( "-" ) ; a . store _value = { type : BI . DateTrigger . MULTI _DATE _CALENDAR , value : { year : 0 | c [ 0 ] , month : c [ 1 ] - 1 , day : 0 | c [ 2 ] } } } a . fireEvent ( BI . DateTrigger . EVENT _CONFIRM ) } ) , this . editor . on ( BI . SignEditor . EVENT _SPACE , function ( ) { a . editor . isValid ( ) && a . editor . blur ( ) } ) , this . editor . on ( BI . SignEditor . EVENT _START , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . DateTrigger . EVENT _CHANGE ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : BI . createWidget ( ) , width : 30 } , { el : this . editor } ] } ) , this . setValue ( b . value ) } , _dateCheck : function ( a ) { return Date . parseDateTime ( a , "%Y-%x-%d" ) . print ( "%Y-%x-%d" ) == a || Date . parseDateTime ( a , "%Y-%X-%d" ) . print ( "%Y-%X-%d" ) == a || Date . parseDateTime ( a , "%Y-%x-%e" ) . print ( "%Y-%x-%e" ) == a || Date . parseDateTime ( a , "%Y-%X-%e" ) . print ( "%Y-%X-%e" ) == a } , _checkVoid : function ( a ) { return ! Date . checkVoid ( a . year , a . month , a . day , this . options . min , this . options . max ) [ 0 ] } , _autoAppend : function ( a , b ) { var c = this , d = Date . parseDateTime ( a , "%Y-%X-%d" ) . print ( "%Y-%X-%d" ) , e = function ( a ) { return Date . parseDateTime ( a , "%Y" ) . print ( "%Y" ) == a && d >= c . options . min && d <= c . options . max } , f = function ( a ) { return Date . parseDateTime ( a , "%Y-%X" ) . print ( "%Y-%X" ) == a && d >= c . options . min && d <= c . options . max } ; if ( BI . isNotNull ( b ) && Date . checkLegal ( a ) ) switch ( a . length ) { case this . _const . yearLength : e ( a ) && this . editor . setValue ( a + "-" ) ; break ; case this . _const . yearMonthLength : f ( a ) && this . editor . setValue ( a + "-" ) } } , setValue : function ( a ) { var b , c , d = this , e = Date . getDate ( ) ; this . store _value = a , BI . isNotNull ( a ) && ( b = a . type || BI . DateTrigger . MULTI _DATE _CALENDAR , c = a . value , BI . isNull ( c ) && ( c = a ) ) ; var f = function ( a , b ) { var c = a . print ( "%Y-%x-%e" ) ; d . editor . setState ( c ) , d . editor . setValue ( c ) , d . setTitle ( b + ":" + c ) } ; switch ( b ) { case BI . DateTrigger . MULTI _DATE _YEAR _PREV : var g = c + BI . DateTrigger . MULTI _DATE _SEGMENT _NUM [ BI . DateTrigger . MULTI _DATE _YEAR _PREV ] ; e = Date . getDate ( e . getFullYear ( ) - 1 * c , e . getMonth ( ) , e . getDate ( ) ) , f ( e , g ) ; break ; case BI . DateTrigger . MULTI _DATE _YEAR _AFTER : var g = c + BI . DateTrigger . MULTI _DATE _SEGMENT _NUM [ BI . DateTrigger . MULTI _DATE _YEAR _AFTER ] ; e = Date . getDate ( e . getFullYear ( ) + 1 * c , e . getMonth ( ) , e . getDate ( ) ) , f ( e , g ) ; break ; case BI . DateTrigger . MULTI _DATE _YEAR _BEGIN : var g = BI . DateTrigger . MULTI _DATE _SEGMENT _NUM [ BI . DateTrigger . MULTI _DATE _YEAR _BEGIN ] ; e = Date . getDate ( e . getFullYear ( ) , 0 , 1 ) , f ( e , g ) ; break ; case BI . DateTrigger . MULTI _DATE _YEAR _END : var g = BI . DateTrigger . MULTI _DATE _SEGMENT _NUM [ BI . DateTrigger . MULTI _DATE _YEAR _END ] ; e = Date . getDate ( e . getFullYear ( ) , 11 , 31 ) , f ( e , g ) ; break ; case BI . DateTrigger . MULTI _DATE _QUARTER _PREV : var g = c + BI . DateTrigger . MULTI _DATE _SEGMENT _NUM [ BI . DateTrigger . MULTI _DATE _QUARTER _PREV ] ; e = Date . getDate ( ) . getBeforeMulQuarter ( c ) , f ( e , g ) ; break ; case BI . DateTrigger . MULTI _DATE _QUARTER _AFTER : var g = c + BI . DateTrigger . MUL
a . fireEvent ( BI . SearchEditor . EVENT _CLICK ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . SearchEditor . EVENT _CHANGE ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . SearchEditor . EVENT _KEY _DOWN , b ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _SPACE ) } ) , this . editor . on ( BI . Editor . EVENT _BACKSPACE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _BACKSPACE ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _VALID ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _ERROR ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . SearchEditor . EVENT _EMPTY ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _START ) } ) , this . editor . on ( BI . Editor . EVENT _PAUSE , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _PAUSE ) } ) , this . editor . on ( BI . Editor . EVENT _STOP , function ( ) { a . fireEvent ( BI . SearchEditor . EVENT _STOP ) } ) , this . clear . invisible ( ) } , _checkClear : function ( ) { this . getValue ( ) ? this . clear . visible ( ) : this . clear . invisible ( ) } , focus : function ( ) { this . editor . focus ( ) } , blur : function ( ) { this . editor . blur ( ) } , getValue : function ( ) { if ( this . isValid ( ) ) { var a = this . editor . getValue ( ) . match ( /[\S]+/g ) ; return BI . isNull ( a ) ? "" : a [ a . length - 1 ] } } , getLastValidValue : function ( ) { return this . editor . getLastValidValue ( ) } , setValue : function ( a ) { this . editor . setValue ( a ) , BI . isKey ( a ) && this . clear . visible ( ) } , isEditing : function ( ) { return this . editor . isEditing ( ) } , isValid : function ( ) { return this . editor . isValid ( ) } } ) , BI . SearchEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . SearchEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . SearchEditor . EVENT _BLUR = "EVENT_BLUR" , BI . SearchEditor . EVENT _CLICK = "EVENT_CLICK" , BI . SearchEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . SearchEditor . EVENT _SPACE = "EVENT_SPACE" , BI . SearchEditor . EVENT _BACKSPACE = "EVENT_BACKSPACE" , BI . SearchEditor . EVENT _CLEAR = "EVENT_CLEAR" , BI . SearchEditor . EVENT _START = "EVENT_START" , BI . SearchEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . SearchEditor . EVENT _STOP = "EVENT_STOP" , BI . SearchEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . SearchEditor . EVENT _VALID = "EVENT_VALID" , BI . SearchEditor . EVENT _ERROR = "EVENT_ERROR" , BI . SearchEditor . EVENT _ENTER = "EVENT_ENTER" , BI . SearchEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . SearchEditor . EVENT _REMOVE = "EVENT_REMOVE" , BI . SearchEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.search_editor" , BI . SearchEditor ) , BI . SmallSearchEditor = BI . inherit ( BI . SearchEditor , { _defaultConfig : function ( ) { var a = BI . SmallSearchEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-small-search-editor" , height : 24 } ) } , _init : function ( ) { BI . SmallSearchEditor . superclass . _init . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.small_search_editor" , BI . SmallSearchEditor ) , BI . TextEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . TextEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-text-editor bi-border" , hgap : 4 , vgap : 2 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 , watermark : "" , errorText : "" , height : 24 } ) } , _init : function ( ) { BI . TextEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNumber ( b . height ) && this . element . css ( { height : b . height - 2 } ) , BI . isNumber ( b . width ) && this . element . css ( { width : b . width - 2 } ) , this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height - 2 , hgap : b . hgap , vgap : b . vgap , lgap : b . lgap , rgap : b . rgap , tgap : b . tgap , bgap : b . bgap , value : b . value , title : b . title , tipType : b . tipType , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText : b . errorText } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arg
a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . popup = BI . createWidget ( { type : "bi.month_popup" , behaviors : b . behaviors , value : b . value } ) , this . popup . on ( BI . MonthPopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . MonthCombo . EVENT _CONFIRM ) } ) , this . combo = BI . createWidget ( { type : "bi.combo" , element : this , isNeedAdjustHeight : ! 1 , isNeedAdjustWidth : ! 1 , el : this . trigger , popup : { minWidth : 85 , el : this . popup } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . MonthCombo . EVENT _BEFORE _POPUPVIEW ) } ) } , setValue : function ( a ) { this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . MonthCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . MonthCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.month_combo" , BI . MonthCombo ) , BI . MonthPopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MonthPopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-month-popup" , behaviors : { } } ) } , _init : function ( ) { BI . MonthPopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = [ 0 , 6 , 1 , 7 , 2 , 8 , 3 , 9 , 4 , 10 , 5 , 11 ] , d = [ ] ; d . push ( c . slice ( 0 , 2 ) ) , d . push ( c . slice ( 2 , 4 ) ) , d . push ( c . slice ( 4 , 6 ) ) , d . push ( c . slice ( 6 , 8 ) ) , d . push ( c . slice ( 8 , 10 ) ) , d . push ( c . slice ( 10 , 12 ) ) , d = BI . map ( d , function ( a , b ) { return BI . map ( b , function ( a , b ) { return { type : "bi.text_item" , cls : "bi-list-item-active" , textAlign : "center" , whiteSpace : "nowrap" , once : ! 1 , forceSelected : ! 0 , height : 23 , width : 38 , value : b , text : b + 1 } } ) } ) , this . month = BI . createWidget ( { type : "bi.button_group" , element : this , behaviors : b . behaviors , items : BI . createItems ( d , { } ) , layouts : [ BI . LogicFactory . createLogic ( "table" , BI . extend ( { dynamic : ! 0 } , { columns : 2 , rows : 6 , columnSize : [ . 5 , . 5 ] , rowSize : 25 } ) ) , { type : "bi.center_adapt" , vgap : 1 , hgap : 2 } ] , value : b . value } ) , this . month . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . MonthPopup . EVENT _CHANGE ) } ) } , getValue : function ( ) { return this . month . getValue ( ) [ 0 ] } , setValue : function ( a ) { this . month . setValue ( [ a ] ) } } ) , BI . MonthPopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.month_popup" , BI . MonthPopup ) , BI . MonthTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 , vgap : 2 , errorText : BI . i18nText ( "BI-Month_Trigger_Error_Text" ) } , _defaultConfig : function ( ) { return BI . extend ( BI . MonthTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-month-trigger bi-border" , height : 24 } ) } , _init : function ( ) { BI . MonthTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , validationChecker : function ( a ) { return "" === a || BI . isPositiveInteger ( a ) && a >= 1 && a <= 12 } , quitChecker : function ( a ) { return ! 1 } , hgap : c . hgap , vgap : c . vgap , allowBlank : ! 0 , errorText : c . errorText } ) , this . editor . on ( BI . SignEditor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . MonthTrigger . EVENT _FOCUS ) } ) , this . editor . on ( BI . SignEditor . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MonthTrigger . EVENT _CHANGE ) } ) , this . editor . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = a . editor . getValue ( ) ; BI . isNotNull ( b ) && ( a . editor . setValue ( b ) , a . editor . setTitle ( b ) ) , a . fireEvent ( BI . MonthTrigger . EVENT _CONFIRM ) } ) , this . editor . on ( BI . SignEditor . EVENT _SPACE , function ( ) { a . editor . isValid ( ) && a . editor . blur ( ) } ) , this . editor . on ( BI . SignEditor . EVENT _START , function ( ) { a . fireEvent ( BI . MonthTrigger . EVENT _START ) } ) , this . editor . on ( BI . SignEditor . EVENT _STOP , function ( ) { a . fireEvent ( BI . MonthTrigger . EVENT _STOP ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : { type : "bi.text_button" , text : BI . i18nText ( "BI-Multi_Date_Month" ) , baseCls : "bi-trigger-month-text" , width : b . height } , width : b . height } , { el : { type : "bi.trigger_icon_button" , width : b . height } , width : b . height } ] } ) , this . setValue ( b . value ) } , setValue : function ( a ) { return BI . isNotNull ( a ) ? ( this . editor . setState ( a + 1 ) , this . editor . setValue ( a + 1 ) , void this . editor . setTitle ( a + 1 ) ) : ( this . editor . setState ( "" ) , this . editor . setValue ( "" ) , void this . editor . setTitle ( "" ) ) } , getKey : function ( ) { return 0 | this . editor . getValue ( ) } , getValue : function ( ) { return this . editor . getValue ( ) - 1 } } ) , BI . MonthTrigger . EVENT _FOCUS = "EVENT_FOCUS" , BI . MonthTrigger . EVENT _CONFIRM = " EVENT _CONF
isDefaultInit : c . isDefaultInit , el : { } , popup : { type : "bi.custom_tree" } } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) , itemsCreator : c . itemsCreator , value : c . value , el : { type : "bi.button_tree" , chooseType : BI . Selection . Single , layouts : [ { type : "bi.vertical" } ] } } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( a ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . MultiLayerSelectLevelTree . EVENT _CHANGE , arguments ) } ) } , populate : function ( a ) { this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) ) } , setValue : function ( a ) { this . tree . setValue ( a ) } , getValue : function ( ) { return BI . uniq ( this . tree . getValue ( ) ) } , getAllLeaves : function ( ) { return this . tree . getAllLeaves ( ) } , getNodeById : function ( a ) { return this . tree . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . tree . getNodeByValue ( a ) } } ) , BI . MultiLayerSelectLevelTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_select_level_tree" , BI . MultiLayerSelectLevelTree ) , BI . MultiLayerSelectTreePopup = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSelectTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-select-tree-popup" , tipText : BI . i18nText ( "BI-No_Selected_Item" ) , isDefaultInit : ! 1 , itemsCreator : BI . emptyFn , items : [ ] , value : "" } ) } , _init : function ( ) { BI . MultiLayerSelectTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : "bi.multilayer_select_level_tree" , isDefaultInit : b . isDefaultInit , items : b . items , value : b . value , itemsCreator : b . itemsCreator } ) , BI . createWidget ( { type : "bi.vertical" , scrolly : ! 1 , scrollable : ! 0 , element : this , items : [ this . tree ] } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . tree . on ( BI . MultiLayerSelectLevelTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiLayerSelectTreePopup . EVENT _CHANGE ) } ) , this . check ( ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . tree . setValue ( a ) } , populate : function ( a ) { BI . MultiLayerSelectTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( a ) } } ) , BI . MultiLayerSelectTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_select_tree_popup" , BI . MultiLayerSelectTreePopup ) , BI . MultiLayerSelectTreeFirstPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { extraCls : "bi-multilayer-select-tree-first-plus-group-node bi-list-item-active" , layer : 0 , id : "" , pId : "" , readonly : ! 0 , open : ! 1 , height : 25 } ) } , _init : function ( ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . node = BI . createWidget ( { type : "bi.select_tree_first_plus_group_node" , cls : "bi-list-item-none" , stopPropagation : ! 0 , logic : { dynamic : ! 0 } , id : b . id , pId : b . pId , open : b . open , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . node . on ( BI . Controller . EVENT _CHANGE , function ( b ) { a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = [ ] ; BI . count ( 0 , b . layer , function ( ) { c . push ( { type : "bi.layout" , cls : "base-line-conn-background" , width : 13 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 13 ) , items : [ c ] } ) } , isOnce : function ( ) { return ! 0 } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , isSelected : function ( ) { return this . node . isSelected ( ) } , setSelected : function ( a ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . setSelected . apply ( this , arguments ) , this . node . setSelected ( a ) } , doClick : function ( ) { BI . NodeButton . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSelectTreeFirstPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_select_tree_first_plus_group_node" , BI . MultiLayerSelectTreeFirstPlusGroupNode ) , BI . MultiLayerSelectTreeLastPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfi
height : b . height , masker : { offset : { left : 1 , top : 1 , right : 2 , bottom : 33 } } , valueFormatter : b . valueFormatter , itemsCreator : function ( c , d ) { b . itemsCreator ( c , function ( b ) { 1 === c . times && BI . isNotNull ( c . keywords ) && a . trigger . setValue ( BI . deepClone ( a . getValue ( ) ) ) , d . apply ( a , arguments ) } ) } , value : this . storeValue } ) , 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 , el : this . trigger , adjustLength : 1 , popup : { type : "bi.multi_select_popup_view" , ref : function ( ) { a . popup = this , a . trigger . setAdapter ( this ) } , listeners : [ { eventName : BI . MultiSelectPopupView . EVENT _CHANGE , action : function ( ) { a . storeValue = this . getValue ( ) , a . _adjust ( function ( ) { c ( ) } ) } } , { eventName : BI . MultiSelectPopupView . EVENT _CLICK _CONFIRM , action : function ( ) { a . _defaultState ( ) } } , { eventName : BI . MultiSelectPopupView . EVENT _CLICK _CLEAR , action : function ( ) { a . setValue ( ) , a . _defaultState ( ) } } ] , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , onLoaded : function ( ) { BI . nextTick ( function ( ) { a . combo . adjustWidth ( ) , a . combo . adjustHeight ( ) , a . trigger . getCounter ( ) . adjustView ( ) , a . trigger . getSearcher ( ) . adjustView ( ) } ) } } , value : b . value , hideChecker : function ( a ) { return 0 === d . element . find ( a . target ) . length } } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { this . setValue ( a . storeValue ) , BI . nextTick ( function ( ) { a . populate ( ) } ) } ) , this . wants2Quit = ! 1 , this . combo . on ( BI . Combo . EVENT _AFTER _HIDEVIEW , function ( ) { a . trigger . stopEditing ( ) , a . requesting === ! 0 ? a . wants2Quit = ! 0 : a . fireEvent ( BI . MultiSelectCombo . 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 } ] } ) } , _defaultState : function ( ) { this . trigger . stopEditing ( ) , this . combo . hideView ( ) } , _assertValue : function ( a ) { a || ( a = { } ) , a . type || ( a . type = BI . Selection . Multi ) , a . value || ( a . value = [ ] ) } , _makeMap : function ( a ) { return BI . makeObject ( a || [ ] ) } , _joinKeywords : function ( a , b ) { function c ( c ) { var e = d . _makeMap ( c ) ; BI . each ( a , function ( a , b ) { BI . isNotNull ( e [ b ] ) && d . storeValue . value [ d . storeValue . type === BI . Selection . Multi ? "pushDistinct" : "remove" ] ( 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 . pluck ( 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 . pluck ( 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 c . _adjust ( b ) } var h = c . _makeMap ( c .
this . trigger . populate . apply ( this . trigger , arguments ) } } ) , BI . extend ( BI . MultiSelectInsertList , { REQ _GET _DATA _LENGTH : 0 , REQ _GET _ALL _DATA : - 1 } ) , BI . MultiSelectInsertList . EVENT _CHANGE = "BI.MultiSelectInsertList.EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_insert_list" , BI . MultiSelectInsertList ) , BI . MultiSelectList = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-list" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . storeValue = { } ; var c = function ( ) { BI . isKey ( a . _startValue ) && a . storeValue . value [ a . storeValue . type === BI . Selection . All ? "remove" : "pushDistinct" ] ( a . _startValue ) } ; this . adapter = BI . createWidget ( { type : "bi.multi_select_loader" , cls : "popup-multi-select-list bi-border-left bi-border-right bi-border-bottom" , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , logic : { dynamic : ! 1 } , el : { } } ) , this . adapter . on ( BI . MultiSelectLoader . EVENT _CHANGE , function ( ) { a . storeValue = this . getValue ( ) , a . _adjust ( function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) } ) , this . searcherPane = BI . createWidget ( { type : "bi.multi_select_search_pane" , cls : "bi-border-left bi-border-right bi-border-bottom" , valueFormatter : b . valueFormatter , keywordGetter : function ( ) { return a . trigger . getKeyword ( ) } , itemsCreator : function ( c , d ) { c . keyword = a . trigger . getKeyword ( ) , this . setKeyword ( c . keyword ) , b . itemsCreator ( c , d ) } } ) , this . searcherPane . setVisible ( ! 1 ) , this . trigger = BI . createWidget ( { type : "bi.searcher" , isAutoSearch : ! 1 , isAutoSync : ! 1 , onSearch : function ( a , b ) { b ( ) } , adapter : this . adapter , popup : this . searcherPane , height : 200 , masker : ! 1 , 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 . _showAdapter ( ) , a . adapter . setValue ( a . storeValue ) , a . _setStartValue ( b ) , c ( ) , a . adapter . populate ( ) , a . _setStartValue ( "" ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) } } , { eventName : BI . Searcher . EVENT _SEARCHING , action : function ( ) { var b = this . getKeyword ( ) , 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 ( ) ) } ) } } , { eventName : BI . Searcher . EVENT _CHANGE , action : function ( b , d ) { d instanceof BI . MultiSelectBar ? a . _joinAll ( this . getValue ( ) , function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) : a . _join ( this . getValue ( ) , function ( ) { c ( ) , a . fireEvent ( BI . MultiSelectList . EVENT _CHANGE ) } ) } } ] } ) , 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 . value [ d . storeValue . type === BI . Selection . Multi ? "pushDistinct" : "remove" ] ( b ) } ) , d . _adjust ( b ) } var d = this , e = this . options ; this . _assertValue ( this . storeValue ) , this . _allData ? c ( this . _allData ) : e . itemsCreator ( { type : BI . MultiSelectList . REQ _GET _ALL _DATA } , function ( a ) { d . _allData = BI . pluck ( a . items , "value" ) , c ( d . _allData ) } ) } , _joinAll : function ( a , b ) { var c = this , d = this . options ; this . _assertValue ( a ) , d . itemsCreator ( { type : BI . MultiSelectList . REQ _GET _ALL _DATA , keyword : c . trigger . getKeyword ( ) } , function ( d ) { var e = BI . pluck ( d . items ,
var b = this , c = this . constants ; a . on ( BI . Editor . EVENT _CHANGE , function ( ) { switch ( b . _checkValidation ( ) ) { case c . typeError : BI . Bubbles . show ( c . typeError , BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) , b , { offsetStyle : "center" } ) ; break ; case c . numberError : BI . Bubbles . show ( c . numberError , BI . i18nText ( "BI-Numerical_Interval_Number_Value" ) , b , { offsetStyle : "center" } ) ; break ; case c . signalError : BI . Bubbles . show ( c . signalError , BI . i18nText ( "BI-Numerical_Interval_Signal_Value" ) , b , { offsetStyle : "center" } ) } b . fireEvent ( BI . NumberInterval . EVENT _CHANGE ) } ) } , _setComboValueChangedEvent : function ( a ) { var b = this , c = this . constants ; a . on ( BI . IconCombo . EVENT _CHANGE , function ( ) { switch ( b . _checkValidation ( ) ) { case c . typeError : b . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Input_Data" ) ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; case c . numberError : b . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Number_Value" ) ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; case c . signalError : b . _setTitle ( BI . i18nText ( "BI-Numerical_Interval_Signal_Value" ) ) , b . fireEvent ( BI . NumberInterval . EVENT _ERROR ) ; break ; default : b . fireEvent ( BI . NumberInterval . EVENT _CHANGE ) , b . fireEvent ( BI . NumberInterval . EVENT _VALID ) } } ) } , isStateValid : function ( ) { return "valid" === this . options . validation } , setMinEnable : function ( a ) { this . smallEditor . setEnable ( a ) } , setCloseMinEnable : function ( a ) { this . smallCombo . setEnable ( a ) } , setMaxEnable : function ( a ) { this . bigEditor . setEnable ( a ) } , setCloseMaxEnable : function ( a ) { this . bigCombo . setEnable ( a ) } , showNumTip : function ( ) { this . smallTip . setVisible ( ! 0 ) , this . bigTip . setVisible ( ! 0 ) } , hideNumTip : function ( ) { this . smallTip . setVisible ( ! 1 ) , this . bigTip . setVisible ( ! 1 ) } , setNumTip : function ( a ) { this . smallTip . setText ( a ) , this . bigTip . setText ( a ) } , getNumTip : function ( ) { return this . smallTip . getText ( ) } , setValue : function ( a ) { a = a || { } ; var b , c = this ; ( BI . isNumeric ( a . min ) || BI . isEmptyString ( a . min ) ) && c . smallEditor . setValue ( a . min ) , BI . isNotNull ( a . min ) || c . smallEditor . setValue ( "" ) , ( BI . isNumeric ( a . max ) || BI . isEmptyString ( a . max ) ) && c . bigEditor . setValue ( a . max ) , BI . isNotNull ( a . max ) || c . bigEditor . setValue ( "" ) , BI . isNull ( a . closemin ) || ( b = a . closemin === ! 0 ? 1 : 0 , c . smallCombo . setValue ( b ) ) , BI . isNull ( a . closemax ) || ( b = a . closemax === ! 0 ? 1 : 0 , c . bigCombo . setValue ( b ) ) } , getValue : function ( ) { var a = this , b = { } , c = a . smallCombo . getValue ( ) , d = a . bigCombo . getValue ( ) ; return b . min = a . smallEditor . getValue ( ) , b . max = a . bigEditor . getValue ( ) , 0 === c [ 0 ] ? b . closemin = ! 1 : b . closemin = ! 0 , 0 === d [ 0 ] ? b . closemax = ! 1 : b . closemax = ! 0 , b } } ) , BI . NumberInterval . EVENT _CHANGE = "EVENT_CHANGE" , BI . NumberInterval . EVENT _VALID = "EVENT_VALID" , BI . NumberInterval . EVENT _ERROR = "EVENT_ERROR" , BI . shortcut ( "bi.number_interval" , BI . NumberInterval ) , BI . PageTableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . PageTableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-page-table-cell" , text : "" , title : "" } ) } , _init : function ( ) { BI . PageTableCell . superclass . _init . apply ( this , arguments ) ; BI . createWidget ( { type : "bi.label" , element : this , textAlign : "left" , whiteSpace : "nowrap" , height : this . options . height , text : this . options . text , title : this . options . title , value : this . options . value , lgap : 5 , rgap : 5 } ) ; BI . isNotNull ( this . options . styles ) && BI . isObject ( this . options . styles ) && this . element . css ( this . options . styles ) } } ) , BI . shortcut ( "bi.page_table_cell" , BI . PageTableCell ) , BI . PageTable = BI . inherit ( BI . Widget , { _const : { scrollWidth : 18 , minScrollWidth : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . PageTable . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-page-table" , el : { type : "bi.sequence_table" } , pager : { horizontal : { pages : ! 1 , curr : 1 , hasPrev : BI . emptyFn , hasNext : BI . emptyFn , firstPage : 1 , lastPage : BI . emptyFn } , vertical : { pages : ! 1 , curr : 1 , hasPrev : BI . emptyFn , hasNext : BI . emptyFn , firstPage : 1 , lastPage : BI . emptyFn } } , itemsCreator : BI . emptyFn , isNeedFreeze : ! 1 , freezeCols : [ ] , isNeedMerge : ! 1 , mergeCols : [ ] , mergeRule : BI . emptyFn , columnSize : [ ] , minColumnSize : [ ] , maxColumnSize : [ ] , headerRowSize : 25 , rowSize : 25 , regionColumnSize : [ ] , headerCellStyleGetter : BI . emptyFn , summaryCellStyleGetter : BI . emptyFn , sequenceCellStyleGetter : BI . emptyFn , header : [ ] , items : [ ] , crossHeader : [ ] , crossItems : [ ] } ) } , _init : function ( ) { BI . PageTable . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; t
break ; default : f . type = "bi.select_tree_mid_plus_group_node" } BI . defaults ( e , f ) , c . _formatItems ( e . children ) } else { switch ( d ) { case a . length - 1 : f . type = "bi.last_tree_leaf_item" ; break ; default : f . type = "bi.mid_tree_leaf_item" } BI . defaults ( e , f ) } } ) , a } , _init : function ( ) { BI . SelectTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = BI . createWidget ( { type : "bi.level_tree" , expander : { type : "bi.select_tree_expander" , isDefaultInit : ! 0 } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( b . items ) ) , value : b . value , chooseType : BI . Selection . Single } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . tree ] } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . tree . on ( BI . LevelTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SelectTreePopup . EVENT _CHANGE ) } ) , this . check ( ) } , getValue : function ( ) { return this . tree . getValue ( ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . tree . setValue ( a ) } , populate : function ( a ) { BI . SelectTreePopup . superclass . populate . apply ( this , arguments ) , this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) ) ) } } ) , BI . SelectTreePopup . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.select_level_tree" , BI . SelectTreePopup ) , BI . SequenceTableDynamicNumber = BI . inherit ( BI . SequenceTableTreeNumber , { _defaultConfig : function ( ) { return BI . extend ( BI . SequenceTableDynamicNumber . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-sequence-table-dynamic-number" } ) } , _init : function ( ) { BI . SequenceTableDynamicNumber . superclass . _init . apply ( this , arguments ) } , _formatNumber : function ( a ) { function b ( a ) { var c = 0 ; return BI . isNotEmptyArray ( a . children ) ? ( BI . each ( a . children , function ( a , d ) { c += b ( d ) } ) , a . children . length > 1 && BI . isNotEmptyArray ( a . values ) && c ++ ) : c ++ , c } var c = this . options , d = [ ] , e = this . _getStart ( a ) , f = 0 , g = 0 ; return BI . each ( a , function ( a , h ) { BI . isArray ( h . children ) && ( BI . each ( h . children , function ( a , h ) { var i = b ( h ) ; d . push ( { text : e ++ , start : f , top : g , cnt : i , index : a , height : i * c . rowSize } ) , f += i , g += i * c . rowSize } ) , BI . isNotEmptyArray ( h . values ) && ( d . push ( { text : BI . i18nText ( "BI-Summary_Values" ) , start : f ++ , top : g , cnt : 1 , isSummary : ! 0 , height : c . rowSize } ) , g += c . rowSize ) ) } ) , d } } ) , BI . shortcut ( "bi.sequence_table_dynamic_number" , BI . SequenceTableDynamicNumber ) , BI . SequenceTableListNumber = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SequenceTableListNumber . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-sequence-table-list-number" , isNeedFreeze : ! 1 , scrollTop : 0 , startSequence : 1 , headerRowSize : 25 , rowSize : 25 , sequenceHeaderCreator : null , header : [ ] , items : [ ] , crossHeader : [ ] , crossItems : [ ] , pageSize : 20 } ) } , _init : function ( ) { BI . SequenceTableListNumber . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . start = a . startSequence , this . renderedCells = [ ] , this . renderedKeys = [ ] , this . container = BI . createWidget ( { type : "bi.absolute" , width : 60 , scrollable : ! 1 } ) , this . scrollContainer = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . container ] } ) , this . headerContainer = BI . createWidget ( { type : "bi.absolute" , cls : "bi-border" , width : 58 , scrollable : ! 1 } ) , this . layout = BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . headerContainer , height : a . headerRowSize * a . header . length - 2 } , { el : { type : "bi.layout" } , height : 2 } , { el : this . scrollContainer } ] } ) , this . _populate ( ) } , _layout : function ( ) { var a = this . options , b = a . headerRowSize * a . header . length - 2 , c = this . layout . attr ( "items" ) ; a . isNeedFreeze === ! 1 ? ( c [ 0 ] . height = 0 , c [ 1 ] . height = 0 ) : a . isNeedFreeze === ! 0 && ( c [ 0 ] . height = b , c [ 1 ] . height = 2 ) , this . layout . attr ( "items" , c ) , this . layout . resize ( ) , this . container . setHeight ( a . items . length * a . rowSize ) ; try { this . scrollContainer . element . scrollTop ( a . scrollTop ) } catch ( d ) { } } , _createHeader : function ( ) { var a = this . options ; BI . createWidget ( { type : "bi.absolute" , element : this . headerContainer , items : [ { el : a . sequenceHeaderCreator || { type : "bi.table_style_cell" , cls : "sequence-table-title-cell" , styleGetter : a . headerCellStyleGetter , text : BI . i18nText ( "BI-Number_Index" ) } , left : 0 , top : 0 , right : 0 , bottom : 0 } ] } ) } , _calculateChildrenToRender : function ( ) { for ( var a = this , b = this . options , c = BI . clamp ( b . scrollTop , 0 , b . rowSize * b . items . length - ( b . height - b . header . length * b . headerRowSize ) + BI . DOM . getScrollWi
this . hasMatched ( ) , a . fireEvent ( BI . SingleSelectSearcher . EVENT _PAUSE ) } ) , this . searcher . on ( BI . Searcher . EVENT _STOP , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _STOP ) } ) , this . searcher . on ( BI . Searcher . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearcher . EVENT _CHANGE , arguments ) } ) , this . searcher . on ( BI . Searcher . EVENT _SEARCHING , function ( ) { var b = this . getKeywords ( ) ; a . fireEvent ( BI . SingleSelectSearcher . EVENT _SEARCHING , b ) } ) } , adjustView : function ( ) { this . searcher . adjustView ( ) } , isSearching : function ( ) { return this . searcher . isSearching ( ) } , stopSearch : function ( ) { this . searcher . stopSearch ( ) } , getKeyword : function ( ) { return this . editor . getValue ( ) } , hasMatched : function ( ) { return this . searcher . hasMatched ( ) } , hasChecked : function ( ) { return this . searcher . getView ( ) && this . searcher . getView ( ) . hasChecked ( ) } , setAdapter : function ( a ) { this . searcher . setAdapter ( a ) } , setState : function ( a ) { var b = this . options ; a || ( a = "" ) , "" === a ? this . editor . setState ( BI . Selection . None ) : this . editor . setState ( b . valueFormatter ( a + "" ) || a + "" ) } , setValue : function ( a ) { this . setState ( a ) , this . searcher . setValue ( a ) } , getKey : function ( ) { return this . editor . getValue ( ) } , getValue : function ( ) { return this . searcher . getValue ( ) } , populate : function ( a ) { this . searcher . populate . apply ( this . searcher , arguments ) } } ) , BI . SingleSelectSearcher . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . SingleSelectSearcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . SingleSelectSearcher . EVENT _START = "EVENT_START" , BI . SingleSelectSearcher . EVENT _STOP = "EVENT_STOP" , BI . SingleSelectSearcher . EVENT _PAUSE = "EVENT_PAUSE" , BI . SingleSelectSearcher . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . shortcut ( "bi.single_select_searcher" , BI . SingleSelectSearcher ) , BI . SingleSelectSearchLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectSearchLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-search-loader" , itemsCreator : BI . emptyFn , keywordGetter : BI . emptyFn , valueFormatter : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectSearchLoader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = ! 1 ; this . button _group = BI . createWidget ( { type : "bi.single_select_list" , element : this , logic : { dynamic : ! 1 } , el : { tipText : BI . i18nText ( "BI-No_Select" ) , el : { type : "bi.loader" , isDefaultInit : ! 1 , logic : { dynamic : ! 0 , scrolly : ! 0 } , el : { chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] } } } , itemsCreator : function ( d , e ) { a . storeValue && ( d = BI . extend ( d || { } , { selectedValues : [ a . storeValue ] } ) ) , b . itemsCreator ( d , function ( f ) { var g = f . keyword = b . keywordGetter ( ) ; c = f . hasNext ; var h = [ ] ; if ( 1 === d . times && a . storeValue ) { var i = BI . map ( [ a . storeValue ] , function ( a , c ) { var d = b . valueFormatter ( c ) || c ; return { text : d , value : c , title : d , selected : ! 1 } } ) ; h = a . _createItems ( i ) } if ( g ) { for ( var j = ! 1 , k = 0 ; k < f . items . length ; k ++ ) BI . contains ( f . items [ k ] , g ) && ( j = ! 0 ) ; if ( ! j ) { var l = a . _createItems ( [ { text : g , value : g , title : g , selected : ! 1 } ] ) ; h = h . concat ( l ) } } e ( h . concat ( a . _createItems ( f . items ) ) , g ) , 1 === d . times && a . storeValue && a . setValue ( a . storeValue ) } ) } , hasNext : function ( ) { return c } } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . SingleSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SingleSelectSearchLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.single_select_radio_item" , logic : { dynamic : ! 1 } , height : 25 , selected : ! 1 } ) } , _filterValues : function ( a ) { var b = this . options , c = b . keywordGetter ( ) , d = BI . deepClone ( a . value ) || [ ] , e = BI . map ( d , function ( a , c ) { return { text : b . valueFormatter ( c ) || c , value : c } } ) ; if ( BI . isKey ( c ) ) { var f = BI . Func . getSearchResult ( e , c ) ; d = f . match . concat ( f . find ) } return BI . map ( d , function ( 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 ) {
} var c = this , d = this . options , e = ! 1 , f = 0 , g = 0 , h = 0 , i = new BI . MouseMoveTracker ( function ( j ) { if ( i . isDragging ( ) ) { e = ! 0 , g += j , f = b ( h + g ) , a . element . addClass ( "dragging" ) ; var k = 100 * f / c . _getGrayTrackLength ( ) , l = BI . parseFloat ( k . toFixed ( 1 ) ) ; c . _setBlueTrack ( l ) , c . _setSliderPosition ( l ) ; var m = c . _getValueByPercent ( l ) ; m = d . digit === ! 1 ? m : m . toFixed ( d . digit ) , c . value = m , c . fireEvent ( BI . SingleSliderNormal . EVENT _DRAG , m ) } } , function ( ) { if ( e === ! 0 ) { f = b ( f ) ; var d = 100 * f / c . _getGrayTrackLength ( ) , j = BI . parseFloat ( d . toFixed ( 1 ) ) ; c . _setSliderPosition ( j ) , f = 0 , g = 0 , h = f , e = ! 1 } a . element . removeClass ( "dragging" ) , i . releaseMouseMoves ( ) , c . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } , document ) ; a . element . on ( "mousedown" , function ( c ) { a . isEnabled ( ) && ( h = this . offsetLeft , b ( h ) , i . captureMouseMoves ( c ) ) } ) } , _createTrack : function ( ) { var a = this ; this . _constant ; return this . grayTrack = BI . createWidget ( { type : "bi.layout" , cls : "gray-track" , height : 6 } ) , this . blueTrack = BI . createWidget ( { type : "bi.layout" , cls : "blue-track bi-high-light-background" , height : 6 } ) , this . options . color && this . blueTrack . element . css ( { "background-color" : this . options . color } ) , { type : "bi.absolute" , items : [ { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . grayTrack , top : 0 , left : 0 , width : "100%" } , { el : this . blueTrack , top : 0 , left : 0 , width : "0%" } ] } ] , hgap : 8 , height : 8 } , top : 8 , left : 0 , width : "100%" } ] , ref : function ( b ) { a . track = b } } } , _checkValidation : function ( a ) { return ! ( BI . isNull ( a ) || a < this . min || a > this . max ) } , _setBlueTrack : function ( a ) { this . blueTrack . element . css ( { width : a + "%" } ) } , _setSliderPosition : function ( a ) { this . slider . element . css ( { left : a + "%" } ) } , _setAllPosition : function ( a ) { this . _setSliderPosition ( a ) , this . _setBlueTrack ( a ) } , _setVisible : function ( a ) { this . slider . setVisible ( a ) } , _getGrayTrackLength : function ( ) { return this . grayTrack . element [ 0 ] . scrollWidth } , _getValueByPercent : function ( a ) { var b = BI . parseInt ( 10 * a ) ; return ( this . max - this . min ) * b / 1e3 + this . min } , _getPercentByValue : function ( a ) { return 100 * ( a - this . min ) / ( this . max - this . min ) } , getValue : function ( ) { return this . value } , setValue : function ( a ) { var b = BI . parseFloat ( a ) ; isNaN ( b ) || ( this . _checkValidation ( b ) && ( this . value = b ) , b > this . max && ( this . value = this . max ) , b < this . min && ( this . value = this . min ) ) } , setMinAndMax : function ( a ) { var b = BI . parseFloat ( a . min ) , c = BI . parseFloat ( a . max ) ; ! isNaN ( b ) && ! isNaN ( c ) && c > b && ( this . min = b , this . max = c ) } , reset : function ( ) { this . _setVisible ( ! 1 ) , this . enable = ! 1 , this . value = "" , this . min = 0 , this . max = 0 , this . _setBlueTrack ( 0 ) } , populate : function ( ) { isNaN ( this . min ) || isNaN ( this . max ) || ( this . _setVisible ( ! 0 ) , this . enable = ! 0 , BI . isNumeric ( this . value ) || BI . isNotEmptyString ( this . value ) ? this . _setAllPosition ( this . _getPercentByValue ( this . value ) ) : this . _setAllPosition ( 100 ) ) } } ) , BI . SingleSliderNormal . EVENT _DRAG = "EVENT_DRAG" , BI . shortcut ( "bi.single_slider_normal" , BI . SingleSliderNormal ) , BI . SingleTreeCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleTreeCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-tree-combo" , trigger : { } , height : 24 , text : "" , items : [ ] , value : "" } ) } , _init : function ( ) { BI . SingleTreeCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( BI . extend ( { type : "bi.single_tree_trigger" , text : b . text , height : b . height , items : b . items , value : b . value } , b . trigger ) ) , this . popup = BI . createWidget ( { type : "bi.single_level_tree" , items : b . items , value : b . value } ) , this . combo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup } } ) , this . combo . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . combo . on ( BI . Combo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . SingleTreeCombo . EVENT _BEFORE _POPUPVIEW , arguments ) } ) , this . popup . on ( BI . SingleTreePopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . SingleTreeCombo . EVENT _CHANGE ) } ) } , populate : function ( a ) { this . combo . populate ( a ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } } ) , BI . SingleTreeCombo . EVENT _CHANGE = "SingleTreeCombo.EVENT_CHANGE" , BI . SingleTreeCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( " bi . single _tree _co
a . fireEvent ( BI . TreeValueChooserCombo . EVENT _CONFIRM ) } ) } , setValue : function ( a ) { this . combo . setValue ( a ) } , getValue : function ( ) { return this . combo . getValue ( ) } , populate : function ( ) { this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . TreeValueChooserCombo . EVENT _CONFIRM = "TreeValueChooserCombo.EVENT_CONFIRM" , BI . shortcut ( "bi.tree_value_chooser_combo" , BI . TreeValueChooserCombo ) , BI . TreeValueChooserPane = BI . inherit ( BI . AbstractTreeValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeValueChooserPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-tree-value-chooser-pane" , items : null , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . TreeValueChooserPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . pane = BI . createWidget ( { type : "bi.multi_select_tree" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) } ) , this . pane . on ( BI . MultiSelectTree . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . TreeValueChooserPane . EVENT _CHANGE ) } ) , BI . isNotNull ( b . items ) && ( this . _initData ( b . items ) , this . populate ( ) ) } , setSelectedValue : function ( a ) { this . pane . setSelectedValue ( a ) } , setValue : function ( a ) { this . pane . setValue ( a ) } , getValue : function ( ) { return this . pane . getValue ( ) } , populate : function ( ) { this . pane . populate . apply ( this . pane , arguments ) } } ) , BI . TreeValueChooserPane . EVENT _CHANGE = "TreeValueChooserPane.EVENT_CHANGE" , BI . shortcut ( "bi.tree_value_chooser_pane" , BI . TreeValueChooserPane ) , BI . AbstractValueChooser = BI . inherit ( BI . Widget , { _const : { perPage : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AbstractValueChooser . superclass . _defaultConfig . apply ( this , arguments ) , { 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 ) return b = d . text , ! 0 } ) , b } , _getItemsByTimes : function ( a , b ) { for ( var c = [ ] , d = ( b - 1 ) * this . _const . perPage ; a [ d ] && d < b * this . _const . perPage ; d ++ ) c . push ( a [ d ] ) ; return c } , _hasNextByTimes : function ( a , b ) { return b * this . _const . perPage < a . length } , _itemsCreator : function ( a , b ) { function c ( c ) { var e = ( a . keywords || [ ] ) . slice ( ) ; if ( a . keyword && e . push ( a . keyword ) , BI . each ( e , function ( a , b ) { var d = BI . Func . getSearchResult ( c , b ) ; c = d . match . concat ( d . find ) } ) , a . selectedValues ) { var f = BI . makeObject ( a . selectedValues , ! 0 ) ; c = BI . filter ( c , function ( a , b ) { return ! f [ b . value ] } ) } return a . type === BI . MultiSelectCombo . REQ _GET _ALL _DATA ? void b ( { items : c } ) : a . type === BI . MultiSelectCombo . REQ _GET _DATA _LENGTH ? void b ( { count : c . length } ) : void b ( { items : d . _getItemsByTimes ( c , a . times ) , hasNext : d . _hasNextByTimes ( c , a . times ) } ) } var d = this , e = this . options ; e . cache && this . items ? c ( this . items ) : e . itemsCreator ( { } , function ( a ) { d . items = a , c ( a ) } ) } } ) , BI . ValueChooserCombo = BI . inherit ( BI . AbstractValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . ValueChooserCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-value-chooser-combo" , width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . ValueChooserCombo . 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" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) , valueFormatter : BI . bind ( this . _valueFormatter , this ) , width : b . width , height : b . height } ) , this . combo . on ( BI . MultiSelectCombo . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . ValueChooserCombo . EVENT _CONFIRM ) } ) } , setValue : function ( a ) { this . combo . setValue ( a ) } , getValue : function ( ) { var a = this . combo . getValue ( ) || { } ; return { type : a . type , value : a . value } } , populate : function ( ) { this . combo . populate . apply ( this , arguments ) } } ) , BI . ValueChooserCombo . EVENT _CONFIRM = "ValueChooserCombo.EVENT_CONFIRM" , BI . shortcut ( "bi.value_chooser_combo" , BI . ValueChooserCombo ) , BI . ValueChooserPane = BI . inherit ( BI . AbstractValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . ValueChooserPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-value-chooser-pane" , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . ValueChooserPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . list = BI . createWidget ( { type : "bi.multi_select_list" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this )