Update the license headers throughout the repository to reference Google LLC rather than Google Inc, for the required license headers. PR Close #37205
93 lines
2.4 KiB
TypeScript
93 lines
2.4 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {ApplicationRef, NgModuleRef} from '@angular/core';
|
|
|
|
import {bindAction} from '../../util';
|
|
|
|
import {JsWebFrameworksComponent, JsWebFrameworksModule, RowData} from './rows';
|
|
|
|
|
|
function _random(max: number) {
|
|
return Math.round(Math.random() * 1000) % max;
|
|
}
|
|
|
|
function buildData(count: number): Array<RowData> {
|
|
const data: Array<RowData> = [];
|
|
for (let i = 0; i < count; i++) {
|
|
data.push({
|
|
id: i,
|
|
label: ADJECTIVES[_random(ADJECTIVES.length)] + ' ' + COLOURS[_random(COLOURS.length)] + ' ' +
|
|
NOUNS[_random(NOUNS.length)]
|
|
});
|
|
}
|
|
return data;
|
|
}
|
|
|
|
const ADJECTIVES = [
|
|
'pretty', 'large', 'big', 'small', 'tall', 'short', 'long',
|
|
'handsome', 'plain', 'quaint', 'clean', 'elegant', 'easy', 'angry',
|
|
'crazy', 'helpful', 'mushy', 'odd', 'unsightly', 'adorable', 'important',
|
|
'inexpensive', 'cheap', 'expensive', 'fancy'
|
|
];
|
|
const COLOURS = [
|
|
'red', 'yellow', 'blue', 'green', 'pink', 'brown', 'purple', 'brown', 'white', 'black', 'orange'
|
|
];
|
|
const NOUNS = [
|
|
'table', 'chair', 'house', 'bbq', 'desk', 'car', 'pony', 'cookie', 'sandwich', 'burger', 'pizza',
|
|
'mouse', 'keyboard'
|
|
];
|
|
|
|
export function init(moduleRef: NgModuleRef<JsWebFrameworksModule>) {
|
|
let component: JsWebFrameworksComponent;
|
|
let appRef: ApplicationRef;
|
|
|
|
function create1K() {
|
|
component.data = buildData(1 * 1000);
|
|
appRef.tick();
|
|
}
|
|
|
|
function create10K() {
|
|
component.data = buildData(10 * 1000);
|
|
appRef.tick();
|
|
}
|
|
|
|
function deleteAll() {
|
|
component.data = [];
|
|
appRef.tick();
|
|
}
|
|
|
|
function update() {
|
|
for (let i = 0; i < component.data.length; i += 10) {
|
|
component.data[i].label += ' !!!';
|
|
}
|
|
appRef.tick();
|
|
}
|
|
|
|
function swapRows() {
|
|
const data = component.data;
|
|
if (data.length > 998) {
|
|
const a = data[1];
|
|
data[1] = data[998];
|
|
data[998] = a;
|
|
}
|
|
appRef.tick();
|
|
}
|
|
|
|
const injector = moduleRef.injector;
|
|
appRef = injector.get(ApplicationRef);
|
|
|
|
component = appRef.components[0].instance;
|
|
|
|
bindAction('#create1KRows', create1K);
|
|
bindAction('#create10KRows', create10K);
|
|
bindAction('#deleteAll', deleteAll);
|
|
bindAction('#update', update);
|
|
bindAction('#swap', swapRows);
|
|
}
|