2020-07-20 18:12:43 +08:00
; /*!node_modules/jquery/dist/jquery.js*/
2020-07-30 20:22:13 +08:00
amis . define ( "node_modules/jquery/dist/jquery" , function ( e , t , n , r ) { ! function ( e , t ) { "use strict" ; "object" == typeof n && "object" == typeof n . exports ? n . exports = e . document ? t ( e , ! 0 ) : function ( e ) { if ( ! e . document ) throw new Error ( "jQuery requires a window with a document" ) ; return t ( e ) } : t ( e ) } ( "undefined" != typeof window ? window : this , function ( e , t ) { "use strict" ; function n ( e , t , n ) { n = n || Tt ; var r , i , o = n . createElement ( "script" ) ; if ( o . text = e , t ) for ( r in Ct ) i = t [ r ] || t . getAttribute && t . getAttribute ( r ) , i && o . setAttribute ( r , i ) ; n . head . appendChild ( o ) . parentNode . removeChild ( o ) } function i ( e ) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? ht [ gt . call ( e ) ] || "object" : typeof e } function o ( e ) { var t = ! ! e && "length" in e && e . length , n = i ( e ) ; return bt ( e ) || wt ( e ) ? ! 1 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e } function a ( e , t ) { return e . nodeName && e . nodeName . toLowerCase ( ) === t . toLowerCase ( ) } function s ( e , t , n ) { return bt ( t ) ? St . grep ( e , function ( e , r ) { return ! ! t . call ( e , r , e ) !== n } ) : t . nodeType ? St . grep ( e , function ( e ) { return e === t !== n } ) : "string" != typeof t ? St . grep ( e , function ( e ) { return dt . call ( t , e ) > - 1 !== n } ) : St . filter ( t , e , n ) } function u ( e , t ) { for ( ; ( e = e [ t ] ) && 1 !== e . nodeType ; ) ; return e } function l ( e ) { var t = { } ; return St . each ( e . match ( Rt ) || [ ] , function ( e , n ) { t [ n ] = ! 0 } ) , t } function c ( e ) { return e } function f ( e ) { throw e } function p ( e , t , n , r ) { var i ; try { e && bt ( i = e . promise ) ? i . call ( e ) . done ( t ) . fail ( n ) : e && bt ( i = e . then ) ? i . call ( e , t , n ) : t . apply ( void 0 , [ e ] . slice ( r ) ) } catch ( e ) { n . apply ( void 0 , [ e ] ) } } function d ( ) { Tt . removeEventListener ( "DOMContentLoaded" , d ) , e . removeEventListener ( "load" , d ) , St . ready ( ) } function h ( e , t ) { return t . toUpperCase ( ) } function g ( e ) { return e . replace ( Ft , "ms-" ) . replace ( Bt , h ) } function m ( ) { this . expando = St . expando + m . uid ++ } function v ( e ) { return "true" === e ? ! 0 : "false" === e ? ! 1 : "null" === e ? null : e === + e + "" ? + e : Ut . test ( e ) ? JSON . parse ( e ) : e } function y ( e , t , n ) { var r ; if ( void 0 === n && 1 === e . nodeType ) if ( r = "data-" + t . replace ( Xt , "-$&" ) . toLowerCase ( ) , n = e . getAttribute ( r ) , "string" == typeof n ) { try { n = v ( n ) } catch ( i ) { } zt . set ( e , t , n ) } else n = void 0 ; return n } function x ( e , t , n , r ) { var i , o , a = 20 , s = r ? function ( ) { return r . cur ( ) } : function ( ) { return St . css ( e , t , "" ) } , u = s ( ) , l = n && n [ 3 ] || ( St . cssNumber [ t ] ? "" : "px" ) , c = e . nodeType && ( St . cssNumber [ t ] || "px" !== l && + u ) && Gt . exec ( St . css ( e , t ) ) ; if ( c && c [ 3 ] !== l ) { for ( u /= 2 , l = l || c [ 3 ] , c = + u || 1 ; a -- ; ) St . style ( e , t , c + l ) , ( 1 - o ) * ( 1 - ( o = s ( ) / u || . 5 ) ) <= 0 && ( a = 0 ) , c /= o ; c = 2 * c , St . style ( e , t , c + l ) , n = n || [ ] } return n && ( c = + c || + u || 0 , i = n [ 1 ] ? c + ( n [ 1 ] + 1 ) * n [ 2 ] : + n [ 2 ] , r && ( r . unit = l , r . start = c , r . end = i ) ) , i } function b ( e ) { var t , n = e . ownerDocument , r = e . nodeName , i = en [ r ] ; return i ? i : ( t = n . body . appendChild ( n . createElement ( r ) ) , i = St . css ( t , "display" ) , t . parentNode . removeChild ( t ) , "none" === i && ( i = "block" ) , en [ r ] = i , i ) } function w ( e , t ) { for ( var n , r , i = [ ] , o = 0 , a = e . length ; a > o ; o ++ ) r = e [ o ] , r . style && ( n = r . style . display , t ? ( "none" === n && ( i [ o ] = _t . get ( r , "display" ) || null , i [ o ] || ( r . style . display = "" ) ) , "" === r . style . display && Zt ( r ) && ( i [ o ] = b ( r ) ) ) : "none" !== n && ( i [ o ] = "none" , _t . set ( r , "display" , n ) ) ) ; for ( o = 0 ; a > o ; o ++ ) null != i [ o ] && ( e [ o ] . style . display = i [ o ] ) ; return e } function T ( e , t ) { var n ; return n = "undefined" != typeof e . getElementsByTagName ? e . getElementsByTagName ( t || "*" ) : "undefined" != typeof e . querySelectorAll ? e . querySelectorAll ( t || "*" ) : [ ] , void 0 === t || t && a ( e , t ) ? St . merge ( [ e ] , n ) : n } function C ( e , t ) { for ( var n = 0 , r = e . length ; r > n ; n ++ ) _t . set ( e [ n ] , "globalEval" , ! t || _t . get ( t [ n ] , "globalEval" ) ) } function E ( e , t , n , r , o ) { for ( var a , s , u , l , c , f , p = t . createDocumentFragment ( ) , d = [ ] , h = 0 , g = e . length ; g > h ; h ++ ) if ( a = e [ h ] , a || 0 === a ) if ( "object" === i ( a ) ) St . merge ( d , a . nodeType ? [ a ] : a ) ; else if ( an . test ( a ) ) { for ( s = s || p . appendChild ( t . createElement ( "div" ) ) , u = ( nn . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) , l = on [ u ] || on . _default , s . innerHTML = l [ 1 ] + St . htmlPrefilter ( a ) + l [ 2 ] , f = l [ 0 ] ; f -- ; ) s = s . lastChild ; St . merge ( d , s . childNodes ) , s = p . firstChild , s . textContent = "" } else d . push ( t . createTextNode ( a ) ) ; for ( p . textContent = "" , h = 0 ; a = d [ h ++ ] ; ) if ( r && St . inArray ( a , r ) > - 1 ) o && o . push ( a ) ; else if ( c = Jt ( a ) , s = T ( p . appendChild ( a ) , "script" ) , c && C ( s ) , n ) for ( f = 0 ; a = s [ f ++ ] ; ) rn . test ( a . type || "" ) && n . push ( a ) ; return p } function S ( ) { return ! 0 } function k ( ) { return ! 1 } function A ( e , t ) { return e === N ( ) == ( "focus" === t ) } function N ( ) { try { return Tt . activeElement } catch ( e ) { } } function j ( e , t , n , r , i , o ) { var a , s ; if ( "object" == typeof t ) { "string" != typeof n
} } } , PSEUDO : function ( e , n ) { var i , o = C . pseudos [ e ] || C . setFilters [ e . toLowerCase ( ) ] || t . error ( "unsupported pseudo: " + e ) ; return o [ F ] ? o ( n ) : o . length > 1 ? ( i = [ e , e , "" , n ] , C . setFilters . hasOwnProperty ( e . toLowerCase ( ) ) ? r ( function ( e , t ) { for ( var r , i = o ( e , n ) , a = i . length ; a -- ; ) r = tt ( e , i [ a ] ) , e [ r ] = ! ( t [ r ] = i [ a ] ) } ) : function ( e ) { return o ( e , 0 , i ) } ) : o } } , pseudos : { not : r ( function ( e ) { var t = [ ] , n = [ ] , i = A ( e . replace ( ut , "$1" ) ) ; return i [ F ] ? r ( function ( e , t , n , r ) { for ( var o , a = i ( e , null , r , [ ] ) , s = e . length ; s -- ; ) ( o = a [ s ] ) && ( e [ s ] = ! ( t [ s ] = o ) ) } ) : function ( e , r , o ) { return t [ 0 ] = e , i ( t , null , o , n ) , t [ 0 ] = null , ! n . pop ( ) } } ) , has : r ( function ( e ) { return function ( n ) { return t ( e , n ) . length > 0 } } ) , contains : r ( function ( e ) { return e = e . replace ( wt , Tt ) , function ( t ) { return ( t . textContent || E ( t ) ) . indexOf ( e ) > - 1 } } ) , lang : r ( function ( e ) { return dt . test ( e || "" ) || t . error ( "unsupported lang: " + e ) , e = e . replace ( wt , Tt ) . toLowerCase ( ) , function ( t ) { var n ; do if ( n = P ? t . lang : t . getAttribute ( "xml:lang" ) || t . getAttribute ( "lang" ) ) return n = n . toLowerCase ( ) , n === e || 0 === n . indexOf ( e + "-" ) ; while ( ( t = t . parentNode ) && 1 === t . nodeType ) ; return ! 1 } } ) , target : function ( t ) { var n = e . location && e . location . hash ; return n && n . slice ( 1 ) === t . id } , root : function ( e ) { return e === O } , focus : function ( e ) { return e === H . activeElement && ( ! H . hasFocus || H . hasFocus ( ) ) && ! ! ( e . type || e . href || ~ e . tabIndex ) } , enabled : l ( ! 1 ) , disabled : l ( ! 0 ) , checked : function ( e ) { var t = e . nodeName . toLowerCase ( ) ; return "input" === t && ! ! e . checked || "option" === t && ! ! e . selected } , selected : function ( e ) { return e . parentNode && e . parentNode . selectedIndex , e . selected === ! 0 } , empty : function ( e ) { for ( e = e . firstChild ; e ; e = e . nextSibling ) if ( e . nodeType < 6 ) return ! 1 ; return ! 0 } , parent : function ( e ) { return ! C . pseudos . empty ( e ) } , header : function ( e ) { return vt . test ( e . nodeName ) } , input : function ( e ) { return mt . test ( e . nodeName ) } , button : function ( e ) { var t = e . nodeName . toLowerCase ( ) ; return "input" === t && "button" === e . type || "button" === t } , text : function ( e ) { var t ; return "input" === e . nodeName . toLowerCase ( ) && "text" === e . type && ( null == ( t = e . getAttribute ( "type" ) ) || "text" === t . toLowerCase ( ) ) } , first : c ( function ( ) { return [ 0 ] } ) , last : c ( function ( e , t ) { return [ t - 1 ] } ) , eq : c ( function ( e , t , n ) { return [ 0 > n ? n + t : n ] } ) , even : c ( function ( e , t ) { for ( var n = 0 ; t > n ; n += 2 ) e . push ( n ) ; return e } ) , odd : c ( function ( e , t ) { for ( var n = 1 ; t > n ; n += 2 ) e . push ( n ) ; return e } ) , lt : c ( function ( e , t , n ) { for ( var r = 0 > n ? n + t : n > t ? t : n ; -- r >= 0 ; ) e . push ( r ) ; return e } ) , gt : c ( function ( e , t , n ) { for ( var r = 0 > n ? n + t : n ; ++ r < t ; ) e . push ( r ) ; return e } ) } } , C . pseudos . nth = C . pseudos . eq ; for ( w in { radio : ! 0 , checkbox : ! 0 , file : ! 0 , password : ! 0 , image : ! 0 } ) C . pseudos [ w ] = s ( w ) ; for ( w in { submit : ! 0 , reset : ! 0 } ) C . pseudos [ w ] = u ( w ) ; return p . prototype = C . filters = C . pseudos , C . setFilters = new p , k = t . tokenize = function ( e , n ) { var r , i , o , a , s , u , l , c = U [ e + " " ] ; if ( c ) return n ? 0 : c . slice ( 0 ) ; for ( s = e , u = [ ] , l = C . preFilter ; s ; ) { ( ! r || ( i = lt . exec ( s ) ) ) && ( i && ( s = s . slice ( i [ 0 ] . length ) || s ) , u . push ( o = [ ] ) ) , r = ! 1 , ( i = ct . exec ( s ) ) && ( r = i . shift ( ) , o . push ( { value : r , type : i [ 0 ] . replace ( ut , " " ) } ) , s = s . slice ( r . length ) ) ; for ( a in C . filter ) ! ( i = ht [ a ] . exec ( s ) ) || l [ a ] && ! ( i = l [ a ] ( i ) ) || ( r = i . shift ( ) , o . push ( { value : r , type : a , matches : i } ) , s = s . slice ( r . length ) ) ; if ( ! r ) break } return n ? s . length : s ? t . error ( e ) : U ( e , u ) . slice ( 0 ) } , A = t . compile = function ( e , t ) { var n , r = [ ] , i = [ ] , o = X [ e + " " ] ; if ( ! o ) { for ( t || ( t = k ( e ) ) , n = t . length ; n -- ; ) o = x ( t [ n ] ) , o [ F ] ? r . push ( o ) : i . push ( o ) ; o = X ( e , b ( i , r ) ) , o . selector = e } return o } , N = t . select = function ( e , t , n , r ) { var i , o , a , s , u , l = "function" == typeof e && e , c = ! r && k ( e = l . selector || e ) ; if ( n = n || [ ] , 1 === c . length ) { if ( o = c [ 0 ] = c [ 0 ] . slice ( 0 ) , o . length > 2 && "ID" === ( a = o [ 0 ] ) . type && 9 === t . nodeType && P && C . relative [ o [ 1 ] . type ] ) { if ( t = ( C . find . ID ( a . matches [ 0 ] . replace ( wt , Tt ) , t ) || [ ] ) [ 0 ] , ! t ) return n ; l && ( t = t . parentNode ) , e = e . slice ( o . shift ( ) . value . length ) } for ( i = ht . needsContext . test ( e ) ? 0 : o . length ; i -- && ( a = o [ i ] , ! C . relative [ s = a . type ] ) ; ) if ( ( u = C . find [ s ] ) && ( r = u ( a . matches [ 0 ] . replace ( wt , Tt ) , bt . test ( o [ 0 ] . type ) && f ( t . parentNode ) || t ) ) ) { if ( o . splice ( i , 1 ) , e = r . length && d ( o ) , ! e ) return Z . apply ( n , r ) , n ; break } } return ( l || A ( e , c ) ) ( r , t , ! P , n , ! t || bt . test ( e ) && f ( t . parentNode ) || t ) , n } , T . sortStable = F . split ( "" ) . sort ( G ) . join ( "" ) === F , T . detectDuplicates = ! ! q , L ( ) , T . sortDetached = i ( function ( e ) { return 1 & e . compareDocumentPosition ( H . createElement ( "fieldset" ) ) } ) , i ( function ( e ) { return e . innerHTML = "<a href='#'></a>" , "#" === e . firstChild . getAttribute ( "href" ) } ) || o ( "type|href|height|width" ,
} } } , U . propHooks . scrollTop = U . propHooks . scrollLeft = { set : function ( e ) { e . elem . nodeType && e . elem . parentNode && ( e . elem [ e . prop ] = e . now ) } } , St . easing = { linear : function ( e ) { return e } , swing : function ( e ) { return . 5 - Math . cos ( e * Math . PI ) / 2 } , _default : "swing" } , St . fx = U . prototype . init , St . fx . step = { } ; var En , Sn , kn = /^(?:toggle|show|hide)$/ , An = /queueHooks$/ ; St . Animation = St . extend ( K , { tweeners : { "*" : [ function ( e , t ) { var n = this . createTween ( e , t ) ; return x ( n . elem , e , Gt . exec ( t ) , n ) , n } ] } , tweener : function ( e , t ) { bt ( e ) ? ( t = e , e = [ "*" ] ) : e = e . match ( Rt ) ; for ( var n , r = 0 , i = e . length ; i > r ; r ++ ) n = e [ r ] , K . tweeners [ n ] = K . tweeners [ n ] || [ ] , K . tweeners [ n ] . unshift ( t ) } , prefilters : [ Q ] , prefilter : function ( e , t ) { t ? K . prefilters . unshift ( e ) : K . prefilters . push ( e ) } } ) , St . speed = function ( e , t , n ) { var r = e && "object" == typeof e ? St . extend ( { } , e ) : { complete : n || ! n && t || bt ( e ) && e , duration : e , easing : n && t || t && ! bt ( t ) && t } ; return St . fx . off ? r . duration = 0 : "number" != typeof r . duration && ( r . duration = r . duration in St . fx . speeds ? St . fx . speeds [ r . duration ] : St . fx . speeds . _default ) , ( null == r . queue || r . queue === ! 0 ) && ( r . queue = "fx" ) , r . old = r . complete , r . complete = function ( ) { bt ( r . old ) && r . old . call ( this ) , r . queue && St . dequeue ( this , r . queue ) } , r } , St . fn . extend ( { fadeTo : function ( e , t , n , r ) { return this . filter ( Zt ) . css ( "opacity" , 0 ) . show ( ) . end ( ) . animate ( { opacity : t } , e , n , r ) } , animate : function ( e , t , n , r ) { var i = St . isEmptyObject ( e ) , o = St . speed ( t , n , r ) , a = function ( ) { var t = K ( this , St . extend ( { } , e ) , o ) ; ( i || _t . get ( this , "finish" ) ) && t . stop ( ! 0 ) } ; return a . finish = a , i || o . queue === ! 1 ? this . each ( a ) : this . queue ( o . queue , a ) } , stop : function ( e , t , n ) { var r = function ( e ) { var t = e . stop ; delete e . stop , t ( n ) } ; return "string" != typeof e && ( n = t , t = e , e = void 0 ) , t && this . queue ( e || "fx" , [ ] ) , this . each ( function ( ) { var t = ! 0 , i = null != e && e + "queueHooks" , o = St . timers , a = _t . get ( this ) ; if ( i ) a [ i ] && a [ i ] . stop && r ( a [ i ] ) ; else for ( i in a ) a [ i ] && a [ i ] . stop && An . test ( i ) && r ( a [ i ] ) ; for ( i = o . length ; i -- ; ) o [ i ] . elem !== this || null != e && o [ i ] . queue !== e || ( o [ i ] . anim . stop ( n ) , t = ! 1 , o . splice ( i , 1 ) ) ; ( t || ! n ) && St . dequeue ( this , e ) } ) } , finish : function ( e ) { return e !== ! 1 && ( e = e || "fx" ) , this . each ( function ( ) { var t , n = _t . get ( this ) , r = n [ e + "queue" ] , i = n [ e + "queueHooks" ] , o = St . timers , a = r ? r . length : 0 ; for ( n . finish = ! 0 , St . queue ( this , e , [ ] ) , i && i . stop && i . stop . call ( this , ! 0 ) , t = o . length ; t -- ; ) o [ t ] . elem === this && o [ t ] . queue === e && ( o [ t ] . anim . stop ( ! 0 ) , o . splice ( t , 1 ) ) ; for ( t = 0 ; a > t ; t ++ ) r [ t ] && r [ t ] . finish && r [ t ] . finish . call ( this ) ; delete n . finish } ) } } ) , St . each ( [ "toggle" , "show" , "hide" ] , function ( e , t ) { var n = St . fn [ t ] ; St . fn [ t ] = function ( e , r , i ) { return null == e || "boolean" == typeof e ? n . apply ( this , arguments ) : this . animate ( G ( t , ! 0 ) , e , r , i ) } } ) , St . each ( { slideDown : G ( "show" ) , slideUp : G ( "hide" ) , slideToggle : G ( "toggle" ) , fadeIn : { opacity : "show" } , fadeOut : { opacity : "hide" } , fadeToggle : { opacity : "toggle" } } , function ( e , t ) { St . fn [ e ] = function ( e , n , r ) { return this . animate ( t , e , n , r ) } } ) , St . timers = [ ] , St . fx . tick = function ( ) { var e , t = 0 , n = St . timers ; for ( En = Date . now ( ) ; t < n . length ; t ++ ) e = n [ t ] , e ( ) || n [ t ] !== e || n . splice ( t -- , 1 ) ; n . length || St . fx . stop ( ) , En = void 0 } , St . fx . timer = function ( e ) { St . timers . push ( e ) , St . fx . start ( ) } , St . fx . interval = 13 , St . fx . start = function ( ) { Sn || ( Sn = ! 0 , X ( ) ) } , St . fx . stop = function ( ) { Sn = null } , St . fx . speeds = { slow : 600 , fast : 200 , _default : 400 } , St . fn . delay = function ( t , n ) { return t = St . fx ? St . fx . speeds [ t ] || t : t , n = n || "fx" , this . queue ( n , function ( n , r ) { var i = e . setTimeout ( n , t ) ; r . stop = function ( ) { e . clearTimeout ( i ) } } ) } , function ( ) { var e = Tt . createElement ( "input" ) , t = Tt . createElement ( "select" ) , n = t . appendChild ( Tt . createElement ( "option" ) ) ; e . type = "checkbox" , xt . checkOn = "" !== e . value , xt . optSelected = n . selected , e = Tt . createElement ( "input" ) , e . value = "t" , e . type = "radio" , xt . radioValue = "t" === e . value } ( ) ; var Nn , jn = St . expr . attrHandle ; St . fn . extend ( { attr : function ( e , t ) { return Wt ( this , St . attr , e , t , arguments . length > 1 ) } , removeAttr : function ( e ) { return this . each ( function ( ) { St . removeAttr ( this , e ) } ) } } ) , St . extend ( { attr : function ( e , t , n ) { var r , i , o = e . nodeType ; if ( 3 !== o && 8 !== o && 2 !== o ) return "undefined" == typeof e . getAttribute ? St . prop ( e , t , n ) : ( 1 === o && St . isXMLDoc ( e ) || ( i = St . attrHooks [ t . toLowerCase ( ) ] || ( St . expr . match . bool . test ( t ) ? Nn : void 0 ) ) , void 0 !== n ? null === n ? void St . removeAttr ( e , t ) : i && "set" in i && void 0 !== ( r = i . set ( e , n , t ) ) ? r : ( e . setAttribute ( t , n + "" ) , n ) : i && "get" in i && null !== ( r = i . get ( e , t ) ) ? r : ( r = St . find . attr ( e , t ) , null == r ? void 0 : r ) ) } , attrHo
2020-07-20 18:12:43 +08:00
; /*!node_modules/froala-editor/js/froala_editor.min.js*/
amis . define ( 'node_modules/froala-editor/js/froala_editor.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( w ) { var s = function ( e , t ) { this . id = ++ w . FE . ID ; var n = { } ; t && t . documentReady && ( n . toolbarButtons = [ "fullscreen" , "undo" , "redo" , "getPDF" , "print" , "|" , "bold" , "italic" , "underline" , "color" , "clearFormatting" , "|" , "alignLeft" , "alignCenter" , "alignRight" , "alignJustify" , "|" , "formatOL" , "formatUL" , "indent" , "outdent" , "-" , "paragraphFormat" , "|" , "fontFamily" , "|" , "fontSize" , "|" , "insertLink" , "insertImage" , "quote" ] , n . paragraphFormatSelection = ! 0 , n . fontFamilySelection = ! 0 , n . fontSizeSelection = ! 0 , n . placeholderText = "" , n . quickInsertEnabled = ! 1 , n . charCounterCount = ! 1 ) , this . opts = w . extend ( ! 0 , { } , w . extend ( { } , s . DEFAULTS , n , "object" == typeof t && t ) ) ; var r = JSON . stringify ( this . opts ) ; w . FE . OPTS _MAPPING [ r ] = w . FE . OPTS _MAPPING [ r ] || this . id , this . sid = w . FE . OPTS _MAPPING [ r ] , w . FE . SHARED [ this . sid ] = w . FE . SHARED [ this . sid ] || { } , this . shared = w . FE . SHARED [ this . sid ] , this . shared . count = ( this . shared . count || 0 ) + 1 , this . $oel = w ( e ) , this . $oel . data ( "froala.editor" , this ) , this . o _doc = e . ownerDocument , this . o _win = "defaultView" in this . o _doc ? this . o _doc . defaultView : this . o _doc . parentWindow ; var o = w ( this . o _win ) . scrollTop ( ) ; this . $oel . on ( "froala.doInit" , w . proxy ( function ( ) { this . $oel . off ( "froala.doInit" ) , this . doc = this . $el . get ( 0 ) . ownerDocument , this . win = "defaultView" in this . doc ? this . doc . defaultView : this . doc . parentWindow , this . $doc = w ( this . doc ) , this . $win = w ( this . win ) , this . opts . pluginsEnabled || ( this . opts . pluginsEnabled = Object . keys ( w . FE . PLUGINS ) ) , this . opts . initOnClick ? ( this . load ( w . FE . MODULES ) , this . $el . on ( "touchstart.init" , function ( ) { w ( this ) . data ( "touched" , ! 0 ) } ) , this . $el . on ( "touchmove.init" , function ( ) { w ( this ) . removeData ( "touched" ) } ) , this . $el . on ( "mousedown.init touchend.init dragenter.init focus.init" , w . proxy ( function ( e ) { if ( "touchend" == e . type && ! this . $el . data ( "touched" ) ) return ! 0 ; if ( 1 === e . which || ! e . which ) { this . $el . off ( "mousedown.init touchstart.init touchmove.init touchend.init dragenter.init focus.init" ) , this . load ( w . FE . MODULES ) , this . load ( w . FE . PLUGINS ) ; var t = e . originalEvent && e . originalEvent . originalTarget ; t && "IMG" == t . tagName && w ( t ) . trigger ( "mousedown" ) , "undefined" == typeof this . ul && this . destroy ( ) , "touchend" == e . type && this . image && e . originalEvent && e . originalEvent . target && w ( e . originalEvent . target ) . is ( "img" ) && setTimeout ( w . proxy ( function ( ) { this . image . edit ( w ( e . originalEvent . target ) ) } , this ) , 100 ) , this . ready = ! 0 , this . events . trigger ( "initialized" ) } } , this ) ) , this . events . trigger ( "initializationDelayed" ) ) : ( this . load ( w . FE . MODULES ) , this . load ( w . FE . PLUGINS ) , w ( this . o _win ) . scrollTop ( o ) , "undefined" == typeof this . ul && this . destroy ( ) , this . ready = ! 0 , this . events . trigger ( "initialized" ) ) } , this ) ) , this . _init ( ) } ; s . DEFAULTS = { initOnClick : ! 1 , pluginsEnabled : null } , s . MODULES = { } , s . PLUGINS = { } , s . VERSION = "2.9.6" , s . INSTANCES = [ ] , s . OPTS _MAPPING = { } , s . SHARED = { } , s . ID = 0 , s . prototype . _init = function ( ) { var e = this . $oel . prop ( "tagName" ) ; this . $oel . closest ( "label" ) . length ; var t = w . proxy ( function ( ) { "TEXTAREA" != e && ( this . _original _html = this . _original _html || this . $oel . html ( ) ) , this . $box = this . $box || this . $oel , this . opts . fullPage && ( this . opts . iframe = ! 0 ) , this . opts . iframe ? ( this . $iframe = w ( '<iframe src="about:blank" frameBorder="0">' ) , this . $wp = w ( "<div></div>" ) , this . $box . html ( this . $wp ) , this . $wp . append ( this . $iframe ) , this . $iframe . get ( 0 ) . contentWindow . document . open ( ) , this . $iframe . get ( 0 ) . contentWindow . document . write ( "<!DOCTYPE html>" ) , this . $iframe . get ( 0 ) . contentWindow . document . write ( "<html><head></head><body></body></html>" ) , this . $iframe . get ( 0 ) . contentWindow . document . close ( ) , this . $el = this . $iframe . contents ( ) . find ( "body" ) , this . el = this . $el . get ( 0 ) , this . $head = this . $iframe . contents ( ) . find ( "head" ) , this . $html = this . $iframe . contents ( ) . find ( "html" ) , this . iframe _document = this . $iframe . get ( 0 ) . contentWindow . document ) : ( this . $el = w ( "<div></div>" ) , this . el = this . $el . get ( 0 ) , this . $wp = w ( "<div></div>" ) . append ( this . $el ) , this . $box . html ( this . $wp ) ) , this . $oel . trigger ( "froala.doInit" ) } , this ) , n = w . proxy ( function ( ) { this . $box = w ( "<div>" ) , t
} ) ;
; /*!node_modules/froala-editor/js/plugins/align.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/align.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( e , n ) { return n === undefined && ( n = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , t ( n ) } : t ( window . jQuery ) } ( function ( r ) { r . FE . PLUGINS . align = function ( a ) { return { apply : function ( e ) { var n = a . selection . element ( ) ; if ( r ( n ) . parents ( ".fr-img-caption" ) . length ) r ( n ) . css ( "text-align" , e ) ; else { a . selection . save ( ) , a . html . wrap ( ! 0 , ! 0 , ! 0 , ! 0 ) , a . selection . restore ( ) ; for ( var t = a . selection . blocks ( ) , i = 0 ; i < t . length ; i ++ ) r ( t [ i ] ) . css ( "text-align" , e ) . removeClass ( "fr-temp-div" ) , "" === r ( t [ i ] ) . attr ( "class" ) && r ( t [ i ] ) . removeAttr ( "class" ) , "" === r ( t [ i ] ) . attr ( "style" ) && r ( t [ i ] ) . removeAttr ( "style" ) ; a . selection . save ( ) , a . html . unwrap ( ) , a . selection . restore ( ) } } , refresh : function ( e ) { var n = a . selection . blocks ( ) ; if ( n . length ) { var t = a . helpers . getAlignment ( r ( n [ 0 ] ) ) ; e . find ( "> *:first" ) . replaceWith ( a . icon . create ( "align-" + t ) ) } } , refreshOnShow : function ( e , n ) { var t = a . selection . blocks ( ) ; if ( t . length ) { var i = a . helpers . getAlignment ( r ( t [ 0 ] ) ) ; n . find ( 'a.fr-command[data-param1="' + i + '"]' ) . addClass ( "fr-active" ) . attr ( "aria-selected" , ! 0 ) } } , refreshForToolbar : function ( e ) { var n = a . selection . blocks ( ) ; if ( n . length ) { var t = a . helpers . getAlignment ( r ( n [ 0 ] ) ) ; "align" + ( t = t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) ) == e . attr ( "data-cmd" ) && e . addClass ( "fr-active" ) } } } } , r . FE . DefineIcon ( "align" , { NAME : "align-left" } ) , r . FE . DefineIcon ( "align-left" , { NAME : "align-left" } ) , r . FE . DefineIcon ( "align-right" , { NAME : "align-right" } ) , r . FE . DefineIcon ( "align-center" , { NAME : "align-center" } ) , r . FE . DefineIcon ( "align-justify" , { NAME : "align-justify" } ) , r . FE . RegisterCommand ( "align" , { type : "dropdown" , title : "Align" , options : { left : "Align Left" , center : "Align Center" , right : "Align Right" , justify : "Align Justify" } , html : function ( ) { var e = '<ul class="fr-dropdown-list" role="presentation">' , n = r . FE . COMMANDS . align . options ; for ( var t in n ) n . hasOwnProperty ( t ) && ( e += '<li role="presentation"><a class="fr-command fr-title" tabIndex="-1" role="option" data-cmd="align" data-param1="' + t + '" title="' + this . language . translate ( n [ t ] ) + '">' + this . icon . create ( "align-" + t ) + '<span class="fr-sr-only">' + this . language . translate ( n [ t ] ) + "</span></a></li>" ) ; return e += "</ul>" } , callback : function ( e , n ) { this . align . apply ( n ) } , refresh : function ( e ) { this . align . refresh ( e ) } , refreshOnShow : function ( e , n ) { this . align . refreshOnShow ( e , n ) } , plugin : "align" } ) , r . FE . RegisterCommand ( "alignLeft" , { type : "button" , icon : "align-left" , callback : function ( ) { this . align . apply ( "left" ) } , refresh : function ( e ) { this . align . refreshForToolbar ( e ) } } ) , r . FE . RegisterCommand ( "alignRight" , { type : "button" , icon : "align-right" , callback : function ( ) { this . align . apply ( "right" ) } , refresh : function ( e ) { this . align . refreshForToolbar ( e ) } } ) , r . FE . RegisterCommand ( "alignCenter" , { type : "button" , icon : "align-center" , callback : function ( ) { this . align . apply ( "center" ) } , refresh : function ( e ) { this . align . refreshForToolbar ( e ) } } ) , r . FE . RegisterCommand ( "alignJustify" , { type : "button" , icon : "align-justify" , callback : function ( ) { this . align . apply ( "justify" ) } , refresh : function ( e ) { this . align . refreshForToolbar ( e ) } } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/char_counter.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/char_counter.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( a ) { a . extend ( a . FE . DEFAULTS , { charCounterMax : - 1 , charCounterCount : ! 0 } ) , a . FE . PLUGINS . charCounter = function ( n ) { var r ; function o ( ) { return ( n . el . textContent || "" ) . replace ( /\u200B/g , "" ) . length } function e ( e ) { if ( n . opts . charCounterMax < 0 ) return ! 0 ; if ( o ( ) < n . opts . charCounterMax ) return ! 0 ; var t = e . which ; return ! ( ! n . keys . ctrlKey ( e ) && n . keys . isCharacter ( t ) || t === a . FE . KEYCODE . IME ) || ( e . preventDefault ( ) , e . stopPropagation ( ) , n . events . trigger ( "charCounter.exceeded" ) , ! 1 ) } function t ( e ) { return n . opts . charCounterMax < 0 ? e : a ( "<div>" ) . html ( e ) . text ( ) . length + o ( ) <= n . opts . charCounterMax ? e : ( n . events . trigger ( "charCounter.exceeded" ) , "" ) } function u ( ) { if ( n . opts . charCounterCount ) { var e = o ( ) + ( 0 < n . opts . charCounterMax ? "/" + n . opts . charCounterMax : "" ) ; r . text ( e ) , n . opts . toolbarBottom && r . css ( "margin-bottom" , n . $tb . outerHeight ( ! 0 ) ) ; var t = n . $wp . get ( 0 ) . offsetWidth - n . $wp . get ( 0 ) . clientWidth ; 0 <= t && ( "rtl" == n . opts . direction ? r . css ( "margin-left" , t ) : r . css ( "margin-right" , t ) ) } } return { _init : function ( ) { return ! ! n . $wp && ! ! n . opts . charCounterCount && ( ( r = a ( '<span class="fr-counter"></span>' ) ) . css ( "bottom" , n . $wp . css ( "border-bottom-width" ) ) , n . $box . append ( r ) , n . events . on ( "keydown" , e , ! 0 ) , n . events . on ( "paste.afterCleanup" , t ) , n . events . on ( "keyup contentChanged input" , function ( ) { n . events . trigger ( "charCounter.update" ) } ) , n . events . on ( "charCounter.update" , u ) , n . events . trigger ( "charCounter.update" ) , void n . events . on ( "destroy" , function ( ) { a ( n . o _win ) . off ( "resize.char" + n . id ) , r . removeData ( ) . remove ( ) , r = null } ) ) } , count : o } } } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/code_beautifier.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/code_beautifier.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( e ) { e . FE . PLUGINS . codeBeautifier = function ( ) { var e , t , n , i , X = { } ; function k ( i , e ) { var t = { "@page" : ! 0 , "@font-face" : ! 0 , "@keyframes" : ! 0 , "@media" : ! 0 , "@supports" : ! 0 , "@document" : ! 0 } , n = { "@media" : ! 0 , "@supports" : ! 0 , "@document" : ! 0 } ; e = e || { } , i = ( i = i || "" ) . replace ( /\r\n|[\r\u2028\u2029]/g , "\n" ) ; var r = e . indent _size || 4 , s = e . indent _char || " " , _ = e . selector _separator _newline === undefined || e . selector _separator _newline , a = e . end _with _newline !== undefined && e . end _with _newline , o = e . newline _between _rules === undefined || e . newline _between _rules , l = e . eol ? e . eol : "\n" ; "string" == typeof r && ( r = parseInt ( r , 10 ) ) , e . indent _with _tabs && ( s = "\t" , r = 1 ) , l = l . replace ( /\\r/ , "\r" ) . replace ( /\\n/ , "\n" ) ; var h , c = /^\s+$/ , u = - 1 , p = 0 ; function d ( ) { return ( h = i . charAt ( ++ u ) ) || "" } function f ( e ) { var t , n = u ; return e && E ( ) , t = i . charAt ( u + 1 ) || "" , u = n - 1 , d ( ) , t } function T ( e ) { for ( var t = u ; d ( ) ; ) if ( "\\" === h ) d ( ) ; else { if ( - 1 !== e . indexOf ( h ) ) break ; if ( "\n" === h ) break } return i . substring ( t , u + 1 ) } function E ( ) { for ( var e = "" ; c . test ( f ( ) ) ; ) d ( ) , e += h ; return e } function g ( ) { var e = "" ; for ( h && c . test ( h ) && ( e = h ) ; c . test ( d ( ) ) ; ) e += h ; return e } function x ( e ) { var t = u ; for ( e = "/" === f ( ) , d ( ) ; d ( ) ; ) { if ( ! e && "*" === h && "/" === f ( ) ) { d ( ) ; break } if ( e && "\n" === h ) return i . substring ( t , u ) } return i . substring ( t , u ) + h } function w ( e ) { return i . substring ( u - e . length , u ) . toLowerCase ( ) === e } function K ( ) { for ( var e = 0 , t = u + 1 ; t < i . length ; t ++ ) { var n = i . charAt ( t ) ; if ( "{" === n ) return ! 0 ; if ( "(" === n ) e += 1 ; else if ( ")" === n ) { if ( 0 == e ) return ! 1 ; e -= 1 } else if ( ";" === n || "}" === n ) return ! 1 } return ! 1 } var m = i . match ( /^[\t ]*/ ) [ 0 ] , R = new Array ( r + 1 ) . join ( s ) , b = 0 , v = 0 ; for ( var S , A , k = { "{" : function ( e ) { k . singleSpace ( ) , y . push ( e ) , k . newLine ( ) } , "}" : function ( e ) { k . newLine ( ) , y . push ( e ) , k . newLine ( ) } , _lastCharWhitespace : function ( ) { return c . test ( y [ y . length - 1 ] ) } , newLine : function ( e ) { y . length && ( e || "\n" === y [ y . length - 1 ] || k . trim ( ) , y . push ( "\n" ) , m && y . push ( m ) ) } , singleSpace : function ( ) { y . length && ! k . _lastCharWhitespace ( ) && y . push ( " " ) } , preserveSingleSpace : function ( ) { V && k . singleSpace ( ) } , trim : function ( ) { for ( ; k . _lastCharWhitespace ( ) ; ) y . pop ( ) } } , y = [ ] , O = ! 1 , N = ! 1 , D = ! 1 , C = "" , L = "" ; ; ) { var I = g ( ) , V = "" !== I , P = - 1 !== I . indexOf ( "\n" ) ; if ( L = C , ! ( C = h ) ) break ; if ( "/" === h && "*" === f ( ) ) { var j = 0 === b ; ( P || j ) && k . newLine ( ) , y . push ( x ( ) ) , k . newLine ( ) , j && k . newLine ( ! 0 ) } else if ( "/" === h && "/" === f ( ) ) P || "{" === L || k . trim ( ) , k . singleSpace ( ) , y . push ( x ( ) ) , k . newLine ( ) ; else if ( "@" === h ) { k . preserveSingleSpace ( ) , y . push ( h ) ; var B = ( void 0 , S = u , A = T ( ": ,;{}()[]/='\"" ) , u = S - 1 , d ( ) , A ) ; B . match ( /[ :]$/ ) && ( d ( ) , B = T ( ": " ) . replace ( /\s$/ , "" ) , y . push ( B ) , k . singleSpace ( ) ) , ( B = B . replace ( /\s$/ , "" ) ) in t && ( v += 1 , B in n && ( D = ! 0 ) ) } else "#" === h && "{" === f ( ) ? ( k . preserveSingleSpace ( ) , y . push ( T ( "}" ) ) ) : "{" === h ? "}" === f ( ! 0 ) ? ( E ( ) , d ( ) , k . singleSpace ( ) , y . push ( "{}" ) , k . newLine ( ) , o && 0 === b && k . newLine ( ! 0 ) ) : ( b ++ , m += R , k [ "{" ] ( h ) , D ? ( D = ! 1 , O = v < b ) : O = v <= b ) : "}" === h ? ( b -- , m = m . slice ( 0 , - r ) , k [ "}" ] ( h ) , N = O = ! 1 , v && v -- , o && 0 === b && k . newLine ( ! 0 ) ) : ":" === h ? ( E ( ) , ! O && ! D || w ( "&" ) || K ( ) ? ":" === f ( ) ? ( d ( ) , y . push ( "::" ) ) : y . push ( ":" ) : ( N = ! 0 , y . push ( ":" ) , k . singleSpace ( ) ) ) : '"' === h || "'" === h ? ( k . preserveSingleSpace ( ) , y . push ( T ( h ) ) ) : ";" === h ? ( N = ! 1 , y . push ( h ) , k . newLine ( ) ) : "(" === h ? w ( "url" ) ? ( y . push ( h ) , E ( ) , d ( ) && ( ")" !== h && '"' !== h && "'" !== h ? y . push ( T ( ")" ) ) : u -- ) ) : ( p ++ , k . preserveSingleSpace ( ) , y . push ( h ) , E ( ) ) : ")" === h ? ( y . push ( h ) , p -- ) : "," === h ? ( y . push ( h ) , E ( ) , _ && ! N && p < 1 ? k . newLine ( ) : k . singleSpace ( ) ) : ( "]" === h || ( "[" === h ? k . preserveSingleSpace ( ) : "=" === h ? ( E ( ) , h = "=" ) : k . preserveSingleSpace ( ) ) , y . push ( h ) ) } var M = "" ; return m && ( M += m ) , M += y . join ( "" ) . replace ( /[\r\n\t ]+$/ , "" ) , a && ( M += "\n" ) , "\n" != l && ( M = M . replace ( /[\n]/g , l ) ) , M } function F ( e , t ) { for ( var n = 0 ; n < t . length ; n += 1 ) if ( t [ n ] === e ) return ! 0 ; return ! 1 } function $ ( e ) { return e . replace ( /^\s+|\s+$/g , "" ) } function y ( e , t ) { return new r ( e , t ) . beautify ( ) } e = X , t = " \ xaa \ xb5 \ xba \ xc0 - \ xd6 \ xd8 - \ xf6 \ xf8 - \u02c1\u02c6 - \u02d1\u02e0 - \u02e4\u02ec\u02ee\u0370 - \u0374\u0376\u0377\u037a - \u037d\u0386\u0388 - \u038a\u038c\u038e - \u03a1\u03a3 - \u03f5\u03f7 - \u0481\u048a - \u0527\u0531 - \u0556\u0559\u0561 - \u0587\u05d0 - \
} ) ;
; /*!node_modules/froala-editor/js/plugins/code_view.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/code_view.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( M ) { M . extend ( M . FE . DEFAULTS , { codeMirror : window . CodeMirror , codeMirrorOptions : { lineNumbers : ! 0 , tabMode : "indent" , indentWithTabs : ! 0 , lineWrapping : ! 0 , mode : "text/html" , tabSize : 2 } , codeBeautifierOptions : { end _with _newline : ! 0 , indent _inner _html : ! 0 , extra _liners : [ "p" , "h1" , "h2" , "h3" , "h4" , "h5" , "h6" , "blockquote" , "pre" , "ul" , "ol" , "table" , "dl" ] , brace _style : "expand" , indent _char : "\t" , indent _size : 1 , wrap _line _length : 0 } , codeViewKeepActiveButtons : [ "fullscreen" ] } ) , M . FE . PLUGINS . codeView = function ( l ) { var d , c ; function f ( ) { return l . $box . hasClass ( "fr-code-view" ) } function h ( ) { return c ? c . getValue ( ) : d . val ( ) } function u ( ) { f ( ) && ( c && c . setSize ( null , l . opts . height ? l . opts . height : "auto" ) , l . opts . heightMin || l . opts . height ? ( l . $box . find ( ".CodeMirror-scroll, .CodeMirror-gutters" ) . css ( "min-height" , l . opts . heightMin || l . opts . height ) , d . css ( "height" , l . opts . height ) ) : l . $box . find ( ".CodeMirror-scroll, .CodeMirror-gutters" ) . css ( "min-height" , "" ) ) } var p , g = ! 1 ; function m ( ) { f ( ) && l . events . trigger ( "blur" ) } function b ( ) { f ( ) && g && l . events . trigger ( "focus" ) } function s ( e ) { d || ( ! function ( ) { d = M ( '<textarea class="fr-code" tabIndex="-1">' ) , l . $wp . append ( d ) , d . attr ( "dir" , l . opts . direction ) , l . $box . hasClass ( "fr-basic" ) || ( p = M ( '<a data-cmd="html" title="Code View" class="fr-command fr-btn html-switch' + ( l . helpers . isMobile ( ) ? "" : " fr-desktop" ) + '" role="button" tabIndex="-1"><i class="fa fa-code"></i></button>' ) , l . $box . append ( p ) , l . events . bindClick ( l . $box , "a.html-switch" , function ( ) { l . events . trigger ( "commands.before" , [ "html" ] ) , v ( ! 1 ) , l . events . trigger ( "commands.after" , [ "html" ] ) } ) ) ; var e = function ( ) { return ! f ( ) } ; l . events . on ( "buttons.refresh" , e ) , l . events . on ( "copy" , e , ! 0 ) , l . events . on ( "cut" , e , ! 0 ) , l . events . on ( "paste" , e , ! 0 ) , l . events . on ( "destroy" , A , ! 0 ) , l . events . on ( "html.set" , function ( ) { f ( ) && v ( ! 0 ) } ) , l . events . on ( "codeView.update" , u ) , l . events . on ( "form.submit" , function ( ) { f ( ) && ( l . html . set ( h ( ) ) , l . events . trigger ( "contentChanged" , [ ] , ! 0 ) ) } , ! 0 ) } ( ) , ! c && l . opts . codeMirror ? ( ( c = l . opts . codeMirror . fromTextArea ( d . get ( 0 ) , l . opts . codeMirrorOptions ) ) . on ( "blur" , m ) , c . on ( "focus" , b ) ) : ( l . events . $on ( d , "keydown keyup change input" , function ( ) { l . opts . height ? this . removeAttribute ( "rows" ) : ( this . rows = 1 , 0 === this . value . length ? this . style . height = "auto" : this . style . height = this . scrollHeight + "px" ) } ) , l . events . $on ( d , "blur" , m ) , l . events . $on ( d , "focus" , b ) ) ) , l . undo . saveStep ( ) , l . html . cleanEmptyTags ( ) , l . html . cleanWhiteTags ( ! 0 ) , l . core . hasFocus ( ) && ( l . core . isEmpty ( ) || ( l . selection . save ( ) , l . $el . find ( '.fr-marker[data-type="true"]:first' ) . replaceWith ( '<span class="fr-tmp fr-sm">F</span>' ) , l . $el . find ( '.fr-marker[data-type="false"]:last' ) . replaceWith ( '<span class="fr-tmp fr-em">F</span>' ) ) ) ; var t = l . html . get ( ! 1 , ! 0 ) ; l . $el . find ( "span.fr-tmp" ) . remove ( ) , l . $box . toggleClass ( "fr-code-view" , ! 0 ) ; var n , r , s = ! 1 ; if ( l . core . hasFocus ( ) && ( s = ! 0 , l . events . disableBlur ( ) , l . $el . blur ( ) ) , t = ( t = t . replace ( /<span class="fr-tmp fr-sm">F<\/span>/ , "FROALA-SM" ) ) . replace ( /<span class="fr-tmp fr-em">F<\/span>/ , "FROALA-EM" ) , l . codeBeautifier && ( t = l . codeBeautifier . run ( t , l . opts . codeBeautifierOptions ) ) , c ) { n = t . indexOf ( "FROALA-SM" ) , ( r = t . indexOf ( "FROALA-EM" ) ) < n ? n = r : r -= 9 ; var i = ( t = t . replace ( /FROALA-SM/g , "" ) . replace ( /FROALA-EM/g , "" ) ) . substring ( 0 , n ) . length - t . substring ( 0 , n ) . replace ( /\n/g , "" ) . length , o = t . substring ( 0 , r ) . length - t . substring ( 0 , r ) . replace ( /\n/g , "" ) . length ; n = t . substring ( 0 , n ) . length - t . substring ( 0 , t . substring ( 0 , n ) . lastIndexOf ( "\n" ) + 1 ) . length , r = t . substring ( 0 , r ) . length - t . substring ( 0 , t . substring ( 0 , r ) . lastIndexOf ( "\n" ) + 1 ) . length , c . setSize ( null , l . opts . height ? l . opts . height : "auto" ) , l . opts . heightMin && l . $box . find ( ".CodeMirror-scroll" ) . css ( "min-height" , l . opts . heightMin ) , c . setValue ( t ) , g = ! s , c . focus ( ) , g = ! 0 , c . setSelection ( { line : i , ch : n } , { line : o , ch : r } ) , c . refresh ( ) , c . clearHistory ( ) } else { n = t . indexOf ( "FROALA-SM" ) , r = t . indexOf ( "FROALA-EM" ) - 9 , l . opts . heightMin && d . css ( "min-height" , l . opts . heightMin ) , l . opts . height && d . css ( "height" , l . opts . height
} ) ;
; /*!node_modules/froala-editor/js/plugins/colors.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/colors.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( e ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , e ) : "object" == typeof module && module . exports ? module . exports = function ( o , r ) { return r === undefined && ( r = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( o ) ) , e ( r ) } : e ( window . jQuery ) } ( function ( C ) { C . extend ( C . FE . POPUP _TEMPLATES , { "colors.picker" : "[_BUTTONS_][_TEXT_COLORS_][_BACKGROUND_COLORS_][_CUSTOM_COLOR_]" } ) , C . extend ( C . FE . DEFAULTS , { colorsText : [ "#61BD6D" , "#1ABC9C" , "#54ACD2" , "#2C82C9" , "#9365B8" , "#475577" , "#CCCCCC" , "#41A85F" , "#00A885" , "#3D8EB9" , "#2969B0" , "#553982" , "#28324E" , "#000000" , "#F7DA64" , "#FBA026" , "#EB6B56" , "#E25041" , "#A38F84" , "#EFEFEF" , "#FFFFFF" , "#FAC51C" , "#F37934" , "#D14841" , "#B8312F" , "#7C706B" , "#D1D5D8" , "REMOVE" ] , colorsBackground : [ "#61BD6D" , "#1ABC9C" , "#54ACD2" , "#2C82C9" , "#9365B8" , "#475577" , "#CCCCCC" , "#41A85F" , "#00A885" , "#3D8EB9" , "#2969B0" , "#553982" , "#28324E" , "#000000" , "#F7DA64" , "#FBA026" , "#EB6B56" , "#E25041" , "#A38F84" , "#EFEFEF" , "#FFFFFF" , "#FAC51C" , "#F37934" , "#D14841" , "#B8312F" , "#7C706B" , "#D1D5D8" , "REMOVE" ] , colorsStep : 7 , colorsHEXInput : ! 0 , colorsDefaultTab : "text" , colorsButtons : [ "colorsBack" , "|" , "-" ] } ) ; var c = [ "text" , "background" ] ; C . FE . PLUGINS . colors = function ( E ) { function r ( ) { E . popups . hide ( "colors.picker" ) } function s ( o ) { for ( var r = "text" == o ? E . opts . colorsText : E . opts . colorsBackground , e = '<div class="fr-color-set fr-' + o + "-color" + ( E . opts . colorsDefaultTab == o || "text" != E . opts . colorsDefaultTab && "background" != E . opts . colorsDefaultTab && "text" == o ? " fr-selected-set" : "" ) + '">' , t = 0 ; t < r . length ; t ++ ) 0 !== t && t % E . opts . colorsStep == 0 && ( e += "<br>" ) , "REMOVE" != r [ t ] ? e += '<span class="fr-command fr-select-color" style="background: ' + r [ t ] + ';" tabIndex="-1" aria-selected="false" role="button" data-cmd="' + o + 'Color" data-param1="' + r [ t ] + '"><span class="fr-sr-only">' + E . language . translate ( "Color" ) + " " + r [ t ] + " </span></span>" : e += '<span class="fr-command fr-select-color" data-cmd="' + o + 'Color" tabIndex="-1" role="button" data-param1="REMOVE" title="' + E . language . translate ( "Clear Formatting" ) + '">' + E . icon . create ( "remove" ) + '<span class="fr-sr-only">' + E . language . translate ( "Clear Formatting" ) + "</span></span>" ; return e + "</div>" } function l ( o ) { var r = E . popups . get ( "colors.picker" ) , e = r . find ( ".fr-" + o + "-color .fr-active-item" ) . attr ( "data-param1" ) , t = r . find ( ".fr-color-hex-layer input" ) , a = r . find ( '.fr-colors-tab[data-param1="' + o + '"]' ) ; t . length && a . hasClass ( "fr-selected-tab" ) && t . val ( e ) . trigger ( "change" ) } function t ( o ) { "REMOVE" != o ? E . format . applyStyle ( "background-color" , E . helpers . HEXtoRGB ( o ) ) : E . format . removeStyle ( "background-color" ) , r ( ) } function a ( o ) { "REMOVE" != o ? E . format . applyStyle ( "color" , E . helpers . HEXtoRGB ( o ) ) : E . format . removeStyle ( "color" ) , r ( ) } return { showColorsPopup : function ( ) { var o = E . $tb . find ( '.fr-command[data-cmd="color"]' ) , r = E . popups . get ( "colors.picker" ) ; if ( r || ( r = function ( ) { var o , r = '<div class="fr-buttons fr-colors-buttons">' ; E . opts . toolbarInline && 0 < E . opts . colorsButtons . length && ( r += E . button . buildList ( E . opts . colorsButtons ) ) , r += ( o = '<div class="fr-colors-tabs fr-group">' , o += '<span class="fr-colors-tab ' + ( "background" == E . opts . colorsDefaultTab ? "" : "fr-selected-tab " ) + 'fr-command" tabIndex="-1" role="button" aria-pressed="' + ( "background" != E . opts . colorsDefaultTab ) + '" data-param1="text" data-cmd="colorChangeSet" title="' + E . language . translate ( "Text" ) + '">' + E . language . translate ( "Text" ) + "</span>" , ( o += '<span class="fr-colors-tab ' + ( "background" == E . opts . colorsDefaultTab ? "fr-selected-tab " : "" ) + 'fr-command" tabIndex="-1" role="button" aria-pressed="' + ( "background" == E . opts . colorsDefaultTab ) + '" data-param1="background" data-cmd="colorChangeSet" title="' + E . language . translate ( "Background" ) + '">' + E . language . translate ( "Background" ) + "</span>" ) + "</div></div>" ) ; var e = "" ; E . opts . colorsHEXInput && ( e = '<div class="fr-color-hex-layer fr-active fr-layer" id="fr-color-hex-layer-' + E . id + '"><div class="fr-input-line"><input maxlength="7" id="fr-color-hex-layer-text-' + E . id + '" type="text" placeholder="' + E . language . translate ( "HEX Color" ) + ' " tabIndex=" 1 " aria-required=" true "></div><div class=" fr - action - buttons "><button type=" button " class=" fr - command fr - submit " data-cmd=" customColor "
} ) ;
; /*!node_modules/froala-editor/js/plugins/draggable.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/draggable.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( v ) { v . extend ( v . FE . DEFAULTS , { dragInline : ! 0 } ) , v . FE . PLUGINS . draggable = function ( f ) { function e ( e ) { return ! ( ! e . originalEvent || ! e . originalEvent . target || e . originalEvent . target . nodeType != Node . TEXT _NODE ) || ( e . target && "A" == e . target . tagName && 1 == e . target . childNodes . length && "IMG" == e . target . childNodes [ 0 ] . tagName && ( e . target = e . target . childNodes [ 0 ] ) , v ( e . target ) . hasClass ( "fr-draggable" ) ? ( f . undo . canDo ( ) || f . undo . saveStep ( ) , f . opts . dragInline ? f . $el . attr ( "contenteditable" , ! 0 ) : f . $el . attr ( "contenteditable" , ! 1 ) , f . opts . toolbarInline && f . toolbar . hide ( ) , v ( e . target ) . addClass ( "fr-dragging" ) , f . browser . msie || f . browser . edge || f . selection . clear ( ) , void e . originalEvent . dataTransfer . setData ( "text" , "Froala" ) ) : ( f . browser . msie || e . preventDefault ( ) , ! 1 ) ) } function g ( e ) { return ! ( e && ( "HTML" == e . tagName || "BODY" == e . tagName || f . node . isElement ( e ) ) ) } function d ( e , t , n ) { f . opts . iframe && ( e += f . $iframe . offset ( ) . top , t += f . $iframe . offset ( ) . left ) , p . offset ( ) . top != e && p . css ( "top" , e ) , p . offset ( ) . left != t && p . css ( "left" , t ) , p . width ( ) != n && p . css ( "width" , n ) } function t ( e ) { e . originalEvent . dataTransfer . dropEffect = "move" , f . opts . dragInline ? ( ! function ( ) { for ( var e = null , t = 0 ; t < v . FE . INSTANCES . length ; t ++ ) if ( ( e = v . FE . INSTANCES [ t ] . $el . find ( ".fr-dragging" ) ) . length ) return e . get ( 0 ) } ( ) || f . browser . msie || f . browser . edge ) && e . preventDefault ( ) : ( e . preventDefault ( ) , function ( e ) { var t = f . doc . elementFromPoint ( e . originalEvent . pageX - f . win . pageXOffset , e . originalEvent . pageY - f . win . pageYOffset ) ; if ( ! g ( t ) ) { for ( var n = 0 , r = t ; ! g ( r ) && r == t && 0 < e . originalEvent . pageY - f . win . pageYOffset - n ; ) n ++ , r = f . doc . elementFromPoint ( e . originalEvent . pageX - f . win . pageXOffset , e . originalEvent . pageY - f . win . pageYOffset - n ) ; ( ! g ( r ) || p && 0 === f . $el . find ( r ) . length && r != p . get ( 0 ) ) && ( r = null ) ; for ( var a = 0 , o = t ; ! g ( o ) && o == t && e . originalEvent . pageY - f . win . pageYOffset + a < v ( f . doc ) . height ( ) ; ) a ++ , o = f . doc . elementFromPoint ( e . originalEvent . pageX - f . win . pageXOffset , e . originalEvent . pageY - f . win . pageYOffset + a ) ; ( ! g ( o ) || p && 0 === f . $el . find ( o ) . length && o != p . get ( 0 ) ) && ( o = null ) , t = null == o && r ? r : o && null == r ? o : o && r ? n < a ? r : o : null } if ( v ( t ) . hasClass ( "fr-drag-helper" ) ) return ; if ( t && ! f . node . isBlock ( t ) && ( t = f . node . blockParent ( t ) ) , t && 0 <= [ "TD" , "TH" , "TR" , "THEAD" , "TBODY" ] . indexOf ( t . tagName ) && ( t = v ( t ) . parents ( "table" ) . get ( 0 ) ) , t && 0 <= [ "LI" ] . indexOf ( t . tagName ) && ( t = v ( t ) . parents ( "UL, OL" ) . get ( 0 ) ) , t && ! v ( t ) . hasClass ( "fr-drag-helper" ) ) { var i ; p || ( v . FE . $draggable _helper || ( v . FE . $draggable _helper = v ( '<div class="fr-drag-helper"></div>' ) ) , p = v . FE . $draggable _helper , f . events . on ( "shared.destroy" , function ( ) { p . html ( "" ) . removeData ( ) . remove ( ) , p = null } , ! 0 ) ) , i = e . originalEvent . pageY < v ( t ) . offset ( ) . top + v ( t ) . outerHeight ( ) / 2 ; var l = v ( t ) , s = 0 ; i || 0 !== l . next ( ) . length ? ( i || ( l = l . next ( ) ) , "before" == p . data ( "fr-position" ) && l . is ( p . data ( "fr-tag" ) ) || ( 0 < l . prev ( ) . length && ( s = parseFloat ( l . prev ( ) . css ( "margin-bottom" ) ) || 0 ) , s = Math . max ( s , parseFloat ( l . css ( "margin-top" ) ) || 0 ) , d ( l . offset ( ) . top - s / 2 - f . $box . offset ( ) . top , l . offset ( ) . left - f . win . pageXOffset - f . $box . offset ( ) . left , l . width ( ) ) , p . data ( "fr-position" , "before" ) ) ) : "after" == p . data ( "fr-position" ) && l . is ( p . data ( "fr-tag" ) ) || ( s = parseFloat ( l . css ( "margin-bottom" ) ) || 0 , d ( l . offset ( ) . top + v ( t ) . height ( ) + s / 2 - f . $box . offset ( ) . top , l . offset ( ) . left - f . win . pageXOffset - f . $box . offset ( ) . left , l . width ( ) ) , p . data ( "fr-position" , "after" ) ) , p . data ( "fr-tag" , l ) , p . addClass ( "fr-visible" ) , p . appendTo ( f . $box ) } else p && 0 < f . $box . find ( p ) . length && p . removeClass ( "fr-visible" ) } ( e ) ) } function n ( e ) { e . originalEvent . dataTransfer . dropEffect = "move" , f . opts . dragInline || e . preventDefault ( ) } function r ( e ) { f . $el . attr ( "contenteditable" , ! 0 ) ; var t = f . $el . find ( ".fr-dragging" ) ; p && p . hasClass ( "fr-visible" ) && f . $box . find ( p ) . length ? a ( e ) : t . length && ( e . preventDefault ( ) , e . stopPropagation ( ) ) , p && f . $box . find ( p ) . length && p . removeClass ( "fr-visible" ) , t . removeClass ( "fr-dragging" ) } function a ( e ) { var t , n ; "true" !== f . $el . attr ( "contenteditable" ) && f . $el . attr ( "contenteditable" , ! 0 ) ; for ( var r = 0 ; r < v . FE . INSTANCES . length ; r +
} ) ;
; /*!node_modules/froala-editor/js/plugins/emoticons.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/emoticons.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( e , o ) { return o === undefined && ( o = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , t ( o ) } : t ( window . jQuery ) } ( function ( g ) { g . extend ( g . FE . POPUP _TEMPLATES , { emoticons : "[_BUTTONS_][_EMOTICONS_]" } ) , g . extend ( g . FE . DEFAULTS , { emoticonsStep : 8 , emoticonsSet : [ { code : "1f600" , desc : "Grinning face" } , { code : "1f601" , desc : "Grinning face with smiling eyes" } , { code : "1f602" , desc : "Face with tears of joy" } , { code : "1f603" , desc : "Smiling face with open mouth" } , { code : "1f604" , desc : "Smiling face with open mouth and smiling eyes" } , { code : "1f605" , desc : "Smiling face with open mouth and cold sweat" } , { code : "1f606" , desc : "Smiling face with open mouth and tightly-closed eyes" } , { code : "1f607" , desc : "Smiling face with halo" } , { code : "1f608" , desc : "Smiling face with horns" } , { code : "1f609" , desc : "Winking face" } , { code : "1f60a" , desc : "Smiling face with smiling eyes" } , { code : "1f60b" , desc : "Face savoring delicious food" } , { code : "1f60c" , desc : "Relieved face" } , { code : "1f60d" , desc : "Smiling face with heart-shaped eyes" } , { code : "1f60e" , desc : "Smiling face with sunglasses" } , { code : "1f60f" , desc : "Smirking face" } , { code : "1f610" , desc : "Neutral face" } , { code : "1f611" , desc : "Expressionless face" } , { code : "1f612" , desc : "Unamused face" } , { code : "1f613" , desc : "Face with cold sweat" } , { code : "1f614" , desc : "Pensive face" } , { code : "1f615" , desc : "Confused face" } , { code : "1f616" , desc : "Confounded face" } , { code : "1f617" , desc : "Kissing face" } , { code : "1f618" , desc : "Face throwing a kiss" } , { code : "1f619" , desc : "Kissing face with smiling eyes" } , { code : "1f61a" , desc : "Kissing face with closed eyes" } , { code : "1f61b" , desc : "Face with stuck out tongue" } , { code : "1f61c" , desc : "Face with stuck out tongue and winking eye" } , { code : "1f61d" , desc : "Face with stuck out tongue and tightly-closed eyes" } , { code : "1f61e" , desc : "Disappointed face" } , { code : "1f61f" , desc : "Worried face" } , { code : "1f620" , desc : "Angry face" } , { code : "1f621" , desc : "Pouting face" } , { code : "1f622" , desc : "Crying face" } , { code : "1f623" , desc : "Persevering face" } , { code : "1f624" , desc : "Face with look of triumph" } , { code : "1f625" , desc : "Disappointed but relieved face" } , { code : "1f626" , desc : "Frowning face with open mouth" } , { code : "1f627" , desc : "Anguished face" } , { code : "1f628" , desc : "Fearful face" } , { code : "1f629" , desc : "Weary face" } , { code : "1f62a" , desc : "Sleepy face" } , { code : "1f62b" , desc : "Tired face" } , { code : "1f62c" , desc : "Grimacing face" } , { code : "1f62d" , desc : "Loudly crying face" } , { code : "1f62e" , desc : "Face with open mouth" } , { code : "1f62f" , desc : "Hushed face" } , { code : "1f630" , desc : "Face with open mouth and cold sweat" } , { code : "1f631" , desc : "Face screaming in fear" } , { code : "1f632" , desc : "Astonished face" } , { code : "1f633" , desc : "Flushed face" } , { code : "1f634" , desc : "Sleeping face" } , { code : "1f635" , desc : "Dizzy face" } , { code : "1f636" , desc : "Face without mouth" } , { code : "1f637" , desc : "Face with medical mask" } ] , emoticonsButtons : [ "emoticonsBack" , "|" ] , emoticonsUseImage : ! 0 } ) , g . FE . PLUGINS . emoticons = function ( E ) { function n ( ) { if ( ! E . selection . isCollapsed ( ) ) return ! 1 ; var e = E . selection . element ( ) , o = E . selection . endElement ( ) ; if ( e && E . node . hasClass ( e , "fr-emoticon" ) ) return e ; if ( o && E . node . hasClass ( o , "fr-emoticon" ) ) return o ; var t = E . selection . ranges ( 0 ) , s = t . startContainer ; if ( s . nodeType == Node . ELEMENT _NODE && 0 < s . childNodes . length && 0 < t . startOffset ) { var n = s . childNodes [ t . startOffset - 1 ] ; if ( E . node . hasClass ( n , "fr-emoticon" ) ) return n } return ! 1 } return { _init : function ( ) { var e = function ( ) { for ( var e = E . el . querySelectorAll ( ".fr-emoticon:not(.fr-deletable)" ) , o = 0 ; o < e . length ; o ++ ) e [ o ] . className += " fr-deletable" } ; e ( ) , E . events . on ( "html.set" , e ) , E . events . on ( "keydown" , function ( e ) { if ( E . keys . isCharacter ( e . which ) && E . selection . inEditor ( ) ) { var o = E . selection . ranges ( 0 ) , t = n ( ) ; E . node . hasClass ( t , "fr-emoticon-img" ) && t && ( 0 === o . startOffset && E . selection . element ( ) === t ? g ( t ) . before ( g . FE . MARKERS + g . FE . INVISIBLE _SPACE ) : g ( t ) . after ( g . FE . INVISIBLE _SPACE + g . FE . MARKERS ) , E . selection . restore ( ) ) } } ) , E . events . on ( "keyup" , function ( e ) { for ( var o = E . el . querySelectorAll ( ".fr-emoticon" ) , t = 0 ; t < o . length ; t ++ ) "undefined" != typeof o [ t ] . textContent && 0 === o [ t ] . text
} ) ;
; /*!node_modules/froala-editor/js/plugins/entities.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/entities.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : "object" == typeof module && module . exports ? module . exports = function ( e , r ) { return r === undefined && ( r = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , a ( r ) } : a ( window . jQuery ) } ( function ( c ) { c . extend ( c . FE . DEFAULTS , { entities : ""'¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿŒœŠšŸƒˆ˜ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ   ‌‍‎‏–—‘’‚“”„†‡•…‰′″‹›‾⁄€ℑ℘ℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋⟨⟩◊♠♣♥♦" } ) , c . FE . PLUGINS . entities = function ( t ) { var n , u ; function i ( e ) { var r = e . textContent ; if ( r . match ( n ) ) { for ( var a = "" , i = 0 ; i < r . length ; i ++ ) u [ r [ i ] ] ? a += u [ r [ i ] ] : a += r [ i ] ; e . textContent = a } } function o ( e ) { if ( e && 0 <= [ "STYLE" , "SCRIPT" , "svg" , "IFRAME" ] . indexOf ( e . tagName ) ) return ! 0 ; for ( var r = t . node . contents ( e ) , a = 0 ; a < r . length ; a ++ ) r [ a ] . nodeType == Node . TEXT _NODE ? i ( r [ a ] ) : o ( r [ a ] ) ; e . nodeType == Node . TEXT _NODE && i ( e ) } function l ( e ) { return 0 === e . length ? "" : t . clean . exec ( e , o ) . replace ( /\&/g , "&" ) } return { _init : function ( ) { t . opts . htmlSimpleAmpersand || ( t . opts . entities = t . opts . entities + "&" ) ; var e = c ( "<div>" ) . html ( t . opts . entities ) . text ( ) , r = t . opts . entities . split ( ";" ) ; u = { } , n = "" ; for ( var a = 0 ; a < e . length ; a ++ ) { var i = e . charAt ( a ) ; u [ i ] = r [ a ] + ";" , n += "\\" + i + ( a < e . length - 1 ? "|" : "" ) } n = new RegExp ( "(" + n + ")" , "g" ) , t . events . on ( "html.get" , l , ! 0 ) } } } } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/font_family.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/font_family.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( l ) { l . extend ( l . FE . DEFAULTS , { fontFamily : { "Arial,Helvetica,sans-serif" : "Arial" , "Georgia,serif" : "Georgia" , "Impact,Charcoal,sans-serif" : "Impact" , "Tahoma,Geneva,sans-serif" : "Tahoma" , "Times New Roman,Times,serif,-webkit-standard" : "Times New Roman" , "Verdana,Geneva,sans-serif" : "Verdana" } , fontFamilySelection : ! 1 , fontFamilyDefaultSelection : "Font Family" } ) , l . FE . PLUGINS . fontFamily = function ( o ) { function i ( e ) { var t = e . replace ( /(sans-serif|serif|monospace|cursive|fantasy)/gi , "" ) . replace ( /"|'| /g , "" ) . split ( "," ) ; return l . grep ( t , function ( e ) { return 0 < e . length } ) } function r ( e , t ) { for ( var n = 0 ; n < e . length ; n ++ ) for ( var a = 0 ; a < t . length ; a ++ ) if ( e [ n ] . toLowerCase ( ) == t [ a ] . toLowerCase ( ) ) return [ n , a ] ; return null } function f ( ) { var e = i ( l ( o . selection . element ( ) ) . css ( "font-family" ) ) , t = [ ] ; for ( var n in o . opts . fontFamily ) if ( o . opts . fontFamily . hasOwnProperty ( n ) ) { var a = r ( e , i ( n ) ) ; a && t . push ( [ n , a ] ) } return 0 === t . length ? null : ( t . sort ( function ( e , t ) { var n = e [ 1 ] [ 0 ] - t [ 1 ] [ 0 ] ; return 0 === n ? e [ 1 ] [ 1 ] - t [ 1 ] [ 1 ] : n } ) , t [ 0 ] [ 0 ] ) } return { apply : function ( e ) { o . format . applyStyle ( "font-family" , e ) } , refreshOnShow : function ( e , t ) { t . find ( ".fr-command.fr-active" ) . removeClass ( "fr-active" ) . attr ( "aria-selected" , ! 1 ) , t . find ( '.fr-command[data-param1="' + f ( ) + '"]' ) . addClass ( "fr-active" ) . attr ( "aria-selected" , ! 0 ) ; var n = t . find ( ".fr-dropdown-list" ) , a = t . find ( ".fr-active" ) . parent ( ) ; a . length ? n . parent ( ) . scrollTop ( a . offset ( ) . top - n . offset ( ) . top - ( n . parent ( ) . outerHeight ( ) / 2 - a . outerHeight ( ) / 2 ) ) : n . parent ( ) . scrollTop ( 0 ) } , refresh : function ( e ) { if ( o . opts . fontFamilySelection ) { var t = l ( o . selection . element ( ) ) . css ( "font-family" ) . replace ( /(sans-serif|serif|monospace|cursive|fantasy)/gi , "" ) . replace ( /"|'|/g , "" ) . split ( "," ) ; e . find ( "> span" ) . text ( o . opts . fontFamily [ f ( ) ] || t [ 0 ] || o . language . translate ( o . opts . fontFamilyDefaultSelection ) ) } } } } , l . FE . RegisterCommand ( "fontFamily" , { type : "dropdown" , displaySelection : function ( e ) { return e . opts . fontFamilySelection } , defaultSelection : function ( e ) { return e . opts . fontFamilyDefaultSelection } , displaySelectionWidth : 120 , html : function ( ) { var e = '<ul class="fr-dropdown-list" role="presentation">' , t = this . opts . fontFamily ; for ( var n in t ) t . hasOwnProperty ( n ) && ( e += '<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="fontFamily" data-param1="' + n + '" style="font-family: ' + n + '" title="' + t [ n ] + '">' + t [ n ] + "</a></li>" ) ; return e += "</ul>" } , title : "Font Family" , callback : function ( e , t ) { this . fontFamily . apply ( t ) } , refresh : function ( e ) { this . fontFamily . refresh ( e ) } , refreshOnShow : function ( e , t ) { this . fontFamily . refreshOnShow ( e , t ) } , plugin : "fontFamily" } ) , l . FE . DefineIcon ( "fontFamily" , { NAME : "font" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/font_size.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/font_size.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( f ) { f . extend ( f . FE . DEFAULTS , { fontSize : [ "8" , "9" , "10" , "11" , "12" , "14" , "18" , "24" , "30" , "36" , "48" , "60" , "72" , "96" ] , fontSizeSelection : ! 1 , fontSizeDefaultSelection : "12" , fontSizeUnit : "px" } ) , f . FE . PLUGINS . fontSize = function ( r ) { return { apply : function ( e ) { r . format . applyStyle ( "font-size" , e ) } , refreshOnShow : function ( e , t ) { var n = f ( r . selection . element ( ) ) . css ( "font-size" ) ; "pt" === r . opts . fontSizeUnit && ( n = Math . round ( 72 * parseFloat ( n , 10 ) / 96 ) + "pt" ) , t . find ( ".fr-command.fr-active" ) . removeClass ( "fr-active" ) . attr ( "aria-selected" , ! 1 ) , t . find ( '.fr-command[data-param1="' + n + '"]' ) . addClass ( "fr-active" ) . attr ( "aria-selected" , ! 0 ) ; var o = t . find ( ".fr-dropdown-list" ) , i = t . find ( ".fr-active" ) . parent ( ) ; i . length ? o . parent ( ) . scrollTop ( i . offset ( ) . top - o . offset ( ) . top - ( o . parent ( ) . outerHeight ( ) / 2 - i . outerHeight ( ) / 2 ) ) : o . parent ( ) . scrollTop ( 0 ) } , refresh : function ( e ) { if ( r . opts . fontSizeSelection ) { var t = r . helpers . getPX ( f ( r . selection . element ( ) ) . css ( "font-size" ) ) ; "pt" === r . opts . fontSizeUnit && ( t = Math . round ( 72 * parseFloat ( t , 10 ) / 96 ) + "pt" ) , e . find ( "> span" ) . text ( t ) } } } } , f . FE . RegisterCommand ( "fontSize" , { type : "dropdown" , title : "Font Size" , displaySelection : function ( e ) { return e . opts . fontSizeSelection } , displaySelectionWidth : 30 , defaultSelection : function ( e ) { return e . opts . fontSizeDefaultSelection } , html : function ( ) { for ( var e = '<ul class="fr-dropdown-list" role="presentation">' , t = this . opts . fontSize , n = 0 ; n < t . length ; n ++ ) { var o = t [ n ] ; e += '<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="fontSize" data-param1="' + o + this . opts . fontSizeUnit + '" title="' + o + '">' + o + "</a></li>" } return e += "</ul>" } , callback : function ( e , t ) { this . fontSize . apply ( t ) } , refresh : function ( e ) { this . fontSize . refresh ( e ) } , refreshOnShow : function ( e , t ) { this . fontSize . refreshOnShow ( e , t ) } , plugin : "fontSize" } ) , f . FE . DefineIcon ( "fontSize" , { NAME : "text-height" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/forms.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/forms.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( o ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , o ) : "object" == typeof module && module . exports ? module . exports = function ( t , e ) { return e === undefined && ( e = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( t ) ) , o ( e ) } : o ( window . jQuery ) } ( function ( l ) { l . extend ( l . FE . POPUP _TEMPLATES , { "forms.edit" : "[_BUTTONS_]" , "forms.update" : "[_BUTTONS_][_TEXT_LAYER_]" } ) , l . extend ( l . FE . DEFAULTS , { formEditButtons : [ "inputStyle" , "inputEdit" ] , formStyles : { "fr-rounded" : "Rounded" , "fr-large" : "Large" } , formMultipleStyles : ! 0 , formUpdateButtons : [ "inputBack" , "|" ] } ) , l . FE . PLUGINS . forms = function ( s ) { var r ; function t ( t ) { t . preventDefault ( ) , s . selection . clear ( ) , l ( this ) . data ( "mousedown" , ! 0 ) } function e ( t ) { l ( this ) . data ( "mousedown" ) && ( t . stopPropagation ( ) , l ( this ) . removeData ( "mousedown" ) , a ( r = this ) ) , t . preventDefault ( ) } function o ( ) { s . $el . find ( "input, textarea, button" ) . removeData ( "mousedown" ) } function n ( ) { l ( this ) . removeData ( "mousedown" ) } function i ( ) { return r || null } function a ( t ) { var e = s . popups . get ( "forms.edit" ) ; e || ( e = function ( ) { var t = "" ; 0 < s . opts . formEditButtons . length && ( t = '<div class="fr-buttons">' + s . button . buildList ( s . opts . formEditButtons ) + "</div>" ) ; var e = { buttons : t } , o = s . popups . create ( "forms.edit" , e ) ; return s . $wp && s . events . $on ( s . $wp , "scroll.link-edit" , function ( ) { i ( ) && s . popups . isVisible ( "forms.edit" ) && a ( i ( ) ) } ) , o } ( ) ) ; var o = l ( r = t ) ; s . popups . refresh ( "forms.edit" ) , s . popups . setContainer ( "forms.edit" , s . $sc ) ; var n = o . offset ( ) . left + o . outerWidth ( ) / 2 , u = o . offset ( ) . top + o . outerHeight ( ) ; s . popups . show ( "forms.edit" , n , u , o . outerHeight ( ) ) } function p ( ) { var t = s . popups . get ( "forms.update" ) , e = i ( ) ; if ( e ) { var o = l ( e ) ; o . is ( "button" ) ? t . find ( 'input[type="text"][name="text"]' ) . val ( o . text ( ) ) : t . find ( 'input[type="text"][name="text"]' ) . val ( o . attr ( "placeholder" ) ) } t . find ( 'input[type="text"][name="text"]' ) . trigger ( "change" ) } function f ( ) { r = null } function d ( t ) { if ( t ) return s . popups . onRefresh ( "forms.update" , p ) , s . popups . onHide ( "forms.update" , f ) , ! 0 ; var e = "" ; 1 <= s . opts . formUpdateButtons . length && ( e = '<div class="fr-buttons">' + s . button . buildList ( s . opts . formUpdateButtons ) + "</div>" ) ; var o = "" , n = 0 ; o = '<div class="fr-forms-text-layer fr-layer fr-active">' , o += '<div class="fr-input-line"><input name="text" type="text" placeholder="Text" tabIndex="' + ++ n + '"></div>' ; var u = { buttons : e , text _layer : o += '<div class="fr-action-buttons"><button class="fr-command fr-submit" data-cmd="updateInput" href="#" tabIndex="' + ++ n + '" type="button">' + s . language . translate ( "Update" ) + "</button></div></div>" } ; return s . popups . create ( "forms.update" , u ) } return { _init : function ( ) { s . events . $on ( s . $el , s . _mousedown , "input, textarea, button" , t ) , s . events . $on ( s . $el , s . _mouseup , "input, textarea, button" , e ) , s . events . $on ( s . $el , "touchmove" , "input, textarea, button" , n ) , s . events . $on ( s . $el , s . _mouseup , o ) , s . events . $on ( s . $win , s . _mouseup , o ) , d ( ! 0 ) , s . events . $on ( s . $el , "submit" , "form" , function ( t ) { return t . preventDefault ( ) , ! 1 } ) } , updateInput : function ( ) { var t = s . popups . get ( "forms.update" ) , e = i ( ) ; if ( e ) { var o = l ( e ) , n = t . find ( 'input[type="text"][name="text"]' ) . val ( ) || "" ; n . length && ( o . is ( "button" ) ? o . text ( n ) : o . attr ( "placeholder" , n ) ) , s . popups . hide ( "forms.update" ) , a ( e ) } } , getInput : i , applyStyle : function ( t , e , o ) { void 0 === e && ( e = s . opts . formStyles ) , void 0 === o && ( o = s . opts . formMultipleStyles ) ; var n = i ( ) ; if ( ! n ) return ! 1 ; if ( ! o ) { var u = Object . keys ( e ) ; u . splice ( u . indexOf ( t ) , 1 ) , l ( n ) . removeClass ( u . join ( " " ) ) } l ( n ) . toggleClass ( t ) } , showUpdatePopup : function ( ) { var t = i ( ) ; if ( t ) { var e = l ( t ) , o = s . popups . get ( "forms.update" ) ; o || ( o = d ( ) ) , s . popups . isVisible ( "forms.update" ) || s . popups . refresh ( "forms.update" ) , s . popups . setContainer ( "forms.update" , s . $sc ) ; var n = e . offset ( ) . left + e . outerWidth ( ) / 2 , u = e . offset ( ) . top + e . outerHeight ( ) ; s . popups . show ( "forms.update" , n , u , e . outerHeight ( ) ) } } , showEditPopup : a , back : function ( ) { s . events . disableBlur ( ) , s . selection . restore ( ) , s . events . enableBlur ( ) ; var t = i ( ) ; t && s . $wp && ( "BUTTON" == t . tagName && s . selection . restore ( ) , a ( t ) ) } } } , l . FE . RegisterCommand ( "updateInput" , { undo : ! 1 , focus : ! 1 , title : "Update" , callback : function ( ) { this . forms . updateInput ( ) } } ) , l . FE . DefineIcon ( "inputStyle" , { NAME : "magic" } ) , l . FE . RegisterCommand ( "inputStyle" , { title : "Style" , type : "dropdown" , html : f
} ) ;
; /*!node_modules/froala-editor/js/plugins/fullscreen.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/fullscreen.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( o ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , o ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , o ( t ) } : o ( window . jQuery ) } ( function ( c ) { c . FE . PLUGINS . fullscreen = function ( o ) { var t , r , s , n ; function i ( ) { return o . $box . hasClass ( "fr-fullscreen" ) } function e ( ) { if ( o . helpers . isIOS ( ) && o . core . hasFocus ( ) ) return o . $el . blur ( ) , setTimeout ( f , 250 ) , ! 1 ; t = o . helpers . scrollTop ( ) , o . $box . toggleClass ( "fr-fullscreen" ) , c ( "body:first" ) . toggleClass ( "fr-fullscreen" ) , o . helpers . isMobile ( ) && ( o . $tb . data ( "parent" , o . $tb . parent ( ) ) , o . $tb . prependTo ( o . $box ) , o . $tb . data ( "sticky-dummy" ) && o . $tb . after ( o . $tb . data ( "sticky-dummy" ) ) ) , r = o . opts . height , s = o . opts . heightMax , n = o . opts . zIndex , o . position . refresh ( ) , o . opts . height = o . o _win . innerHeight - ( o . opts . toolbarInline ? 0 : o . $tb . outerHeight ( ) ) , o . opts . zIndex = 2147483641 , o . opts . heightMax = null , o . size . refresh ( ) , o . opts . toolbarInline && o . toolbar . showInline ( ) ; for ( var e = o . $box . parent ( ) ; ! e . is ( "body:first" ) ; ) e . addClass ( "fr-fullscreen-wrapper" ) , e = e . parent ( ) ; o . opts . toolbarContainer && o . $box . prepend ( o . $tb ) , o . events . trigger ( "charCounter.update" ) , o . events . trigger ( "codeView.update" ) , o . $win . trigger ( "scroll" ) } function l ( ) { if ( o . helpers . isIOS ( ) && o . core . hasFocus ( ) ) return o . $el . blur ( ) , setTimeout ( f , 250 ) , ! 1 ; o . $box . toggleClass ( "fr-fullscreen" ) , c ( "body:first" ) . toggleClass ( "fr-fullscreen" ) , o . $tb . prependTo ( o . $tb . data ( "parent" ) ) , o . $tb . data ( "sticky-dummy" ) && o . $tb . after ( o . $tb . data ( "sticky-dummy" ) ) , o . opts . height = r , o . opts . heightMax = s , o . opts . zIndex = n , o . size . refresh ( ) , c ( o . o _win ) . scrollTop ( t ) , o . opts . toolbarInline && o . toolbar . showInline ( ) , o . events . trigger ( "charCounter.update" ) , o . opts . toolbarSticky && o . opts . toolbarStickyOffset && ( o . opts . toolbarBottom ? o . $tb . css ( "bottom" , o . opts . toolbarStickyOffset ) . data ( "bottom" , o . opts . toolbarStickyOffset ) : o . $tb . css ( "top" , o . opts . toolbarStickyOffset ) . data ( "top" , o . opts . toolbarStickyOffset ) ) ; for ( var e = o . $box . parent ( ) ; ! e . is ( "body:first" ) ; ) e . removeClass ( "fr-fullscreen-wrapper" ) , e = e . parent ( ) ; o . opts . toolbarContainer && c ( o . opts . toolbarContainer ) . append ( o . $tb ) , c ( o . o _win ) . trigger ( "scroll" ) , o . events . trigger ( "codeView.update" ) } function f ( ) { i ( ) ? l ( ) : e ( ) , a ( o . $tb . find ( '.fr-command[data-cmd="fullscreen"]' ) ) } function a ( e ) { var t = i ( ) ; e . toggleClass ( "fr-active" , t ) . attr ( "aria-pressed" , t ) , e . find ( "> *:not(.fr-sr-only)" ) . replaceWith ( t ? o . icon . create ( "fullscreenCompress" ) : o . icon . create ( "fullscreen" ) ) } return { _init : function ( ) { if ( ! o . $wp ) return ! 1 ; o . events . $on ( c ( o . o _win ) , "resize" , function ( ) { i ( ) && ( l ( ) , e ( ) ) } ) , o . events . on ( "toolbar.hide" , function ( ) { if ( i ( ) && o . helpers . isMobile ( ) ) return ! 1 } ) , o . events . on ( "position.refresh" , function ( ) { if ( o . helpers . isIOS ( ) ) return ! i ( ) } ) , o . events . on ( "destroy" , function ( ) { i ( ) && l ( ) } , ! 0 ) } , toggle : f , refresh : a , isActive : i } } , c . FE . RegisterCommand ( "fullscreen" , { title : "Fullscreen" , undo : ! 1 , focus : ! 1 , accessibilityFocus : ! 0 , forcedRefresh : ! 0 , toggle : ! 0 , callback : function ( ) { this . fullscreen . toggle ( ) } , refresh : function ( e ) { this . fullscreen . refresh ( e ) } , plugin : "fullscreen" } ) , c . FE . DefineIcon ( "fullscreen" , { NAME : "expand" } ) , c . FE . DefineIcon ( "fullscreenCompress" , { NAME : "compress" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/help.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/help.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( l ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , l ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , l ( t ) } : l ( window . jQuery ) } ( function ( n ) { n . extend ( n . FE . DEFAULTS , { helpSets : [ { title : "Inline Editor" , commands : [ { val : "OSkeyE" , desc : "Show the editor" } ] } , { title : "Common actions" , commands : [ { val : "OSkeyC" , desc : "Copy" } , { val : "OSkeyX" , desc : "Cut" } , { val : "OSkeyV" , desc : "Paste" } , { val : "OSkeyZ" , desc : "Undo" } , { val : "OSkeyShift+Z" , desc : "Redo" } , { val : "OSkeyK" , desc : "Insert Link" } , { val : "OSkeyP" , desc : "Insert Image" } ] } , { title : "Basic Formatting" , commands : [ { val : "OSkeyA" , desc : "Select All" } , { val : "OSkeyB" , desc : "Bold" } , { val : "OSkeyI" , desc : "Italic" } , { val : "OSkeyU" , desc : "Underline" } , { val : "OSkeyS" , desc : "Strikethrough" } , { val : "OSkey]" , desc : "Increase Indent" } , { val : "OSkey[" , desc : "Decrease Indent" } ] } , { title : "Quote" , commands : [ { val : "OSkey'" , desc : "Increase quote level" } , { val : "OSkeyShift+'" , desc : "Decrease quote level" } ] } , { title : "Image / Video" , commands : [ { val : "OSkey+" , desc : "Resize larger" } , { val : "OSkey-" , desc : "Resize smaller" } ] } , { title : "Table" , commands : [ { val : "Alt+Space" , desc : "Select table cell" } , { val : "Shift+Left/Right arrow" , desc : "Extend selection one cell" } , { val : "Shift+Up/Down arrow" , desc : "Extend selection one row" } ] } , { title : "Navigation" , commands : [ { val : "OSkey/" , desc : "Shortcuts" } , { val : "Alt+F10" , desc : "Focus popup / toolbar" } , { val : "Esc" , desc : "Return focus to previous position" } ] } ] } ) , n . FE . PLUGINS . help = function ( s ) { var o , a = "help" ; return { _init : function ( ) { } , show : function ( ) { if ( ! o ) { var e = "<h4>" + s . language . translate ( "Shortcuts" ) + "</h4>" , t = function ( ) { for ( var e = '<div class="fr-help-modal">' , t = 0 ; t < s . opts . helpSets . length ; t ++ ) { var l = s . opts . helpSets [ t ] , o = "<table>" ; o += "<thead><tr><th>" + s . language . translate ( l . title ) + "</th></tr></thead>" , o += "<tbody>" ; for ( var a = 0 ; a < l . commands . length ; a ++ ) { var n = l . commands [ a ] ; o += "<tr>" , o += "<td>" + s . language . translate ( n . desc ) + "</td>" , o += "<td>" + n . val . replace ( "OSkey" , s . helpers . isMac ( ) ? "⌘" : "Ctrl+" ) + "</td>" , o += "</tr>" } e += o += "</tbody></table>" } return e += "</div>" } ( ) , l = s . modals . create ( a , e , t ) ; o = l . $modal , l . $head , l . $body , s . events . $on ( n ( s . o _win ) , "resize" , function ( ) { s . modals . resize ( a ) } ) } s . modals . show ( a ) , s . modals . resize ( a ) } , hide : function ( ) { s . modals . hide ( a ) } } } , n . FroalaEditor . DefineIcon ( "help" , { NAME : "question" } ) , n . FE . RegisterShortcut ( n . FE . KEYCODE . SLASH , "help" , null , "/" ) , n . FE . RegisterCommand ( "help" , { title : "Help" , icon : "help" , undo : ! 1 , focus : ! 1 , modal : ! 0 , callback : function ( ) { this . help . show ( ) } , plugin : "help" , showOnMobile : ! 1 } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/image.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/image.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , a ( t ) } : a ( window . jQuery ) } ( function ( ye ) { ye . extend ( ye . FE . POPUP _TEMPLATES , { "image.insert" : "[_BUTTONS_][_UPLOAD_LAYER_][_BY_URL_LAYER_][_PROGRESS_BAR_]" , "image.edit" : "[_BUTTONS_]" , "image.alt" : "[_BUTTONS_][_ALT_LAYER_]" , "image.size" : "[_BUTTONS_][_SIZE_LAYER_]" } ) , ye . extend ( ye . FE . DEFAULTS , { imageInsertButtons : [ "imageBack" , "|" , "imageUpload" , "imageByURL" ] , imageEditButtons : [ "imageReplace" , "imageAlign" , "imageCaption" , "imageRemove" , "|" , "imageLink" , "linkOpen" , "linkEdit" , "linkRemove" , "-" , "imageDisplay" , "imageStyle" , "imageAlt" , "imageSize" ] , imageAltButtons : [ "imageBack" , "|" ] , imageSizeButtons : [ "imageBack" , "|" ] , imageUpload : ! 0 , imageUploadURL : null , imageCORSProxy : "https://cors-anywhere.froala.com" , imageUploadRemoteUrls : ! 0 , imageUploadParam : "file" , imageUploadParams : { } , imageUploadToS3 : ! 1 , imageUploadMethod : "POST" , imageMaxSize : 10485760 , imageAllowedTypes : [ "jpeg" , "jpg" , "png" , "gif" , "webp" ] , imageResize : ! 0 , imageResizeWithPercent : ! 1 , imageRoundPercent : ! 1 , imageDefaultWidth : 300 , imageDefaultAlign : "center" , imageDefaultDisplay : "block" , imageSplitHTML : ! 1 , imageStyles : { "fr-rounded" : "Rounded" , "fr-bordered" : "Bordered" , "fr-shadow" : "Shadow" } , imageMove : ! 0 , imageMultipleStyles : ! 0 , imageTextNear : ! 0 , imagePaste : ! 0 , imagePasteProcess : ! 1 , imageMinWidth : 16 , imageOutputSize : ! 1 , imageDefaultMargin : 5 , imageAddNewLine : ! 1 } ) , ye . FE . PLUGINS . image = function ( g ) { var d , l , f , p , o , a , c = "https://i.froala.com/upload" , t = ! 1 , i = 1 , u = 2 , m = 3 , h = 4 , v = 5 , b = 6 , r = { } ; function y ( ) { var e = g . popups . get ( "image.insert" ) . find ( ".fr-image-by-url-layer input" ) ; e . val ( "" ) , d && e . val ( d . attr ( "src" ) ) , e . trigger ( "change" ) } function n ( ) { var e = g . popups . get ( "image.edit" ) ; if ( e || ( e = U ( ) ) , e ) { var t = ve ( ) ; be ( ) && ( t = t . find ( ".fr-img-wrap" ) ) , g . popups . setContainer ( "image.edit" , g . $sc ) , g . popups . refresh ( "image.edit" ) ; var a = t . offset ( ) . left + t . outerWidth ( ) / 2 , i = t . offset ( ) . top + t . outerHeight ( ) ; d . hasClass ( "fr-uploading" ) ? $ ( ) : g . popups . show ( "image.edit" , a , i , t . outerHeight ( ) ) } } function w ( ) { I ( ) } function e ( ) { for ( var e , t , a = "IMG" == g . el . tagName ? [ g . el ] : g . el . querySelectorAll ( "img" ) , i = 0 ; i < a . length ; i ++ ) { var r = ye ( a [ i ] ) ; ! g . opts . htmlUntouched && g . opts . useClasses ? ( ( g . opts . imageDefaultAlign || g . opts . imageDefaultDisplay ) && ( 0 < ( t = r ) . parents ( ".fr-img-caption" ) . length && ( t = t . parents ( ".fr-img-caption:first" ) ) , t . hasClass ( "fr-dii" ) || t . hasClass ( "fr-dib" ) || ( t . addClass ( "fr-fi" + de ( t ) [ 0 ] ) , t . addClass ( "fr-di" + ce ( t ) [ 0 ] ) , t . css ( "margin" , "" ) , t . css ( "float" , "" ) , t . css ( "display" , "" ) , t . css ( "z-index" , "" ) , t . css ( "position" , "" ) , t . css ( "overflow" , "" ) , t . css ( "vertical-align" , "" ) ) ) , g . opts . imageTextNear || ( 0 < r . parents ( ".fr-img-caption" ) . length ? r . parents ( ".fr-img-caption:first" ) . removeClass ( "fr-dii" ) . addClass ( "fr-dib" ) : r . removeClass ( "fr-dii" ) . addClass ( "fr-dib" ) ) ) : g . opts . htmlUntouched || g . opts . useClasses || ( g . opts . imageDefaultAlign || g . opts . imageDefaultDisplay ) && ( 0 < ( e = r ) . parents ( ".fr-img-caption" ) . length && ( e = e . parents ( ".fr-img-caption:first" ) ) , ge ( e , e . hasClass ( "fr-dib" ) ? "block" : e . hasClass ( "fr-dii" ) ? "inline" : null , e . hasClass ( "fr-fil" ) ? "left" : e . hasClass ( "fr-fir" ) ? "right" : de ( e ) ) , e . removeClass ( "fr-dib fr-dii fr-fir fr-fil" ) ) , g . opts . iframe && r . on ( "load" , g . size . syncIframe ) } } function E ( e ) { void 0 === e && ( e = ! 0 ) ; var t , a = Array . prototype . slice . call ( g . el . querySelectorAll ( "img" ) ) , i = [ ] ; for ( t = 0 ; t < a . length ; t ++ ) if ( i . push ( a [ t ] . getAttribute ( "src" ) ) , ye ( a [ t ] ) . toggleClass ( "fr-draggable" , g . opts . imageMove ) , "" === a [ t ] . getAttribute ( "class" ) && a [ t ] . removeAttribute ( "class" ) , "" === a [ t ] . getAttribute ( "style" ) && a [ t ] . removeAttribute ( "style" ) , a [ t ] . parentNode && a [ t ] . parentNode . parentNode && g . node . hasClass ( a [ t ] . parentNode . parentNode , "fr-img-caption" ) ) { var r = a [ t ] . parentNode . parentNode ; g . browser . mozilla || r . setAttribute ( "contenteditable" , ! 1 ) , r . setAttribute ( "draggable" , ! 1 ) , r . classList . add ( "fr-draggable" ) ; var n = a [ t ] . nextSibling ; n && ! g . browser . mozilla && n . setAttribute ( "contenteditable" , ! 0 ) } if ( o ) for ( t = 0 ; t < o . length ; t ++ ) i . indexOf ( o [ t ] . getAttribute ( "src" ) ) < 0 && g . events . trigger ( "image.removed" , [ ye ( o [ t ] ) ]
} ) ;
; /*!node_modules/froala-editor/js/plugins/image_manager.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/image_manager.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( e , a ) { return a === undefined && ( a = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , t ( a ) } : t ( window . jQuery ) } ( function ( O ) { if ( O . extend ( O . FE . DEFAULTS , { imageManagerLoadURL : "https://i.froala.com/load-files" , imageManagerLoadMethod : "get" , imageManagerLoadParams : { } , imageManagerPreloader : null , imageManagerDeleteURL : "" , imageManagerDeleteMethod : "post" , imageManagerDeleteParams : { } , imageManagerPageSize : 12 , imageManagerScrollOffset : 20 , imageManagerToggleTags : ! 0 } ) , O . FE . PLUGINS . imageManager = function ( o ) { var g , l , r , i , n , d , s , f , m , u , c , h = "image_manager" , e = 10 , p = 11 , v = 12 , M = 13 , w = 14 , b = 15 , C = 21 , L = 22 , t = { } ; function y ( ) { var e = O ( window ) . outerWidth ( ) ; return e < 768 ? 2 : e < 1200 ? 3 : 4 } function D ( ) { n . empty ( ) ; for ( var e = 0 ; e < c ; e ++ ) n . append ( '<div class="fr-list-column"></div>' ) } function I ( ) { if ( m < s . length && ( n . outerHeight ( ) <= r . outerHeight ( ) + o . opts . imageManagerScrollOffset || r . scrollTop ( ) + o . opts . imageManagerScrollOffset > n . outerHeight ( ) - r . outerHeight ( ) ) ) { f ++ ; for ( var e = o . opts . imageManagerPageSize * ( f - 1 ) ; e < Math . min ( s . length , o . opts . imageManagerPageSize * f ) ; e ++ ) a ( s [ e ] ) } } function a ( i ) { var n = new Image , s = O ( '<div class="fr-image-container fr-empty fr-image-' + u ++ + '" data-loading="' + o . language . translate ( "Loading" ) + '.." data-deleting="' + o . language . translate ( "Deleting" ) + '..">' ) ; T ( ! 1 ) , n . onload = function ( ) { s . height ( Math . floor ( s . width ( ) / n . width * n . height ) ) ; var t = O ( "<img/>" ) ; if ( i . thumb ) t . attr ( "src" , i . thumb ) ; else { if ( U ( w , i ) , ! i . url ) return U ( b , i ) , ! 1 ; t . attr ( "src" , i . url ) } if ( i . url && t . attr ( "data-url" , i . url ) , i . tag ) if ( l . find ( ".fr-modal-more.fr-not-available" ) . removeClass ( "fr-not-available" ) , l . find ( ".fr-modal-tags" ) . show ( ) , 0 <= i . tag . indexOf ( "," ) ) { for ( var e = i . tag . split ( "," ) , a = 0 ; a < e . length ; a ++ ) e [ a ] = e [ a ] . trim ( ) , 0 === d . find ( 'a[title="' + e [ a ] + '"]' ) . length && d . append ( '<a role="button" title="' + e [ a ] + '">' + e [ a ] + "</a>" ) ; t . attr ( "data-tag" , e . join ( ) ) } else 0 === d . find ( 'a[title="' + i . tag . trim ( ) + '"]' ) . length && d . append ( '<a role="button" title="' + i . tag . trim ( ) + '">' + i . tag . trim ( ) + "</a>" ) , t . attr ( "data-tag" , i . tag . trim ( ) ) ; for ( var r in i . name && t . attr ( "alt" , i . name ) , i ) i . hasOwnProperty ( r ) && "thumb" != r && "url" != r && "tag" != r && t . attr ( "data-" + r , i [ r ] ) ; s . append ( t ) . append ( O ( o . icon . create ( "imageManagerDelete" ) ) . addClass ( "fr-delete-img" ) . attr ( "title" , o . language . translate ( "Delete" ) ) ) . append ( O ( o . icon . create ( "imageManagerInsert" ) ) . addClass ( "fr-insert-img" ) . attr ( "title" , o . language . translate ( "Insert" ) ) ) , d . find ( ".fr-selected-tag" ) . each ( function ( e , a ) { k ( t , a . text ) || s . hide ( ) } ) , t . on ( "load" , function ( ) { s . removeClass ( "fr-empty" ) , s . height ( "auto" ) , m ++ , E ( x ( parseInt ( t . parent ( ) . attr ( "class" ) . match ( /fr-image-(\d+)/ ) [ 1 ] , 10 ) + 1 ) ) , T ( ! 1 ) , m % o . opts . imageManagerPageSize == 0 && I ( ) } ) , o . events . trigger ( "imageManager.imageLoaded" , [ t ] ) } , n . onerror = function ( ) { m ++ , s . remove ( ) , E ( x ( parseInt ( s . attr ( "class" ) . match ( /fr-image-(\d+)/ ) [ 1 ] , 10 ) + 1 ) ) , U ( e , i ) , m % o . opts . imageManagerPageSize == 0 && I ( ) } , n . src = i . thumb || i . url , P ( ) . append ( s ) } function P ( ) { var r , i ; return n . find ( ".fr-list-column" ) . each ( function ( e , a ) { var t = O ( a ) ; 0 === e ? ( i = t . outerHeight ( ) , r = t ) : t . outerHeight ( ) < i && ( i = t . outerHeight ( ) , r = t ) } ) , r } function x ( e ) { e === undefined && ( e = 0 ) ; for ( var a = [ ] , t = u - 1 ; e <= t ; t -- ) { var r = n . find ( ".fr-image-" + t ) ; r . length && ( a . push ( r ) , O ( '<div id="fr-image-hidden-container">' ) . append ( r ) , n . find ( ".fr-image-" + t ) . remove ( ) ) } return a } function E ( e ) { for ( var a = e . length - 1 ; 0 <= a ; a -- ) P ( ) . append ( e [ a ] ) } function T ( e ) { if ( e === undefined && ( e = ! 0 ) , ! g . is ( ":visible" ) ) return ! 0 ; var a = y ( ) ; if ( a != c ) { c = a ; var t = x ( ) ; D ( ) , E ( t ) } o . modals . resize ( h ) , e && I ( ) } function q ( e ) { var a = { } , t = e . data ( ) ; for ( var r in t ) t . hasOwnProperty ( r ) && "url" != r && "tag" != r && ( a [ r ] = t [ r ] ) ; return a } function S ( e ) { var a = O ( e . currentTarget ) . siblings ( "img" ) , t = g . data ( "instance" ) || o , r = g . data ( "current-image" ) ; if ( o . modals . hide ( h ) , t . image . showProgressBar ( ) , r ) r . data ( "fr-old-src" , r . attr ( "src" ) ) , r . trigger ( "click" ) ; else { t . events . focus ( ! 0 ) , t . selection . restore ( ) ; var i = t . position . getBoundingRect ( ) , n = i . left + i . width / 2 + O ( o . doc ) . scrollLeft ( ) , s = i . top + i . height + O ( o . doc ) . scrollTop ( ) ; t . popups . setContainer ( "image.insert" , o . $sc ) , t . popups . show (
} ) ;
; /*!node_modules/froala-editor/js/plugins/inline_class.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/inline_class.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( i ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , i ) : "object" == typeof module && module . exports ? module . exports = function ( n , e ) { return e === undefined && ( e = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( n ) ) , i ( e ) } : i ( window . jQuery ) } ( function ( s ) { s . extend ( s . FE . DEFAULTS , { inlineClasses : { "fr-class-code" : "Code" , "fr-class-highlighted" : "Highlighted" , "fr-class-transparency" : "Transparent" } } ) , s . FE . PLUGINS . inlineClass = function ( i ) { return { apply : function ( n ) { i . format . toggle ( "span" , { "class" : n } ) } , refreshOnShow : function ( n , e ) { e . find ( ".fr-command" ) . each ( function ( ) { var n = s ( this ) . data ( "param1" ) , e = i . format . is ( "span" , { "class" : n } ) ; s ( this ) . toggleClass ( "fr-active" , e ) . attr ( "aria-selected" , e ) } ) } } } , s . FE . RegisterCommand ( "inlineClass" , { type : "dropdown" , title : "Inline Class" , html : function ( ) { var n = '<ul class="fr-dropdown-list" role="presentation">' , e = this . opts . inlineClasses ; for ( var i in e ) e . hasOwnProperty ( i ) && ( n += '<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="inlineClass" data-param1="' + i + '" title="' + e [ i ] + '">' + e [ i ] + "</a></li>" ) ; return n += "</ul>" } , callback : function ( n , e ) { this . inlineClass . apply ( e ) } , refreshOnShow : function ( n , e ) { this . inlineClass . refreshOnShow ( n , e ) } , plugin : "inlineClass" } ) , s . FE . DefineIcon ( "inlineClass" , { NAME : "tag" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/inline_style.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/inline_style.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( e , n ) { return n === undefined && ( n = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , t ( n ) } : t ( window . jQuery ) } ( function ( o ) { o . extend ( o . FE . DEFAULTS , { inlineStyles : { "Big Red" : "font-size: 20px; color: red;" , "Small Blue" : "font-size: 14px; color: blue;" } } ) , o . FE . PLUGINS . inlineStyle = function ( l ) { return { apply : function ( e ) { if ( "" !== l . selection . text ( ) ) for ( var n = e . split ( ";" ) , t = 0 ; t < n . length ; t ++ ) { var i = n [ t ] . split ( ":" ) ; n [ t ] . length && 2 == i . length && l . format . applyStyle ( i [ 0 ] . trim ( ) , i [ 1 ] . trim ( ) ) } else l . html . insert ( '<span style="' + e + '">' + o . FE . INVISIBLE _SPACE + o . FE . MARKERS + "</span>" ) } } } , o . FE . RegisterCommand ( "inlineStyle" , { type : "dropdown" , html : function ( ) { var e = '<ul class="fr-dropdown-list" role="presentation">' , n = this . opts . inlineStyles ; for ( var t in n ) { if ( n . hasOwnProperty ( t ) ) e += '<li role="presentation"><span style="' + ( n [ t ] + ( - 1 === n [ t ] . indexOf ( "display:block;" ) ? " display:block;" : "" ) ) + '" role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="inlineStyle" data-param1="' + n [ t ] + '" title="' + this . language . translate ( t ) + '">' + this . language . translate ( t ) + "</a></span></li>" } return e += "</ul>" } , title : "Inline Style" , callback : function ( e , n ) { this . inlineStyle . apply ( n ) } , plugin : "inlineStyle" } ) , o . FE . DefineIcon ( "inlineStyle" , { NAME : "paint-brush" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/line_breaker.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/line_breaker.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( v ) { v . extend ( v . FE . DEFAULTS , { lineBreakerTags : [ "table" , "hr" , "form" , "dl" , "span.fr-video" , ".fr-embedly" , "img" ] , lineBreakerOffset : 15 , lineBreakerHorizontalOffset : 10 } ) , v . FE . PLUGINS . lineBreaker = function ( d ) { var g , t , a ; function s ( e , t ) { var n , r , a , o , i , s , f , l ; if ( null == e ) i = ( o = t . parent ( ) ) . offset ( ) . top , n = ( f = t . offset ( ) . top ) - Math . min ( ( f - i ) / 2 , d . opts . lineBreakerOffset ) , a = o . outerWidth ( ) , r = o . offset ( ) . left ; else if ( null == t ) ( s = ( o = e . parent ( ) ) . offset ( ) . top + o . outerHeight ( ) ) < ( l = e . offset ( ) . top + e . outerHeight ( ) ) && ( s = ( o = v ( o ) . parent ( ) ) . offset ( ) . top + o . outerHeight ( ) ) , n = l + Math . min ( Math . abs ( s - l ) / 2 , d . opts . lineBreakerOffset ) , a = o . outerWidth ( ) , r = o . offset ( ) . left ; else { o = e . parent ( ) ; var p = e . offset ( ) . top + e . height ( ) , u = t . offset ( ) . top ; if ( u < p ) return ! 1 ; n = ( p + u ) / 2 , a = o . outerWidth ( ) , r = o . offset ( ) . left } d . opts . iframe && ( r += d . $iframe . offset ( ) . left - d . helpers . scrollLeft ( ) , n += d . $iframe . offset ( ) . top - d . helpers . scrollTop ( ) ) , d . $box . append ( g ) , g . css ( "top" , n - d . win . pageYOffset ) , g . css ( "left" , r - d . win . pageXOffset ) , g . css ( "width" , a ) , g . data ( "tag1" , e ) , g . data ( "tag2" , t ) , g . addClass ( "fr-visible" ) . data ( "instance" , d ) } function f ( e ) { if ( e ) { var t = v ( e ) ; if ( 0 === d . $el . find ( t ) . length ) return null ; if ( e . nodeType != Node . TEXT _NODE && t . is ( d . opts . lineBreakerTags . join ( "," ) ) ) return t ; if ( 0 < t . parents ( d . opts . lineBreakerTags . join ( "," ) ) . length ) return e = t . parents ( d . opts . lineBreakerTags . join ( "," ) ) . get ( 0 ) , 0 !== d . $el . find ( e ) . length && v ( e ) . is ( d . opts . lineBreakerTags . join ( "," ) ) ? v ( e ) : null } return null } function o ( e , t ) { var n = d . doc . elementFromPoint ( e , t ) ; return n && ! v ( n ) . closest ( ".fr-line-breaker" ) . length && ! d . node . isElement ( n ) && n != d . $wp . get ( 0 ) && function ( e ) { if ( "undefined" != typeof e . inFroalaWrapper ) return e . inFroalaWrapper ; for ( var t = e ; e . parentNode && e . parentNode !== d . $wp . get ( 0 ) ; ) e = e . parentNode ; return t . inFroalaWrapper = e . parentNode == d . $wp . get ( 0 ) , t . inFroalaWrapper } ( n ) ? n : null } function i ( e , t , n ) { for ( var r = n , a = null ; r <= d . opts . lineBreakerOffset && ! a ; ) ( a = o ( e , t - r ) ) || ( a = o ( e , t + r ) ) , r += n ; return a } function l ( e , t , n ) { for ( var r = null , a = 100 ; ! r && e > d . $box . offset ( ) . left && e < d . $box . offset ( ) . left + d . $box . outerWidth ( ) && 0 < a ; ) ( r = o ( e , t ) ) || ( r = i ( e , t , 5 ) ) , "left" == n ? e -= d . opts . lineBreakerHorizontalOffset : e += d . opts . lineBreakerHorizontalOffset , a -= d . opts . lineBreakerHorizontalOffset ; return r } function n ( e ) { var t = a = null , n = null , r = d . doc . elementFromPoint ( e . pageX - d . win . pageXOffset , e . pageY - d . win . pageYOffset ) ; r && ( "HTML" == r . tagName || "BODY" == r . tagName || d . node . isElement ( r ) || 0 <= ( r . getAttribute ( "class" ) || "" ) . indexOf ( "fr-line-breaker" ) ) ? ( ( n = i ( e . pageX - d . win . pageXOffset , e . pageY - d . win . pageYOffset , 1 ) ) || ( n = l ( e . pageX - d . win . pageXOffset - d . opts . lineBreakerHorizontalOffset , e . pageY - d . win . pageYOffset , "left" ) ) , n || ( n = l ( e . pageX - d . win . pageXOffset + d . opts . lineBreakerHorizontalOffset , e . pageY - d . win . pageYOffset , "right" ) ) , t = f ( n ) ) : t = f ( r ) , t ? function ( e , t ) { var n , r , a = e . offset ( ) . top , o = e . offset ( ) . top + e . outerHeight ( ) ; if ( Math . abs ( o - t ) <= d . opts . lineBreakerOffset || Math . abs ( t - a ) <= d . opts . lineBreakerOffset ) if ( Math . abs ( o - t ) < Math . abs ( t - a ) ) { for ( var i = ( r = e . get ( 0 ) ) . nextSibling ; i && i . nodeType == Node . TEXT _NODE && 0 === i . textContent . length ; ) i = i . nextSibling ; if ( ! i ) return s ( e , null ) ; if ( n = f ( i ) ) return s ( e , n ) } else { if ( ! ( r = e . get ( 0 ) ) . previousSibling ) return s ( null , e ) ; if ( n = f ( r . previousSibling ) ) return s ( n , e ) } g . removeClass ( "fr-visible" ) . removeData ( "instance" ) } ( t , e . pageY ) : d . core . sameInstance ( g ) && g . removeClass ( "fr-visible" ) . removeData ( "instance" ) } function e ( e ) { return ! ( g . hasClass ( "fr-visible" ) && ! d . core . sameInstance ( g ) ) && ( d . popups . areVisible ( ) || d . el . querySelector ( ".fr-selected-cell" ) ? ( g . removeClass ( "fr-visible" ) , ! 0 ) : void ( ! 1 !== t || d . edit . isDisabled ( ) || ( a && clearTimeout ( a ) , a = setTimeout ( n , 30 , e ) ) ) ) } function r ( ) { a && clearTimeout ( a ) , g && g . hasClass ( "fr-visible" ) && g . removeClass ( "fr-visible" ) . removeData ( "instance" ) } function p ( ) { t = ! 0 , r ( ) } function u ( ) { t = ! 1 } function c ( e ) { e . preventDefault ( ) ; var t = g . data ( "instance" ) || d ; g . removeClass ( "fr-visible" ) . removeData ( "instance" ) ; var n = g . d
} ) ;
; /*!node_modules/froala-editor/js/plugins/line_height.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/line_height.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( l ) { l . extend ( l . FE . DEFAULTS , { lineHeights : { Default : "" , Single : "1" , 1.15 : "1.15" , 1.5 : "1.5" , Double : "2" } } ) , l . FE . PLUGINS . lineHeight = function ( r ) { return { _init : function ( ) { } , apply : function ( e ) { r . selection . save ( ) , r . html . wrap ( ! 0 , ! 0 , ! 0 , ! 0 ) , r . selection . restore ( ) ; var t = r . selection . blocks ( ) ; t . length && l ( t [ 0 ] ) . parent ( ) . is ( "td" ) && r . format . applyStyle ( "line-height" , e . toString ( ) ) , r . selection . save ( ) ; for ( var n = 0 ; n < t . length ; n ++ ) l ( t [ n ] ) . css ( "line-height" , e ) , "" === l ( t [ n ] ) . attr ( "style" ) && l ( t [ n ] ) . removeAttr ( "style" ) ; r . html . unwrap ( ) , r . selection . restore ( ) } , refreshOnShow : function ( e , t ) { var n = r . selection . blocks ( ) ; if ( n . length ) { var i = l ( n [ 0 ] ) ; t . find ( ".fr-command" ) . each ( function ( ) { var e = l ( this ) . data ( "param1" ) , t = 0 <= ( i . attr ( "style" ) || "" ) . indexOf ( "line-height: " + e + ";" ) ; l ( this ) . toggleClass ( "fr-active" , t ) . attr ( "aria-selected" , t ) } ) } } } } , l . FE . RegisterCommand ( "lineHeight" , { type : "dropdown" , html : function ( ) { var e = '<ul class="fr-dropdown-list" role="presentation">' , t = this . opts . lineHeights ; for ( var n in t ) t . hasOwnProperty ( n ) && ( e += '<li role="presentation"><a class="fr-command ' + n + '" tabIndex="-1" role="option" data-cmd="lineHeight" data-param1="' + t [ n ] + '" title="' + this . language . translate ( n ) + '">' + this . language . translate ( n ) + "</a></li>" ) ; return e += "</ul>" } , title : "Line Height" , callback : function ( e , t ) { this . lineHeight . apply ( t ) } , refreshOnShow : function ( e , t ) { this . lineHeight . refreshOnShow ( e , t ) } , plugin : "lineHeight" } ) , l . FE . DefineIcon ( "lineHeight" , { NAME : "arrows-v" , FA5NAME : "arrows-alt-v" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/link.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/link.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( m ) { m . extend ( m . FE . POPUP _TEMPLATES , { "link.edit" : "[_BUTTONS_]" , "link.insert" : "[_BUTTONS_][_INPUT_LAYER_]" } ) , m . extend ( m . FE . DEFAULTS , { linkEditButtons : [ "linkOpen" , "linkStyle" , "linkEdit" , "linkRemove" ] , linkInsertButtons : [ "linkBack" , "|" , "linkList" ] , linkAttributes : { } , linkAutoPrefix : "http://" , linkStyles : { "fr-green" : "Green" , "fr-strong" : "Thick" } , linkMultipleStyles : ! 0 , linkConvertEmailAddress : ! 0 , linkAlwaysBlank : ! 1 , linkAlwaysNoFollow : ! 1 , linkNoOpener : ! 0 , linkNoReferrer : ! 0 , linkList : [ { text : "Froala" , href : "https://froala.com" , target : "_blank" } , { text : "Google" , href : "https://google.com" , target : "_blank" } , { displayText : "Facebook" , href : "https://facebook.com" } ] , linkText : ! 0 } ) , m . FE . PLUGINS . link = function ( d ) { function c ( ) { var e = d . image ? d . image . get ( ) : null ; if ( ! e && d . $wp ) { var t = d . selection . ranges ( 0 ) . commonAncestorContainer ; try { t && ( t . contains && t . contains ( d . el ) || ! d . el . contains ( t ) || d . el == t ) && ( t = null ) } catch ( r ) { t = null } if ( t && "A" === t . tagName ) return t ; var n = d . selection . element ( ) , i = d . selection . endElement ( ) ; "A" == n . tagName || d . node . isElement ( n ) || ( n = m ( n ) . parentsUntil ( d . $el , "a:first" ) . get ( 0 ) ) , "A" == i . tagName || d . node . isElement ( i ) || ( i = m ( i ) . parentsUntil ( d . $el , "a:first" ) . get ( 0 ) ) ; try { i && ( i . contains && i . contains ( d . el ) || ! d . el . contains ( i ) || d . el == i ) && ( i = null ) } catch ( r ) { i = null } try { n && ( n . contains && n . contains ( d . el ) || ! d . el . contains ( n ) || d . el == n ) && ( n = null ) } catch ( r ) { n = null } return i && i == n && "A" == i . tagName ? ( d . browser . msie || d . helpers . isMobile ( ) ) && ( d . selection . info ( n ) . atEnd || d . selection . info ( n ) . atStart ) ? null : n : null } return "A" == d . el . tagName ? d . el : e && e . get ( 0 ) . parentNode && "A" == e . get ( 0 ) . parentNode . tagName ? e . get ( 0 ) . parentNode : void 0 } function u ( ) { var e , t , n , i , r = d . image ? d . image . get ( ) : null , l = [ ] ; if ( r ) "A" == r . get ( 0 ) . parentNode . tagName && l . push ( r . get ( 0 ) . parentNode ) ; else if ( d . win . getSelection ) { var a = d . win . getSelection ( ) ; if ( a . getRangeAt && a . rangeCount ) { i = d . doc . createRange ( ) ; for ( var s = 0 ; s < a . rangeCount ; ++ s ) if ( ( t = ( e = a . getRangeAt ( s ) ) . commonAncestorContainer ) && 1 != t . nodeType && ( t = t . parentNode ) , t && "a" == t . nodeName . toLowerCase ( ) ) l . push ( t ) ; else { n = t . getElementsByTagName ( "a" ) ; for ( var o = 0 ; o < n . length ; ++ o ) i . selectNodeContents ( n [ o ] ) , i . compareBoundaryPoints ( e . END _TO _START , e ) < 1 && - 1 < i . compareBoundaryPoints ( e . START _TO _END , e ) && l . push ( n [ o ] ) } } } else if ( d . doc . selection && "Control" != d . doc . selection . type ) if ( "a" == ( t = ( e = d . doc . selection . createRange ( ) ) . parentElement ( ) ) . nodeName . toLowerCase ( ) ) l . push ( t ) ; else { n = t . getElementsByTagName ( "a" ) , i = d . doc . body . createTextRange ( ) ; for ( var p = 0 ; p < n . length ; ++ p ) i . moveToElementText ( n [ p ] ) , - 1 < i . compareEndPoints ( "StartToEnd" , e ) && i . compareEndPoints ( "EndToStart" , e ) < 1 && l . push ( n [ p ] ) } return l } function k ( r ) { if ( d . core . hasFocus ( ) ) { if ( a ( ) , r && "keyup" === r . type && ( r . altKey || r . which == m . FE . KEYCODE . ALT ) ) return ! 0 ; setTimeout ( function ( ) { if ( ! r || r && ( 1 == r . which || "mouseup" != r . type ) ) { var e = c ( ) , t = d . image ? d . image . get ( ) : null ; if ( e && ! t ) { if ( d . image ) { var n = d . node . contents ( e ) ; if ( 1 == n . length && "IMG" == n [ 0 ] . tagName ) { var i = d . selection . ranges ( 0 ) ; return 0 === i . startOffset && 0 === i . endOffset ? m ( e ) . before ( m . FE . MARKERS ) : m ( e ) . after ( m . FE . MARKERS ) , d . selection . restore ( ) , ! 1 } } r && r . stopPropagation ( ) , l ( e ) } } } , d . helpers . isIOS ( ) ? 100 : 0 ) } } function l ( e ) { var t = d . popups . get ( "link.edit" ) ; t || ( t = function ( ) { var e = "" ; 1 <= d . opts . linkEditButtons . length && ( "A" == d . el . tagName && 0 <= d . opts . linkEditButtons . indexOf ( "linkRemove" ) && d . opts . linkEditButtons . splice ( d . opts . linkEditButtons . indexOf ( "linkRemove" ) , 1 ) , e = '<div class="fr-buttons">' + d . button . buildList ( d . opts . linkEditButtons ) + "</div>" ) ; var t = { buttons : e } , n = d . popups . create ( "link.edit" , t ) ; d . $wp && d . events . $on ( d . $wp , "scroll.link-edit" , function ( ) { c ( ) && d . popups . isVisible ( "link.edit" ) && l ( c ( ) ) } ) ; return n } ( ) ) ; var n = m ( e ) ; d . popups . isVisible ( "link.edit" ) || d . popups . refresh ( "link.edit" ) , d . popups . setContainer ( "link.edit" , d . $sc ) ; var i = n . offset ( ) . left + m ( e ) . outerWidth ( ) / 2 , r = n . offset ( ) . top + n . outerHeight ( ) ; d . popups . show ( "link.edit" , i , r , n . outerHeight ( ) ) } fu
} ) ;
; /*!node_modules/froala-editor/js/plugins/lists.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/lists.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( u ) { u . extend ( u . FE . DEFAULTS , { listAdvancedTypes : ! 0 } ) , u . FE . PLUGINS . lists = function ( d ) { function g ( e ) { return '<span class="fr-open-' + e . toLowerCase ( ) + '"></span>' } function c ( e ) { return '<span class="fr-close-' + e . toLowerCase ( ) + '"></span>' } function r ( e , t ) { ! function ( e , t ) { for ( var n = [ ] , a = 0 ; a < e . length ; a ++ ) { var r = e [ a ] . parentNode ; "LI" == e [ a ] . tagName && r . tagName != t && n . indexOf ( r ) < 0 && n . push ( r ) } for ( a = n . length - 1 ; 0 <= a ; a -- ) { var i = u ( n [ a ] ) ; i . replaceWith ( "<" + t . toLowerCase ( ) + " " + d . node . attributes ( i . get ( 0 ) ) + ">" + i . html ( ) + "</" + t . toLowerCase ( ) + ">" ) } } ( e , t ) ; var n , a = d . html . defaultTag ( ) , r = null ; e . length && ( n = "rtl" == d . opts . direction || "rtl" == u ( e [ 0 ] ) . css ( "direction" ) ? "margin-right" : "margin-left" ) ; for ( var i = 0 ; i < e . length ; i ++ ) if ( "TD" != e [ i ] . tagName && "TH" != e [ i ] . tagName && "LI" != e [ i ] . tagName ) { var o = d . helpers . getPX ( u ( e [ i ] ) . css ( n ) ) || 0 ; ( e [ i ] . style . marginLeft = null ) === r && ( r = o ) ; var l = 0 < r ? "<" + t + ' style="' + n + ": " + r + 'px;">' : "<" + t + ">" , s = "</" + t + ">" ; for ( o -= r ; 0 < o / d . opts . indentMargin ; ) l += "<" + t + ">" , s += s , o -= d . opts . indentMargin ; a && e [ i ] . tagName . toLowerCase ( ) == a ? u ( e [ i ] ) . replaceWith ( l + "<li" + d . node . attributes ( e [ i ] ) + ">" + u ( e [ i ] ) . html ( ) + "</li>" + s ) : u ( e [ i ] ) . wrap ( l + "<li></li>" + s ) } d . clean . lists ( ) } function i ( e ) { var t , n ; for ( t = e . length - 1 ; 0 <= t ; t -- ) for ( n = t - 1 ; 0 <= n ; n -- ) if ( u ( e [ n ] ) . find ( e [ t ] ) . length || e [ n ] == e [ t ] ) { e . splice ( t , 1 ) ; break } var a = [ ] ; for ( t = 0 ; t < e . length ; t ++ ) { var r = u ( e [ t ] ) , i = e [ t ] . parentNode , o = r . attr ( "class" ) ; if ( r . before ( c ( i . tagName ) ) , "LI" == i . parentNode . tagName ) r . before ( c ( "LI" ) ) , r . after ( g ( "LI" ) ) ; else { var l = "" ; o && ( l += ' class="' + o + '"' ) ; var s = "rtl" == d . opts . direction || "rtl" == r . css ( "direction" ) ? "margin-right" : "margin-left" ; d . helpers . getPX ( u ( i ) . css ( s ) ) && 0 <= ( u ( i ) . attr ( "style" ) || "" ) . indexOf ( s + ":" ) && ( l += ' style="' + s + ":" + d . helpers . getPX ( u ( i ) . css ( s ) ) + 'px;"' ) , d . html . defaultTag ( ) && 0 === r . find ( d . html . blockTagsQuery ( ) ) . length && r . wrapInner ( "<" + d . html . defaultTag ( ) + l + "></" + d . html . defaultTag ( ) + ">" ) , d . node . isEmpty ( r . get ( 0 ) , ! 0 ) || 0 !== r . find ( d . html . blockTagsQuery ( ) ) . length || r . append ( "<br>" ) , r . append ( g ( "LI" ) ) , r . prepend ( c ( "LI" ) ) } r . after ( g ( i . tagName ) ) , "LI" == i . parentNode . tagName && ( i = i . parentNode . parentNode ) , a . indexOf ( i ) < 0 && a . push ( i ) } for ( t = 0 ; t < a . length ; t ++ ) { var p = u ( a [ t ] ) , f = p . html ( ) ; f = ( f = f . replace ( /<span class="fr-close-([a-z]*)"><\/span>/g , "</$1>" ) ) . replace ( /<span class="fr-open-([a-z]*)"><\/span>/g , "<$1>" ) , p . replaceWith ( d . node . openTagString ( p . get ( 0 ) ) + f + d . node . closeTagString ( p . get ( 0 ) ) ) } d . $el . find ( "li:empty" ) . remove ( ) , d . $el . find ( "ul:empty, ol:empty" ) . remove ( ) , d . clean . lists ( ) , d . html . wrap ( ) } function o ( e ) { d . selection . save ( ) ; for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] . previousSibling ; if ( n ) { var a = u ( e [ t ] ) . find ( "> ul, > ol" ) . last ( ) . get ( 0 ) ; if ( a ) { for ( var r = u ( "<li>" ) . prependTo ( u ( a ) ) , i = d . node . contents ( e [ t ] ) [ 0 ] ; i && ! d . node . isList ( i ) ; ) { var o = i . nextSibling ; r . append ( i ) , i = o } u ( n ) . append ( u ( a ) ) , u ( e [ t ] ) . remove ( ) } else { var l = u ( n ) . find ( "> ul, > ol" ) . last ( ) . get ( 0 ) ; if ( l ) u ( l ) . append ( u ( e [ t ] ) ) ; else { var s = u ( "<" + e [ t ] . parentNode . tagName + ">" ) ; u ( n ) . append ( s ) , s . append ( u ( e [ t ] ) ) } } } } d . clean . lists ( ) , d . selection . restore ( ) } function l ( e ) { d . selection . save ( ) , i ( e ) , d . selection . restore ( ) } function e ( e ) { if ( "indent" == e || "outdent" == e ) { var t = ! 1 , n = d . selection . blocks ( ) , a = [ ] ; if ( "outdent" == e ) { if ( n [ 0 ] . previousSibling && "LI" == n [ 0 ] . previousSibling . tagName ) return ; if ( "LI" == n [ 0 ] . parentElement . tagName ) return } else if ( "indent" == e && ( ! n [ 0 ] . previousSibling || "LI" != n [ 0 ] . previousSibling . tagName ) ) return ; for ( var r = 0 ; r < n . length ; r ++ ) "LI" == n [ r ] . tagName ? ( t = ! 0 , a . push ( n [ r ] ) ) : "LI" == n [ r ] . parentNode . tagName && ( t = ! 0 , a . push ( n [ r ] . parentNode ) ) ; t && ( "indent" == e ? o ( a ) : l ( a ) ) } } return { _init : function ( ) { d . events . on ( "commands.after" , e ) , d . events . on ( "keydown" , function ( e ) { if ( e . which == u . FE . KEYCODE . TAB ) { for ( var t = d . selection . blocks ( ) , n = [ ] , a = 0 ; a < t . length ; a ++ ) "LI" == t [ a ] . tagName ? n . push ( t [ a ] ) : "LI" == t [ a ] . parentNode . tagName && n . push ( t [ a ] . parentNode ) ; if ( 1 < n . length || n . length && ( d . selection . info ( n [ 0 ] ) . atStart || d . node . isEmpty ( n [ 0 ] ) ) ) return
} ) ;
; /*!node_modules/froala-editor/js/plugins/paragraph_format.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/paragraph_format.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( a , e ) { return e === undefined && ( e = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( a ) ) , t ( e ) } : t ( window . jQuery ) } ( function ( g ) { g . extend ( g . FE . DEFAULTS , { paragraphFormat : { N : "Normal" , H1 : "Heading 1" , H2 : "Heading 2" , H3 : "Heading 3" , H4 : "Heading 4" , PRE : "Code" } , paragraphFormatSelection : ! 1 , paragraphDefaultSelection : "Paragraph Format" } ) , g . FE . PLUGINS . paragraphFormat = function ( h ) { function f ( a , e ) { var t = h . html . defaultTag ( ) ; if ( e && e . toLowerCase ( ) != t ) if ( 0 < a . find ( "ul, ol" ) . length ) { var r = g ( "<" + e + ">" ) ; a . prepend ( r ) ; for ( var n = h . node . contents ( a . get ( 0 ) ) [ 0 ] ; n && [ "UL" , "OL" ] . indexOf ( n . tagName ) < 0 ; ) { var o = n . nextSibling ; r . append ( n ) , n = o } } else a . html ( "<" + e + ">" + a . html ( ) + "</" + e + ">" ) } return { apply : function ( a ) { "N" == a && ( a = h . html . defaultTag ( ) ) , h . selection . save ( ) , h . html . wrap ( ! 0 , ! 0 , ! h . opts . paragraphFormat . BLOCKQUOTE , ! 0 , ! 0 ) , h . selection . restore ( ) ; var e , t , r , n , o , i , p , l , s = h . selection . blocks ( ) ; h . selection . save ( ) , h . $el . find ( "pre" ) . attr ( "skip" , ! 0 ) ; for ( var d = 0 ; d < s . length ; d ++ ) if ( s [ d ] . tagName != a && ! h . node . isList ( s [ d ] ) ) { var m = g ( s [ d ] ) ; "LI" == s [ d ] . tagName ? f ( m , a ) : "LI" == s [ d ] . parentNode . tagName && s [ d ] ? ( i = m , p = a , l = h . html . defaultTag ( ) , p && p . toLowerCase ( ) != l || ( p = 'div class="fr-temp-div"' ) , i . replaceWith ( g ( "<" + p + ">" ) . html ( i . html ( ) ) ) ) : 0 <= [ "TD" , "TH" ] . indexOf ( s [ d ] . parentNode . tagName ) ? ( r = m , n = a , o = h . html . defaultTag ( ) , n || ( n = 'div class="fr-temp-div"' + ( h . node . isEmpty ( r . get ( 0 ) , ! 0 ) ? ' data-empty="true"' : "" ) ) , n . toLowerCase ( ) == o ? ( h . node . isEmpty ( r . get ( 0 ) , ! 0 ) || r . append ( "<br/>" ) , r . replaceWith ( r . html ( ) ) ) : r . replaceWith ( g ( "<" + n + ">" ) . html ( r . html ( ) ) ) ) : ( e = m , ( t = a ) || ( t = 'div class="fr-temp-div"' + ( h . node . isEmpty ( e . get ( 0 ) , ! 0 ) ? ' data-empty="true"' : "" ) ) , e . replaceWith ( g ( "<" + t + " " + h . node . attributes ( e . get ( 0 ) ) + ">" ) . html ( e . html ( ) ) . removeAttr ( "data-empty" ) ) ) } h . $el . find ( 'pre:not([skip="true"]) + pre:not([skip="true"])' ) . each ( function ( ) { g ( this ) . prev ( ) . append ( "<br>" + g ( this ) . html ( ) ) , g ( this ) . remove ( ) } ) , h . $el . find ( "pre" ) . removeAttr ( "skip" ) , h . html . unwrap ( ) , h . selection . restore ( ) } , refreshOnShow : function ( a , e ) { var t = h . selection . blocks ( ) ; if ( t . length ) { var r = t [ 0 ] , n = "N" , o = h . html . defaultTag ( ) ; r . tagName . toLowerCase ( ) != o && r != h . el && ( n = r . tagName ) , e . find ( '.fr-command[data-param1="' + n + '"]' ) . addClass ( "fr-active" ) . attr ( "aria-selected" , ! 0 ) } else e . find ( '.fr-command[data-param1="N"]' ) . addClass ( "fr-active" ) . attr ( "aria-selected" , ! 0 ) } , refresh : function ( a ) { if ( h . opts . paragraphFormatSelection ) { var e = h . selection . blocks ( ) ; if ( e . length ) { var t = e [ 0 ] , r = "N" , n = h . html . defaultTag ( ) ; t . tagName . toLowerCase ( ) != n && t != h . el && ( r = t . tagName ) , 0 <= [ "LI" , "TD" , "TH" ] . indexOf ( r ) && ( r = "N" ) , a . find ( "> span" ) . text ( h . language . translate ( h . opts . paragraphFormat [ r ] ) ) } else a . find ( "> span" ) . text ( h . language . translate ( h . opts . paragraphFormat . N ) ) } } } } , g . FE . RegisterCommand ( "paragraphFormat" , { type : "dropdown" , displaySelection : function ( a ) { return a . opts . paragraphFormatSelection } , defaultSelection : function ( a ) { return a . language . translate ( a . opts . paragraphDefaultSelection ) } , displaySelectionWidth : 125 , html : function ( ) { var a = '<ul class="fr-dropdown-list" role="presentation">' , e = this . opts . paragraphFormat ; for ( var t in e ) if ( e . hasOwnProperty ( t ) ) { var r = this . shortcuts . get ( "paragraphFormat." + t ) ; r = r ? '<span class="fr-shortcut">' + r + "</span>" : "" , a += '<li role="presentation"><' + ( "N" == t ? this . html . defaultTag ( ) || "DIV" : t ) + ' style="padding: 0 !important; margin: 0 !important;" role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="paragraphFormat" data-param1="' + t + '" title="' + this . language . translate ( e [ t ] ) + '">' + this . language . translate ( e [ t ] ) + "</a></" + ( "N" == t ? this . html . defaultTag ( ) || "DIV" : t ) + "></li>" } return a += "</ul>" } , title : "Paragraph Format" , callback : function ( a , e ) { this . paragraphFormat . apply ( e ) } , refresh : function ( a ) { this . paragraphFormat . refresh ( a ) } , refreshOnShow : function ( a , e ) { this . paragraphFormat . refreshOnShow ( a , e ) } , plugin : "paragraphFormat" } ) , g . FE . DefineIcon ( "paragraphFormat" , { NAME : "paragraph" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/paragraph_style.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/paragraph_style.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( e , a ) { return a === undefined && ( a = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , t ( a ) } : t ( window . jQuery ) } ( function ( i ) { i . extend ( i . FE . DEFAULTS , { paragraphStyles : { "fr-text-gray" : "Gray" , "fr-text-bordered" : "Bordered" , "fr-text-spaced" : "Spaced" , "fr-text-uppercase" : "Uppercase" } , paragraphMultipleStyles : ! 0 } ) , i . FE . PLUGINS . paragraphStyle = function ( o ) { return { _init : function ( ) { } , apply : function ( e , a , t ) { void 0 === a && ( a = o . opts . paragraphStyles ) , void 0 === t && ( t = o . opts . paragraphMultipleStyles ) ; var r = "" ; t || ( ( r = Object . keys ( a ) ) . splice ( r . indexOf ( e ) , 1 ) , r = r . join ( " " ) ) , o . selection . save ( ) , o . html . wrap ( ! 0 , ! 0 , ! 0 , ! 0 ) , o . selection . restore ( ) ; var n = o . selection . blocks ( ) ; o . selection . save ( ) ; for ( var s = i ( n [ 0 ] ) . hasClass ( e ) , l = 0 ; l < n . length ; l ++ ) i ( n [ l ] ) . removeClass ( r ) . toggleClass ( e , ! s ) , i ( n [ l ] ) . hasClass ( "fr-temp-div" ) && i ( n [ l ] ) . removeClass ( "fr-temp-div" ) , "" === i ( n [ l ] ) . attr ( "class" ) && i ( n [ l ] ) . removeAttr ( "class" ) ; o . html . unwrap ( ) , o . selection . restore ( ) } , refreshOnShow : function ( e , a ) { var t = o . selection . blocks ( ) ; if ( t . length ) { var r = i ( t [ 0 ] ) ; a . find ( ".fr-command" ) . each ( function ( ) { var e = i ( this ) . data ( "param1" ) , a = r . hasClass ( e ) ; i ( this ) . toggleClass ( "fr-active" , a ) . attr ( "aria-selected" , a ) } ) } } } } , i . FE . RegisterCommand ( "paragraphStyle" , { type : "dropdown" , html : function ( ) { var e = '<ul class="fr-dropdown-list" role="presentation">' , a = this . opts . paragraphStyles ; for ( var t in a ) a . hasOwnProperty ( t ) && ( e += '<li role="presentation"><a class="fr-command ' + t + '" tabIndex="-1" role="option" data-cmd="paragraphStyle" data-param1="' + t + '" title="' + this . language . translate ( a [ t ] ) + '">' + this . language . translate ( a [ t ] ) + "</a></li>" ) ; return e += "</ul>" } , title : "Paragraph Style" , callback : function ( e , a ) { this . paragraphStyle . apply ( a ) } , refreshOnShow : function ( e , a ) { this . paragraphStyle . refreshOnShow ( e , a ) } , plugin : "paragraphStyle" } ) , i . FE . DefineIcon ( "paragraphStyle" , { NAME : "magic" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/print.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/print.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( e ) { e . extend ( e . FE . DEFAULTS , { html2pdf : window . html2pdf } ) , e . FE . PLUGINS . print = function ( l ) { return { run : function ( ) { ! function ( e ) { var t = l . $el . html ( ) , n = null ; l . shared . print _iframe ? n = l . shared . print _iframe : ( ( n = document . createElement ( "iframe" ) ) . name = "fr-print" , n . style . position = "fixed" , n . style . top = "0" , n . style . left = "-9999px" , n . style . height = "100%" , n . style . width = "0" , n . style . overflow = "hidden" , n . style [ "z-index" ] = "2147483647" , n . style . tabIndex = "-1" , l . events . on ( "shared.destroy" , function ( ) { n . remove ( ) } ) , l . shared . print _iframe = n ) ; try { document . body . removeChild ( n ) } catch ( d ) { } document . body . appendChild ( n ) ; var i = function ( ) { e ( ) , n . removeEventListener ( "load" , i ) } ; n . addEventListener ( "load" , i ) ; var o = n . contentWindow ; o . document . open ( ) , o . document . write ( "<!DOCTYPE html><html " + ( l . opts . documentReady ? 'style="margin: 0; padding: 0;"' : "" ) + "><head><title>" + document . title + "</title>" ) , Array . prototype . forEach . call ( document . querySelectorAll ( "style" ) , function ( e ) { e = e . cloneNode ( ! 0 ) , o . document . write ( e . outerHTML ) } ) ; var r = document . querySelectorAll ( "link[rel=stylesheet]" ) ; Array . prototype . forEach . call ( r , function ( e ) { var t = document . createElement ( "link" ) ; t . rel = e . rel , t . href = e . href , t . media = "print" , t . type = "text/css" , t . media = "all" , o . document . write ( t . outerHTML ) } ) , o . document . write ( '</head><body style="height:auto;text-align: ' + ( "rtl" == l . opts . direction ? "right" : "left" ) + "; direction: " + l . opts . direction + "; " + ( l . opts . documentReady ? " padding: 2cm; width: 17cm; margin: 0;" : "" ) + '"><div class="fr-view">' ) , o . document . write ( t ) , o . document . write ( "</div></body></html>" ) , o . document . close ( ) } ( function ( ) { setTimeout ( function ( ) { l . events . disableBlur ( ) , window . frames [ "fr-print" ] . focus ( ) , window . frames [ "fr-print" ] . print ( ) , l . $win . get ( 0 ) . focus ( ) , l . events . disableBlur ( ) , l . events . focus ( ) } , 0 ) } ) } , toPDF : function ( ) { l . opts . html2pdf && ( l . $el . css ( "text-align" , "left" ) , l . opts . html2pdf ( ) . set ( { margin : [ 10 , 20 ] , html2canvas : { useCORS : ! 0 } } ) . from ( l . el ) . save ( ) , setTimeout ( function ( ) { l . $el . css ( "text-align" , "" ) } , 100 ) ) } } } , e . FE . DefineIcon ( "print" , { NAME : "print" } ) , e . FE . RegisterCommand ( "print" , { title : "Print" , undo : ! 1 , focus : ! 1 , plugin : "print" , callback : function ( ) { this . print . run ( ) } } ) , e . FE . DefineIcon ( "getPDF" , { NAME : "file-pdf-o" , FA5NAME : "file-pdf" } ) , e . FE . RegisterCommand ( "getPDF" , { title : "Download PDF" , type : "button" , focus : ! 1 , undo : ! 1 , callback : function ( ) { this . print . toPDF ( ) } } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/quick_insert.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/quick_insert.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( i ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , i ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , i ( t ) } : i ( window . jQuery ) } ( function ( d ) { d . extend ( d . FE . DEFAULTS , { quickInsertButtons : [ "image" , "video" , "embedly" , "table" , "ul" , "ol" , "hr" ] , quickInsertTags : [ "p" , "div" , "h1" , "h2" , "h3" , "h4" , "h5" , "h6" , "pre" , "blockquote" ] , quickInsertEnabled : ! 0 } ) , d . FE . QUICK _INSERT _BUTTONS = { } , d . FE . DefineIcon ( "quickInsert" , { PATH : '<path d="M22,16.75 L16.75,16.75 L16.75,22 L15.25,22.000 L15.25,16.75 L10,16.75 L10,15.25 L15.25,15.25 L15.25,10 L16.75,10 L16.75,15.25 L22,15.25 L22,16.75 Z"/>' , template : "svg" } ) , d . FE . RegisterQuickInsertButton = function ( e , t ) { d . FE . QUICK _INSERT _BUTTONS [ e ] = d . extend ( { undo : ! 0 } , t ) } , d . FE . RegisterQuickInsertButton ( "image" , { icon : "insertImage" , requiredPlugin : "image" , title : "Insert Image" , undo : ! 1 , callback : function ( ) { var e = this ; e . shared . $qi _image _input || ( e . shared . $qi _image _input = d ( '<input accept="image/' + e . opts . imageAllowedTypes . join ( ", image/" ) . toLowerCase ( ) + '" name="quickInsertImage' + this . id + '" style="display: none;" type="file">' ) , d ( "body:first" ) . append ( e . shared . $qi _image _input ) , e . events . $on ( e . shared . $qi _image _input , "change" , function ( ) { var e = d ( this ) . data ( "inst" ) ; this . files && ( e . quickInsert . hide ( ) , e . image . upload ( this . files ) ) , d ( this ) . val ( "" ) } , ! 0 ) ) , e . $qi _image _input = e . shared . $qi _image _input , e . helpers . isMobile ( ) && e . selection . save ( ) , e . events . disableBlur ( ) , e . $qi _image _input . data ( "inst" , e ) . trigger ( "click" ) } } ) , d . FE . RegisterQuickInsertButton ( "video" , { icon : "insertVideo" , requiredPlugin : "video" , title : "Insert Video" , undo : ! 1 , callback : function ( ) { var e = prompt ( this . language . translate ( "Paste the URL of the video you want to insert." ) ) ; e && this . video . insertByURL ( e ) } } ) , d . FE . RegisterQuickInsertButton ( "embedly" , { icon : "embedly" , requiredPlugin : "embedly" , title : "Embed URL" , undo : ! 1 , callback : function ( ) { var e = prompt ( this . language . translate ( "Paste the URL of any web content you want to insert." ) ) ; e && this . embedly . add ( e ) } } ) , d . FE . RegisterQuickInsertButton ( "table" , { icon : "insertTable" , requiredPlugin : "table" , title : "Insert Table" , callback : function ( ) { this . table . insert ( 2 , 2 ) } } ) , d . FE . RegisterQuickInsertButton ( "ol" , { icon : "formatOL" , requiredPlugin : "lists" , title : "Ordered List" , callback : function ( ) { this . lists . format ( "OL" ) } } ) , d . FE . RegisterQuickInsertButton ( "ul" , { icon : "formatUL" , requiredPlugin : "lists" , title : "Unordered List" , callback : function ( ) { this . lists . format ( "UL" ) } } ) , d . FE . RegisterQuickInsertButton ( "hr" , { icon : "insertHR" , title : "Insert Horizontal Line" , callback : function ( ) { this . commands . insertHR ( ) } } ) , d . FE . PLUGINS . quickInsert = function ( r ) { var a , l ; function t ( e ) { var t , i , n ; t = e . offset ( ) . top - r . $box . offset ( ) . top , i = ( r . $iframe && r . $iframe . offset ( ) . left || 0 ) + e . offset ( ) . left < a . outerWidth ( ) ? e . offset ( ) . left + a . outerWidth ( ) : 0 - a . outerWidth ( ) , r . opts . enter != d . FE . ENTER _BR ? n = ( a . outerHeight ( ) - e . outerHeight ( ) ) / 2 : ( d ( "<span>" + d . FE . INVISIBLE _SPACE + "</span>" ) . insertAfter ( e ) , n = ( a . outerHeight ( ) - e . next ( ) . outerHeight ( ) ) / 2 , e . next ( ) . remove ( ) ) , r . opts . iframe && ( t += r . $iframe . offset ( ) . top ) , a . hasClass ( "fr-on" ) && 0 <= t && l . css ( "top" , t - n ) , 0 <= t && t - Math . abs ( n ) <= r . $box . outerHeight ( ) - e . outerHeight ( ) ? ( a . hasClass ( "fr-hidden" ) && ( a . hasClass ( "fr-on" ) && o ( ) , a . removeClass ( "fr-hidden" ) ) , a . css ( "top" , t - n ) ) : a . hasClass ( "fr-visible" ) && ( a . addClass ( "fr-hidden" ) , u ( ) ) , a . css ( "left" , i ) } function i ( e ) { a || function ( ) { r . shared . $quick _insert || ( r . shared . $quick _insert = d ( '<div class="fr-quick-insert"><a class="fr-floating-btn" role="button" tabIndex="-1" title="' + r . language . translate ( "Quick Insert" ) + '">' + r . icon . create ( "quickInsert" ) + "</a></div>" ) ) ; a = r . shared . $quick _insert , r . tooltip . bind ( r . $box , ".fr-quick-insert > a.fr-floating-btn" ) , r . events . on ( "destroy" , function ( ) { a . removeClass ( "fr-on" ) . appendTo ( d ( "body:first" ) ) . css ( "left" , - 9999 ) . css ( "top" , - 9999 ) , l && ( u ( ) , l . appendTo ( d ( "body:first" ) ) ) } , ! 0 ) , r . events . on ( "shared.destroy" , function ( ) { a . html ( "" ) . removeData ( ) . remove ( ) , a = null , l && ( l . html ( "" ) . removeData ( ) . remove ( ) , l = null ) } , ! 0 ) , r . events . on ( "commands.before" , s ) , r . events . on ( "commands.after" , function ( ) {
} ) ;
; /*!node_modules/froala-editor/js/plugins/quote.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/quote.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( a ) { a . FE . PLUGINS . quote = function ( r ) { function o ( e ) { for ( ; e . parentNode && e . parentNode != r . el ; ) e = e . parentNode ; return e } return { apply : function ( e ) { r . selection . save ( ) , r . html . wrap ( ! 0 , ! 0 , ! 0 , ! 0 ) , r . selection . restore ( ) , "increase" == e ? function ( ) { var e , t = r . selection . blocks ( ) ; for ( e = 0 ; e < t . length ; e ++ ) t [ e ] = o ( t [ e ] ) ; r . selection . save ( ) ; var n = a ( "<blockquote>" ) ; for ( n . insertBefore ( t [ 0 ] ) , e = 0 ; e < t . length ; e ++ ) n . append ( t [ e ] ) ; r . html . unwrap ( ) , r . selection . restore ( ) } ( ) : "decrease" == e && function ( ) { var e , t = r . selection . blocks ( ) ; for ( e = 0 ; e < t . length ; e ++ ) "BLOCKQUOTE" != t [ e ] . tagName && ( t [ e ] = a ( t [ e ] ) . parentsUntil ( r . $el , "BLOCKQUOTE" ) . get ( 0 ) ) ; for ( r . selection . save ( ) , e = 0 ; e < t . length ; e ++ ) t [ e ] && a ( t [ e ] ) . replaceWith ( t [ e ] . innerHTML ) ; r . html . unwrap ( ) , r . selection . restore ( ) } ( ) } } } , a . FE . RegisterShortcut ( a . FE . KEYCODE . SINGLE _QUOTE , "quote" , "increase" , "'" ) , a . FE . RegisterShortcut ( a . FE . KEYCODE . SINGLE _QUOTE , "quote" , "decrease" , "'" , ! 0 ) , a . FE . RegisterCommand ( "quote" , { title : "Quote" , type : "dropdown" , html : function ( ) { var e = '<ul class="fr-dropdown-list" role="presentation">' , t = { increase : "Increase" , decrease : "Decrease" } ; for ( var n in t ) if ( t . hasOwnProperty ( n ) ) { var r = this . shortcuts . get ( "quote." + n ) ; e += '<li role="presentation"><a class="fr-command fr-active ' + n + '" tabIndex="-1" role="option" data-cmd="quote" data-param1="' + n + '" title="' + t [ n ] + '">' + this . language . translate ( t [ n ] ) + ( r ? '<span class="fr-shortcut">' + r + "</span>" : "" ) + "</a></li>" } return e += "</ul>" } , callback : function ( e , t ) { this . quote . apply ( t ) } , plugin : "quote" } ) , a . FE . DefineIcon ( "quote" , { NAME : "quote-left" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/save.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/save.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( n ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , n ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , n ( t ) } : n ( window . jQuery ) } ( function ( l ) { l . extend ( l . FE . DEFAULTS , { saveInterval : 1e4 , saveURL : null , saveParams : { } , saveParam : "body" , saveMethod : "POST" } ) , l . FE . PLUGINS . save = function ( i ) { var e = null , u = null , t = ! 1 , v = 1 , f = 2 , n = { } ; function d ( e , t ) { i . events . trigger ( "save.error" , [ { code : e , message : n [ e ] } , t ] ) } function s ( e ) { void 0 === e && ( e = i . html . get ( ) ) ; var t = e , n = i . events . trigger ( "save.before" , [ e ] ) ; if ( ! 1 === n ) return ! 1 ; if ( "string" == typeof n && ( e = n ) , i . opts . saveURL ) { var s = { } ; for ( var o in i . opts . saveParams ) if ( i . opts . saveParams . hasOwnProperty ( o ) ) { var a = i . opts . saveParams [ o ] ; s [ o ] = "function" == typeof a ? a . call ( this ) : a } var r = { } ; r [ i . opts . saveParam ] = e , l . ajax ( { type : i . opts . saveMethod , url : i . opts . saveURL , data : l . extend ( r , s ) , crossDomain : i . opts . requestWithCORS , xhrFields : { withCredentials : i . opts . requestWithCredentials } , headers : i . opts . requestHeaders } ) . done ( function ( e ) { u = t , i . events . trigger ( "save.after" , [ e ] ) } ) . fail ( function ( e ) { d ( f , e . response || e . responseText ) } ) } else d ( v ) } function o ( ) { clearTimeout ( e ) , e = setTimeout ( function ( ) { var e = i . html . get ( ) ; ( u != e || t ) && ( t = ! 1 , s ( u = e ) ) } , i . opts . saveInterval ) } return n [ v ] = "Missing saveURL option." , n [ f ] = "Something went wrong during save." , { _init : function ( ) { i . opts . saveInterval && ( u = i . html . get ( ) , i . events . on ( "contentChanged" , o ) , i . events . on ( "keydown destroy" , function ( ) { clearTimeout ( e ) } ) ) } , save : s , reset : function ( ) { o ( ) , t = ! 1 } , force : function ( ) { t = ! 0 } } } , l . FE . DefineIcon ( "save" , { NAME : "floppy-o" , FA5NAME : "save" } ) , l . FE . RegisterCommand ( "save" , { title : "Save" , undo : ! 1 , focus : ! 1 , refreshAfterCallback : ! 1 , callback : function ( ) { this . save . save ( ) } , plugin : "save" } ) } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/special_characters.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/special_characters.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( T ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , T ) : "object" == typeof module && module . exports ? module . exports = function ( E , c ) { return c === undefined && ( c = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( E ) ) , T ( c ) } : T ( window . jQuery ) } ( function ( s ) { s . extend ( s . FE . DEFAULTS , { specialCharactersSets : [ { title : "Latin" , list : [ { "char" : "¡" , desc : "INVERTED EXCLAMATION MARK" } , { "char" : "¢" , desc : "CENT SIGN" } , { "char" : "£" , desc : "POUND SIGN" } , { "char" : "¤" , desc : "CURRENCY SIGN" } , { "char" : "¥" , desc : "YEN SIGN" } , { "char" : "¦" , desc : "BROKEN BAR" } , { "char" : "§" , desc : "SECTION SIGN" } , { "char" : "¨" , desc : "DIAERESIS" } , { "char" : "©" , desc : "COPYRIGHT SIGN" } , { "char" : "™" , desc : "TRADEMARK SIGN" } , { "char" : "ª" , desc : "FEMININE ORDINAL INDICATOR" } , { "char" : "«" , desc : "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK" } , { "char" : "¬" , desc : "NOT SIGN" } , { "char" : "®" , desc : "REGISTERED SIGN" } , { "char" : "¯" , desc : "MACRON" } , { "char" : "°" , desc : "DEGREE SIGN" } , { "char" : "±" , desc : "PLUS-MINUS SIGN" } , { "char" : "²" , desc : "SUPERSCRIPT TWO" } , { "char" : "³" , desc : "SUPERSCRIPT THREE" } , { "char" : "´" , desc : "ACUTE ACCENT" } , { "char" : "µ" , desc : "MICRO SIGN" } , { "char" : "¶" , desc : "PILCROW SIGN" } , { "char" : "·" , desc : "MIDDLE DOT" } , { "char" : "¸" , desc : "CEDILLA" } , { "char" : "¹" , desc : "SUPERSCRIPT ONE" } , { "char" : "º" , desc : "MASCULINE ORDINAL INDICATOR" } , { "char" : "»" , desc : "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" } , { "char" : "¼" , desc : "VULGAR FRACTION ONE QUARTER" } , { "char" : "½" , desc : "VULGAR FRACTION ONE HALF" } , { "char" : "¾" , desc : "VULGAR FRACTION THREE QUARTERS" } , { "char" : "¿" , desc : "INVERTED QUESTION MARK" } , { "char" : "À" , desc : "LATIN CAPITAL LETTER A WITH GRAVE" } , { "char" : "Á" , desc : "LATIN CAPITAL LETTER A WITH ACUTE" } , { "char" : "Â" , desc : "LATIN CAPITAL LETTER A WITH CIRCUMFLEX" } , { "char" : "Ã" , desc : "LATIN CAPITAL LETTER A WITH TILDE" } , { "char" : "Ä" , desc : "LATIN CAPITAL LETTER A WITH DIAERESIS " } , { "char" : "Å" , desc : "LATIN CAPITAL LETTER A WITH RING ABOVE" } , { "char" : "Æ" , desc : "LATIN CAPITAL LETTER AE" } , { "char" : "Ç" , desc : "LATIN CAPITAL LETTER C WITH CEDILLA" } , { "char" : "È" , desc : "LATIN CAPITAL LETTER E WITH GRAVE" } , { "char" : "É" , desc : "LATIN CAPITAL LETTER E WITH ACUTE" } , { "char" : "Ê" , desc : "LATIN CAPITAL LETTER E WITH CIRCUMFLEX" } , { "char" : "Ë" , desc : "LATIN CAPITAL LETTER E WITH DIAERESIS" } , { "char" : "Ì" , desc : "LATIN CAPITAL LETTER I WITH GRAVE" } , { "char" : "Í" , desc : "LATIN CAPITAL LETTER I WITH ACUTE" } , { "char" : "Î" , desc : "LATIN CAPITAL LETTER I WITH CIRCUMFLEX" } , { "char" : "Ï" , desc : "LATIN CAPITAL LETTER I WITH DIAERESIS" } , { "char" : "Ð" , desc : "LATIN CAPITAL LETTER ETH" } , { "char" : "Ñ" , desc : "LATIN CAPITAL LETTER N WITH TILDE" } , { "char" : "Ò" , desc : "LATIN CAPITAL LETTER O WITH GRAVE" } , { "char" : "Ó" , desc : "LATIN CAPITAL LETTER O WITH ACUTE" } , { "char" : "Ô" , desc : "LATIN CAPITAL LETTER O WITH CIRCUMFLEX" } , { "char" : "Õ" , desc : "LATIN CAPITAL LETTER O WITH TILDE" } , { "char" : "Ö" , desc : "LATIN CAPITAL LETTER O WITH DIAERESIS" } , { "char" : "×" , desc : "MULTIPLICATION SIGN" } , { "char" : "Ø" , desc : "LATIN CAPITAL LETTER O WITH STROKE" } , { "char" : "Ù" , desc : "LATIN CAPITAL LETTER U WITH GRAVE" } , { "char" : "Ú" , desc : "LATIN CAPITAL LETTER U WITH ACUTE" } , { "char" : "Û" , desc : "LATIN CAPITAL LETTER U WITH CIRCUMFLEX" } , { "char" : "Ü" , desc : "LATIN CAPITAL LETTER U WITH DIAERESIS" } , { "char" : "Ý" , desc : "LATIN CAPITAL LETTER Y WITH ACUTE" } , { "char" : "Þ" , desc : "LATIN CAPITAL LETTER THORN" } , { "char" : "ß" , desc : "LATIN SMALL LETTER SHARP S" } , { "char" : "à" , desc : "LATIN SMALL LETTER A WITH GRAVE" } , { "char" : "á" , desc : "LATIN SMALL LETTER A WITH ACUTE " } , { "char" : "â" , desc : "LATIN SMALL LETTER A WITH CIRCUMFLEX" } , { "char" : "ã" , desc : "LATIN SMALL LETTER A WITH TILDE" } , { "char" : "ä" , desc : "LATIN SMALL LETTER A WITH DIAERESIS" } , { "char" : "å" , desc : "LATIN SMALL LETTER A WITH RING ABOVE" } , { "char" : "æ" , desc : "LATIN SMALL LETTER AE" } , { "char" : " & ccedil
} ) ;
; /*!node_modules/froala-editor/js/plugins/table.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/table.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( l ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , l ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , l ( t ) } : l ( window . jQuery ) } ( function ( Z ) { Z . extend ( Z . FE . POPUP _TEMPLATES , { "table.insert" : "[_BUTTONS_][_ROWS_COLUMNS_]" , "table.edit" : "[_BUTTONS_]" , "table.colors" : "[_BUTTONS_][_COLORS_][_CUSTOM_COLOR_]" } ) , Z . extend ( Z . FE . DEFAULTS , { tableInsertMaxSize : 10 , tableEditButtons : [ "tableHeader" , "tableRemove" , "|" , "tableRows" , "tableColumns" , "tableStyle" , "-" , "tableCells" , "tableCellBackground" , "tableCellVerticalAlign" , "tableCellHorizontalAlign" , "tableCellStyle" ] , tableInsertButtons : [ "tableBack" , "|" ] , tableResizer : ! 0 , tableDefaultWidth : "100%" , tableResizerOffset : 5 , tableResizingLimit : 30 , tableColorsButtons : [ "tableBack" , "|" ] , tableColors : [ "#61BD6D" , "#1ABC9C" , "#54ACD2" , "#2C82C9" , "#9365B8" , "#475577" , "#CCCCCC" , "#41A85F" , "#00A885" , "#3D8EB9" , "#2969B0" , "#553982" , "#28324E" , "#000000" , "#F7DA64" , "#FBA026" , "#EB6B56" , "#E25041" , "#A38F84" , "#EFEFEF" , "#FFFFFF" , "#FAC51C" , "#F37934" , "#D14841" , "#B8312F" , "#7C706B" , "#D1D5D8" , "REMOVE" ] , tableColorsStep : 7 , tableCellStyles : { "fr-highlighted" : "Highlighted" , "fr-thick" : "Thick" } , tableStyles : { "fr-dashed-borders" : "Dashed Borders" , "fr-alternate-rows" : "Alternate Rows" } , tableCellMultipleStyles : ! 0 , tableMultipleStyles : ! 0 , tableInsertHelper : ! 0 , tableInsertHelperOffset : 15 } ) , Z . FE . PLUGINS . table = function ( w ) { var C , o , s , n , a , r , E ; function h ( ) { var e = O ( ) ; if ( e ) { var t = w . popups . get ( "table.edit" ) ; if ( t || ( t = p ( ) ) , t ) { w . popups . setContainer ( "table.edit" , w . $sc ) ; var l = M ( e ) , a = ( l . left + l . right ) / 2 , s = l . bottom ; w . popups . show ( "table.edit" , a , s , l . bottom - l . top ) , w . edit . isDisabled ( ) && ( 1 < J ( ) . length && w . toolbar . disable ( ) , w . $el . removeClass ( "fr-no-selection" ) , w . edit . on ( ) , w . button . bulkRefresh ( ) , w . selection . setAtEnd ( w . $el . find ( ".fr-selected-cell:last" ) . get ( 0 ) ) , w . selection . restore ( ) ) } } } function f ( ) { var e , t , l , a , s = O ( ) ; if ( s ) { var n = w . popups . get ( "table.colors" ) ; n || ( n = function ( ) { var e = "" ; 0 < w . opts . tableColorsButtons . length && ( e = '<div class="fr-buttons fr-table-colors-buttons">' + w . button . buildList ( w . opts . tableColorsButtons ) + "</div>" ) ; var t = "" ; w . opts . colorsHEXInput && ( t = '<div class="fr-table-colors-hex-layer fr-active fr-layer" id="fr-table-colors-hex-layer-' + w . id + '"><div class="fr-input-line"><input maxlength="7" id="fr-table-colors-hex-layer-text-' + w . id + '" type="text" placeholder="' + w . language . translate ( "HEX Color" ) + '" tabIndex="1" aria-required="true"></div><div class="fr-action-buttons"><button type="button" class="fr-command fr-submit" data-cmd="tableCellBackgroundCustomColor" tabIndex="2" role="button">' + w . language . translate ( "OK" ) + "</button></div></div>" ) ; var l = { buttons : e , colors : function ( ) { for ( var e = '<div class="fr-table-colors">' , t = 0 ; t < w . opts . tableColors . length ; t ++ ) 0 !== t && t % w . opts . tableColorsStep == 0 && ( e += "<br>" ) , "REMOVE" != w . opts . tableColors [ t ] ? e += '<span class="fr-command" style="background: ' + w . opts . tableColors [ t ] + ';" tabIndex="-1" role="button" data-cmd="tableCellBackgroundColor" data-param1="' + w . opts . tableColors [ t ] + '"><span class="fr-sr-only">' + w . language . translate ( "Color" ) + " " + w . opts . tableColors [ t ] + " </span></span>" : e += '<span class="fr-command" data-cmd="tableCellBackgroundColor" tabIndex="-1" role="button" data-param1="REMOVE" title="' + w . language . translate ( "Clear Formatting" ) + '">' + w . icon . create ( "tableColorRemove" ) + '<span class="fr-sr-only">' + w . language . translate ( "Clear Formatting" ) + "</span></span>" ; return e += "</div>" } ( ) , custom _color : t } , a = w . popups . create ( "table.colors" , l ) ; return w . events . $on ( w . $wp , "scroll.table-colors" , function ( ) { w . popups . isVisible ( "table.colors" ) && f ( ) } ) , u = a , w . events . on ( "popup.tab" , function ( e ) { var t = Z ( e . currentTarget ) ; if ( ! w . popups . isVisible ( "table.colors" ) || ! t . is ( "span" ) ) return ! 0 ; var l = e . which , a = ! 0 ; if ( Z . FE . KEYCODE . TAB == l ) { var s = u . find ( ".fr-buttons" ) ; a = ! w . accessibility . focusToolbar ( s , ! ! e . shiftKey ) } else if ( Z . FE . KEYCODE . ARROW _UP == l || Z . FE . KEYCODE . ARROW _DOWN == l || Z . FE . KEYCODE . ARROW _LEFT == l || Z . FE . KEYCODE . ARROW _RIGHT == l ) { var n = t . parent ( ) . find ( "span.fr-command" ) , r = n . index ( t ) , o = w . opts . c
} ) ;
; /*!node_modules/froala-editor/js/plugins/url.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/url.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( t ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , t ) : "object" == typeof module && module . exports ? module . exports = function ( e , n ) { return n === undefined && ( n = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , t ( n ) } : t ( window . jQuery ) } ( function ( f ) { f . FE . URLRegEx = "(^| |\\u00A0)(" + f . FE . LinkRegEx + "|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\\.[a-z0-9+-_]{1,}))$" , f . FE . PLUGINS . url = function ( i ) { var l = null ; function n ( e , n , t ) { for ( var r = "" ; t . length && "." == t [ t . length - 1 ] ; ) r += "." , t = t . substring ( 0 , t . length - 1 ) ; var o = t ; if ( i . opts . linkConvertEmailAddress ) i . helpers . isEmail ( o ) && ! /^mailto:.*/i . test ( o ) && ( o = "mailto:" + o ) ; else if ( i . helpers . isEmail ( o ) ) return n + t ; return /^((http|https|ftp|ftps|mailto|tel|sms|notes|data)\:)/i . test ( o ) || ( o = "//" + o ) , ( n || "" ) + "<a" + ( i . opts . linkAlwaysBlank ? ' target="_blank"' : "" ) + ( l ? ' rel="' + l + '"' : "" ) + ' data-fr-linked="true" href="' + o + '">' + t . replace ( /&/g , "&" ) . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) + "</a>" + r } function a ( ) { return new RegExp ( f . FE . URLRegEx , "gi" ) } function s ( e ) { return i . opts . linkAlwaysNoFollow && ( l = "nofollow" ) , i . opts . linkAlwaysBlank && ( i . opts . linkNoOpener && ( l ? l += " noopener" : l = "noopener" ) , i . opts . linkNoReferrer && ( l ? l += " noreferrer" : l = "noreferrer" ) ) , e . replace ( a ( ) , n ) } function p ( e ) { var n = e . split ( " " ) ; return n [ n . length - 1 ] } function t ( ) { var n = i . selection . ranges ( 0 ) , t = n . startContainer ; if ( ! t || t . nodeType !== Node . TEXT _NODE || n . startOffset !== ( t . textContent || "" ) . length ) return ! 1 ; if ( function e ( n ) { return ! ! n && ( "A" === n . tagName || ! ( ! n . parentNode || n . parentNode == i . el ) && e ( n . parentNode ) ) } ( t ) ) return ! 1 ; if ( a ( ) . test ( p ( t . textContent ) ) ) { f ( t ) . before ( s ( t . textContent ) ) ; var r = f ( t . parentNode ) . find ( "a[data-fr-linked]" ) ; r . removeAttr ( "data-fr-linked" ) , t . parentNode . removeChild ( t ) , i . events . trigger ( "url.linked" , [ r . get ( 0 ) ] ) } else if ( t . textContent . split ( " " ) . length <= 2 && t . previousSibling && "A" === t . previousSibling . tagName ) { var o = t . previousSibling . innerText + t . textContent ; a ( ) . test ( p ( o ) ) && ( f ( t . previousSibling ) . replaceWith ( s ( o ) ) , t . parentNode . removeChild ( t ) ) } } return { _init : function ( ) { i . events . on ( "keypress" , function ( e ) { ! i . selection . isCollapsed ( ) || "." != e . key && ")" != e . key && "(" != e . key || t ( ) } , ! 0 ) , i . events . on ( "keydown" , function ( e ) { var n = e . which ; ! i . selection . isCollapsed ( ) || n != f . FE . KEYCODE . ENTER && n != f . FE . KEYCODE . SPACE || t ( ) } , ! 0 ) , i . events . on ( "paste.beforeCleanup" , function ( e ) { if ( i . helpers . isURL ( e ) ) { var n = null ; return i . opts . linkAlwaysBlank && ( i . opts . linkNoOpener && ( n ? n += " noopener" : n = "noopener" ) , i . opts . linkNoReferrer && ( n ? n += " noreferrer" : n = "noreferrer" ) ) , "<a" + ( i . opts . linkAlwaysBlank ? ' target="_blank"' : "" ) + ( n ? ' rel="' + n + '"' : "" ) + ' href="' + e + '" >' + e + "</a>" } } ) } } } } ) ;
} ) ;
; /*!node_modules/froala-editor/js/plugins/video.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/video.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( i ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , i ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , i ( t ) } : i ( window . jQuery ) } ( function ( Q ) { Q . extend ( Q . FE . POPUP _TEMPLATES , { "video.insert" : "[_BUTTONS_][_BY_URL_LAYER_][_EMBED_LAYER_][_UPLOAD_LAYER_][_PROGRESS_BAR_]" , "video.edit" : "[_BUTTONS_]" , "video.size" : "[_BUTTONS_][_SIZE_LAYER_]" } ) , Q . extend ( Q . FE . DEFAULTS , { videoAllowedTypes : [ "mp4" , "webm" , "ogg" ] , videoAllowedProviders : [ ".*" ] , videoDefaultAlign : "center" , videoDefaultDisplay : "block" , videoDefaultWidth : 600 , videoEditButtons : [ "videoReplace" , "videoRemove" , "|" , "videoDisplay" , "videoAlign" , "videoSize" ] , videoInsertButtons : [ "videoBack" , "|" , "videoByURL" , "videoEmbed" , "videoUpload" ] , videoMaxSize : 52428800 , videoMove : ! 0 , videoResize : ! 0 , videoResponsive : ! 1 , videoSizeButtons : [ "videoBack" , "|" ] , videoSplitHTML : ! 1 , videoTextNear : ! 0 , videoUpload : ! 0 , videoUploadMethod : "POST" , videoUploadParam : "file" , videoUploadParams : { } , videoUploadToS3 : ! 1 , videoUploadURL : null } ) , Q . FE . VIDEO _PROVIDERS = [ { test _regex : /^.*((youtu.be)|(youtube.com))\/((v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))?\??v?=?([^#\&\?]*).*/ , url _regex : /(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/)?([0-9a-zA-Z_\-]+)(.+)?/g , url _text : "https://www.youtube.com/embed/$1?$2" , html : '<iframe width="640" height="360" src="{url}&wmode=opaque" frameborder="0" allowfullscreen></iframe>' , provider : "youtube" } , { test _regex : /^.*(?:vimeo.com)\/(?:channels(\/\w+\/)?|groups\/*\/videos\/\u200b\d+\/|video\/|)(\d+)(?:$|\/|\?)/ , url _regex : /(?:https?:\/\/)?(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/|)(\d+)(?:[a-zA-Z0-9_\-]+)?(\/[a-zA-Z0-9_\-]+)?/i , url _text : "https://player.vimeo.com/video/$1" , html : '<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen></iframe>' , provider : "vimeo" } , { test _regex : /^.+(dailymotion.com|dai.ly)\/(video|hub)?\/?([^_]+)[^#]*(#video=([^_&]+))?/ , url _regex : /(?:https?:\/\/)?(?:www\.)?(?:dailymotion\.com|dai\.ly)\/(?:video|hub)?\/?(.+)/g , url _text : "https://www.dailymotion.com/embed/video/$1" , html : '<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen></iframe>' , provider : "dailymotion" } , { test _regex : /^.+(screen.yahoo.com)\/[^_&]+/ , url _regex : "" , url _text : "" , html : '<iframe width="640" height="360" src="{url}?format=embed" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" allowtransparency="true"></iframe>' , provider : "yahoo" } , { test _regex : /^.+(rutube.ru)\/[^_&]+/ , url _regex : /(?:https?:\/\/)?(?:www\.)?(?:rutube\.ru)\/(?:video)?\/?(.+)/g , url _text : "https://rutube.ru/play/embed/$1" , html : '<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" allowtransparency="true"></iframe>' , provider : "rutube" } , { test _regex : /^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/ , url _regex : /^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/g , url _text : "https://play.vidyard.com/$1" , html : '<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen></iframe>' , provider : "vidyard" } ] , Q . FE . VIDEO _EMBED _REGEX = /^\W*((<iframe(.|\n)*>(\s|\n)*<\/iframe>)|(<embed(.|\n)*>))\W*$/i , Q . FE . PLUGINS . video = function ( p ) { var a , f , v , u , o , i , d = "https://i.froala.com/upload" , l = 2 , c = 3 , h = 4 , g = 5 , m = 6 , r = { } ; function b ( ) { var e = p . popups . get ( "video.insert" ) ; e . find ( ".fr-video-by-url-layer input" ) . val ( "" ) . trigger ( "change" ) ; var t = e . find ( ".fr-video-embed-layer textarea" ) ; t . val ( "" ) . trigger ( "change" ) , ( t = e . find ( ".fr-video-upload-layer input" ) ) . val ( "" ) . trigger ( "change" ) } function s ( ) { var e = p . popups . get ( "video.edit" ) ; if ( e || ( e = function ( ) { var e = "" ; if ( 0 < p . opts . videoEditButtons . length ) { p . opts . videoResponsive && ( - 1 < p . opts . videoEditButtons . indexOf ( "videoSize" ) && p . opts . videoEditButtons . splice ( p . opts . videoEditButtons . indexOf ( "videoSize" ) , 1 ) , - 1 < p . opts . videoEditButtons . indexOf ( "videoDisplay" ) && p . opts . videoEditButtons . splice ( p . opts . videoEdit
} ) ;
; /*!node_modules/froala-editor/js/plugins/word_paste.min.js*/
amis . define ( 'node_modules/froala-editor/js/plugins/word_paste.min' , function ( require , exports , module , define ) {
/ * !
* froala _editor v2 . 9.6 ( https : //www.froala.com/wysiwyg-editor)
* License https : //froala.com/wysiwyg-editor/terms/
* Copyright 2014 - 2019 Froala Labs
* /
! function ( r ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , r ) : "object" == typeof module && module . exports ? module . exports = function ( e , t ) { return t === undefined && ( t = "undefined" != typeof window ? require ( "node_modules/jquery/dist/jquery" ) : require ( "node_modules/jquery/dist/jquery" ) ( e ) ) , r ( t ) } : r ( window . jQuery ) } ( function ( S ) { S . extend ( S . FE . DEFAULTS , { wordDeniedTags : [ ] , wordDeniedAttrs : [ ] , wordAllowedStyleProps : [ "font-family" , "font-size" , "background" , "color" , "width" , "text-align" , "vertical-align" , "background-color" , "padding" , "margin" , "height" , "margin-top" , "margin-left" , "margin-right" , "margin-bottom" , "text-decoration" , "font-weight" , "font-style" , "text-indent" , "border" , "border-.*" , "line-height" , "list-style-type" ] , wordPasteModal : ! 0 , wordPasteKeepFormatting : ! 0 } ) , S . FE . PLUGINS . wordPaste = function ( y ) { var a , i , l = "word_paste" ; function t ( e ) { var t = y . opts . wordAllowedStyleProps ; e || ( y . opts . wordAllowedStyleProps = [ ] ) , 0 === i . indexOf ( "<colgroup>" ) && ( i = "<table>" + i + "</table>" ) , i = function ( e , t ) { 0 <= e . indexOf ( "<html" ) && ( e = e . replace ( /[.\s\S\w\W<>]*(<html[^>]*>[.\s\S\w\W<>]*<\/html>)[.\s\S\w\W<>]*/i , "$1" ) ) ; ! function ( e ) { for ( var t = e . split ( "v:shape" ) , r = 1 ; r < t . length ; r ++ ) { var i = t [ r ] , n = i . split ( ' id="' ) [ 1 ] ; if ( n && 1 < n . length ) { n = n . split ( '"' ) [ 0 ] ; var a = i . split ( ' o:spid="' ) [ 1 ] ; a && 1 < a . length && ( a = a . split ( '"' ) [ 0 ] , c [ n ] = a ) } } } ( e ) ; var r = ( new DOMParser ) . parseFromString ( e , "text/html" ) , i = r . head , n = r . body , o = function ( e ) { var t = { } , r = e . getElementsByTagName ( "style" ) ; if ( r . length ) { var i = r [ 0 ] , n = i . innerHTML . match ( /[\S ]+\s+{[\s\S]+?}/gi ) ; if ( n ) for ( var a = 0 ; a < n . length ; a ++ ) { var l = n [ a ] , o = l . replace ( /([\S ]+\s+){[\s\S]+?}/gi , "$1" ) , s = l . replace ( /[\S ]+\s+{([\s\S]+?)}/gi , "$1" ) ; o = o . replace ( /^[\s]|[\s]$/gm , "" ) , s = s . replace ( /^[\s]|[\s]$/gm , "" ) , o = o . replace ( /\n|\r|\n\r/g , "" ) , s = s . replace ( /\n|\r|\n\r/g , "" ) ; for ( var d = o . split ( ", " ) , f = 0 ; f < d . length ; f ++ ) t [ d [ f ] ] = s } } return t } ( i ) ; f ( n , function ( e ) { if ( e . nodeType == Node . TEXT _NODE && /\n|\u00a0|\r/ . test ( e . data ) ) { if ( ! /\S| / . test ( e . data ) && ! /[\u00a0]+/ . test ( e . data ) ) return e . data == S . FE . UNICODE _NBSP ? ( e . data = "\u200b" , ! 0 ) : 1 == e . data . length && 10 == e . data . charCodeAt ( 0 ) ? ( e . data = " " , ! 0 ) : ( N ( e ) , ! 1 ) ; e . data = e . data . replace ( /\n|\r/gi , " " ) } return ! 0 } ) , f ( n , function ( e ) { return e . nodeType != Node . ELEMENT _NODE || "V:IMAGEDATA" != e . tagName && "IMG" != e . tagName || function ( e , t ) { if ( ! t ) return ; var r ; if ( "IMG" == e . tagName ) { var i = e . getAttribute ( "src" ) ; if ( ! i || - 1 == i . indexOf ( "file://" ) ) return ; if ( 0 === i . indexOf ( "file://" ) && y . helpers . isURL ( e . getAttribute ( "alt" ) ) ) return e . setAttribute ( "src" , e . getAttribute ( "alt" ) ) ; ( r = c [ e . getAttribute ( "v:shapes" ) ] ) || ( r = e . getAttribute ( "v:shapes" ) , e . parentNode && e . parentNode . parentNode && 0 <= e . parentNode . parentNode . innerHTML . indexOf ( "msEquation" ) && ( r = null ) ) } else r = e . parentNode . getAttribute ( "o:spid" ) ; if ( e . removeAttribute ( "height" ) , ! r ) return ; n = t , p = { } , u ( n , "i" , "\\shppict" ) , u ( n , "s" , "\\shp{" ) ; var n ; var a = p [ r . substring ( 7 ) ] ; if ( a ) { var l = function ( e ) { for ( var t = e . match ( /[0-9a-f]{2}/gi ) , r = [ ] , i = 0 ; i < t . length ; i ++ ) r . push ( String . fromCharCode ( parseInt ( t [ i ] , 16 ) ) ) ; var n = r . join ( "" ) ; return btoa ( n ) } ( a . image _hex ) , o = "data:" + a . image _type + ";base64," + l ; "IMG" === e . tagName ? ( e . src = o , e . setAttribute ( "data-fr-image-pasted" , ! 0 ) ) : S ( e . parentNode ) . before ( '<img data-fr-image-pasted="true" src="' + o + '" style="' + e . parentNode . getAttribute ( "style" ) + '">' ) . remove ( ) } } ( e , t ) , ! 0 } ) ; for ( var a = n . querySelectorAll ( "ul > ul, ul > ol, ol > ul, ol > ol" ) , l = a . length - 1 ; 0 <= l ; l -- ) a [ l ] . previousElementSibling && "LI" === a [ l ] . previousElementSibling . tagName && a [ l ] . previousElementSibling . appendChild ( a [ l ] ) ; f ( n , function ( t ) { if ( t . nodeType == Node . TEXT _NODE ) return t . data = t . data . replace ( /<br>(\n|\r)/gi , "<br>" ) , ! 1 ; if ( t . nodeType == Node . ELEMENT _NODE ) { if ( C ( t ) ) { var r = t . parentNode , i = t . previousSibling , n = function e ( t , r , i ) { var n = /[0-9a-zA-Z]./gi ; var a = ! 1 ; var l = t . querySelector ( 'span[style="mso-list:Ignore"]' ) ; var o ; var s ; var d ; var f ; var u ; var g ; var p ; l && ( a = a || n . test ( l . textContent ) ) ; if ( 1 == a ) { var c = l . textContent . trim ( ) . split ( "." ) [ 0 ] ; "a" == c ? p = "lower-alpha;" : "A" == c ? p = "upper-alpha;" : "1" == c ? p = "decimal;" : "i" == c ? p = "lower-roman;" : "I" == c ? p = "upper-roman;" : "o" == c && ( p = "circle;" ) , p = "list-style-type: " + p , g = "ol" } else g = "ul" ; var m = p ? "<" + g + ' style = "' + p + '">' : "<" + g + ">" ; for ( ; t ; ) { if ( ! C ( t ) ) { if ( t . outerHTML && 0 < t . oute
} ) ;