fix(benchmarks): use sanitized style values (#12943)
This commit is contained in:

committed by
Chuck Jazdzewski

parent
09226d96f8
commit
33a79028be
@ -7,15 +7,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import {Component, Input, NgModule} from '@angular/core';
|
import {Component, Input, NgModule} from '@angular/core';
|
||||||
import {BrowserModule} from '@angular/platform-browser';
|
import {BrowserModule, DomSanitizer, SafeStyle} from '@angular/platform-browser';
|
||||||
|
|
||||||
import {TableCell, emptyTable} from '../util';
|
import {TableCell, emptyTable} from '../util';
|
||||||
|
|
||||||
|
let trustedEmptyColor: SafeStyle;
|
||||||
|
let trustedGreyColor: SafeStyle;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'largetable',
|
selector: 'largetable',
|
||||||
template: `<table><tbody>
|
template: `<table><tbody>
|
||||||
<tr *ngFor="let row of data; trackBy: trackByIndex">
|
<tr *ngFor="let row of data; trackBy: trackByIndex">
|
||||||
<td *ngFor="let cell of row; trackBy: trackByIndex" [style.backgroundColor]="cell.row % 2 ? '' : 'grey'">
|
<td *ngFor="let cell of row; trackBy: trackByIndex" [style.backgroundColor]="getColor(cell.row)">
|
||||||
{{cell.value}}
|
{{cell.value}}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -26,8 +29,14 @@ export class TableComponent {
|
|||||||
data: TableCell[][] = emptyTable;
|
data: TableCell[][] = emptyTable;
|
||||||
|
|
||||||
trackByIndex(index: number, item: any) { return index; }
|
trackByIndex(index: number, item: any) { return index; }
|
||||||
|
|
||||||
|
getColor(row: number) { return row % 2 ? trustedEmptyColor : trustedGreyColor; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@NgModule({imports: [BrowserModule], bootstrap: [TableComponent], declarations: [TableComponent]})
|
@NgModule({imports: [BrowserModule], bootstrap: [TableComponent], declarations: [TableComponent]})
|
||||||
export class AppModule {
|
export class AppModule {
|
||||||
|
constructor(sanitizer: DomSanitizer) {
|
||||||
|
trustedEmptyColor = sanitizer.bypassSecurityTrustStyle('');
|
||||||
|
trustedGreyColor = sanitizer.bypassSecurityTrustStyle('grey');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,20 +7,28 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import {Component, NgModule} from '@angular/core';
|
import {Component, NgModule} from '@angular/core';
|
||||||
import {BrowserModule} from '@angular/platform-browser';
|
import {BrowserModule, DomSanitizer, SafeStyle} from '@angular/platform-browser';
|
||||||
|
|
||||||
import {TreeNode, emptyTree} from '../util';
|
import {TreeNode, emptyTree} from '../util';
|
||||||
|
|
||||||
|
let trustedEmptyColor: SafeStyle;
|
||||||
|
let trustedGreyColor: SafeStyle;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'tree',
|
selector: 'tree',
|
||||||
inputs: ['data'],
|
inputs: ['data'],
|
||||||
template:
|
template:
|
||||||
`<span [style.backgroundColor]="data.depth % 2 ? '' : 'grey'"> {{data.value}} </span><tree *ngIf='data.right != null' [data]='data.right'></tree><tree *ngIf='data.left != null' [data]='data.left'></tree>`
|
`<span [style.backgroundColor]="bgColor"> {{data.value}} </span><tree *ngIf='data.right != null' [data]='data.right'></tree><tree *ngIf='data.left != null' [data]='data.left'></tree>`
|
||||||
})
|
})
|
||||||
export class TreeComponent {
|
export class TreeComponent {
|
||||||
data: TreeNode = emptyTree;
|
data: TreeNode = emptyTree;
|
||||||
|
get bgColor() { return this.data.depth % 2 ? trustedEmptyColor : trustedGreyColor; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@NgModule({imports: [BrowserModule], bootstrap: [TreeComponent], declarations: [TreeComponent]})
|
@NgModule({imports: [BrowserModule], bootstrap: [TreeComponent], declarations: [TreeComponent]})
|
||||||
export class AppModule {
|
export class AppModule {
|
||||||
|
constructor(sanitizer: DomSanitizer) {
|
||||||
|
trustedEmptyColor = sanitizer.bypassSecurityTrustStyle('');
|
||||||
|
trustedGreyColor = sanitizer.bypassSecurityTrustStyle('grey');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,16 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import {Component, Input, NgModule} from '@angular/core';
|
import {Component, Input, NgModule} from '@angular/core';
|
||||||
import {BrowserModule} from '@angular/platform-browser';
|
import {BrowserModule, DomSanitizer, SafeStyle} from '@angular/platform-browser';
|
||||||
|
|
||||||
import {TreeNode, emptyTree, maxDepth} from '../util';
|
import {TreeNode, emptyTree, maxDepth} from '../util';
|
||||||
|
|
||||||
|
let trustedEmptyColor: SafeStyle;
|
||||||
|
let trustedGreyColor: SafeStyle;
|
||||||
|
|
||||||
function createTreeComponent(level: number, isLeaf: boolean) {
|
function createTreeComponent(level: number, isLeaf: boolean) {
|
||||||
const nextTreeEl = `tree${level+1}`;
|
const nextTreeEl = `tree${level+1}`;
|
||||||
let template =
|
let template = `<span [style.backgroundColor]="bgColor"> {{data.value}} </span>`;
|
||||||
`<span [style.backgroundColor]="data.depth % 2 ? '' : 'grey'"> {{data.value}} </span>`;
|
|
||||||
if (!isLeaf) {
|
if (!isLeaf) {
|
||||||
template +=
|
template +=
|
||||||
`<${nextTreeEl} [data]='data.right'></${nextTreeEl}><${nextTreeEl} [data]='data.left'></${nextTreeEl}>`;
|
`<${nextTreeEl} [data]='data.right'></${nextTreeEl}><${nextTreeEl} [data]='data.left'></${nextTreeEl}>`;
|
||||||
@ -24,6 +26,7 @@ function createTreeComponent(level: number, isLeaf: boolean) {
|
|||||||
class TreeComponent {
|
class TreeComponent {
|
||||||
@Input()
|
@Input()
|
||||||
data: TreeNode;
|
data: TreeNode;
|
||||||
|
get bgColor() { return this.data.depth % 2 ? trustedEmptyColor : trustedGreyColor; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return TreeComponent;
|
return TreeComponent;
|
||||||
@ -43,6 +46,10 @@ function createModule(): any {
|
|||||||
|
|
||||||
@NgModule({imports: [BrowserModule], bootstrap: [RootTreeComponent], declarations: [components]})
|
@NgModule({imports: [BrowserModule], bootstrap: [RootTreeComponent], declarations: [components]})
|
||||||
class AppModule {
|
class AppModule {
|
||||||
|
constructor(sanitizer: DomSanitizer) {
|
||||||
|
trustedEmptyColor = sanitizer.bypassSecurityTrustStyle('');
|
||||||
|
trustedGreyColor = sanitizer.bypassSecurityTrustStyle('grey');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return AppModule;
|
return AppModule;
|
||||||
|
Reference in New Issue
Block a user