@@ -84,13 +84,31 @@ define([
8484 } ;
8585 }
8686
87+ function convertStringsToRegExDeep ( arr ) {
88+ function processEntry ( [ key , value ] ) {
89+ value = ( typeof value === "string" )
90+ ? new RegExp ( value , 'i' )
91+ : Array . isArray ( value )
92+ ? arr . map ( ( value , index ) => processEntry ( [ index , value ] ) [ 1 ] )
93+ : ( typeof value === "object" && value !== null )
94+ ? Object . fromEntries ( Object . entries ( value ) . map ( processEntry ) )
95+ : value ;
96+ return [ key , value ] ;
97+ }
98+ return arr . map ( ( value , index ) => processEntry ( [ index , value ] ) [ 1 ] )
99+ }
100+
87101 until ( isAttached ( this . $el ) ) . then ( ( ) => {
88102 return CKEDITOR . create ( this . $el [ 0 ] , {
89103 dataIndentationChars : '' ,
90104 disableNativeSpellChecker : false ,
91105 enterMode : CKEDITOR [ Origin . constants . ckEditorEnterMode ] ,
92106 entities : false ,
93- extraAllowedContent : Origin . constants . ckEditorExtraAllowedContent ,
107+ htmlSupport : {
108+ // Convert all allow/disallow strings to regexp, as config is json only
109+ allow : convertStringsToRegExDeep ( ( Origin . constants . ckEditorHtmlSupport && Origin . constants . ckEditorHtmlSupport . allow ) || [ ] ) ,
110+ disallow : convertStringsToRegExDeep ( ( Origin . constants . ckEditorHtmlSupport && Origin . constants . ckEditorHtmlSupport . disallow ) || [ ] )
111+ } ,
94112 on : {
95113 change : function ( ) {
96114 this . trigger ( 'change' , this ) ;
0 commit comments