@@ -128,11 +128,12 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
128128 public locale : string ;
129129
130130 /**
131- * Defines whether to allow the cross-scripting site or not.
131+ * Specifies whether to enable the rendering of untrusted HTML values in the Button component.
132+ * If 'enableHtmlSanitizer' set to true, the component will sanitize any suspected untrusted strings and scripts before rendering them.
132133 *
133- * @default false
134+ * @default true
134135 */
135- @Property ( false )
136+ @Property ( true )
136137 public enableHtmlSanitizer : boolean ;
137138
138139 /**
@@ -200,7 +201,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
200201 private setIconCss ( ) : void {
201202 if ( this . iconCss ) {
202203 const span : HTMLElement = this . createElement ( 'span' , { className : 'e-btn-icon ' + this . iconCss } ) ;
203- if ( ! this . element . textContent . trim ( ) ) {
204+ if ( ! this . element . textContent ! . trim ( ) ) {
204205 this . element . classList . add ( cssClassName . ICONBTN ) ;
205206 } else {
206207 span . classList . add ( 'e-icon-' + this . iconPosition . toLowerCase ( ) ) ;
@@ -261,7 +262,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
261262 if ( this . content ) {
262263 this . element . innerHTML = this . element . innerHTML . replace ( this . content , '' ) ;
263264 }
264- const span : Element = this . element . querySelector ( 'span.e-btn-icon' ) ;
265+ const span : Element = this . element . querySelector ( 'span.e-btn-icon' ) as Element ;
265266 if ( span ) {
266267 detach ( span ) ;
267268 }
@@ -310,7 +311,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
310311 * @private
311312 */
312313 public onPropertyChanged ( newProp : ButtonModel , oldProp : ButtonModel ) : void {
313- let span : Element = this . element . querySelector ( 'span.e-btn-icon' ) ;
314+ let span : Element = this . element . querySelector ( 'span.e-btn-icon' ) as Element ;
314315 for ( const prop of Object . keys ( newProp ) ) {
315316 switch ( prop ) {
316317 case 'isPrimary' :
@@ -321,14 +322,14 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
321322 }
322323 break ;
323324 case 'disabled' :
324- this . controlStatus ( newProp . disabled ) ;
325+ this . controlStatus ( newProp . disabled as boolean ) ;
325326 break ;
326327 case 'iconCss' : {
327- span = this . element . querySelector ( 'span.e-btn-icon' ) ;
328+ span = this . element . querySelector ( 'span.e-btn-icon' ) as Element ;
328329 if ( span ) {
329330 if ( newProp . iconCss ) {
330331 span . className = 'e-btn-icon ' + newProp . iconCss ;
331- if ( this . element . textContent . trim ( ) ) {
332+ if ( this . element . textContent ! . trim ( ) ) {
332333 if ( this . iconPosition === 'Left' ) {
333334 span . classList . add ( 'e-icon-left' ) ;
334335 } else {
@@ -345,7 +346,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
345346 }
346347 case 'iconPosition' :
347348 removeClass ( [ this . element ] , [ 'e-top-icon-btn' , 'e-bottom-icon-btn' ] ) ;
348- span = this . element . querySelector ( 'span.e-btn-icon' ) ;
349+ span = this . element . querySelector ( 'span.e-btn-icon' ) as Element ;
349350 if ( span ) {
350351 detach ( span ) ;
351352 }
@@ -373,9 +374,9 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
373374 }
374375 if ( ! isBlazor ( ) || ( isBlazor ( ) && ! this . isServerRendered && this . getModuleName ( ) !== 'progress-btn' ) ) {
375376 if ( this . enableHtmlSanitizer ) {
376- newProp . content = SanitizeHtmlHelper . sanitize ( newProp . content ) ;
377+ newProp . content = SanitizeHtmlHelper . sanitize ( newProp . content as string ) ;
377378 }
378- this . element . innerHTML = newProp . content ;
379+ this . element . innerHTML = newProp . content as string ;
379380 this . setIconCss ( ) ;
380381 }
381382 break ;
0 commit comments