/ *
* Copyright ( c ) Ascensio System SIA 2019. All rights reserved
*
* http : //www.onlyoffice.com
*
* Version : 0.0 . 0 ( build : 0 )
* /
function onDropDownKeyDown ( t ) { var e = $ ( this ) , i = e . parent ( ) , n = jQuery . Event ( "keydown.before.bs.dropdown" ) , o = jQuery . Event ( "keydown.after.bs.dropdown" ) ; i . trigger ( n ) , i . hasClass ( "no-stop-propagate" ) ? ( arguments . length > 1 && arguments [ 1 ] instanceof KeyboardEvent && ( t = arguments [ 1 ] ) , ! /^(38|40|27|13|9|37|39)$/ . test ( t . keyCode ) || t . ctrlKey || t . altKey || ( patchDropDownKeyDownAdditional . call ( this , t ) , /(37|39)/ . test ( t . keyCode ) || ( t . preventDefault ( ) , t . stopPropagation ( ) ) ) ) : ( patchDropDownKeyDown . call ( this , t ) , t . preventDefault ( ) , t . stopPropagation ( ) ) , i . trigger ( o ) } function patchDropDownKeyDown ( t ) { if ( /(38|40|27|37|39)/ . test ( t . keyCode ) ) { var e = $ ( this ) ; if ( t . preventDefault ( ) , t . stopPropagation ( ) , ! e . is ( ".disabled, :disabled" ) ) { var i = getParent ( e ) , n = i . hasClass ( "open" ) || i . hasClass ( "over" ) ; if ( ! n || n && 27 == t . keyCode ) { if ( 27 == t . which ) { if ( o = $ ( "[role=menu] li.dropdown-submenu.over:visible" , i ) , o . length ) return o . eq ( o . length - 1 ) . removeClass ( "over" ) , ! 1 ; i . hasClass ( "dropdown-submenu" ) && i . hasClass ( "over" ) ? ( i . removeClass ( "over" ) , i . find ( "> a" ) . focus ( ) ) : i . find ( "[data-toggle=dropdown]" ) . focus ( ) } return n ? e . click ( ) : void 0 } var o = $ ( "> [role=menu] > li:not(.divider):not(.disabled):visible" , i ) . find ( "> a" ) ; if ( o . length ) { var s = o . index ( o . filter ( ":focus" ) ) ; if ( 39 == t . keyCode ) { if ( s < 0 ) return ; var a = o . eq ( s ) . parent ( ) ; a . hasClass ( "dropdown-submenu" ) && ! a . hasClass ( "over" ) && ( a . mouseenter ( ) , a . addClass ( "focused-submenu" ) , _ . delay ( function ( ) { var t = $ ( "> [role=menu]" , a ) , e = t . find ( "> li:not(.divider):not(.disabled):visible > a" ) , i = t . find ( "> li:not(.divider):not(.disabled):visible .dataview" ) , n = 0 ; if ( t . find ( "> .menu-scroll" ) . length > 0 ) for ( var o = t . scrollTop ( ) , s = 0 ; s < e . length ; s ++ ) if ( e [ s ] . offsetTop > o ) { n = s ; break } e . length > 0 && i . length < 1 && e . eq ( n ) . focus ( ) } , 250 ) ) } else 37 == t . keyCode ? i . hasClass ( "dropdown-submenu" ) && i . hasClass ( "over" ) && ( i . removeClass ( "over" ) , i . find ( "> a" ) . focus ( ) ) : ( 38 == t . keyCode ? s > 0 ? s -- : s = e . hasClass ( "no-cyclic" ) ? 0 : o . length - 1 : 40 == t . keyCode && ( s < o . length - 1 ? s ++ : s = e . hasClass ( "no-cyclic" ) ? o . length - 1 : 0 ) , ~ s || ( s = 0 ) , i . hasClass ( "dropdown-submenu" ) && i . hasClass ( "over" ) && i . addClass ( "focused-submenu" ) , o . eq ( s ) . focus ( ) ) } } } } function patchDropDownKeyDownAdditional ( t ) { if ( /(38|40|27|37|39)/ . test ( t . keyCode ) ) { var e = $ ( this ) ; if ( /(37|39)/ . test ( t . keyCode ) || ( t . preventDefault ( ) , t . stopPropagation ( ) ) , ! e . is ( ".disabled, :disabled" ) ) { var i = getParent ( e ) , n = i . hasClass ( "open" ) || i . hasClass ( "over" ) ; if ( ! n || n && ( 27 == t . keyCode || 37 == t . keyCode || 39 == t . keyCode ) ) return n ? e . click ( ) : void 0 ; var o = $ ( "> [role=menu] > li:not(.divider):not(.disabled):visible" , i ) . find ( "> a" ) ; if ( o . length ) { var s = o . index ( o . filter ( ".focus" ) ) ; 38 == t . keyCode ? s > 0 ? s -- : s = e . hasClass ( "no-cyclic" ) ? 0 : o . length - 1 : 40 == t . keyCode && ( s < o . length - 1 ? s ++ : s = e . hasClass ( "no-cyclic" ) ? o . length - 1 : 0 ) , ~ s || ( s = 0 ) , o . removeClass ( "focus" ) , o . eq ( s ) . addClass ( "focus" ) } } } } function getParent ( t ) { var e = t . attr ( "data-target" ) ; e || ( e = t . attr ( "href" ) , e = e && /#/ . test ( e ) && e . replace ( /.*(?=#[^\s]*$)/ , "" ) ) ; var i = e && $ ( e ) ; return i && i . length ? i : t . parent ( ) } function clearMenus ( t ) { $ ( ".dropdown-toggle" ) . each ( function ( e ) { var i = $ ( this ) . parent ( ) ; if ( i . hasClass ( "open" ) ) { if ( "prevent-canvas-click" == i . attr ( "data-value" ) ) return void i . attr ( "data-value" , "" ) ; i . trigger ( e = $ . Event ( "hide.bs.dropdown" ) ) , e . isDefaultPrevented ( ) || i . removeClass ( "open" ) . trigger ( "hidden.bs.dropdown" , t ) } } ) } if ( function ( ) { var t = "object" == typeof self && self . self === self && self || "object" == typeof global && global . global === global && global || this || { } , e = t . _ , i = Array . prototype , n = Object . prototype , o = "undefined" != typeof Symbol ? Symbol . prototype : null , s = i . push , a = i . slice , r = n . toString , l = n . hasOwnProperty , c = Array . isArray , h = Object . keys , d = Object . create , p = function ( ) { } , u = function ( t ) { return t instanceof u ? t : this instanceof u ? void ( this . _wrapped = t ) : new u ( t ) } ; "undefined" == typeof exports || exports . nodeType ? t . _ = u : ( "undefined" != typeof module && ! module . nodeType && module . exports && ( exports = module . exports = u ) , exports . _ = u ) , u . VERSION = "1.8.3" ; var m , g = function ( t , e , i ) { if ( void 0 === e ) return t ; switch ( i ) { case 1 : return function ( i ) { return t . call ( e , i ) } ; case null : case 3 : return function ( i , n , o ) { return t . call ( e , i , n , o ) } ; case 4 : return function ( i , n , o , s ) { return t . call ( e , i , n , o , s ) } } return function ( ) { return t . apply ( e , arguments ) } } , f = function ( t , e , i ) { return u . it
; var n , o = 0 , s = e . toLowerCase ( ) . match ( Et ) || [ ] ; if ( mt . isFunction ( i ) ) for ( ; n = s [ o ++ ] ; ) "+" === n [ 0 ] ? ( n = n . slice ( 1 ) || "*" , ( t [ n ] = t [ n ] || [ ] ) . unshift ( i ) ) : ( t [ n ] = t [ n ] || [ ] ) . push ( i ) } } function Z ( t , e , i , n ) { function o ( r ) { var l ; return s [ r ] = ! 0 , mt . each ( t [ r ] || [ ] , function ( t , r ) { var c = r ( e , i , n ) ; return "string" != typeof c || a || s [ c ] ? a ? ! ( l = c ) : void 0 : ( e . dataTypes . unshift ( c ) , o ( c ) , ! 1 ) } ) , l } var s = { } , a = t === Re ; return o ( e . dataTypes [ 0 ] ) || ! s [ "*" ] && o ( "*" ) } function J ( t , e ) { var i , n , o = mt . ajaxSettings . flatOptions || { } ; for ( i in e ) void 0 !== e [ i ] && ( ( o [ i ] ? t : n || ( n = { } ) ) [ i ] = e [ i ] ) ; return n && mt . extend ( ! 0 , t , n ) , t } function Q ( t , e , i ) { for ( var n , o , s , a , r = t . contents , l = t . dataTypes ; "*" === l [ 0 ] ; ) l . shift ( ) , void 0 === n && ( n = t . mimeType || e . getResponseHeader ( "Content-Type" ) ) ; if ( n ) for ( o in r ) if ( r [ o ] && r [ o ] . test ( n ) ) { l . unshift ( o ) ; break } if ( l [ 0 ] in i ) s = l [ 0 ] ; else { for ( o in i ) { if ( ! l [ 0 ] || t . converters [ o + " " + l [ 0 ] ] ) { s = o ; break } a || ( a = o ) } s = s || a } if ( s ) return s !== l [ 0 ] && l . unshift ( s ) , i [ s ] } function tt ( t , e , i , n ) { var o , s , a , r , l , c = { } , h = t . dataTypes . slice ( ) ; if ( h [ 1 ] ) for ( a in t . converters ) c [ a . toLowerCase ( ) ] = t . converters [ a ] ; for ( s = h . shift ( ) ; s ; ) if ( t . responseFields [ s ] && ( i [ t . responseFields [ s ] ] = e ) , ! l && n && t . dataFilter && ( e = t . dataFilter ( e , t . dataType ) ) , l = s , s = h . shift ( ) ) if ( "*" === s ) s = l ; else if ( "*" !== l && l !== s ) { if ( ! ( a = c [ l + " " + s ] || c [ "* " + s ] ) ) for ( o in c ) if ( r = o . split ( " " ) , r [ 1 ] === s && ( a = c [ l + " " + r [ 0 ] ] || c [ "* " + r [ 0 ] ] ) ) { ! 0 === a ? a = c [ o ] : ! 0 !== c [ o ] && ( s = r [ 0 ] , h . unshift ( r [ 1 ] ) ) ; break } if ( ! 0 !== a ) if ( a && t . throws ) e = a ( e ) ; else try { e = a ( e ) } catch ( t ) { return { state : "parsererror" , error : a ? t : "No conversion from " + l + " to " + s } } } return { state : "success" , data : e } } var et = [ ] , it = t . document , nt = Object . getPrototypeOf , ot = et . slice , st = et . concat , at = et . push , rt = et . indexOf , lt = { } , ct = lt . toString , ht = lt . hasOwnProperty , dt = ht . toString , pt = dt . call ( Object ) , ut = { } , mt = function ( t , e ) { return new mt . fn . init ( t , e ) } , gt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , ft = /^-ms-/ , bt = /-([a-z])/g , Ct = function ( t , e ) { return e . toUpperCase ( ) } ; mt . fn = mt . prototype = { jquery : "3.2.1" , constructor : mt , length : 0 , toArray : function ( ) { return ot . call ( this ) } , get : function ( t ) { return null == t ? ot . call ( this ) : t < 0 ? this [ t + this . length ] : this [ t ] } , pushStack : function ( t ) { var e = mt . merge ( this . constructor ( ) , t ) ; return e . prevObject = this , e } , each : function ( t ) { return mt . each ( this , t ) } , map : function ( t ) { return this . pushStack ( mt . map ( this , function ( e , i ) { return t . call ( e , i , e ) } ) ) } , slice : function ( ) { return this . pushStack ( ot . apply ( this , arguments ) ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , eq : function ( t ) { var e = this . length , i = + t + ( t < 0 ? e : 0 ) ; return this . pushStack ( i >= 0 && i < e ? [ this [ i ] ] : [ ] ) } , end : function ( ) { return this . prevObject || this . constructor ( ) } , push : at , sort : et . sort , splice : et . splice } , mt . extend = mt . fn . extend = function ( ) { var t , e , i , n , o , s , a = arguments [ 0 ] || { } , r = 1 , l = arguments . length , c = ! 1 ; for ( "boolean" == typeof a && ( c = a , a = arguments [ r ] || { } , r ++ ) , "object" == typeof a || mt . isFunction ( a ) || ( a = { } ) , r === l && ( a = this , r -- ) ; r < l ; r ++ ) if ( null != ( t = arguments [ r ] ) ) for ( e in t ) i = a [ e ] , n = t [ e ] , a !== n && ( c && n && ( mt . isPlainObject ( n ) || ( o = Array . isArray ( n ) ) ) ? ( o ? ( o = ! 1 , s = i && Array . isArray ( i ) ? i : [ ] ) : s = i && mt . isPlainObject ( i ) ? i : { } , a [ e ] = mt . extend ( c , s , n ) ) : void 0 !== n && ( a [ e ] = n ) ) ; return a } , mt . extend ( { expando : "jQuery" + ( "3.2.1" + Math . random ( ) ) . replace ( /\D/g , "" ) , isReady : ! 0 , error : function ( t ) { throw new Error ( t ) } , noop : function ( ) { } , isFunction : function ( t ) { return "function" === mt . type ( t ) } , isWindow : function ( t ) { return null != t && t === t . window } , isNumeric : function ( t ) { var e = mt . type ( t ) ; return ( "number" === e || "string" === e ) && ! isNaN ( t - parseFloat ( t ) ) } , isPlainObject : function ( t ) { var e , i ; return ! ( ! t || "[object Object]" !== ct . call ( t ) ) && ( ! ( e = nt ( t ) ) || "function" == typeof ( i = ht . call ( e , "constructor" ) && e . constructor ) && dt . call ( i ) === pt ) } , isEmptyObject : function ( t ) { var e ; for ( e in t ) return ! 1 ; return ! 0 } , type : function ( t ) { return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? lt [ ct . call ( t ) ] || "object" : typeof t } , globalEval : function ( t ) { i ( t ) } , camelCase : function ( t ) { return t . replace ( ft , "ms-" ) . replace ( bt , Ct ) } , each : function ( t , e ) { var i , o = 0 ; if ( n ( t ) ) for ( i = t . length ; o < i && ! 1 !== e . call ( t [ o ] , o , t [ o ] ) ; o ++ ) ; else for ( o in t ) if ( ! 1 === e . call ( t [ o ] , o , t [ o ] ) ) break ; return t } , trim : function ( t ) { return null == t ? "" : ( t + "" ) . replace ( gt , "" ) } , makeArray : function ( t , e ) { var i = e || [ ] ; return null != t && ( n ( Object ( t ) ) ? mt . merge (
mt . readyException ( t ) } ) , this } , mt . extend ( { isReady : ! 1 , readyWait : 1 , ready : function ( t ) { ( ! 0 === t ? -- mt . readyWait : mt . isReady ) || ( mt . isReady = ! 0 , ! 0 !== t && -- mt . readyWait > 0 || Mt . resolveWith ( it , [ mt ] ) ) } } ) , mt . ready . then = Mt . then , "complete" === it . readyState || "loading" !== it . readyState && ! it . documentElement . doScroll ? t . setTimeout ( mt . ready ) : ( it . addEventListener ( "DOMContentLoaded" , d ) , t . addEventListener ( "load" , d ) ) ; var Ut = function ( t , e , i , n , o , s , a ) { var r = 0 , l = t . length , c = null == i ; if ( "object" === mt . type ( i ) ) { o = ! 0 ; for ( r in i ) Ut ( t , e , r , i [ r ] , ! 0 , s , a ) } else if ( void 0 !== n && ( o = ! 0 , mt . isFunction ( n ) || ( a = ! 0 ) , c && ( a ? ( e . call ( t , n ) , e = null ) : ( c = e , e = function ( t , e , i ) { return c . call ( mt ( t ) , i ) } ) ) , e ) ) for ( ; r < l ; r ++ ) e ( t [ r ] , i , a ? n : n . call ( t [ r ] , r , e ( t [ r ] , i ) ) ) ; return o ? t : c ? e . call ( t ) : l ? e ( t [ 0 ] , i ) : s } , Dt = function ( t ) { return 1 === t . nodeType || 9 === t . nodeType || ! + t . nodeType } ; p . uid = 1 , p . prototype = { cache : function ( t ) { var e = t [ this . expando ] ; return e || ( e = { } , Dt ( t ) && ( t . nodeType ? t [ this . expando ] = e : Object . defineProperty ( t , this . expando , { value : e , configurable : ! 0 } ) ) ) , e } , set : function ( t , e , i ) { var n , o = this . cache ( t ) ; if ( "string" == typeof e ) o [ mt . camelCase ( e ) ] = i ; else for ( n in e ) o [ mt . camelCase ( n ) ] = e [ n ] ; return o } , get : function ( t , e ) { return void 0 === e ? this . cache ( t ) : t [ this . expando ] && t [ this . expando ] [ mt . camelCase ( e ) ] } , access : function ( t , e , i ) { return void 0 === e || e && "string" == typeof e && void 0 === i ? this . get ( t , e ) : ( this . set ( t , e , i ) , void 0 !== i ? i : e ) } , remove : function ( t , e ) { var i , n = t [ this . expando ] ; if ( void 0 !== n ) { if ( void 0 !== e ) { Array . isArray ( e ) ? e = e . map ( mt . camelCase ) : ( e = mt . camelCase ( e ) , e = e in n ? [ e ] : e . match ( Et ) || [ ] ) , i = e . length ; for ( ; i -- ; ) delete n [ e [ i ] ] } ( void 0 === e || mt . isEmptyObject ( n ) ) && ( t . nodeType ? t [ this . expando ] = void 0 : delete t [ this . expando ] ) } } , hasData : function ( t ) { var e = t [ this . expando ] ; return void 0 !== e && ! mt . isEmptyObject ( e ) } } ; var Bt = new p , Lt = new p , Ft = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , Vt = /[A-Z]/g ; mt . extend ( { hasData : function ( t ) { return Lt . hasData ( t ) || Bt . hasData ( t ) } , data : function ( t , e , i ) { return Lt . access ( t , e , i ) } , removeData : function ( t , e ) { Lt . remove ( t , e ) } , _data : function ( t , e , i ) { return Bt . access ( t , e , i ) } , _removeData : function ( t , e ) { Bt . remove ( t , e ) } } ) , mt . fn . extend ( { data : function ( t , e ) { var i , n , o , s = this [ 0 ] , a = s && s . attributes ; if ( void 0 === t ) { if ( this . length && ( o = Lt . get ( s ) , 1 === s . nodeType && ! Bt . get ( s , "hasDataAttrs" ) ) ) { for ( i = a . length ; i -- ; ) a [ i ] && ( n = a [ i ] . name , 0 === n . indexOf ( "data-" ) && ( n = mt . camelCase ( n . slice ( 5 ) ) , m ( s , n , o [ n ] ) ) ) ; Bt . set ( s , "hasDataAttrs" , ! 0 ) } return o } return "object" == typeof t ? this . each ( function ( ) { Lt . set ( this , t ) } ) : Ut ( this , function ( e ) { var i ; if ( s && void 0 === e ) { if ( void 0 !== ( i = Lt . get ( s , t ) ) ) return i ; if ( void 0 !== ( i = m ( s , t ) ) ) return i } else this . each ( function ( ) { Lt . set ( this , t , e ) } ) } , null , e , arguments . length > 1 , null , ! 0 ) } , removeData : function ( t ) { return this . each ( function ( ) { Lt . remove ( this , t ) } ) } } ) , mt . extend ( { queue : function ( t , e , i ) { var n ; if ( t ) return e = ( e || "fx" ) + "queue" , n = Bt . get ( t , e ) , i && ( ! n || Array . isArray ( i ) ? n = Bt . access ( t , e , mt . makeArray ( i ) ) : n . push ( i ) ) , n || [ ] } , dequeue : function ( t , e ) { e = e || "fx" ; var i = mt . queue ( t , e ) , n = i . length , o = i . shift ( ) , s = mt . _queueHooks ( t , e ) , a = function ( ) { mt . dequeue ( t , e ) } ; "inprogress" === o && ( o = i . shift ( ) , n -- ) , o && ( "fx" === e && i . unshift ( "inprogress" ) , delete s . stop , o . call ( t , a , s ) ) , ! n && s && s . empty . fire ( ) } , _queueHooks : function ( t , e ) { var i = e + "queueHooks" ; return Bt . get ( t , i ) || Bt . access ( t , i , { empty : mt . Callbacks ( "once memory" ) . add ( function ( ) { Bt . remove ( t , [ e + "queue" , i ] ) } ) } ) } } ) , mt . fn . extend ( { queue : function ( t , e ) { var i = 2 ; return "string" != typeof t && ( e = t , t = "fx" , i -- ) , arguments . length < i ? mt . queue ( this [ 0 ] , t ) : void 0 === e ? this : this . each ( function ( ) { var i = mt . queue ( this , t , e ) ; mt . _queueHooks ( this , t ) , "fx" === t && "inprogress" !== i [ 0 ] && mt . dequeue ( this , t ) } ) } , dequeue : function ( t ) { return this . each ( function ( ) { mt . dequeue ( this , t ) } ) } , clearQueue : function ( t ) { return this . queue ( t || "fx" , [ ] ) } , promise : function ( t , e ) { var i , n = 1 , o = mt . Deferred ( ) , s = this , a = this . length , r = function ( ) { -- n || o . resolveWith ( s , [ s ] ) } ; for ( "string" != typeof t && ( e = t , t = void 0 ) , t = t || "fx" ; a -- ; ) ( i = Bt . get ( s [ a ] , t + "queueHooks" ) ) && i . empty && ( n ++ , i . empty . add ( r ) ) ; return r ( ) , o . promise ( e ) } } ) ; var Rt = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , Ot = new RegExp ( "^(?:([+-])=|)(" + Rt + ")([a-z%]*)$" , "i" ) , Nt = [ "Top" , "Right" , "Bottom" , "Left" ] , zt = function ( t , e ) { return t = e || t , "none" === t . style . display || "" === t . sty
json : "application/json, text/javascript" } , contents : { xml : /\bxml\b/ , html : /\bhtml/ , json : /\bjson\b/ } , responseFields : { xml : "responseXML" , text : "responseText" , json : "responseJSON" } , converters : { "* text" : String , "text html" : ! 0 , "text json" : JSON . parse , "text xml" : mt . parseXML } , flatOptions : { url : ! 0 , context : ! 0 } } , ajaxSetup : function ( t , e ) { return e ? J ( J ( t , mt . ajaxSettings ) , e ) : J ( mt . ajaxSettings , t ) } , ajaxPrefilter : X ( Ve ) , ajaxTransport : X ( Re ) , ajax : function ( e , i ) { function n ( e , i , n , r ) { var c , p , u , y , _ , x = i ; h || ( h = ! 0 , l && t . clearTimeout ( l ) , o = void 0 , a = r || "" , w . readyState = e > 0 ? 4 : 0 , c = e >= 200 && e < 300 || 304 === e , n && ( y = Q ( m , w , n ) ) , y = tt ( m , y , w , c ) , c ? ( m . ifModified && ( _ = w . getResponseHeader ( "Last-Modified" ) , _ && ( mt . lastModified [ s ] = _ ) , ( _ = w . getResponseHeader ( "etag" ) ) && ( mt . etag [ s ] = _ ) ) , 204 === e || "HEAD" === m . type ? x = "nocontent" : 304 === e ? x = "notmodified" : ( x = y . state , p = y . data , u = y . error , c = ! u ) ) : ( u = x , ! e && x || ( x = "error" , e < 0 && ( e = 0 ) ) ) , w . status = e , w . statusText = ( i || x ) + "" , c ? b . resolveWith ( g , [ p , x , w ] ) : b . rejectWith ( g , [ w , x , u ] ) , w . statusCode ( v ) , v = void 0 , d && f . trigger ( c ? "ajaxSuccess" : "ajaxError" , [ w , m , c ? p : u ] ) , C . fireWith ( g , [ w , x ] ) , d && ( f . trigger ( "ajaxComplete" , [ w , m ] ) , -- mt . active || mt . event . trigger ( "ajaxStop" ) ) ) } "object" == typeof e && ( i = e , e = void 0 ) , i = i || { } ; var o , s , a , r , l , c , h , d , p , u , m = mt . ajaxSetup ( { } , i ) , g = m . context || m , f = m . context && ( g . nodeType || g . jquery ) ? mt ( g ) : mt . event , b = mt . Deferred ( ) , C = mt . Callbacks ( "once memory" ) , v = m . statusCode || { } , y = { } , _ = { } , x = "canceled" , w = { readyState : 0 , getResponseHeader : function ( t ) { var e ; if ( h ) { if ( ! r ) for ( r = { } ; e = De . exec ( a ) ; ) r [ e [ 1 ] . toLowerCase ( ) ] = e [ 2 ] ; e = r [ t . toLowerCase ( ) ] } return null == e ? null : e } , getAllResponseHeaders : function ( ) { return h ? a : null } , setRequestHeader : function ( t , e ) { return null == h && ( t = _ [ t . toLowerCase ( ) ] = _ [ t . toLowerCase ( ) ] || t , y [ t ] = e ) , this } , overrideMimeType : function ( t ) { return null == h && ( m . mimeType = t ) , this } , statusCode : function ( t ) { var e ; if ( t ) if ( h ) w . always ( t [ w . status ] ) ; else for ( e in t ) v [ e ] = [ v [ e ] , t [ e ] ] ; return this } , abort : function ( t ) { var e = t || x ; return o && o . abort ( e ) , n ( 0 , e ) , this } } ; if ( b . promise ( w ) , m . url = ( ( e || m . url || we . href ) + "" ) . replace ( Fe , we . protocol + "//" ) , m . type = i . method || i . type || m . method || m . type , m . dataTypes = ( m . dataType || "*" ) . toLowerCase ( ) . match ( Et ) || [ "" ] , null == m . crossDomain ) { c = it . createElement ( "a" ) ; try { c . href = m . url , c . href = c . href , m . crossDomain = Ne . protocol + "//" + Ne . host != c . protocol + "//" + c . host } catch ( t ) { m . crossDomain = ! 0 } } if ( m . data && m . processData && "string" != typeof m . data && ( m . data = mt . param ( m . data , m . traditional ) ) , Z ( Ve , m , i , w ) , h ) return w ; d = mt . event && m . global , d && 0 == mt . active ++ && mt . event . trigger ( "ajaxStart" ) , m . type = m . type . toUpperCase ( ) , m . hasContent = ! Le . test ( m . type ) , s = m . url . replace ( Me , "" ) , m . hasContent ? m . data && m . processData && 0 === ( m . contentType || "" ) . indexOf ( "application/x-www-form-urlencoded" ) && ( m . data = m . data . replace ( Pe , "+" ) ) : ( u = m . url . slice ( s . length ) , m . data && ( s += ( Te . test ( s ) ? "&" : "?" ) + m . data , delete m . data ) , ! 1 === m . cache && ( s = s . replace ( Ue , "$1" ) , u = ( Te . test ( s ) ? "&" : "?" ) + "_=" + Se ++ + u ) , m . url = s + u ) , m . ifModified && ( mt . lastModified [ s ] && w . setRequestHeader ( "If-Modified-Since" , mt . lastModified [ s ] ) , mt . etag [ s ] && w . setRequestHeader ( "If-None-Match" , mt . etag [ s ] ) ) , ( m . data && m . hasContent && ! 1 !== m . contentType || i . contentType ) && w . setRequestHeader ( "Content-Type" , m . contentType ) , w . setRequestHeader ( "Accept" , m . dataTypes [ 0 ] && m . accepts [ m . dataTypes [ 0 ] ] ? m . accepts [ m . dataTypes [ 0 ] ] + ( "*" !== m . dataTypes [ 0 ] ? ", " + Oe + "; q=0.01" : "" ) : m . accepts [ "*" ] ) ; for ( p in m . headers ) w . setRequestHeader ( p , m . headers [ p ] ) ; if ( m . beforeSend && ( ! 1 === m . beforeSend . call ( g , w , m ) || h ) ) return w . abort ( ) ; if ( x = "abort" , C . add ( m . complete ) , w . done ( m . success ) , w . fail ( m . error ) , o = Z ( Re , m , i , w ) ) { if ( w . readyState = 1 , d && f . trigger ( "ajaxSend" , [ w , m ] ) , h ) return w ; m . async && m . timeout > 0 && ( l = t . setTimeout ( function ( ) { w . abort ( "timeout" ) } , m . timeout ) ) ; try { h = ! 1 , o . send ( y , n ) } catch ( t ) { if ( h ) throw t ; n ( - 1 , t ) } } else n ( - 1 , "No Transport" ) ; return w } , getJSON : function ( t , e , i ) { return mt . get ( t , e , i , "json" ) } , getScript : function ( t , e ) { return mt . get ( t , void 0 , e , "script" ) } } ) , mt . each ( [ "get" , "post" ] , function ( t , e ) { mt [ e ] = function ( t , i , n , o ) { return mt . isFunction ( i ) && ( o = o || n , n = i , i = void 0 ) , mt . ajax ( mt . extend ( { url : t , type : e , dataType : o , data : i , success : n } , mt . isPlainObject ( t ) && t ) ) } } ) , mt . _evalUrl = function ( t ) { return mt . ajax ( { url : t , type : "GET" , dataType : "script" , cache : ! 0 , async : ! 1 , global : ! 1
; o || i . data ( "bs.alert" , o = new n ( this ) ) , "string" == typeof e && o [ e ] . call ( i ) } ) } var i = '[data-dismiss="alert"]' , n = function ( e ) { t ( e ) . on ( "click" , i , this . close ) } ; n . VERSION = "3.3.7" , n . TRANSITION _DURATION = 150 , n . prototype . close = function ( e ) { function i ( ) { a . detach ( ) . trigger ( "closed.bs.alert" ) . remove ( ) } var o = t ( this ) , s = o . attr ( "data-target" ) ; s || ( s = o . attr ( "href" ) , s = s && s . replace ( /.*(?=#[^\s]*$)/ , "" ) ) ; var a = t ( "#" === s ? [ ] : s ) ; e && e . preventDefault ( ) , a . length || ( a = o . closest ( ".alert" ) ) , a . trigger ( e = t . Event ( "close.bs.alert" ) ) , e . isDefaultPrevented ( ) || ( a . removeClass ( "in" ) , t . support . transition && a . hasClass ( "fade" ) ? a . one ( "bsTransitionEnd" , i ) . emulateTransitionEnd ( n . TRANSITION _DURATION ) : i ( ) ) } ; var o = t . fn . alert ; t . fn . alert = e , t . fn . alert . Constructor = n , t . fn . alert . noConflict = function ( ) { return t . fn . alert = o , this } , t ( document ) . on ( "click.bs.alert.data-api" , i , n . prototype . close ) } ( jQuery ) , function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var n = t ( this ) , o = n . data ( "bs.button" ) , s = "object" == typeof e && e ; o || n . data ( "bs.button" , o = new i ( this , s ) ) , "toggle" == e ? o . toggle ( ) : e && o . setState ( e ) } ) } var i = function ( e , n ) { this . $element = t ( e ) , this . options = t . extend ( { } , i . DEFAULTS , n ) , this . isLoading = ! 1 } ; i . VERSION = "3.3.7" , i . DEFAULTS = { loadingText : "loading..." } , i . prototype . setState = function ( e ) { var i = "disabled" , n = this . $element , o = n . is ( "input" ) ? "val" : "html" , s = n . data ( ) ; e += "Text" , null == s . resetText && n . data ( "resetText" , n [ o ] ( ) ) , setTimeout ( t . proxy ( function ( ) { n [ o ] ( null == s [ e ] ? this . options [ e ] : s [ e ] ) , "loadingText" == e ? ( this . isLoading = ! 0 , n . addClass ( i ) . attr ( i , i ) . prop ( i , ! 0 ) ) : this . isLoading && ( this . isLoading = ! 1 , n . removeClass ( i ) . removeAttr ( i ) . prop ( i , ! 1 ) ) } , this ) , 0 ) } , i . prototype . toggle = function ( ) { var t = ! 0 , e = this . $element . closest ( '[data-toggle="buttons"]' ) ; if ( e . length ) { var i = this . $element . find ( "input" ) ; "radio" == i . prop ( "type" ) ? ( i . prop ( "checked" ) && ( t = ! 1 ) , e . find ( ".active" ) . removeClass ( "active" ) , this . $element . addClass ( "active" ) ) : "checkbox" == i . prop ( "type" ) && ( i . prop ( "checked" ) !== this . $element . hasClass ( "active" ) && ( t = ! 1 ) , this . $element . toggleClass ( "active" ) ) , i . prop ( "checked" , this . $element . hasClass ( "active" ) ) , t && i . trigger ( "change" ) } else this . $element . attr ( "aria-pressed" , ! this . $element . hasClass ( "active" ) ) , this . $element . toggleClass ( "active" ) } ; var n = t . fn . button ; t . fn . button = e , t . fn . button . Constructor = i , t . fn . button . noConflict = function ( ) { return t . fn . button = n , this } , t ( document ) . on ( "click.bs.button.data-api" , '[data-toggle^="button"]' , function ( i ) { var n = t ( i . target ) . closest ( ".btn" ) ; e . call ( n , "toggle" ) , t ( i . target ) . is ( 'input[type="radio"], input[type="checkbox"]' ) || ( i . preventDefault ( ) , n . is ( "input,button" ) ? n . trigger ( "focus" ) : n . find ( "input:visible,button:visible" ) . first ( ) . trigger ( "focus" ) ) } ) . on ( "focus.bs.button.data-api blur.bs.button.data-api" , '[data-toggle^="button"]' , function ( e ) { t ( e . target ) . closest ( ".btn" ) . toggleClass ( "focus" , /^focus(in)?$/ . test ( e . type ) ) } ) } ( jQuery ) , function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var n = t ( this ) , o = n . data ( "bs.carousel" ) , s = t . extend ( { } , i . DEFAULTS , n . data ( ) , "object" == typeof e && e ) , a = "string" == typeof e ? e : s . slide ; o || n . data ( "bs.carousel" , o = new i ( this , s ) ) , "number" == typeof e ? o . to ( e ) : a ? o [ a ] ( ) : s . interval && o . pause ( ) . cycle ( ) } ) } var i = function ( e , i ) { this . $element = t ( e ) , this . $indicators = this . $element . find ( ".carousel-indicators" ) , this . options = i , this . paused = null , this . sliding = null , this . interval = null , this . $active = null , this . $items = null , this . options . keyboard && this . $element . on ( "keydown.bs.carousel" , t . proxy ( this . keydown , this ) ) , "hover" == this . options . pause && ! ( "ontouchstart" in document . documentElement ) && this . $element . on ( "mouseenter.bs.carousel" , t . proxy ( this . pause , this ) ) . on ( "mouseleave.bs.carousel" , t . proxy ( this . cycle , this ) ) } ; i . VERSION = "3.3.7" , i . TRANSITION _DURATION = 600 , i . DEFAULTS = { interval : 5e3 , pause : "hover" , wrap : ! 0 , keyboard : ! 0 } , i . prototype . keydown = function ( t ) { if ( ! /input|textarea/i . test ( t . target . tagName ) ) { switch ( t . which ) { case 37 : this . prev ( ) ; break ; case 39 : this . next ( ) ; break ; default : return } t . preventDefault ( ) } } , i . prototype . cycle = function ( e ) { return e || ( this . paused = ! 1 ) , this . interval && clearInterval ( this . interval ) , this . options . interval && ! this . paused && ( this . interval = setInterval ( t . proxy ( this . next , this ) , this . options . interval ) ) , this } , i . prot
} ) , a = t . Event ( "show.bs.tab" , { relatedTarget : o [ 0 ] } ) ; if ( o . trigger ( s ) , e . trigger ( a ) , ! a . isDefaultPrevented ( ) && ! s . isDefaultPrevented ( ) ) { var r = t ( n ) ; this . activate ( e . closest ( "li" ) , i ) , this . activate ( r , r . parent ( ) , function ( ) { o . trigger ( { type : "hidden.bs.tab" , relatedTarget : e [ 0 ] } ) , e . trigger ( { type : "shown.bs.tab" , relatedTarget : o [ 0 ] } ) } ) } } } , i . prototype . activate = function ( e , n , o ) { function s ( ) { a . removeClass ( "active" ) . find ( "> .dropdown-menu > .active" ) . removeClass ( "active" ) . end ( ) . find ( '[data-toggle="tab"]' ) . attr ( "aria-expanded" , ! 1 ) , e . addClass ( "active" ) . find ( '[data-toggle="tab"]' ) . attr ( "aria-expanded" , ! 0 ) , r ? ( e [ 0 ] . offsetWidth , e . addClass ( "in" ) ) : e . removeClass ( "fade" ) , e . parent ( ".dropdown-menu" ) . length && e . closest ( "li.dropdown" ) . addClass ( "active" ) . end ( ) . find ( '[data-toggle="tab"]' ) . attr ( "aria-expanded" , ! 0 ) , o && o ( ) } var a = n . find ( "> .active" ) , r = o && t . support . transition && ( a . length && a . hasClass ( "fade" ) || ! ! n . find ( "> .fade" ) . length ) ; a . length && r ? a . one ( "bsTransitionEnd" , s ) . emulateTransitionEnd ( i . TRANSITION _DURATION ) : s ( ) , a . removeClass ( "in" ) } ; var n = t . fn . tab ; t . fn . tab = e , t . fn . tab . Constructor = i , t . fn . tab . noConflict = function ( ) { return t . fn . tab = n , this } ; var o = function ( i ) { i . preventDefault ( ) , e . call ( t ( this ) , "show" ) } ; t ( document ) . on ( "click.bs.tab.data-api" , '[data-toggle="tab"]' , o ) . on ( "click.bs.tab.data-api" , '[data-toggle="pill"]' , o ) } ( jQuery ) , function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var n = t ( this ) , o = n . data ( "bs.affix" ) , s = "object" == typeof e && e ; o || n . data ( "bs.affix" , o = new i ( this , s ) ) , "string" == typeof e && o [ e ] ( ) } ) } var i = function ( e , n ) { this . options = t . extend ( { } , i . DEFAULTS , n ) , this . $target = t ( this . options . target ) . on ( "scroll.bs.affix.data-api" , t . proxy ( this . checkPosition , this ) ) . on ( "click.bs.affix.data-api" , t . proxy ( this . checkPositionWithEventLoop , this ) ) , this . $element = t ( e ) , this . affixed = null , this . unpin = null , this . pinnedOffset = null , this . checkPosition ( ) } ; i . VERSION = "3.3.7" , i . RESET = "affix affix-top affix-bottom" , i . DEFAULTS = { offset : 0 , target : window } , i . prototype . getState = function ( t , e , i , n ) { var o = this . $target . scrollTop ( ) , s = this . $element . offset ( ) , a = this . $target . height ( ) ; if ( null != i && "top" == this . affixed ) return o < i && "top" ; if ( "bottom" == this . affixed ) return null != i ? ! ( o + this . unpin <= s . top ) && "bottom" : ! ( o + a <= t - n ) && "bottom" ; var r = null == this . affixed , l = r ? o : s . top , c = r ? a : e ; return null != i && o <= i ? "top" : null != n && l + c >= t - n && "bottom" } , i . prototype . getPinnedOffset = function ( ) { if ( this . pinnedOffset ) return this . pinnedOffset ; this . $element . removeClass ( i . RESET ) . addClass ( "affix" ) ; var t = this . $target . scrollTop ( ) , e = this . $element . offset ( ) ; return this . pinnedOffset = e . top - t } , i . prototype . checkPositionWithEventLoop = function ( ) { setTimeout ( t . proxy ( this . checkPosition , this ) , 1 ) } , i . prototype . checkPosition = function ( ) { if ( this . $element . is ( ":visible" ) ) { var e = this . $element . height ( ) , n = this . options . offset , o = n . top , s = n . bottom , a = Math . max ( t ( document ) . height ( ) , t ( document . body ) . height ( ) ) ; "object" != typeof n && ( s = o = n ) , "function" == typeof o && ( o = n . top ( this . $element ) ) , "function" == typeof s && ( s = n . bottom ( this . $element ) ) ; var r = this . getState ( a , e , o , s ) ; if ( this . affixed != r ) { null != this . unpin && this . $element . css ( "top" , "" ) ; var l = "affix" + ( r ? "-" + r : "" ) , c = t . Event ( l + ".bs.affix" ) ; if ( this . $element . trigger ( c ) , c . isDefaultPrevented ( ) ) return ; this . affixed = r , this . unpin = "bottom" == r ? this . getPinnedOffset ( ) : null , this . $element . removeClass ( i . RESET ) . addClass ( l ) . trigger ( l . replace ( "affix" , "affixed" ) + ".bs.affix" ) } "bottom" == r && this . $element . offset ( { top : a - e - s } ) } } ; var n = t . fn . affix ; t . fn . affix = e , t . fn . affix . Constructor = i , t . fn . affix . noConflict = function ( ) { return t . fn . affix = n , this } , t ( window ) . on ( "load" , function ( ) { t ( '[data-spy="affix"]' ) . each ( function ( ) { var i = t ( this ) , n = i . data ( ) ; n . offset = n . offset || { } , null != n . offsetBottom && ( n . offset . bottom = n . offsetBottom ) , null != n . offsetTop && ( n . offset . top = n . offsetTop ) , e . call ( i , n ) } ) } ) } ( jQuery ) , define ( "bootstrap" , [ "jquery" ] , function ( ) { } ) , void 0 === Common ) var Common = { } ; if ( define ( "notification" , [ "backbone" ] , function ( t ) { "use strict" ; var e = function ( ) { } ; if ( _ . extend ( e . prototype , t . Events ) , void 0 !== Common . NotificationCenter ) throw "Native Common.NotificationCenter instance already defined." ; e . extend = t . Model . extend , Common . NotificationCenter = new e } ) , function ( ) { var t = function ( t , e ) { for ( v
setTimeout ( function ( ) { r . $window . css ( { "-webkit-transition" : "0.2s opacity, 0.2s -webkit-transform" , "-webkit-transform" : "scale(1)" , "-moz-transition" : "0.2s opacity, 0.2s -moz-transform" , "-moz-transform" : "scale(1)" , "-ms-transition" : "0.2s opacity, 0.2s -ms-transform" , "-ms-transform" : "scale(1)" , "-o-transition" : "0.2s opacity, 0.2s -o-transform" , "-o-transform" : "scale(1)" , opacity : "1" } ) } , 1 ) , setTimeout ( function ( ) { r . $window . addClass ( "notransform" ) , r . fireEvent ( "show" , r ) } , this . initConfig . modal ? 1e3 : 350 ) ) : ( this . $window . css ( { opacity : 1 } ) , this . $window . addClass ( "notransform" ) , this . fireEvent ( "show" , this ) ) , Common . NotificationCenter . trigger ( "window:show" ) } , close : function ( e ) { if ( $ ( document ) . off ( "keydown." + this . cid ) , this . initConfig . header && this . $window . find ( ".header" ) . off ( "mousedown" , this . binding . dragStart ) , this . initConfig . modal ) { var i = t ( ) , o = ! 0 ; if ( i . attr ( "counter" , parseInt ( i . attr ( "counter" ) ) - 1 ) , this . $lastmodal . length > 0 && ( this . $lastmodal . removeClass ( "dethrone" ) , o = ! ( this . $lastmodal . hasClass ( "modal" ) && this . $lastmodal . is ( ":visible" ) ) ) , o ) if ( ! 1 !== this . options . animate ) { var s = i . css ( "opacity" ) ; i . css ( n ( 0 ) ) , setTimeout ( function ( ) { i . css ( "opacity" , s ) , parseInt ( i . attr ( "counter" ) ) < 1 && ( i . hide ( ) , i . attr ( "counter" , 0 ) ) } , 300 ) } else parseInt ( i . attr ( "counter" ) ) < 1 && ( i . hide ( ) , i . attr ( "counter" , 0 ) ) ; Common . NotificationCenter . trigger ( "modal:close" , this ) } this . $window . remove ( ) , ! 0 !== e && this . fireEvent ( "close" , this ) } , hide : function ( ) { if ( $ ( document ) . off ( "keydown." + this . cid ) , this . $window ) { if ( this . initConfig . modal ) { var e = t ( ) , i = ! 0 ; if ( e . attr ( "counter" , parseInt ( e . attr ( "counter" ) ) - 1 ) , this . $lastmodal . length > 0 && ( this . $lastmodal . removeClass ( "dethrone" ) , i = ! ( this . $lastmodal . hasClass ( "modal" ) && this . $lastmodal . is ( ":visible" ) ) ) , i ) if ( ! 1 !== this . options . animate ) { var o = e . css ( "opacity" ) ; e . css ( n ( 0 ) ) , setTimeout ( function ( ) { e . css ( "opacity" , o ) , parseInt ( e . attr ( "counter" ) ) < 1 && ( e . hide ( ) , e . attr ( "counter" , 0 ) ) } , 300 ) } else parseInt ( e . attr ( "counter" ) ) < 1 && ( e . hide ( ) , e . attr ( "counter" , 0 ) ) ; Common . NotificationCenter . trigger ( "modal:hide" , this ) } this . $window . hide ( ) , this . $window . removeClass ( "notransform" ) , this . fireEvent ( "hide" , this ) } } , isLocked : function ( ) { return this . $window . hasClass ( "dethrone" ) || ! this . options . modal && this . $window . parent ( ) . find ( ".asc-window.modal:visible" ) . length } , getChild : function ( t ) { return t ? this . $window . find ( t ) : this . $window } , setWidth : function ( t ) { if ( t >= 0 ) { var e = parseInt ( this . $window . css ( "min-width" ) ) ; t < e && ( t = e ) , t -= parseInt ( this . $window . css ( "border-left-width" ) ) + parseInt ( this . $window . css ( "border-right-width" ) ) , this . $window . width ( t ) } } , getWidth : function ( ) { return parseInt ( this . $window . css ( "width" ) ) } , setHeight : function ( t ) { if ( t >= 0 ) { var e = parseInt ( this . $window . css ( "min-height" ) ) ; t < e && ( t = e ) , t -= parseInt ( this . $window . css ( "border-bottom-width" ) ) + parseInt ( this . $window . css ( "border-top-width" ) ) , this . $window . height ( t ) , this . initConfig . header && ( t -= parseInt ( this . $window . find ( "> .header" ) . css ( "height" ) ) ) , this . $window . find ( "> .body" ) . css ( "height" , t ) } } , getHeight : function ( ) { return parseInt ( this . $window . css ( "height" ) ) } , setSize : function ( t , e ) { this . setWidth ( t ) , this . setHeight ( e ) } , getSize : function ( ) { return [ this . getWidth ( ) , this . getHeight ( ) ] } , setTitle : function ( t ) { this . $window . find ( "> .header > .title" ) . text ( t ) } , getTitle : function ( ) { return this . $window . find ( "> .header > .title" ) . text ( ) } , getLeft : function ( ) { return parseInt ( this . $window . css ( "left" ) ) } , getTop : function ( ) { return parseInt ( this . $window . css ( "top" ) ) } , isVisible : function ( ) { return this . $window && this . $window . is ( ":visible" ) } , setResizable : function ( t , e , i ) { if ( t !== this . resizable ) { if ( t ) { var n = '<div class="resize-border left" style="top:' + ( this . initConfig . header ? "33" : "5" ) + 'px; bottom: 5px; height: auto; border-right-style: solid; cursor: e-resize;"></div><div class="resize-border left bottom" style="border-bottom-left-radius: 5px; cursor: sw-resize;"></div><div class="resize-border bottom" style="left: 4px; right: 4px; width: auto; z-index: 2; border-top-style: solid; cursor: s-resize;"></div><div class="resize-border right bottom" style="border-bottom-right-radius: 5px; cursor: se-resize;"></div><div class="resize-border right" style="top:' + ( this . initConfig . header ? "33" : "5" ) + ' px ; bottom : 5 px ; hei
e ( /opera/ ) ) , a = s && e ( /version\/10\.5/ ) , r = ! s && ( e ( /msie/ ) || e ( /trident/ ) || e ( /edge/ ) ) , l = r && ( e ( /msie 7/ ) && 8 != o && 9 != o && 10 != o || 7 == o ) , c = r && ( e ( /msie 8/ ) && 7 != o && 9 != o && 10 != o || 8 == o ) , h = r && ( e ( /msie 9/ ) && 7 != o && 8 != o && 10 != o || 9 == o ) , d = r && ( e ( /msie 10/ ) && 7 != o && 8 != o && 9 != o || 10 == o ) , p = r && ( e ( /trident\/7\.0/ ) && 7 != o && 8 != o && 9 != o && 10 != o || 11 == o ) , u = r && e ( /msie 6/ ) , m = ! r && e ( /\bchrome\b/ ) , g = ! r && e ( /webkit/ ) , f = ! r && ! m && e ( /safari/ ) , b = f && e ( /applewebkit\/4/ ) , C = f && e ( /version\/3/ ) , v = f && e ( /version\/4/ ) , y = f && e ( /version\/5\.0/ ) , _ = f && e ( /version\/5/ ) , x = ! g && ! r && e ( /gecko/ ) , w = x && e ( /rv:1\.9/ ) , S = x && e ( /rv:2\.0/ ) , T = x && e ( /rv:5\./ ) , A = x && e ( /rv:10\./ ) , k = w && e ( /rv:1\.9\.0/ ) , I = w && e ( /rv:1\.9\.1/ ) , E = w && e ( /rv:1\.9\.2/ ) , P = e ( /windows|win32/ ) , M = e ( /macintosh|mac os x/ ) , U = e ( /linux/ ) , D = n ( ! 0 , /\bchrome\/(\d+\.\d+)/ ) , B = n ( ! 0 , /\bfirefox\/(\d+\.\d+)/ ) , L = n ( r , /msie (\d+\.\d+)/ ) , F = n ( s , /version\/(\d+\.\d+)/ ) , V = n ( f , /version\/(\d+\.\d+)/ ) , R = n ( g , /webkit\/(\d+\.\d+)/ ) , O = /^https/i . test ( window . location . protocol ) , N = /^(mailto:)?([a-z0-9'\._-]+@[a-z0-9\.-]+\.[a-z0-9]{2,4})([a-яё0-9\._%+-=\? :&]*)/i , z = /^(((https?)|(ftps?)):\/\/)?([\-\wа -яё]*:?[\-\wа -яё]*@)?(((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]))(:\d+)?(\/[%\-\wа -яё]*(\.[\wа -яё]{2,})?(([\wа -яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа -яё]{2,})?)*)*\/?/i , H = /^(((https?)|(ftps?)):\/\/)?([\-\wа -яё]*:?[\-\wа -яё]*@)?(([\-\wа -яё]+\.)+[\wа -яё\-]{2,}(:\d+)?(\/[%\-\wа -яё]*(\.[\wа -яё]{2,})?(([\wа -яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа -яё]{2,})?)*)*\/?)/i , G = /^(((https?)|(ftps?)):\/\/)([\-\wа -яё]*:?[\-\wа -яё]*@)?(([\-\wа -яё]+)(:\d+)?(\/[%\-\wа -яё]*(\.[\wа -яё]{2,})?(([\wа -яё\-\.\?\\\/+@&#;:`'~=%!,\(\)]*)(\.[\wа -яё]{2,})?)*)*\/?)/i , j = /(mailto:)?([a-z0-9'\._-]+@[a-z0-9\.-]+\.[a-z0-9]{2,4})([a-яё0-9\._%+-=\?:&]*)/gi , W = /(((https?)|(ftps?)):\/\/([\-\wа -яё]*:?[\-\wа -яё]*@)?)(((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]))(:\d+)?(\/[%\-\wа -яё]*(\.[\wа -яё]{2,})?(([\wа -яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа -яё]{2,})?)*)*\/?/gi , q = /((((https?)|(ftps?)):\/\/([\-\wа -яё]*:?[\-\wа -яё]*@)?)|(([\-\wа -яё]*:?[\-\wа -яё]*@)?www\.))((([\-\wа -яё]+\.)+[\wа -яё\-]{2,}|([\-\wа -яё]+))(:\d+)?(\/[%\-\wа -яё]*(\.[\wа -яё]{2,})?(([\wа -яё\-\.\?\\\/+@&#;:`~=%!,\(\)]*)(\.[\wа -яё]{2,})?)*)*\/?)/gi , K = { Paragraph : 0 , Table : 1 , Image : 2 , Header : 3 , TextArt : 4 , Shape : 5 , Slide : 6 , Chart : 7 , MailMerge : 8 } , Y = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i . test ( navigator . userAgent || navigator . vendor || window . opera ) , X = this , Z = function ( ) { if ( X . zoom = 1 , m && ! s && ! Y && document && document . firstElementChild && document . body ) if ( window . devicePixelRatio > . 1 ) { if ( window . devicePixelRatio < 1.99 ) { var t = 1 ; X . zoom = window . devicePixelRatio / t } else { var t = 2 ; X . zoom = window . devicePixelRatio / t } document . firstElementChild . style . zoom = 1 / X . zoom } else document . firstElementChild . style . zoom = "normal" ; X . innerWidth = window . innerWidth * X . zoom , X . innerHeight = window . innerHeight * X . zoom } ; return X . zoom = 1 , X . innerWidth = window . innerWidth , X . innerHeight = window . innerHeight , Z ( ) , $ ( window ) . on ( "resize" , Z ) , { userAgent : t , isStrict : i , isIEQuirks : r && ! i && ( u || l || c || h ) , isOpera : s , isOpera10 _5 : a , isWebKit : g , isChrome : m , isSafari : f , isSafari3 : C , isSafari4 : v , isSafari5 : _ , isSafari5 _0 : y , isSafari2 : b , isIE : r , isIE6 : u , isIE7 : l , isIE7m : u || l , isIE7p : r && ! u , isIE8 : c , isIE8m : u || l || c , isIE8p : r && ! ( u || l ) , isIE9 : h , isIE9m : u || l || c || h , isIE9p : r && ! ( u || l || c ) , isIE10 : d , isIE10m : u || l || c || h || d , isIE10p : r && ! ( u || l || c || h ) , isIE11 : p , isIE11m : u || l || c || h || d || p , isIE11p : r && ! ( u || l || c || h || d ) , isGecko : x , isGecko3 : w , isGecko4 : S , isGecko5 : T , isGecko10 : A , isFF3 _0 : k , isFF3 _5 : I , isFF3 _6 : E , isFF4 : 4 <= B && B < 5 , isFF5 : 5 <= B && B < 6 , isFF10 : 10 <= B && B < 11 , isLinux : U , isWindows : P , isMac : M , chromeVersion : D , firefoxVersion : B , ieVersion : L , operaVersion : F , safariVersion : V , webKitVersion : R , isSecure : O , emailRe : N , ipRe : z , hostnameRe : H , localRe : G , emailStrongRe : j , ipStrongRe : W , hostnameStron
$ ( this . el ) . append ( this . cmpEl ) ) ; var i = this . cmpEl . parent ( ) , n = "menu" === i . attr ( "role" ) ? i : i . find ( "[role=menu]" ) ; return n && ( e . rendered || _ . each ( e . items || [ ] , function ( t ) { n . append ( t . render ( ) . el ) , t . on ( "click" , _ . bind ( e . onItemClick , e ) ) , t . on ( "toggle" , _ . bind ( e . onItemToggle , e ) ) } ) , n . css ( { "max-height" : e . options . maxHeight || "none" , position : "fixed" , right : "auto" , left : - 1e3 , top : - 1e3 } ) , this . parentEl = n . parent ( ) , this . parentEl . on ( "show.bs.dropdown" , _ . bind ( e . onBeforeShowMenu , e ) ) , this . parentEl . on ( "shown.bs.dropdown" , _ . bind ( e . onAfterShowMenu , e ) ) , this . parentEl . on ( "hide.bs.dropdown" , _ . bind ( e . onBeforeHideMenu , e ) ) , this . parentEl . on ( "hidden.bs.dropdown" , _ . bind ( e . onAfterHideMenu , e ) ) , this . parentEl . on ( "keydown.after.bs.dropdown" , _ . bind ( e . onAfterKeydownMenu , e ) ) , n . on ( "scroll" , _ . bind ( e . onScroll , e ) ) , n . hover ( function ( t ) { e . isOver = ! 0 } , function ( t ) { e . isOver = ! 1 } ) ) , this . rendered = ! 0 , this . trigger ( "render:after" , this ) , this } , isVisible : function ( ) { return this . rendered && this . cmpEl . is ( ":visible" ) } , show : function ( ) { this . rendered && this . parentEl && ! this . parentEl . hasClass ( "open" ) && this . cmpEl . dropdown ( "toggle" ) } , hide : function ( ) { this . rendered && this . parentEl && ( this . parentEl . hasClass ( "open" ) ? this . cmpEl . dropdown ( "toggle" ) : this . parentEl . hasClass ( "over" ) && this . parentEl . removeClass ( "over" ) ) } , insertItem : function ( t , e ) { var i = this , n = this . cmpEl ; if ( e instanceof Common . UI . MenuItem || ( e = new Common . UI . MenuItem ( _ . extend ( { tagName : "li" , template : i . itemTemplate } , e ) ) ) , t < 0 || t >= i . items . length ? i . items . push ( e ) : i . items . splice ( t , 0 , e ) , this . rendered ) { var o = "menu" === n . attr ( "role" ) ? n : n . find ( "[role=menu]" ) ; o && ( t < 0 ? o . append ( e . render ( ) . el ) : 0 === t ? o . prepend ( e . render ( ) . el ) : $ ( "li:nth-child(" + ( t + 1 ) + ")" , o ) . before ( e . render ( ) . el ) , e . on ( "click" , _ . bind ( i . onItemClick , i ) ) , e . on ( "toggle" , _ . bind ( i . onItemToggle , i ) ) ) } } , doLayout : function ( ) { if ( this . options . maxHeight > 0 ) { if ( ! this . rendered ) return void ( this . mustLayout = ! 0 ) ; var t = this . cmpEl , e = "menu" === t . attr ( "role" ) ? t : t . find ( "[role=menu]" ) ; if ( ! e . is ( ":visible" ) ) { var i = [ e . css ( "left" ) , e . css ( "top" ) ] ; e . css ( { left : "-1000px" , top : "-1000px" , display : "block" } ) } var n = e . find ( "li" ) ; if ( n . height ( ) * n . length > this . options . maxHeight ) { var o = '<div class="menu-scroll top"></div>' ; e . prepend ( o ) , o = '<div class="menu-scroll bottom"></div>' , e . append ( o ) , e . css ( { "box-shadow" : "none" , "overflow-y" : "hidden" , "padding-top" : "18px" } ) , e . find ( "> li:last-of-type" ) . css ( "margin-bottom" , 18 ) ; var s = /Firefox/i . test ( navigator . userAgent ) ? "DOMMouseScroll" : "mousewheel" ; ! function ( t , e , i ) { t . addEventListener ? t . addEventListener ( e , i , ! 1 ) : t . attachEvent ( "on" + e , i ) } ( e [ 0 ] , s , _ . bind ( this . onMouseWheel , this ) ) , e . find ( ".menu-scroll" ) . on ( "click" , _ . bind ( this . onScrollClick , this ) ) } i && e . css ( { display : "" , left : i [ 0 ] , top : i [ 1 ] } ) } } , addItem : function ( t ) { this . insertItem ( - 1 , t ) } , removeItem : function ( t ) { var e = this , i = e . items . indexOf ( t ) ; i > - 1 && ( e . items . splice ( i , 1 ) , t . off ( "click" ) . off ( "toggle" ) , t . remove ( ) ) } , removeItems : function ( t , e ) { if ( ! ( t > this . items . length - 1 ) ) { t + e > this . items . length && ( e = this . items . length - t ) ; for ( var i = t ; i < t + e ; i ++ ) this . items [ i ] . off ( "click" ) . off ( "toggle" ) , this . items [ i ] . remove ( ) ; this . items . splice ( t , e ) } } , removeAll : function ( ) { var t = this ; _ . each ( t . items , function ( t ) { t . off ( "click" ) . off ( "toggle" ) , t . remove ( ) } ) , this . rendered && this . cmpEl . find ( ".menu-scroll" ) . off ( "click" ) . remove ( ) , t . items = [ ] } , onBeforeShowMenu : function ( t ) { Common . NotificationCenter . trigger ( "menu:show" ) , this . mustLayout && ( delete this . mustLayout , this . doLayout . call ( this ) ) , this . trigger ( "show:before" , this , t ) , this . alignPosition ( ) } , onAfterShowMenu : function ( t ) { if ( this . trigger ( "show:after" , this , t ) , this . $el . find ( "> ul > .menu-scroll" ) . length ) { var e = this . $el . find ( "li .checked" ) [ 0 ] ; if ( e ) { var i = e . offsetTop - this . options . maxHeight / 2 ; this . scrollMenu ( i < 0 ? 0 : i ) } } } , onBeforeHideMenu : function ( t ) { this . trigger ( "hide:before" , this , t ) , Common . UI . Scroller . isMouseCapture ( ) && t . preventDefault ( ) } , onAfterHideMenu : function ( t , e ) { this . trigger ( "hide:after" , this , t , e ) , Common . NotificationCenter . trigger ( "menu:hide" , this , e ) } , onAfterKeydownMenu : function ( t ) { if ( t . keyCode == Common . UI . Keys . RETURN ) { var e = $ ( t . target ) . closest ( "li" ) ; if ( e . length <= 0 && ( e = $ ( t . target ) . parent ( ) . find ( "li .dataview" ) ) , e . length > 0 && e . click ( ) , e . hasClass ( "dropdown-submenu" ) || Common . UI . Menu . Manager . hideAl
this . template = [ '<div class="box" style="height: 270px;">' , '<div class="input-row">' , '<label style="font-weight: bold;">' + this . textLinkType + "</label>" , "</div>" , '<div id="id-dlg-hyperlink-type" class="input-row" style="margin-bottom: 5px;"></div>' , '<div id="id-external-link">' , '<div class="input-row">' , '<label style="font-weight: bold;">' + this . strLinkTo + " *</label>" , "</div>" , '<div id="id-dlg-hyperlink-url" class="input-row" style="margin-bottom: 5px;"></div>' , "</div>" , '<div id="id-internal-link" class="hidden" style="margin-top: 15px;">' , '<div id="id-dlg-hyperlink-radio-next" style="display: block;margin-bottom: 5px;"></div>' , '<div id="id-dlg-hyperlink-radio-prev" style="display: block;margin-bottom: 5px;"></div>' , '<div id="id-dlg-hyperlink-radio-first" style="display: block;margin-bottom: 5px;"></div>' , '<div id="id-dlg-hyperlink-radio-last" style="display: block;margin-bottom: 5px;"></div>' , '<div id="id-dlg-hyperlink-radio-slide" style="display: inline-block;margin-bottom: 5px;margin-right: 10px;"></div>' , '<div id="id-dlg-hyperlink-slide" style="display: inline-block;margin-bottom: 10px;"></div>' , "</div>" , '<div class="input-row">' , '<label style="font-weight: bold;">' + this . strDisplay + "</label>" , "</div>" , '<div id="id-dlg-hyperlink-display" class="input-row" style="margin-bottom: 5px;"></div>' , '<div class="input-row">' , '<label style="font-weight: bold;">' + this . textTipText + "</label>" , "</div>" , '<div id="id-dlg-hyperlink-tip" class="input-row" style="margin-bottom: 5px;"></div>' , "</div>" , '<div class="footer right">' , '<button class="btn normal dlg-btn primary" result="ok" style="margin-right: 10px;">' + this . okButtonText + "</button>" , '<button class="btn normal dlg-btn" result="cancel">' + this . cancelButtonText + "</button>" , "</div>" ] . join ( "" ) , this . options . tpl = _ . template ( this . template ) ( this . options ) , this . slides = this . options . slides , this . api = this . options . api , Common . UI . Window . prototype . initialize . call ( this , this . options ) } , render : function ( ) { Common . UI . Window . prototype . render . call ( this ) ; var t = this , e = this . getChild ( ) ; t . _arrTypeSrc = [ { displayValue : t . textInternalLink , value : c _oHyperlinkType . InternalLink } , { displayValue : t . textExternalLink , value : c _oHyperlinkType . WebLink } ] , t . cmbLinkType = new Common . UI . ComboBox ( { el : $ ( "#id-dlg-hyperlink-type" ) , cls : "input-group-nr" , style : "width: 100%;" , menuStyle : "min-width: 318px;" , editable : ! 1 , data : this . _arrTypeSrc } ) , t . cmbLinkType . setValue ( t . _arrTypeSrc [ 1 ] . value ) , t . cmbLinkType . on ( "selected" , _ . bind ( function ( t , e ) { this . ShowHideElem ( e . value ) } , t ) ) , t . inputUrl = new Common . UI . InputField ( { el : $ ( "#id-dlg-hyperlink-url" ) , allowBlank : ! 1 , blankError : t . txtEmpty , validateOnBlur : ! 1 , style : "width: 100%;" , validation : function ( e ) { var i = t . api . asc _getUrlType ( $ . trim ( e ) ) ; return t . isEmail = 2 == i , i > 0 || t . txtNotUrl } } ) , t . inputDisplay = new Common . UI . InputField ( { el : $ ( "#id-dlg-hyperlink-display" ) , allowBlank : ! 0 , validateOnBlur : ! 1 , style : "width: 100%;" } ) . on ( "changed:after" , function ( ) { t . isTextChanged = ! 0 } ) , t . inputTip = new Common . UI . InputField ( { el : $ ( "#id-dlg-hyperlink-tip" ) , style : "width: 100%;" , maxLength : Asc . c _oAscMaxTooltipLength } ) , t . radioNext = new Common . UI . RadioBox ( { el : $ ( "#id-dlg-hyperlink-radio-next" ) , labelText : this . txtNext , name : "asc-radio-slide" , checked : ! 0 } ) , t . radioPrev = new Common . UI . RadioBox ( { el : $ ( "#id-dlg-hyperlink-radio-prev" ) , labelText : this . txtPrev , name : "asc-radio-slide" } ) , t . radioFirst = new Common . UI . RadioBox ( { el : $ ( "#id-dlg-hyperlink-radio-first" ) , labelText : this . txtFirst , name : "asc-radio-slide" } ) , t . radioLast = new Common . UI . RadioBox ( { el : $ ( "#id-dlg-hyperlink-radio-last" ) , labelText : this . txtLast , name : "asc-radio-slide" } ) , t . radioSlide = new Common . UI . RadioBox ( { el : $ ( "#id-dlg-hyperlink-radio-slide" ) , labelText : this . txtSlide , name : "asc-radio-slide" } ) , t . cmbSlides = new Common . UI . ComboBox ( { el : $ ( "#id-dlg-hyperlink-slide" ) , cls : "input-group-nr" , style : "width: 50px;" , menuStyle : "min-width: 50px; max-height: 200px;" , editable : ! 1 , data : this . slides } ) , t . cmbSlides . setValue ( 0 ) , t . cmbSlides . on ( "selected" , _ . bind ( function ( e , i ) { t . radioSlide . setValue ( ! 0 ) } , t ) ) , e . find ( ".dlg-btn" ) . on ( "click" , _ . bind ( this . onBtnClick , this ) ) , e . find ( "input" ) . on ( "keypress" , _ . bind ( this . onKeyPress , this ) ) , t . externalPanel = e . find ( "
this . enableKeyEvents && this . parentMenu && this . handleSelect && ( e . showLast || this . parentMenu . on ( "show:before" , function ( t ) { e . deselectAll ( ) } ) , this . parentMenu . on ( "show:after" , function ( t ) { e . showLast && e . showLastSelected ( ) , Common . NotificationCenter . trigger ( "dataview:focus" ) , _ . delay ( function ( ) { t . cmpEl . find ( ".dataview" ) . focus ( ) } , 10 ) } ) . on ( "hide:after" , function ( ) { Common . NotificationCenter . trigger ( "dataview:blur" ) } ) ) ) , _ . isUndefined ( this . scroller ) && this . allowScrollbar && ( this . scroller = new Common . UI . Scroller ( { el : $ ( this . el ) . find ( ".inner" ) . addBack ( ) . filter ( ".inner" ) , useKeyboard : this . enableKeyEvents && ! this . handleSelect , minScrollbarLength : 40 , wheelSpeed : 10 } ) ) ; var i = this . cmpEl . closest ( ".asc-window" ) ; return i . length > 0 && ( this . tipZIndex = parseInt ( i . css ( "z-index" ) ) + 10 ) , this . rendered = ! 0 , this . cmpEl . on ( "click" , function ( t ) { if ( /dataview/ . test ( t . target . className ) ) return ! 1 } ) , this . trigger ( "render:after" , this ) , this } , setStore : function ( t ) { t && ( this . stopListening ( this . store ) , this . store = t , this . listenStoreEvents && ( this . listenTo ( this . store , "add" , this . onAddItem ) , this . listenTo ( this . store , "reset" , this . onResetItems ) ) ) } , selectRecord : function ( t , e ) { this . handleSelect && ( e && this . suspendEvents ( ) , this . multiSelect ? t && t . set ( { selected : ! t . get ( "selected" ) } ) : ( _ . each ( this . store . where ( { selected : ! 0 } ) , function ( t ) { t . set ( { selected : ! 1 } ) } ) , t && t . set ( { selected : ! 0 } ) ) , e && this . resumeEvents ( ) ) } , selectByIndex : function ( t , e ) { this . store . length > 0 && t > - 1 && t < this . store . length && this . selectRecord ( this . store . at ( t ) , e ) } , deselectAll : function ( t ) { t && this . suspendEvents ( ) , _ . each ( this . store . where ( { selected : ! 0 } ) , function ( t ) { t . set ( { selected : ! 1 } ) } ) , t && this . resumeEvents ( ) } , getSelectedRec : function ( ) { if ( this . multiSelect ) { var t = [ ] ; return _ . each ( this . store . where ( { selected : ! 0 } ) , function ( e ) { t . push ( e ) } ) , t } return this . store . where ( { selected : ! 0 } ) } , onAddItem : function ( t , e , i ) { var n = new Common . UI . DataViewItem ( { template : this . itemTemplate , model : t } ) ; if ( n ) { var o = $ ( this . el ) . find ( ".inner" ) . addBack ( ) . filter ( ".inner" ) ; if ( this . groups && this . groups . length > 0 ) { var s = this . groups . findWhere ( { id : t . get ( "group" ) } ) ; s && ( o = o . find ( "#" + s . id + " .group-items-container" ) ) } if ( o ) { if ( i && 0 == i . at ? o . prepend ( n . render ( ) . el ) : o . append ( n . render ( ) . el ) , o . find ( ".empty-text" ) . remove ( ) , this . dataViewItems . push ( n ) , t . get ( "tip" ) ) { var a = $ ( n . el ) ; a . attr ( "data-toggle" , "tooltip" ) , a . tooltip ( { title : t . get ( "tip" ) , placement : "cursor" , zIndex : this . tipZIndex } ) } this . listenTo ( n , "change" , this . onChangeItem ) , this . listenTo ( n , "remove" , this . onRemoveItem ) , this . listenTo ( n , "click" , this . onClickItem ) , this . listenTo ( n , "dblclick" , this . onDblClickItem ) , this . listenTo ( n , "select" , this . onSelectItem ) , this . listenTo ( n , "contextmenu" , this . onContextMenuItem ) , this . isSuspendEvents || this . trigger ( "item:add" , this , n , t ) } } } , onResetItems : function ( ) { _ . each ( this . dataViewItems , function ( t ) { var e = t . $el . data ( "bs.tooltip" ) ; e && e . tip ( ) . remove ( ) } , this ) , $ ( this . el ) . html ( this . template ( { groups : this . groups ? this . groups . toJSON ( ) : null , style : this . style } ) ) , _ . isUndefined ( this . scroller ) || ( this . scroller . destroy ( ) , delete this . scroller ) , this . store . length < 1 && this . emptyText . length > 0 && $ ( this . el ) . find ( ".inner" ) . addBack ( ) . filter ( ".inner" ) . append ( '<table cellpadding="10" class="empty-text"><tr><td>' + this . emptyText + "</td></tr></table>" ) , _ . each ( this . dataViewItems , function ( t ) { this . stopListening ( t ) , t . stopListening ( t . model ) } , this ) , this . dataViewItems = [ ] , this . store . each ( this . onAddItem , this ) , this . allowScrollbar && ( this . scroller = new Common . UI . Scroller ( { el : $ ( this . el ) . find ( ".inner" ) . addBack ( ) . filter ( ".inner" ) , useKeyboard : this . enableKeyEvents && ! this . handleSelect , minScrollbarLength : 40 , wheelSpeed : 10 } ) ) , this . attachKeyEvents ( ) , this . lastSelectedRec = null , this . _layoutParams = void 0 } , onChangeItem : function ( t , e ) { this . isSuspendEvents || this . trigger ( "item:change" , this , t , e ) } , onRemoveItem : function ( t , e ) { if ( this . stopListening ( t ) , t . stopListening ( ) , this . store . length < 1 && this . emptyText . length > 0 ) { var i = $ ( this . el ) . find ( ".inner" ) . addBack ( ) . filter ( ".inner" ) ; i . find ( ".empty-text" ) . length <= 0 && i . append ( '<table cellpadding="10" class="empty-text"><tr><td>' + this . emptyText + "</td></tr></table>" ) } for ( var n = 0 ; n < this . dataViewItems . length ; n ++ ) if ( _ . isEqual ( t , this . dataViewItems [ n ] ) ) { this . dataViewItems . splice ( n , 1 )
return ' < div id = "id-adv-shape-width" class = "settings-panel active" > \ r \ n < div class = "inner-content" > \ r \ n < table cols = "3" > \ r \ n < tr > \ r \ n < td width = "108px" > \ r \ n < label class = "input-label" > < %= scope . textWidth % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - s p i n - w i d t h " > < / d i v > \ r \ n < / t d > \ r \ n < t d w i d t h = " 2 8 p x " s t y l e = " v e r t i c a l - a l i g n : b o t t o m ; " > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - b u t t o n - r a t i o " > < / d i v > \ r \ n < / t d > \ r \ n < t d w i d t h = " 1 0 8 p x " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t H e i g h t % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - s p i n - h e i g h t " > < / d i v > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < / t a b l e > \ r \ n < / d i v > \ r \ n < / d i v > \ r \ n < d i v i d = " i d - a d v - s h a p e - s h a p e " c l a s s = " s e t t i n g s - p a n e l " > \ r \ n < d i v c l a s s = " i n n e r - c o n t e n t " > \ r \ n < t a b l e c o l s = " 2 " s t y l e = " w i d t h : 1 0 0 % ; " > \ r \ n < t r > \ r \ n < t d c o l s p a n = 2 c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " h e a d e r " > < % = s c o p e . t e x t L i n e S t y l e % > < / l a b e l > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < t r > \ r \ n < t d c l a s s = " p a d d i n g - l a r g e " w i d t h = " 1 2 5 p x " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t C a p T y p e % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - c a p - t y p e " s t y l e = " w i d t h : 1 0 0 p x ; " > < / d i v > \ r \ n < / t d > \ r \ n < t d c l a s s = " p a d d i n g - l a r g e " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t J o i n T y p e % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - j o i n - t y p e " s t y l e = " w i d t h : 1 0 0 p x ; " > < / d i v > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < / t a b l e > \ r \ n < / d i v > \ r \ n < d i v c l a s s = " s e p a r a t o r h o r i z o n t a l p a d d i n g - l a r g e " > < / d i v > \ r \ n < d i v c l a s s = " i n n e r - c o n t e n t " > \ r \ n < t a b l e c o l s = " 2 " s t y l e = " w i d t h : 1 0 0 % ; " > \ r \ n < t r > \ r \ n < t d c o l s p a n = 2 c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " h e a d e r " > < % = s c o p e . t e x t A r r o w s % > < / l a b e l > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < t r > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " w i d t h = " 1 2 5 p x " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t B e g i n S t y l e % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - b e g i n - s t y l e " s t y l e = " w i d t h : 1 0 0 p x ; " > < / d i v > \ r \ n < / t d > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t E n d S t y l e % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - e n d - s t y l e " s t y l e = " w i d t h : 1 0 0 p x ; " > < / d i v > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < t r > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t B e g i n S i z e % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - b e g i n - s i z e " s t y l e = " w i d t h : 1 0 0 p x ; " > < / d i v > \ r \ n < / t d > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t E n d S i z e % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - a d v a n c e d - e n d - s i z e " s t y l e = " w i d t h : 1 0 0 p x ; " > < / d i v > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < / t a b l e > \ r \ n < / d i v > \ r \ n < / d i v > \ r \ n < d i v i d = " i d - a d v - s h a p e - m a r g i n s " c l a s s = " s e t t i n g s - p a n e l " > \ r \ n < d i v c l a s s = " i n n e r - c o n t e n t " > \ r \ n < t a b l e c o l s = " 2 " s t y l e = " w i d t h : 1 0 0 % ; " > \ r \ n < t r > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " w i d t h = " 1 2 5 p x " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t T o p % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - m a r g i n - t o p " > < / d i v > \ r \ n < / t d > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t L e f t % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - m a r g i n - l e f t " > < / d i v > \ r \ n < / t d > \ r \ n < / t r > \ r \ n < t r > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s s = " i n p u t - l a b e l " > < % = s c o p e . t e x t B o t t o m % > < / l a b e l > \ r \ n < d i v i d = " s h a p e - m a r g i n - b o t t o m " > < / d i v > \ r \ n < / t d > \ r \ n < t d c l a s s = " p a d d i n g - s m a l l " > \ r \ n < l a b e l c l a s
this . _changedProps . get _DefaultMargins ( ) . put _Bottom ( null !== this . TableMargins . Bottom ? Common . Utils . Metric . fnRecalcToMM ( this . TableMargins . Bottom ) : null ) , this . TableMargins . isChanged = ! 0 ) } , this ) ) , this . spinners . push ( this . spnTableMarginBottom ) , this . spnTableMarginLeft = new Common . UI . MetricSpinner ( { el : $ ( "#tableadv-number-margin-table-left" ) , step : . 1 , width : 85 , defaultUnit : "cm" , value : "0.19 cm" , maxValue : 9.34 , minValue : 0 } ) , this . spnTableMarginLeft . on ( "change" , _ . bind ( function ( t , e , i , n ) { this . _marginsChange ( t , e , i , n , "table" , "Left" ) , this . _changedProps && ( void 0 === this . _changedProps . get _DefaultMargins ( ) && this . _changedProps . put _DefaultMargins ( new Asc . asc _CPaddings ) , this . _changedProps . get _DefaultMargins ( ) . put _Left ( null !== this . TableMargins . Left ? Common . Utils . Metric . fnRecalcToMM ( this . TableMargins . Left ) : null ) , this . TableMargins . isChanged = ! 0 ) } , this ) ) , this . spinners . push ( this . spnTableMarginLeft ) , this . spnTableMarginRight = new Common . UI . MetricSpinner ( { el : $ ( "#tableadv-number-margin-table-right" ) , step : . 1 , width : 85 , defaultUnit : "cm" , value : "0.19 cm" , maxValue : 9.34 , minValue : 0 } ) , this . spnTableMarginRight . on ( "change" , _ . bind ( function ( t , e , i , n ) { this . _marginsChange ( t , e , i , n , "table" , "Right" ) , this . _changedProps && ( void 0 === this . _changedProps . get _DefaultMargins ( ) && this . _changedProps . put _DefaultMargins ( new Asc . asc _CPaddings ) , this . _changedProps . get _DefaultMargins ( ) . put _Right ( null !== this . TableMargins . Right ? Common . Utils . Metric . fnRecalcToMM ( this . TableMargins . Right ) : null ) , this . TableMargins . isChanged = ! 0 ) } , this ) ) , this . spinners . push ( this . spnTableMarginRight ) ; var e = function ( ) { "indeterminate" == t . CellMargins . Flag ? t . _changedProps . get _CellMargins ( ) . put _Flag ( 1 ) : "checked" == t . CellMargins . Flag ? t . _changedProps . get _CellMargins ( ) . put _Flag ( 0 ) : t . _changedProps . get _CellMargins ( ) . put _Flag ( 2 ) } ; this . chCellMargins = new Common . UI . CheckBox ( { el : $ ( "#tableadv-checkbox-margins" ) , value : ! 0 , labelText : this . textCheckMargins } ) , this . chCellMargins . on ( "change" , _ . bind ( function ( t , i , n , o ) { "checked" == n && this . _originalProps && 1 == this . _originalProps . get _CellMargins ( ) . get _Flag ( ) && t . setValue ( "indeterminate" , ! 0 ) , this . fillMargins . call ( this , t . getValue ( ) ) , this . CellMargins . Flag = t . getValue ( ) , this . _changedProps && ( void 0 === this . _changedProps . get _CellMargins ( ) && this . _changedProps . put _CellMargins ( new Asc . CMargins ) , this . _changedProps . get _CellMargins ( ) . put _Left ( null !== this . CellMargins . Left ? Common . Utils . Metric . fnRecalcToMM ( this . CellMargins . Left ) : null ) , this . _changedProps . get _CellMargins ( ) . put _Top ( null !== this . CellMargins . Top ? Common . Utils . Metric . fnRecalcToMM ( this . CellMargins . Top ) : null ) , this . _changedProps . get _CellMargins ( ) . put _Bottom ( null !== this . CellMargins . Bottom ? Common . Utils . Metric . fnRecalcToMM ( this . CellMargins . Bottom ) : null ) , this . _changedProps . get _CellMargins ( ) . put _Right ( null !== this . CellMargins . Right ? Common . Utils . Metric . fnRecalcToMM ( this . CellMargins . Right ) : null ) , e ( ) ) } , this ) ) , this . spnMarginTop = new Common . UI . MetricSpinner ( { el : $ ( "#tableadv-number-margin-top" ) , step : . 1 , width : 85 , defaultUnit : "cm" , value : "0 cm" , maxValue : 55.87 , minValue : 0 } ) , this . spnMarginTop . on ( "change" , _ . bind ( function ( t , i , n , o ) { this . _marginsChange ( t , i , n , o , "cell" , "Top" ) , this . _changedProps && ( void 0 === this . _changedProps . get _CellMargins ( ) && this . _changedProps . put _CellMargins ( new Asc . CMargins ) , this . _changedProps . get _CellMargins ( ) . put _Top ( null !== this . CellMargins . Top ? Common . Utils . Metric . fnRecalcToMM ( this . CellMargins . Top ) : null ) , e ( ) ) } , this ) ) , this . spinners . push ( this . spnMarginTop ) , this . spnMarginBottom = new Common . UI . MetricSpinner ( { el : $ ( "#tableadv-number-margin-bottom" ) , step : . 1 , width : 85 , defaultUnit : "cm" , value : "0 cm" , maxValue : 55.87 , minValue : 0 } ) , this . spnMarginBottom . on ( "change" , _ . bind ( function ( t , i , n , o ) { this . _marginsChange ( t , i , n , o , "cell" , "Bottom" ) , this . _changedProps && ( void 0 === this . _changedProps . get _CellMargins ( ) && this . _changedProps . put _CellMargins ( new Asc . CMargins ) , this . _changedProps . get _CellMargins ( ) . put _Bottom ( null !== this . CellMargins . Bottom ? Common . Utils . Metric . fnRecalcToMM ( this . CellMargins . Bottom ) : null ) , e ( ) ) } , this ) ) , this . spinners . push ( this . spnMarginBottom ) , this . spnMarginLeft = new Common . UI . MetricSpinner ( { el : $ ( "#tableadv-number-margin-left" ) , step : . 1 , width : 85 , defaultUnit : "cm" , value : "0.19 cm" , maxValue : 9.34 , minV
checked : n . get _Align ( ) == Asc . c _oAscMathInterfaceEqArrayAlign . Bottom , equationProps : { type : e , callback : "put_Align" , value : Asc . c _oAscMathInterfaceEqArrayAlign . Bottom } } ] } ) } ) , o . push ( t ) ; break ; case Asc . c _oAscMathInterfaceType . LargeOperator : t = new Common . UI . MenuItem ( { caption : i . txtLimitChange , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_LimitLocation" , value : n . get _LimitLocation ( ) == Asc . c _oAscMathInterfaceNaryLimitLocation . UndOvr ? Asc . c _oAscMathInterfaceNaryLimitLocation . SubSup : Asc . c _oAscMathInterfaceNaryLimitLocation . UndOvr } } ) , o . push ( t ) , void 0 !== n . get _HideUpper ( ) && ( t = new Common . UI . MenuItem ( { caption : n . get _HideUpper ( ) ? i . txtShowTopLimit : i . txtHideTopLimit , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_HideUpper" , value : ! n . get _HideUpper ( ) } } ) , o . push ( t ) ) , void 0 !== n . get _HideLower ( ) && ( t = new Common . UI . MenuItem ( { caption : n . get _HideLower ( ) ? i . txtShowBottomLimit : i . txtHideBottomLimit , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_HideLower" , value : ! n . get _HideLower ( ) } } ) , o . push ( t ) ) ; break ; case Asc . c _oAscMathInterfaceType . Delimiter : t = new Common . UI . MenuItem ( { caption : i . txtInsertArgBefore , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "insert_DelimiterArgument" , value : ! 0 } } ) , o . push ( t ) , t = new Common . UI . MenuItem ( { caption : i . txtInsertArgAfter , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "insert_DelimiterArgument" , value : ! 1 } } ) , o . push ( t ) , n . can _DeleteArgument ( ) && ( t = new Common . UI . MenuItem ( { caption : i . txtDeleteArg , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "delete_DelimiterArgument" } } ) , o . push ( t ) ) , t = new Common . UI . MenuItem ( { caption : n . has _Separators ( ) ? i . txtDeleteCharsAndSeparators : i . txtDeleteChars , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "remove_DelimiterCharacters" } } ) , o . push ( t ) , t = new Common . UI . MenuItem ( { caption : n . get _HideOpeningBracket ( ) ? i . txtShowOpenBracket : i . txtHideOpenBracket , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_HideOpeningBracket" , value : ! n . get _HideOpeningBracket ( ) } } ) , o . push ( t ) , t = new Common . UI . MenuItem ( { caption : n . get _HideClosingBracket ( ) ? i . txtShowCloseBracket : i . txtHideCloseBracket , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_HideClosingBracket" , value : ! n . get _HideClosingBracket ( ) } } ) , o . push ( t ) , t = new Common . UI . MenuItem ( { caption : i . txtStretchBrackets , equation : ! 0 , disabled : i . _currentParaObjDisabled , checkable : ! 0 , checked : n . get _StretchBrackets ( ) , equationProps : { type : e , callback : "put_StretchBrackets" , value : ! n . get _StretchBrackets ( ) } } ) , o . push ( t ) , t = new Common . UI . MenuItem ( { caption : i . txtMatchBrackets , equation : ! 0 , disabled : ! n . get _StretchBrackets ( ) || i . _currentParaObjDisabled , checkable : ! 0 , checked : n . get _StretchBrackets ( ) && n . get _MatchBrackets ( ) , equationProps : { type : e , callback : "put_MatchBrackets" , value : ! n . get _MatchBrackets ( ) } } ) , o . push ( t ) ; break ; case Asc . c _oAscMathInterfaceType . GroupChar : n . can _ChangePos ( ) && ( t = new Common . UI . MenuItem ( { caption : n . get _Pos ( ) == Asc . c _oAscMathInterfaceGroupCharPos . Top ? i . txtGroupCharUnder : i . txtGroupCharOver , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_Pos" , value : n . get _Pos ( ) == Asc . c _oAscMathInterfaceGroupCharPos . Top ? Asc . c _oAscMathInterfaceGroupCharPos . Bottom : Asc . c _oAscMathInterfaceGroupCharPos . Top } } ) , o . push ( t ) , t = new Common . UI . MenuItem ( { caption : i . txtDeleteGroupChar , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_Pos" , value : Asc . c _oAscMathInterfaceGroupCharPos . None } } ) , o . push ( t ) ) ; break ; case Asc . c _oAscMathInterfaceType . Radical : void 0 !== n . get _HideDegree ( ) && ( t = new Common . UI . MenuItem ( { caption : n . get _HideDegree ( ) ? i . txtShowDegree : i . txtHideDegree , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "put_HideDegree" , value : ! n . get _HideDegree ( ) } } ) , o . push ( t ) ) , t = new Common . UI . MenuItem ( { caption : i . txtDeleteRadical , equation : ! 0 , disabled : i . _currentParaObjDisabled , equationProps : { type : e , callback : "remove_Radical" } } ) , o . push ( t ) } return n . can _IncreaseArgumentSize ( ) && ( t = new Common . UI . MenuItem
i . menuSpellPara . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , v . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , f . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , b . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , i . langParaMenu . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , i . langParaMenu . setDisabled ( s ) , C . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) && null !== t . spellProps . value . get _Variants ( ) && void 0 !== t . spellProps . value . get _Variants ( ) ? i . addWordVariants ( ! 0 ) : ( i . menuSpellPara . setCaption ( i . loadSpellText , ! 0 ) , i . clearWordVariants ( ! 0 ) , i . menuSpellMorePara . setVisible ( ! 1 ) ) , i . langParaMenu . isVisible ( ) && i . _currLang . id !== i . _currLang . paraid && ( i . changeLanguageMenu ( i . langParaMenu . menu ) , i . _currLang . paraid = i . _currLang . id ) ; var h = 0 ; a ? h = i . addEquationMenu ( ! 0 , 11 ) : i . clearEquationMenu ( ! 0 , 11 ) , nt . setVisible ( a && h > 0 ) } , items : [ i . menuSpellPara , i . menuSpellMorePara , v , f , b , i . langParaMenu , C , X , K , Y , nt , { caption : "--" } , O , z , w , S , $ , T , I ] } ) . on ( "hide:after" , function ( t , e , n ) { if ( i . suppressEditComplete ) return void ( i . suppressEditComplete = ! 1 ) ; n || i . fireEvent ( "editcomplete" , i ) , i . currentMenu = null } ) , i . tableMenu = new Common . UI . Menu ( { initMenu : function ( t ) { if ( ! e . isUndefined ( t . tableProps ) ) { for ( var n = t . mathProps && t . mathProps . value , o = 6 ; o < 16 ; o ++ ) i . tableMenu . items [ o ] . setVisible ( ! n ) ; var s = void 0 !== t . slideProps && t . slideProps . locked ; i . menuTableCellTop . setChecked ( t . tableProps . value . get _CellsVAlign ( ) == Asc . c _oAscVertAlignJc . Top ) , i . menuTableCellCenter . setChecked ( t . tableProps . value . get _CellsVAlign ( ) == Asc . c _oAscVertAlignJc . Center ) , i . menuTableCellBottom . setChecked ( t . tableProps . value . get _CellsVAlign ( ) == Asc . c _oAscVertAlignJc . Bottom ) , i . api && ( c . setDisabled ( t . tableProps . locked || s || ! i . api . CheckBeforeMergeCells ( ) ) , h . setDisabled ( t . tableProps . locked || s || ! i . api . CheckBeforeSplitCells ( ) ) ) , i . tableMenu . items [ 7 ] . setDisabled ( t . tableProps . locked || s ) , i . tableMenu . items [ 8 ] . setDisabled ( t . tableProps . locked || s ) , d . setDisabled ( t . tableProps . locked || s ) , y . setDisabled ( t . tableProps . locked || s ) , it . setDisabled ( t . tableProps . locked || s ) , et . setDisabled ( t . tableProps . locked || s ) ; var a = null ; i . api && ( a = i . api . can _AddHyperlink ( ) ) , E . setVisible ( ! e . isUndefined ( t . paraProps ) && e . isUndefined ( t . hyperProps ) && ! 1 !== a ) , U . setVisible ( ! e . isUndefined ( t . paraProps ) && ! e . isUndefined ( t . hyperProps ) ) , P . hyperProps = t . hyperProps , ! 1 !== a && ( E . hyperProps = { } , E . hyperProps . value = new Asc . CHyperlinkProperty , E . hyperProps . value . put _Text ( a ) ) , e . isUndefined ( t . paraProps ) || ( E . setDisabled ( t . paraProps . locked || s ) , U . setDisabled ( t . paraProps . locked || s ) , i . _currentParaObjDisabled = t . paraProps . locked || s ) , j . setVisible ( ! 1 !== i . api . can _AddQuotedComment ( ) && i . mode . canCoAuthoring && i . mode . canComments ) , j . setDisabled ( ! e . isUndefined ( t . paraProps ) && t . paraProps . locked || s ) , D . setVisible ( E . isVisible ( ) || U . isVisible ( ) || j . isVisible ( ) ) , i . menuSpellCheckTable . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , g . setVisible ( void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) ) , i . langTableMenu . setDisabled ( s ) , void 0 !== t . spellProps && ! 1 === t . spellProps . value . get _Checked ( ) && null !== t . spellProps . value . get _Variants ( ) && void 0 !== t . spellProps . value . get _Variants ( ) ? i . addWordVariants ( ! 1 ) : ( i . menuSpellTable . setCaption ( i . loadSpellText , ! 0 ) , i . clearWordVariants ( ! 1 ) , i . menuSpellMoreTable . setVisible ( ! 1 ) ) , i . menuSpellCheckTable . isVisible ( ) && i . _currLang . id !== i . _currLang . tableid && ( i . changeLanguageMenu ( i . langTableMenu . menu ) , i . _currLang . tableid = i . _currLang . id ) ; var r = 0 ; n ? ( r = i . addEquationMenu ( ! 1 , 6 ) , D . setVisible ( D . isVisible ( ) && r > 0 ) ) : i . clearEquationMenu ( ! 1 , 6 ) } } , items : [ i . menuSpellCheckTable , g , it , tt , et , { caption : "--" } , new Common . UI . MenuItem ( { caption : i . selectText , menu : new Common . UI . Menu ( { menuAlign : "tl-tr" , items : [ new Common . UI . MenuItem ( { caption : i . rowText } ) . on ( "click" , function ( ) { i . api && i . api . selectRow ( ) } ) , new Common . UI . MenuItem ( { caption : i . columnText } ) . on ( "click" , function ( ) { i . api && i . api . selectColumn ( ) } ) , new Common . UI . MenuItem ( { caption : i . cellText } ) . on ( "click" , function ( ) { i . api && i . api . selectCell ( ) } ) , new Common . UI . MenuIte
return '<div class="toolbar" style="<%= isCompactView ? \'height: 41px;\' : \'height: 67px;\' %>">\n\x3c!----------------------\x3e\n\x3c!--Short view toolbar--\x3e\n\x3c!----------------------\x3e\n<div id="id-toolbar-short" style="<%= isCompactView ? \'display: table;\' : \'display: none;\' % > width : 100 % ; " >\n <div class=" toolbar - group ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - addslide "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - preview "></span>\n </div>\n </div>\n <div class=" separator short "></div>\n <div class=" toolbar - group no - mask ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - print "></span>\n <span class=" btn - placeholder " id=" id - toolbar - short - placeholder - btn - save "></span>\n </div>\n </div>\n <div class=" separator short "></div>\n <div class=" toolbar - group ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - undo "></span>\n <span class=" btn - placeholder " id=" id - toolbar - short - placeholder - btn - redo "></span>\n </div>\n </div>\n <div class=" separator short "></div>\n <div class=" toolbar - group ">\n <div class=" toolbar - row " style=" width : 140 px ; margin - top : - 1 px ; ">\n <span class=" btn - placeholder " style=" float : left ; width : 90 px ; " id=" id - toolbar - short - placeholder - field - fontname "></span>\n <span class=" btn - placeholder " style=" float : left ; width : 45 px ; margin - left : 2 px ; " id=" id - toolbar - short - placeholder - field - fontsize "></span>\n </div>\n </div>\n <div class=" toolbar - group ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - bold "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - italic "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - underline "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - fontcolor "></span>\n </div>\n </div>\n <div class=" separator short "></div>\n <div class=" toolbar - group ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - halign "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - valign "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - markers "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - numbering "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - linespace "></span>\n </div>\n </div>\n <div class=" separator short " style=" margin - left : 5 px ; "></div>\n <div class=" toolbar - group ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - arrange - shape "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - align - shape "></span>\n </div>\n </div>\n <div class=" separator short " style=" margin - left : 5 px ; "></div>\n <div class=" toolbar - group ">\n <div class=" toolbar - row ">\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - insertimage "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - inserttable "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - insertchart "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - inserthyperlink "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - insertshape "></span>\n <span class=" btn - placeholder split " id=" id - toolbar - short - placeholder - btn - inserttext " > < / s p a n > \ n < / d i v > \ n < / d i
e . colorSaved . css ( "background-color" , "#" + t ) ) , e . colorNew . css ( "background-color" , "#" + i ) } ( ) , e . stopevents = ! 0 ; var n = e . hexRe . exec ( i ) ; e . spinR . setValue ( parseInt ( n [ 1 ] , 16 ) ) , e . spinG . setValue ( parseInt ( n [ 2 ] , 16 ) ) , e . spinB . setValue ( parseInt ( n [ 3 ] , 16 ) ) , e . textColor . setValue ( ( n [ 1 ] + n [ 2 ] + n [ 3 ] ) . toUpperCase ( ) ) , e . stopevents = ! 1 } , show : function ( ) { Common . UI . Window . prototype . show . apply ( this , arguments ) ; var t = this ; _ . delay ( function ( ) { t . getChild ( "#extended-text-color" ) . focus ( ) } , 50 ) } , cancelButtonText : "Cancel" , addButtonText : "Add" , textNew : "New" , textCurrent : "Current" , textRGBErr : "The entered value is incorrect.<br>Please enter a numeric value between 0 and 255." , textHexErr : "The entered value is incorrect.<br>Please enter a value between 000000 and FFFFFF." } , Common . UI . ExtendedColorDialog || { } ) ) } ) , void 0 === Common ) var Common = { } ; if ( define ( "common/main/lib/component/ThemeColorPalette" , [ "common/main/lib/component/BaseView" , "common/main/lib/view/ExtendedColorDialog" ] , function ( ) { "use strict" ; Common . UI . ThemeColorPalette = Common . UI . BaseView . extend ( _ . extend ( { options : { dynamiccolors : 10 , standardcolors : 10 , themecolors : 10 , effects : 5 , allowReselect : ! 0 , transparent : ! 1 , value : "000000" } , template : _ . template ( '<div style="padding: 12px;"><% var me = this; %><% $(colors).each(function(num, item) { %><% if (me.isBlankSeparator(item)) { %> <div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div><% } else if (me.isSeparator(item)) { %> </div><div class="palette-color-separator" style="width:100%;height:1px;float:left;border-bottom: 1px solid #E0E0E0"></div><div style="padding: 12px;"><% } else if (me.isColor(item)) { %> <a class="palette-color color-<%=item%>" style="background:#<%=item%>" hidefocus="on"><em><span style="background:#<%=item%>;" unselectable="on"> </span></em></a><% } else if (me.isTransparent(item)) { %><a class="color-<%=item%>" hidefocus="on"><em><span unselectable="on"> </span></em></a><% } else if (me.isEffect(item)) { %><a effectid="<%=item.effectId%>" effectvalue="<%=item.effectValue%>" class="palette-color-effect color-<%=item.color%>" style="background:#<%=item.color%>" hidefocus="on"><em><span style="background:#<%=item.color%>;" unselectable="on"> </span></em></a><% } else if (me.isCaption(item)) { %><div class="palette-color-caption" style="width:100%;float:left;font-size: 11px;"><%=item%></div><% } %><% }); %></div><% if (me.options.dynamiccolors!==undefined) { %><div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div><div style="padding: 12px;"><% for (var i=0; i<me.options.dynamiccolors; i++) { %><a class="color-dynamic-<%=i%> dynamic-empty-color" style="background:#ffffff" color="" hidefocus="on"><em><span unselectable="on"> </span></em></a><% } %><% } %></div>' ) , colorRe : /(?:^|\s)color-(.{6})(?:\s|$)/ , selectedCls : "selected" , initialize : function ( t ) { Common . UI . BaseView . prototype . initialize . call ( this , t ) ; var e = this , i = $ ( this . el ) ; this . colors = e . options . colors || this . generateColorData ( e . options . themecolors , e . options . effects , e . options . standardcolors , e . options . transparent ) , i . addClass ( "theme-colorpalette" ) , this . render ( ) , this . options . updateColorsArr && this . updateColors ( this . options . updateColorsArr [ 0 ] , this . options . updateColorsArr [ 1 ] ) , this . options . value && this . select ( this . options . value , ! 0 ) , this . updateCustomColors ( ) , i . closest ( ".btn-group" ) . on ( "show.bs.dropdown" , _ . bind ( this . updateCustomColors , this ) ) , i . closest ( ".dropdown-submenu" ) . on ( "show.bs.dropdown" , _ . bind ( this . updateCustomColors , this ) ) , i . on ( "click" , _ . bind ( this . handleClick , this ) ) } , render : function ( ) { return $ ( this . el ) . html ( this . template ( { colors : this . colors } ) ) , this } , isBlankSeparator : function ( t ) { return "string" == typeof t && "-" == t } , isSeparator : function ( t ) { return "string" == typeof t && "--" == t } , isColor : function ( t ) { return "string" == typeof t && /[0-9A-F]{6}/ . test ( t ) } , isTransparent : function ( t ) { return "string" == typeof t && "transparent" == t } , isCaption : function ( t ) { return "string" == typeof t && "-" != t && "--" != t && ! /[0-9A-F]{6}|transparent/ . test ( t ) } , isEffect : function ( t ) { return "object" == typeof t && void 0 !== t . effectId } , getColor : function ( ) { return this . value } , updateCustomColors : function ( ) { var t =
this . trigger ( "closeclick" ) } , this ) ) , this . cmpEl . find ( ".show-link label" ) . on ( "click" , _ . bind ( function ( ) { this . trigger ( "dontshowclick" ) } , this ) ) ) , this . applyPlacement ( ) , this } , show : function ( ) { this . cmpEl ? ( this . applyPlacement ( ) , this . cmpEl . show ( ) ) : this . render ( ) } , hide : function ( ) { this . cmpEl && this . cmpEl . hide ( ) } , applyPlacement : function ( ) { var t = this . target . offset ( ) ; "top" == this . placement ? this . cmpEl . css ( { bottom : Common . Utils . innerHeight ( ) - t . top + "px" , right : Common . Utils . innerWidth ( ) - t . left - this . target . width ( ) / 2 + "px" } ) : this . cmpEl . css ( { top : t . top + this . target . height ( ) / 2 + "px" , left : t . left + this . target . width ( ) + "px" } ) } , textDontShow : "Don't show this message again" , textSynchronize : "The document has been changed by another user.<br/>Please click to save your changes and reload the updates." } } ( ) , Common . UI . SynchronizeTip || { } ) ) } ) , define ( "presentationeditor/main/app/view/Toolbar" , [ "backbone" , "text!presentationeditor/main/app/template/Toolbar.template" , "common/main/lib/collection/Fonts" , "common/main/lib/component/Button" , "common/main/lib/component/ComboBox" , "common/main/lib/component/DataView" , "common/main/lib/component/ColorPalette" , "common/main/lib/component/ThemeColorPalette" , "common/main/lib/component/Menu" , "common/main/lib/component/DimensionPicker" , "common/main/lib/component/Window" , "common/main/lib/component/ComboBoxFonts" , "common/main/lib/component/ComboDataView" , "common/main/lib/component/SynchronizeTip" ] , function ( t , e ) { "use strict" ; PE . enumLock = { paragraphLock : "para-lock" , shapeLock : "shape-lock" , slideLock : "slide-lock" , slideDeleted : "slide-deleted" , noSlides : "no-slides" , lostConnect : "disconnect" , incIndentLock : "can-inc-indent" , decIndentLock : "can-dec-indent" , hyperlinkLock : "can-hyperlink" , undoLock : "can-undo" , redoLock : "can-redo" , docPropsLock : "doc-props-lock" , themeLock : "theme-lock" , menuFileOpen : "menu-file-open" , noParagraphSelected : "no-paragraph" , noObjectSelected : "no-object" , disableOnStart : "on-start" , cantPrint : "cant-print" , noTextSelected : "no-text" , inEquation : "in-equation" } , PE . Views . Toolbar = t . View . extend ( _ . extend ( { el : "#toolbar" , template : _ . template ( e ) , events : { } , initialize : function ( ) { var t = this ; t . paragraphControls = [ ] , t . shapeControls = [ ] , t . slideOnlyControls = [ ] , t . synchTooltip = void 0 , t . schemeNames = [ t . txtScheme1 , t . txtScheme2 , t . txtScheme3 , t . txtScheme4 , t . txtScheme5 , t . txtScheme6 , t . txtScheme7 , t . txtScheme8 , t . txtScheme9 , t . txtScheme10 , t . txtScheme11 , t . txtScheme12 , t . txtScheme13 , t . txtScheme14 , t . txtScheme15 , t . txtScheme16 , t . txtScheme17 , t . txtScheme18 , t . txtScheme19 , t . txtScheme20 , t . txtScheme21 ] , t . _state = { hasCollaborativeChanges : void 0 } , t . btnSaveCls = "btn-save" , t . btnSaveTip = this . tipSave + Common . Utils . String . platformKey ( "Ctrl+S" ) ; var e = PE . enumLock ; t . btnNewDocument = new Common . UI . Button ( { id : "id-toolbar-btn-newdocument" , cls : "btn-toolbar" , iconCls : "btn-newdocument" , lock : [ e . slideDeleted , e . paragraphLock , e . lostConnect , e . noSlides ] } ) , t . paragraphControls . push ( t . btnNewDocument ) , t . btnOpenDocument = new Common . UI . Button ( { id : "id-toolbar-btn-opendocument" , cls : "btn-toolbar" , iconCls : "btn-opendocument" , lock : [ e . slideDeleted , e . paragraphLock , e . lostConnect , e . noSlides ] } ) , t . paragraphControls . push ( t . btnOpenDocument ) , t . btnAddSlide = new Common . UI . Button ( { id : "id-toolbar-button-add-slide" , cls : "btn-toolbar" , iconCls : "btn-addslide" , split : ! 0 , lock : [ e . menuFileOpen , e . lostConnect , e . disableOnStart ] , menu : ! 0 } ) , t . slideOnlyControls . push ( t . btnAddSlide ) , t . btnChangeSlide = new Common . UI . Button ( { id : "id-toolbar-button-change-slide" , cls : "btn-toolbar" , iconCls : "btn-changeslide" , lock : [ e . menuFileOpen , e . slideDeleted , e . slideLock , e . lostConnect , e . noSlides , e . disableOnStart ] , menu : ! 0 } ) , t . slideOnlyControls . push ( t . btnChangeSlide ) , t . btnPreview = new Common . UI . Button ( { id : "id-toolbar-button-preview" , cls : "btn-toolbar" , iconCls : "btn-preview" , lock : [ e . menuFileOpen , e . slideDeleted , e . noSlides , e . disableOnStart ] , split : ! 0 , menu : new Common . UI . Menu ( { items : [ { caption : this . textShowBegin , value : 0 } , { caption : this . textShowCurrent , value : 1 } , { caption : "--" } , t . mnuShowSettings = new Common . UI . MenuItem ( { caption : this . textShowSettings , value : 2 , lock : [ e . lostConnect ] } ) ] } ) } ) , t . slideOnlyControls . push ( t . btnPreview ) , t . btnPrint = new Common . UI . Button ( { id : "id-toolbar-btn-print" , cls : "btn-toolbar" , iconCls
this . btnColorSchemas . updateHint ( this . tipColorSchemas ) , this . btnHide . updateHint ( this . tipViewSettings ) , this . btnAdvSettings . updateHint ( this . tipAdvSettings ) , this . btnShapeAlign . updateHint ( this . tipShapeAlign ) , this . btnShapeArrange . updateHint ( this . tipShapeArrange ) , this . btnSlideSize . updateHint ( this . tipSlideSize ) ; var t = this ; this . btnHide . setMenu ( new Common . UI . Menu ( { cls : "pull-right" , style : "min-width: 180px;" , items : [ this . mnuitemCompactToolbar = new Common . UI . MenuItem ( { caption : this . textCompactView , checkable : ! 0 } ) , this . mnuitemHideTitleBar = new Common . UI . MenuItem ( { caption : this . textHideTitleBar , checkable : ! 0 } ) , this . mnuitemHideStatusBar = new Common . UI . MenuItem ( { caption : this . textHideStatusBar , checkable : ! 0 } ) , this . mnuitemHideRulers = new Common . UI . MenuItem ( { caption : this . textHideLines , checkable : ! 0 } ) , { caption : "--" } , this . btnFitPage = new Common . UI . MenuItem ( { caption : this . textFitPage , checkable : ! 0 , checked : this . btnFitPage . isChecked ( ) } ) , this . btnFitWidth = new Common . UI . MenuItem ( { caption : this . textFitWidth , checkable : ! 0 , checked : this . btnFitWidth . isChecked ( ) } ) , this . mnuZoom = new Common . UI . MenuItem ( { template : _ . template ( [ '<div id="id-toolbar-menu-zoom" class="menu-zoom" style="height: 25px;" ' , "<% if(!_.isUndefined(options.stopPropagation)) { %>" , 'data-stopPropagation="true"' , "<% } %>" , ">" , '<label class="title">' + this . textZoom + "</label>" , '<button id="id-menu-zoom-in" type="button" style="float:right; margin: 2px 5px 0 0;" class="btn small btn-toolbar"><span class="btn-icon btn-zoomin"> </span></button>' , '<label class="zoom"><%= options.value %>%</label>' , '<button id="id-menu-zoom-out" type="button" style="float:right; margin-top: 2px;" class="btn small btn-toolbar"><span class="btn-icon btn-zoomout"> </span></button>' , "</div>" ] . join ( "" ) ) , stopPropagation : ! 0 , value : this . mnuZoom . options . value } ) ] } ) ) , ( this . mode . isDesktopApp || this . mode . canBrandingExt && this . mode . customization && ! 1 === this . mode . customization . header ) && this . mnuitemHideTitleBar . hide ( ) , this . mode . canBrandingExt && this . mode . customization && ! 1 === this . mode . customization . statusBar && this . mnuitemHideStatusBar . hide ( ) , this . mnuZoomOut = new Common . UI . Button ( { el : $ ( "#id-menu-zoom-out" ) , cls : "btn-toolbar" } ) , this . mnuZoomIn = new Common . UI . Button ( { el : $ ( "#id-menu-zoom-in" ) , cls : "btn-toolbar" } ) , this . btnMarkers . setMenu ( new Common . UI . Menu ( { items : [ { template : _ . template ( '<div id="id-toolbar-menu-markers" class="menu-markers" style="width: 185px; margin: 0 5px;"></div>' ) } ] } ) ) , this . btnNumbers . setMenu ( new Common . UI . Menu ( { items : [ { template : _ . template ( '<div id="id-toolbar-menu-numbering" class="menu-markers" style="width: 185px; margin: 0 5px;"></div>' ) } ] } ) ) , this . btnAddSlide . setMenu ( new Common . UI . Menu ( { items : [ { template : _ . template ( '<div id="id-toolbar-menu-addslide" class="menu-layouts" style="width: 302px; margin: 0 4px;"></div>' ) } ] } ) ) , this . btnChangeSlide . setMenu ( new Common . UI . Menu ( { items : [ { template : _ . template ( '<div id="id-toolbar-menu-changeslide" class="menu-layouts" style="width: 302px; margin: 0 4px;"></div>' ) } ] } ) ) ; var e = this . mnuMarkersPicker . conf ; this . mnuMarkersPicker = new Common . UI . DataView ( { el : $ ( "#id-toolbar-menu-markers" ) , parentMenu : this . btnMarkers . menu , restoreHeight : 92 , allowScrollbar : ! 1 , store : new Common . UI . DataViewStore ( [ { offsety : 0 , data : { type : 0 , subtype : - 1 } } , { offsety : 38 , data : { type : 0 , subtype : 1 } } , { offsety : 76 , data : { type : 0 , subtype : 2 } } , { offsety : 114 , data : { type : 0 , subtype : 3 } } , { offsety : 152 , data : { type : 0 , subtype : 4 } } , { offsety : 190 , data : { type : 0 , subtype : 5 } } , { offsety : 228 , data : { type : 0 , subtype : 6 } } , { offsety : 266 , data : { type : 0 , subtype : 7 } } ] ) , itemTemplate : _ . template ( '<div id="<%= id %>" class="item-markerlist" style="background-position: 0 -<%= offsety %>px;"></div>' ) } ) , e && this . mnuMarkersPicker . selectByIndex ( e . index , ! 0 ) , e = this . mnuNumbersPicker . conf , this . mnuNumbersPicker = new Common . UI . DataView ( { el : $ ( "#id-toolbar-menu-numbering" ) , parentMenu : this . btnNumbers . menu , restoreHeight : 92 , allowScrollbar : ! 1 , store : new Common . UI . DataViewStore ( [ { offsety : 0 , data : { type : 1 , subtype : - 1 } } , { offsety : 570 , data : { type : 1 , subtype : 4 } } , { offsety : 532 , data : { type : 1 , subtype : 5 } } , { offsety : 608 , data : { type : 1 , subtype : 6 } } , { offsety : 418 , data : { type : 1 , subtype : 1 } } , { offsety : 456 , data : { type : 1 , subtype : 2 } } , { offsety :
this . api . asc _registerCallback ( "asc_onVerticalTextAlign" , _ . bind ( this . onApiVerticalTextAlign , this ) ) , this . api . asc _registerCallback ( "asc_onCanAddHyperlink" , _ . bind ( this . onApiCanAddHyperlink , this ) ) , this . api . asc _registerCallback ( "asc_onTextColor" , _ . bind ( this . onApiTextColor , this ) ) , this . api . asc _registerCallback ( "asc_onUpdateThemeIndex" , _ . bind ( this . onApiUpdateThemeIndex , this ) ) , this . api . asc _registerCallback ( "asc_onEndAddShape" , _ . bind ( this . onApiEndAddShape , this ) ) , this . api . asc _registerCallback ( "asc_onCanGroup" , _ . bind ( this . onApiCanGroup , this ) ) , this . api . asc _registerCallback ( "asc_onCanUnGroup" , _ . bind ( this . onApiCanUnGroup , this ) ) , this . api . asc _registerCallback ( "asc_onPresentationSize" , _ . bind ( this . onApiPageSize , this ) ) , this . api . asc _registerCallback ( "asc_onCoAuthoringDisconnect" , _ . bind ( this . onApiCoAuthoringDisconnect , this , ! 0 ) ) , Common . NotificationCenter . on ( "api:disconnect" , _ . bind ( this . onApiCoAuthoringDisconnect , this ) ) , this . api . asc _registerCallback ( "asc_onZoomChange" , _ . bind ( this . onApiZoomChange , this ) ) , this . api . asc _registerCallback ( "asc_onFocusObject" , _ . bind ( this . onApiFocusObject , this ) ) , this . api . asc _registerCallback ( "asc_onLockDocumentProps" , _ . bind ( this . onApiLockDocumentProps , this ) ) , this . api . asc _registerCallback ( "asc_onUnLockDocumentProps" , _ . bind ( this . onApiUnLockDocumentProps , this ) ) , this . api . asc _registerCallback ( "asc_onLockDocumentTheme" , _ . bind ( this . onApiLockDocumentTheme , this ) ) , this . api . asc _registerCallback ( "asc_onUnLockDocumentTheme" , _ . bind ( this . onApiUnLockDocumentTheme , this ) ) , this . api . asc _registerCallback ( "asc_onInitEditorStyles" , _ . bind ( this . onApiInitEditorStyles , this ) ) , this . api . asc _registerCallback ( "asc_onCountPages" , _ . bind ( this . onApiCountPages , this ) ) , this . api . asc _registerCallback ( "asc_onMathTypes" , _ . bind ( this . onMathTypes , this ) ) , this . onSetupCopyStyleButton ( ) } , onChangeCompactView : function ( t , e ) { Common . localStorage . setItem ( "pe-compact-toolbar" , e ? 1 : 0 ) , e || this . _state . changeslide _inited || this . toolbar . mnuChangeSlidePicker . on ( "item:click" , _ . bind ( this . onChangeSlide , this ) ) , this . _state . changeslide _inited = ! 0 , Common . NotificationCenter . trigger ( "layout:changed" , "toolbar" ) , Common . NotificationCenter . trigger ( "edit:complete" , this . toolbar ) } , onApiFontSize : function ( t ) { this . _state . fontsize !== t && ( this . toolbar . cmbFontSize . setValue ( t ) , this . _state . fontsize = t ) } , onApiBold : function ( t ) { this . _state . bold !== t && ( this . toolbar . btnBold . toggle ( ! 0 === t , ! 0 ) , this . _state . bold = t ) } , onApiItalic : function ( t ) { this . _state . italic !== t && ( this . toolbar . btnItalic . toggle ( ! 0 === t , ! 0 ) , this . _state . italic = t ) } , onApiUnderline : function ( t ) { this . _state . underline !== t && ( this . toolbar . btnUnderline . toggle ( ! 0 === t , ! 0 ) , this . _state . underline = t ) } , onApiStrikeout : function ( t ) { this . _state . strike !== t && ( this . toolbar . btnStrikeout . toggle ( ! 0 === t , ! 0 ) , this . _state . strike = t ) } , onApiVerticalAlign : function ( t ) { this . _state . valign !== t && ( this . toolbar . btnSuperscript . toggle ( 1 == t , ! 0 ) , this . toolbar . btnSubscript . toggle ( 2 == t , ! 0 ) , this . _state . valign = t ) } , onApiCanRevert : function ( t , e ) { "undo" == t ? this . _state . can _undo !== e && ( this . toolbar . lockToolbar ( PE . enumLock . undoLock , ! e , { array : [ this . toolbar . btnUndo ] } ) , this . _state . activated && ( this . _state . can _undo = e ) ) : this . _state . can _redo !== e && ( this . toolbar . lockToolbar ( PE . enumLock . redoLock , ! e , { array : [ this . toolbar . btnRedo ] } ) , this . _state . activated && ( this . _state . can _redo = e ) ) } , onApiCanIncreaseIndent : function ( t ) { this . _state . can _increase !== t && ( this . toolbar . lockToolbar ( PE . enumLock . incIndentLock , ! t , { array : [ this . toolbar . btnIncLeftOffset ] } ) , this . _state . activated && ( this . _state . can _increase = t ) ) } , onApiCanDecreaseIndent : function ( t ) { this . _state . can _decrease !== t && ( this . toolbar . lockToolbar ( PE . enumLock . decIndentLock , ! t , { array : [ this . toolbar . btnDecLeftOffset ] } ) , this . _state . activated && ( this . _state . can _decrease = t ) ) } , onApiBullets : function ( t ) { if ( this . _state . bullets . type != t . get _ListType ( ) || this . _state . bullets . subtype != t . get _ListSubType ( ) ) switch ( this . _state . bullets . type = t . get _ListType ( ) , this . _state . bullets . subtype = t . get _ListSubType ( ) , this . _clearBullets ( ) , this . _state . bullets . type ) { case 0 : this . toolbar . btnMarkers . toggle ( ! 0 , ! 0 ) , this . toolbar . mnuMarkersPicker . selectByIndex ( this . _state . bullets . subtype , ! 0 ) ; break ; case 1 : var e = 0 ; switch ( this . _state . bulle
Common . NotificationCenter . trigger ( "edit:complete" , t . toolbar , t . toolbar . btnInsertShape ) , Common . component . Analytics . trackEvent ( "ToolBar" , "Add Shape" ) ) } ) } } , fillTextArt : function ( ) { var t = this ; if ( this . toolbar . mnuTextArtPicker ) { var e = this . getApplication ( ) . getCollection ( "Common.Collections.TextArt" ) . models , i = this . toolbar . mnuTextArtPicker . store . length ; if ( i > 0 && i == e . length ) { var n = this . toolbar . mnuTextArtPicker . store . models ; _ . each ( e , function ( t , e ) { n [ e ] . set ( "imageUrl" , t . get ( "imageUrl" ) ) } ) } else this . toolbar . mnuTextArtPicker . store . reset ( e ) } else this . toolbar . mnuTextArtPicker = new Common . UI . DataView ( { el : $ ( "#id-toolbar-menu-insart" ) , store : this . getApplication ( ) . getCollection ( "Common.Collections.TextArt" ) , parentMenu : this . toolbar . mnuInsertTextArt . menu , showLast : ! 1 , itemTemplate : _ . template ( '<div class="item-art"><img src="<%= imageUrl %>" id="<%= id %>" style="width:50px;height:50px;"></div>' ) } ) , this . toolbar . mnuTextArtPicker . on ( "item:click" , function ( e , i , n , o ) { t . api && ( t . toolbar . fireEvent ( "inserttextart" , t . toolbar ) , t . api . AddTextArt ( n . get ( "data" ) ) , t . toolbar . btnInsertShape . pressed && t . toolbar . btnInsertShape . toggle ( ! 1 , ! 0 ) , "click" !== o . type && t . toolbar . btnInsertText . menu . hide ( ) , Common . NotificationCenter . trigger ( "edit:complete" , t . toolbar , t . toolbar . btnInsertText ) , Common . component . Analytics . trackEvent ( "ToolBar" , "Add Text Art" ) ) } ) } , fillEquations : function ( ) { if ( this . toolbar . btnInsertEquation . rendered && ! ( this . toolbar . btnInsertEquation . menu . items . length > 0 ) ) { var t = this , e = this . getApplication ( ) . getCollection ( "EquationGroups" ) ; t . equationPickers = [ ] , t . toolbar . btnInsertEquation . menu . removeAll ( ) ; for ( var i = 0 ; i < e . length ; ++ i ) { var n = e . at ( i ) , o = new Common . UI . MenuItem ( { caption : n . get ( "groupName" ) , menu : new Common . UI . Menu ( { menuAlign : "tl-tr" , items : [ { template : _ . template ( '<div id="id-toolbar-menu-equationgroup' + i + '" class="menu-shape" style="width:' + ( n . get ( "groupWidth" ) + 8 ) + "px; " + n . get ( "groupHeight" ) + 'margin-left:5px;"></div>' ) } ] } ) } ) ; t . toolbar . btnInsertEquation . menu . addItem ( o ) ; var s = new Common . UI . DataView ( { el : $ ( "#id-toolbar-menu-equationgroup" + i ) , store : n . get ( "groupStore" ) , parentMenu : o . menu , showLast : ! 1 , itemTemplate : _ . template ( '<div class="item-equation" style="background-position:<%= posX %>px <%= posY %>px;" ><div style="width:<%= width %>px;height:<%= height %>px;" id="<%= id %>">' ) } ) ; n . get ( "groupHeight" ) . length && ( t . equationPickers . push ( s ) , t . toolbar . btnInsertEquation . menu . on ( "show:after" , function ( ) { if ( t . equationPickers . length ) { var e = $ ( this . el ) . find ( ".over" ) . find ( ".menu-shape" ) ; if ( e . length ) for ( var i = 0 ; i < t . equationPickers . length ; ++ i ) if ( e [ 0 ] . id == t . equationPickers [ i ] . el . id ) return t . equationPickers [ i ] . scroller . update ( { alwaysVisibleY : ! 0 } ) , void t . equationPickers . splice ( i , 1 ) } } ) ) , s . on ( "item:click" , function ( e , i , n , o ) { t . api && ( t . api . asc _AddMath ( n . get ( "data" ) . equationType ) , t . toolbar . btnInsertText . pressed && t . toolbar . btnInsertText . toggle ( ! 1 , ! 0 ) , t . toolbar . btnInsertShape . pressed && t . toolbar . btnInsertShape . toggle ( ! 1 , ! 0 ) , "click" !== o . type && t . toolbar . btnInsertEquation . menu . hide ( ) , Common . NotificationCenter . trigger ( "edit:complete" , t . toolbar , t . toolbar . btnInsertEquation ) , Common . component . Analytics . trackEvent ( "ToolBar" , "Add Equation" ) ) } ) } } } , onInsertEquationClick : function ( ) { this . api && ( this . api . asc _AddMath ( ) , Common . component . Analytics . trackEvent ( "ToolBar" , "Add Equation" ) ) , Common . NotificationCenter . trigger ( "edit:complete" , this . toolbar , this . toolbar . btnInsertEquation ) } , onMathTypes : function ( t ) { var e = [ ] , i = this . getCollection ( "EquationGroups" ) ; i . reset ( ) ; var n = { } ; n [ Common . define . c _oAscMathMainType . Symbol ] = [ this . textSymbols , 11 ] , n [ Common . define . c _oAscMathMainType . Fraction ] = [ this . textFraction , 4 ] , n [ Common . define . c _oAscMathMainType . Script ] = [ this . textScript , 4 ] , n [ Common . define . c _oAscMathMainType . Radical ] = [ this . textRadical , 4 ] , n [ Common . define . c _oAscMathMainType . Integral ] = [ this . textIntegral , 3 , ! 0 ] , n [ Common . define . c _oAscMathMainType . LargeOperator ] = [ this . textLargeOperator , 5 , ! 0 ] , n [ Common . define . c _oAscMathMainType . Bracket ] = [ this . textBracket , 4 , ! 0 ] , n [ Common . define . c _oAscMathMainType . Function ] = [ this . textFunction , 3 , ! 0 ] , n [ Common . define . c _oAscMathMainType . Accent ] = [ this . textAccent , 4 ] , n [ Common . define . c _oAscMathMainType . LimitLog ] = [ this . textLimit
this . panelUsers [ e > 1 || this . mode . sharingSettingsUrl && this . mode . sharingSettingsUrl . length ? "show" : "hide" ] ( ) , this . lblUserCount . css ( { "font-size" : e > 1 ? "11px" : "14px" , "font-weight" : e > 1 ? "bold" : "normal" , "margin-top" : e > 1 ? "0" : "-1px" } ) , this . lblUserCount . text ( e > 1 ? e : "+" ) , $ ( "#status-users-icon" ) . css ( "margin-bottom" , e > 1 ? "0" : "2px" ) ; var i = this . panelUsersBlock . data ( "bs.tooltip" ) ; i && ( i . options . title = e > 1 ? this . tipViewUsers : this . tipAccessRights , i . setContent ( ) ) , e > 1 ? this . panelUsersBlock . attr ( "data-toggle" , "dropdown" ) : this . panelUsersBlock . removeAttr ( "data-toggle" ) , this . panelUsersBlock . toggleClass ( "dropdown-toggle" , e > 1 ) , e > 1 ? this . panelUsersBlock . off ( "click" ) : this . panelUsersBlock . on ( "click" , _ . bind ( this . onUsersClick , this ) ) } , _onAddUser : function ( t , e , i ) { this . panelUsersList && ( this . panelUsersList . find ( "ul" ) . append ( _ . template ( this . tplUser ) ( { user : t , scope : this } ) ) , this . panelUsersList . scroller . update ( { minScrollbarLength : 40 , alwaysVisibleY : ! 0 } ) ) } , _onUsersChanged : function ( t ) { void 0 != t . changed . online && this . panelUsersList && ( this . panelUsersList . find ( "#" + t . get ( "iid" ) ) [ t . changed . online ? "removeClass" : "addClass" ] ( "offline" ) , this . panelUsersList . scroller . update ( { minScrollbarLength : 40 , alwaysVisibleY : ! 0 } ) ) } , _onResetUsers : function ( t , e ) { this . panelUsersList && ( this . panelUsersList . html ( this . templateUserList ( { users : t . models , usertpl : this . tplUser , scope : this } ) ) , this . panelUsersList . scroller = new Common . UI . Scroller ( { el : $ ( "#status-users-list ul" ) , useKeyboard : ! 0 , minScrollbarLength : 40 , alwaysVisibleY : ! 0 } ) ) } , getUserName : function ( t ) { return Common . Utils . String . htmlEncode ( t ) } , showStatusMessage : function ( t ) { $ ( "#status-label-action" ) . text ( t ) } , clearStatusMessage : function ( ) { $ ( "#status-label-action" ) . text ( "" ) } , reloadLanguages : function ( t ) { this . langMenu . removeAll ( ) , _ . each ( t , function ( t ) { this . langMenu . addItem ( { iconCls : t . tip , caption : t . title , value : { tip : t . tip , code : t . code } , checkable : ! 0 , checked : this . langMenu . saved == t . title , toggleGroup : "language" } ) } , this ) , this . langMenu . doLayout ( ) , this . langMenu . items . length > 0 && ( this . btnLanguage . setDisabled ( this . _state . no _paragraph ) , this . btnDocLanguage . setDisabled ( ! ! this . mode . isDisconnected ) ) } , setLanguage : function ( t ) { if ( this . langMenu . prevTip != t . tip && void 0 !== t . code ) { var e = $ ( this . langMenu . el . parentNode , this . $el ) ; e . find ( ".dropdown-toggle > .icon-lang-flag" ) . removeClass ( this . langMenu . prevTip ) . addClass ( t . tip ) , this . langMenu . prevTip = t . tip , e . find ( "#status-label-lang" ) . text ( t . title ) ; var i = e . find ( 'ul li a:contains("' + t . title + '")' ) . parent ( ) . index ( ) ; i < 0 ? this . langMenu . saved = t . title : this . langMenu . items [ i - 1 ] . setChecked ( ! 0 ) } } , SetDisabled : function ( t ) { var e = this . langMenu . items . length > 0 ; this . btnLanguage . setDisabled ( t || ! e || this . _state . no _paragraph ) , this . btnDocLanguage . setDisabled ( t || ! e ) } , onApiFocusObject : function ( t ) { if ( this . mode . isEdit ) { this . _state . no _paragraph = ! 0 ; for ( var e = - 1 ; ++ e < t . length ; ) { var i = t [ e ] . get _ObjectType ( ) ; if ( ( i == Asc . c _oAscTypeSelectElement . Paragraph || i == Asc . c _oAscTypeSelectElement . Shape || i == Asc . c _oAscTypeSelectElement . Chart || i == Asc . c _oAscTypeSelectElement . Table ) && ( this . _state . no _paragraph = t [ e ] . get _ObjectValue ( ) . get _Locked ( ) , this . _state . no _paragraph ) ) break } this . _state . no _paragraph = this . _state . no _paragraph || this . langMenu . items . length < 1 , this . _state . no _paragraph !== this . btnLanguage . isDisabled ( ) && this . btnLanguage . setDisabled ( this . _state . no _paragraph ) } } , onApiCoAuthoringDisconnect : function ( ) { this . setMode ( { isDisconnected : ! 0 } ) , this . SetDisabled ( ! 0 ) } , pageIndexText : "Slide {0} of {1}" , goToPageText : "Go to Slide" , tipUsers : "Document is currently being edited by several users." , tipMoreUsers : "and %1 users." , tipShowUsers : "To see all users click the icon below." , tipFitPage : "Fit to Slide" , tipFitWidth : "Fit to Width" , tipZoomIn : "Zoom In" , tipZoomOut : "Zoom Out" , tipZoomFactor : "Magnification" , txtPageNumInvalid : "Slide number invalid" , tipPreview : "Start Slideshow" , tipAccessRights : "Manage document access rights" , tipViewUsers : "View users and manage document access rights" , txAccessRights : "Change access rights" , tipSetLang : "Set Text Language" , tipSetDocLang : "Set Document Language" , tipSetSpelling : "Spell checking" } , PE . Views . Statusbar || { } ) ) } ) , void 0 === Common ) var Common = { } ; if ( Common . util = Common . util || { } , Common . util . LanguageIn
if ( Math . abs ( this . _state . LineHeight - e . Line ) > . 001 || ( null === this . _state . LineHeight || null === e . Line ) && this . _state . LineHeight !== e . Line ) { var o = "" ; e . LineRule == c _paragraphLinerule . LINERULE _AUTO ? o = e . Line : null !== e . LineRule && null !== e . Line && ( o = Common . Utils . Metric . fnRecalcFromMM ( e . Line ) ) , this . numLineHeight . setValue ( null !== o ? o : "" , ! 0 ) , this . _state . LineHeight = e . Line } ( Math . abs ( this . _state . LineSpacingBefore - e . Before ) > . 001 || ( null === this . _state . LineSpacingBefore || null === e . Before ) && this . _state . LineSpacingBefore !== e . Before ) && ( this . numSpacingBefore . setValue ( null !== e . Before ? e . Before < 0 ? e . Before : Common . Utils . Metric . fnRecalcFromMM ( e . Before ) : "" , ! 0 ) , this . _state . LineSpacingBefore = e . Before ) , ( Math . abs ( this . _state . LineSpacingAfter - e . After ) > . 001 || ( null === this . _state . LineSpacingAfter || null === e . After ) && this . _state . LineSpacingAfter !== e . After ) && ( this . numSpacingAfter . setValue ( null !== e . After ? e . After < 0 ? e . After : Common . Utils . Metric . fnRecalcFromMM ( e . After ) : "" , ! 0 ) , this . _state . LineSpacingAfter = e . After ) } } , updateMetricUnit : function ( ) { if ( this . spinners ) for ( var t = 0 ; t < this . spinners . length ; t ++ ) { var e = this . spinners [ t ] ; e . setDefaultUnit ( Common . Utils . Metric . getCurrentMetricName ( ) ) , e . setStep ( Common . Utils . Metric . getCurrentMetric ( ) == Common . Utils . Metric . c _MetricUnits . pt ? 1 : . 01 ) } if ( this . cmbLineRule ) { var i = this . cmbLineRule . store . at ( 1 ) ; if ( i . set ( { defaultUnit : Common . Utils . Metric . getCurrentMetricName ( ) , minValue : parseFloat ( Common . Utils . Metric . fnRecalcFromMM ( . 3 ) . toFixed ( 2 ) ) , step : Common . Utils . Metric . getCurrentMetric ( ) == Common . Utils . Metric . c _MetricUnits . pt ? 1 : . 01 } ) , null !== this . _state . LineRule ) { var n ; i = this . cmbLineRule . store . findWhere ( ( n = { } , n . value = this . _state . LineRule , n ) ) , i || ( i = this . cmbLineRule . store . at ( 0 ) ) , this . numLineHeight . setDefaultUnit ( i . get ( "defaultUnit" ) ) , this . numLineHeight . setStep ( i . get ( "step" ) ) } } } , createDelayedControls : function ( ) { this . _arrLineRule = [ { displayValue : this . textAuto , defaultValue : 1 , value : c _paragraphLinerule . LINERULE _AUTO , minValue : . 5 , step : . 01 , defaultUnit : "" } , { displayValue : this . textExact , defaultValue : 5 , value : c _paragraphLinerule . LINERULE _EXACT , minValue : . 03 , step : . 01 , defaultUnit : "cm" } ] , this . cmbLineRule = new Common . UI . ComboBox ( { el : e ( "#paragraph-combo-line-rule" ) , cls : "input-group-nr" , menuStyle : "min-width: 85px;" , editable : ! 1 , data : this . _arrLineRule } ) , this . cmbLineRule . setValue ( c _paragraphLinerule . LINERULE _AUTO ) , this . lockedControls . push ( this . cmbLineRule ) , this . numLineHeight = new Common . UI . MetricSpinner ( { el : e ( "#paragraph-spin-line-height" ) , step : . 01 , width : 85 , value : "1.5" , defaultUnit : "" , maxValue : 132 , minValue : . 5 } ) , this . lockedControls . push ( this . numLineHeight ) , this . numSpacingBefore = new Common . UI . MetricSpinner ( { el : e ( "#paragraph-spin-spacing-before" ) , step : . 1 , width : 85 , value : "0 cm" , defaultUnit : "cm" , maxValue : 55.88 , minValue : 0 , allowAuto : ! 0 , autoText : this . txtAutoText } ) , this . spinners . push ( this . numSpacingBefore ) , this . lockedControls . push ( this . numSpacingBefore ) , this . numSpacingAfter = new Common . UI . MetricSpinner ( { el : e ( "#paragraph-spin-spacing-after" ) , step : . 1 , width : 85 , value : "0.35 cm" , defaultUnit : "cm" , maxValue : 55.88 , minValue : 0 , allowAuto : ! 0 , autoText : this . txtAutoText } ) , this . spinners . push ( this . numSpacingAfter ) , this . lockedControls . push ( this . numSpacingAfter ) , this . numLineHeight . on ( "change" , i . bind ( this . onNumLineHeightChange , this ) ) , this . numSpacingBefore . on ( "change" , i . bind ( this . onNumSpacingBeforeChange , this ) ) , this . numSpacingAfter . on ( "change" , i . bind ( this . onNumSpacingAfterChange , this ) ) , this . cmbLineRule . on ( "selected" , i . bind ( this . onLineRuleSelect , this ) ) , this . cmbLineRule . on ( "hide:after" , i . bind ( this . onHideMenus , this ) ) , e ( this . el ) . on ( "click" , "#paragraph-advanced-link" , i . bind ( this . openAdvancedSettings , this ) ) } , createDelayedElements : function ( ) { this . createDelayedControls ( ) , this . updateMetricUnit ( ) , this . _initSettings = ! 1 } , openAdvancedSettings : function ( t ) { if ( ! this . linkAdvanced . hasClass ( "disabled" ) ) { var e = this ; if ( e . api && ! this . _locked ) { var i = e . api . getSelectedElements ( ) ; if ( i && i . length > 0 ) for ( var n , o , s = i . length - 1 ; s >= 0 ; s -- ) if ( n = i [ s ] . get _ObjectType ( ) , o = i [ s ] . get _ObjectValue ( ) , Asc . c _oAscTypeSelectElement . Paragraph == n ) { new PE . Views . ParagraphSettingsAdvanced ( { paragraphProps : o , api : e . api , handler : function ( t , i ) { "ok" == t && e . api && e . api . paraApply ( i . paragrap
store : new Common . UI . DataViewStore ( [ { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barNormal , iconCls : "column-normal" , selected : ! 0 } , { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barStacked , iconCls : "column-stack" } , { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barStackedPer , iconCls : "column-pstack" } , { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barNormal3d , iconCls : "column-3d-normal" } , { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barStacked3d , iconCls : "column-3d-stack" } , { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barStackedPer3d , iconCls : "column-3d-pstack" } , { group : "menu-chart-group-bar" , type : Asc . c _oAscChartTypeSettings . barNormal3dPerspective , iconCls : "column-3d-normal-per" } , { group : "menu-chart-group-line" , type : Asc . c _oAscChartTypeSettings . lineNormal , iconCls : "line-normal" } , { group : "menu-chart-group-line" , type : Asc . c _oAscChartTypeSettings . lineStacked , iconCls : "line-stack" } , { group : "menu-chart-group-line" , type : Asc . c _oAscChartTypeSettings . lineStackedPer , iconCls : "line-pstack" } , { group : "menu-chart-group-line" , type : Asc . c _oAscChartTypeSettings . line3d , iconCls : "line-3d" } , { group : "menu-chart-group-pie" , type : Asc . c _oAscChartTypeSettings . pie , iconCls : "pie-normal" } , { group : "menu-chart-group-pie" , type : Asc . c _oAscChartTypeSettings . doughnut , iconCls : "pie-doughnut" } , { group : "menu-chart-group-pie" , type : Asc . c _oAscChartTypeSettings . pie3d , iconCls : "pie-3d-normal" } , { group : "menu-chart-group-hbar" , type : Asc . c _oAscChartTypeSettings . hBarNormal , iconCls : "bar-normal" } , { group : "menu-chart-group-hbar" , type : Asc . c _oAscChartTypeSettings . hBarStacked , iconCls : "bar-stack" } , { group : "menu-chart-group-hbar" , type : Asc . c _oAscChartTypeSettings . hBarStackedPer , iconCls : "bar-pstack" } , { group : "menu-chart-group-hbar" , type : Asc . c _oAscChartTypeSettings . hBarNormal3d , iconCls : "bar-3d-normal" } , { group : "menu-chart-group-hbar" , type : Asc . c _oAscChartTypeSettings . hBarStacked3d , iconCls : "bar-3d-stack" } , { group : "menu-chart-group-hbar" , type : Asc . c _oAscChartTypeSettings . hBarStackedPer3d , iconCls : "bar-3d-pstack" } , { group : "menu-chart-group-area" , type : Asc . c _oAscChartTypeSettings . areaNormal , iconCls : "area-normal" } , { group : "menu-chart-group-area" , type : Asc . c _oAscChartTypeSettings . areaStacked , iconCls : "area-stack" } , { group : "menu-chart-group-area" , type : Asc . c _oAscChartTypeSettings . areaStackedPer , iconCls : "area-pstack" } , { group : "menu-chart-group-scatter" , type : Asc . c _oAscChartTypeSettings . scatter , iconCls : "point-normal" } , { group : "menu-chart-group-stock" , type : Asc . c _oAscChartTypeSettings . stock , iconCls : "stock-normal" } ] ) , itemTemplate : i . template ( '<div id="<%= id %>" class="item-chartlist <%= iconCls %>"></div>' ) } ) } ) , this . btnChartType . render ( e ( "#chart-button-type" ) ) , this . mnuChartTypePicker . on ( "item:click" , i . bind ( this . onSelectType , this , this . btnChartType ) ) , this . lockedControls . push ( this . btnChartType ) , this . btnEditData = new Common . UI . Button ( { el : e ( "#chart-button-edit-data" ) } ) , this . btnEditData . on ( "click" , i . bind ( this . setEditData , this ) ) , this . lockedControls . push ( this . btnEditData ) , this . spnWidth = new Common . UI . MetricSpinner ( { el : e ( "#chart-spin-width" ) , step : . 1 , width : 78 , defaultUnit : "cm" , value : "3 cm" , maxValue : 55.88 , minValue : 0 } ) , this . spinners . push ( this . spnWidth ) , this . lockedControls . push ( this . spnWidth ) , this . spnHeight = new Common . UI . MetricSpinner ( { el : e ( "#chart-spin-height" ) , step : . 1 , width : 78 , defaultUnit : "cm" , value : "3 cm" , maxValue : 55.88 , minValue : 0 } ) , this . spinners . push ( this . spnHeight ) , this . lockedControls . push ( this . spnHeight ) , this . spnWidth . on ( "change" , i . bind ( this . onWidthChange , this ) ) , this . spnHeight . on ( "change" , i . bind ( this . onHeightChange , this ) ) , this . btnRatio = new Common . UI . Button ( { cls : "btn-toolbar" , iconCls : "advanced-btn-ratio" , style : "margin-bottom: 1px;" , enableToggle : ! 0 , hint : this . textKeepRatio } ) , this . btnRatio . render ( e ( "#chart-button-ratio" ) ) , this . lockedControls . push ( this . btnRatio ) , this . btnRatio . on ( "click" , i . bind ( function ( t , e ) { if ( t . pressed && this . spnHeight . getNumberValue ( ) > 0 && ( this . _nRatio = this . spnWidth . getNumberValue ( ) / this . spnHeight . getNumberValue ( ) ) , this . api ) { var i = new Asc . CAscChartProp ; i . asc _putLockAspect ( t . pressed ) , this . api . ChartApply ( i ) } this . fireEvent ( "editcomplete" , thi
this . _UpdateBorderStyle ( e . get _InsideH ( ) , i ) ) } , _UpdateBorderStyle : function ( t , e ) { if ( null == t && ( t = new Asc . asc _CTextBorder ) , e && this . BorderSize > 0 ) { var i = parseFloat ( this . BorderSize ) ; t . put _Value ( 1 ) , t . put _Size ( 25.4 * i / 72 ) ; var n = Common . Utils . ThemeColor . getRgbColor ( this . btnBorderColor . color ) ; t . put _Color ( n ) } else t . put _Value ( 0 ) } , createDelayedElements : function ( ) { this . createDelayedControls ( ) , this . UpdateThemeColors ( ) , this . _initSettings = ! 1 } , UpdateThemeColors : function ( ) { this . btnBackColor || ( this . btnBorderColor = new Common . UI . ColorButton ( { style : "width:45px;" , menu : new Common . UI . Menu ( { items : [ { template : i . template ( '<div id="table-border-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' ) } , { template : i . template ( '<a id="table-border-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" ) } ] } ) } ) , this . btnBorderColor . render ( e ( "#table-border-color-btn" ) ) , this . btnBorderColor . setColor ( "000000" ) , this . lockedControls . push ( this . btnBorderColor ) , this . borderColor = new Common . UI . ThemeColorPalette ( { el : e ( "#table-border-color-menu" ) } ) , this . borderColor . on ( "select" , i . bind ( this . onColorsBorderSelect , this ) ) , e ( this . el ) . on ( "click" , "#table-border-color-new" , i . bind ( this . addNewColor , this , this . borderColor , this . btnBorderColor ) ) , this . btnBackColor = new Common . UI . ColorButton ( { style : "width:45px;" , menu : new Common . UI . Menu ( { items : [ { template : i . template ( '<div id="table-back-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' ) } , { template : i . template ( '<a id="table-back-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" ) } ] } ) } ) , this . btnBackColor . render ( e ( "#table-back-color-btn" ) ) , this . lockedControls . push ( this . btnBackColor ) , this . colorsBack = new Common . UI . ThemeColorPalette ( { el : e ( "#table-back-color-menu" ) , transparent : ! 0 } ) , this . colorsBack . on ( "select" , i . bind ( this . onColorsBackSelect , this ) ) , e ( this . el ) . on ( "click" , "#table-back-color-new" , i . bind ( this . addNewColor , this , this . colorsBack , this . btnBackColor ) ) ) , this . colorsBack . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) , this . borderColor . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) , this . btnBorderColor . setColor ( this . borderColor . getColor ( ) ) } , _onInitTemplates : function ( t ) { var n = this ; this . _isTemplatesChanged = ! 0 , this . cmbTableTemplate || ( this . cmbTableTemplate = new Common . UI . ComboDataView ( { itemWidth : 70 , itemHeight : 50 , menuMaxHeight : 300 , enableKeyEvents : ! 0 , cls : "combo-template" } ) , this . cmbTableTemplate . render ( e ( "#table-combo-template" ) ) , this . cmbTableTemplate . openButton . menu . cmpEl . css ( { "min-width" : 175 , "max-width" : 175 } ) , this . cmbTableTemplate . on ( "click" , i . bind ( this . onTableTemplateSelect , this ) ) , this . cmbTableTemplate . openButton . menu . on ( "show:after" , function ( ) { n . cmbTableTemplate . menuPicker . scroller . update ( { alwaysVisibleY : ! 0 } ) } ) , this . lockedControls . push ( this . cmbTableTemplate ) ) ; var o = n . cmbTableTemplate . menuPicker . store . length ; if ( o > 0 && o == t . length ) { var s = n . cmbTableTemplate . menuPicker . store . models ; i . each ( t , function ( t , e ) { s [ e ] . set ( "imageUrl" , t . get _Image ( ) ) } ) } else { n . cmbTableTemplate . menuPicker . store . reset ( [ ] ) ; var a = [ ] ; i . each ( t , function ( t ) { a . push ( { imageUrl : t . get _Image ( ) , id : Common . UI . getId ( ) , templateId : t . get _Id ( ) } ) } ) , n . cmbTableTemplate . menuPicker . store . add ( a ) } } , openAdvancedSettings : function ( t ) { if ( ! this . linkAdvanced . hasClass ( "disabled" ) ) { var e = this ; if ( e . api && ! this . _locked ) { var i = e . api . getSelectedElements ( ) ; if ( i && i . length > 0 ) for ( var n , o , s = i . length - 1 ; s >= 0 ; s -- ) if ( n = i [ s ] . get _ObjectType ( ) , o = i [ s ] . get _ObjectValue ( ) , Asc . c _oAscTypeSelectElement . Table == n ) { new PE . Views . TableSettingsAdvanced ( { tableProps : o , handler : function ( t , i ) { "ok" == t && e . api && e . api . tblApply ( i . tableProps ) , e . fireEvent ( "editcomplete" , e ) } } ) . show ( ) ; break } } } } , setLocked : function ( t ) { this . _locked = t } , disableControls : function ( t ) { this . _initSettings || this . _state . DisabledControls !== t && ( this . _state . DisabledControls = t , i . each ( this . lockedControls , function ( e ) { e . setDisabled ( t ) } ) , this . linkAdvanced . toggleClass ( "disabled" , t ) ) } , textBorders : "Border's Style" , textBorderColor : "Color" , textBackColor : "Background color" , textEdit : "Rows & Columns" , selectRowText : "Select Row" , selectColumnText : " Select Column
this . api && ! 0 !== this . _fromTextureCmb && this . OriginalFillType == Asc . c _oAscFill . FILL _TYPE _BLIP ) { var i = new Asc . asc _CShapeProperty , n = new Asc . asc _CShapeFill ; n . put _type ( Asc . c _oAscFill . FILL _TYPE _BLIP ) , n . put _fill ( new Asc . asc _CFillBlip ) , n . get _fill ( ) . put _type ( this . BlipFillType ) , i . put _fill ( n ) , this . api . ShapeApply ( i ) } this . fireEvent ( "editcomplete" , this ) } , onNumTransparencyChange : function ( t , e , i , n ) { if ( this . sldrTransparency . setValue ( t . getNumberValue ( ) , ! 0 ) , this . api ) { var o = t . getNumberValue ( ) , s = new Asc . asc _CShapeProperty , a = new Asc . asc _CShapeFill ; a . put _transparent ( 2.55 * o ) , s . put _fill ( a ) , this . api . ShapeApply ( s ) } this . fireEvent ( "editcomplete" , this ) } , onTransparencyChange : function ( t , e , n ) { this . _sliderChanged = e , this . numTransparency . setValue ( e , ! 0 ) , this . _sendUndoPoint && ( this . api . setStartPointHistory ( ) , this . _sendUndoPoint = ! 1 , this . updateslider = setInterval ( i . bind ( this . _transparencyApplyFunc , this ) , 100 ) ) } , onTransparencyChangeComplete : function ( t , e , i ) { clearInterval ( this . updateslider ) , this . _sliderChanged = e , this . api . setEndPointHistory ( ) , this . _transparencyApplyFunc ( ) , this . _sendUndoPoint = ! 0 } , _transparencyApplyFunc : function ( ) { if ( void 0 !== this . _sliderChanged ) { var t = new Asc . asc _CShapeProperty , e = new Asc . asc _CShapeFill ; e . put _transparent ( 2.55 * this . _sliderChanged ) , t . put _fill ( e ) , this . api . ShapeApply ( t ) , this . _sliderChanged = void 0 } } , onGradTypeSelect : function ( t , e ) { if ( this . GradFillType = e . value , this . GradFillType == Asc . c _oAscFillGradType . GRAD _LINEAR ) { this . mnuDirectionPicker . store . reset ( this . _viewDataLinear ) , this . mnuDirectionPicker . cmpEl . width ( 175 ) , this . mnuDirectionPicker . restoreHeight = 174 ; var e = this . mnuDirectionPicker . store . findWhere ( { type : this . GradLinearDirectionType } ) ; this . mnuDirectionPicker . selectRecord ( e , ! 0 ) , e ? this . btnDirection . setIconCls ( "item-gradient " + e . get ( "iconcls" ) ) : this . btnDirection . setIconCls ( "" ) } else this . GradFillType == Asc . c _oAscFillGradType . GRAD _PATH && ( this . mnuDirectionPicker . store . reset ( this . _viewDataRadial ) , this . mnuDirectionPicker . cmpEl . width ( 60 ) , this . mnuDirectionPicker . restoreHeight = 58 , this . mnuDirectionPicker . selectByIndex ( this . GradRadialDirectionIdx , ! 0 ) , this . GradRadialDirectionIdx >= 0 ? this . btnDirection . setIconCls ( "item-gradient " + this . _viewDataRadial [ this . GradRadialDirectionIdx ] . iconcls ) : this . btnDirection . setIconCls ( "" ) ) ; if ( this . api && ! this . _noApply ) { var i = new Asc . asc _CShapeProperty , n = new Asc . asc _CShapeFill ; n . put _type ( Asc . c _oAscFill . FILL _TYPE _GRAD ) , n . put _fill ( new Asc . asc _CFillGrad ) , n . get _fill ( ) . put _grad _type ( this . GradFillType ) , this . GradFillType == Asc . c _oAscFillGradType . GRAD _LINEAR && ( n . get _fill ( ) . put _linear _angle ( 6e4 * this . GradLinearDirectionType ) , n . get _fill ( ) . put _linear _scale ( ! 0 ) ) , i . put _fill ( n ) , this . api . ShapeApply ( i ) } this . fireEvent ( "editcomplete" , this ) } , onSelectGradient : function ( t , e , n , o ) { if ( ! this . _noApply ) { var s = { } ; if ( i . isFunction ( o . toJSON ) ) { if ( ! o . get ( "selected" ) ) return ; s = o . toJSON ( ) } else s = o ; if ( this . btnDirection . setIconCls ( "item-gradient " + s . iconcls ) , this . GradFillType == Asc . c _oAscFillGradType . GRAD _LINEAR ? this . GradLinearDirectionType = s . type : this . GradRadialDirectionIdx = 0 , this . api && this . GradFillType == Asc . c _oAscFillGradType . GRAD _LINEAR ) { var a = new Asc . asc _CShapeProperty , r = new Asc . asc _CShapeFill ; r . put _type ( Asc . c _oAscFill . FILL _TYPE _GRAD ) , r . put _fill ( new Asc . asc _CFillGrad ) , r . get _fill ( ) . put _grad _type ( this . GradFillType ) , r . get _fill ( ) . put _linear _angle ( 6e4 * s . type ) , r . get _fill ( ) . put _linear _scale ( ! 0 ) , a . put _fill ( r ) , this . api . ShapeApply ( a ) } this . fireEvent ( "editcomplete" , this ) } } , onColorsGradientSelect : function ( t , e ) { if ( this . btnGradColor . setColor ( e ) , this . GradColor . colors [ this . GradColor . currentIdx ] = e , this . sldrGradient . setColorValue ( Common . Utils . String . format ( "#{0}" , "object" == typeof e ? e . color : e ) ) , this . api && ! this . _noApply ) { var i = new Asc . asc _CShapeProperty , n = new Asc . asc _CShapeFill ; n . put _type ( Asc . c _oAscFill . FILL _TYPE _GRAD ) , n . put _fill ( new Asc . asc _CFillGrad ) , n . get _fill ( ) . put _grad _type ( this . GradFillType ) , n . get _fill ( ) . put _colors ( [ Common . Utils . ThemeColor . getRgbColor ( this . GradColor . colors [ 0 ] ) , Common . Utils . ThemeColor . getRgbColor ( this . GradColor . colors [ 1 ] ) ] ) , this . OriginalFillType !== Asc . c _oAscFill . FILL _TYPE _GRAD && ( this . GradFillType == Asc . c _oAscFillGradType . GRAD _LINEAR && ( n . get _fill ( ) . put _linear _angle ( 6e4 * thi
this . colorsBack . on ( "select" , i . bind ( this . onColorsBackSelect , this ) ) , e ( this . el ) . on ( "click" , "#shape-back-color-new" , i . bind ( this . addNewColor , this , this . colorsBack , this . btnBackColor ) ) , this . btnFGColor = new Common . UI . ColorButton ( { style : "width:45px;" , menu : new Common . UI . Menu ( { items : [ { template : i . template ( '<div id="shape-foreground-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' ) } , { template : i . template ( '<a id="shape-foreground-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" ) } ] } ) } ) , this . btnFGColor . render ( e ( "#shape-foreground-color-btn" ) ) , this . btnFGColor . setColor ( "000000" ) , this . fillControls . push ( this . btnFGColor ) , this . colorsFG = new Common . UI . ThemeColorPalette ( { el : e ( "#shape-foreground-color-menu" ) , value : "000000" } ) , this . colorsFG . on ( "select" , i . bind ( this . onColorsFGSelect , this ) ) , e ( this . el ) . on ( "click" , "#shape-foreground-color-new" , i . bind ( this . addNewColor , this , this . colorsFG , this . btnFGColor ) ) , this . btnBGColor = new Common . UI . ColorButton ( { style : "width:45px;" , menu : new Common . UI . Menu ( { items : [ { template : i . template ( '<div id="shape-background-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' ) } , { template : i . template ( '<a id="shape-background-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" ) } ] } ) } ) , this . btnBGColor . render ( e ( "#shape-background-color-btn" ) ) , this . btnBGColor . setColor ( "ffffff" ) , this . fillControls . push ( this . btnBGColor ) , this . colorsBG = new Common . UI . ThemeColorPalette ( { el : e ( "#shape-background-color-menu" ) , value : "ffffff" } ) , this . colorsBG . on ( "select" , i . bind ( this . onColorsBGSelect , this ) ) , e ( this . el ) . on ( "click" , "#shape-background-color-new" , i . bind ( this . addNewColor , this , this . colorsBG , this . btnBGColor ) ) , this . btnGradColor = new Common . UI . ColorButton ( { style : "width:45px;" , menu : new Common . UI . Menu ( { items : [ { template : i . template ( '<div id="shape-gradient-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' ) } , { template : i . template ( '<a id="shape-gradient-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" ) } ] } ) } ) , this . btnGradColor . render ( e ( "#shape-gradient-color-btn" ) ) , this . btnGradColor . setColor ( "000000" ) , this . fillControls . push ( this . btnGradColor ) , this . colorsGrad = new Common . UI . ThemeColorPalette ( { el : e ( "#shape-gradient-color-menu" ) , value : "000000" } ) , this . colorsGrad . on ( "select" , i . bind ( this . onColorsGradientSelect , this ) ) , e ( this . el ) . on ( "click" , "#shape-gradient-color-new" , i . bind ( this . addNewColor , this , this . colorsGrad , this . btnGradColor ) ) , this . btnBorderColor = new Common . UI . ColorButton ( { style : "width:45px;" , menu : new Common . UI . Menu ( { items : [ { template : i . template ( '<div id="shape-border-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' ) } , { template : i . template ( '<a id="shape-border-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" ) } ] } ) } ) , this . btnBorderColor . render ( e ( "#shape-border-color-btn" ) ) , this . btnBorderColor . setColor ( "000000" ) , this . lockedControls . push ( this . btnBorderColor ) , this . colorsBorder = new Common . UI . ThemeColorPalette ( { el : e ( "#shape-border-color-menu" ) , value : "000000" } ) , this . colorsBorder . on ( "select" , i . bind ( this . onColorsBorderSelect , this ) ) , e ( this . el ) . on ( "click" , "#shape-border-color-new" , i . bind ( this . addNewColor , this , this . colorsBorder , this . btnBorderColor ) ) ) , this . colorsBorder . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) , this . colorsBack . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) , this . colorsFG . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) , this . colorsBG . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) , this . colorsGrad . updateColors ( Common . Utils . ThemeColor . getEffectColors ( ) , Common . Utils . ThemeColor . getStandartColors ( ) ) } , _pt2mm : function ( t ) { return 25.4 * t / 72 } , _mm2pt : function ( t ) { return 72 * t / 25.4 } , disableFillPanels : function ( t ) { this . _state . DisabledFillPanels !== t && ( this . _state . DisabledFillPanels = t , i . each ( this . fillControls , function ( e ) { e . setDisabled ( t ) } ) , this . lblTransparencyStart . toggleClass ( "disabled" , t ) , this . lblTransparencyEnd . toggleClass ( "disabled" , t ) ) } , ShowHi
this . _arrGradType = [ { displayValue : this . textLinear , value : Asc . c _oAscFillGradType . GRAD _LINEAR } , { displayValue : this . textRadial , value : Asc . c _oAscFillGradType . GRAD _PATH } ] , this . cmbGradType = new Common . UI . ComboBox ( { el : e ( "#slide-combo-grad-type" ) , cls : "input-group-nr" , menuStyle : "min-width: 90px;" , editable : ! 1 , data : this . _arrGradType } ) , this . cmbGradType . setValue ( this . _arrGradType [ 0 ] . value ) , this . cmbGradType . on ( "selected" , i . bind ( this . onGradTypeSelect , this ) ) , this . FillItems . push ( this . cmbGradType ) , this . _viewDataLinear = [ { offsetx : 0 , offsety : 0 , type : 45 , subtype : - 1 , iconcls : "gradient-left-top" } , { offsetx : 50 , offsety : 0 , type : 90 , subtype : 4 , iconcls : "gradient-top" } , { offsetx : 100 , offsety : 0 , type : 135 , subtype : 5 , iconcls : "gradient-right-top" } , { offsetx : 0 , offsety : 50 , type : 0 , subtype : 6 , iconcls : "gradient-left" , cls : "item-gradient-separator" , selected : ! 0 } , { offsetx : 100 , offsety : 50 , type : 180 , subtype : 1 , iconcls : "gradient-right" } , { offsetx : 0 , offsety : 100 , type : 315 , subtype : 2 , iconcls : "gradient-left-bottom" } , { offsetx : 50 , offsety : 100 , type : 270 , subtype : 3 , iconcls : "gradient-bottom" } , { offsetx : 100 , offsety : 100 , type : 225 , subtype : 7 , iconcls : "gradient-right-bottom" } ] , this . _viewDataRadial = [ { offsetx : 100 , offsety : 150 , type : 2 , subtype : 5 , iconcls : "gradient-radial-center" } ] , this . btnDirection = new Common . UI . Button ( { cls : "btn-large-dataview" , iconCls : "item-gradient gradient-left" , menu : new Common . UI . Menu ( { style : "min-width: 60px;" , menuAlign : "tr-br" , items : [ { template : i . template ( '<div id="id-slide-menu-direction" style="width: 175px; margin: 0 5px;"></div>' ) } ] } ) } ) , this . btnDirection . on ( "render:after" , function ( n ) { t . mnuDirectionPicker = new Common . UI . DataView ( { el : e ( "#id-slide-menu-direction" ) , parentMenu : n . menu , restoreHeight : 174 , store : new Common . UI . DataViewStore ( t . _viewDataLinear ) , itemTemplate : i . template ( '<div id="<%= id %>" class="item-gradient" style="background-position: -<%= offsetx %>px -<%= offsety %>px;"></div>' ) } ) } ) , this . btnDirection . render ( e ( "#slide-button-direction" ) ) , this . mnuDirectionPicker . on ( "item:click" , i . bind ( this . onSelectGradient , this , this . btnDirection ) ) , this . FillItems . push ( this . btnDirection ) , this . sldrGradient = new Common . UI . MultiSliderGradient ( { el : e ( "#slide-slider-gradient" ) , width : 125 , minValue : 0 , maxValue : 100 , values : [ 0 , 100 ] } ) , this . sldrGradient . on ( "change" , i . bind ( this . onGradientChange , this ) ) , this . sldrGradient . on ( "changecomplete" , i . bind ( this . onGradientChangeComplete , this ) ) , this . sldrGradient . on ( "thumbclick" , function ( e , i ) { t . GradColor . currentIdx = i ; var n = t . GradColor . colors [ t . GradColor . currentIdx ] ; t . btnGradColor . setColor ( n ) , t . colorsGrad . select ( n , ! 1 ) } ) , this . sldrGradient . on ( "thumbdblclick" , function ( e ) { t . btnGradColor . cmpEl . find ( "button" ) . dropdown ( "toggle" ) } ) , this . sldrGradient . on ( "sortthumbs" , function ( e , n ) { var o , s = [ ] ; i . each ( n , function ( e , i ) { s . push ( t . GradColor . colors [ e ] ) , t . GradColor . currentIdx == e && ( o = i ) } ) , t . OriginalFillType = null , t . GradColor . colors = s , t . GradColor . currentIdx = o } ) , this . FillItems . push ( this . sldrGradient ) } , createDelayedElements : function ( ) { this . createDelayedControls ( ) ; var t = [ 0 , 1 , 3 , 2 , 4 , 53 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 22 , 23 , 24 , 25 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 49 , 50 , 51 , 52 ] ; this . patternViewData = [ ] ; for ( var e = 0 ; e < 13 ; e ++ ) for ( var i = 0 ; i < 4 ; i ++ ) { var n = 4 * e + i ; this . patternViewData [ n ] = { offsetx : 28 * i , offsety : 28 * e , type : t [ n ] } } this . patternViewData . splice ( this . patternViewData . length - 2 , 2 ) ; for ( var e = 0 ; e < this . patternViewData . length ; e ++ ) this . patternViewData [ e ] . id = Common . UI . getId ( ) ; this . cmbPattern . menuPicker . store . add ( this . patternViewData ) , this . cmbPattern . menuPicker . store . length > 0 && ( this . cmbPattern . fillComboView ( this . cmbPattern . menuPicker . store . at ( 0 ) , ! 0 ) , this . PatternFillType = this . patternViewData [ 0 ] . type ) , this . UpdateThemeColors ( ) , this . _initSettings = ! 1 } , onInitStandartTextures : function ( t ) { var n = this ; if ( t && t . length > 0 ) { this . btnTexture || ( this . btnTexture = new Common . UI . ComboBox ( { el : e ( "#slide-combo-fill-texture" ) , template : i . template ( [ '<div class="input-group combobox combo-dataview-menu input-group-nr dropdown-toggle" tabindex="0" data-toggle="dropdown">' , '<div class="form-control text" style="width: 90px;">' + this . textSelectTexture + "</div>" , '<div style="display: table-cell;"></div>' , ' < button type = "button" c
define ( "presentationeditor/main/app/view/TextArtSettings" , [ "text!presentationeditor/main/app/template/TextArtSettings.template" , "jquery" , "underscore" , "backbone" , "common/main/lib/component/ComboBox" , "common/main/lib/component/ComboBorderSize" , "common/main/lib/component/MetricSpinner" , "common/main/lib/component/ThemeColorPalette" , "common/main/lib/component/ColorButton" , "common/main/lib/component/ComboDataView" , "common/main/lib/component/Slider" , "common/main/lib/component/MultiSliderGradient" , "common/main/lib/view/ImageFromUrlDialog" ] , function ( t , e , i , n ) { "use strict" ; PE . Views . TextArtSettings = n . View . extend ( i . extend ( { el : "#id-textart-settings" , template : i . template ( t ) , events : { } , options : { alias : "TextArtSettings" } , initialize : function ( ) { this . _initSettings = ! 0 , this . _noApply = ! 0 , this . shapeprops = null , this . _sendUndoPoint = ! 0 , this . _sliderChanged = ! 1 , this . txtPt = Common . Utils . Metric . getMetricName ( Common . Utils . Metric . c _MetricUnits . pt ) , this . _state = { Transparency : null , FillType : Asc . c _oAscFill . FILL _TYPE _SOLID , ShapeColor : "transparent" , BlipFillType : Asc . c _oAscFillBlipType . STRETCH , StrokeType : Asc . c _oAscStrokeType . STROKE _COLOR , StrokeWidth : this . _pt2mm ( 1 ) , StrokeColor : "000000" , StrokeBorderType : Asc . c _oDashType . solid , FGColor : "000000" , BGColor : "ffffff" , GradColor : "000000" , GradFillType : Asc . c _oAscFillGradType . GRAD _LINEAR , FormId : null , DisabledControls : ! 1 } , this . lockedControls = [ ] , this . _locked = ! 1 , this . OriginalFillType = Asc . c _oAscFill . FILL _TYPE _SOLID , this . ShapeColor = { Value : 1 , Color : "transparent" } , this . BlipFillType = Asc . c _oAscFillBlipType . STRETCH , this . GradFillType = Asc . c _oAscFillGradType . GRAD _LINEAR , this . GradColor = { values : [ 0 , 100 ] , colors : [ "000000" , "ffffff" ] , currentIdx : 0 } , this . GradRadialDirectionIdx = 0 , this . GradLinearDirectionType = 0 , this . PatternFillType = 0 , this . FGColor = { Value : 1 , Color : "000000" } , this . BGColor = { Value : 1 , Color : "ffffff" } , this . BorderColor = { Value : 1 , Color : "transparent" } , this . BorderSize = 0 , this . BorderType = Asc . c _oDashType . solid , this . textureNames = [ this . txtCanvas , this . txtCarton , this . txtDarkFabric , this . txtGrain , this . txtGranite , this . txtGreyPaper , this . txtKnit , this . txtLeather , this . txtBrownPaper , this . txtPapyrus , this . txtWood ] , this . render ( ) , this . FillColorContainer = e ( "#textart-panel-color-fill" ) , this . FillImageContainer = e ( "#textart-panel-image-fill" ) , this . FillPatternContainer = e ( "#textart-panel-pattern-fill" ) , this . FillGradientContainer = e ( "#textart-panel-gradient-fill" ) , this . TransparencyContainer = e ( "#textart-panel-transparent-fill" ) } , render : function ( ) { e ( this . el ) . html ( this . template ( { scope : this } ) ) } , setApi : function ( t ) { return this . api = t , this . api && ( this . api . SetInterfaceDrawImagePlaceTextArt ( "textart-texture-img" ) , this . api . asc _registerCallback ( "asc_onInitStandartTextures" , i . bind ( this . onInitStandartTextures , this ) ) ) , this } , onFillSrcSelect : function ( t , e ) { switch ( this . ShowHideElem ( e . value ) , e . value ) { case Asc . c _oAscFill . FILL _TYPE _SOLID : if ( this . _state . FillType = Asc . c _oAscFill . FILL _TYPE _SOLID , ! this . _noApply ) { var i = new Asc . asc _TextArtProperties , n = new Asc . asc _CShapeFill ; n . put _type ( Asc . c _oAscFill . FILL _TYPE _SOLID ) , n . put _fill ( new Asc . asc _CFillSolid ) , n . get _fill ( ) . put _color ( Common . Utils . ThemeColor . getRgbColor ( "transparent" == this . ShapeColor . Color ? { color : "4f81bd" , effectId : 24 } : this . ShapeColor . Color ) ) , i . asc _putFill ( n ) , this . shapeprops . put _TextArtProperties ( i ) , this . api . ShapeApply ( this . shapeprops ) } break ; case Asc . c _oAscFill . FILL _TYPE _GRAD : if ( this . _state . FillType = Asc . c _oAscFill . FILL _TYPE _GRAD , ! this . _noApply ) { var i = new Asc . asc _TextArtProperties , n = new Asc . asc _CShapeFill ; if ( n . put _type ( Asc . c _oAscFill . FILL _TYPE _GRAD ) , n . put _fill ( new Asc . asc _CFillGrad ) , n . get _fill ( ) . put _grad _type ( this . GradFillType ) , this . GradFillType == Asc . c _oAscFillGradType . GRAD _LINEAR && ( n . get _fill ( ) . put _linear _angle ( 6e4 * this . GradLinearDirectionType ) , n . get _fill ( ) . put _linear _scale ( ! 0 ) ) , this . OriginalFillType !== Asc . c _oAscFill . FILL _TYPE _GRAD ) { var o = Common . Utils . ThemeColor . getRgbColor ( this . GradColor . colors [ 0 ] ) . get _color ( ) . get _hex ( ) , s = Common . Utils . ThemeColor . getRgbColor ( this . GradColor . colors [ 1 ] ) . get _color ( ) . get _hex ( ) ; o = "ffffff" === o && "ffffff" === s ? { color : "4f81bd" , effectId : 24 } : this . GradColor . colors [ 0 ] , n . get _fill ( ) . put _positions ( [ 1e3 * this . GradColor . values [ 0 ] , 1e3 * this . GradColo
this . lblTransparencyStart = e ( this . el ) . find ( "#textart-lbl-transparency-start" ) , this . lblTransparencyEnd = e ( this . el ) . find ( "#textart-lbl-transparency-end" ) , this . _arrGradType = [ { displayValue : this . textLinear , value : Asc . c _oAscFillGradType . GRAD _LINEAR } , { displayValue : this . textRadial , value : Asc . c _oAscFillGradType . GRAD _PATH } ] , this . cmbGradType = new Common . UI . ComboBox ( { el : e ( "#textart-combo-grad-type" ) , cls : "input-group-nr" , menuStyle : "min-width: 90px;" , editable : ! 1 , data : this . _arrGradType } ) , this . cmbGradType . setValue ( this . _arrGradType [ 0 ] . value ) , this . cmbGradType . on ( "selected" , i . bind ( this . onGradTypeSelect , this ) ) , this . lockedControls . push ( this . cmbGradType ) , this . _viewDataLinear = [ { offsetx : 0 , offsety : 0 , type : 45 , subtype : - 1 , iconcls : "gradient-left-top" } , { offsetx : 50 , offsety : 0 , type : 90 , subtype : 4 , iconcls : "gradient-top" } , { offsetx : 100 , offsety : 0 , type : 135 , subtype : 5 , iconcls : "gradient-right-top" } , { offsetx : 0 , offsety : 50 , type : 0 , subtype : 6 , iconcls : "gradient-left" , cls : "item-gradient-separator" , selected : ! 0 } , { offsetx : 100 , offsety : 50 , type : 180 , subtype : 1 , iconcls : "gradient-right" } , { offsetx : 0 , offsety : 100 , type : 315 , subtype : 2 , iconcls : "gradient-left-bottom" } , { offsetx : 50 , offsety : 100 , type : 270 , subtype : 3 , iconcls : "gradient-bottom" } , { offsetx : 100 , offsety : 100 , type : 225 , subtype : 7 , iconcls : "gradient-right-bottom" } ] , this . _viewDataRadial = [ { offsetx : 100 , offsety : 150 , type : 2 , subtype : 5 , iconcls : "gradient-radial-center" } ] , this . btnDirection = new Common . UI . Button ( { cls : "btn-large-dataview" , iconCls : "item-gradient gradient-left" , menu : new Common . UI . Menu ( { style : "min-width: 60px;" , menuAlign : "tr-br" , items : [ { template : i . template ( '<div id="id-textart-menu-direction" style="width: 175px; margin: 0 5px;"></div>' ) } ] } ) } ) , this . btnDirection . on ( "render:after" , function ( n ) { t . mnuDirectionPicker = new Common . UI . DataView ( { el : e ( "#id-textart-menu-direction" ) , parentMenu : n . menu , restoreHeight : 174 , store : new Common . UI . DataViewStore ( t . _viewDataLinear ) , itemTemplate : i . template ( '<div id="<%= id %>" class="item-gradient" style="background-position: -<%= offsetx %>px -<%= offsety %>px;"></div>' ) } ) } ) , this . btnDirection . render ( e ( "#textart-button-direction" ) ) , this . mnuDirectionPicker . on ( "item:click" , i . bind ( this . onSelectGradient , this , this . btnDirection ) ) , this . lockedControls . push ( this . btnDirection ) , this . sldrGradient = new Common . UI . MultiSliderGradient ( { el : e ( "#textart-slider-gradient" ) , width : 125 , minValue : 0 , maxValue : 100 , values : [ 0 , 100 ] } ) , this . sldrGradient . on ( "change" , i . bind ( this . onGradientChange , this ) ) , this . sldrGradient . on ( "changecomplete" , i . bind ( this . onGradientChangeComplete , this ) ) , this . sldrGradient . on ( "thumbclick" , function ( e , i ) { t . GradColor . currentIdx = i ; var n = t . GradColor . colors [ t . GradColor . currentIdx ] ; t . btnGradColor . setColor ( n ) , t . colorsGrad . select ( n , ! 1 ) } ) , this . sldrGradient . on ( "thumbdblclick" , function ( e ) { t . btnGradColor . cmpEl . find ( "button" ) . dropdown ( "toggle" ) } ) , this . sldrGradient . on ( "sortthumbs" , function ( e , n ) { var o , s = [ ] ; i . each ( n , function ( e , i ) { s . push ( t . GradColor . colors [ e ] ) , t . GradColor . currentIdx == e && ( o = i ) } ) , t . OriginalFillType = null , t . GradColor . colors = s , t . GradColor . currentIdx = o } ) , this . lockedControls . push ( this . sldrGradient ) , this . cmbBorderSize = new Common . UI . ComboBorderSizeEditable ( { el : e ( "#textart-combo-border-size" ) , style : "width: 93px;" , txtNoBorders : this . txtNoBorders } ) . on ( "selected" , i . bind ( this . onBorderSizeSelect , this ) ) . on ( "changed:before" , i . bind ( this . onBorderSizeChanged , this , ! 0 ) ) . on ( "changed:after" , i . bind ( this . onBorderSizeChanged , this , ! 1 ) ) . on ( "combo:blur" , i . bind ( this . onComboBlur , this , ! 1 ) ) , this . BorderSize = this . cmbBorderSize . store . at ( 2 ) . get ( "value" ) , this . cmbBorderSize . setValue ( this . BorderSize ) , this . lockedControls . push ( this . cmbBorderSize ) , this . cmbBorderType = new Common . UI . ComboBorderType ( { el : e ( "#textart-combo-border-type" ) , style : "width: 93px;" , menuStyle : "min-width: 93px;" } ) . on ( "selected" , i . bind ( this . onBorderTypeSelect , this ) ) . on ( "combo:blur" , i . bind ( this . onComboBlur , this , ! 1 ) ) , this . BorderType = Asc . c _oDashType . solid , this . cmbBorderType . setValue ( this . BorderType ) , this . lockedControls . push ( this . cmbBorderType ) , this . cmbTransform = new Common . UI . ComboDataView ( { itemWidth : 50 , itemHeight : 50 , menuMaxHeight : 300 , enableKeyEvents : ! 0 , cls : "combo-textart" } ) , this . cmbTransform . render ( e ( " # textart
function f ( t ) { for ( var e = t . slice ( 0 , t . length - 1 ) , i = 0 ; i < e . length ; i ++ ) e [ i ] = k [ e [ i ] ] ; return e } function b ( t , e , i ) { t . addEventListener ? t . addEventListener ( e , i , ! 1 ) : t . attachEvent && t . attachEvent ( "on" + e , function ( ) { i ( window . event ) } ) } function C ( ) { var e = t . key ; return t . key = U , e } function v ( t , e , n , o ) { for ( var s , a , r , l = [ ] , c = g ( t ) , h = c . length ; h -- ; ) if ( s = c [ h ] . split ( "+" ) , s . length > 1 && ( l = f ( s ) , t = s [ s . length - 1 ] ) , t = E ( t ) , void 0 === e && ( e = u ( ) ) , S [ t ] ) for ( a in S [ t ] ) r = S [ t ] [ a ] , r . scope === e && i ( r . mods , l ) && ( S [ t ] [ a ] [ n ] = o ) } function y ( t , e ) { t ? v ( t , e , "locked" , ! 0 ) : w = ! 0 } function _ ( t , e ) { t ? v ( t , e , "locked" , ! 1 ) : w = ! 1 } var x , w , S = { } , T = { 16 : ! 1 , 18 : ! 1 , 17 : ! 1 , 91 : ! 1 } , A = "all" , k = { "⇧" : 16 , shift : 16 , "⌥" : 18 , alt : 18 , option : 18 , "⌃" : 17 , ctrl : 17 , control : 17 , "⌘" : 91 , command : 91 } , I = { backspace : 8 , tab : 9 , clear : 12 , enter : 13 , return : 13 , esc : 27 , escape : 27 , space : 32 , left : 37 , up : 38 , right : 39 , down : 40 , del : 46 , delete : 46 , home : 36 , end : 35 , pageup : 33 , pagedown : 34 , "," : 188 , "." : 190 , "/" : 191 , "`" : 192 , "-" : 189 , "=" : 187 , ";" : 186 , "'" : 222 , "[" : 219 , "]" : 221 , "\\" : 220 } , E = function ( t ) { return I [ t ] || t . toUpperCase ( ) . charCodeAt ( 0 ) } , P = [ ] ; for ( x = 1 ; x < 20 ; x ++ ) I [ "f" + x ] = 111 + x ; var M = { 16 : "shiftKey" , 18 : "altKey" , 17 : "ctrlKey" , 91 : "metaKey" } ; for ( x in k ) r [ x ] = ! 1 ; b ( document , "keydown" , function ( t ) { o ( t ) } ) , b ( document , "keyup" , s ) , b ( window , "focus" , a ) ; var U = t . key ; t . key = r , t . key . setScope = p , t . key . getScope = u , t . key . deleteScope = m , t . key . filter = d , t . key . isPressed = c , t . key . getPressedKeyCodes = h , t . key . noConflict = C , t . key . unbind = l , t . key . suspend = y , t . key . resume = _ , "undefined" != typeof module && ( module . exports = key ) } ( this ) , define ( "keymaster" , function ( ) { } ) , void 0 === Common ) var Common = { } ; if ( Common . util = Common . util || { } , define ( "common/main/lib/util/Shortcuts" , [ "backbone" , "keymaster" ] , function ( t ) { "use strict" ; var e = function ( t ) { return this . cid = _ . uniqueId ( "shortcuts" ) , this . initialize . apply ( this , arguments ) , this } ; _ . extend ( e . prototype , t . Events , { initialize : function ( ) { window . key . filter = function ( t ) { return ! 0 } , Common . NotificationCenter . on ( { "modal:show" : function ( t ) { window . key . suspend ( ) } , "modal:close" : function ( t ) { window . key . resume ( ) } , "modal:hide" : function ( t ) { window . key . resume ( ) } } ) } , delegateShortcuts : function ( t ) { if ( t && t . shortcuts ) { this . removeShortcuts ( t ) ; var e , i , n , o , s , a , r = [ ] ; for ( s in t . shortcuts ) { if ( e = t . shortcuts [ s ] , _ . isFunction ( e ) ) n = e ; else if ( ! ( n = t [ e ] ) ) throw new Error ( "Method " + e + " does not exist" ) ; i = s . match ( /^(\S+)\s*(.*)$/ ) , a = i [ 1 ] , o = i [ 2 ] . length ? i [ 2 ] : "all" , n = _ . bind ( n , this ) , r . push ( window . key ( a , o , n ) ) } } } , removeShortcuts : function ( t ) { if ( t && t . shortcuts ) { var e , i , n , o ; for ( n in t . shortcuts ) e = n . match ( /^(\S+)\s*(.*)$/ ) , o = e [ 1 ] , i = e [ 2 ] . length ? e [ 2 ] : "all" , window . key . unbind ( o , i ) } } , suspendEvents : function ( t , e ) { window . key . suspend ( t , e ) } , resumeEvents : function ( t , e ) { window . key . resume ( t , e ) } } ) , e . extend = t . View . extend , Common . util . Shortcuts = new e } ) , define ( "text!presentationeditor/main/app/template/LeftMenu.template" , [ ] , function ( ) { return ' < div id = "view-left-menu" class = "tool-menu left" > \ r \ n < div class = "tool-menu-btns" > \ r \ n < button id = "left-btn-file" class = "btn btn-category" content - target = "left-panel-file" > < span class = "btn-icon img-toolbarmenu btn-menu-file" > & nbsp ; < / s p a n > < / b u t t o n > \ r \ n < b u t t o n i d = " l e f t - b t n - s e a r c h " c l a s s = " b t n b t n - c a t e g o r y " c o n t e n t - t a r g e t = " " > < s p a n c l a s s = " b t n - i c o n i m g - t o o l b a r m e n u b t n - m e n u - s e a r c h " > & n b s p ; < / s p a n > < / b u t t o n > \ r \ n < b u t t o n i d = " l e f t - b t n - t h u m b s " c l a s s = " b t n b t n - c a t e g o r y " c o n t e n t - t a r g e t = " " > < s p a n c l a s s = " b t n - i c o n i m g - t o o l b a r m e n u b t n - m e n u - t h u m b s " > & n b s p ; < / s p a n > < / b u t t o n > \ r \ n \ x 3 c ! - - / * * c o a u t h o r i n g b e g i n * * / - - \ x 3 e \ r \ n < b u t t o n i d = " l e f t - b t n - c o m m e n t s " c l a s s = " b t n b t n - c a t e g o r y " c o n t e n t - t a r g e t = " l e f t - p a n e l - c o m m e n t s " > < s p a n c l a s s = " b t n - i c o n i m g - t o o l b a r m e n u b t n - m e n u - c o m m e n t s " > & n b s p ; < / s p a n > < / b u t t o n > \ r \ n < b u t t o n i d = " l e f t - b t n - c h a t " c l a s s = " b t n b t n - c a t e g o r y " c o n t e n t - t a r g e t = " l e f t - p a n e l - c h a t " > < s p a n c l a s s = " b t n - i c o n i m g - t o o l b a r m e n u b t n - m e n u - c h a t " > & n b s p ; < / s p a n > < / b u t t o n > \ r \ n \ x 3 c ! - - / * * c o a u t h o r i n g e n d * * / - - \ x 3 e \ r \ n < b u t t o n i d = " l e f t - b t n - p l u g i n s " c l a s s = " b t n b t n - c a t e g o r y " c o n t e n t - t a r g e t = " " > < s p a n c l a s s = " b t n - i c o n i m g - t o o l b a r m e n u b t n - m e n u - p l u g i n " > & n b s p ; < / s p a n > < / b u t t o n > \ r \ n < b u t t o n i d = " l e f t - b t n - s u p p o r t " c l a s s = " b t n b t n - c a t e g o r y " c o n t e n t - t a r g e t = " " > < s p a n c l a s s = " b t n - i c o n i m g - t o o l b a r m e n u b t n - m e n u - s u p p o r t
t ? this . commentsView . clearTextBoxBind ( ) : this . textVal = this . commentsView . getActiveTextBoxVal ( ) ) } , loadText : function ( ) { if ( this . textVal && this . commentsView ) { var t = this . commentsView . getTextBox ( ) ; t && t . val ( this . textVal ) } } , getEditText : function ( ) { if ( this . commentsView ) return this . commentsView . getActiveTextBoxVal ( ) } , hookTextBox : function ( ) { var t = this , e = this . commentsView . getTextBox ( ) ; e && e . keydown ( function ( e ) { if ( ! e . ctrlKey && ! e . metaKey || e . altKey || e . keyCode !== Common . UI . Keys . RETURN ) { if ( e . keyCode === Common . UI . Keys . TAB ) { var i , n , o ; o = this . selectionStart , n = this . selectionEnd , i = $ ( this ) , i . val ( i . val ( ) . substring ( 0 , o ) + "\t" + i . val ( ) . substring ( n ) ) , this . selectionStart = this . selectionEnd = o + 1 , e . stopImmediatePropagation ( ) , e . preventDefault ( ) } } else { var s = $ ( "#id-comments-change-popover" ) ; s && s . length && s . click ( ) , e . stopImmediatePropagation ( ) } t . e = e } ) } , hideTips : function ( ) { this . commentsView && _ . each ( this . commentsView . dataViewItems , function ( t ) { t . tipsArray && t . tipsArray . forEach ( function ( t ) { t . hide ( ) } ) } , this ) } , isCommentsViewMouseOver : function ( ) { return this . _isMouseOver } } ) , Common . Views . Comments = Common . UI . BaseView . extend ( _ . extend ( { el : "#left-panel-comments" , template : _ . template ( e ) , addCommentHeight : 45 , newCommentHeight : 110 , textBoxAutoSizeLocked : void 0 , initialize : function ( t ) { Common . UI . BaseView . prototype . initialize . call ( this , t ) , this . store = this . options . store , this . popoverComments = this . options . popoverComments } , render : function ( ) { var e = this ; this . $el . html ( this . template ( { textAddCommentToDoc : e . textAddCommentToDoc , textAddComment : e . textAddComment , textCancel : e . textCancel , textEnterCommentHint : e . textEnterCommentHint , maxCommLength : Asc . c _oAscMaxCellOrCommentLength } ) ) , this . buttonAddCommentToDoc = new Common . UI . Button ( { el : $ ( ".btn.new" , this . $el ) , enableToggle : ! 1 } ) , this . buttonAdd = new Common . UI . Button ( { action : "add" , el : $ ( ".btn.add" , this . $el ) , enableToggle : ! 1 } ) , this . buttonCancel = new Common . UI . Button ( { el : $ ( ".btn.cancel" , this . $el ) , enableToggle : ! 1 } ) , this . buttonAddCommentToDoc . on ( "click" , _ . bind ( this . onClickShowBoxDocumentComment , this ) ) , this . buttonAdd . on ( "click" , _ . bind ( this . onClickAddDocumentComment , this ) ) , this . buttonCancel . on ( "click" , _ . bind ( this . onClickCancelDocumentComment , this ) ) , this . txtComment = $ ( "#comment-msg-new" , this . el ) , this . txtComment . keydown ( function ( t ) { if ( ! t . ctrlKey && ! t . metaKey || t . altKey || t . keyCode != Common . UI . Keys . RETURN ) { if ( t . keyCode === Common . UI . Keys . TAB ) { var i , n , o ; o = this . selectionStart , n = this . selectionEnd , i = $ ( this ) , i . val ( i . val ( ) . substring ( 0 , o ) + "\t" + i . val ( ) . substring ( n ) ) , this . selectionStart = this . selectionEnd = o + 1 , t . stopImmediatePropagation ( ) , t . preventDefault ( ) } } else e . onClickAddDocumentComment ( ) , t . stopImmediatePropagation ( ) } ) ; var i = Common . UI . DataView . extend ( function ( ) { return { options : { handleSelect : ! 1 , scrollable : ! 0 , listenStoreEvents : ! 1 , template : _ . template ( '<div class="dataview-ct inner"></div>' ) } , getTextBox : function ( ) { var t = $ ( this . el ) . find ( "textarea" ) ; return t && t . length ? t : void 0 } , setFocusToTextBox : function ( ) { var t = $ ( this . el ) . find ( "textarea" ) ; if ( t && t . length ) { var e = t . val ( ) ; t . focus ( ) , t . val ( "" ) , t . val ( e ) } } , getActiveTextBoxVal : function ( ) { var t = $ ( this . el ) . find ( "textarea" ) ; return t && t . length ? t . val ( ) . trim ( ) : "" } , autoHeightTextBox : function ( ) { function t ( ) { n . scrollHeight > n . clientHeight ? i . css ( { height : n . scrollHeight + s + "px" } ) : ( a = n . clientHeight ) >= o && ( i . css ( { height : o + "px" } ) , n . scrollHeight > n . clientHeight && ( r = Math . max ( n . scrollHeight + s , o ) , i . css ( { height : r + "px" } ) ) ) , e . autoScrollToEditButtons ( ) } var e = this , i = $ ( this . el ) . find ( "textarea" ) , n = null , o = 50 , s = 0 , a = 0 , r = 0 ; i && i . length && ( n = i . get ( 0 ) ) && ( s = . 25 * parseInt ( i . css ( "lineHeight" ) , 10 ) , t ( ) , i . bind ( "input propertychange" , t ) ) , this . textBox = i } , clearTextBoxBind : function ( ) { this . textBox && ( this . textBox . unbind ( "input propertychange" ) , this . textBox = void 0 ) } , autoScrollToEditButtons : function ( ) { var t = $ ( "#id-comments-change" ) , e = null , i = this . el . getBoundingClientRect ( ) , n = 0 ; t . length && ( e = t . get ( 0 ) . getBoundingClientRect ( ) ) && i && ( n = i . bottom - ( e . bottom + 7 ) ) < 0 && this . scroller . scrollTop ( this . scroller . getScrollTop ( ) - n ) } } } ( ) ) ; if ( i ) if ( this . commentsView ) this . commentsView . render ( $ ( ".messages-ct" , e . el ) ) , this . commentsView . onResetItems ( ) ; else { this . commentsView = new i ( { el : $ ( ".messages-ct" , e . el ) , store : e . store , itemTemplate : _ . templat
this . $window . find ( "label[result=replaceshow]" ) . on ( "click" , _ . bind ( this . onShowReplace , this ) ) , this . txtSearch . on ( "keydown" , null , "search" , _ . bind ( this . onKeyPress , this ) ) , this . txtReplace . on ( "keydown" , null , "replace" , _ . bind ( this . onKeyPress , this ) ) , this . on ( "animate:before" , _ . bind ( this . focus , this ) ) , this } , show : function ( t ) { Common . UI . Window . prototype . show . call ( this ) , ! this . mode && ! t && ( t = "search" ) , t && this . mode != t && this . setMode ( t ) , this . options . markresult && this . miHighlight . checked && this . fireEvent ( "search:highlight" , [ this , ! 0 ] ) , this . focus ( ) } , focus : function ( ) { var t = this ; setTimeout ( function ( ) { t . txtSearch . focus ( ) , t . txtSearch . select ( ) } , 10 ) } , onKeyPress : function ( t ) { this . isLocked ( ) || ( t . keyCode == Common . UI . Keys . RETURN ? ( "search" == t . data ? this . onBtnClick ( "next" , t ) : "replace" == t . data && "replace" == this . mode && this . onBtnClick ( "replace" , t ) , t . preventDefault ( ) , t . stopPropagation ( ) ) : t . keyCode == Common . UI . Keys . ESC && $ ( ".asc-loadmask" ) . length < 1 && ( this . hide ( ) , t . preventDefault ( ) , t . stopPropagation ( ) ) ) } , onBtnClick : function ( t , e ) { if ( ! $ ( ".asc-loadmask" ) . length ) { var i = { textsearch : this . txtSearch . val ( ) , textreplace : this . txtReplace . val ( ) , matchcase : this . miMatchCase . checked , matchword : this . miMatchWord . checked , highlight : this . miHighlight . checked } ; this . fireEvent ( "search:" + t , [ this , i ] ) } } , setMode : function ( t ) { this . mode = t ; var e = this . $window . find ( ".input-row" ) ; "no-replace" === t ? ( this . setTitle ( this . textTitle2 ) , e . eq ( 1 ) . hide ( ) , e . eq ( 2 ) . hide ( ) , this . $window . find ( ".btn[result=replace]" ) . hide ( ) , this . $window . find ( ".btn[result=replaceall]" ) . hide ( ) , this . options . matchcase || this . options . matchword || this . options . markresult || ( this . txtSearch . addClass ( "clear" ) , this . btnOptions . hide ( ) ) , this . setHeight ( 170 ) ) : ( this . txtSearch . removeClass ( "clear" ) , this . setTitle ( this . textTitle ) , "search" === t ? ( e . eq ( 2 ) . show ( ) , this . lblReplace . text ( this . txtBtnReplace ) , e . eq ( 1 ) . hide ( ) , this . $window . find ( ".btn[result=replace]" ) . hide ( ) , this . $window . find ( ".btn[result=replaceall]" ) . hide ( ) , this . setHeight ( 200 ) ) : ( e . eq ( 2 ) . show ( ) , this . lblReplace . text ( this . txtBtnHideReplace ) , e . eq ( 1 ) . show ( ) , this . $window . find ( ".btn[result=replace]" ) . show ( ) , this . $window . find ( ".btn[result=replaceall]" ) . show ( ) , this . setHeight ( 230 ) ) ) } , onShowReplace : function ( t ) { this . setMode ( "replace" == this . mode ? "search" : "replace" ) ; var e = this ; _ . defer ( function ( ) { "replace" == e . mode ? e . txtReplace . focus ( ) : e . txtSearch . focus ( ) } , 300 ) } , onHighlight : function ( t , e ) { this . fireEvent ( "search:highlight" , [ this , e ] ) } , getSettings : function ( ) { return { textsearch : this . txtSearch . val ( ) , casesensitive : this . miMatchCase . checked , wholewords : this . miMatchWord . checked } } , textTitle : "Search & Replace" , textTitle2 : "Search" , txtBtnReplace : "Replace" , txtBtnReplaceAll : "Replace All" , textMatchCase : "Case sensitive" , textWholeWords : "Whole words only" , textHighlight : "Highlight results" , textReplaceDef : "Enter the replacement text" , textSearchStart : "Enter text for search" , txtBtnHideReplace : "Hide Replace" } , Common . UI . SearchDialog || { } ) ) } ) , define ( "text!presentationeditor/main/app/template/FileMenu.template" , [ ] , function ( ) { return ' < div class = "panel-menu" > \ r \ n < li class = "fm-first-item" / > \ r \ n < li id = "fm-btn-return" class = "fm-btn" / > \ r \ n < li class = "devider" / > \ r \ n < li id = "fm-btn-save" class = "fm-btn" / > \ r \ n < li id = "fm-btn-edit" class = "fm-btn" / > \ r \ n < li id = "fm-btn-download" class = "fm-btn" / > \ r \ n < li id = "fm-btn-save-desktop" class = "fm-btn" / > \ r \ n < li id = "fm-btn-print" class = "fm-btn" / > \ r \ n < li id = "fm-btn-rename" class = "fm-btn" / > \ r \ n < li class = "devider" / > \ r \ n < li id = "fm-btn-recent" class = "fm-btn" / > \ r \ n < li id = "fm-btn-create" class = "fm-btn" / > \ r \ n < li class = "devider" / > \ r \ n < li id = "fm-btn-info" class = "fm-btn" / > \ r \ n < li id = "fm-btn-rights" class = "fm-btn" / > \ r \ n < li class = "devider" class = "fm-btn" / > \ r \ n < li id = "fm-btn-settings" class = "fm-btn" / > \ r \ n < li class = "devider" / > \ r \ n < li id = "fm-btn-help" class = "fm-btn" / > \ r \ n < li class = "devider" / > \ r \ n < li id = "fm-btn-back" class = "fm-btn" / > \ r \ n < /div>\r\n<div class="panel-context">\r\n <div id="panel-saveas" class="content-box" / > \ r \ n < div id = "panel-recentfiles" class = "content-box" / > \ r \ n < div id = "panel-createnew" class = "content-box" / > \ r \ n < div id = " pa
left : Math . round ( t . width ( ) / 2 - ( i . width ( ) + parseInt ( i . css ( "padding-left" ) ) + parseInt ( i . css ( "padding-right" ) ) ) / 2 ) + "px" } ) , Common . util . Shortcuts . suspendEvents ( ) , this } } , hide : function ( ) { t && t . removeClass ( "masked" ) , e && e . remove ( ) , i && i . remove ( ) , e = null , i = null , Common . util . Shortcuts . resumeEvents ( ) } , setTitle : function ( e ) { this . title = e , t && t . hasClass ( "masked" ) && i && $ ( ".asc-loadmask-title" , i ) . html ( e ) } , isVisible : function ( ) { return ! _ . isEmpty ( i ) } } } ( ) ) } ) , void 0 === Common ) var Common = { } ; if ( Common . Controllers = Common . Controllers || { } , define ( "common/main/lib/controller/Fonts" , [ "core" , "common/main/lib/collection/Fonts" ] , function ( ) { "use strict" ; Common . Controllers . Fonts = Backbone . Controller . extend ( function ( ) { function t ( t , e ) { for ( var i , n = e . get ( "type" ) == o , s = - 1 , a = t . length , r = e . get ( "name" ) ; ! n && ++ s < a && ( i = t . at ( s ) , i . get ( "type" ) == o ) ; ) n = i . get ( "name" ) == r ; return n } function e ( e , i ) { e . showlastused && t ( e . store , i ) } function i ( t ) { Common . NotificationCenter . trigger ( "fonts:change" , t ) } function n ( t , e ) { var i = [ ] ; _ . each ( t , function ( t ) { var e = t . asc _getFontId ( ) ; i . push ( { id : _ . isEmpty ( e ) ? Common . UI . getId ( ) : e , name : t . asc _getFontName ( ) , imgidx : t . asc _getFontThumbnail ( ) , type : t . asc _getFontType ( ) } ) } ) ; var n = this . getCollection ( "Common.Collections.Fonts" ) ; n && ( n . add ( i ) , n . sort ( ) ) , Common . NotificationCenter . trigger ( "fonts:load" , n , e ) } var o = 4 ; return { models : [ "Common.Models.Fonts" ] , collections : [ "Common.Collections.Fonts" ] , views : [ ] , initialize : function ( ) { Common . NotificationCenter . on ( "fonts:select" , _ . bind ( e , this ) ) } , onLaunch : function ( ) { } , setApi : function ( t ) { this . api = t , this . api . asc _registerCallback ( "asc_onInitEditorFonts" , _ . bind ( n , this ) ) , this . api . asc _registerCallback ( "asc_onFontFamily" , _ . bind ( i , this ) ) } } } ( ) ) } ) , void 0 === Common ) var Common = { } ; if ( Common . Collections = Common . Collections || { } , define ( "common/main/lib/collection/TextArt" , [ "backbone" ] , function ( t ) { "use strict" ; Common . Collections . TextArt = t . Collection . extend ( { model : t . Model . extend ( { defaults : function ( ) { return { id : Common . UI . getId ( ) , imageUrl : null , data : null } } } ) } ) } ) , define ( "common/main/lib/view/OpenDialog" , [ "common/main/lib/component/Window" ] , function ( ) { "use strict" ; Common . Views . OpenDialog = Common . UI . Window . extend ( _ . extend ( { applyFunction : void 0 , initialize : function ( t ) { var e = this , i = { } ; _ . extend ( i , { closable : ! 1 , width : 250 , height : t . type == Asc . c _oAscAdvancedOptionsID . CSV ? 205 : 155 , contentWidth : 390 , header : ! 0 , cls : "open-dlg" , contentTemplate : "" , title : t . type == Asc . c _oAscAdvancedOptionsID . DRM ? e . txtTitleProtected : e . txtTitle . replace ( "%1" , t . type == Asc . c _oAscAdvancedOptionsID . CSV ? "CSV" : "TXT" ) } , t ) , this . template = t . template || [ '<div class="box" style="height:' + ( i . height - 85 ) + 'px;">' , '<div class="content-panel" >' , "<% if (type == Asc.c_oAscAdvancedOptionsID.DRM) { %>" , '<label class="header">' + e . txtPassword + "</label>" , '<div id="id-password-txt" style="margin-bottom:15px;"></div>' , "<% } else { %>" , '<label class="header">' + e . txtEncoding + "</label>" , '<div id="id-codepages-combo" class="input-group-nr" style="margin-bottom:15px;"></div>' , "<% if (type == Asc.c_oAscAdvancedOptionsID.CSV) { %>" , '<label class="header">' + e . txtDelimiter + "</label>" , "<div>" , '<div id="id-delimiters-combo" class="input-group-nr" style="max-width: 110px;display: inline-block; vertical-align: middle;"></div>' , '<div id="id-delimiter-other" class="input-row" style="display: inline-block; vertical-align: middle;margin-left: 10px;"></div>' , "</div>" , "<% } %>" , "<% } %>" , "</div>" , "</div>" , '<div class="separator horizontal"/>' , '<div class="footer center">' , '<button class="btn normal dlg-btn primary" result="ok" style="margin-right:10px;">' + e . okButtonText + "</button>" , "</div>" ] . join ( "" ) , this . handler = t . handler , this . type = t . type , this . codepages = t . codepages , this . settings = t . settings , i . tpl = _ . template ( this . template ) ( i ) , Common . UI . Window . prototype . initialize . call ( this , i ) } , render : function ( ) { if ( Common . UI . Window . prototype . render . call ( this ) , this . $window ) if ( this . $window . find ( ".tool" ) . hide ( ) , this . $window . find ( ".dlg-btn" ) . on ( "click" , _ . bind ( this . onBtnClick , this ) ) , this . type == Asc . c _oAscAdvancedOptionsID . DRM ) this . inputPwd = new Common . UI . InputField ( { el : $ ( "#id-password-txt" ) , type : "password" , allowBlank : ! 1 , validateOnBlur : ! 1 } ) , this . $window . find ( "input" ) . on ( "keypress" , _ . bind ( t
; this . appOptions . canAnalytics , 1 , Common . Gateway . on ( "applyeditrights" , _ . bind ( i . onApplyEditRights , i ) ) , Common . Gateway . on ( "processsaveresult" , _ . bind ( i . onProcessSaveResult , i ) ) , Common . Gateway . on ( "processrightschange" , _ . bind ( i . onProcessRightsChange , i ) ) , Common . Gateway . on ( "processmouse" , _ . bind ( i . onProcessMouse , i ) ) , Common . Gateway . on ( "downloadas" , _ . bind ( i . onDownloadAs , i ) ) , Common . Gateway . sendInfo ( { mode : i . appOptions . isEdit ? "edit" : "view" } ) , $ ( document ) . on ( "contextmenu" , _ . bind ( i . onContextMenu , i ) ) } } , onLicenseChanged : function ( t ) { var e = t . asc _getLicenseType ( ) ; void 0 === e || ! this . appOptions . canEdit || "view" === this . editorConfig . mode || e !== Asc . c _oLicenseResult . Connections && e !== Asc . c _oLicenseResult . UsersCount && e !== Asc . c _oLicenseResult . ConnectionsOS && e !== Asc . c _oLicenseResult . UsersCountOS || ( this . _state . licenseType = e ) , this . _isDocReady && this . applyLicense ( ) } , applyLicense : function ( ) { } , disableEditing : function ( t ) { var e = this . getApplication ( ) ; this . appOptions . canEdit && "view" !== this . editorConfig . mode && ( e . getController ( "RightMenu" ) . getView ( "RightMenu" ) . clearSelection ( ) , e . getController ( "Toolbar" ) . DisableToolbar ( t ) , e . getController ( "Statusbar" ) . getView ( "Statusbar" ) . SetDisabled ( t ) ) } , onOpenDocument : function ( t ) { var e = document . getElementById ( "loadmask-text" ) , i = ( t . asc _getCurrentFont ( ) + t . asc _getCurrentImage ( ) ) / ( t . asc _getFontsCount ( ) + t . asc _getImagesCount ( ) ) ; i = this . textLoadingDocument + ": " + Math . min ( Math . round ( 100 * i ) , 100 ) + "%" , e ? e . innerHTML = i : this . loadMask . setTitle ( i ) } , onEditorPermissions : function ( t ) { var e = t . asc _getLicenseType ( ) ; if ( ! this . onServerVersion ( t . asc _getBuildVersion ( ) ) ) { t . asc _getRights ( ) !== Asc . c _oRights . Edit && ( this . permissions . edit = ! 1 ) , this . appOptions . isOffline = this . api . asc _isOffline ( ) , this . appOptions . canLicense = e === Asc . c _oLicenseResult . Success || e === Asc . c _oLicenseResult . SuccessLimit , this . appOptions . isLightVersion = t . asc _getIsLight ( ) , this . appOptions . canCoAuthoring = ! this . appOptions . isLightVersion , this . appOptions . canRequestEditRights = this . editorConfig . canRequestEditRights , this . appOptions . canEdit = ! 1 !== this . permissions . edit && ( this . editorConfig . canRequestEditRights || "view" !== this . editorConfig . mode ) , this . appOptions . isEdit = this . appOptions . canLicense && this . appOptions . canEdit && "view" !== this . editorConfig . mode , this . appOptions . canDownload = ! this . appOptions . nativeApp && ! 1 !== this . permissions . download , this . appOptions . canAnalytics = t . asc _getIsAnalyticsEnable ( ) , this . appOptions . canComments = this . appOptions . canLicense && ( void 0 === this . permissions . comment ? this . appOptions . isEdit : this . permissions . comment ) , this . appOptions . canComments = this . appOptions . canComments && ! ( "object" == typeof this . editorConfig . customization && ! 1 === this . editorConfig . customization . comments ) , this . appOptions . canChat = this . appOptions . canLicense && ! this . appOptions . isOffline && ! ( "object" == typeof this . editorConfig . customization && ! 1 === this . editorConfig . customization . chat ) , this . appOptions . canPrint = ! 1 !== this . permissions . print , this . appOptions . canRename = ! ! this . permissions . rename , this . appOptions . canForcesave = this . appOptions . isEdit && ! this . appOptions . isOffline && "object" == typeof this . editorConfig . customization && ! ! this . editorConfig . customization . forcesave , this . appOptions . forcesave = this . appOptions . canForcesave , this . appOptions . canEditComments = this . appOptions . isOffline || ! ( "object" == typeof this . editorConfig . customization && this . editorConfig . customization . commentAuthorOnly ) , this . appOptions . trialMode = t . asc _getLicenseMode ( ) ; var i = this . getApplication ( ) . getController ( "Viewport" ) . getView ( "Common.Views.Header" ) ; this . appOptions . canBranding = e === Asc . c _oLicenseResult . Success && "object" == typeof this . editorConfig . customization , this . appOptions . canBranding && i . setBranding ( this . editorConfig . customization ) , this . appOptions . canRename && i . setCanRename ( ! 0 ) , this . appOptions . canBrandingExt = t . asc _getCanBranding ( ) && ( "object" == typeof this . editorConfig . customization || this . editorConfig . plugins ) , this . appOptions . canBrandingExt && this . updatePlugins ( this . plugins , ! 0 ) , this . applyModeCommonElements ( ) , this . applyModeEditorElements ( ) , this . api . asc _setViewMode ( ! this . appOptions . isEdit && ! this . appOptions . canComments ) , ! this . appOptions . isEdit && this . appOptions . canComments && this . api . asc _setRestriction
warnLicenseExp : "Your license has expired.<br>Please update your license and refresh the page." , titleLicenseExp : "License expired" , openErrorText : "An error has occurred while opening the file" , saveErrorText : "An error has occurred while saving the file" , errorToken : "The document security token is not correctly formed.<br>Please contact your Document Server administrator." , errorTokenExpire : "The document security token has expired.<br>Please contact your Document Server administrator." , errorSessionAbsolute : "The document editing session has expired. Please reload the page." , errorSessionIdle : "The document has not been edited for quite a long time. Please reload the page." , errorSessionToken : "The connection to the server has been interrupted. Please reload the page." , errorAccessDeny : "You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator." , titleServerVersion : "Editor updated" , errorServerVersion : "The editor version has been updated. The page will be reloaded to apply the changes." , textChangesSaved : "All changes saved" , errorBadImageUrl : "Image url is incorrect" , txtSlideText : "Slide text" , txtClipArt : "Clip Art" , txtDiagram : "SmartArt" , txtDateTime : "Date and time" , txtFooter : "Footer" , txtHeader : "Header" , txtMedia : "Media" , txtPicture : "Picture" , txtImage : "Image" , txtSlideNumber : "Slide number" , txtSlideSubtitle : "Slide subtitle" , txtSlideTitle : "Slide title" , txtLoading : "Loading..." , txtAddNotes : "Click to add notes" , txtAddFirstSlide : "Click to add first slide" , warnNoLicense : "This version of ONLYOFFICE Editors has certain limitations for concurrent connections to the document server.<br>If you need more please consider purchasing a commercial license." , warnNoLicenseUsers : "This version of ONLYOFFICE Editors has certain limitations for concurrent users.<br>If you need more please consider purchasing a commercial license." , warnLicenseExceeded : "The number of concurrent connections to the document server has been exceeded and the document will be opened for viewing only.<br>Please contact your administrator for more information." , warnLicenseUsersExceeded : "The number of concurrent users has been exceeded and the document will be opened for viewing only.<br>Please contact your administrator for more information." , errorDataEncrypted : "Encrypted changes have been received, they cannot be deciphered." } } ( ) , PE . Controllers . Main || { } ) ) } ) , define ( "common/main/lib/view/DocumentAccessDialog" , [ "common/main/lib/component/Window" , "common/main/lib/component/LoadMask" ] , function ( ) { "use strict" ; Common . Views . DocumentAccessDialog = Common . UI . Window . extend ( _ . extend ( { initialize : function ( t ) { var e = { } ; _ . extend ( e , { title : this . textTitle , width : 600 , height : 536 , header : ! 0 } , t ) , this . template = [ '<div id="id-sharing-placeholder"></div>' ] . join ( "" ) , e . tpl = _ . template ( this . template ) ( e ) , this . settingsurl = t . settingsurl || "" , Common . UI . Window . prototype . initialize . call ( this , e ) } , render : function ( ) { Common . UI . Window . prototype . render . call ( this ) , this . $window . find ( "> .body" ) . css ( { height : "auto" , overflow : "hidden" } ) ; var t = document . createElement ( "iframe" ) ; t . width = "100%" , t . height = 500 , t . align = "top" , t . frameBorder = 0 , t . scrolling = "no" , t . onload = _ . bind ( this . _onLoad , this ) , $ ( "#id-sharing-placeholder" ) . append ( t ) , this . loadMask = new Common . UI . LoadMask ( { owner : $ ( "#id-sharing-placeholder" ) } ) , this . loadMask . setTitle ( this . textLoading ) , this . loadMask . show ( ) , t . src = this . settingsurl ; var e = this ; this . _eventfunc = function ( t ) { e . _onWindowMessage ( t ) } , this . _bindWindowEvents . call ( this ) , this . on ( "close" , function ( t ) { e . _unbindWindowEvents ( ) } ) } , _bindWindowEvents : function ( ) { window . addEventListener ? window . addEventListener ( "message" , this . _eventfunc , ! 1 ) : window . attachEvent && window . attachEvent ( "onmessage" , this . _eventfunc ) } , _unbindWindowEvents : function ( ) { window . removeEventListener ? window . removeEventListener ( "message" , this . _eventfunc ) : window . detachEvent && window . detachEvent ( "onmessage" , this . _eventfunc ) } , _onWindowMessage : function ( t ) { if ( t && window . JSON ) try { this . _onMessage . call ( this , window . JSON . parse ( t . data ) ) } catch ( t ) { } } , _onMessage : function ( t ) { t && t . needUpdate && this . trigger ( "accessrights" , this , t . sharingSettings ) , Common . N
_ . isUndefined ( a . asc _putDocumentFlag ) || a . asc _putDocumentFlag ( r . get ( "unattached" ) ) , o = r . get ( "replys" ) , o && o . length && o . forEach ( function ( e ) { ( s = t ( ) ) && ( s . asc _putText ( e . get ( "reply" ) ) , s . asc _putTime ( n . utcDateToString ( new Date ( e . get ( "time" ) ) ) ) , s . asc _putOnlyOfficeTime ( n . ooDateToString ( new Date ( e . get ( "time" ) ) ) ) , s . asc _putUserId ( e . get ( "userid" ) ) , s . asc _putUserName ( e . get ( "username" ) ) , a . asc _addReply ( s ) ) } ) , n . api . asc _changeComment ( e , a ) , ! 0 ) } , onShowComment : function ( t , e ) { var i = this . findComment ( t , void 0 ) ; if ( i ) if ( null !== i . get ( "quote" ) ) { if ( this . api ) { if ( this . hintmode ) { if ( this . animate = ! 0 , i . get ( "unattached" ) && this . getPopover ( ) ) return void this . getPopover ( ) . hide ( ) } else { var n = this . popoverComments . findWhere ( { uid : t } ) ; if ( n ) return } ! _ . isUndefined ( e ) && this . hintmode && ( this . isSelectedComment = e ) , this . api . asc _selectComment ( t ) , this . _dontScrollToComment = ! 0 , this . api . asc _showComment ( t , ! 1 ) } } else this . hintmode && this . api . asc _selectComment ( t ) , this . getPopover ( ) && this . getPopover ( ) . hide ( ) , this . isSelectedComment = ! 1 , this . uids = [ ] } , onChangeComment : function ( e , i ) { if ( i && i . length > 0 ) { var n = this , o = null , s = null , a = null , r = t ( ) , l = n . findComment ( e ) ; if ( l && r ) return r . asc _putText ( i ) , r . asc _putQuoteText ( l . get ( "quote" ) ) , r . asc _putTime ( n . utcDateToString ( new Date ( l . get ( "time" ) ) ) ) , r . asc _putOnlyOfficeTime ( n . ooDateToString ( new Date ( l . get ( "time" ) ) ) ) , r . asc _putUserId ( n . currentUserId ) , r . asc _putUserName ( n . currentUserName ) , r . asc _putSolved ( l . get ( "resolved" ) ) , _ . isUndefined ( r . asc _putDocumentFlag ) || r . asc _putDocumentFlag ( l . get ( "unattached" ) ) , l . set ( "editTextInPopover" , ! 1 ) , o = n . findPopupComment ( e ) , o && o . set ( "editTextInPopover" , ! 1 ) , n . subEditStrings [ e ] && delete n . subEditStrings [ e ] , n . subEditStrings [ e + "-R" ] && delete n . subEditStrings [ e + "-R" ] , s = l . get ( "replys" ) , s && s . length && s . forEach ( function ( e ) { ( a = t ( ) ) && ( a . asc _putText ( e . get ( "reply" ) ) , a . asc _putTime ( n . utcDateToString ( new Date ( e . get ( "time" ) ) ) ) , a . asc _putOnlyOfficeTime ( n . ooDateToString ( new Date ( e . get ( "time" ) ) ) ) , a . asc _putUserId ( e . get ( "userid" ) ) , a . asc _putUserName ( e . get ( "username" ) ) , r . asc _addReply ( a ) ) } ) , n . api . asc _changeComment ( e , r ) , ! 0 } return ! 1 } , onChangeReplyComment : function ( e , i , n ) { if ( n && n . length > 0 ) { var o = this , s = null , a = null , r = t ( ) , l = o . findComment ( e ) ; if ( r && l ) return r . asc _putText ( l . get ( "comment" ) ) , r . asc _putQuoteText ( l . get ( "quote" ) ) , r . asc _putTime ( o . utcDateToString ( new Date ( l . get ( "time" ) ) ) ) , r . asc _putOnlyOfficeTime ( o . ooDateToString ( new Date ( l . get ( "time" ) ) ) ) , r . asc _putUserId ( l . get ( "userid" ) ) , r . asc _putUserName ( l . get ( "username" ) ) , r . asc _putSolved ( l . get ( "resolved" ) ) , _ . isUndefined ( r . asc _putDocumentFlag ) || r . asc _putDocumentFlag ( l . get ( "unattached" ) ) , s = l . get ( "replys" ) , s && s . length && s . forEach ( function ( e ) { ( a = t ( ) ) && ( e . get ( "id" ) !== i || _ . isUndefined ( n ) ? ( a . asc _putText ( e . get ( "reply" ) ) , a . asc _putUserId ( e . get ( "userid" ) ) , a . asc _putUserName ( e . get ( "username" ) ) ) : ( a . asc _putText ( n ) , a . asc _putUserId ( o . currentUserId ) , a . asc _putUserName ( o . currentUserName ) ) , a . asc _putTime ( o . utcDateToString ( new Date ( e . get ( "time" ) ) ) ) , a . asc _putOnlyOfficeTime ( o . ooDateToString ( new Date ( e . get ( "time" ) ) ) ) , r . asc _addReply ( a ) ) } ) , o . api . asc _changeComment ( e , r ) , ! 0 } return ! 1 } , onAddReplyComment : function ( e , i ) { if ( i . length > 0 ) { var n = this , o = null , s = null , a = null , r = t ( ) , l = n . findComment ( e ) ; if ( r && l && ( o = l . get ( "uid" ) , o && ( n . subEditStrings [ o ] && delete n . subEditStrings [ o ] , n . subEditStrings [ o + "-R" ] && delete n . subEditStrings [ o + "-R" ] , l . set ( "showReplyInPopover" , ! 1 ) ) , r . asc _putText ( l . get ( "comment" ) ) , r . asc _putQuoteText ( l . get ( "quote" ) ) , r . asc _putTime ( n . utcDateToString ( new Date ( l . get ( "time" ) ) ) ) , r . asc _putOnlyOfficeTime ( n . ooDateToString ( new Date ( l . get ( "time" ) ) ) ) , r . asc _putUserId ( l . get ( "userid" ) ) , r . asc _putUserName ( l . get ( "username" ) ) , r . asc _putSolved ( l . get ( "resolved" ) ) , _ . isUndefined ( r . asc _putDocumentFlag ) || r . asc _putDocumentFlag ( l . get ( "unattached" ) ) , s = l . get ( "replys" ) , s && s . length && s . forEach ( function ( e ) { ( a = t ( ) ) && ( a . asc _putText ( e . get ( "reply" ) ) , a . asc _putTime ( n . utcDateToString ( new Date ( e . get ( "time" ) ) ) ) , a . asc _putOnlyOfficeTime ( n . ooDateToString ( new Date ( e . get ( "time" ) ) ) ) , a . asc _putUserId ( e . get ( "userid" ) ) , a . asc _putUserName ( e . get ( "username" ) ) , r . asc _addReply ( a ) ) } ) , a = t ( ) ) ) return a . asc _putText ( i ) , a . asc _putTime ( n . utcDateToString ( new Date ) ) , a . asc _putOnlyOfficeTime ( n . ooDateToString ( new Date ) ) , a . asc _putUserId ( n . c
Common . UI . Window . prototype . render . call ( this ) , this . btnSave = new Common . UI . Button ( { el : $ ( "#id-btn-diagram-editor-apply" ) , disabled : ! 0 } ) , this . btnCancel = new Common . UI . Button ( { el : $ ( "#id-btn-diagram-editor-cancel" ) , disabled : ! 0 } ) , this . $window . find ( ".tool.close" ) . addClass ( "disabled" ) , this . $window . find ( ".dlg-btn" ) . on ( "click" , _ . bind ( this . onDlgBtnClick , this ) ) } , setChartData : function ( t ) { this . _chartData = t , this . _isExternalDocReady && this . fireEvent ( "setchartdata" , this ) } , setEditMode : function ( t ) { this . _isNewChart = ! t } , isEditMode : function ( ) { return ! this . _isNewChart } , setControlsDisabled : function ( t ) { this . btnSave . setDisabled ( t ) , this . btnCancel . setDisabled ( t ) , t ? this . $window . find ( ".tool.close" ) . addClass ( "disabled" ) : this . $window . find ( ".tool.close" ) . removeClass ( "disabled" ) } , onDlgBtnClick : function ( t ) { if ( this . handler ) return void this . handler . call ( this , t . currentTarget . attributes . result . value ) ; this . hide ( ) } , onToolClose : function ( ) { if ( this . handler ) return void this . handler . call ( this , "cancel" ) ; this . hide ( ) } , setHeight : function ( t ) { if ( t >= 0 ) { var e = parseInt ( this . $window . css ( "min-height" ) ) ; t < e && ( t = e ) , this . $window . height ( t ) ; var i = this . initConfig . header ? parseInt ( this . $window . find ( "> .header" ) . css ( "height" ) ) : 0 ; this . $window . find ( "> .body" ) . css ( "height" , t - i ) , this . $window . find ( "> .body > .box" ) . css ( "height" , t - 85 ) ; var n = ( Common . Utils . innerHeight ( ) - parseInt ( t ) ) / 2 , o = ( Common . Utils . innerWidth ( ) - parseInt ( this . initConfig . width ) ) / 2 ; this . $window . css ( "left" , o ) , this . $window . css ( "top" , n ) } } , textSave : "Save & Exit" , textClose : "Close" , textTitle : "Chart Editor" } , Common . Views . ExternalDiagramEditor || { } ) ) } ) , void 0 === Common ) var Common = { } ; Common . Controllers = Common . Controllers || { } , define ( "common/main/lib/controller/ExternalDiagramEditor" , [ "core" , "common/main/lib/view/ExternalDiagramEditor" ] , function ( ) { "use strict" ; Common . Controllers . ExternalDiagramEditor = Backbone . Controller . extend ( _ . extend ( function ( ) { var t = "en" , e = void 0 , i = "" , n = null , o = function ( ) { n = new DocsAPI . DocEditor ( "id-diagram-editor-placeholder" , { width : "100%" , height : "100%" , documentType : "spreadsheet" , document : { url : "_chart_" , permissions : { edit : ! 0 , download : ! 1 } } , editorConfig : { mode : "editdiagram" , targetApp : i , lang : t , canCoAuthoring : ! 1 , canBackToFolder : ! 1 , canCreateNew : ! 1 , customization : e , user : { id : "uid-" + Date . now ( ) } } , events : { onAppReady : function ( ) { } , onDocumentStateChange : function ( ) { } , onError : function ( ) { } , onInternalMessage : _ . bind ( this . onInternalMessage , this ) } } ) , Common . Gateway . on ( "processmouse" , _ . bind ( this . onProcessMouse , this ) ) } ; return { views : [ "Common.Views.ExternalDiagramEditor" ] , initialize : function ( ) { this . addListeners ( { "Common.Views.ExternalDiagramEditor" : { setchartdata : _ . bind ( this . setChartData , this ) , drag : _ . bind ( function ( t , e ) { n && n . serviceCommand ( "window:drag" , "start" == e ) } , this ) , show : _ . bind ( function ( t ) { var e = this . diagramEditorView . getHeight ( ) , i = Common . Utils . innerHeight ( ) ; ( i > e && e < 700 || i < e ) && ( e = Math . min ( i , 700 ) , this . diagramEditorView . setHeight ( e ) ) , n ? ( n . serviceCommand ( "setAppDisabled" , ! 1 ) , this . needDisableEditing && this . diagramEditorView . _isExternalDocReady && this . onDiagrammEditingDisabled ( ) , n . attachMouseEvents ( ) ) : o . apply ( this ) , this . isExternalEditorVisible = ! 0 , this . isHandlerCalled = ! 1 } , this ) , hide : _ . bind ( function ( t ) { n && ( n . detachMouseEvents ( ) , this . isExternalEditorVisible = ! 1 ) } , this ) } } ) } , onLaunch : function ( ) { this . diagramEditorView = this . createView ( "Common.Views.ExternalDiagramEditor" , { handler : _ . bind ( this . handler , this ) } ) } , setApi : function ( t ) { return this . api = t , this . api . asc _registerCallback ( "asc_onCloseChartEditor" , _ . bind ( this . onDiagrammEditingDisabled , this ) ) , this } , handler : function ( t , e ) { this . isHandlerCalled || ( this . isHandlerCalled = ! 0 , n && n . serviceCommand ( "queryClose" , { mr : t } ) ) } , setChartData : function ( ) { n && n . serviceCommand ( "setChartData" , this . diagramEditorView . _chartData ) , this . diagramEditorView . _chartData = null } , loadConfig : function ( n ) { n && n . config && ( n . config . lang && ( t = n . config . lang ) , n . config . customization && ( e = n . config . customization ) , n . config . targetApp && ( i = n . config . targetApp ) ) } , onDiagrammEditingDisabled : function ( ) { if ( ! this . diagramEditorView . isVisible ( ) || ! this . diagramEditorView . _isExternalDocReady ) return void ( this . needDisableEditing = ! 0 ) ; this . diagramEditorView . setControlsDisabled ( ! 0 ) , Common .