2018-01-25 11:06:58 +01:00
/*
2019-01-07 12:02:38 +01:00
* Copyright (c) Ascensio System SIA 2019. All rights reserved
2018-01-25 11:06:58 +01:00
*
* http://www.onlyoffice.com
*
* Version: 0.0.0 (build:0)
*/
2019-01-15 14:28:49 +01:00
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 , d = Object . keys , h = Object . create , p = function (){}, m = function ( t ){ return t instanceof m ? t : this instanceof m ? void ( this . _wrapped = t ) : new m ( t )}; "undefined" == typeof exports || exports . nodeType ? t . _ = m : ( "undefined" != typeof module &&! module . nodeType && module . exports && ( exports = module . exports = m ), exports . _ = m ), m . VERSION = "1.8.3" ; var u , 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 )}}, b = function ( t , e , i ){ return m . it
; var n , o = 0 , s = e . toLowerCase (). match ( Pt ) || []; if ( ut . 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 J ( t , e , i , n ){ function o ( r ){ var l ; return s [ r ] =! 0 , ut . 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 === Le ; return o ( e . dataTypes [ 0 ]) ||! s [ "*" ] && o ( "*" )} function Z ( t , e ){ var i , n , o = ut . ajaxSettings . flatOptions || {}; for ( i in e ) void 0 !== e [ i ] && (( o [ i ] ? t : n || ( n = {}))[ i ] = e [ i ]); return n && ut . 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 = {}, d = t . dataTypes . slice (); if ( d [ 1 ]) for ( a in t . converters ) c [ a . toLowerCase ()] = t . converters [ a ]; for ( s = d . shift (); s ;) if ( t . responseFields [ s ] && ( i [ t . responseFields [ s ]] = e ), ! l && n && t . dataFilter && ( e = t . dataFilter ( e , t . dataType )), l = s , s = d . 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 ], d . 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 , dt = lt . hasOwnProperty , ht = dt . toString , pt = ht . call ( Object ), mt = {}, ut = function ( t , e ){ return new ut . fn . init ( t , e )}, gt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , bt = /^-ms-/ , ft = /-([a-z])/g , Ct = function ( t , e ){ return e . toUpperCase ()}; ut . fn = ut . prototype = { jquery : "3.2.1" , constructor : ut , 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 = ut . merge ( this . constructor (), t ); return e . prevObject = this , e }, each : function ( t ){ return ut . each ( this , t )}, map : function ( t ){ return this . pushStack ( ut . 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 }, ut . extend = ut . 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 || ut . 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 && ( ut . isPlainObject ( n ) || ( o = Array . isArray ( n ))) ? ( o ? ( o =! 1 , s = i && Array . isArray ( i ) ? i : []) : s = i && ut . isPlainObject ( i ) ? i : {}, a [ e ] = ut . extend ( c , s , n )) : void 0 !== n && ( a [ e ] = n )); return a }, ut . 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" === ut . type ( t )}, isWindow : function ( t ){ return null != t && t === t . window }, isNumeric : function ( t ){ var e = ut . 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 = dt . call ( e , "constructor" ) && e . constructor ) && ht . 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 ( bt , "ms-" ). replace ( ft , 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 )) ? ut . merge (
ut . readyException ( t )}), this }, ut . extend ({ isReady :! 1 , readyWait : 1 , ready : function ( t ){( ! 0 === t ?-- ut . readyWait : ut . isReady ) || ( ut . isReady =! 0 , ! 0 !== t &&-- ut . readyWait > 0 || Bt . resolveWith ( it ,[ ut ]))}}), ut . ready . then = Bt . then , "complete" === it . readyState || "loading" !== it . readyState &&! it . documentElement . doScroll ? t . setTimeout ( ut . ready ) : ( it . addEventListener ( "DOMContentLoaded" , h ), t . addEventListener ( "load" , h )); var Ut = function ( t , e , i , n , o , s , a ){ var r = 0 , l = t . length , c = null == i ; if ( "object" === ut . type ( i )){ o =! 0 ; for ( r in i ) Ut ( t , e , r , i [ r ], ! 0 , s , a )} else if ( void 0 !== n && ( o =! 0 , ut . isFunction ( n ) || ( a =! 0 ), c && ( a ? ( e . call ( t , n ), e = null ) : ( c = e , e = function ( t , e , i ){ return c . call ( ut ( 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 }, Et = 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 = {}, Et ( 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 [ ut . camelCase ( e )] = i ; else for ( n in e ) o [ ut . camelCase ( n )] = e [ n ]; return o }, get : function ( t , e ){ return void 0 === e ? this . cache ( t ) : t [ this . expando ] && t [ this . expando ][ ut . 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 ( ut . camelCase ) : ( e = ut . camelCase ( e ), e = e in n ? [ e ] : e . match ( Pt ) || []), i = e . length ; for (; i -- ;) delete n [ e [ i ]]}( void 0 === e || ut . 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 &&! ut . isEmptyObject ( e )}}; var Vt = new p , Dt = new p , Rt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , Ft = /[A-Z]/g ; ut . extend ({ hasData : function ( t ){ return Dt . hasData ( t ) || Vt . hasData ( t )}, data : function ( t , e , i ){ return Dt . access ( t , e , i )}, removeData : function ( t , e ){ Dt . remove ( t , e )}, _data : function ( t , e , i ){ return Vt . access ( t , e , i )}, _removeData : function ( t , e ){ Vt . remove ( t , e )}}), ut . 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 = Dt . get ( s ), 1 === s . nodeType &&! Vt . get ( s , "hasDataAttrs" ))){ for ( i = a . length ; i -- ;) a [ i ] && ( n = a [ i ]. name , 0 === n . indexOf ( "data-" ) && ( n = ut . camelCase ( n . slice ( 5 )), u ( s , n , o [ n ]))); Vt . set ( s , "hasDataAttrs" , ! 0 )} return o } return "object" == typeof t ? this . each ( function (){ Dt . set ( this , t )}) : Ut ( this , function ( e ){ var i ; if ( s && void 0 === e ){ if ( void 0 !== ( i = Dt . get ( s , t ))) return i ; if ( void 0 !== ( i = u ( s , t ))) return i } else this . each ( function (){ Dt . set ( this , t , e )})}, null , e , arguments . length > 1 , null , ! 0 )}, removeData : function ( t ){ return this . each ( function (){ Dt . remove ( this , t )})}}), ut . extend ({ queue : function ( t , e , i ){ var n ; if ( t ) return e = ( e || "fx" ) + "queue" , n = Vt . get ( t , e ), i && ( ! n || Array . isArray ( i ) ? n = Vt . access ( t , e , ut . makeArray ( i )) : n . push ( i )), n || []}, dequeue : function ( t , e ){ e = e || "fx" ; var i = ut . queue ( t , e ), n = i . length , o = i . shift (), s = ut . _queueHooks ( t , e ), a = function (){ ut . 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 Vt . get ( t , i ) || Vt . access ( t , i ,{ empty : ut . Callbacks ( "once memory" ). add ( function (){ Vt . remove ( t ,[ e + "queue" , i ])})})}}), ut . fn . extend ({ queue : function ( t , e ){ var i = 2 ; return "string" != typeof t && ( e = t , t = "fx" , i -- ), arguments . length < i ? ut . queue ( this [ 0 ], t ) : void 0 === e ? this : this . each ( function (){ var i = ut . queue ( this , t , e ); ut . _queueHooks ( this , t ), "fx" === t && "inprogress" !== i [ 0 ] && ut . dequeue ( this , t )})}, dequeue : function ( t ){ return this . each ( function (){ ut . dequeue ( this , t )})}, clearQueue : function ( t ){ return this . queue ( t || "fx" ,[])}, promise : function ( t , e ){ var i , n = 1 , o = ut . 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 = Vt . get ( s [ a ], t + "queueHooks" )) && i . empty && ( n ++ , i . empty . add ( r )); return r (), o . promise ( e )}}); var Lt = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , Ht = new RegExp ( "^(?:([+-])=|)(" + Lt + ")([a-z%]*)$" , "i" ), Ot = [ "Top" , "Right" , "Bottom" , "Left" ], Nt = 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" : ut . parseXML }, flatOptions : { url :! 0 , context :! 0 }}, ajaxSetup : function ( t , e ){ return e ? Z ( Z ( t , ut . ajaxSettings ), e ) : Z ( ut . ajaxSettings , t )}, ajaxPrefilter : X ( Fe ), ajaxTransport : X ( Le ), ajax : function ( e , i ){ function n ( e , i , n , r ){ var c , p , m , _ , y , w = i ; d || ( d =! 0 , l && t . clearTimeout ( l ), o = void 0 , a = r || "" , x . readyState = e > 0 ? 4 : 0 , c = e >= 200 && e < 300 || 304 === e , n && ( _ = Q ( u , x , n )), _ = tt ( u , _ , x , c ), c ? ( u . ifModified && ( y = x . getResponseHeader ( "Last-Modified" ), y && ( ut . lastModified [ s ] = y ),( y = x . getResponseHeader ( "etag" )) && ( ut . etag [ s ] = y )), 204 === e || "HEAD" === u . type ? w = "nocontent" : 304 === e ? w = "notmodified" : ( w = _ . state , p = _ . data , m = _ . error , c =! m )) : ( m = w , ! e && w || ( w = "error" , e < 0 && ( e = 0 ))), x . status = e , x . statusText = ( i || w ) + "" , c ? f . resolveWith ( g ,[ p , w , x ]) : f . rejectWith ( g ,[ x , w , m ]), x . statusCode ( v ), v = void 0 , h && b . trigger ( c ? "ajaxSuccess" : "ajaxError" ,[ x , u , c ? p : m ]), C . fireWith ( g ,[ x , w ]), h && ( b . trigger ( "ajaxComplete" ,[ x , u ]), -- ut . active || ut . event . trigger ( "ajaxStop" )))} "object" == typeof e && ( i = e , e = void 0 ), i = i || {}; var o , s , a , r , l , c , d , h , p , m , u = ut . ajaxSetup ({}, i ), g = u . context || u , b = u . context && ( g . nodeType || g . jquery ) ? ut ( g ) : ut . event , f = ut . Deferred (), C = ut . Callbacks ( "once memory" ), v = u . statusCode || {}, _ = {}, y = {}, w = "canceled" , x = { readyState : 0 , getResponseHeader : function ( t ){ var e ; if ( d ){ if ( ! r ) for ( r = {}; e = Ee . exec ( a );) r [ e [ 1 ]. toLowerCase ()] = e [ 2 ]; e = r [ t . toLowerCase ()]} return null == e ? null : e }, getAllResponseHeaders : function (){ return d ? a : null }, setRequestHeader : function ( t , e ){ return null == d && ( t = y [ t . toLowerCase ()] = y [ t . toLowerCase ()] || t , _ [ t ] = e ), this }, overrideMimeType : function ( t ){ return null == d && ( u . mimeType = t ), this }, statusCode : function ( t ){ var e ; if ( t ) if ( d ) x . always ( t [ x . status ]); else for ( e in t ) v [ e ] = [ v [ e ], t [ e ]]; return this }, abort : function ( t ){ var e = t || w ; return o && o . abort ( e ), n ( 0 , e ), this }}; if ( f . promise ( x ), u . url = (( e || u . url || xe . href ) + "" ). replace ( Re , xe . protocol + "//" ), u . type = i . method || i . type || u . method || u . type , u . dataTypes = ( u . dataType || "*" ). toLowerCase (). match ( Pt ) || [ "" ], null == u . crossDomain ){ c = it . createElement ( "a" ); try { c . href = u . url , c . href = c . href , u . crossDomain = Oe . protocol + "//" + Oe . host != c . protocol + "//" + c . host } catch ( t ){ u . crossDomain =! 0 }} if ( u . data && u . processData && "string" != typeof u . data && ( u . data = ut . param ( u . data , u . traditional )), J ( Fe , u , i , x ), d ) return x ; h = ut . event && u . global , h && 0 == ut . active ++&& ut . event . trigger ( "ajaxStart" ), u . type = u . type . toUpperCase (), u . hasContent =! De . test ( u . type ), s = u . url . replace ( Be , "" ), u . hasContent ? u . data && u . processData && 0 === ( u . contentType || "" ). indexOf ( "application/x-www-form-urlencoded" ) && ( u . data = u . data . replace ( Me , "+" )) : ( m = u . url . slice ( s . length ), u . data && ( s += ( Ae . test ( s ) ? "&" : "?" ) + u . data , delete u . data ), ! 1 === u . cache && ( s = s . replace ( Ue , "$1" ), m = ( Ae . test ( s ) ? "&" : "?" ) + "_=" + Se +++ m ), u . url = s + m ), u . ifModified && ( ut . lastModified [ s ] && x . setRequestHeader ( "If-Modified-Since" , ut . lastModified [ s ]), ut . etag [ s ] && x . setRequestHeader ( "If-None-Match" , ut . etag [ s ])),( u . data && u . hasContent &&! 1 !== u . contentType || i . contentType ) && x . setRequestHeader ( "Content-Type" , u . contentType ), x . setRequestHeader ( "Accept" , u . dataTypes [ 0 ] && u . accepts [ u . dataTypes [ 0 ]] ? u . accepts [ u . dataTypes [ 0 ]] + ( "*" !== u . dataTypes [ 0 ] ? ", " + He + "; q=0.01" : "" ) : u . accepts [ "*" ]); for ( p in u . headers ) x . setRequestHeader ( p , u . headers [ p ]); if ( u . beforeSend && ( ! 1 === u . beforeSend . call ( g , x , u ) || d )) return x . abort (); if ( w = "abort" , C . add ( u . complete ), x . done ( u . success ), x . fail ( u . error ), o = J ( Le , u , i , x )){ if ( x . readyState = 1 , h && b . trigger ( "ajaxSend" ,[ x , u ]), d ) return x ; u . async && u . timeout > 0 && ( l = t . setTimeout ( function (){ x . abort ( "timeout" )}, u . timeout )); try { d =! 1 , o . send ( _ , n )} catch ( t ){ if ( d ) throw t ; n ( - 1 , t )}} else n ( - 1 , "No Transport" ); return x }, getJSON : function ( t , e , i ){ return ut . get ( t , e , i , "json" )}, getScript : function ( t , e ){ return ut . get ( t , void 0 , e , "script" )}}), ut . each ([ "get" , "post" ], function ( t , e ){ ut [ e ] = function ( t , i , n , o ){ return ut . isFunction ( i ) && ( o = o || n , n = i , i = void 0 ), ut . ajax ( ut . extend ({ url : t , type : e , dataType : o , data : i , success : n }, ut . isPlainObject ( t ) && t ))}}), ut . _evalUrl = function ( t ){ return ut . 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: 5px; hei
if(this.removeEventListener)for(var t=r.length;t;)this.removeEventListener(r[--t],e,!1);else this.onmousewheel=null},getLineHeight:function(e){return parseInt(t(e)["offsetParent"in t.fn?"offsetParent":"parent"]().css("fontSize"),10)},getPageHeight:function(e){return t(e).height()},settings:{adjustOldDeltas:!0}};t.fn.extend({mousewheel:function(t){return t?this.bind("mousewheel",t):this.trigger("mousewheel")},unmousewheel:function(t){return this.unbind("mousewheel",t)}})}),function(t){"use strict";"function"==typeof define&&define.amd?define("perfectscrollbar",["jquery"],t):t("object"==typeof exports?require("jquery"):jQuery)}(function(t){"use strict";var e={wheelSpeed:10,wheelPropagation:!1,minScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,includePadding:!1,includeMargin:!0},i=function(){var t=0;return function(){var e=t;return t+=1,".perfect-scrollbar-"+e}}();t.fn.perfectScrollbar=function(n,o){return this.each(function(){var s=t.extend(!0,{},e),a=t(this);if("object"==typeof n?t.extend(!0,s,n):o=n,"update"===o)return a.data("perfect-scrollbar-update")&&a.data("perfect-scrollbar-update")(),a;if("destroy"===o)return a.data("perfect-scrollbar-destroy")&&a.data("perfect-scrollbar-destroy")(),a;if(a.data("perfect-scrollbar"))return a.data("perfect-scrollbar");a.addClass("ps-container");var r,l,c,d,h,p,m,u,g,b,f,C=t("<div class=' ps - scrollbar - x - rail '></div>").appendTo(a),v=t("<div class=' ps - scrollbar - y - rail '></div>").appendTo(a),_=t("<div class=' ps - scrollbar - x '></div>").appendTo(C),y=t("<div class=' ps - scrollbar - y '></div>").appendTo(v),w=parseInt(C.css("bottom"),10),x=parseInt(v.css("right"),10),S=i(),A=function(t,e){var i=t+e,n=f-g;b=i<0?0:i>n?n:i;var o=parseInt(b*(p-d)/(f-g),10);a.scrollTop(o),C.css({bottom:w-o})},T=function(t,e){var i=t+e,n=c-m;u=i<0?0:i>n?n:i;var o=parseInt(u*(h-c)/(c-m),10);a.scrollLeft(o),v.css({right:x-o})},k=function(t){return s.minScrollbarLength&&(t=Math.max(t,s.minScrollbarLength)),t},I=function(){C.css({left:a.scrollLeft(),bottom:w-a.scrollTop(),width:c,display:r?"inherit":"none"}),v.hasClass("in-scrolling")?v.css({right:x-a.scrollLeft(),height:f,display:l?"inherit":"none"}):v.css({top:a.scrollTop(),right:x-a.scrollLeft(),height:f,display:l?"inherit":"none"}),_.css({left:u,width:m}),y.css({top:b,height:g})},P=function(){c=s.includePadding?a.innerWidth():a.width(),d=s.includePadding?a.innerHeight():a.height(),f=d-(s.includeMargin?parseInt(v.css("margin-top"))+parseInt(v.css("margin-bottom")):0),h=a.prop("scrollWidth"),p=a.prop("scrollHeight"),!s.suppressScrollX&&c+s.scrollXMarginOffset<h?(r=!0,m=k(parseInt(c*c/h,10)),u=parseInt(a.scrollLeft()*(c-m)/(h-c),10)):(r=!1,m=0,u=0,a.scrollLeft(0)),!s.suppressScrollY&&d+s.scrollYMarginOffset<p?(l=!0,g=k(parseInt(f*d/p,10)),b=parseInt(a.scrollTop()*(f-g)/(p-d),10)):(l=!1,g=0,b=0,a.scrollTop(0)),b>=f-g&&(b=f-g),u>=c-m&&(u=c-m),I(),s.onChange&&s.onChange(this)},M=function(){var e,i;_.bind("mousedown"+S,function(t){i=t.pageX,e=_.position().left,C.addClass("in-scrolling"),t.stopPropagation(),t.preventDefault()}),t(document).bind("mousemove"+S,function(t){C.hasClass("in-scrolling")&&(T(e,t.pageX-i),t.stopPropagation(),t.preventDefault())}),t(document).bind("mouseup"+S,function(t){C.hasClass("in-scrolling")&&C.removeClass("in-scrolling")}),e=i=null},B=function(){var e,i;y.bind("mousedown"+S,function(t){i=t.pageY,e=y.position().top,v.addClass("in-scrolling");var n=parseInt(v.css("margin-top")),o=v[0].getBoundingClientRect();v.css({position:"fixed",left:o.left,top:o.top-n}),t.stopPropagation(),t.preventDefault()}),t(document).bind("mousemove"+S,function(t){v.hasClass("in-scrolling")&&(A(e,t.pageY-i),t.stopPropagation(),t.preventDefault())}),t(document).bind("mouseup"+S,function(t){v.hasClass("in-scrolling")&&(v.removeClass("in-scrolling"),v.css({position:"",left:"",top:""}),I())}),e=i=null},U=function(t,e){var i=a.scrollTop();if(0===t){if(!l)return!1;if(0===i&&e>0||i>=p-d&&e<0)return!s.wheelPropagation}var n=a.scrollLeft();if(0===e){if(!r)return!1;if(0===n&&t<0||n>=h-c&&t>0)ret
;return i.put_type("object"==typeof t&&void 0!==t.effectId?Asc.c_oAscColor.COLOR_TYPE_SCHEME:Asc.c_oAscColor.COLOR_TYPE_SRGB),i.put_r(e>>16),i.put_g((65280&e)>>8),i.put_b(255&e),i.put_a(255),void 0!==t.effectId&&i.put_value(t.effectId),i},colorValue2EffectId:function(t){if("object"==typeof t&&void 0!==t.effectValue&&this.effectcolors)for(var e=0;e<this.effectcolors.length;e++)if(this.effectcolors[e].effectValue===t.effectValue&&t.color.toUpperCase()===this.effectcolors[e].color.toUpperCase()){t.effectId=this.effectcolors[e].effectId;break}return t}}},Common.Utils.Metric=_.extend(new function(){var t=this;return t.c_MetricUnits={cm:0,pt:1,inch:2},t.currentMetric=t.c_MetricUnits.pt,t.metricName=["Cm","Pt","Inch"],t.defaultMetric=t.c_MetricUnits.cm,{c_MetricUnits:t.c_MetricUnits,txtCm:"cm",txtPt:"pt",txtInch:' "',setCurrentMetric:function(e){t.currentMetric=e},getCurrentMetric:function(){return t.currentMetric},getCurrentMetricName:function(){return this[" txt "+t.metricName[t.currentMetric]]},getMetricName:function(e){return this[" txt "+t.metricName[void 0!==e?e:0]]},setDefaultMetric:function(e){t.defaultMetric=e},getDefaultMetric:function(){return t.defaultMetric},fnRecalcToMM:function(e){if(null!==e&&void 0!==e)switch(t.currentMetric){case t.c_MetricUnits.cm:return 10*e;case t.c_MetricUnits.pt:return 25.4*e/72;case t.c_MetricUnits.inch:return 25.4*e}return e},fnRecalcFromMM:function(e){switch(t.currentMetric){case t.c_MetricUnits.cm:return parseFloat((e/10).toFixed(4));case t.c_MetricUnits.pt:return parseFloat((72*e/25.4).toFixed(3));case t.c_MetricUnits.inch:return parseFloat((e/25.4).toFixed(3))}return e}}},Common.Utils.Metric||{}),Common.Utils.RGBColor=function(t){var e,i,n;" # "==t.charAt(0)&&(t=t.substr(1,6)),t=t.replace(/ /g,""),t=t.toLowerCase();for(var o=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^hsb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,process:function(t){var e={},i=Math.round(t[1]),n=Math.round(255*t[2]/100),o=Math.round(255*t[3]/100);if(0==n)e.r=e.g=e.b=o;else{var s=o,a=(255-n)*o/255,r=i%60*(s-a)/60;360==i&&(i=0),i<60?(e.r=s,e.b=a,e.g=a+r):i<120?(e.g=s,e.b=a,e.r=s-r):i<180?(e.g=s,e.r=a,e.b=a+r):i<240?(e.b=s,e.r=a,e.g=s-r):i<300?(e.b=s,e.g=a,e.r=a+r):i<360?(e.r=s,e.g=a,e.b=s-r):(e.r=0,e.g=0,e.b=0)}return[Math.round(e.r),Math.round(e.g),Math.round(e.b)]}},{re:/^(\w{2})(\w{2})(\w{2})$/,process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],s=0;s<o.length;s++){var a=o[s].re,r=o[s].process,l=a.exec(t);if(l){var c=r(l);e=c[0],i=c[1],n=c[2]}}return e=e<0||isNaN(e)?0:e>255?255:e,i=i<0||isNaN(i)?0:i>255?255:i,n=n<0||isNaN(n)?0:n>255?255:n,{r:e,g:i,b:n,isEqual:function(t){return e==t.r&&i==t.g&&n==t.b},toRGB:function(){return" rgb ( "+e+" , "+i+" , "+n+" ) "},toRGBA:function(t){return void 0===t&&(t=1)," rgba ( "+e+" , "+i+" , "+n+" , "+t+" ) "},toHex:function(){var t=e.toString(16),o=i.toString(16),s=n.toString(16);return 1==t.length&&(t=" 0 "+t),1==o.length&&(o=" 0 "+o),1==s.length&&(s=" 0 "+s)," # "+t+o+s},toHSB:function(){var t={h:0,s:0,b:0},o=Math.min(e,i,n),s=Math.max(e,i,n),a=s-o;return t.b=s,t.s=0!=s?255*a/s:0,0!=t.s?t.h=e==s?0+(i-n)/a:i==s?2+(n-e)/a:4+(e-i)/a:t.h=0,t.h*=60,t.h<0&&(t.h+=360),t.s*=100/255,t.b*=100/255,t.h=parseInt(t.h),t.s=parseInt(t.s),t.b=parseInt(t.b),t}}},Common.Utils.String=new function(){return{format:function(t){var e=_.toArray(arguments).slice(1);return t.replace(/\{(\d+)\}/g,function(t,i){return e[i]})},htmlEncode:function(t){return _.escape(t)},htmlDecode:function(t){return _.unescape(t)},ellipsis:function(t,e,i){if(t&&t.length>e){if(i){var n=t.substr(0,e-2),o=Math.max(n.lastIndexOf(" "),n.lastIndexOf(" . "),n.lastIndexOf(" ! "),n.lastIndexOf(" ? "));if(-1!==o&&o>=e-15)return n.substr(0,o)+" ... "}return t.substr(0,e-3)+" ... "}return t},platformKey:function(t,e,i){return _.isEmpty(e)&&(e=" ({ 0 }) "),Common.Utils.isMac?(_.isFunction(i)&&(t=i.call(this,t)),Common.Utils.String.fo
Common.Views.CommentsPopover=Common.UI.Window.extend({initialize:function(t){var e={};_.extend(e,{closable:!1,width:265,height:120,header:!1,modal:!1},t),this.template=t.template||['<div class=" box ">','<div id=" id - comments - popover " class=" comments - popover "></div>','<div id=" id - comments - arrow " class=" comments - arrow "></div>'," < /div>"].join(""),this.store=t.store,this.delegate=t.delegate,e.tpl=_.template(this.template)(e),this.arrow={margin:20,width:12,height:34},this.sdkBounds={width:0,height:0,padding:10,paddingTop:20},Common.UI.Window.prototype.initialize.call(this,e)},render:function(){Common.UI.Window.prototype.render.call(this);var t=this,e=this.delegate,o=this.$window;o.css({height:"",minHeight:"",overflow:"hidden",position:"absolute",zIndex:"990"});var s=o.find(".body");s&&s.css("position","relative"),o.on("click",_.bind(function(){o.css({zIndex:"991"}),Common.NotificationCenter.trigger("comments:click")},this)),Common.NotificationCenter.on("review:click",function(){o.css({zIndex:"990"})});var a=Common.UI.DataView.extend(function(){var e=t;return{options:{handleSelect:!1,scrollable:!0,template:_.template('<div class="dataview-ct inner" style="overflow-y: hidden;"></div>')},getTextBox:function(){var t=$(this.el).find("textarea");return t&&t.length?t:void 0},setFocusToTextBox:function(t){var e=$(this.el).find("textarea");if(t)e.blur();else if(e&&e.length){var i=e.val();e.focus(),e.val(""),e.val(i)}},getActiveTextBoxVal:function(){var t=$(this.el).find("textarea");return t&&t.length?t.val().trim():""},autoHeightTextBox:function(){function i(){l=$(n.scroller.el).scrollTop(),s.scrollHeight>s.clientHeight?(o.css({height:s.scrollHeight+r+"px"}),e.calculateSizeOfContent()):(c=s.clientHeight)>=a&&(o.css({height:a+"px"}),s.scrollHeight>s.clientHeight&&(d=Math.max(s.scrollHeight+r,a),o.css({height:d+"px"})),e.calculateSizeOfContent(),e.setLeftTop(t.arrowPosX,t.arrowPosY,t.leftX),e.calculateSizeOfContent()),n.scroller.scrollTop(l),n.autoScrollToEditButtons()}var n=this,o=this.$el.find("textarea"),s=null,a=50,r=0,l=0,c=0,d=0;o&&o.length&&(s=o.get(0))&&(r=.25*parseInt(o.css("lineHeight"),10),i(),o.bind("input propertychange",i)),this.textBox=o},clearTextBoxBind:function(){this.textBox&&(this.textBox.unbind("input propertychange"),this.textBox=void 0)},autoScrollToEditButtons:function(){var t=$("#id-comments-change-popover"),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(a)if(this.commentsView)this.commentsView.render($("#id-comments-popover")),this.commentsView.onResetItems();else{this.commentsView=new a({el:$("#id-comments-popover"),store:t.store,itemTemplate:_.template(n(i,{textAddReply:e.textAddReply,textAdd:e.textAdd,textCancel:e.textCancel,textEdit:e.textEdit,textReply:e.textReply,textClose:e.textClose,maxCommLength:Asc.c_oAscMaxCellOrCommentLength}))});var r=function(t,i,n){i.tipsArray&&i.tipsArray.forEach(function(t){t.remove()});var o=[],s=$(i.el).find(".btn-resolve");s.tooltip({title:e.textResolve,placement:"cursor"}),s.each(function(t,e){o.push($(e).data("bs.tooltip").tip())}),s=$(i.el).find(".btn-resolve-check"),s.tooltip({title:e.textOpenAgain,placement:"cursor"}),s.each(function(t,e){o.push($(e).data("bs.tooltip").tip())}),i.tipsArray=o},l=function(){t._isMouseOver=!0},c=function(){t._isMouseOver=!1};this.commentsView.on("item:add",r),this.commentsView.on("item:remove",r),this.commentsView.on("item:change",r),this.commentsView.cmpEl.on("mouseover",l).on("mouseout",c),this.commentsView.on("item:click",function(i,n,o,s){function a(){t.update()}var r,l,c,d,h,p;if(r=$(s.target)){if(l=o.get("editTextInPopover"),c=o.get("showReplyInPopover"),p=o.get("hideAddReply"),d=o.get("uid"),h=r.attr("data-value"),o.get("hint"))return void e.fireEvent("comment:disableHint",[o]);if(r.hasClass("btn-edit"))_.isUndefined(h)?l||(e.fireEvent("comment:closeEditing"),o.set("editTextInPopover",!0),e.fireEvent("comment:show",[d]),this.autoHeightTextBox(),t.calculateSizeOfContent(),t.setLeftTop(t.arrowPo
define ( "common/main/lib/view/History" ,[ "common/main/lib/util/utils" , "common/main/lib/component/BaseView" , "common/main/lib/component/Layout" ], function ( t ){ "use strict" ; Common . Views . History = Common . UI . BaseView . extend ( _ . extend ({ el : "#left-panel-history" , storeHistory : void 0 , template : _ . template ([ '<div id="history-box" class="layout-ct vbox">' , '<div id="history-header" class="">' , '<div id="history-btn-back"><%=scope.textCloseHistory%></div>' , "</div>" , '<div id="history-list" class="">' , "</div>" , '<div id="history-expand-changes" class="">' , '<div id="history-btn-expand"><%=scope.textHideAll%></div>' , "</div>" , "</div>" ]. join ( "" )), initialize : function ( t ){ _ . extend ( this , t ), Common . UI . BaseView . prototype . initialize . call ( this , arguments )}, render : function ( t ){ t = t || this . el , $ ( t ). html ( this . template ({ scope : this })). width (( parseInt ( Common . localStorage . getItem ( "de-mainmenu-width" )) || MENU_SCALE_PART ) - SCALE_MIN ), this . viewHistoryList = new Common . UI . DataView ({ el : $ ( "#history-list" ), store : this . storeHistory , enableKeyEvents :! 1 , itemTemplate : _ . template ([ '<div id="<%= id %>" class="history-item-wrap <% if (!isVisible) { %>hidden<% } %>" ' , 'style="display: block; <% if (!isRevision) { %>padding-left: 40px;<% } %><% if (canRestore && selected) { %>padding-bottom: 6px;<% } %>">' , '<div class="user-date"><%= created %></div>' , "<% if (markedAsVersion) { %>" , '<div class="user-version">ver.<%=version%></div>' , "<% } %>" , "<% if (isRevision && hasChanges) { %>" , '<div class="revision-expand img-commonctrl <% if (isExpanded) { %>up<% } %>"></div>' , "<% } %>" , '<div class="user-name">' , '<div class="color" style="display: inline-block; background-color:<%=usercolor%>;" >' , "</div><%= Common.Utils.String.htmlEncode(username) %>" , "</div>" , "<% if (canRestore && selected) { %>" , '<label class="revision-restore" role="presentation" tabindex="-1">' + this . textRestore + "</label>" , "<% } %>" , "</div>" ]. join ( "" ))}); var e = this ; this . viewHistoryList . onClickItem = function ( t , i , n ){ var o = $ ( n . target ); if ( o && o . hasClass ( "revision-expand" )){ var s =! i . get ( "isExpanded" ); i . set ( "isExpanded" , s ); var a = e . storeHistory . findRevisions ( i . get ( "revision" )); if ( a && a . length > 1 ) for ( var r = 1 ; r < a . length ; r ++ ) a [ r ]. set ( "isVisible" , s ); this . scroller . update ({ minScrollbarLength : 40 })} else Common . UI . DataView . prototype . onClickItem . call ( this , t , i , n ); e . btnExpand . cmpEl . text ( e . storeHistory . hasCollapsed () ? e . textShowAll : e . textHideAll )}; var i = function ( t , i , n ){ if ( n . get ( "isRevision" )){ i . btnTip && ( i . btnTip . dontShow =! 0 , i . btnTip . tip (). remove (), i . btnTip = null ); var o = $ ( i . el ). find ( ".revision-expand" ). tooltip ({ title : n . get ( "isExpanded" ) ? e . textHide : e . textShow , placement : "cursor" }); o . length > 0 && ( i . btnTip = o . data ( "bs.tooltip" ))}}; return this . viewHistoryList . on ( "item:add" , i ), this . viewHistoryList . on ( "item:change" , i ), this . btnBackToDocument = new Common . UI . Button ({ el : $ ( "#history-btn-back" ), enableToggle :! 1 }), this . btnExpand = new Common . UI . Button ({ el : $ ( "#history-btn-expand" ), enableToggle :! 1 }), this . trigger ( "render:after" , this ), this }, textRestore : "Restore" , textShow : "Expand" , textHide : "Collapse" , textCloseHistory : "Close History" , textHideAll : "Hide detailed changes" , textShowAll : "Show detailed changes" }, Common . Views . History || {}))}), void 0 === Common ) var Common = {}; if ( Common . Views = Common . Views || {}, define ( "common/main/lib/view/Plugins" ,[ "common/main/lib/util/utils" , "common/main/lib/component/BaseView" , "common/main/lib/component/Layout" , "common/main/lib/component/Window" ], function ( t ){ "use strict" ; Common . Views . Plugins = Common . UI . BaseView . extend ( _ . extend ({ el : "#left-panel-plugins" , storePlugins : void 0 , template : _ . template ([ '<div id="plugins-box" class="layout-ct vbox">' , '<label id="plugins-header"><%= scope.strPlugins %></label>' , '<div id="plugins-list" class="">' , "</div>" , "</div>" , '<div id="current-plugin-box" class="layout-ct vbox hidden">' , '<div id="current-plugin-header">' , "<label></label>" , '<div id="id-plugin-close" class="plugin-close img-commonctrl"></div>' , "</div>" , '<div id="current-plugin-frame" class="">' , "</div>" , "</div>" , '<div id="plugins-mask" style="display: none;">' ]. join ( "" )), initialize : function ( t ){ _ . extend ( this , t ), this . _locked =! 1 , this . _state = { DisabledControls :! 0 }, this . lockedContro
e ( window ). on ( "resize" , i . bind ( this . onWindowResize , this ))), this . developerHint . toggleClass ( "hidden" , ! t ); var n = this . $el . find ( "button.btn-category:visible" ), o = n . length > 0 ? e ( n [ n . length - 1 ]) : null ; this . minDevPosition = o ? o . offset (). top - o . offsetParent (). offset (). top + o . height () + 20 : 20 , this . onWindowResize ()}}, onWindowResize : function (){ this . developerHint . css ( "top" , Math . max (( this . $el . height () - this . devHeight ) / 2 , this . minDevPosition ))}, tipComments : "Comments" , tipChat : "Chat" , tipAbout : "About" , tipSupport : "Feedback & Support" , tipFile : "File" , tipSearch : "Search" , tipPlugins : "Plugins" , txtDeveloper : "DEVELOPER MODE" , txtTrial : "TRIAL MODE" }, DE . Views . LeftMenu || {}))}), define ( "documenteditor/main/app/controller/Viewport" ,[ "core" , "common/main/lib/view/Header" , "documenteditor/main/app/view/Viewport" , "documenteditor/main/app/view/LeftMenu" ], function ( t ){ "use strict" ; DE . Controllers . Viewport = Backbone . Controller . extend ({ models : [], collections : [], views : [ "Viewport" , "Common.Views.Header" ], initialize : function (){}, setApi : function ( t ){ this . api = t }, onLaunch : function (){ this . viewport = this . createView ( "Viewport" ). render (), this . header = this . createView ( "Common.Views.Header" ,{ headerCaption : "Document Editor" }). render (), Common . NotificationCenter . on ( "layout:changed" , _ . bind ( this . onLayoutChanged , this )), $ ( window ). on ( "resize" , _ . bind ( this . onWindowResize , this )); var t = $ ( "#left-menu" ), e = $ ( "#left-panel-history" ); this . viewport . hlayout . on ( "layout:resizedrag" , function (){ this . api . Resize (), Common . localStorage . setItem ( "de-mainmenu-width" , e . is ( ":visible" ) ? e . width () + SCALE_MIN : t . width ())}, this ), this . boxSdk = $ ( "#editor_sdk" ), this . boxSdk . css ( "border-left" , "none" )}, onLayoutChanged : function ( t ){ switch ( t ){ default : this . viewport . vlayout . doLayout (); case "rightmenu" : this . viewport . hlayout . doLayout (); break ; case "history" : var e = this . viewport . hlayout . items [ 1 ]; e . resize . el && ( this . boxSdk . css ( "border-left" , "" ), e . resize . el . show ()), this . viewport . hlayout . doLayout (); break ; case "leftmenu" : var e = this . viewport . hlayout . items [ 0 ]; e . resize . el && ( e . el . width () > 40 ? ( this . boxSdk . css ( "border-left" , "" ), e . resize . el . show ()) : ( e . resize . el . hide (), this . boxSdk . css ( "border-left" , "0 none" ))), this . viewport . hlayout . doLayout (); break ; case "header" : case "toolbar" : case "status" : this . viewport . vlayout . doLayout ()} this . api . Resize ()}, onWindowResize : function ( t ){ this . onLayoutChanged ( "window" )}})}), $ ( document ). off ( "keydown.bs.dropdown.data-api" ). on ( "keydown.bs.dropdown.data-api" , "[data-toggle=dropdown], [role=menu]" , onDropDownKeyDown ), function (){ function t ( t ){ 1 != t . which && void 0 != t . which || clearMenus ( /form-control/ . test ( t . target . className ))} var e , i = $ . _data ( $ ( document ). get ( 0 ), "events" ); i && i . click && i . click . every ( function ( t , i , n ){ return /click/ . test ( t . type ) &&! t . selector && /bs\..+\.dropdown/ . test ( t . namespace ) && ( e = t . handler ), ! e }), e && $ ( document ). off ( "click.bs.dropdown.data-api" , e ). on ( "click.bs.dropdown.data-api" , t )}(), define ( "common/main/lib/extend/Bootstrap" , function (){}), void 0 === Common ) var Common = {}; if ( define ( "common/main/lib/component/MenuItem" ,[ "common/main/lib/component/BaseView" , "common/main/lib/component/ToggleManager" ], function (){ "use strict" ; Common . UI . MenuItem = Common . UI . BaseView . extend ({ options : { id : null , cls : "" , style : "" , hint :! 1 , checkable :! 1 , checked :! 1 , allowDepress :! 1 , disabled :! 1 , value : null , toggleGroup : null , iconCls : "" , menu : null , canFocused :! 0 }, tagName : "li" , template : _ . template ([ '<a id="<%= id %>" style="<%= style %>" <% if(options.canFocused) { %> tabindex="-1" type="menuitem" <% }; if(!_.isUndefined(options.stopPropagation)) { %> data-stopPropagation="true" <% }; %> >' , "<% if (!_.isEmpty(iconCls)) { %>" , '<span class="menu-item-icon <%= iconCls %>"></span>' , "<% } %>" , "<%= caption %>" , "</a>" ]. join ( "" )), initialize : function ( t ){ Common . UI . BaseView . prototype . initialize . call ( this , t ); var e = this ; $ ( this . el ); this . id = e . options . id || Common . UI . getId (), this . cls = e . options . cls , this . style = e . options . style , this . caption = e . options . caption , this . menu = e . options . menu || null , this . checkable = e . options . checkable , this . checked = e . options . checked , e . allowDepress = e . options . allowDepress , this . disabled = e . options . disabled , this . value = e . options . value , this . toggleGroup = e . options . toggleGroup , this . template = e . options . tem
this . indeterminate = "indeterminate" === t , this . $chk . toggleClass ( "checked" , this . checked ), this . $chk . toggleClass ( "indeterminate" , this . indeterminate ), this . value = this . indeterminate ? "indeterminate" : this . checked ? "checked" : "unchecked" }, setValue : function ( t , e ){ this . rendered ? ( this . lastValue = this . value , this . setRawValue ( t ), ! 0 !== e && this . lastValue !== t && this . trigger ( "change" , this , this . value , this . lastValue )) : this . options . value = t }, getValue : function (){ return this . value }, isChecked : function (){ return this . checked }, setCaption : function ( t ){ this . $label . find ( "span" ). text ( t )}})}), void 0 === Common ) var Common = {}; var FONT_TYPE_RECENT = 4 ; if ( define ( "common/main/lib/component/ComboBoxFonts" ,[ "common/main/lib/component/ComboBox" ], function (){ "use strict" ; Common . UI . ComboBoxFonts = Common . UI . ComboBox . extend ( function (){ var t = Asc . FONT_THUMBNAIL_HEIGHT || 26 , e = window . devicePixelRatio > 1 , i = document . createElement ( "canvas" ), n = i . getContext ( "2d" ), o = "../../../../sdkjs/common/Images/fonts_thumbnail.png" , s = "../../../../sdkjs/common/Images/fonts_thumbnail@2x.png" ; return "object" == typeof window . AscDesktopEditor && ( o = window . AscDesktopEditor . getFontsSprite (), s = window . AscDesktopEditor . getFontsSprite ( ! 0 )), i . height = e ? 2 * t : t , i . width = e ? 604 : 302 ,{ template : _ . template ([ '<div class="input-group combobox fonts <%= cls %>" id="<%= id %>" style="<%= style %>">' , '<input type="text" class="form-control">' , '<div style="display: table-cell;"></div>' , '<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret img-commonctrl"></span></button>' , '<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">' , '<li class="divider">' , "<% _.each(items, function(item) { %>" , '<li id="<%= item.id %>">' , '<a class="font-item" tabindex="-1" type="menuitem" style="vertical-align:middle; margin: 0 0 0 -10px; height:<%=scope.getListItemHeight()%>px;"/>' , "</li>" , "<% }); %>" , "</ul>" , "</div>" ]. join ( "" )), initialize : function ( t ){ Common . UI . ComboBox . prototype . initialize . call ( this , _ . extend ( t ,{ displayField : "name" , scroller : { wheelSpeed : 20 , alwaysVisibleY :! 0 , onChange : this . updateVisibleFontsTiles . bind ( this )}})), this . recent = _ . isNumber ( t . recent ) ? t . recent : 3 , Common . NotificationCenter . on ( "fonts:change" , _ . bind ( this . onApiChangeFont , this )), Common . NotificationCenter . on ( "fonts:load" , _ . bind ( this . fillFonts , this ))}, render : function ( t ){ var e = null ; return _ . isUndefined ( this . _input ) || ( e = this . _input . val ()), Common . UI . ComboBox . prototype . render . call ( this , t ), this . setRawValue ( e ), this . _input . on ( "keyup" , _ . bind ( this . onInputKeyUp , this )), this . _input . on ( "keydown" , _ . bind ( this . onInputKeyDown , this )), this }, onAfterKeydownMenu : function ( t ){ var e = this ; return t . keyCode == Common . UI . Keys . RETURN ? ( $ ( t . target ). closest ( "input" ). length ? this . lastValue !== this . _input . val () && this . _input . trigger ( "change" ) : ( $ ( t . target ). click (), this . rendered && ( Common . Utils . isIE ? this . _input . trigger ( "change" ,{ onkeydown :! 0 }) : this . _input . blur ())), ! 1 ) : t . keyCode == Common . UI . Keys . ESC && this . isMenuOpen () ? ( this . _input . val ( this . lastValue ), setTimeout ( function (){ e . closeMenu (), e . onAfterHideMenu ( t )}, 10 ), ! 1 ) : ( t . keyCode != Common . UI . Keys . HOME && t . keyCode != Common . UI . Keys . END && t . keyCode != Common . UI . Keys . BACKSPACE ||! this . isMenuOpen () || ( e . _input . focus (), setTimeout ( function (){ e . _input [ 0 ]. selectionStart = e . _input [ 0 ]. selectionEnd = t . keyCode == Common . UI . Keys . HOME ? 0 : e . _input [ 0 ]. value . length }, 10 )), void this . updateVisibleFontsTiles ())}, onInputKeyUp : function ( t ){ if ( t . keyCode != Common . UI . Keys . RETURN && t . keyCode !== Common . UI . Keys . SHIFT && t . keyCode !== Common . UI . Keys . CTRL && t . keyCode !== Common . UI . Keys . ALT && t . keyCode !== Common . UI . Keys . LEFT && t . keyCode !== Common . UI . Keys . RIGHT && t . keyCode !== Common . UI . Keys . HOME && t . keyCode !== Common . UI . Keys . END && t . keyCode !== Common . UI . Keys . ESC && t . keyCode !== Common . UI . Keys . INSERT && t . keyCode !== Common . UI . Keys . TAB && ( t . stopPropagation (), this . selectCandidate ( t . keyCode == Common . UI . Keys . DELETE || t . keyCode == Common . UI . Keys . BACKSPACE ), this . _selectedItem )){ var e = this ; void 0 === e . _timerSelection && ( e . _timerSelection = setInterval ( function (){ if ( ! ( new Date - e . _inInputKeyDown < 100 ) && e . _selectedItem ){ clearInterval ( e . _timerSelection ), e . _timerSelection = void 0 ; var t = e . _input [ 0 ], i = e . _selectedItem
m . setVirtualBorderColor = function ( t ){ var e = new Common . Utils . RGBColor ( t ); if ( ! d . isEqual ( e )){ d = e ; for ( var i = 0 ; i < m . rows ; i ++ ) for ( var n = 0 ; n < m . columns ; n ++ ){ var o = m . getCell ( n , i ); o . setVirtualBorderColor ( d . toHex ())}}}, m . setBordersSize = function ( t , e ){ e = e > m . maxBorderSize ? m . maxBorderSize : e , t . indexOf ( "t" ) >- 1 && ( u . top = e ), t . indexOf ( "r" ) >- 1 && ( u . right = e ), t . indexOf ( "b" ) >- 1 && ( u . bottom = e ), t . indexOf ( "l" ) >- 1 && ( u . left = e ), b ()}, m . setBordersColor = function ( t , e ){ var i = new Common . Utils . RGBColor ( e ); t . indexOf ( "t" ) >- 1 && ( g . top = i ), t . indexOf ( "r" ) >- 1 && ( g . right = i ), t . indexOf ( "b" ) >- 1 && ( g . bottom = i ), t . indexOf ( "l" ) >- 1 && ( g . left = i ), b ()}, m . getBorderSize = function ( t ){ switch ( t ){ case "t" : return u . top ; case "r" : return u . right ; case "b" : return u . bottom ; case "l" : return u . left } return null }, m . getBorderColor = function ( t ){ switch ( t ){ case "t" : return g . top . toHex (); case "r" : return g . right . toHex (); case "b" : return g . bottom . toHex (); case "l" : return g . left . toHex ()} return null }, m . setTableColor = function ( t ){ h . css ( "background-color" , "transparent" == t ? t : "#" + t )}, m . setCellsColor = function ( t ){ p . css ( "background-color" , "transparent" == t ? t : "#" + t )}, m . options . el && m . render ( null ,{ borderSize : u , borderColor : g , virtualBorderSize : c , virtualBorderColor : d })}, render : function ( t ){ var e = this , i = arguments [ 1 ]; if ( this . trigger ( "render:before" , this ), e . rendered ? this . cmpEl = $ ( this . el ) : ( this . cmpEl = $ ( this . template ( _ . extend ({ scope : e }, i ))), t ? ( this . setElement ( t , ! 1 ), this . setElement ( t , ! 1 ), t . html ( this . cmpEl )) : $ ( this . el ). html ( this . cmpEl )), ! e . rendered ){ this . cmpEl ; this . _cells = []; for ( var n = 0 ; n < e . rows ; n ++ ) for ( var o = 0 ; o < e . columns ; o ++ ){ var s = new Common . UI . CellStyler ({ el : $ ( "#" + e . id + "-cell-container-" + o + "-" + n ), overwriteStyle : e . overwriteStyle , halfBorderSize :! e . spacingMode , defaultBorderSize : e . spacingMode ? i . virtualBorderSize : 0 , defaultBorderColor : i . virtualBorderColor . toHex (), id : e . id + "-cell-" + o + "-" + n , col : o , row : n }); this . _cells . push ( s ), s . on ( "borderclick" , function ( t , i , n , o ){ var s , a , r ; if ( "t" == i ){ if ( t . row > 0 ) for ( s = 0 ; s < e . columns ; s ++ ) r = e . getCell ( s , t . row - 1 ), r . setBordersSize ( "b" , n ), r . setBordersColor ( "b" , o ); for ( s = 0 ; s < e . columns ; s ++ ) r = e . getCell ( s , t . row ), t . halfBorderSize && t . row < 1 ? r . setBordersSize ( "t" , 0 ) : r . setBordersSize ( "t" , n ), r . setBordersColor ( "t" , o )} else if ( "b" == i ){ if ( t . row < e . rows - 1 ) for ( s = 0 ; s < e . columns ; s ++ ) r = e . getCell ( s , t . row + 1 ), r . setBordersSize ( "t" , n ), r . setBordersColor ( "t" , o ); for ( s = 0 ; s < e . columns ; s ++ ) r = e . getCell ( s , t . row ), t . halfBorderSize && t . row >= e . rows - 1 ? r . setBordersSize ( "b" , 0 ) : r . setBordersSize ( "b" , n ), r . setBordersColor ( "b" , o )} else if ( "l" == i ){ if ( t . col > 0 ) for ( a = 0 ; a < e . rows ; a ++ ) r = e . getCell ( t . col - 1 , a ), r . setBordersSize ( "r" , n ), r . setBordersColor ( "r" , o ); for ( a = 0 ; a < e . rows ; a ++ ) r = e . getCell ( t . col , a ), t . halfBorderSize && t . col < 1 ? r . setBordersSize ( "l" , 0 ) : r . setBordersSize ( "l" , n ), r . setBordersColor ( "l" , o )} else if ( "r" == i ){ if ( t . col < e . columns - 1 ) for ( a = 0 ; a < e . rows ; a ++ ) r = e . getCell ( t . col + 1 , a ), r . setBordersSize ( "l" , n ), r . setBordersColor ( "l" , o ); for ( a = 0 ; a < e . rows ; a ++ ) r = e . getCell ( t . col , a ), t . halfBorderSize && t . col >= e . columns - 1 ? r . setBordersSize ( "r" , 0 ) : r . setBordersSize ( "r" , n ), r . setBordersColor ( "r" , o )}})}} return e . rendered =! 0 , this . trigger ( "render:after" , this ), this }, getCell : function ( t , e ){ return _ . findWhere ( this . _cells ,{ id : this . id + "-cell-" + t + "-" + e })}})}), define ( "text!common/main/lib/template/ExtendedColorDialog.template" ,[], function (){ return '<div class="color-box">\r\n <div id="id-hsb-colorpicker" style="vertical-align:top;">\r\n </div>\r\n <div class="color-info" style="">\r\n <div style="margin-left:15px;">\r\n <label class="color-label"><%= txtNew %></label>\r\n <div id="field-new-color" class="color-cnt top"></div>\r\n <div id="field-start-color" class="color-cnt bottom"></div>\r\n <label class="color-label"><%= txtCurrent %></label>\r\n </div>\r\n <div style="padding:13px 0 2px 0;">\r\n <label class="input-label">R:</label>\r\n <div id="extended-spin-r" class="color-spin"></div>\r\n </div>\r\n <div style="padding:2px 0;">\r\n <label class="input-label">G:</label>\r\n <div id="extended-spin-g" class="color-spin"></div>\r\n </div>\r\n <div style="padding:2px 0;">\r\n
template:_.template(' < div id = "drop-advanced-border-color-menu" style = "width: 169px; height: 220px; margin: 10px;" >< /div>')},{template:_.template('<a id="drop-advanced-border-color-new" style="padding-left:12px;">'+t.textNewColor+"</a>")}]})}),this.btnBorderColor.on("render:after",function(e){t.colorsBorder=new Common.UI.ThemeColorPalette({el:$("#drop-advanced-border-color-menu")}).on("select",_.bind(function(e,i){t.btnBorderColor.setColor(i),t.tableStyler.setVirtualBorderColor("object"==typeof i?i.color:i)},t))}),this.btnBorderColor.render($("#drop-advanced-button-bordercolor")),this.btnBorderColor.setColor("000000"),this.btnBorderColor.menu.cmpEl.on("click","#drop-advanced-border-color-new",_.bind(function(){t.colorsBorder.addNewColor("object"==typeof t.btnBorderColor.color?t.btnBorderColor.color.color:t.btnBorderColor.color)},t)),this.btnBackColor=new Common.UI.ColorButton({style:"width:45px;",menu:new Common.UI.Menu({items:[{template:_.template('<div id="drop-advanced-back-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>')},{template:_.template('<a id="drop-advanced-back-color-new" style="padding-left:12px;">'+t.textNewColor+"</a>")}]})}),this.btnBackColor.on("render:after",function(e){t.colorsBack=new Common.UI.ThemeColorPalette({el:$("#drop-advanced-back-color-menu"),transparent:!0}).on("select",_.bind(function(e,i){t.btnBackColor.setColor(i),t.paragraphShade=i,t._changedProps&&(void 0!==t._changedProps.get_Shade()&&null!==t._changedProps.get_Shade()||t._changedProps.put_Shade(new Asc.asc_CParagraphShd),"transparent"==i?t._changedProps.get_Shade().put_Value(Asc.c_oAscShdNil):(t._changedProps.get_Shade().put_Value(Asc.c_oAscShdClear),t._changedProps.get_Shade().put_Color(Common.Utils.ThemeColor.getRgbColor(i))));var n="object"==typeof i?i.color:i;t.tableStyler.setCellsColor(n)},t))}),this.btnBackColor.render($("#drop-advanced-button-color")),this.btnBackColor.menu.cmpEl.on("click","#drop-advanced-back-color-new",_.bind(function(){t.colorsBack.addNewColor()},t)),this.spnMarginTop=new Common.UI.MetricSpinner({el:$("#drop-advanced-input-top"),step:.1,width:100,value:"0 cm",defaultUnit:"cm",maxValue:55.87,minValue:0}).on("change",_.bind(function(t,e,i){this._noApply||(_.isUndefined(this.Margins)&&(this.Margins={}),this.Margins.Top=Common.Utils.Metric.fnRecalcToMM(t.getNumberValue()))},t)),this.spnMarginLeft=new Common.UI.MetricSpinner({el:$("#drop-advanced-input-left"),step:.1,width:100,value:"0 cm",defaultUnit:"cm",maxValue:55.87,minValue:0}).on("change",_.bind(function(t,e,i){this._noApply||(_.isUndefined(this.Margins)&&(this.Margins={}),this.Margins.Left=Common.Utils.Metric.fnRecalcToMM(t.getNumberValue()))},t)),this.spnMarginBottom=new Common.UI.MetricSpinner({el:$("#drop-advanced-input-bottom"),step:.1,width:100,value:"0 cm",defaultUnit:"cm",maxValue:55.87,minValue:0}).on("change",_.bind(function(t,e,i){this._noApply||(_.isUndefined(this.Margins)&&(this.Margins={}),this.Margins.Bottom=Common.Utils.Metric.fnRecalcToMM(t.getNumberValue()))},t)),this.spnMarginRight=new Common.UI.MetricSpinner({el:$("#drop-advanced-input-right"),step:.1,width:100,value:"0 cm",defaultUnit:"cm",maxValue:55.87,minValue:0}).on("change",_.bind(function(t,e,i){this._noApply||(_.isUndefined(this.Margins)&&(this.Margins={}),this.Margins.Right=Common.Utils.Metric.fnRecalcToMM(t.getNumberValue()))},t)),this.btnNone=new Common.UI.Button({cls:"btn x-huge btn-options",iconCls:"icon-advanced-wrap btn-drop-none",enableToggle:!0,toggleGroup:"dropAdvGroup",allowDepress:!1,hint:this.textNone}).on("toggle",_.bind(function(e,i){t._changedProps&&i&&(t._DisableElem(Asc.c_oAscDropCap.None),t._changedProps.put_DropCap(Asc.c_oAscDropCap.None))},t)),this.btnInText=new Common.UI.Button({cls:"btn x-huge btn-options",iconCls:"icon-advanced-wrap btn-drop-text",enableToggle:!0,toggleGroup:"dropAdvGroup",allowDepress:!1,hint:this.textInText}).on("toggle",_.bind(function(e,i){t._changedProps&&i&&(t._DisableElem(Asc.c_oAscDropCap.Drop),t._changedProps.put_DropCap(Asc.c_oAscDropCap.Drop))},t)),this.btnInMargin=new Common.UI.Button({cls:"btn x-huge b
validateOnBlur :! 0 , disabled :! 1 }, template : _ . template ([ '<div class="input-field" style="<%= style %>">' , "<input " , 'type="<%= type %>" ' , 'name="<%= name %>" ' , 'spellcheck="<%= spellcheck %>" ' , 'class="form-control <%= cls %>" ' , 'placeholder="<%= placeHolder %>" ' , 'value="<%= value %>"' , ">" , '<span class="input-error"/>' , "</div>" ]. join ( "" )), initialize : function ( t ){ Common . UI . BaseView . prototype . initialize . call ( this , t ); var e = this ; $ ( this . el ); this . id = e . options . id || Common . UI . getId (), this . cls = e . options . cls , this . style = e . options . style , this . value = e . options . value , this . type = e . options . type , this . name = e . options . name , this . validation = e . options . validation , this . allowBlank = e . options . allowBlank , this . placeHolder = e . options . placeHolder , this . template = e . options . template || e . template , this . editable = e . options . editable ||! 0 , this . disabled = e . options . disabled , this . spellcheck = e . options . spellcheck , this . blankError = e . options . blankError || "This field is required" , this . validateOnChange = e . options . validateOnChange , this . validateOnBlur = e . options . validateOnBlur , this . maxLength = e . options . maxLength , e . rendered = e . options . rendered ||! 1 , e . options . el && e . render ()}, render : function ( t ){ var e = this ; if ( e . rendered ? this . cmpEl = $ ( this . el ) : ( this . cmpEl = $ ( this . template ({ id : this . id , cls : this . cls , style : this . style , value : this . value , type : this . type , name : this . name , placeHolder : this . placeHolder , spellcheck : this . spellcheck , scope : e })), t ? ( this . setElement ( t , ! 1 ), t . html ( this . cmpEl )) : $ ( this . el ). html ( this . cmpEl )), ! e . rendered ){ var i = this . cmpEl ; if ( this . _input = this . cmpEl . find ( "input" ). addBack (). filter ( "input" ), this . editable && ( this . _input . on ( "blur" , _ . bind ( this . onInputChanged , this )), this . _input . on ( "keypress" , _ . bind ( this . onKeyPress , this )), this . _input . on ( "keyup" , _ . bind ( this . onKeyUp , this )), this . validateOnChange && this . _input . on ( "input" , _ . bind ( this . onInputChanging , this )), this . maxLength && this . _input . attr ( "maxlength" , this . maxLength )), this . setEditable ( this . editable ), this . disabled && this . setDisabled ( this . disabled ), this . _input . closest ( ".asc-window" ). length > 0 ) var n = function (){ var t = i . find ( ".input-error" ). data ( "bs.tooltip" ); t && t . tip (). remove (), Common . NotificationCenter . off ({ "modal:close" : n })}; Common . NotificationCenter . on ({ "modal:close" : n })} return e . rendered =! 0 , this }, _doChange : function ( t , e ){ if ( ! e ||! e . synthetic ){ var i = $ ( t . target ). val (), n = this . value ; this . trigger ( "changed:before" , this , i , n , t ), t . isDefaultPrevented () || ( this . value = i , this . validateOnBlur && this . checkValidate (), this . trigger ( "changed:after" , this , i , n , t ))}}, onInputChanged : function ( t , e ){ this . _doChange ( t , e )}, onInputChanging : function ( t , e ){ var i = $ ( t . target ). val (), n = this . value ; t . isDefaultPrevented () || ( this . value = i , this . validateOnBlur && this . checkValidate (), this . trigger ( "changing" , this , i , n , t ))}, onKeyPress : function ( t ){ if ( this . trigger ( "keypress:before" , this , t ), ! t . isDefaultPrevented ()){ if ( t . keyCode === Common . UI . Keys . RETURN ) this . _doChange ( t ); else if ( this . options . maskExp &&! _ . isEmpty ( this . options . maskExp . source )){ var e = String . fromCharCode ( t . which ); this . options . maskExp . test ( e ) || t . ctrlKey || t . keyCode === Common . UI . Keys . DELETE || t . keyCode === Common . UI . Keys . BACKSPACE || t . keyCode === Common . UI . Keys . LEFT || t . keyCode === Common . UI . Keys . RIGHT || t . keyCode === Common . UI . Keys . HOME || t . keyCode === Common . UI . Keys . END || t . keyCode === Common . UI . Keys . ESC || t . keyCode === Common . UI . Keys . INSERT || ( t . preventDefault (), t . stopPropagation ())} this . trigger ( "keypress:after" , this , t )}}, onKeyUp : function ( t ){ this . trigger ( "keyup:before" , this , t ), t . isDefaultPrevented () || this . trigger ( "keyup:after" , this , t )}, setEditable : function ( t ){ var e = this . _input ; this . editable = t , t && e ? ( e . removeAttr ( "readonly" ), e . removeAttr ( "data-can-copy" )) : ( e . attr ( "readonly" , "readonly" ), e . attr ( "data-can-copy" , ! 1 ))}, isEditable : function (){ return this . editable }, setDisabled : function ( t ){ this . disabled = t , $ ( this . el ). toggleClass ( "disabled" , t ), t ? this . _input . attr ( "disabled" , ! 0 ) : this . _input . removeAttr ( "disabled" )}, isDisabled : function (){ return this . disabled }, setValue : function ( t ){ this . value = t , this . rendered && this . _input . val ( t )}, getValue : function (){ return this . value }, focus : function (){ this . _input . focus ()}, checkValidate : function (){ var t = this , e = []; if ( ! t . allowBlank && _ . isEmpty ( t . value ) && e . push ( t . blankErro
if ( this . _changedProps && this . _changedProps . put_Position ( Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ())), this . api &&! this . _noApply ){ var o = this . _originalProps ? this . _originalProps : new Asc . asc_CParagraphProperty ; o . put_Position ( Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ())), this . api . SetDrawImagePlaceParagraph ( "paragraphadv-font-img" , o )}}, this )), this . spinners . push ( this . numPosition ), this . numTab = new Common . UI . MetricSpinner ({ el : $ ( "#paraadv-spin-tab" ), step : . 1 , width : 180 , defaultUnit : "cm" , value : "1.25 cm" , maxValue : 55.87 , minValue : 0 }), this . spinners . push ( this . numTab ), this . numDefaultTab = new Common . UI . MetricSpinner ({ el : $ ( "#paraadv-spin-default-tab" ), step : . 1 , width : 107 , defaultUnit : "cm" , value : "1.25 cm" , maxValue : 55.87 , minValue : 0 }), this . numDefaultTab . on ( "change" , _ . bind ( function ( t , e , i , n ){ this . _changedProps && this . _changedProps . put_DefaultTab ( parseFloat ( Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ()). toFixed ( 1 )))}, this )), this . spinners . push ( this . numDefaultTab ), this . tabList = new Common . UI . ListView ({ el : $ ( "#paraadv-list-tabs" ), emptyText : this . noTabs , store : new Common . UI . DataViewStore }), this . tabList . store . comparator = function ( t ){ return t . get ( "tabPos" )}, this . tabList . on ( "item:select" , _ . bind ( this . onSelectTab , this )); var n = function (){ t . _noApply || ( t . _tabListChanged =! 0 )}; this . listenTo ( this . tabList . store , "add" , n ), this . listenTo ( this . tabList . store , "remove" , n ), this . listenTo ( this . tabList . store , "reset" , n ), this . radioLeft = new Common . UI . RadioBox ({ el : $ ( "#paragraphadv-radio-left" ), labelText : this . textTabLeft , name : "asc-radio-tab" , checked :! 0 }), this . radioCenter = new Common . UI . RadioBox ({ el : $ ( "#paragraphadv-radio-center" ), labelText : this . textTabCenter , name : "asc-radio-tab" }), this . radioRight = new Common . UI . RadioBox ({ el : $ ( "#paragraphadv-radio-right" ), labelText : this . textTabRight , name : "asc-radio-tab" }), this . btnAddTab = new Common . UI . Button ({ el : $ ( "#paraadv-button-add-tab" )}), this . btnAddTab . on ( "click" , _ . bind ( this . addTab , this )), this . btnRemoveTab = new Common . UI . Button ({ el : $ ( "#paraadv-button-remove-tab" )}), this . btnRemoveTab . on ( "click" , _ . bind ( this . removeTab , this )), this . btnRemoveAll = new Common . UI . Button ({ el : $ ( "#paraadv-button-remove-all" )}), this . btnRemoveAll . on ( "click" , _ . bind ( this . removeAllTabs , this )), this . spnMarginTop = new Common . UI . MetricSpinner ({ el : $ ( "#paraadv-number-margin-top" ), step : . 1 , width : 100 , defaultUnit : "cm" , value : "0 cm" , maxValue : 55.87 , minValue : 0 }), this . spnMarginTop . on ( "change" , _ . bind ( function ( t , e , i , n ){ this . _noApply || ( void 0 === this . Margins && ( this . Margins = {}), this . Margins . Top = Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ()))}, this )), this . spinners . push ( this . spnMarginTop ), this . spnMarginBottom = new Common . UI . MetricSpinner ({ el : $ ( "#paraadv-number-margin-bottom" ), step : . 1 , width : 100 , defaultUnit : "cm" , value : "0 cm" , maxValue : 55.87 , minValue : 0 }), this . spnMarginBottom . on ( "change" , _ . bind ( function ( t , e , i , n ){ this . _noApply || ( void 0 === this . Margins && ( this . Margins = {}), this . Margins . Bottom = Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ()))}, this )), this . spinners . push ( this . spnMarginBottom ), this . spnMarginLeft = new Common . UI . MetricSpinner ({ el : $ ( "#paraadv-number-margin-left" ), step : . 1 , width : 100 , defaultUnit : "cm" , value : "0.19 cm" , maxValue : 9.34 , minValue : 0 }), this . spnMarginLeft . on ( "change" , _ . bind ( function ( t , e , i , n ){ this . _noApply || ( void 0 === this . Margins && ( this . Margins = {}), this . Margins . Left = Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ()))}, this )), this . spinners . push ( this . spnMarginLeft ), this . spnMarginRight = new Common . UI . MetricSpinner ({ el : $ ( "#paraadv-number-margin-right" ), step : . 1 , width : 100 , defaultUnit : "cm" , value : "0.19 cm" , maxValue : 9.34 , minValue : 0 }), this . spnMarginRight . on ( "change" , _ . bind ( function ( t , e , i , n ){ this . _noApply || ( void 0 === this . Margins && ( this . Margins = {}), this . Margins . Right = Common . Utils . Metric . fnRecalcToMM ( t . getNumberValue ()))}, this )), this . spinners . push ( this . spnMarginRight ), this . TextOnlySettings = $ ( ".text-only" ), this . afterRender ()}, getSettings : function (){ if ( null === this . ChangedBorders ? this . _changedProps . put_Borders ( this . Borders ) : void 0 !== this . ChangedBorders && this . _changedProps . put_Borders ( this . ChangedBorders ), this . Margins ){ var t = this . _changedProps . get_Borders (); void 0 !== t && null !== t || ( this . _changedProps . p
2019-01-07 12:02:38 +01:00
return '<div id="id-adv-table-width" class="settings-panel active">\r\n <div class="inner-content">\r\n <table cols="3">\r\n <tr>\r\n <td colspan="3" class="padding-small">\r\n <label class="header"><%= scope.textTableSize %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="vertical-align: bottom; padding-bottom: 11px;">\r\n <div id="tableadv-checkbox-width"></div>\r\n </td>\r\n <td class="padding-small">\r\n <label class="input-label"><%= scope.textWidth %></label>\r\n <div id="tableadv-number-width" style="margin-right: 10px;"></div>\r\n </td>\r\n <td class="padding-small">\r\n <label class="input-label"><%= scope.textMeasure %></label>\r\n <div id="tableadv-cmb-unit" style="width: 115px;"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan="3" class="padding-large">\r\n <div id="tableadv-checkbox-autofit"></div>\r\n </td>\r\n </tr>\r\n </table>\r\n <div class="padding-small"></div>\r\n <table cols="2" style="width: 100%;">\r\n <tr>\r\n <td colspan=2 class="padding-small">\r\n <label class="header"><%= scope.textDefaultMargins %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" width="125px">\r\n <label class="input-label"><%= scope.textTop %></label>\r\n <div id="tableadv-number-margin-table-top"></div>\r\n </td>\r\n <td class="padding-small">\r\n <label class="input-label"><%= scope.textLeft %></label>\r\n <div id="tableadv-number-margin-table-left"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-large">\r\n <label class="input-label"><%= scope.textBottom %></label>\r\n <div id="tableadv-number-margin-table-bottom"></div>\r\n </td>\r\n <td class="padding-large">\r\n <label class="input-label"><%= scope.textRight %></label>\r\n <div id="tableadv-number-margin-table-right"></div>\r\n </td>\r\n </tr>\r\n </table>\r\n <div class="padding-small"></div>\r\n <table cols="2">\r\n <tr>\r\n <td colspan="2" class="padding-small">\r\n <label class="header"><%= scope.textOptions %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="vertical-align: bottom; padding-bottom: 19px;">\r\n <div id="tableadv-checkbox-spacing"></div>\r\n </td>\r\n <td class="padding-large">\r\n <label class="input-label"><%= scope.textAllowSpacing %></label>\r\n <div id="tableadv-number-spacing"></div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class="inner-content">\r\n </div>\r\n</div>\r\n<div id="id-adv-table-cell-props" class="settings-panel">\r\n <div class="inner-content">\r\n <table cols="3">\r\n <tr>\r\n <td colspan="3" class="padding-small">\r\n <label class="header"><%= scope.textCellSize %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="vertical-align: bottom; padding-bottom: 19px;">\r\n <div id="tableadv-checkbox-prefwidth"></div>\r\n </td>\r\n <td class="padding-large">\r\n <label class="input-label"><%= scope.textPrefWidth %></label>\r\n <div id="tableadv-number-prefwidth" style="margin-right: 10px;"></div>\r\
cls:"btn-options huge",iconCls:"icon-right-panel btn-wrap-parallel",posId:c_tableWrap.TABLE_WRAP_PARALLEL,hint:this.textWrapParallelTooltip,enableToggle:!0,allowDepress:!1,toggleGroup:"advtablewrapGroup"}),this.btnWrapParallel.render($("#tableadv-button-wrap-parallel")),this.btnWrapParallel.on("click",_.bind(this.onBtnFlowWrapClick,this)),this.btnAlignLeft=new Common.UI.Button({cls:"btn-options huge",iconCls:"icon-right-panel btn-table-align-left",posId:c_tableAlign.TABLE_ALIGN_LEFT,hint:this.textLeftTooltip,enableToggle:!0,allowDepress:!1,toggleGroup:"advtablealignGroup"}),this.btnAlignLeft.render($("#tableadv-button-align-left")),this.btnAlignLeft.on("click",_.bind(function(t){this._changedProps&&t.pressed&&(this._changedProps.put_TableAlignment(t.options.posId),this._changedProps.put_TableIndent(Common.Utils.Metric.fnRecalcToMM(this.spnIndentLeft.getNumberValue())),this.spnIndentLeft.setDisabled(!t.pressed),this._state.alignChanged=!0)},this)),this.btnAlignCenter=new Common.UI.Button({cls:"btn-options huge",iconCls:"icon-right-panel btn-table-align-center",posId:c_tableAlign.TABLE_ALIGN_CENTER,hint:this.textCenterTooltip,enableToggle:!0,allowDepress:!1,toggleGroup:"advtablealignGroup"}),this.btnAlignCenter.render($("#tableadv-button-align-center")),this.btnAlignCenter.on("click",_.bind(function(t){this._changedProps&&t.pressed&&(this._changedProps.put_TableAlignment(t.options.posId),this._changedProps.put_TableIndent(0),this.spnIndentLeft.setDisabled(t.pressed),this._state.alignChanged=!0)},this)),this.btnAlignRight=new Common.UI.Button({cls:"btn-options huge",iconCls:"icon-right-panel btn-table-align-right",posId:c_tableAlign.TABLE_ALIGN_RIGHT,hint:this.textRightTooltip,enableToggle:!0,allowDepress:!1,toggleGroup:"advtablealignGroup"}),this.btnAlignRight.render($("#tableadv-button-align-right")),this.btnAlignRight.on("click",_.bind(function(t){this._changedProps&&t.pressed&&(this._changedProps.put_TableAlignment(t.options.posId),this._changedProps.put_TableIndent(0),this.spnIndentLeft.setDisabled(t.pressed),this._state.alignChanged=!0)},this)),this.spnIndentLeft=new Common.UI.MetricSpinner({el:$("#tableadv-number-indent"),step:.1,width:85,defaultUnit:"cm",defaultValue:0,value:"0 cm",maxValue:38.09,minValue:-38.09}),this.spnIndentLeft.on("change",_.bind(function(t,e,i,n){this._changedProps&&this._changedProps.put_TableIndent(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue()))},this)),this.spinners.push(this.spnIndentLeft),this.spnDistanceTop=new Common.UI.MetricSpinner({el:$("#tableadv-number-distance-top"),step:.1,width:85,defaultUnit:"cm",value:"1 cm",maxValue:55.87,minValue:0}),this.spnDistanceTop.on("change",_.bind(function(t,e,i,n){this._changedProps&&(void 0===this._changedProps.get_TablePaddings()&&this._changedProps.put_TablePaddings(new Asc.asc_CPaddings),this._changedProps.get_TablePaddings().put_Top(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue())))},this)),this.spinners.push(this.spnDistanceTop),this.spnDistanceBottom=new Common.UI.MetricSpinner({el:$("#tableadv-number-distance-bottom"),step:.1,width:85,defaultUnit:"cm",value:"1 cm",maxValue:55.87,minValue:0}),this.spnDistanceBottom.on("change",_.bind(function(t,e,i,n){this._changedProps&&(void 0===this._changedProps.get_TablePaddings()&&this._changedProps.put_TablePaddings(new Asc.asc_CPaddings),this._changedProps.get_TablePaddings().put_Bottom(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue())))},this)),this.spinners.push(this.spnDistanceBottom),this.spnDistanceLeft=new Common.UI.MetricSpinner({el:$("#tableadv-number-distance-left"),step:.1,width:85,defaultUnit:"cm",value:"1 cm",maxValue:9.34,minValue:0}),this.spnDistanceLeft.on("change",_.bind(function(t,e,i,n){this._changedProps&&(void 0===this._changedProps.get_TablePaddings()&&this._changedProps.put_TablePaddings(new Asc.asc_CPaddings),this._changedProps.get_TablePaddings().put_Left(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue())))},this)),this.spinners.push(this.spnDistanceLeft),this.spnDistanceRight=new Common.UI.MetricSpinner({el:$("#tableadv-number-distance-right"),step:.1,width:85,
2019-01-15 14:28:49 +01:00
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HPositionFrom),!this._state.spnXChanged){var i=this._originalProps.get_Value_X(this._state.HPositionFrom);this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(i),!0)}this._changedProps.get_PositionH().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnX.getNumberValue()))}},onVAlignSelect:function(t,e){this._changedProps&&(null!==this._changedProps.get_PositionV()&&void 0!==this._changedProps.get_PositionV()||this._changedProps.put_PositionV(new Asc.CTablePositionV),this._state.VAlignType=e.value,this._changedProps.get_PositionV().put_UseAlign(!0),this._changedProps.get_PositionV().put_RelativeFrom(this._state.VAlignFrom),this._changedProps.get_PositionV().put_Align(this._state.VAlignType))},onVRelativeSelect:function(t,e){this._changedProps&&(null!==this._changedProps.get_PositionV()&&void 0!==this._changedProps.get_PositionV()||this._changedProps.put_PositionV(new Asc.CTablePositionV),this._state.VAlignFrom=e.value,this._changedProps.get_PositionV().put_UseAlign(!0),this._changedProps.get_PositionV().put_RelativeFrom(this._state.VAlignFrom),this._changedProps.get_PositionV().put_Align(this._state.VAlignType),this.chMove.setValue(this._state.VAlignFrom==Asc.c_oAscVAnchor.Text,!0))},onVPositionSelect:function(t,e){if(this._changedProps){if(null!==this._changedProps.get_PositionV()&&void 0!==this._changedProps.get_PositionV()||this._changedProps.put_PositionV(new Asc.CTablePositionV),this._state.VPositionFrom=e.value,this._changedProps.get_PositionV().put_UseAlign(!1),this._changedProps.get_PositionV().put_RelativeFrom(this._state.VPositionFrom),!this._state.spnYChanged){var i=this._originalProps.get_Value_Y(this._state.VPositionFrom);this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(i),!0)}this._changedProps.get_PositionV().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnY.getNumberValue())),this.chMove.setValue(this._state.VPositionFrom==Asc.c_oAscVAnchor.Text,!0)}},onRadioHAlignChange:function(t,e,i){this._changedProps&&(null!==this._changedProps.get_PositionH()&&void 0!==this._changedProps.get_PositionH()||this._changedProps.put_PositionH(new Asc.CTablePositionH),this._changedProps.get_PositionH().put_UseAlign(e),e&&(this._changedProps.get_PositionH().put_Align(this._state.HAlignType),this._changedProps.get_PositionH().put_RelativeFrom(this._state.HAlignFrom))),e&&(this.cmbHAlign.setDisabled(!1),this.cmbHRelative.setDisabled(!1),this.spnX.setDisabled(!0),this.cmbHPosition.setDisabled(!0),this._state.horizontalPropChanged=!0,this._state.alignChanged=!0)},onRadioHPositionChange:function(t,e,i){if(this._changedProps&&(null!==this._changedProps.get_PositionH()&&void 0!==this._changedProps.get_PositionH()||this._changedProps.put_PositionH(new Asc.CTablePositionH),this._changedProps.get_PositionH().put_UseAlign(!e),e)){if(!this._state.spnXChanged){var n=this._originalProps.get_Value_X(this._state.HPositionFrom);this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(n))}this._changedProps.get_PositionH().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnX.getNumberValue())),this._changedProps.get_PositionH().put_RelativeFrom(this._state.HPositionFrom)}e&&(this.cmbHAlign.setDisabled(!0),this.cmbHRelative.setDisabled(!0),this.spnX.setDisabled(!1),this.cmbHPosition.setDisabled(!1),this._state.alignChanged=!1)},onRadioVAlignChange:function(t,e,i){this._changedProps&&(null!==this._changedProps.get_PositionV()&&void 0!==this._changedProps.get_PositionV()||this._changedProps.put_PositionV(new Asc.CTablePositionV),this._changedProps.get_PositionV().put_UseAlign(e),e&&(this._changedProps.get_PositionV().put_Align(this._state.VAlignType),this._changedProps.get_PositionV().put_RelativeFrom(this._state.VAlignFrom),this._state.verticalPropChanged=!0)),e&&(this.cmbVAlign.setDisabled(!1),this.cmbVRelative.setDisabled(!1),this.spnY.setDisabled(!0),this.cmbVPosition.setDisabled(!0),this.chMove.setValue(this._state.VAlignFrom==Asc.c_oAscVAnchor.Text,!0))},onRadioVPositionChange:function(t,e,i){if(this._changedProps&&(null!==this._changedProps.get_PositionV()&&void 0!==th
t&&!1===t.get_Checked()&&null!==t.get_Variants()&&void 0!==t.get_Variants()&&(i.addWordVariants(),i.textMenu.isVisible()&&i.textMenu.alignPosition())};this.addWordVariants=function(t){e.isUndefined(t)&&(t=i.textMenu.isVisible()),i.clearWordVariants(t);var n=t?i.menuSpellMorePara:i.menuSpellMoreTable,o=t?i.menuSpellPara:i.menuSpellTable,s=[],a=[],r=i._currentSpellObj.get_Variants();r.length>0?(n.setVisible(r.length>3),n.setDisabled(i._currentParaObjDisabled),e.each(r,function(t,e){var n=new Common.UI.MenuItem({caption:t,spellword:!0,disabled:i._currentParaObjDisabled}).on("click",function(t,e){i.api&&(i.api.asc_replaceMisspelledWord(t.caption,i._currentSpellObj),i.fireEvent("editcomplete",i))});e<3?s.push(n):a.push(n)}),s.length>0&&(t?e.each(s,function(t){i.textMenu.insertItem(0,t)}):e.each(s,function(t){i.menuSpellCheckTable.menu.insertItem(0,t)})),a.length>0&&e.each(a,function(t){n.menu.insertItem(0,t)}),o.setVisible(!1)):(n.setVisible(!1),o.setVisible(!0),o.setCaption(i.noSpellVariantsText,!0))},this.clearWordVariants=function(t){for(var e=t?i.textMenu:i.menuSpellCheckTable.menu,n=0;n<e.items.length;n++)e.items[n].options.spellword&&(e.checkeditem==e.items[n]&&(e.checkeditem=void 0,e.activeItem=void 0),e.removeItem(e.items[n]),n--);t?i.menuSpellMorePara.menu.removeAll():i.menuSpellMoreTable.menu.removeAll(),i.menuSpellMorePara.menu.checkeditem=void 0,i.menuSpellMorePara.menu.activeItem=void 0,i.menuSpellMoreTable.menu.checkeditem=void 0,i.menuSpellMoreTable.menu.activeItem=void 0},this.initEquationMenu=function(){if(i._currentMathObj){var t,e=i._currentMathObj.get_Type(),n=i._currentMathObj,o=[];switch(e){case Asc.c_oAscMathInterfaceType.Accent:t=new Common.UI.MenuItem({caption:i.txtRemoveAccentChar,equation:!0,disabled:i._currentParaObjDisabled,equationProps:{type:e,callback:"remove_AccentCharacter"}}),o.push(t);break;case Asc.c_oAscMathInterfaceType.BorderBox:t=new Common.UI.MenuItem({caption:i.txtBorderProps,equation:!0,disabled:i._currentParaObjDisabled,menu:new Common.UI.Menu({menuAlign:"tl-tr",items:[{caption:n.get_HideTop()?i.txtAddTop:i.txtHideTop,equationProps:{type:e,callback:"put_HideTop",value:!n.get_HideTop()}},{caption:n.get_HideBottom()?i.txtAddBottom:i.txtHideBottom,equationProps:{type:e,callback:"put_HideBottom",value:!n.get_HideBottom()}},{caption:n.get_HideLeft()?i.txtAddLeft:i.txtHideLeft,equationProps:{type:e,callback:"put_HideLeft",value:!n.get_HideLeft()}},{caption:n.get_HideRight()?i.txtAddRight:i.txtHideRight,equationProps:{type:e,callback:"put_HideRight",value:!n.get_HideRight()}},{caption:n.get_HideHor()?i.txtAddHor:i.txtHideHor,equationProps:{type:e,callback:"put_HideHor",value:!n.get_HideHor()}},{caption:n.get_HideVer()?i.txtAddVer:i.txtHideVer,equationProps:{type:e,callback:"put_HideVer",value:!n.get_HideVer()}},{caption:n.get_HideTopLTR()?i.txtAddLT:i.txtHideLT,equationProps:{type:e,callback:"put_HideTopLTR",value:!n.get_HideTopLTR()}},{caption:n.get_HideTopRTL()?i.txtAddLB:i.txtHideLB,equationProps:{type:e,callback:"put_HideTopRTL",value:!n.get_HideTopRTL()}}]})}),o.push(t);break;case Asc.c_oAscMathInterfaceType.Bar:t=new Common.UI.MenuItem({caption:i.txtRemoveBar,equation:!0,disabled:i._currentParaObjDisabled,equationProps:{type:e,callback:"remove_Bar"}}),o.push(t),t=new Common.UI.MenuItem({caption:n.get_Pos()==Asc.c_oAscMathInterfaceBarPos.Top?i.txtUnderbar:i.txtOverbar,equation:!0,disabled:i._currentParaObjDisabled,equationProps:{type:e,callback:"put_Pos",value:n.get_Pos()==Asc.c_oAscMathInterfaceBarPos.Top?Asc.c_oAscMathInterfaceBarPos.Bottom:Asc.c_oAscMathInterfaceBarPos.Top}}),o.push(t);break;case Asc.c_oAscMathInterfaceType.Script:var s=n.get_ScriptType();s==Asc.c_oAscMathInterfaceScript.PreSubSup?(t=new Common.UI.MenuItem({caption:i.txtScriptsAfter,equation:!0,disabled:i._currentParaObjDisabled,equationProps:{type:e,callback:"put_ScriptType",value:Asc.c_oAscMathInterfaceScript.SubSup}}),o.push(t),t=new Common.UI.MenuItem({caption:i.txtRemScripts,equation:!0,disabled:i._currentParaObjDisabled,equationProps:{type:e,callback:"put_ScriptType",value:Asc.c_oAscMathInterfaceScript.None
height:l.get_ImageHeight()});var c=i.api.GetSectionInfo();c={width:c.get_PageWidth()-(c.get_MarginLeft()+c.get_MarginRight()),height:c.get_PageHeight()-(c.get_MarginTop()+c.get_MarginBottom())};var d=new DE.Views.ImageSettingsAdvanced({imageProps:s,sizeOriginal:l,sizeMax:c,sectionProps:i.api.asc_GetSectionProps(),handler:function(t,e){"ok"==t&&i.api&&i.api.ImgApply(e.imageProps),i.fireEvent("editcomplete",i)}});d.show(),d.btnOriginalSize.setVisible(i.menuOriginalSize.isVisible());break}}}),c=new Common.UI.MenuItem({caption:i.editChartText}).on("click",e.bind(i.editChartClick,i));this.menuOriginalSize=new Common.UI.MenuItem({caption:i.originalSizeText}).on("click",function(t,e){if(i.api){var n=i.api.get_OriginalSizeImage(),o=new Asc.asc_CImgProperty;o.put_Width(n.get_ImageWidth()),o.put_Height(n.get_ImageHeight()),i.api.ImgApply(o),i.fireEvent("editcomplete",this)}});var d=new Common.UI.MenuItem({caption:i.textCopy,value:"copy"}).on("click",e.bind(i.onCutCopyPaste,i)),h=new Common.UI.MenuItem({caption:i.textPaste,value:"paste"}).on("click",e.bind(i.onCutCopyPaste,i)),p=new Common.UI.MenuItem({caption:i.textCut,value:"cut"}).on("click",e.bind(i.onCutCopyPaste,i));this.pictureMenu=new Common.UI.Menu({initMenu:function(t){if(!e.isUndefined(t.imgProps)){var m=!t.imgProps.value.get_CanBeFlow(),u=t.imgProps.value.get_WrappingStyle();if(i.menuImageWrap._originalProps=t.imgProps.value,m)for(var g=0;g<6;g++)i.menuImageWrap.menu.items[g].setChecked(!1);else switch(u){case Asc.c_oAscWrapStyle2.Inline:i.menuImageWrap.menu.items[0].setChecked(!0);break;case Asc.c_oAscWrapStyle2.Square:i.menuImageWrap.menu.items[1].setChecked(!0);break;case Asc.c_oAscWrapStyle2.Tight:i.menuImageWrap.menu.items[2].setChecked(!0);break;case Asc.c_oAscWrapStyle2.Through:i.menuImageWrap.menu.items[3].setChecked(!0);break;case Asc.c_oAscWrapStyle2.TopAndBottom:i.menuImageWrap.menu.items[4].setChecked(!0);break;case Asc.c_oAscWrapStyle2.Behind:i.menuImageWrap.menu.items[6].setChecked(!0);break;case Asc.c_oAscWrapStyle2.InFront:i.menuImageWrap.menu.items[5].setChecked(!0);break;default:for(var g=0;g<6;g++)i.menuImageWrap.menu.items[g].setChecked(!1)}e.each(i.menuImageWrap.menu.items,function(t){t.setDisabled(m)});var b=t.imgProps.isImg&&t.imgProps.isChart||t.imgProps.isImg&&t.imgProps.isShape||t.imgProps.isShape&&t.imgProps.isChart;b?l.setCaption(i.advancedText,!0):l.setCaption(t.imgProps.isImg?i.imageText:t.imgProps.isChart?i.chartText:i.shapeText,!0),c.setVisible(!e.isNull(t.imgProps.value.get_ChartProperties())&&!b),i.menuOriginalSize.setVisible(t.imgProps.isOnlyImg),i.pictureMenu.items[7].setVisible(c.isVisible()||i.menuOriginalSize.isVisible());var f=t.imgProps.locked||void 0!==t.headerProps&&t.headerProps.locked;c.isVisible()&&c.setDisabled(f||t.imgProps.value.get_SeveralCharts()),i.menuOriginalSize.setDisabled(f||null===t.imgProps.value.get_ImageUrl()||void 0===t.imgProps.value.get_ImageUrl()),l.setDisabled(f),n.setDisabled(f||u==Asc.c_oAscWrapStyle2.Inline),a.setDisabled(u==Asc.c_oAscWrapStyle2.Inline),i.api&&(s.setDisabled(f||!i.api.CanUnGroup()),o.setDisabled(f||!i.api.CanGroup()),r.setDisabled(f||!i.api.CanChangeWrapPolygon())),i.menuImageWrap.setDisabled(f||t.imgProps.value.get_FromGroup()||m&&r.isDisabled());var C=i.api&&i.api.can_CopyCut();d.setDisabled(!C),p.setDisabled(f||!C),h.setDisabled(f)}},items:[p,d,h,{caption:"--"},a,n,i.menuImageWrap,{caption:"--"},i.menuOriginalSize,c,{caption:"--"},l]}).on("hide:after",function(t,e,n){n||i.fireEvent("editcomplete",i),i.currentMenu=null});var m=function(t,e){i._applyTableWrap(c_tableWrap.TABLE_WRAP_NONE,t.options.align)},u=new Common.UI.MenuItem({caption:i.inlineText,toggleGroup:"popuptablewrapping",checkable:!0,menu:new Common.UI.Menu({menuAlign:"tl-tr",items:[i.menuTableAlignLeft=new Common.UI.MenuItem({caption:i.textShapeAlignLeft,toggleGroup:"popuptablealign",checkable:!0,checked:!1,align:c_tableAlign.TABLE_ALIGN_LEFT}).on("click",e.bind(m,i)),i.menuTableAlignCenter=new Common.UI.MenuItem({caption:i.textShapeAlignCenter,toggleGroup:"popuptablealign",checkable:!0,checked:!1,align:c_tableAlign.TABL
this.api&&this.api.asc_enableKeyEvents(!0)},this)))}})}),define("common/main/lib/view/ImageFromUrlDialog",["common/main/lib/component/Window"],function(){"use strict";Common.Views.ImageFromUrlDialog=Common.UI.Window.extend(_.extend({options:{width:330,header:!1,cls:"modal-dlg"},initialize:function(t){_.extend(this.options,t||{}),this.template=[' < div class = "box" > ',' < div class = "input-row" > ',"<label>"+this.textUrl+"</label>","</div>",' < div id = "id-dlg-url" class = "input-row" >< /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),Common.UI.Window.prototype.initialize.call(this,this.options)},render:function(){Common.UI.Window.prototype.render.call(this);var t=this;t.inputUrl=new Common.UI.InputField({el:$("#id-dlg-url"),allowBlank:!1,blankError:t.txtEmpty,style:"width: 100%;",validateOnBlur:!1,validation:function(e){return!!/((^https?)|(^ftp)):\/\/.+/i.test(e)||t.txtNotUrl}});var e=this.getChild();e.find(".btn").on("click",_.bind(this.onBtnClick,this)),e.find("input").on("keypress",_.bind(this.onKeyPress,this))},show:function(){Common.UI.Window.prototype.show.apply(this,arguments);var t=this;_.delay(function(){t.getChild("input").focus()},500)},onKeyPress:function(t){t.keyCode==Common.UI.Keys.RETURN&&this._handleInput("ok")},onBtnClick:function(t){this._handleInput(t.currentTarget.attributes.result.value)},_handleInput:function(t){if(this.options.handler){if("ok"==t&&!0!==this.inputUrl.checkValidate())return void this.inputUrl.cmpEl.find("input").focus();this.options.handler.call(this,t,this.inputUrl.getValue())}this.close()},textUrl:"Paste an image URL:",cancelButtonText:"Cancel",okButtonText:"Ok",txtEmpty:"This field is required",txtNotUrl:'This field should be a URL in the format "http://www.example.com"'},Common.Views.ImageFromUrlDialog||{}))}),void 0===Common)var Common={};if(define("common/main/lib/util/define",[],function(){"use strict";Common.define={},Common.define.c_oAscMathMainType={Symbol:0,Fraction:1,Script:2,Radical:3,Integral:4,LargeOperator:5,Bracket:6,Function:7,Accent:8,LimitLog:9,Operator:10,Matrix:11},Common.define.c_oAscMathType={Symbol_pm:0,Symbol_infinity:1,Symbol_equals:2,Symbol_neq:3,Symbol_about:4,Symbol_times:5,Symbol_div:6,Symbol_factorial:7,Symbol_propto:8,Symbol_less:9,Symbol_ll:10,Symbol_greater:11,Symbol_gg:12,Symbol_leq:13,Symbol_geq:14,Symbol_mp:15,Symbol_cong:16,Symbol_approx:17,Symbol_equiv:18,Symbol_forall:19,Symbol_additional:20,Symbol_partial:21,Symbol_sqrt:22,Symbol_cbrt:23,Symbol_qdrt:24,Symbol_cup:25,Symbol_cap:26,Symbol_emptyset:27,Symbol_percent:28,Symbol_degree:29,Symbol_fahrenheit:30,Symbol_celsius:31,Symbol_inc:32,Symbol_nabla:33,Symbol_exists:34,Symbol_notexists:35,Symbol_in:36,Symbol_ni:37,Symbol_leftarrow:38,Symbol_uparrow:39,Symbol_rightarrow:40,Symbol_downarrow:41,Symbol_leftrightarrow:42,Symbol_therefore:43,Symbol_plus:44,Symbol_minus:45,Symbol_not:46,Symbol_ast:47,Symbol_bullet:48,Symbol_vdots:49,Symbol_cdots:50,Symbol_rddots:51,Symbol_ddots:52,Symbol_aleph:53,Symbol_beth:54,Symbol_QED:55,Symbol_alpha:65536,Symbol_beta:65537,Symbol_gamma:65538,Symbol_delta:65539,Symbol_varepsilon:65540,Symbol_epsilon:65541,Symbol_zeta:65542,Symbol_eta:65543,Symbol_theta:65544,Symbol_vartheta:65545,Symbol_iota:65546,Symbol_kappa:65547,Symbol_lambda:65548,Symbol_mu:65549,Symbol_nu:65550,Symbol_xsi:65551,Symbol_o:65552,Symbol_pi:65553,Symbol_varpi:65554,Symbol_rho:65555,Symbol_varrho:65556,Symbol_sigma:65557,Symbol_varsigma:65558,Symbol_tau:65559,Symbol_upsilon:65560,Symbol_varphi:65561,Symbol_phi:65562,Symbol_chi:65563,Symbol_psi:65564,Symbol_omega:65565,Symbol_Alpha:131072,Symbol_Beta:131073,Symbol_Gamma:131074,Symbol_Delta:131075,Symbol_Epsilon:131076,Symbol_Zeta:131077,Symbol_Eta:131078,Symbol_Theta:131079,Symbol_Iota:131080,Symbol_Kappa:131081,Symbol_Lambda:131082,Symbol_Mu:131083,Symbol_Nu:131084,Symbol_Xsi:131085,Symbol
e . openButton . menu . cmpEl . css ( "min-width" , e . itemWidth ), e . openButton . menu . on ( "show:before" , _ . bind ( e . onBeforeShowMenu , e )), e . openButton . menu . on ( "show:after" , _ . bind ( e . onAfterShowMenu , e )), e . openButton . cmpEl . on ( "hide.bs.dropdown" , _ . bind ( e . onBeforeHideMenu , e )), e . openButton . cmpEl . on ( "hidden.bs.dropdown" , _ . bind ( e . onAfterHideMenu , e ))), e . options . hint && ( e . cmpEl . attr ( "data-toggle" , "tooltip" ), e . cmpEl . tooltip ({ title : e . options . hint , placement : e . options . hintAnchor || "cursor" })), e . fieldPicker . on ( "item:select" , _ . bind ( e . onFieldPickerSelect , e )), e . menuPicker . on ( "item:select" , _ . bind ( e . onMenuPickerSelect , e )), e . fieldPicker . on ( "item:click" , _ . bind ( e . onFieldPickerClick , e )), e . menuPicker . on ( "item:click" , _ . bind ( e . onMenuPickerClick , e )), e . fieldPicker . on ( "item:contextmenu" , _ . bind ( e . onPickerItemContextMenu , e )), e . menuPicker . on ( "item:contextmenu" , _ . bind ( e . onPickerItemContextMenu , e )), e . fieldPicker . el . addEventListener ( "contextmenu" , _ . bind ( e . onPickerComboContextMenu , e ), ! 1 ), e . menuPicker . el . addEventListener ( "contextmenu" , _ . bind ( e . onPickerComboContextMenu , e ), ! 1 ), e . onResize (), e . rendered =! 0 , e . trigger ( "render:after" , e )} return this }, checkSize : function (){ if ( this . cmpEl && this . cmpEl . is ( ":visible" )){ var t = this , e = this . cmpEl . width (), i = this . cmpEl . height (); if ( e < this . minWidth ) return ; this . rootWidth == e && this . rootHeight == i || ( this . rootWidth = e , this . rootHeight = i , setTimeout ( function (){ t . openButton . menu . cmpEl . outerWidth (), t . rootWidth = t . cmpEl . width ()}, 10 ), this . onResize ())}}, onResize : function (){ if ( this . openButton ){ var t = $ ( "button" , this . openButton . cmpEl ); t && t . css ({ width : $ ( ".button" , this . cmpEl ). width (), height : $ ( ".button" , this . cmpEl ). height ()}), this . openButton . menu . hide (); var e = this . menuPicker ; if ( e ){ var i = e . getSelectedRec (); i && ( i = i [ 0 ], this . fillComboView ( i || e . store . at ( 0 ), !! i , ! 0 )), e . onResize ()}} this . isSuspendEvents || this . trigger ( "resize" , this )}, onBeforeShowMenu : function ( t ){ var e = this ; if ( _ . isFunction ( e . beforeOpenHandler )) e . beforeOpenHandler ( e , t ); else if ( e . openButton . menu . cmpEl ){ var i = 0 ; try { var n = $ ( $ ( ".dropdown-menu .dataview.inner .style" , e . cmpEl )[ 0 ]); i = n ? parseInt ( n . css ( "margin-left" )) + parseInt ( n . css ( "margin-right" )) : 0 } catch ( t ){} e . openButton . menu . cmpEl . css ({ width : Math . round (( e . cmpEl . width () + i * e . fieldPicker . store . length ) / e . itemWidth - . 2 ) * ( e . itemWidth + i ), "min-height" : this . cmpEl . height ()})} if ( e . options . hint ){ var o = e . cmpEl . data ( "bs.tooltip" ); o && ( void 0 === o . dontShow && ( o . dontShow =! 0 ), o . hide ())} this . menuPicker . selectedBeforeHideRec = null }, onBeforeHideMenu : function ( t ){ if ( this . trigger ( "hide:before" , this , t ), Common . UI . Scroller . isMouseCapture () && t . preventDefault (), this . isStylesNotClosable ) return ! 1 }, onAfterShowMenu : function ( t ){ var e = this ; e . menuPicker . scroller && e . menuPicker . scroller . update ({ includePadding :! 0 , suppressScrollX :! 0 , alwaysVisibleY :! 0 })}, onAfterHideMenu : function ( t , e ){ this . menuPicker . selectedBeforeHideRec = this . menuPicker . getSelectedRec ()[ 0 ], this . showLast ? this . menuPicker . showLastSelected () : this . menuPicker . deselectAll (), this . trigger ( "hide:after" , this , t , e )}, onFieldPickerSelect : function ( t , e , i ){}, onMenuPickerSelect : function ( t , e , i , n ){ this . needFillComboView = this . disabled , this . disabled ||! 0 === n || ( this . fillComboView ( i , ! 1 ), i &&! this . isSuspendEvents && this . trigger ( "select" , this , i ))}, onFieldPickerClick : function ( t , e , i ){ if ( ! this . disabled ){ if ( this . isSuspendEvents || this . trigger ( "click" , this , i ), this . options . hint ){ var n = this . cmpEl . data ( "bs.tooltip" ); n && ( void 0 === n . dontShow && ( n . dontShow =! 0 ), n . hide ())} this . showLast || this . fieldPicker . deselectAll ()}}, onMenuPickerClick : function ( t , e , i ){ this . disabled || this . isSuspendEvents || this . trigger ( "click" , this , i )}, onPickerItemContextMenu : function ( t , e , i , n ){ if ( ! this . disabled ) return this . isSuspendEvents || this . trigger ( "contextmenu" , this , i , n ), n . preventDefault (), n . stopPropagation (), ! 1 }, onPickerComboContextMenu : function ( t ){ this . disabled || this . isSuspendEvents || this . trigger ( "contextmenu" , this , void 0 , t )}, setDisabled : function ( t ){ if ( this . disabled = t , this . rendered && ( this . cmpEl . toggleClass ( "disabled" , t ), $ ( "button" , this . openButton . cmpEl ). toggleClass ( "disabled" , t ), this . fieldPicker . setDisabled ( t ), this . needFillComboView &&! t )){ var e = this . menuPicker ; if ( e ){ var i = e . getSelectedRec (); i && ( i = i [ 0 ], this . fillComboView ( i |
var o = t ( i . cmpEl . find ( ".dataview.inner .style" ). get ( 0 )). parent (), s = o . is ( ":visible" ) ? parseInt ( o . css ( "width" )) : i . itemWidth + parseInt ( o . css ( "padding-left" )) + parseInt ( o . css ( "padding-right" )) + parseInt ( o . css ( "border-left-width" )) + parseInt ( o . css ( "border-right-width" )), a = i . menuPicker . store . length >= 6 ? 6 : i . menuPicker . store . length , r = Math . min ( i . menuPicker . store . length , Math . round ( t ( ".dataview" , t ( i . fieldPicker . el )). width () / ( - 1 + s ) + . 5 )); r = r < a ? a : r , n . menuAlignEl = i . cmpEl , n . menuAlign = "tl-tl" ; var l = i . cmpEl . width () - i . openButton . $el . width () - r * ( - 1 + s ) - 1 ; n . setOffset ( Math . min ( l , 0 )), n . cmpEl . css ({ width : r * ( s +- 1 ), "min-height" : i . cmpEl . height ()})} i . menuPicker . scroller && i . menuPicker . scroller . update ({ includePadding :! 0 , suppressScrollX :! 0 }), i . removeTips ()}}), this . listStyles . fieldPicker . itemTemplate = e . template ([ '<div class="style" id="<%= id %>">' , '<div style="background-image: url(<%= imageUrl %>); width: ' + this . listStyles . itemWidth + "px; height: " + this . listStyles . itemHeight + 'px;"/>' , "</div>" ]. join ( "" )), this . listStyles . menuPicker . itemTemplate = e . template ([ '<div class="style" id="<%= id %>">' , '<div style="background-image: url(<%= imageUrl %>); width: ' + this . listStyles . itemWidth + "px; height: " + this . listStyles . itemHeight + 'px;"/>' , "</div>" ]. join ( "" )), this . paragraphControls . push ( this . listStyles ), this . textOnlyControls . push ( this . listStyles ), e . each ( this . toolbarControls . concat ( this . paragraphControls ), function ( t ){ e . isFunction ( t . setDisabled ) && t . setDisabled ( ! 0 )}), this . btnMailRecepients . setDisabled ( ! 0 ); var a = new Common . UI . MenuItem ({ caption : i . textStyleMenuUpdate }). on ( "click" , e . bind ( i . onStyleMenuUpdate , i )), r = new Common . UI . MenuItem ({ caption : i . textStyleMenuDelete }). on ( "click" , e . bind ( i . onStyleMenuDelete , i )), l = new Common . UI . MenuItem ({ caption : i . textStyleMenuRestore }). on ( "click" , e . bind ( i . onStyleMenuDelete , i )), c = new Common . UI . MenuItem ({ caption : i . textStyleMenuRestoreAll }). on ( "click" , e . bind ( i . onStyleMenuRestoreAll , i )), d = new Common . UI . MenuItem ({ caption : i . textStyleMenuDeleteAll }). on ( "click" , e . bind ( i . onStyleMenuDeleteAll , i )); return null == this . styleMenu && ( this . styleMenu = new Common . UI . Menu ({ items : [ a , r , l , c , d ]})), this }, render : function ( e ){ var i = this ; this . trigger ( "render:before" , this ); var n = Common . localStorage . getItem ( "de-pgmargins-top" ), o = Common . localStorage . getItem ( "de-pgmargins-left" ), s = Common . localStorage . getItem ( "de-pgmargins-bottom" ), a = Common . localStorage . getItem ( "de-pgmargins-right" ); if ( null !== n && null !== o && null !== s && null !== a ){ var r = this . btnPageMargins . menu . items [ 0 ]; r . options . value = r . value = [ parseFloat ( n ), parseFloat ( o ), parseFloat ( s ), parseFloat ( a )], r . setVisible ( ! 0 ), t ( r . el ). html ( r . template ({ id : Common . UI . getId (), caption : r . caption , options : r . options }))} else this . btnPageMargins . menu . items [ 0 ]. setVisible ( ! 1 ); var l = Common . localStorage . getItem ( "de-compact-toolbar" ), c =!! ( null !== l && 1 == parseInt ( l ) || null === l && e . customization && e . customization . compactToolbar ); return i . $el . html ( this . template ({ isCompactView : c })), i . rendererComponents ( c ? "short" : "full" ), i . isCompactView = c , this . trigger ( "render:after" , this ), l = Common . localStorage . getItem ( "de-hide-synch" ), this . showSynchTip =! ( l && 1 == parseInt ( l )), this . needShowSynchTip =! 1 , this }, rendererComponents : function ( e ){ var i = "short" === e ? "short" : "full" , n = function ( e , i ){ var n = t ( e ), o = n . get ( 0 ); o && ( i . rendered ? ( i . el = document . getElementById ( i . id ), o . appendChild ( document . getElementById ( i . id ))) : i . render ( n ))}; n ( "#id-toolbar-" + i + "-placeholder-btn-newdocument" , this . btnNewDocument ), n ( "#id-toolbar-" + i + "-placeholder-btn-opendocument" , this . btnOpenDocument ), n ( "#id-toolbar-" + i + "-placeholder-field-fontname" , this . cmbFontName ), n ( "#id-toolbar-" + i + "-placeholder-field-fontsize" , this . cmbFontSize ), n ( "#id-toolbar-" + i + "-placeholder-btn-print" , this . btnPrint ), n ( "#id-toolbar-" + i + "-placeholder-btn-save" , this . btnSave ), n ( "#id-toolbar-" + i + "-placeholder-btn-undo" , this . btnUndo ), n ( "#id-toolbar-" + i + "-placeholder-btn-redo" , this . btnRedo ), n ( "#id-toolbar-" + i + "-placeholder-btn-copy" , this . btnCopy ), n ( "#id-toolbar-" + i + "-placeholder-btn-paste" , this . btnPaste ), n ( "#id-toolbar-" + i + "-placeholder-btn-incfont" , this . btnIncFontSize ), n ( "#id-toolbar-" + i + "-placeholder-btn-decfont" , this . btnDecFontSize ), n ( "#id-toolbar-" + i + "-placeholder-btn-
tipDropCap:" Insert drop cap ",txtScheme1:" Office ",txtScheme2:" Grayscale ",txtScheme3:" Apex ",txtScheme4:" Aspect ",txtScheme5:" Civic ",txtScheme6:" Concourse ",txtScheme7:" Equity ",txtScheme8:" Flow ",txtScheme9:" Foundry ",txtScheme10:" Median ",txtScheme11:" Metro ",txtScheme12:" Module ",txtScheme13:" Opulent ",txtScheme14:" Oriel ",txtScheme15:" Origin ",txtScheme16:" Paper ",txtScheme17:" Solstice ",txtScheme18:" Technic ",txtScheme19:" Trek ",txtScheme20:" Urban ",txtScheme21:" Verve ",textInsPageBreak:" Insert Page Break ",textInsColumnBreak:" Insert Column Break ",textInsSectionBreak:" Insert Section Break ",textNextPage:" Next Page ",textContPage:" Continuous Page ",textEvenPage:" Even Page ",textOddPage:" Odd Page ",tipSaveCoauth:" Save your changes for the other users to see them . ",tipMailRecepients:" Mail Merge ",textStyleMenuUpdate:" Update from select ",textStyleMenuRestore:" Restore to default ",textStyleMenuDelete:" Delete style ",textStyleMenuRestoreAll:" Restore all to default styles ",textStyleMenuDeleteAll:" Delete all custom styles ",textStyleMenuNew:" New style from selection ",textInsText:" Insert text box ",textInsTextArt:" Insert Text Art ",tipColumns:" Insert columns ",textColumnsOne:" One ",textColumnsTwo:" Two ",textColumnsThree:" Three ",textColumnsLeft:" Left ",textColumnsRight:" Right ",tipPageMargins:" Page Margins ",textMarginsLast:" Last Custom ",textMarginsNormal:" Normal ",textMarginsUsNormal:" US Normal ",textMarginsNarrow:" Narrow ",textMarginsModerate:" Moderate ",textMarginsWide:" Wide ",textPageMarginsCustom:" Custom margins ",textTop:" Top : ",textLeft:" Left : ",textBottom:" Bottom : ",textRight:" Right : ",textPageSizeCustom:" Custom Page Size ",textPortrait:" Portrait ",textLandscape:" Landscape ",textInsertPageCount:" Insert number of pages ",textCharts:" Charts ",tipNotes:" Footnotes ",mniInsFootnote:" Insert Footnote ",mniDelFootnote:" Delete All Footnotes ",mniNoteSettings:" Notes Settings ",textGotoFootnote:" Go to Footnotes ",tipChangeChart:" Change Chart Type ",textColumnsCustom:" Custom Columns ",textSurface:" Surface ",tipContents:" Insert or edit table of contents ",textContentsSettings:" Settings ",textContentsRemove:" Remove table of contents ",textUpdateAll:" Update entire table ",textUpdatePages:" Update page numbers only "},DE.Views.Toolbar||{}))}),void 0===Common)var Common={};if(define(" common / main / lib / component / LoadMask ",[" common / main / lib / component / BaseView "],function(){" use strict ";Common.UI.LoadMask=Common.UI.BaseView.extend(function(){var t,e,i;return{options:{cls:"",style:"",title:" Loading ... ",owner:document.body},template:_.template(['<div id=" <%= id %> " class=" asc - loadmask - body <%= cls %> " role=" presentation " tabindex=" - 1 ">','<div class=" asc - loadmask - image "></div>','<div class=" asc - loadmask - title "><%= title %></div>'," < /div>"].join("")),initialize:function(t){Common.UI.BaseView.prototype.initialize.call(this,t),this.template=this.options.template||this.template,this.cls=this.options.cls,this.style=this.options.style,this.title=this.options.title,this.owner=this.options.owner},render:function(){return this},show:function(){if(!e&&!i){if(t=this.owner instanceof Common.UI.BaseView?$(this.owner.el):$(this.owner),t.hasClass("masked"))return this;var n=this;return e=$('<div class="asc-loadmask"></div>'),i=$(this.template({id:n.id,cls:n.cls,style:n.style,title:n.title})),t.addClass("masked"),t.append(e),t.append(i),i.css({top:Math.round(t.height()/2-(i.height()+parseInt(i.css("padding-top"))+parseInt(i.css("padding-bottom")))/2)+"px",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)}}}())}),define("documenteditor/main/app/view/MailMergeRecepients",["common/main/lib/component/Window","common/main/lib/component/LoadMask"],function(){"use strict";DE.Views.MailMergeRecepients=Common.UI.Window.extend(_.extend({initialize:function(t){var e
template : [ '<div class="box" style="height:' + ( e . options . height - 85 ) + 'px;">' , '<div class="content-panel" style="padding: 15px 10px;"><div class="inner-content">' , '<div class="settings-panel active">' , '<table cols="2" style="width: 100%;">' , "<tr>" , '<td class="padding-small">' , '<div id="tableofcontents-chb-pages"></div>' , "</td>" , '<td rowspan="5" class="padding-small" style="vertical-align: top;">' , '<div style="border: 1px solid #cbcbcb;width: 240px; height: 182px; float: right;position:relative;overflow:hidden;">' , '<div id="tableofcontents-img" style="width: 230px; height: 100%;"></div>' , "</div>" , "</td>" , "</tr>" , "<tr>" , '<td class="padding-small">' , '<div id="tableofcontents-chb-align"></div>' , "</td>" , "</tr>" , "<tr>" , '<td class="padding-large">' , '<label class="input-label">' + e . textLeader + "</label>" , '<div id="tableofcontents-combo-leader" class="input-group-nr" style="display: inline-block; width:95px; margin-left: 10px;"></div>' , "</td>" , "</tr>" , "<tr>" , '<td class="padding-large">' , '<div id="tableofcontents-chb-links"></div>' , "</td>" , "</tr>" , "<tr>" , '<td class="padding-small">' , '<label class="input-label padding-small" style="display: block;">' + e . textBuildTable + "</label>" , '<div id="tableofcontents-radio-levels" class="padding-small" style="display: block;"></div>' , '<div id="tableofcontents-radio-styles" class="" style="display: block;"></div>' , "</td>" , "</tr>" , "<tr>" , '<td class="padding-small" style="vertical-align: top;">' , '<div id="tableofcontents-from-levels" style="width:220px;">' , '<label class="input-label">' + e . textLevels + "</label>" , '<div id="tableofcontents-spin-levels" style="display: inline-block; width:95px; margin-left: 10px;"></div>' , "</div>" , '<div id="tableofcontents-from-styles" class="hidden">' , '<table><tr><td style="height: 25px;">' , '<label class="input-label" style="width: 144px; margin-left: 23px;">' + e . textStyle + "</label>" , '<label class="input-label" style="">' + e . textLevel + "</label>" , "</td></tr>" , "<tr><td>" , '<div id="tableofcontents-styles-list" class="header-styles-tableview" style="width:100%; height: 122px;"></div>' , "</td></tr></table>" , "</div>" , "</td>" , '<td class="padding-small" style="vertical-align: top;">' , '<label class="input-label" style="margin-left: 10px;">' + e . textStyles + "</label>" , '<div id="tableofcontents-combo-styles" class="input-group-nr" style="display: inline-block; width:95px; margin-left: 10px;"></div>' , "</td>" , "</tr>" , "</table>" , "</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; width: 86px;">' + e . okButtonText + "</button>" , '<button class="btn normal dlg-btn" result="cancel" style="width: 86px;">' + e . cancelButtonText + "</button>" , "</div>" ]. join ( "" )}, t ), this . api = t . api , this . handler = t . handler , this . props = t . props , this . startLevel = 1 , this . endLevel = 3 , this . _noApply =! 0 , this . _originalProps = null , Common . Views . AdvancedSettingsWindow . prototype . initialize . call ( this , this . options )}, render : function (){ Common . Views . AdvancedSettingsWindow . prototype . render . call ( this ); var t = this ; this . chPages = new Common . UI . CheckBox ({ el : $ ( "#tableofcontents-chb-pages" ), labelText : this . strShowPages , value : "checked" }), this . chPages . on ( "change" , _ . bind ( function ( t , e , i , n ){ var o = "checked" == t . getValue (); if ( this . chAlign . setDisabled ( ! o ), this . cmbLeader . setDisabled ( ! o ), this . api &&! this . _noApply ){ var s = this . _originalProps ? this . _originalProps : new Asc . CTableOfContentsPr ; s . put_ShowPageNumbers ( o ), o && ( s . put_RightAlignTab ( "checked" == this . chAlign . getValue ()), s . put_TabLeader ( this . cmbLeader . getValue ())), this . api . SetDrawImagePlaceContents ( "tableofcontents-img" , s ), this . scrollerY . update ()}}, this )), this . chAlign = new Common . UI . CheckBox ({ el : $ ( "#tableofcontents-chb-align" ), labelText : this . strAlign , value : "checked" }), this . chAlign . on ( "change" , _ . bind ( function ( t , e , i , n ){ var o = "checked" == t . getValue (); if ( this . cmbLeader . setDisabled ( ! o ), this . api &&! this . _noApply ){ var s = this . _originalProps ? this . _originalProps : new Asc . CTableOfContentsPr ; s . put_RightAlignTab ( o ), o && s . put_TabLeader ( this . cmbLeader . getValue ()), this . api . SetDrawImagePlaceContents ( "tableofcontents-img
onApiFocusObject:function(t){if(this.editMode){for(var e,i,n,o=-1,s=!1,a=!1,r=!1,l=!1,c=!1,d=void 0,h=!0,p=void 0,m=this.toolbar,u=!1,g=!1,b=!1,f=!1,C=!1;++o<t.length;)n=t[o].get_ObjectType(),e=t[o].get_ObjectValue(),n===Asc.c_oAscTypeSelectElement.Paragraph?(s=e.get_Locked(),l=e.get_CanAddTable(),c=e.get_CanAddImage(),p=e,i=e.get_Shade()):n===Asc.c_oAscTypeSelectElement.Header?(a=e.get_Locked(),u=!0):n===Asc.c_oAscTypeSelectElement.Image?(C=u=!0,r=e.get_Locked(),e&&e.get_ChartProperties()&&(g=!0)):n===Asc.c_oAscTypeSelectElement.Math&&(b=!0,Asc.c_oAscMathInterfaceType.Common===e.get_Type()&&(f=!0)),n!==Asc.c_oAscTypeSelectElement.Table&&n!==Asc.c_oAscTypeSelectElement.Header&&n!==Asc.c_oAscTypeSelectElement.Image||(d=!1),!1!==d&&n==Asc.c_oAscTypeSelectElement.Paragraph&&(d=!0);i&&this.onParagraphColor(i);var v=s||a;this._state.prcontrolsdisable!=v&&(this._state.activated&&(this._state.prcontrolsdisable=v),_.each(m.paragraphControls,function(t){t.setDisabled(v)},this));var y=s||a||g;if(this._state.textonlycontrolsdisable!=y&&(this._state.activated&&(this._state.textonlycontrolsdisable=y),v||_.each(m.textOnlyControls,function(t){t.setDisabled(y)},this),m.btnCopyStyle.setDisabled(y),m.btnClearStyle.setDisabled(y)),d&&p){var w=p.get_FramePr(),x=Asc.c_oAscDropCap.None;void 0!==w?(x=w.get_DropCap(),d=x===Asc.c_oAscDropCap.Drop||x===Asc.c_oAscDropCap.Margin,h=!1):d=p.get_CanAddDropCap(),d&&this.onDropCap(x)}v=v||!d||b,v!==m.btnDropCap.isDisabled()&&m.btnDropCap.setDisabled(v),m.btnDropCap.isDisabled()||h===m.mnuDropCapAdvanced.isDisabled()||m.mnuDropCapAdvanced.setDisabled(h),v=!l||a||b,v!=m.btnInsertTable.isDisabled()&&m.btnInsertTable.setDisabled(v),v=m.mnuPageNumCurrentPos.isDisabled()&&m.mnuPageNumberPosPicker.isDisabled(),v!=m.mnuInsertPageNum.isDisabled()&&m.mnuInsertPageNum.setDisabled(v);var S=this.api.asc_IsCursorInFootnote();v=s||a||u||b&&!f||S,v!=m.btnInsertPageBreak.isDisabled()&&m.btnInsertPageBreak.setDisabled(v),v=s||a||!c||b,v!=m.btnInsertImage.isDisabled()&&(m.btnInsertImage.setDisabled(v),m.btnInsertShape.setDisabled(v),m.btnInsertText.setDisabled(v)),(v||C||S)!=m.mnuInsertTextArt.isDisabled()&&m.mnuInsertTextArt.setDisabled(v||C||S),g!==this._state.in_chart&&(m.btnInsertChart.updateHint(g?m.tipChangeChart:m.tipInsertChart),this._state.in_chart=g),v=g&&r||!g&&v,v!=m.btnInsertChart.isDisabled()&&m.btnInsertChart.setDisabled(v),v=s||a||g||!c&&!b,v!==m.btnInsertEquation.isDisabled()&&m.btnInsertEquation.setDisabled(v),v=s||a||b,v!==m.btnSuperscript.isDisabled()&&(m.btnSuperscript.setDisabled(v),m.btnSubscript.setDisabled(v)),b!==m.btnEditHeader.isDisabled()&&m.btnEditHeader.setDisabled(b),v=s||b||C||u,v!==m.btnNotes.isDisabled()&&m.btnNotes.setDisabled(v),v=s||a||C,v!=m.btnColumns.isDisabled()&&m.btnColumns.setDisabled(v),m.listStylesAdditionalMenuItem&&void 0===p!==m.listStylesAdditionalMenuItem.isDisabled()&&m.listStylesAdditionalMenuItem.setDisabled(void 0===p),this._state.in_equation=b}},onApiStyleChange:function(t){this.toolbar.btnCopyStyle.toggle(t,!0),this.modeAlwaysSetStyle=!1},onApiParagraphStyleChange:function(t){if(this._state.prstyle!=t){var e=this.toolbar.listStyles;if(e.rendered){e.suspendEvents();var i=e.menuPicker.store.findWhere({title:t});this._state.prstyle=e.menuPicker.store.length>0||window.styles_loaded?t:void 0,e.menuPicker.selectRecord(i),e.resumeEvents()}}},onApiPageOrient:function(t){this._state.pgorient!==t&&(this.toolbar.btnPageOrient.menu.items[t?0:1].setChecked(!0),this._state.pgorient=t)},onApiLockDocumentProps:function(){!0!==this._state.lock_doc&&(this.toolbar.btnPageOrient.setDisabled(!0),this.toolbar.btnPageSize.setDisabled(!0),this._state.activated&&(this._state.lock_doc=!0))},onApiUnLockDocumentProps:function(){!1!==this._state.lock_doc&&(this.toolbar.btnPageOrient.setDisabled(!1),this.toolbar.btnPageSize.setDisabled(!1),this._state.activated&&(this._state.lock_doc=!1))},onApiLockDocumentSchema:function(){this.toolbar.btnColorSchemas.setDisabled(!0)},onApiUnLockDocumentSchema:function(){this.toolbar.btnColorSchemas.setDisabled(!1)},onApiLockHeaderFooters:function(){this.tool
this.api&&this.api.asc_GotoFootnote(!0);var e=this;setTimeout(function(){Common.NotificationCenter.trigger(" edit : complete ",e.toolbar)},50)},_clearBullets:function(){this.toolbar.btnMarkers.toggle(!1,!0),this.toolbar.btnNumbers.toggle(!1,!0),this.toolbar.btnMultilevels.toggle(!1,!0),this.toolbar.mnuMarkersPicker.selectByIndex(0,!0),this.toolbar.mnuNumbersPicker.selectByIndex(0,!0),this.toolbar.mnuMultilevelPicker.selectByIndex(0,!0)},_getApiTextSize:function(){var t=12,e=this.api.get_TextProps();return e&&e.get_TextPr&&(t=e.get_TextPr().get_FontSize()),t},onNewFontColor:function(t,e){this.toolbar.mnuFontColorPicker.addNewColor()},onAutoFontColor:function(t){this._state.clrtext=this._state.clrtext_asccolor=void 0;var e=new Asc.asc_CColor;e.put_auto(!0),this.api.put_TextColor(e),this.toolbar.btnFontColor.currentColor={color:e,isAuto:!0},$(" . btn - color - value - line ",this.toolbar.btnFontColor.cmpEl).css(" background - color "," # 000 "),this.toolbar.mnuFontColorPicker.clearSelection(),this.toolbar.mnuFontColorPicker.currentColor={color:e,isAuto:!0}},onNewParagraphColor:function(t,e){this.toolbar.mnuParagraphColorPicker.addNewColor()},onSelectHighlightColor:function(t,e){this._setMarkerColor(e," menu ")},onSelectFontColor:function(t,e){this._state.clrtext=this._state.clrtext_asccolor=void 0;var i=" object "==typeof e?e.isAuto?" # 000 ":e.color:e;this.toolbar.btnFontColor.currentColor=e,$(" . btn - color - value - line ",this.toolbar.btnFontColor.cmpEl).css(" background - color "," # "+i),this.toolbar.mnuFontColorPicker.currentColor=e,this.api&&this.api.put_TextColor(e.isAuto?e.color:Common.Utils.ThemeColor.getRgbColor(e)),Common.component.Analytics.trackEvent(" ToolBar "," Text Color ")},onParagraphColorPickerSelect:function(t,e){this._state.clrback=this._state.clrshd_asccolor=void 0;var i=" object "==typeof e?e.color:e;this.toolbar.btnParagraphColor.currentColor=e,$(" . btn - color - value - line ",this.toolbar.btnParagraphColor.cmpEl).css(" background - color "," transparent "!=e?" # "+i:i),this.toolbar.mnuParagraphColorPicker.currentColor=e,this.api&&(" transparent "==e?this.api.put_ParagraphShade(!1):this.api.put_ParagraphShade(!0,Common.Utils.ThemeColor.getRgbColor(e))),Common.NotificationCenter.trigger(" edit : complete ",this)},onBtnHighlightColor:function(t){t.pressed?(this._setMarkerColor(t.currentColor),Common.component.Analytics.trackEvent(" ToolBar "," Highlight Color ")):this.api.SetMarkerFormat(!1)},onBtnFontColor:function(){this.toolbar.mnuFontColorPicker.trigger(" select ",this.toolbar.mnuFontColorPicker,this.toolbar.mnuFontColorPicker.currentColor)},onBtnParagraphColor:function(){this.toolbar.mnuParagraphColorPicker.trigger(" select ",this.toolbar.mnuParagraphColorPicker,this.toolbar.mnuParagraphColorPicker.currentColor)},onHighlightTransparentClick:function(t,e){this._setMarkerColor(" transparent "," menu "),t.setChecked(!0,!0),this.toolbar.btnHighlightColor.currentColor=" transparent ",$(" . btn - color - value - line ",this.toolbar.btnHighlightColor.cmpEl).css(" background - color "," transparent ")},onParagraphColor:function(t){var e,i=this.toolbar.mnuParagraphColorPicker;if(null!==t&&void 0!==t&&t.get_Value()===Asc.c_oAscShdClear){var n=t.get_Color();e=n?n.get_type()==Asc.c_oAscColor.COLOR_TYPE_SCHEME?{color:Common.Utils.ThemeColor.getHexColor(n.get_r(),n.get_g(),n.get_b()),effectValue:n.get_value()}:Common.Utils.ThemeColor.getHexColor(n.get_r(),n.get_g(),n.get_b()):" transparent "}else e=" transparent ";var o=typeof e;if(o!==typeof this._state.clrback||" object "==o&&(e.effectValue!==this._state.clrback.effectValue||this._state.clrback.color.indexOf(e.color)<0)||" object "!=o&&this._state.clrback.indexOf(e)<0){if(" object "==typeof e){for(var s=!1,a=0;a<10;a++)if(Common.Utils.ThemeColor.ThemeValues[a]==e.effectValue){i.select(e,!0),s=!0;break}s||i.clearSelection()}else i.select(e,!0);this._state.clrback=e}this._state.clrshd_asccolor=t},onApiTextColor:function(t){if(t.get_auto()){if(" auto "!==this._state.clrtext){this.toolbar.mnuFontColorPicker.clearSelection();var e=this.toolbar.btnFontColor.menu.$el.find(" # id - toolbar - menu - auto - fontcolor > a ");!e.hasClass(" selected ")&&e.addClass(" selected "),this._state
return'\r\n<div class=" statusbar " style=" display : table ; ">\r\n <div class=" status - group dropup ">\r\n <label id=" label - pages " class=" status - label dropdown - toggle " style=" margin - left : 40 px ; " data-toggle=" dropdown "><%= Common.Utils.String.format(scope.pageIndexText, 1, 1) %></label>\r\n <div id=" status - goto - box " class=" dropdown - menu ">\r\n <label style=" float : left ; line - height : 22 px ; "><%= scope.goToPageText %></label>\r\n <div id=" status - goto - page " style=" display : inline - block ; "></div>\r\n </div>\r\n </div>\r\n \x3c!-- /** coauthoring begin **/ --\x3e\r\n <div id=" status - users - ct " class=" status - group dropup " style=" display : none ; ">\r\n <div class=" separator short " style=" margin - right : 12 px ; margin - left : 40 px ; " />\r\n <div id=" status - users - block " style=" display : inline - block ; cursor : pointer ; ">\r\n <span id=" users - icon " class=" img - commonctrl " style=" margin - bottom : 2 px ; "/>\r\n <label id=" status - users - count " class=" status - label " style=" font - size : 14 px ; font - weight : normal ; margin - top : - 1 px ; ">+</label>\r\n </div>\r\n <div id=" status - users - menu " class=" dropdown - menu ">\r\n <label style=" display : block ; margin - right : 14 px ; "><%= scope.tipUsers %></label>\r\n <div id=" status - users - list "></div>\r\n <label id=" status - change - rights " class=" link " style=" margin - top : 15 px ; "><%= scope.txAccessRights %></label>\r\n </div>\r\n <div class=" separator short " style=" margin - left : 10 px ; " />\r\n </div>\r\n \x3c!-- /** coauthoring end **/ --\x3e\r\n <div class=" status - group " style=" width : 100 % ; text - align : center ; ">\r\n <label id=" label - action " class=" status - label "></label>\r\n </div>\r\n <div class=" status - group " style="">\r\n <div class=" separator short el - edit "></div>\r\n <div class=" cnt - lang el - edit ">\r\n <div class=" dropdown - toggle " data-toggle=" dropdown " style=" margin - right : 6 px ; ">\r\n <span class=" icon - lang - flag lang - flag " data-vertical-offset=" 10 " />\r\n <label id=" status - label - lang " class=" status - label ">English (United States)</label>\r\n <div class=" caret up img - commonctrl " />\r\n </div>\r\n </div>\r\n <button id=" btn - doc - lang " type=" button " class=" btn small btn - toolbar el - edit "><span class=" btn - icon btn - ic - doclang "> </span></button>\r\n <button id=" btn - doc - spell " type=" button " class=" btn small btn - toolbar el - edit "><span class=" btn - icon btn - ic - docspell "> </span></button>\r\n <div class=" separator short el - edit "></div>\r\n <div id=" btn - doc - review " class=" el - edit el - review " style=" display : inline - block ; "></div>\r\n <div class=" separator short el - edit el - review "></div>\r\n <button id=" btn - zoom - topage " type=" button " class=" btn small btn - toolbar "><span class=" btn - icon btn - ic - zoomtopage "> </span></button>\r\n <button id=" btn - zoom - towidth " type=" button " class=" btn small btn - toolbar "><span class=" btn - icon btn - ic - zoomtowidth "> </span></button>\r\n <button id=" btn - zoom - down " type=" button " class=" btn small btn - toolbar "><span class=" btn - icon btn - ic - zoomdown "> </span></button>\r\n <div class=" cnt - zoom ">\r\n <div class=" dropdown - toggle " data-toggle=" dropdown ">\r\n <label id=" label - zoom " class=" status - label ">Zoom 100%</label>\r\n </div>\r\n </div>\r\n <button id=" btn - zoom - up " type=" button " class=" btn small btn - toolbar " style=" margin - right : 40 px ; "><span class=" btn - icon btn - ic - zoomup "> </span></button>\r\n </div>\r\n</div>\r\n'}),define(" documenteditor / main / app / model / Pages ",[" underscore "," backbone "],function(t,e){" use strict ";DE.Models=DE.Models||{},DE.Models.Pages=e.Model.extend({defaults:{current:0,count:0}})}),define(" documenteditor / main / app / view / Statusbar ",[" text ! documenteditor / main / app / template / StatusBar . template "," jquery "," underscore "," backbone "," tip "," common / main / lib / component / Menu "," common / main / lib / component / Window "," documenteditor / main / app / model / Pages "],fun
this.reviewChangesView&&this.reviewChangesView.scroller&&this.reviewChangesView.scroller.update({minScrollbarLength:40,alwaysVisibleY:!0})},isVisible:function(){return this.$window&&this.$window.is(" : visible ")},setLeftTop:function(t,e,i,n){if(this.$window||this.render(),n&&(t=this.arrowPosX,e=this.arrowPosY,i=this.leftX),!_.isUndefined(t)||!_.isUndefined(e)){this.arrowPosX=t,this.arrowPosY=e,this.leftX=i;var o=$(" # id - review - popover "),s=$(" # id - review - arrow "),a=$(" # editor_sdk "),r=null,l=0,c="",d=0,h="",p=0,m="",u=0,g="",b=0,f=0,C=0,v=0,y=0,w=0;o&&s&&a&&a.get(0)&&(r=a.get(0).getBoundingClientRect())&&(l=r.height-2*this.sdkBounds.padding,this.$window.css({maxHeight:l+" px "}),this.sdkBounds.width=r.width,this.sdkBounds.height=r.height,_.isUndefined(t)||(c=$(" # id_vertical_scroll "),c.length?d=" none "!==c.css(" display ")?c.width():0:(c=$(" # ws - v - scrollbar "),c.length&&(d=" none "!==c.css(" display ")?c.width():0)),this.sdkBounds.width-=d,h=$(" # id_panel_left "),h.length&&(p=" none "!==h.css(" display ")?h.width():0),m=$(" # id_panel_thumbnails "),m.length&&(u=" none "!==m.css(" display ")?m.width():0,this.sdkBounds.width-=u),f=Math.min(0+t+this.arrow.width,0+this.sdkBounds.width-this.$window.outerWidth()),f=Math.max(0+p+this.arrow.width,f),s.removeClass(" right ").addClass(" left "),_.isUndefined(i)||(C=this.$window.outerWidth())&&(t+C>this.sdkBounds.width-this.arrow.width+5&&this.leftX>C?(f=this.leftX-C+0-this.arrow.width,s.removeClass(" left ").addClass(" right ")):f=0+t+this.arrow.width),this.$window.css(" left ",f+" px ")),_.isUndefined(e)||(g=$(" # id_panel_top "),w=0,g.length?(b=" none "!==g.css(" display ")?g.height():0,w+=this.sdkBounds.paddingTop):(g=$(" # ws - h - scrollbar "),g.length&&(b=" none "!==g.css(" display ")?g.height():0,w-=this.sdkBounds.paddingTop)),this.sdkBounds.height-=b,v=this.$window.outerHeight(),y=Math.min(0+l-v,this.arrowPosY+0-this.arrow.height),y=Math.max(y,w),this.$window.css(" top ",y+" px "))),this.calculateSizeOfContent()}},calculateSizeOfContent:function(t){if(!t||this.$window.is(" : visible ")){this.$window.css({overflow:" hidden "});var e=$(" # id - review - arrow "),i=$(" # id - review - popover "),n=null,o=null,s=null,a=0,r="",l=0,c=0,d=0,h=0,p=0,m=0;i&&e&&i.get(0)&&(i.css({height:" 100 % "}),(n=i.get(0).getBoundingClientRect())&&(o=$(" # editor_sdk "))&&o.get(0)&&(s=o.get(0).getBoundingClientRect())&&(a=s.height-2*this.sdkBounds.padding,m=0,d=this.$window.outerHeight(),r=$(" # id_panel_top "),r.length?(l=" none "!==r.css(" display ")?r.height():0,m+=this.sdkBounds.paddingTop):(r=$(" # ws - h - scrollbar "),r.length&&(l=" none "!==r.css(" display ")?r.height():0,m-=this.sdkBounds.paddingTop)),h=Math.max(i.outerHeight(),this.$window.outerHeight()),a<=h?(this.$window.css({maxHeight:a-l+" px ",top:0+l+" px "}),i.css({height:a-l-3+" px "}),c=Math.min(c,a-(l+this.arrow.margin+this.arrow.width)),e.css({top:c+" px "})):(h=d,h>0&&(n.top+h>a+0||0===n.height)&&(p=Math.min(0+a-h,this.arrowPosY+0-this.arrow.height),p=Math.max(p,m),this.$window.css({top:p+" px "})),c=Math.max(this.arrow.margin,this.arrowPosY-(a-h)-this.arrow.width),c=Math.min(c,h-this.arrow.margin-this.arrow.width),e.css({top:c+" px "})))),this.$window.css({overflow:""})}}}),Common.Views.ReviewChanges=Common.UI.BaseView.extend(_.extend({el:" # review - changes - panel ",options:{},initialize:function(t){Common.UI.BaseView.prototype.initialize.call(this,t),this.template=['<div class=" review - group " style="">','<div id=" id - review - button - prev " style=""></div>','<div id=" id - review - button - next " style=""></div>','<div class=" separator "/>'," < /div>",'<div class="review-group" style="">','<div id="id-review-button-accept" style=""></div>','<div id="id-review-button-reject" style=""></div>','<div class="separator"/>',"</div>",'<div class="review-group">','<div id="id-review-button-close" style=""></div>',"</div>"].join(""),this.store=this.options.store,this.popoverChanges=this.options.popoverChanges},render:function(){var t=$(this.el);t.addClass("review-changes"),t.html(_.template(this.template)({scope:this})),this.btnPrev=new Common.UI.Button({cls:"btn-toolbar",iconCls:"img-commonctrl review-prev",value:1,hint:this.txtPrev,hintAnchor:"top"}),this.btnPrev.ren
; 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 DE . Views . ParagraphSettingsAdvanced ({ tableStylerRows : 2 , tableStylerColumns : 1 , paragraphProps : o , borderProps : e . borderAdvancedProps , isChart : e . isChart , api : e . api , handler : function ( t , i ){ "ok" == t && e . api && ( e . borderAdvancedProps = i . borderProps , e . api . paraApply ( i . paragraphProps )), e . fireEvent ( "editcomplete" , e )}}). show (); break }}}}, addNewColor : function (){ this . mnuColorPicker . addNewColor ( "object" == typeof this . btnColor . color ? this . btnColor . color . color : this . btnColor . color )}, UpdateThemeColors : function (){ this . mnuColorPicker || ( this . btnColor . setMenu ( new Common . UI . Menu ({ items : [{ template : i . template ( '<div id="paragraph-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>' )},{ template : i . template ( '<a id="paragraph-color-new" style="padding-left:12px;">' + this . textNewColor + "</a>" )}]})), this . mnuColorPicker = new Common . UI . ThemeColorPalette ({ el : e ( "#paragraph-color-menu" ), transparent :! 0 }), this . mnuColorPicker . on ( "select" , i . bind ( this . onColorPickerSelect , this ))), this . mnuColorPicker . updateColors ( Common . Utils . ThemeColor . getEffectColors (), Common . Utils . ThemeColor . getStandartColors ())}, onHideMenus : function ( t , e , i ){ i || this . fireEvent ( "editcomplete" , this )}, setLocked : function ( t ){ this . _locked = t }, disableControls : function ( t ){ this . _state . DisabledControls !== t && ( this . _state . DisabledControls = t , i . each ( this . lockedControls , function ( e ){ e . setDisabled ( t )}), this . linkAdvanced . toggleClass ( "disabled" , t ))}, hideTextOnlySettings : function ( t ){ this . _state . HideTextOnlySettings !== t && ( this . _state . HideTextOnlySettings = t , this . TextOnlySettings . toggleClass ( "hidden" , 1 == t ))}, strParagraphSpacing : "Paragraph Spacing" , strSomeParagraphSpace : "Don't add interval between paragraphs of the same style" , strLineHeight : "Line Spacing" , strSpacingBefore : "Before" , strSpacingAfter : "After" , textAuto : "Multiple" , textAtLeast : "At least" , textExact : "Exactly" , textAdvanced : "Show advanced settings" , textAt : "At" , txtAutoText : "Auto" , textBackColor : "Background color" , textNewColor : "Add New Custom Color" }, DE . Views . ParagraphSettings || {}))}), define ( "text!documenteditor/main/app/template/HeaderFooterSettings.template" ,[], function (){ return '<table cols="1">\r\n <tr>\r\n <td>\r\n <label class="header"><%= scope.textPageNum %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div id="headerfooter-button-top-left" style="display: inline-block; margin-right:5px;"></div>\r\n <div id="headerfooter-button-top-center" style="display: inline-block; margin-right:5px;"></div>\r\n <div id="headerfooter-button-top-right" style="display: inline-block; margin-right:5px;"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div id="headerfooter-button-bottom-left" style="display: inline-block; margin-right:5px;"></div>\r\n <div id="headerfooter-button-bottom-center" style="display: inline-block; margin-right:5px;"></div>\r\n <div id="headerfooter-button-bottom-right" style="display: inline-block; margin-right:5px;"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <label class="header"><%= scope.textPosition %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <label id="headerfooter-label-position" class="input-label"><%= scope.textHeaderFromTop %></label>\r\n <div id="headerfooter-spin-position"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <label class="header"><%= scope.textOptions %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div id="headerfooter-check-diff-first"></div>\r\n
}),this.spnHeight.on("change",_.bind(function(t,e,i,n){var o=t.getNumberValue(),s=null;this.btnRatio.pressed&&(s=o*this._nRatio,s>this.sizeMax.width&&(s=this.sizeMax.width,o=s/this._nRatio,this.spnHeight.setValue(o,!0)),this.spnWidth.setValue(s,!0)),this._changedProps&&(this._changedProps.put_Height(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue())),this._changedProps.put_Width(Common.Utils.Metric.fnRecalcToMM(this.spnWidth.getNumberValue())))},this)),this.spinners.push(this.spnHeight),this.btnOriginalSize=new Common.UI.Button({el:$("#image-advanced-button-original-size")}),this.btnOriginalSize.on("click",_.bind(function(t,e){this.spnWidth.setValue(this.sizeOriginal.width,!0),this.spnHeight.setValue(this.sizeOriginal.height,!0),this._nRatio=this.sizeOriginal.width/this.sizeOriginal.height,this._changedProps&&(this._changedProps.put_Height(Common.Utils.Metric.fnRecalcToMM(this.spnHeight.getNumberValue())),this._changedProps.put_Width(Common.Utils.Metric.fnRecalcToMM(this.spnWidth.getNumberValue())))},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($("#image-advanced-button-ratio")),this.btnRatio.on("click",_.bind(function(t,e){t.pressed&&this.spnHeight.getNumberValue()>0&&(this._nRatio=this.spnWidth.getNumberValue()/this.spnHeight.getNumberValue()),this._changedProps&&this._changedProps.asc_putLockAspect(t.pressed)},this)),this.radioHSize=new Common.UI.RadioBox({el:$("#shape-radio-hsize"),name:"asc-radio-width",checked:!0}),this.radioHSize.on("change",_.bind(this.onRadioHSizeChange,this)),this.radioHSizePc=new Common.UI.RadioBox({el:$("#shape-radio-hsizepc"),name:"asc-radio-width"}),this.radioHSizePc.on("change",_.bind(this.onRadioHSizePcChange,this)),this.radioVSize=new Common.UI.RadioBox({el:$("#shape-radio-vsize"),name:"asc-radio-height",checked:!0}),this.radioVSize.on("change",_.bind(this.onRadioVSizeChange,this)),this.radioVSizePc=new Common.UI.RadioBox({el:$("#shape-radio-vsizepc"),name:"asc-radio-height"}),this.radioVSizePc.on("change",_.bind(this.onRadioVSizePcChange,this)),this.chRatio=new Common.UI.CheckBox({el:$("#shape-checkbox-ratio"),labelText:this.textAspectRatio}),this.chRatio.on("change",_.bind(function(t,e,i,n){"checked"==t.getValue()&&this.spnShapeHeight.getNumberValue()>0&&(this._nRatio=this.spnShapeWidth.getNumberValue()/this.spnShapeHeight.getNumberValue()),this._changedProps&&this._changedProps.asc_putLockAspect("checked"==t.getValue())},this)),this.spnShapeWidth=new Common.UI.MetricSpinner({el:$("#shape-advanced-spin-width"),step:.1,width:80,defaultUnit:"cm",value:"3 cm",maxValue:55.88,minValue:0}),this.spnShapeWidth.on("change",_.bind(function(t,e,i,n){if("checked"==this.chRatio.getValue()&&!this.chRatio.isDisabled()){var o=t.getNumberValue(),s=o/this._nRatio;s>this.sizeMax.height&&(s=this.sizeMax.height,o=s*this._nRatio,this.spnShapeWidth.setValue(o,!0)),this.spnShapeHeight.setValue(s,!0)}this._changedProps&&(this._changedProps.put_Width(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue())),this.fillShapeHeight())},this)),this.spinners.push(this.spnShapeWidth),this.spnShapeHeight=new Common.UI.MetricSpinner({el:$("#shape-advanced-spin-height"),step:.1,width:80,defaultUnit:"cm",value:"3 cm",maxValue:55.88,minValue:0}),this.spnShapeHeight.on("change",_.bind(function(t,e,i,n){var o=t.getNumberValue(),s=null;"checked"!=this.chRatio.getValue()||this.chRatio.isDisabled()||(s=o*this._nRatio,s>this.sizeMax.width&&(s=this.sizeMax.width,o=s/this._nRatio,this.spnShapeHeight.setValue(o,!0)),this.spnShapeWidth.setValue(s,!0)),this._changedProps&&(this._changedProps.put_Height(Common.Utils.Metric.fnRecalcToMM(t.getNumberValue())),this.fillShapeWidth())},this)),this.spinners.push(this.spnShapeHeight),this.spnShapeWidthPc=new Common.UI.MetricSpinner({el:$("#shape-advanced-spin-width-rel"),disabled:!0,step:1,width:80,defaultUnit:"%",value:"1 %",maxValue:1e3,minValue:1}),this.spnShapeWidthPc.on("change",_.bind(function(t,e,i,n){this._changedProps&&(null!==this._changedProps.get_S
}else for(this.radioVPosition.setValue(!0),e=n.get_Value(),this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(e)),e=n.get_RelativeFrom(),o=0;o<this._arrVRelative.length;o++)if(e==this._arrVRelative[o].value){this.cmbVPosition.setValue(e),this._state.VPositionFrom=e;break}this.chMove.setValue(e==Asc.c_oAscRelativeFromV.Line||e==Asc.c_oAscRelativeFromV.Paragraph,!0),this.chMove.setDisabled(!n.get_UseAlign()&&n.get_Percent())}this.chOverlap.setValue(null!==t.get_AllowOverlap()&&void 0!==t.get_AllowOverlap()?t.get_AllowOverlap():"indeterminate",!0),t.get_Height()>0&&(this._nRatio=t.get_Width()/t.get_Height());var s=t.get_ShapeProperties(),a=t.get_ChartProperties();if(this.btnOriginalSize.setVisible(!(s||a)),this.btnOriginalSize.setDisabled(null===t.get_ImageUrl()||void 0===t.get_ImageUrl()),this.btnsCategory[4].setVisible(null!==s&&!s.get_FromChart()),this.btnsCategory[5].setVisible(null!==s&&!s.get_FromChart()),this.btnsCategory[2].setDisabled(t.get_FromGroup()),s){this._objectType=Asc.c_oAscTypeSelectElement.Shape,this._setShapeDefaults(s),this.setTitle(this.textTitleShape),e=t.asc_getLockAspect(),this.chRatio.setValue(e),this.spnShapeWidth.setMaxValue(this.sizeMax.width),this.spnShapeHeight.setMaxValue(this.sizeMax.height);var r=t.get_SizeRelH();if(r){for(this.radioHSizePc.setValue(!0),this.spnShapeWidthPc.setValue(r.get_Value()),e=r.get_RelativeFrom(),o=0;o<this._arrHRelativePc.length;o++)if(e==this._arrHRelativePc[o].value){this.cmbWidthPc.setValue(e),this.spnShapeWidth.setValue(Common.Utils.Metric.fnRecalcFromMM(this._arrHRelativePc[o].size*r.get_Value()/100).toFixed(2),!0),this._state.ShapeWidthPcFrom=e;break}}else this.radioHSize.setValue(!0),e=t.get_Width(),this.spnShapeWidth.setValue(void 0!==e?Common.Utils.Metric.fnRecalcFromMM(e).toFixed(2):"",!0);var l=t.get_SizeRelV();if(l){for(this.radioVSizePc.setValue(!0),this.spnShapeHeightPc.setValue(l.get_Value()),e=l.get_RelativeFrom(),o=0;o<this._arrVRelativePc.length;o++)if(e==this._arrVRelativePc[o].value){this.cmbHeightPc.setValue(e),this.spnShapeHeight.setValue(Common.Utils.Metric.fnRecalcFromMM(this._arrVRelativePc[o].size*l.get_Value()/100).toFixed(2),!0),this._state.ShapeHeightPcFrom=e;break}}else this.radioVSize.setValue(!0),e=t.get_Height(),this.spnShapeHeight.setValue(void 0!==e?Common.Utils.Metric.fnRecalcFromMM(e).toFixed(2):"",!0);this.chRatio.setDisabled(this.radioVSizePc.getValue()||this.radioHSizePc.getValue());var c=s.get_paddings();if(c){var d=c.get_Left();this.spnMarginLeft.setValue(null!==d&&void 0!==d?Common.Utils.Metric.fnRecalcFromMM(d):"",!0),d=c.get_Top(),this.spnMarginTop.setValue(null!==d&&void 0!==d?Common.Utils.Metric.fnRecalcFromMM(d):"",!0),d=c.get_Right(),this.spnMarginRight.setValue(null!==d&&void 0!==d?Common.Utils.Metric.fnRecalcFromMM(d):"",!0),d=c.get_Bottom(),this.spnMarginBottom.setValue(null!==d&&void 0!==d?Common.Utils.Metric.fnRecalcFromMM(d):"",!0)}this.btnsCategory[5].setDisabled(null===c)}else e=t.asc_getLockAspect(),a?(this._objectType=Asc.c_oAscTypeSelectElement.Chart,this.setTitle(this.textTitleChart)):this.setTitle(this.textTitle),this.btnRatio.toggle(e),this.spnWidth.setMaxValue(this.sizeMax.width),this.spnHeight.setMaxValue(this.sizeMax.height),e=t.get_Width(),this.spnWidth.setValue(void 0!==e?Common.Utils.Metric.fnRecalcFromMM(e).toFixed(2):"",!0),e=t.get_Height(),this.spnHeight.setValue(void 0!==e?Common.Utils.Metric.fnRecalcFromMM(e).toFixed(2):"",!0);e=t.asc_getTitle(),this.inputAltTitle.setValue(e||""),e=t.asc_getDescription(),this.textareaAltDescription.val(e||""),this._changedProps=new Asc.asc_CImgProperty}},getSettings:function(){var t=this._changedProps;if(this._objectType==Asc.c_oAscTypeSelectElement.Shape&&(t.put_ShapeProperties(this._changedShapeProps),this.Margins&&(null!==t.get_ShapeProperties()&&void 0!==t.get_ShapeProperties()||t.put_ShapeProperties(new Asc.asc_CShapeProperty),t.get_ShapeProperties().put_paddings(this.Margins))),this._originalProps.get_WrappingStyle()===Asc.c_oAscWrapStyle2.Inline&&void 0!==t.get_WrappingStyle()&&t.get_WrappingStyle()!==Asc.c_oAscWrapStyle2.Inline){if(null===t.get_Po
;this.labelWidth[0].innerHTML=this.textWidth+": "+Common.Utils.Metric.fnRecalcFromMM(e).toFixed(1)+" "+Common.Utils.Metric.getCurrentMetricName(),this.labelHeight[0].innerHTML=this.textHeight+": "+Common.Utils.Metric.fnRecalcFromMM(i).toFixed(1)+" "+Common.Utils.Metric.getCurrentMetricName();var n=new Asc.asc_CImgProperty;n.put_Width(e),n.put_Height(i),this.api.ImgApply(n),this.fireEvent("editcomplete",this)}},insertFromUrl:function(){var t=this;new Common.Views.ImageFromUrlDialog({handler:function(e,n){if("ok"==e&&t.api){var o=n.replace(/ /g,"");if(!i.isEmpty(o)){var s=new Asc.asc_CImgProperty;s.put_ImageUrl(o),t.api.ImgApply(s)}}t.fireEvent("editcomplete",t)}}).show()},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.Image==n){var a;e.btnOriginalSize.isDisabled()||(a=e.api.get_OriginalSizeImage())&&(a={width:a.get_ImageWidth(),height:a.get_ImageHeight()});var r=this.api.GetSectionInfo();r={width:r.get_PageWidth()-(r.get_MarginLeft()+r.get_MarginRight()),height:r.get_PageHeight()-(r.get_MarginTop()+r.get_MarginBottom())},new DE.Views.ImageSettingsAdvanced({imageProps:o,sizeOriginal:a,sizeMax:r,sectionProps:e.api.asc_GetSectionProps(),handler:function(t,i){"ok"==t&&e.api&&e.api.ImgApply(i.imageProps),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))},textSize:"Size",textWrap:"Wraping Style",textWidth:"Width",textHeight:"Height",textOriginalSize:"Default Size",textInsert:"Replace Image",textFromUrl:"From URL",textFromFile:"From File",textAdvanced:"Show advanced settings",txtInline:"Inline",txtSquare:"Square",txtTight:"Tight",txtThrough:"Through",txtTopAndBottom:"Top and bottom",txtBehind:"Behind",txtInFront:"In front",textEditObject:"Edit Object",textEdit:"Edit"},DE.Views.ImageSettings||{}))}),define("text!documenteditor/main/app/template/ChartSettings.template",[],function(){return' < table cols = "2" > \ r \ n < tr > \ r \ n < td colspan = 2 > \ r \ n < label class = "header" ><%= scope . textSize %>< /label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" width="50%">\r\n <label id="chart-label-width" class="input-label"><%= scope.textWidth %></label>\r\n </td>\r\n <td class="padding-small" width="50%">\r\n <label id="chart-label-height" class="input-label"><%= scope.textHeight %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=2>\r\n <label class="header"><%= scope.textWrap %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <div id="chart-button-wrap" style=""></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=2>\r\n <label class="header"><%= scope.textChartType %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <div id="chart-button-type" style=""></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <div class="" id="chart-combo-style" style="width: 100%;"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small" colspan=2>\r\n <button type="button" class="btn btn-
CheckLast :! 1 , CheckColBanded :! 1 , WrapStyle :- 1 , CanBeFlow :! 0 , TableAlignment :- 1 , TableIndent : 0 , BackColor : "#000000" , RepeatRow :! 1 , DisabledControls :! 1 }, this . lockedControls = [], this . _locked =! 1 , this . _originalLook = new Asc . CTablePropLook , this . _originalProps = null , this . CellBorders = {}, this . CellColor = { Value : 1 , Color : "transparent" }, this . BorderSize = 1 , this . _noApply =! 1 , this . _wrapHandled =! 1 , this . render ()}, onCheckTemplateChange : function ( t , e , i , n , o ){ if ( this . api ){ var s = new Asc . CTableProp , a = this . _originalLook ? this . _originalLook : new Asc . CTablePropLook ; switch ( t ){ case 0 : a . put_FirstRow ( "checked" == e . getValue ()); break ; case 1 : a . put_LastRow ( "checked" == e . getValue ()); break ; case 2 : a . put_BandHor ( "checked" == e . getValue ()); break ; case 3 : a . put_FirstCol ( "checked" == e . getValue ()); break ; case 4 : a . put_LastCol ( "checked" == e . getValue ()); break ; case 5 : a . put_BandVer ( "checked" == e . getValue ())} s . put_TableLook ( a ), this . api . tblApply ( s )} this . fireEvent ( "editcomplete" , this )}, onTableTemplateSelect : function ( t , e ){ if ( this . api &&! this . _noApply ){ var i = new Asc . CTableProp ; i . put_TableStyle ( e . get ( "templateId" )), this . api . tblApply ( i )} this . fireEvent ( "editcomplete" , this )}, onBtnWrapClick : function ( t , e ){ if ( this . api && t . pressed &&! this . _noApply ){ var i = new Asc . CTableProp ; i . put_TableWrap ( t . options . posId ), t . options . posId == c_tableWrap . TABLE_WRAP_NONE && ( this . _state . TableAlignment < 0 && ( this . _state . TableAlignment = c_tableAlign . TABLE_ALIGN_LEFT ), i . put_TableAlignment ( this . _state . TableAlignment ), i . put_TableIndent ( this . _state . TableIndent )), i . put_CellSelect ( ! 0 ), this . api . tblApply ( i )} if ( this . _wrapHandled ) return void ( this . _wrapHandled =! 1 ); this . _wrapHandled =! 0 , this . fireEvent ( "editcomplete" , this )}, onCheckRepeatRowChange : function ( t , e , i , n ){ if ( this . api ){ var o = new Asc . CTableProp ; o . put_RowsInHeader ( "checked" == t . getValue ()), this . api . tblApply ( o )} this . fireEvent ( "editcomplete" , this )}, onColorsBackSelect : function ( t , e ){ if ( this . btnBackColor . setColor ( e ), this . CellColor = { Value : 1 , Color : e }, this . api ){ var i = new Asc . CTableProp , n = new Asc . CBackground ; i . put_CellsBackground ( n ), "transparent" == this . CellColor . Color ? n . put_Value ( 1 ) : ( n . put_Value ( 0 ), n . put_Color ( Common . Utils . ThemeColor . getRgbColor ( this . CellColor . Color ))), i . put_CellSelect ( ! 0 ), this . api . tblApply ( i )} this . fireEvent ( "editcomplete" , this )}, addNewColor : function ( t , e ){ t . addNewColor ( "object" == typeof e . color ? e . color . color : e . color )}, onColorsBorderSelect : function ( t , e ){ this . btnBorderColor . setColor ( e )}, onBtnBordersClick : function ( t , e ){ if ( this . _UpdateBordersStyle ( t . options . strId , ! 0 ), this . api ){ var i = new Asc . CTableProp ; i . put_CellBorders ( this . CellBorders ), i . put_CellSelect ( ! 0 ), this . api . tblApply ( i )} this . fireEvent ( "editcomplete" , this )}, onBorderSizeSelect : function ( t , e ){ this . BorderSize = e . value }, onEditClick : function ( t , e , i ){ if ( this . api ) switch ( e . value ){ case 0 : this . api . selectRow (); break ; case 1 : this . api . selectColumn (); break ; case 2 : this . api . selectCell (); break ; case 3 : this . api . selectTable (); break ; case 4 : this . api . addRowAbove (); break ; case 5 : this . api . addRowBelow (); break ; case 6 : this . api . addColumnLeft (); break ; case 7 : this . api . addColumnRight (); break ; case 8 : this . api . remRow (); break ; case 9 : this . api . remColumn (); break ; case 10 : this . api . remTable (); break ; case 11 : this . api . MergeCells (); break ; case 12 : this . splitCells ( t , e , i )} this . fireEvent ( "editcomplete" , this )}, splitCells : function ( t , e , i ){ var n = this ; new Common . Views . InsertTableDialog ({ handler : function ( t , e ){ "ok" == t && ( n . api && n . api . SplitCell ( e . columns , e . rows ), n . fireEvent ( "editcomplete" , n ))}}). show ()}, render : function (){ e ( this . el ). html ( this . template ({ scope : this }))}, setApi : function ( t ){ return this . api = t , t && ( this . api . asc_registerCallback ( "asc_onTblWrapStyleChanged" , i . bind ( this . _TblWrapStyleChanged , this )), this . api . asc_registerCallback ( "asc_onTblAlignChanged" , i . bind ( this . _TblAlignChanged , this )), this . api . asc_registerCallback ( "asc_onInitTableTemplates" , i . bind ( this . _onInitTemplates , this ))), this }, createDelayedControls : function (){ this . chHeader = new Common . UI . CheckBox ({ el : e ( "#table-checkbox-header" ), labelText : this . textHeader }), this . lockedControls . push ( this . chHeader ), this . chTotal = new Common . UI . CheckBox ({ el : e ( "#table-checkbox-total" ), labelText : this . textTotal }), this . lockedControls . push ( this . chTotal ), this . chBanded = n
; n . find ( ".track-center" ). width ( i . options . width - 14 ), n . width ( i . options . width ); var o = function ( t ){ t . preventDefault (), t . stopPropagation (); var e = t . data . index , n = i . thumbs [ e ]. value , a = e - 1 < 0 ? 0 : i . thumbs [ e - 1 ]. position , r = e + 1 < i . thumbs . length ? i . thumbs [ e + 1 ]. position : 100 , l = Math . round (( t . pageX * Common . Utils . zoom () - i . cmpEl . offset (). left - i . _dragstart ) / i . width * 100 ), c = l < a || l > r , d = Math . max ( 0 , Math . min ( 100 , l )), h = d / i . delta + i . minValue ; i . setThumbPosition ( e , d ), i . thumbs [ e ]. value = h , c && i . sortThumbs (), $ ( document ). off ( "mouseup" , o ), $ ( document ). off ( "mousemove" , s ), i . _dragstart = void 0 , i . trigger ( "changecomplete" , i , h , n )}, s = function ( t ){ if ( ! i . disabled && void 0 !== i . _dragstart ){ t . preventDefault (), t . stopPropagation (); var e = t . data . index , n = i . thumbs [ e ]. value , o = e - 1 < 0 ? 0 : i . thumbs [ e - 1 ]. position , s = e + 1 < i . thumbs . length ? i . thumbs [ e + 1 ]. position : 100 , a = Math . round (( t . pageX * Common . Utils . zoom () - i . cmpEl . offset (). left - i . _dragstart ) / i . width * 100 ), r = a < o || a > s , l = Math . max ( 0 , Math . min ( 100 , a )), c = l / i . delta + i . minValue ; i . setThumbPosition ( e , l ), i . thumbs [ e ]. value = c , r && i . sortThumbs (), Math . abs ( c - n ) > . 001 && i . trigger ( "change" , i , c , n )}}, a = function ( t ){ if ( ! i . disabled ){ var n = t . data . index , a = i . thumbs [ n ]. thumb ; i . _dragstart = t . pageX * Common . Utils . zoom () - a . offset (). left - a . width () / 2 , i . setActiveThumb ( n ), e . each ( i . thumbs , function ( t , e ){ n == e ? t . thumb . css ( "z-index" , 500 ) : t . thumb . css ( "z-index" , "" )}), $ ( document ). on ( "mouseup" , null , t . data , o ), $ ( document ). on ( "mousemove" , null , t . data , s )}}, r = function ( t ){ if ( ! i . disabled ){ var e = Math . max ( 0 , Math . min ( 100 , Math . round (( t . pageX * Common . Utils . zoom () - i . cmpEl . offset (). left ) / i . width * 100 ))), n = l ( e ), o = i . thumbs [ n ]. value , s = e / i . delta + i . minValue ; i . setThumbPosition ( n , e ), i . thumbs [ n ]. value = s , i . trigger ( "change" , i , s , o ), i . trigger ( "changecomplete" , i , s , o )}}, l = function ( t ){ for ( var e , n = 100 , o = 0 , s = i . thumbs . length , a = 0 ; a < s ; a ++ ) if ( e = Math . abs ( i . thumbs [ a ]. position - t ), Math . abs ( e <= n )){ var r = i . thumbs [ a + 1 ], l = i . thumbs [ a - 1 ]; if ( void 0 !== l && t < l . position ) continue ; if ( void 0 !== r && t > r . position ) continue ; o = a , n = e } return o }; return this . $thumbs = n . find ( ".thumb" ), e . each ( this . $thumbs , function ( t , e ){ var n = $ ( t ); i . thumbs . push ({ thumb : n , index : e }), i . setValue ( e , i . options . values [ e ]), n . on ( "mousedown" , null , i . thumbs [ e ], a )}), i . setActiveThumb ( 0 , ! 0 ), i . rendered || n . on ( "mousedown" , ".track" , r ), i . rendered =! 0 , this }, setActiveThumb : function ( t , e ){ this . currentThumb = t , this . $thumbs . removeClass ( "active" ), this . thumbs [ t ]. thumb . addClass ( "active" ), ! 0 !== e && this . trigger ( "thumbclick" , this , t )}, setThumbPosition : function ( t , e ){ this . thumbs [ t ]. position = e , this . thumbs [ t ]. thumb . css ({ left : e + "%" })}, setValue : function ( t , e ){ this . thumbs [ t ]. value = Math . max ( this . minValue , Math . min ( this . maxValue , e )), this . setThumbPosition ( t , Math . round (( e - this . minValue ) * this . delta ))}, getValue : function ( t ){ return this . thumbs [ t ]. value }, getValues : function (){ var t = []; return e . each ( this . thumbs , function ( e ){ t . push ( e . value )}), t }, setDisabled : function ( t ){ t !== this . disabled && this . cmpEl . toggleClass ( "disabled" , t ), this . disabled = t }, sortThumbs : function (){ this . thumbs . sort ( function ( t , e ){ return t . position - e . position }); var t = []; return e . each ( this . thumbs , function ( e , i ){ t . push ( e . index ), e . index = i }), t }})}), void 0 === Common ) var Common = {}; if ( define ( "common/main/lib/component/MultiSliderGradient" ,[ "common/main/lib/component/Slider" , "underscore" ], function ( t , e ){ "use strict" ; Common . UI . MultiSliderGradient = Common . UI . MultiSlider . extend ({ options : { width : 100 , minValue : 0 , maxValue : 100 , values : [ 0 , 100 ], colorValues : [ "#000000" , "#ffffff" ], currentThumb : 0 }, disabled :! 1 , template : e . template ([ '<div class="slider multi-slider-gradient">' , '<div class="track"></div>' , "<% _.each(items, function(item) { %>" , '<div class="thumb img-commonctrl" style="">' , '<div class="thumb-top"></div>' , '<div class="thumb-bottom"></div>' , "</div>" , "<% }); %>" , "</div>" ]. join ( "" )), initialize : function ( t ){ this . styleStr = "" , Common . Utils . isChrome && Common . Utils . chromeVersion < 10 || Common . Utils . isSafari && Common . Utils . safariVersion < 5.1 ? this . styleStr = "-webkit-gradient(linear, left top, right top, color-stop({1}%,{0}), color-stop({3}%,{2})); /* Chrome,Safari4+ */" : Common . Utils . isChrome || Common . Utils . isSafari ? this . styleStr = "-webkit-linear-gradient(left, {0} {1}%, {2} {3}%)" : Common . Utils . isGecko ? this . styleStr = "-m
this.sldrGradient.setColorValue(Common.Utils.String.format(" # { 0 } "," object "==typeof this.GradColor.colors[0]?this.GradColor.colors[0].color:this.GradColor.colors[0]),0),this.sldrGradient.setColorValue(Common.Utils.String.format(" # { 0 } "," object "==typeof this.GradColor.colors[1]?this.GradColor.colors[1].color:this.GradColor.colors[1]),1),this.sldrGradient.setValue(0,this.GradColor.values[0]),this.sldrGradient.setValue(1,this.GradColor.values[1]),this.OriginalFillType=Asc.c_oAscFill.FILL_TYPE_GRAD,this.FGColor={Value:1,Color:this.GradColor.colors[0]},this.BGColor={Value:1,Color:" ffffff "},this.ShapeColor={Value:1,Color:this.GradColor.colors[0]}}this._state.FillType!==this.OriginalFillType&&(this.cmbFillSrc.setValue(null===this.OriginalFillType?"":this.OriginalFillType),this._state.FillType=this.OriginalFillType,this.ShowHideElem(this.OriginalFillType)),e(this.btnTexture.el).find(" . form - control ").prop(" innerHTML ",this.textSelectTexture);var C=typeof this.ShapeColor.Color,v=typeof this._state.ShapeColor;if(C!==v||" object "==C&&(this.ShapeColor.Color.effectValue!==this._state.ShapeColor.effectValue||this._state.ShapeColor.color.indexOf(this.ShapeColor.Color.color)<0)||" object "!=C&&this._state.ShapeColor.indexOf(this.ShapeColor.Color)<0){if(this.btnBackColor.setColor(this.ShapeColor.Color)," object "==typeof this.ShapeColor.Color){for(var _=!1,y=0;y<10;y++)if(Common.Utils.ThemeColor.ThemeValues[y]==this.ShapeColor.Color.effectValue){this.colorsBack.select(this.ShapeColor.Color,!0),_=!0;break}_||this.colorsBack.clearSelection()}else this.colorsBack.select(this.ShapeColor.Color,!0);this._state.ShapeColor=this.ShapeColor.Color}var w,x=n.get_stroke(),S=x.get_type();if(x?(S==Asc.c_oAscStrokeType.STROKE_COLOR?(p=x.get_color(),p?p.get_type()==Asc.c_oAscColor.COLOR_TYPE_SCHEME?this.BorderColor={Value:1,Color:{color:Common.Utils.ThemeColor.getHexColor(p.get_r(),p.get_g(),p.get_b()),effectValue:p.get_value()}}:this.BorderColor={Value:1,Color:Common.Utils.ThemeColor.getHexColor(p.get_r(),p.get_g(),p.get_b())}:this.BorderColor={Value:1,Color:" transparent "}):this.BorderColor={Value:1,Color:" transparent "},w=x.asc_getPrstDash()):(S=null,this.BorderColor={Value:0,Color:" transparent "}),C=typeof this.BorderColor.Color,v=typeof this._state.StrokeColor,C!==v||" object "==C&&(this.BorderColor.Color.effectValue!==this._state.StrokeColor.effectValue||this._state.StrokeColor.color.indexOf(this.BorderColor.Color.color)<0)||" object "!=C&&(this._state.StrokeColor.indexOf(this.BorderColor.Color)<0||" object "==typeof this.btnBorderColor.color)){if(this.btnBorderColor.setColor(this.BorderColor.Color)," object "==typeof this.BorderColor.Color){for(var _=!1,y=0;y<10;y++)if(Common.Utils.ThemeColor.ThemeValues[y]==this.BorderColor.Color.effectValue){this.colorsBorder.select(this.BorderColor.Color,!0),_=!0;break}_||this.colorsBorder.clearSelection()}else this.colorsBorder.select(this.BorderColor.Color,!0);this._state.StrokeColor=this.BorderColor.Color}if(this._state.StrokeType!==S||S==Asc.c_oAscStrokeType.STROKE_COLOR){if(S==Asc.c_oAscStrokeType.STROKE_COLOR){var A=x.get_width(),T=Math.abs(this._state.StrokeWidth-A)<1e-5&&!new RegExp(this.txtPt+" \\ s * $ ").test(this.cmbBorderSize.getRawValue());if(Math.abs(this._state.StrokeWidth-A)>1e-5||T||(null===this._state.StrokeWidth||null===A)&&this._state.StrokeWidth!==A){this._state.StrokeWidth=A,null!==A&&(A=this._mm2pt(A));var k=null===A?A:i.find(this.cmbBorderSize.store.models,function(t){if(A<t.attributes.value+1e-5&&A>t.attributes.value-1e-5)return!0});k?this.cmbBorderSize.selectRecord(k):this.cmbBorderSize.setValue(null!==A?parseFloat(A.toFixed(2))+" "+this.txtPt:""),this.BorderSize=A}}else S==Asc.c_oAscStrokeType.STROKE_NONE?(this._state.StrokeWidth=0,this.BorderSize=this.cmbBorderSize.store.at(0).get(" value "),this.cmbBorderSize.setValue(this.BorderSize)):(this._state.StrokeWidth=null,this.BorderSize=-1,this.cmbBorderSize.setValue(null));this._state.StrokeType=S}if(this._state.StrokeBorderType!==w&&(this.BorderType=this._state.StrokeBorderType=w,this.cmbBorderType.setValue(w)),C=typeof this.FGColor.Color,v=typeof this._state.F
define(" documenteditor / main / app / view / MailMergeSaveDlg ",[" common / main / lib / component / Window "," common / main / lib / component / LoadMask "],function(){" use strict ";DE.Views.MailMergeSaveDlg=Common.UI.Window.extend(_.extend({initialize:function(t){var e={};_.extend(e,{title:this.textTitle,width:420,height:681,header:!0},t),this.template=['<div id=" id - mail - merge - folder - placeholder "></div>'].join(""),e.tpl=_.template(this.template)(e),this.mergeFolderUrl=t.mergeFolderUrl||"",this.mergedFileUrl=t.mergedFileUrl||"",this.defFileName=t.defFileName||"",this.mergeFolderUrl=this.mergeFolderUrl.replace(" { title } ",encodeURIComponent(this.defFileName)).replace(" { fileuri } ",encodeURIComponent(this.mergedFileUrl)),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=645,t.align=" top ",t.frameBorder=0,t.scrolling=" no ",t.onload=_.bind(this._onLoad,this),$(" # id - mail - merge - folder - placeholder ").append(t),this.loadMask=new Common.UI.LoadMask({owner:$(" # id - mail - merge - folder - placeholder ")}),this.loadMask.setTitle(this.textLoading),this.loadMask.show(),t.src=this.mergeFolderUrl;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&&(_.isEmpty(t.error)||this.trigger(" mailmergeerror ",this,t.error),Common.NotificationCenter.trigger(" window : close ",this))},_onLoad:function(){this.loadMask&&this.loadMask.hide()},textTitle:" Folder for save ",textLoading:" Loading "},DE.Views.MailMergeSaveDlg||{}))}),define(" text ! documenteditor / main / app / template / MailMergeEmailDlg . template ",[],function(){return'<div id=" id - merge - email - dlg " class=" settings - panel active ">\r\n <div class=" inner - content ">\r\n <table cols=" 2 " style=" width : 100 % ; " cellpadding=" 10 ">\r\n <tr>\r\n <td class=" padding - small ">\r\n <label class=" input - label "><%= scope.textFrom %></label>\r\n <div id=" merge - email - dlg - from "></div>\r\n </td>\r\n <td class=" padding - small ">\r\n <label class=" input - label "><%= scope.textTo %></label>\r\n <div id=" merge - email - dlg - to "></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=" 2 " class=" padding - small ">\r\n <label class=" input - label "><%= scope.textSubject %></label>\r\n <div id=" merge - email - dlg - subject " style=" width : 100 % ; "></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=" 2 " class=" padding - small ">\r\n <label class=" input - label "><%= scope.textFormat %></label>\r\n <div id=" merge - email - dlg - format " style=" width : 170 px ; "></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=" 2 " class=" padding - small ">\r\n <label id=" merge - email - dlg - lbl - filename " class=" input - label disabled "><%= scope.textFileName %></label>\r\n <div id=" merge - email - dlg - filename " style=" width : 100 % ; "></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=" 2 " class=" padding - small ">\r\n <label id=" merge - email - dlg - lbl - message " class=" input - label disabled "><%= scope.textMessage %></label>\r\n <textarea id=" merge - email - dlg - message " class=" disabled form - control
return '<table cols="1">\r\n <tr>\r\n <td>\r\n <label class="header"><%= scope.textTemplate %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div class="" id="textart-combo-template" style="width: 100%; height: 64px;"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <label class="header"><%= scope.strFill %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div id="textart-combo-fill-src" style="width: 100%;"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <div id="textart-panel-color-fill" class="padding-small" style="width: 100%;">\r\n <div id="textart-back-color-btn" style=""></div>\r\n </div>\r\n <div id="textart-panel-gradient-fill" class="settings-hidden padding-small" style="width: 100%;">\r\n <div style="height:80px;">\r\n <div style="display: inline-block;">\r\n <label class="input-label" style=""><%= scope.textStyle %></label>\r\n <div id="textart-combo-grad-type" style="width: 90px;"></div>\r\n </div>\r\n <div style="display: inline-block;float: right;">\r\n <label class="input-label" style=""><%= scope.textDirection %></label>\r\n <div id="textart-button-direction" style=""></div>\r\n </div>\r\n </div>\r\n <label class="header" style="display:block;margin-bottom: 5px;"><%= scope.textGradient %></label>\r\n <div style="display: inline-block; margin-top: 3px;">\r\n <div id="textart-slider-gradient" style="display: inline-block; vertical-align: middle;"></div>\r\n </div>\r\n <div id="textart-gradient-color-btn" style="display: inline-block;float: right;"></div>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <div class="padding-small" id="textart-panel-transparent-fill" style="width: 100%;">\r\n <label class="header" style="display:block;"><%= scope.strTransparency %></label>\r\n <div style="display: inline-block; margin-top: 3px;">\r\n <label id="textart-lbl-transparency-start">0</label>\r\n <div id="textart-slider-transparency" style="display: inline-block;margin: 0 4px; vertical-align: middle;"></div>\r\n <label id="textart-lbl-transparency-end">100</label>\r\n </div>\r\n <div id="textart-spin-transparency" style="display: inline-block;float: right;"></div>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div class="separator horizontal"></div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <label class="header"><%= scope.strStroke %></label>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div style="display:inline-block;width:100px;vertical-align: middle;">\r\n <label class="input-label" style=""><%= scope.strSize %></label>\r\n <div id="textart-combo-border-size" style="width: 93px;"></div>\r\n </div>\r\n <div style="display:inline-block;vertical-align: middle;">\r\n <label class="input-label" style=""><%= scope.strColor %></label>\r\n <div id="textart-border-color-btn" style=""></div>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class="padding-small">\r\n <div style="display:inline-block;width:100px;vertical-align: middle;">\r\n <label class="input-label" style=""><%= scope.strType %></label>\r\n <div id="textart-combo-border-type" style="width: 93px;"></div>\r\
;var n=this.application.getCollection("Common.Collections.TextArt").models,o=this.cmbTextArt.menuPicker.store.length;if(o>0&&o==n.length){var s=this.cmbTextArt.menuPicker.store.models;i.each(n,function(t,e){s[e].set("imageUrl",t.get("imageUrl"))})}else this.cmbTextArt.menuPicker.store.reset(n),this.cmbTextArt.menuPicker.store.length>0&&this.cmbTextArt.fillComboView(this.cmbTextArt.menuPicker.store.at(0))},onTextArtSelect:function(t,e){if(this.api&&!this._noApply){var i=new Asc.asc_TextArtProperties;i.asc_putStyle(e.get("data")),this.shapeprops.put_TextArtProperties(i),this.api.ImgApply(this.imgprops)}this.fireEvent("editcomplete",this)},fillTransform:function(t){if(t&&t.length>1&&t[1]){for(var e=[],n=t[1],o=0;o<n.length;o++){var s=n[o];s&&s.length>0&&i.each(s,function(t){e.push({imageUrl:t.Image,type:t.Type,selected:!1})})}this.cmbTransform.menuPicker.store.add(e),this.cmbTransform.menuPicker.store.length>0&&this.cmbTransform.fillComboView(this.cmbTransform.menuPicker.store.at(0),!0)}},onTransformSelect:function(t,e){if(this.api&&!this._noApply){var i=new Asc.asc_TextArtProperties;i.asc_putForm(e.get("type")),this.shapeprops.put_TextArtProperties(i),this.api.ImgApply(this.imgprops)}this.fireEvent("editcomplete",this)},UpdateThemeColors:function(){this.btnBackColor||(this.btnBorderColor=new Common.UI.ColorButton({style:"width:45px;",menu:new Common.UI.Menu({items:[{template:i.template(' < div id = "textart-border-color-menu" style = "width: 169px; height: 220px; margin: 10px;" >< /div>')},{template:i.template('<a id="textart-border-color-new" style="padding-left:12px;">'+this.textNewColor+"</a>")}]})}),this.btnBorderColor.render(e("#textart-border-color-btn")),this.btnBorderColor.setColor("000000"),this.lockedControls.push(this.btnBorderColor),this.colorsBorder=new Common.UI.ThemeColorPalette({el:e("#textart-border-color-menu"),value:"000000"}),this.colorsBorder.on("select",i.bind(this.onColorsBorderSelect,this)),e(this.el).on("click","#textart-border-color-new",i.bind(this.addNewColor,this,this.colorsBorder,this.btnBorderColor)),this.btnGradColor=new Common.UI.ColorButton({style:"width:45px;",menu:new Common.UI.Menu({items:[{template:i.template('<div id="textart-gradient-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>')},{template:i.template('<a id="textart-gradient-color-new" style="padding-left:12px;">'+this.textNewColor+"</a>")}]})}),this.btnGradColor.render(e("#textart-gradient-color-btn")),this.btnGradColor.setColor("000000"),this.lockedControls.push(this.btnGradColor),this.colorsGrad=new Common.UI.ThemeColorPalette({el:e("#textart-gradient-color-menu"),value:"000000"}),this.colorsGrad.on("select",i.bind(this.onColorsGradientSelect,this)),e(this.el).on("click","#textart-gradient-color-new",i.bind(this.addNewColor,this,this.colorsGrad,this.btnGradColor)),this.btnBackColor=new Common.UI.ColorButton({style:"width:45px;",menu:new Common.UI.Menu({items:[{template:i.template('<div id="textart-back-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>')},{template:i.template('<a id="textart-back-color-new" style="padding-left:12px;">'+this.textNewColor+"</a>")}]})}),this.btnBackColor.render(e("#textart-back-color-btn")),this.btnBackColor.setColor("transparent"),this.lockedControls.push(this.btnBackColor),this.colorsBack=new Common.UI.ThemeColorPalette({el:e("#textart-back-color-menu"),value:"transparent",transparent:!0}),this.colorsBack.on("select",i.bind(this.onColorsBackSelect,this)),e(this.el).on("click","#textart-back-color-new",i.bind(this.addNewColor,this,this.colorsBack,this.btnBackColor))),this.colorsBorder.updateColors(Common.Utils.ThemeColor.getEffectColors(),Common.Utils.ThemeColor.getStandartColors()),this.colorsBack.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},ShowHideElem:function(t){this.FillColorContainer.toggleClass("settings-hidden",
; case "save-desktop" : this . api . asc_DownloadAs (); break ; case "saveas" : i ? n =! 1 : this . clickSaveAsFormat ( void 0 ); break ; case "print" : this . api . asc_Print ( Common . Utils . isChrome || Common . Utils . isSafari || Common . Utils . isOpera ); break ; case "exit" : Common . NotificationCenter . trigger ( "goback" ); break ; case "edit" : this . getApplication (). getController ( "Statusbar" ). setStatusCaption ( this . requestEditRightsText ), Common . Gateway . requestEditRights (); break ; case "new" : i ? n =! 1 : this . onCreateNew ( void 0 , "blank" ); break ; case "history" : if ( ! this . leftMenu . panelHistory . isVisible ()) if ( this . api . isDocumentModified ()){ var o = this ; this . api . asc_stopSaving (), Common . UI . warning ({ closable :! 1 , width : 500 , title : this . notcriticalErrorTitle , msg : this . leavePageText , buttons : [ "ok" , "cancel" ], primary : "ok" , callback : function ( t ){ "ok" == t ? ( o . api . asc_undoAllChanges (), o . showHistory ()) : o . api . asc_continueSaving ()}})} else this . showHistory (); break ; case "rename" : var o = this , s = o . api . asc_getDocumentName (); new Common . Views . RenameDialog ({ filename : s , handler : function ( t , e ){ "ok" != t || _ . isEmpty ( e . trim ()) || s === e . trim () || Common . Gateway . requestRename ( e ), Common . NotificationCenter . trigger ( "edit:complete" , o )}}). show (); break ; default : n =! 1 } n && ( t . hide (), this . leftMenu . btnFile . toggle ( ! 1 , ! 0 ))}, clickSaveAsFormat : function ( t , e ){ t ? e == Asc . c_oAscFileType . TXT ? Common . UI . warning ({ closable :! 1 , title : this . notcriticalErrorTitle , msg : this . warnDownloadAs , buttons : [ "ok" , "cancel" ], callback : _ . bind ( function ( i ){ "ok" == i && ( this . api . asc_DownloadAs ( e ), t . hide (), this . leftMenu . btnFile . toggle ( ! 1 , ! 0 ))}, this )}) : ( this . api . asc_DownloadAs ( e ), t . hide (), this . leftMenu . btnFile . toggle ( ! 1 , ! 0 )) : this . api . asc_DownloadOrigin ()}, applySettings : function ( t ){ var e = Common . localStorage . getItem ( "de-settings-inputmode" ); if ( this . api . SetTextBoxInputMode ( 1 == parseInt ( e )), this . mode . isEdit &&! this . mode . isOffline && this . mode . canCoAuthoring ){ e = Common . localStorage . getItem ( "de-settings-coauthmode" ); var i = null === e || 1 == parseInt ( e ); switch ( this . api . asc_SetFastCollaborative ( i ), e = Common . localStorage . getItem ( i ? "de-settings-showchanges-fast" : "de-settings-showchanges-strict" )){ case "all" : e = Asc . c_oAscCollaborativeMarksShowType . All ; break ; case "none" : e = Asc . c_oAscCollaborativeMarksShowType . None ; break ; case "last" : e = Asc . c_oAscCollaborativeMarksShowType . LastChanges ; break ; default : e = i ? Asc . c_oAscCollaborativeMarksShowType . None : Asc . c_oAscCollaborativeMarksShowType . LastChanges } this . api . SetCollaborativeMarksShowType ( e )} e = Common . localStorage . getItem ( "de-settings-livecomment" ); var n = Common . localStorage . getItem ( "de-settings-resolvedcomment" ); switch ( null === e || 0 != parseInt ( e ) ? this . api . asc_showComments ( ! ( null !== n && 0 == parseInt ( n ))) : this . api . asc_hideComments (), e = Common . localStorage . getItem ( "de-settings-fontrender" )){ case "1" : this . api . SetFontRenderingMode ( 1 ); break ; case "2" : this . api . SetFontRenderingMode ( 2 ); break ; case "0" : this . api . SetFontRenderingMode ( 3 )} this . mode . isEdit && ( e = Common . localStorage . getItem ( "de-settings-autosave" ), this . api . asc_setAutoSaveGap ( parseInt ( e )), e = Common . localStorage . getItem ( "de-settings-spellcheck" ), this . api . asc_setSpellCheck ( null === e || 1 == parseInt ( e ))), e = Common . localStorage . getItem ( "de-settings-showsnaplines" ), this . api . put_ShowSnapLines ( null === e || 1 == parseInt ( e )), t . hide (), this . leftMenu . btnFile . toggle ( ! 1 , ! 0 )}, onCreateNew : function ( t , e ){ if ( ! 0 === this . mode . nativeApp ) this . api . OpenNewDocument ( "blank" == e ? "" : e ); else { var i = window . open ( "blank" == e ? this . mode . createUrl : e , "_blank" ); i && i . focus ()} t && ( t . hide (), this . leftMenu . btnFile . toggle ( ! 1 , ! 0 ))}, onOpenRecent : function ( t , e ){ t && ( t . hide (), this . leftMenu . btnFile . toggle ( ! 1 , ! 0 )); var i = window . open ( e ); i && i . focus (), Common . component . Analytics . trackEvent ( "Open Recent" )}, clickToolbarSettings : function ( t ){ this . leftMenu . btnFile . pressed && "opts" == this . leftMenu . btnFile . panel . active ? this . leftMenu . close () : this . leftMenu . showMenu ( "file:opts" )}, clickStatusbarUsers : function (){ this . leftMenu . btnFile . panel . panels . rights . changeAccessRights ()}, onHideChat : function (){ $ ( this . leftMenu . btnChat . el ). blur (), Common . NotificationCenter . trigger ( "layout:changed" , "leftmenu" )}, onQuerySearch : function ( t , e , i ){ if ( i . textsearch && i . textsearch . length &&! this . api . asc_findText ( i . textsearch , "back" != t , i . matchcase , i . matchword )){ var n = this ; Co
t &&! 1 === t . result && Common . UI . error ({ title : this . criticalErrorTitle , msg : _ . isEmpty ( t . message ) ? this . errorProcessSaveResult : t . message })}, onProcessRightsChange : function ( t ){ if ( t &&! 1 === t . enabled ){ var e = this , i = this . _state . lostEditingRights ; this . _state . lostEditingRights =! this . _state . lostEditingRights , this . api . asc_coAuthoringDisconnect (), this . getApplication (). getController ( "LeftMenu" ). leftMenu . getMenu ( "file" ). panels . rights . onLostEditRights (), Common . NotificationCenter . trigger ( "api:disconnect" ), i || Common . UI . warning ({ title : this . notcriticalErrorTitle , maxwidth : 600 , msg : _ . isEmpty ( t . message ) ? this . warnProcessRightsChange : t . message , callback : function (){ e . _state . lostEditingRights =! 1 , e . onEditComplete ()}})}}, onDownloadAs : function (){ this . _state . isFromGatewayDownloadAs =! 0 ; var t = /^(?:(pdf|djvu|xps))$/ . exec ( this . document . fileType ); t && "string" == typeof t [ 1 ] ? this . api . asc_DownloadOrigin ( ! 0 ) : this . api . asc_DownloadAs ( Asc . c_oAscFileType . DOCX , ! 0 )}, onProcessMouse : function ( t ){ if ( "mouseup" == t . type ){ var e = document . getElementById ( "editor_sdk" ); if ( e ){ var i = e . getBoundingClientRect (); this . api . OnMouseUp ( t . x - i . left , t . y - i . top )}}}, onRefreshHistory : function ( t ){ if ( this . loadMask && this . loadMask . hide (), t . data . error ||! t . data . history ){ var e = this . getApplication (). getCollection ( "Common.Collections.HistoryVersions" ); e && e . size () > 0 && e . each ( function ( t ){ t . set ( "canRestore" , ! 1 )}), Common . UI . alert ({ closable :! 1 , title : this . notcriticalErrorTitle , msg : t . data . error ? t . data . error : this . txtErrorLoadHistory , iconCls : "warn" , buttons : [ "ok" ], callback : _ . bind ( function ( t ){ this . onEditComplete ()}, this )})} else { this . api . asc_coAuthoringDisconnect (), this . getApplication (). getController ( "Viewport" ). getView ( "Common.Views.Header" ). setCanRename ( ! 1 ), this . getApplication (). getController ( "LeftMenu" ). getView ( "LeftMenu" ). showHistory (), this . disableEditing ( ! 0 ); var i = t . data . history , e = this . getApplication (). getCollection ( "Common.Collections.HistoryVersions" ), n = null ; if ( e ){ var o , s , a = [], r =- 1 , l =- 1 , c = [], d = "" , h = this . getApplication (). getCollection ( "Common.Collections.HistoryUsers" ), p = null , m = 0 ; for ( o = i . length - 1 ; o >= 0 ; o -- ) if ( s = i [ o ], void 0 !== s . versionGroup && null !== s . versionGroup || ( s . versionGroup = s . version ), s ){ if ( s . user || ( s . user = {}), d = o > 0 && i [ o - 1 ] ? i [ o - 1 ]. key : s . key + "0" , p = h . findUser ( s . user . id ), p || ( p = new Common . Models . User ({ id : s . user . id , username : s . user . name , colorval : Asc . c_oAscArrUserColors [ m ], color : this . generateUserColor ( Asc . c_oAscArrUserColors [ m ++ ])}), h . add ( p )), a . push ( new Common . Models . HistoryVersion ({ version : s . versionGroup , revision : s . version , userid : s . user . id , username : s . user . name , usercolor : p . get ( "color" ), created : s . created , docId : s . key , markedAsVersion : r !== s . versionGroup , selected : t . data . currentVersion == s . version , canRestore : this . appOptions . canHistoryRestore && o < i . length - 1 , isExpanded :! 0 , serverVersion : s . serverVersion })), t . data . currentVersion == s . version && ( n = a [ a . length - 1 ]), r = s . versionGroup , l !== s . version ){ for ( l = s . version , c . reverse (), g = 0 ; g < c . length ; g ++ ) a [ a . length - g - 2 ]. set ( "arrColors" , c ); c = []} c . push ( p . get ( "colorval" )); var u , g , b = s . changes ; if ( b && b . length > 0 ){ if ( a [ a . length - 1 ]. set ( "docIdPrev" , d ), ! _ . isEmpty ( s . serverVersion ) && s . serverVersion == this . appOptions . buildVersion ) for ( a [ a . length - 1 ]. set ( "changeid" , b . length - 1 ), a [ a . length - 1 ]. set ( "hasChanges" , b . length > 1 ), g = b . length - 2 ; g >= 0 ; g -- ) u = b [ g ], p = h . findUser ( u . user . id ), p || ( p = new Common . Models . User ({ id : u . user . id , username : u . user . name , colorval : Asc . c_oAscArrUserColors [ m ], color : this . generateUserColor ( Asc . c_oAscArrUserColors [ m ++ ])}), h . add ( p )), a . push ( new Common . Models . HistoryVersion ({ version : s . versionGroup , revision : s . version , changeid : g , userid : u . user . id , username : u . user . name , usercolor : p . get ( "color" ), created : u . created , docId : s . key , docIdPrev : d , selected :! 1 , canRestore : this . appOptions . canHistoryRestore , isRevision :! 1 , isVisible :! 0 , serverVersion : s . serverVersion })), c . push ( p . get ( "colorval" ))} else 0 == o && 1 == i . length && a [ a . length - 1 ]. set ( "docId" , s . key + "1" )} if ( c . length > 0 ){ for ( c . reverse (), g = 0 ; g < c . length ; g ++ ) a [ a . length - g - 1 ]. set ( "arrColors" , c ); c = []} e . reset ( a ), null === n && e . size () > 0 && ( n = e . at ( 0 ), n . set ( "selected" , ! 0 )), n && this . getApplication (). getController ( "Common.Controllers.History" ). onSelectRevision ( null , null , n )}}}, generateUserColor : function ( t ){ return "
;return this.api.asc_stopSaving(),this.continueSavingTimer=window.setTimeout(function(){t.api.asc_continueSaving()},500),this.leavePageText}},onUnload:function(){this.continueSavingTimer&&clearTimeout(this.continueSavingTimer)},hidePreloader:function(){this._state.customizationDone||(this._state.customizationDone=!0,this.appOptions.customization&&(this.appOptions.isDesktopApp?this.appOptions.customization.about=!1:this.appOptions.canBrandingExt||(this.appOptions.customization.about=!0)),Common.Utils.applyCustomization(this.appOptions.customization,mapCustomizationElements),this.appOptions.canBrandingExt&&(Common.Utils.applyCustomization(this.appOptions.customization,mapCustomizationExtElements),Common.Utils.applyCustomizationPlugins(this.UICustomizePlugins))),Common.NotificationCenter.trigger(" layout : changed "," main "),$(" # loading - mask ").hide().remove()},onDownloadUrl:function(t){this._state.isFromGatewayDownloadAs&&Common.Gateway.downloadAs(t),this._state.isFromGatewayDownloadAs=!1},onUpdateVersion:function(t){var e=this;e.needToUpdateVersion=!0,e.onLongActionEnd(Asc.c_oAscAsyncActionType.BlockInteraction,LoadingDocument),Common.UI.warning({title:e.titleUpdateVersion,msg:this.errorUpdateVersion,callback:function(){_.defer(function(){Common.Gateway.updateVersion(),t&&t.call(e),e.onLongActionBegin(Asc.c_oAscAsyncActionType.BlockInteraction,LoadingDocument)})}})},onServerVersion:function(t){return!1},onCollaborativeChanges:function(){this._state.hasCollaborativeChanges||(this._state.hasCollaborativeChanges=!0,this.appOptions.isEdit&&this.getApplication().getController(" Statusbar ").setStatusCaption(this.txtNeedSynchronize,!0))},synchronizeChanges:function(){this.getApplication().getController(" Statusbar ").synchronizeChanges(),this.getApplication().getController(" DocumentHolder ").getView(" DocumentHolder ").hideTips(),this.getApplication().getController(" Toolbar ").getView(" Toolbar ").synchronizeChanges(),this._state.hasCollaborativeChanges=!1},initNames:function(){this.shapeGroupNames=[this.txtBasicShapes,this.txtFiguredArrows,this.txtMath,this.txtCharts,this.txtStarsRibbons,this.txtCallouts,this.txtButtons,this.txtRectangles,this.txtLines]},fillAutoShapes:function(t,e){if(!_.isEmpty(e)&&!_.isEmpty(t)&&e.length==t.length){var i=this,n=[],o=this.getCollection(" ShapeGroups ");o.reset();t.length;_.each(t,function(t,o){var s=new Backbone.Collection([],{model:DE.Models.ShapeModel}),a=e[o].length>18?7:6,r=35*Math.ceil(e[o].length/a)+3,l=30*a;_.each(e[o],function(t,e){s.add({imageUrl:t.Image,data:{shapeType:t.Type},tip:i.textShape+" "+(e+1),allowSelected:!0,selected:!1})}),n.push({groupName:i.shapeGroupNames[o],groupStore:s,groupWidth:l,groupHeight:r})}),o.add(n),setTimeout(function(){i.getApplication().getController(" Toolbar ").fillAutoShapes()},50)}},fillTextArt:function(t){if(!_.isEmpty(t)){var e=this,i=[],n=this.getCollection(" Common . Collections . TextArt ");_.each(t,function(t,e){i.push({imageUrl:t,data:e,allowSelected:!0,selected:!1})}),n.reset(i),setTimeout(function(){e.getApplication().getController(" Toolbar ").fillTextArt()},50),setTimeout(function(){e.getApplication().getController(" RightMenu ").fillTextArt()},50)}},updateThemeColors:function(){var t=this;setTimeout(function(){t.getApplication().getController(" RightMenu ").UpdateThemeColors()},50),setTimeout(function(){t.getApplication().getController(" DocumentHolder ").getView(" DocumentHolder ").updateThemeColors()},50),setTimeout(function(){t.getApplication().getController(" Toolbar ").updateThemeColors()},50)},onSendThemeColors:function(t,e){Common.Utils.ThemeColor.setColors(t,e),window.styles_loaded&&(this.updateThemeColors(),this.fillTextArt(this.api.asc_getTextArtPreviews()))},loadLanguages:function(t){var e,i=[];_.each(t,function(t,n,o){t=parseInt(t),e=Common.util.LanguageInfo.getLocalLanguageName(t),i.push({title:e[1],tip:e[0],code:t})},this),i.sort(function(t,e){return t.tip<e.tip?-1:t.tip>e.tip?1:0}),this.languages=i,window.styles_loaded&&this.setLanguages()},setLanguages:function(){this.languages&&this.languages.length>0&&(this.getApplication().getController(" DocumentHolder ").
Common.localStorage.setItem(" de - settings - fontrender ",this.cmbFontRender.getValue()),Common.localStorage.setItem(" de - settings - unit ",this.cmbUnit.getValue()),Common.localStorage.setItem(" de - settings - autosave ",this.chAutosave.isChecked()?1:0),this.mode.canForcesave&&Common.localStorage.setItem(" de - settings - forcesave ",this.chForcesave.isChecked()?1:0),Common.localStorage.setItem(" de - settings - spellcheck ",this.chSpell.isChecked()?1:0),Common.localStorage.setItem(" de - settings - showsnaplines ",this.chAlignGuides.isChecked()?1:0),Common.localStorage.save(),this.menu&&(this.menu.fireEvent(" settings : apply ",[this.menu]),this._oldUnits!==this.cmbUnit.getValue()&&Common.NotificationCenter.trigger(" settings : unitschanged ",this))},fillShowChanges:function(t){if(t&&3==this.cmbShowChanges.store.length||!t&&2==this.cmbShowChanges.store.length){var e=[{value:" none ",displayValue:this.txtNone},{value:" all ",displayValue:this.txtAll}];t||e.push({value:" last ",displayValue:this.txtLast}),this.cmbShowChanges.store.reset(e)}},onSelectCoAuthMode:function(t){this.lblCoAuthMode.text(t.descValue),this.fillShowChanges(1==t.value),this.cmbShowChanges.setValue(1==t.value?" none ":" last ")},strLiveComment:" Turn on option ",strInputMode:" Turn on hieroglyphs ",strZoom:" Default Zoom Value ",strShowChanges:" Realtime Collaboration Changes ",txtAll:" View All ",txtNone:" View Nothing ",txtLast:" View Last ",txtLiveComment:" Live Commenting ",okButtonText:" Apply ",txtInput:" Alternate Input ",txtWin:" as Windows ",txtMac:" as OS X ",txtNative:" Native ",strFontRender:" Font Hinting ",strUnit:" Unit of Measurement ",txtCm:" Centimeter ",txtPt:" Point ",textAutoSave:" Autosave ",strAutosave:" Turn on autosave ",txtSpellCheck:" Spell Checking ",strSpellCheckMode:" Turn on spell checking option ",textAlignGuides:" Alignment Guides ",strAlignGuides:" Turn on alignment guides ",strCoAuthMode:" Co - editing mode ",strCoAuthModeDescFast:" Other users will see your changes at once ",strCoAuthModeDescStrict:" You will need to accept changes before you can see them ",strFast:" Fast ",strStrict:" Strict ",textAutoRecover:" Autorecover ",strAutoRecover:" Turn on autorecover ",txtInch:" Inch ",txtFitPage:" Fit to Page ",txtFitWidth:" Fit to Width ",textForceSave:" Save to Server ",strForcesave:" Always save to server ( otherwise save to server on document close ) ",strResolvedComment:" Turn on display of the resolved comments "},DE.Views.FileMenuPanels.Settings||{})),DE.Views.FileMenuPanels.RecentFiles=Common.UI.BaseView.extend({el:" # panel - recentfiles ",menu:void 0,template:_.template(['<div id=" id - recent - view " style=" margin : 20 px 0 ; "></div>'].join("")),initialize:function(t){Common.UI.BaseView.prototype.initialize.call(this,arguments),this.menu=t.menu,this.recent=t.recent},render:function(){return $(this.el).html(this.template()),this.viewRecentPicker=new Common.UI.DataView({el:$(" # id - recent - view "),store:new Common.UI.DataViewStore(this.recent),itemTemplate:_.template(['<div class=" recent - wrap ">','<div class=" recent - icon "></div>','<div class=" file - name "><%= Common.Utils.String.htmlEncode(title) %></div>','<div class=" file - info "><%= Common.Utils.String.htmlEncode(folder) %></div>'," < /div>"].join(""))}),this.viewRecentPicker.on("item:click",_.bind(this.onRecentFileClick,this)),_.isUndefined(this.scroller)&&(this.scroller=new Common.UI.Scroller({el:$(this.el),suppressScrollX:!0})),this},onRecentFileClick:function(t,e,i){this.menu&&this.menu.fireEvent("recent:open",[this.menu,i.get("url")])}}),DE.Views.FileMenuPanels.CreateNew=Common.UI.BaseView.extend(_.extend({el:"#panel-createnew",menu:void 0,events:function(){return{"click .blank-document-btn":_.bind(this._onBlankDocument,this),"click .thumb-list .thumb-wrap":_.bind(this._onDocumentTemplate,this)}},template:_.template(['<h3 style="margin-top: 20px;"><%= scope.fromBlankText %></h3><hr noshade />','<div class="blank-document">','<div class="blank-document-btn img-doc-format"></div>','<div class="blank-document-info">',"<h3><%= scope.newDocumentText %></h3>","<%= scope.newDescriptionText %>","</div>","</div>","<h3><%= scope.fromTemplateText %></h3><hr noshade />",'<div class="thumb-list">',"<% _.each(doc
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 . currentUserId ), a . asc_putUserName ( n . currentUserName ), r . asc_addReply ( a ), n . api . asc_changeComment ( e , r ), ! 0 } return ! 1 }, onRemoveReplyComment : function ( e , i ){ if ( ! _ . isUndefined ( e ) &&! _ . isUndefined ( i )){ var n = this , o = null , s = null , a = t (), r = n . findComment ( e ); if ( a && r ) return a . asc_putText ( r . get ( "comment" )), a . asc_putQuoteText ( r . get ( "quote" )), a . asc_putTime ( n . utcDateToString ( new Date ( r . get ( "time" )))), a . asc_putOnlyOfficeTime ( n . ooDateToString ( new Date ( r . get ( "time" )))), a . asc_putUserId ( r . get ( "userid" )), a . asc_putUserName ( r . get ( "username" )), a . asc_putSolved ( r . get ( "resolved" )), _ . isUndefined ( a . asc_putDocumentFlag ) || a . asc_putDocumentFlag ( r . get ( "unattached" )), o = r . get ( "replys" ), o && o . length && o . forEach ( function ( e ){ e . get ( "id" ) !== i && ( 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 } return ! 1 }, onShowEditReplyComment : function ( t , e , i ){ var n , o , s , a ; if ( ! _ . isUndefined ( t ) &&! _ . isUndefined ( e )) if ( i ){ if (( o = this . popoverComments . findWhere ({ uid : t })) && ( s = o . get ( "replys" ), a = _ . clone ( o . get ( "replys" )))) for ( n = 0 ; n < a . length ; ++ n ) if ( e === a [ n ]. get ( "id" )) return a [ n ]. set ( "editTextInPopover" , ! 0 ), s . length = 0 , o . set ( "replys" , a ), ! 0 } else if (( o = this . collection . findWhere ({ uid : t })) && ( s = o . get ( "replys" ), a = _ . clone ( o . get ( "replys" )))) for ( n = 0 ; n < a . length ; ++ n ) if ( e === a [ n ]. get ( "id" )) return a [ n ]. set ( "editText" , ! 0 ), s . length = 0 , o . set ( "replys" , a ), ! 0 ; return ! 1 }, onUpdateFilter : function ( t , e ){ if ( t ){ this . f
void 0 === Common ) var Common = {}; if ( 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 . UI . alert ({ title : this . warningTitle , msg : this . warningText , iconCls : "warn" , buttons : [ "ok" ], callback : _ . bind ( function ( t ){ this . setControlsDisabled ( ! 1 ), this . diagramEditorView . hide ()}, this )}), this . needDisableEditing =! 1 }, onInternalMessage : function ( t ){ var e = t . data ; if ( this . diagramEditorView ) if ( "documentReady" == e . type ) this . diagramEditorView . _isExternalDocReady =! 0 , this . diagramEditorView . _chartData && ( n && n . serviceCommand ( "setChartData" , this . diagramEditorView . _chartData ), this . diagramEditorView . _chartData = null ), this . needDisableEditing && this . onDiagrammEditingDisabled (); else if ( "chartDataReady" == e . type ) void 0 === this . needDisableEditing && this . diagramEditorView . setControlsDisabled ( ! 1 ); else if ( "shortcut" == e . type ) "escape" == e . data . key && this . diagramEditorView . hide (); else if ( "canClose" == e . type ) ! 0 === e . data . answer && ( n && ( n . serviceCommand ( "setAppDisabled" , ! 0 ), n . serviceCommand ( "ok" == e . data . mr ? "getChartData" : "clearChartData" )), this . diagramEditorView . hide ()), this . isHandlerCalled =! 1 ; else if ( "processMouse" == e . type ){ if ( "mouse:up" == e . data . event ) this . diagramEditorView . binding . dragStop (); else if ( "mouse:move" == e . data . event ){ var i = parseInt ( this . diagramEditorView . $window . css ( "left" )) + e . data . pagex , o = parseInt ( this . diagramEditorView . $window . css ( "top" )) + e . data . pagey + 34 ; this . diagramEditorView . binding . drag ({ pageX : i , pageY : o })}} else this . diagramEditorView . fireEvent ( "internalmessage" , this . diagramEditorView , e )}, onProcessMouse : function ( t ){ "mouseup" == t . type && this . isExternalEditorVisible && n && n . serviceCommand ( "processmouse" , t )}, warningTitle : "Warning" , warningText : " The object is disabled b