diff --git a/angular.json b/angular.json index 421bc145a56..fcc527e239e 100644 --- a/angular.json +++ b/angular.json @@ -478,6 +478,97 @@ } } } + }, + "igniteui-angular-performance": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "projects/igniteui-angular-performance", + "sourceRoot": "projects/igniteui-angular-performance/src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular/build:application", + "options": { + "browser": "projects/igniteui-angular-performance/src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "projects/igniteui-angular-performance/tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "projects/igniteui-angular-performance/src/assets" + ], + "styles": [ + "projects/igniteui-angular-performance/src/styles.scss" + ], + "stylePreprocessorOptions": { + "includePaths": ["node_modules"] + } + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "4kB", + "maximumError": "8kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular/build:dev-server", + "configurations": { + "production": { + "buildTarget": "igniteui-angular-performance:build:production" + }, + "development": { + "buildTarget": "igniteui-angular-performance:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular/build:extract-i18n" + }, + "test": { + "builder": "@angular/build:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "projects/igniteui-angular-performance/tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "projects/igniteui-angular-performance/public" + } + ], + "styles": [ + "projects/igniteui-angular-performance/src/styles.scss" + ] + } + } + } } }, "cli": { diff --git a/package.json b/package.json index e541d980def..d192aa39dfb 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "ng": "ng", "start": "ng serve --open --hmr", "start:elements": "ng serve --project igniteui-angular-elements", + "start:performance": "ng serve --project igniteui-angular-performance", "build": "ng build --configuration production", "test": "ng test igniteui-angular", "lint": "ng lint", diff --git a/projects/igniteui-angular-performance/public/favicon.ico b/projects/igniteui-angular-performance/public/favicon.ico new file mode 100644 index 00000000000..57614f9c967 Binary files /dev/null and b/projects/igniteui-angular-performance/public/favicon.ico differ diff --git a/projects/igniteui-angular-performance/src/app/app.component.html b/projects/igniteui-angular-performance/src/app/app.component.html new file mode 100644 index 00000000000..8ca8b694e34 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/app.component.html @@ -0,0 +1,10 @@ +
+
+ @for (route of routes; track $index) { + + } +
+ +
diff --git a/projects/igniteui-angular-performance/src/app/app.component.scss b/projects/igniteui-angular-performance/src/app/app.component.scss new file mode 100644 index 00000000000..888a906b67e --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/app.component.scss @@ -0,0 +1,18 @@ +:host { + width: 100%; + height: 100%; + display: flex; +} + +.wrapper { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; +} + +.routes { + padding: 1rem; + display: flex; + gap: 1rem; +} diff --git a/projects/igniteui-angular-performance/src/app/app.component.spec.ts b/projects/igniteui-angular-performance/src/app/app.component.spec.ts new file mode 100644 index 00000000000..c7baa22fc4d --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/app.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + let component: AppComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AppComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/igniteui-angular-performance/src/app/app.component.ts b/projects/igniteui-angular-performance/src/app/app.component.ts new file mode 100644 index 00000000000..109d49db6d3 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/app.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import { RouterLink, RouterOutlet, Routes } from '@angular/router'; +import { IgxButtonDirective } from 'igniteui-angular'; +import { routes } from './app.routes'; + +@Component({ + selector: 'app-root', + imports: [RouterOutlet, IgxButtonDirective, RouterLink], + templateUrl: './app.component.html', + styleUrl: './app.component.scss' +}) +export class AppComponent { + protected routes: Routes = routes; +} diff --git a/projects/igniteui-angular-performance/src/app/app.config.ts b/projects/igniteui-angular-performance/src/app/app.config.ts new file mode 100644 index 00000000000..68c90364260 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/app.config.ts @@ -0,0 +1,14 @@ +import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core'; +import { provideRouter } from '@angular/router'; +import { provideAnimations } from '@angular/platform-browser/animations'; + +import { routes } from './app.routes'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideBrowserGlobalErrorListeners(), + provideZoneChangeDetection({ eventCoalescing: true }), + provideRouter(routes), + provideAnimations() + ] +}; diff --git a/projects/igniteui-angular-performance/src/app/app.routes.ts b/projects/igniteui-angular-performance/src/app/app.routes.ts new file mode 100644 index 00000000000..f954675b9e4 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/app.routes.ts @@ -0,0 +1,44 @@ +import { Routes } from '@angular/router'; +import { GridComponent } from './grid/grid.component'; +import { TreeGridComponent } from './tree-grid/tree-grid.component'; + +export const routes: Routes = [ + { + path: "tree-grid-1m", + title: "Tree Grid 1M records", + component: TreeGridComponent, + data: { rows: 1_000_000 } + }, + { + path: "tree-grid-100k", + title: "Tree Grid 100k records", + component: TreeGridComponent, + data: { rows: 100_000 } + }, + { + path: "tree-grid", + title: "Tree Grid 1k records", + component: TreeGridComponent, + data: { rows: 1000 } + }, + { + path: "grid-1m", + title: "Grid 1M records", + component: GridComponent, + data: { rows: 1_000_000 } + }, + { + path: "grid-100k", + title: "Grid 100k records", + component: GridComponent, + data: { rows: 100_000 } + }, + { + path: "", + title: "Grid 1k records", + pathMatch: 'full', + component: GridComponent, + data: { rows: 1000 } + } + +]; diff --git a/projects/igniteui-angular-performance/src/app/data/athletesData.ts b/projects/igniteui-angular-performance/src/app/data/athletesData.ts new file mode 100644 index 00000000000..f16f6c3f103 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/data/athletesData.ts @@ -0,0 +1,2037 @@ +/* eslint-disable */ +export const DATA = [{ + "Id": 84, + "Avatar": "assets/images/men/12.jpg", + "Position": "current", + "Name": "Abel Brun", + "AthleteNumber": 39315, + "NetWorth": 105, + "TopSpeed": 5.1, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/af.png", + "CountryName": "Afghanistan" +}, { + "Id": 65, + "Avatar": "assets/images/women/60.jpg", + "Position": "down", + "Name": "Keira Walker", + "AthleteNumber": 34116, + "NetWorth": 94, + "TopSpeed": 4.8, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/al.png", + "CountryName": "Albania" +}, { + "Id": 197, + "Avatar": "assets/images/men/93.jpg", + "Position": "current", + "Name": "Brent Lord", + "AthleteNumber": 20943, + "NetWorth": 92, + "TopSpeed": 4.8, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/dz.png", + "CountryName": "Algeria" +}, { + "Id": 66, + "Avatar": "assets/images/men/70.jpg", + "Position": "down", + "Name": "Moritz Braun", + "AthleteNumber": 48081, + "NetWorth": 107, + "TopSpeed": 6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ad.png", + "CountryName": "Andorra" +}, { + "Id": 58, + "Avatar": "assets/images/women/60.jpg", + "Position": "down", + "Name": "Zaina Pomp", + "AthleteNumber": 14109, + "NetWorth": 90, + "TopSpeed": 5.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ao.png", + "CountryName": "Angola" +}, { + "Id": 40, + "Avatar": "assets/images/men/33.jpg", + "Position": "down", + "Name": "Alberto Clark", + "AthleteNumber": 29912, + "NetWorth": 93, + "TopSpeed": 4.6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ag.png", + "CountryName": "Antigua and Barbuda" +}, { + "Id": 138, + "Avatar": "assets/images/men/38.jpg", + "Position": "current", + "Name": "Derrick Price", + "AthleteNumber": 19792, + "NetWorth": 94, + "TopSpeed": 5.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ar.png", + "CountryName": "Argentina" +}, { + "Id": 6, + "Avatar": "assets/images/women/26.jpg", + "Position": "up", + "Name": "Mira Campos", + "AthleteNumber": 39222, + "NetWorth": 95, + "TopSpeed": 5.9, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/am.png", + "CountryName": "Armenia" +}, { + "Id": 190, + "Avatar": "assets/images/women/44.jpg", + "Position": "current", + "Name": "Kiara Dubois", + "AthleteNumber": 49964, + "NetWorth": 97, + "TopSpeed": 5.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/au.png", + "CountryName": "Australia" +}, { + "Id": 168, + "Avatar": "assets/images/men/10.jpg", + "Position": "current", + "Name": "Calvin Hunt", + "AthleteNumber": 35535, + "NetWorth": 94, + "TopSpeed": 4.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/at.png", + "CountryName": "Austria" +}, { + "Id": 105, + "Avatar": "assets/images/men/5.jpg", + "Position": "down", + "Name": "Samu Hokkanen", + "AthleteNumber": 22469, + "NetWorth": 106, + "TopSpeed": 5.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/az.png", + "CountryName": "Azerbaijan" +}, { + "Id": 33, + "Avatar": "assets/images/men/18.jpg", + "Position": "up", + "Name": "Zackary Roy", + "AthleteNumber": 45996, + "NetWorth": 92, + "TopSpeed": 4.9, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/bs.png", + "CountryName": "Bahamas" +}, { + "Id": 83, + "Avatar": "assets/images/men/10.jpg", + "Position": "current", + "Name": "سینا مرادی", + "AthleteNumber": 10809, + "NetWorth": 105, + "TopSpeed": 5.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/bh.png", + "CountryName": "Bahrain" +}, { + "Id": 121, + "Avatar": "assets/images/men/45.jpg", + "Position": "current", + "Name": "Maurice Lambert", + "AthleteNumber": 17443, + "NetWorth": 96, + "TopSpeed": 5.6, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/bd.png", + "CountryName": "Bangladesh" +}, { + "Id": 111, + "Avatar": "assets/images/men/23.jpg", + "Position": "up", + "Name": "Connor Green", + "AthleteNumber": 44716, + "NetWorth": 95, + "TopSpeed": 4.4, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/bb.png", + "CountryName": "Barbados" +}, { + "Id": 75, + "Avatar": "assets/images/women/69.jpg", + "Position": "current", + "Name": "Ellen Leppo", + "AthleteNumber": 29286, + "NetWorth": 97, + "TopSpeed": 5.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/by.png", + "CountryName": "Belarus" +}, { + "Id": 68, + "Avatar": "assets/images/men/23.jpg", + "Position": "up", + "Name": "Sandro Carpentier", + "AthleteNumber": 23503, + "NetWorth": 96, + "TopSpeed": 5.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/be.png", + "CountryName": "Belgium" +}, { + "Id": 150, + "Avatar": "assets/images/men/52.jpg", + "Position": "up", + "Name": "Gustav Petersen", + "AthleteNumber": 20984, + "NetWorth": 107, + "TopSpeed": 4.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/bz.png", + "CountryName": "Belize" +}, { + "Id": 142, + "Avatar": "assets/images/women/63.jpg", + "Position": "current", + "Name": "Nicoline Thomsen", + "AthleteNumber": 36778, + "NetWorth": 99, + "TopSpeed": 5.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/bj.png", + "CountryName": "Benin" +}, { + "Id": 19, + "Avatar": "assets/images/women/6.jpg", + "Position": "current", + "Name": "Sedef Tunçeri", + "AthleteNumber": 48164, + "NetWorth": 108, + "TopSpeed": 5.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/bt.png", + "CountryName": "Bhutan" +}, { + "Id": 202, + "Avatar": "assets/images/women/92.jpg", + "Position": "down", + "Name": "Ilona Salonen", + "AthleteNumber": 27068, + "NetWorth": 91, + "TopSpeed": 5.4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/bo.png", + "CountryName": "Bolivia" +}, { + "Id": 191, + "Avatar": "assets/images/women/72.jpg", + "Position": "up", + "Name": "Clarisse Rey", + "AthleteNumber": 29795, + "NetWorth": 98, + "TopSpeed": 4.9, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ba.png", + "CountryName": "Bosnia and Herzegovina" +}, { + "Id": 71, + "Avatar": "assets/images/men/74.jpg", + "Position": "down", + "Name": "Jimmie Mcguinness", + "AthleteNumber": 20729, + "NetWorth": 90, + "TopSpeed": 4.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/bw.png", + "CountryName": "Botswana" +}, { + "Id": 82, + "Avatar": "assets/images/men/55.jpg", + "Position": "current", + "Name": "Johann Fischer", + "AthleteNumber": 37212, + "NetWorth": 98, + "TopSpeed": 5.8, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/br.png", + "CountryName": "Brazil" +}, { + "Id": 121, + "Avatar": "assets/images/men/31.jpg", + "Position": "down", + "Name": "Ivan Ivanov", + "AthleteNumber": 11054, + "NetWorth": 108, + "TopSpeed": 5.7, + "TrackProgress": 5, + "CountryFlag": "assets/images/flags/bg.png", + "CountryName": "Bulgaria" +}, { + "Id": 144, + "Avatar": "assets/images/women/57.jpg", + "Position": "down", + "Name": "Milja Leino", + "AthleteNumber": 33563, + "NetWorth": 110, + "TopSpeed": 4.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/bf.png", + "CountryName": "Burkina Faso" +}, { + "Id": 71, + "Avatar": "assets/images/men/81.jpg", + "Position": "down", + "Name": "آراد جعفری", + "AthleteNumber": 34962, + "NetWorth": 90, + "TopSpeed": 4.8, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/bi.png", + "CountryName": "Burundi" +}, { + "Id": 163, + "Avatar": "assets/images/women/21.jpg", + "Position": "up", + "Name": "Pippa Roberts", + "AthleteNumber": 15588, + "NetWorth": 105, + "TopSpeed": 4.1, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/kh.png", + "CountryName": "Cambodia" +}, { + "Id": 122, + "Avatar": "assets/images/men/57.jpg", + "Position": "down", + "Name": "Jack Jean-baptiste", + "AthleteNumber": 40427, + "NetWorth": 110, + "TopSpeed": 4.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/cm.png", + "CountryName": "Cameroon" +}, { + "Id": 199, + "Avatar": "assets/images/women/68.jpg", + "Position": "up", + "Name": "Lucie Dumont", + "AthleteNumber": 12104, + "NetWorth": 108, + "TopSpeed": 4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ca.png", + "CountryName": "Canada" +}, { + "Id": 136, + "Avatar": "assets/images/women/10.jpg", + "Position": "down", + "Name": "Elaine Matthews", + "AthleteNumber": 38574, + "NetWorth": 110, + "TopSpeed": 5.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/cv.png", + "CountryName": "Cape Verde" +}, { + "Id": 70, + "Avatar": "assets/images/women/14.jpg", + "Position": "up", + "Name": "Emily Olsen", + "AthleteNumber": 13887, + "NetWorth": 110, + "TopSpeed": 4.8, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/cf.png", + "CountryName": "Central African Republic" +}, { + "Id": 21, + "Avatar": "assets/images/men/73.jpg", + "Position": "down", + "Name": "Kuzey Aclan", + "AthleteNumber": 18583, + "NetWorth": 102, + "TopSpeed": 5.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/td.png", + "CountryName": "Chad" +}, { + "Id": 86, + "Avatar": "assets/images/women/82.jpg", + "Position": "current", + "Name": "Eloida Novaes", + "AthleteNumber": 30751, + "NetWorth": 107, + "TopSpeed": 4.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/cl.png", + "CountryName": "Chile" +}, { + "Id": 130, + "Avatar": "assets/images/women/24.jpg", + "Position": "down", + "Name": "آوا احمدی", + "AthleteNumber": 44347, + "NetWorth": 110, + "TopSpeed": 4.1, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/cn.png", + "CountryName": "China" +}, { + "Id": 127, + "Avatar": "assets/images/men/52.jpg", + "Position": "down", + "Name": "Gerardo Soto", + "AthleteNumber": 22958, + "NetWorth": 90, + "TopSpeed": 5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/co.png", + "CountryName": "Colombia" +}, { + "Id": 125, + "Avatar": "assets/images/women/16.jpg", + "Position": "current", + "Name": "Altiva Alves", + "AthleteNumber": 31850, + "NetWorth": 106, + "TopSpeed": 5.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/km.png", + "CountryName": "Comoros" +}, { + "Id": 38, + "Avatar": "assets/images/women/17.jpg", + "Position": "current", + "Name": "Charlotte Meyer", + "AthleteNumber": 21442, + "NetWorth": 110, + "TopSpeed": 4.6, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ck.png", + "CountryName": "Cook Islands" +}, { + "Id": 186, + "Avatar": "assets/images/men/42.jpg", + "Position": "up", + "Name": "Jimmy Bailey", + "AthleteNumber": 38510, + "NetWorth": 101, + "TopSpeed": 4.7, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/cr.png", + "CountryName": "Costa Rica" +}, { + "Id": 108, + "Avatar": "assets/images/men/31.jpg", + "Position": "up", + "Name": "Noah Bergeron", + "AthleteNumber": 35139, + "NetWorth": 110, + "TopSpeed": 5.6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ci.png", + "CountryName": "Cote DIvoire" +}, { + "Id": 176, + "Avatar": "assets/images/men/35.jpg", + "Position": "down", + "Name": "Laudelino Castro", + "AthleteNumber": 12711, + "NetWorth": 106, + "TopSpeed": 4.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/hr.png", + "CountryName": "Croatia" +}, { + "Id": 138, + "Avatar": "assets/images/men/78.jpg", + "Position": "current", + "Name": "Oscar Calvo", + "AthleteNumber": 45078, + "NetWorth": 109, + "TopSpeed": 4.3, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/cu.png", + "CountryName": "Cuba" +}, { + "Id": 137, + "Avatar": "assets/images/men/80.jpg", + "Position": "down", + "Name": "Lance Dunn", + "AthleteNumber": 10113, + "NetWorth": 94, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/cy.png", + "CountryName": "Cyprus" +}, { + "Id": 173, + "Avatar": "assets/images/women/18.jpg", + "Position": "current", + "Name": "Hassana Camp", + "AthleteNumber": 14467, + "NetWorth": 104, + "TopSpeed": 5.2, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/cz.png", + "CountryName": "Czech Republic" +}, { + "Id": 46, + "Avatar": "assets/images/women/55.jpg", + "Position": "current", + "Name": "Ronja Kraft", + "AthleteNumber": 21800, + "NetWorth": 101, + "TopSpeed": 5.3, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/dk.png", + "CountryName": "Denmark" +}, { + "Id": 8, + "Avatar": "assets/images/men/14.jpg", + "Position": "up", + "Name": "Hans Möller", + "AthleteNumber": 34122, + "NetWorth": 109, + "TopSpeed": 5.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/dj.png", + "CountryName": "Djibouti" +}, { + "Id": 188, + "Avatar": "assets/images/women/45.jpg", + "Position": "down", + "Name": "Ceylan Duygulu", + "AthleteNumber": 21527, + "NetWorth": 99, + "TopSpeed": 4.9, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/dm.png", + "CountryName": "Dominica" +}, { + "Id": 134, + "Avatar": "assets/images/women/66.jpg", + "Position": "down", + "Name": "Anni Waisanen", + "AthleteNumber": 32133, + "NetWorth": 99, + "TopSpeed": 5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/do.png", + "CountryName": "Dominican Republic" +}, { + "Id": 112, + "Avatar": "assets/images/women/53.jpg", + "Position": "down", + "Name": "Karen Shaw", + "AthleteNumber": 31048, + "NetWorth": 107, + "TopSpeed": 5.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ec.png", + "CountryName": "Ecuador" +}, { + "Id": 161, + "Avatar": "assets/images/men/38.jpg", + "Position": "current", + "Name": "Alex Martin", + "AthleteNumber": 27887, + "NetWorth": 96, + "TopSpeed": 4.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/eg.png", + "CountryName": "Egypt" +}, { + "Id": 196, + "Avatar": "assets/images/women/30.jpg", + "Position": "up", + "Name": "Begüm Erkekli", + "AthleteNumber": 37888, + "NetWorth": 104, + "TopSpeed": 4.6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/sv.png", + "CountryName": "El Salvador" +}, { + "Id": 24, + "Avatar": "assets/images/men/0.jpg", + "Position": "down", + "Name": "Joan Ortega", + "AthleteNumber": 49478, + "NetWorth": 103, + "TopSpeed": 5.4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/gq.png", + "CountryName": "Equatorial Guinea" +}, { + "Id": 174, + "Avatar": "assets/images/women/29.jpg", + "Position": "current", + "Name": "Beatriz Gallardo", + "AthleteNumber": 38538, + "NetWorth": 101, + "TopSpeed": 6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/er.png", + "CountryName": "Eritrea" +}, { + "Id": 193, + "Avatar": "assets/images/women/59.jpg", + "Position": "down", + "Name": "Sophia Carlson", + "AthleteNumber": 44183, + "NetWorth": 102, + "TopSpeed": 5.1, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ee.png", + "CountryName": "Estonia" +}, { + "Id": 85, + "Avatar": "assets/images/men/43.jpg", + "Position": "down", + "Name": "Niilo Laurila", + "AthleteNumber": 49215, + "NetWorth": 104, + "TopSpeed": 4.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/et.png", + "CountryName": "Ethiopia" +}, { + "Id": 201, + "Avatar": "assets/images/men/92.jpg", + "Position": "up", + "Name": "Kaya Tekand", + "AthleteNumber": 11028, + "NetWorth": 93, + "TopSpeed": 5.2, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/fj.png", + "CountryName": "Fiji" +}, { + "Id": 123, + "Avatar": "assets/images/men/31.jpg", + "Position": "current", + "Name": "Eeli Makinen", + "AthleteNumber": 45296, + "NetWorth": 106, + "TopSpeed": 5.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/fi.png", + "CountryName": "Finland" +}, { + "Id": 16, + "Avatar": "assets/images/men/72.jpg", + "Position": "down", + "Name": "Felix Olsen", + "AthleteNumber": 43198, + "NetWorth": 101, + "TopSpeed": 4.2, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/fr.png", + "CountryName": "France" +}, { + "Id": 62, + "Avatar": "assets/images/men/43.jpg", + "Position": "current", + "Name": "Roman Smith", + "AthleteNumber": 15531, + "NetWorth": 106, + "TopSpeed": 4.9, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ga.png", + "CountryName": "Gabon" +}, { + "Id": 69, + "Avatar": "assets/images/men/17.jpg", + "Position": "current", + "Name": "Emil Meißner", + "AthleteNumber": 37183, + "NetWorth": 97, + "TopSpeed": 4, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/gm.png", + "CountryName": "Gambia" +}, { + "Id": 182, + "Avatar": "assets/images/men/94.jpg", + "Position": "current", + "Name": "Gerald Schmidt", + "AthleteNumber": 47410, + "NetWorth": 102, + "TopSpeed": 5.8, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ge.png", + "CountryName": "Georgia" +}, { + "Id": 190, + "Avatar": "assets/images/women/53.jpg", + "Position": "current", + "Name": "Gladys Van Der Steeg", + "AthleteNumber": 20216, + "NetWorth": 94, + "TopSpeed": 4.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/de.png", + "CountryName": "Germany" +}, { + "Id": 100, + "Avatar": "assets/images/women/20.jpg", + "Position": "current", + "Name": "Alexis Walker", + "AthleteNumber": 43183, + "NetWorth": 103, + "TopSpeed": 5.8, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/gh.png", + "CountryName": "Ghana" +}, { + "Id": 85, + "Avatar": "assets/images/men/34.jpg", + "Position": "current", + "Name": "Jeffrey Medina", + "AthleteNumber": 42905, + "NetWorth": 100, + "TopSpeed": 5.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/gr.png", + "CountryName": "Greece" +}, { + "Id": 169, + "Avatar": "assets/images/men/21.jpg", + "Position": "down", + "Name": "Julian Barth", + "AthleteNumber": 19011, + "NetWorth": 91, + "TopSpeed": 5.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/gd.png", + "CountryName": "Grenada" +}, { + "Id": 116, + "Avatar": "assets/images/women/1.jpg", + "Position": "down", + "Name": "Sevcan Kollen", + "AthleteNumber": 13728, + "NetWorth": 104, + "TopSpeed": 5.3, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/gt.png", + "CountryName": "Guatemala" +}, { + "Id": 75, + "Avatar": "assets/images/men/88.jpg", + "Position": "down", + "Name": "Rafael Gutierrez", + "AthleteNumber": 38804, + "NetWorth": 100, + "TopSpeed": 5.9, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/gn.png", + "CountryName": "Guinea" +}, { + "Id": 121, + "Avatar": "assets/images/men/48.jpg", + "Position": "current", + "Name": "Väinö Salmi", + "AthleteNumber": 29839, + "NetWorth": 107, + "TopSpeed": 5.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/gw.png", + "CountryName": "Guinea-Bissau" +}, { + "Id": 180, + "Avatar": "assets/images/women/90.jpg", + "Position": "up", + "Name": "Lillian Bowman", + "AthleteNumber": 35323, + "NetWorth": 103, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/gy.png", + "CountryName": "Guyana" +}, { + "Id": 139, + "Avatar": "assets/images/women/28.jpg", + "Position": "current", + "Name": "Annabell Barth", + "AthleteNumber": 41130, + "NetWorth": 103, + "TopSpeed": 5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ht.png", + "CountryName": "Haiti" +}, { + "Id": 4, + "Avatar": "assets/images/men/34.jpg", + "Position": "down", + "Name": "Mathys Martin", + "AthleteNumber": 32928, + "NetWorth": 98, + "TopSpeed": 5.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/va.png", + "CountryName": "Holy See (Vatican City State)" +}, { + "Id": 1, + "Avatar": "assets/images/men/65.jpg", + "Position": "down", + "Name": "Louis Stewart", + "AthleteNumber": 48131, + "NetWorth": 103, + "TopSpeed": 5.7, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/hn.png", + "CountryName": "Honduras" +}, { + "Id": 190, + "Avatar": "assets/images/women/2.jpg", + "Position": "current", + "Name": "Venla Korpela", + "AthleteNumber": 16454, + "NetWorth": 92, + "TopSpeed": 4.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/hu.png", + "CountryName": "Hungary" +}, { + "Id": 167, + "Avatar": "assets/images/men/81.jpg", + "Position": "down", + "Name": "Milo Charles", + "AthleteNumber": 10661, + "NetWorth": 99, + "TopSpeed": 5.4, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/is.png", + "CountryName": "Iceland" +}, { + "Id": 62, + "Avatar": "assets/images/men/9.jpg", + "Position": "current", + "Name": "Anthony Harcourt", + "AthleteNumber": 33649, + "NetWorth": 109, + "TopSpeed": 5.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/in.png", + "CountryName": "India" +}, { + "Id": 72, + "Avatar": "assets/images/men/31.jpg", + "Position": "up", + "Name": "Aaron Robertson", + "AthleteNumber": 30727, + "NetWorth": 95, + "TopSpeed": 4.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/id.png", + "CountryName": "Indonesia" +}, { + "Id": 2, + "Avatar": "assets/images/men/14.jpg", + "Position": "up", + "Name": "Bill Fox", + "AthleteNumber": 18511, + "NetWorth": 91, + "TopSpeed": 5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ir.png", + "CountryName": "Iran, Islamic Republic Of" +}, { + "Id": 58, + "Avatar": "assets/images/women/30.jpg", + "Position": "up", + "Name": "Veera Saari", + "AthleteNumber": 40408, + "NetWorth": 100, + "TopSpeed": 4.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/iq.png", + "CountryName": "Iraq" +}, { + "Id": 87, + "Avatar": "assets/images/men/35.jpg", + "Position": "current", + "Name": "Loïc Gerard", + "AthleteNumber": 31706, + "NetWorth": 102, + "TopSpeed": 4.4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ie.png", + "CountryName": "Ireland" +}, { + "Id": 137, + "Avatar": "assets/images/women/75.jpg", + "Position": "up", + "Name": "Gloria Caballero", + "AthleteNumber": 43379, + "NetWorth": 103, + "TopSpeed": 4.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/il.png", + "CountryName": "Israel" +}, { + "Id": 5, + "Avatar": "assets/images/women/38.jpg", + "Position": "current", + "Name": "Gianne Godijn", + "AthleteNumber": 45945, + "NetWorth": 96, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/it.png", + "CountryName": "Italy" +}, { + "Id": 196, + "Avatar": "assets/images/women/17.jpg", + "Position": "current", + "Name": "Parel Zuidhof", + "AthleteNumber": 32718, + "NetWorth": 105, + "TopSpeed": 5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/jm.png", + "CountryName": "Jamaica" +}, { + "Id": 23, + "Avatar": "assets/images/men/72.jpg", + "Position": "down", + "Name": "Gökhan Aşıkoğlu", + "AthleteNumber": 13890, + "NetWorth": 105, + "TopSpeed": 5.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/jp.png", + "CountryName": "Japan" +}, { + "Id": 74, + "Avatar": "assets/images/women/9.jpg", + "Position": "up", + "Name": "Minea Rantanen", + "AthleteNumber": 18835, + "NetWorth": 105, + "TopSpeed": 5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/jo.png", + "CountryName": "Jordan" +}, { + "Id": 92, + "Avatar": "assets/images/women/4.jpg", + "Position": "down", + "Name": "Asta Hansen", + "AthleteNumber": 17222, + "NetWorth": 101, + "TopSpeed": 4.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/kz.png", + "CountryName": "Kazakhstan" +}, { + "Id": 191, + "Avatar": "assets/images/women/13.jpg", + "Position": "up", + "Name": "Sheryl Collins", + "AthleteNumber": 36473, + "NetWorth": 98, + "TopSpeed": 4.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ke.png", + "CountryName": "Kenya" +}, { + "Id": 166, + "Avatar": "assets/images/women/74.jpg", + "Position": "current", + "Name": "Maria Parra", + "AthleteNumber": 39861, + "NetWorth": 106, + "TopSpeed": 6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ki.png", + "CountryName": "Kiribati" +}, { + "Id": 73, + "Avatar": "assets/images/women/33.jpg", + "Position": "up", + "Name": "Annabelle Besteman", + "AthleteNumber": 30560, + "NetWorth": 105, + "TopSpeed": 5.3, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/kp.png", + "CountryName": "Korea, Democratic PeopleS Republic of" +}, { + "Id": 182, + "Avatar": "assets/images/women/14.jpg", + "Position": "up", + "Name": "Ariena Achterberg", + "AthleteNumber": 41330, + "NetWorth": 92, + "TopSpeed": 5.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/kr.png", + "CountryName": "Korea, Republic of" +}, { + "Id": 67, + "Avatar": "assets/images/men/50.jpg", + "Position": "current", + "Name": "Villads Larsen", + "AthleteNumber": 44677, + "NetWorth": 93, + "TopSpeed": 5.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/kw.png", + "CountryName": "Kuwait" +}, { + "Id": 110, + "Avatar": "assets/images/women/26.jpg", + "Position": "down", + "Name": "Emilie Morin", + "AthleteNumber": 26164, + "NetWorth": 98, + "TopSpeed": 4.9, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/kg.png", + "CountryName": "Kyrgyzstan" +}, { + "Id": 31, + "Avatar": "assets/images/men/56.jpg", + "Position": "up", + "Name": "Judd Campbell", + "AthleteNumber": 37365, + "NetWorth": 110, + "TopSpeed": 5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/la.png", + "CountryName": "Lao PeopleS Democratic Republic" +}, { + "Id": 110, + "Avatar": "assets/images/women/13.jpg", + "Position": "current", + "Name": "Özsu Keçeci", + "AthleteNumber": 29403, + "NetWorth": 106, + "TopSpeed": 4.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/lv.png", + "CountryName": "Latvia" +}, { + "Id": 123, + "Avatar": "assets/images/women/12.jpg", + "Position": "up", + "Name": "آنیتا كامياران", + "AthleteNumber": 18980, + "NetWorth": 90, + "TopSpeed": 4.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/lb.png", + "CountryName": "Lebanon" +}, { + "Id": 138, + "Avatar": "assets/images/men/31.jpg", + "Position": "down", + "Name": "Antoine Mackay", + "AthleteNumber": 34547, + "NetWorth": 104, + "TopSpeed": 5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ls.png", + "CountryName": "Lesotho" +}, { + "Id": 167, + "Avatar": "assets/images/men/19.jpg", + "Position": "down", + "Name": "Louis Smith", + "AthleteNumber": 31837, + "NetWorth": 98, + "TopSpeed": 5.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/lr.png", + "CountryName": "Liberia" +}, { + "Id": 29, + "Avatar": "assets/images/men/29.jpg", + "Position": "current", + "Name": "Selmo Caldeira", + "AthleteNumber": 21837, + "NetWorth": 110, + "TopSpeed": 4.9, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ly.png", + "CountryName": "Libyan Arab Jamahiriya" +}, { + "Id": 35, + "Avatar": "assets/images/women/42.jpg", + "Position": "down", + "Name": "Elaine Smith", + "AthleteNumber": 38243, + "NetWorth": 108, + "TopSpeed": 4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/li.png", + "CountryName": "Liechtenstein" +}, { + "Id": 75, + "Avatar": "assets/images/men/2.jpg", + "Position": "up", + "Name": "Fritz Sommer", + "AthleteNumber": 26210, + "NetWorth": 99, + "TopSpeed": 4.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/lt.png", + "CountryName": "Lithuania" +}, { + "Id": 40, + "Avatar": "assets/images/men/5.jpg", + "Position": "down", + "Name": "Carter Evans", + "AthleteNumber": 46961, + "NetWorth": 100, + "TopSpeed": 5.3, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/lu.png", + "CountryName": "Luxembourg" +}, { + "Id": 183, + "Avatar": "assets/images/women/53.jpg", + "Position": "up", + "Name": "رونیکا سلطانی نژاد", + "AthleteNumber": 35233, + "NetWorth": 99, + "TopSpeed": 4.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/mk.png", + "CountryName": "Macedonia, The Former Yugoslav Republic of" +}, { + "Id": 151, + "Avatar": "assets/images/women/88.jpg", + "Position": "current", + "Name": "Charlotte Mills", + "AthleteNumber": 49829, + "NetWorth": 92, + "TopSpeed": 5.3, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/mg.png", + "CountryName": "Madagascar" +}, { + "Id": 107, + "Avatar": "assets/images/men/33.jpg", + "Position": "up", + "Name": "Pedro Marquez", + "AthleteNumber": 16169, + "NetWorth": 97, + "TopSpeed": 5.4, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/mw.png", + "CountryName": "Malawi" +}, { + "Id": 65, + "Avatar": "assets/images/women/9.jpg", + "Position": "down", + "Name": "Jenny Burke", + "AthleteNumber": 15266, + "NetWorth": 99, + "TopSpeed": 5.4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/my.png", + "CountryName": "Malaysia" +}, { + "Id": 155, + "Avatar": "assets/images/men/82.jpg", + "Position": "up", + "Name": "Justin Philippe", + "AthleteNumber": 12858, + "NetWorth": 104, + "TopSpeed": 5.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/mv.png", + "CountryName": "Maldives" +}, { + "Id": 165, + "Avatar": "assets/images/men/79.jpg", + "Position": "down", + "Name": "Mario Ellis", + "AthleteNumber": 18026, + "NetWorth": 99, + "TopSpeed": 5.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ml.png", + "CountryName": "Mali" +}, { + "Id": 107, + "Avatar": "assets/images/women/92.jpg", + "Position": "down", + "Name": "Megan Webb", + "AthleteNumber": 30713, + "NetWorth": 93, + "TopSpeed": 5.6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/mt.png", + "CountryName": "Malta" +}, { + "Id": 52, + "Avatar": "assets/images/men/94.jpg", + "Position": "down", + "Name": "Adérito Lopes", + "AthleteNumber": 21320, + "NetWorth": 91, + "TopSpeed": 5.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/mh.png", + "CountryName": "Marshall Islands" +}, { + "Id": 99, + "Avatar": "assets/images/men/89.jpg", + "Position": "down", + "Name": "Victor Lévesque", + "AthleteNumber": 48375, + "NetWorth": 110, + "TopSpeed": 5.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/mr.png", + "CountryName": "Mauritania" +}, { + "Id": 188, + "Avatar": "assets/images/men/81.jpg", + "Position": "down", + "Name": "آراد یاسمی", + "AthleteNumber": 34370, + "NetWorth": 99, + "TopSpeed": 5.9, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/mu.png", + "CountryName": "Mauritius" +}, { + "Id": 10, + "Avatar": "assets/images/women/13.jpg", + "Position": "down", + "Name": "Maeva Bergeron", + "AthleteNumber": 15655, + "NetWorth": 94, + "TopSpeed": 5.9, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/mx.png", + "CountryName": "Mexico" +}, { + "Id": 41, + "Avatar": "assets/images/men/20.jpg", + "Position": "up", + "Name": "Oskari Karjala", + "AthleteNumber": 31498, + "NetWorth": 90, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/fm.png", + "CountryName": "Micronesia, Federated States of" +}, { + "Id": 51, + "Avatar": "assets/images/men/74.jpg", + "Position": "up", + "Name": "Alex Meyer", + "AthleteNumber": 44390, + "NetWorth": 94, + "TopSpeed": 4.3, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/md.png", + "CountryName": "Moldova, Republic of" +}, { + "Id": 128, + "Avatar": "assets/images/women/52.jpg", + "Position": "up", + "Name": "Sophie Lewis", + "AthleteNumber": 46222, + "NetWorth": 106, + "TopSpeed": 4.4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/mc.png", + "CountryName": "Monaco" +}, { + "Id": 79, + "Avatar": "assets/images/women/39.jpg", + "Position": "current", + "Name": "Ashley Romero", + "AthleteNumber": 36611, + "NetWorth": 104, + "TopSpeed": 5.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/mn.png", + "CountryName": "Mongolia" +}, { + "Id": 124, + "Avatar": "assets/images/women/19.jpg", + "Position": "current", + "Name": "Marie Poulsen", + "AthleteNumber": 44113, + "NetWorth": 109, + "TopSpeed": 4.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ma.png", + "CountryName": "Morocco" +}, { + "Id": 42, + "Avatar": "assets/images/women/83.jpg", + "Position": "down", + "Name": "Caitlin Jackson", + "AthleteNumber": 45472, + "NetWorth": 101, + "TopSpeed": 4.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/mz.png", + "CountryName": "Mozambique" +}, { + "Id": 15, + "Avatar": "assets/images/women/79.jpg", + "Position": "down", + "Name": "Marilou Hubert", + "AthleteNumber": 43655, + "NetWorth": 104, + "TopSpeed": 4.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/mm.png", + "CountryName": "Myanmar" +}, { + "Id": 63, + "Avatar": "assets/images/women/9.jpg", + "Position": "up", + "Name": "Estelle Vincent", + "AthleteNumber": 41700, + "NetWorth": 99, + "TopSpeed": 5.7, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/na.png", + "CountryName": "Namibia" +}, { + "Id": 154, + "Avatar": "assets/images/women/54.jpg", + "Position": "down", + "Name": "Rhonda Simmmons", + "AthleteNumber": 37139, + "NetWorth": 96, + "TopSpeed": 5.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/nr.png", + "CountryName": "Nauru" +}, { + "Id": 191, + "Avatar": "assets/images/men/42.jpg", + "Position": "current", + "Name": "آرش احمدی", + "AthleteNumber": 36948, + "NetWorth": 90, + "TopSpeed": 4.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/np.png", + "CountryName": "Nepal" +}, { + "Id": 141, + "Avatar": "assets/images/men/15.jpg", + "Position": "current", + "Name": "Miro Korpela", + "AthleteNumber": 40544, + "NetWorth": 104, + "TopSpeed": 5.3, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/nl.png", + "CountryName": "Netherlands" +}, { + "Id": 73, + "Avatar": "assets/images/women/4.jpg", + "Position": "up", + "Name": "Afet Kumcuoğlu", + "AthleteNumber": 33454, + "NetWorth": 106, + "TopSpeed": 5.1, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/nz.png", + "CountryName": "New Zealand" +}, { + "Id": 163, + "Avatar": "assets/images/women/52.jpg", + "Position": "up", + "Name": "Millie Cooper", + "AthleteNumber": 14610, + "NetWorth": 99, + "TopSpeed": 5.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ni.png", + "CountryName": "Nicaragua" +}, { + "Id": 53, + "Avatar": "assets/images/women/51.jpg", + "Position": "current", + "Name": "Kayla Patel", + "AthleteNumber": 42780, + "NetWorth": 103, + "TopSpeed": 4.7, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ne.png", + "CountryName": "Niger" +}, { + "Id": 58, + "Avatar": "assets/images/men/31.jpg", + "Position": "current", + "Name": "Diego Gautier", + "AthleteNumber": 26320, + "NetWorth": 97, + "TopSpeed": 4.6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ng.png", + "CountryName": "Nigeria" +}, { + "Id": 186, + "Avatar": "assets/images/men/2.jpg", + "Position": "up", + "Name": "کوروش کامروا", + "AthleteNumber": 13506, + "NetWorth": 109, + "TopSpeed": 4.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/nu.png", + "CountryName": "Niue" +}, { + "Id": 101, + "Avatar": "assets/images/women/71.jpg", + "Position": "down", + "Name": "Lavínia Silva", + "AthleteNumber": 33994, + "NetWorth": 93, + "TopSpeed": 5.6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/no.png", + "CountryName": "Norway" +}, { + "Id": 194, + "Avatar": "assets/images/men/71.jpg", + "Position": "down", + "Name": "Adrian Ibañez", + "AthleteNumber": 21968, + "NetWorth": 105, + "TopSpeed": 5.3, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/om.png", + "CountryName": "Oman" +}, { + "Id": 143, + "Avatar": "assets/images/men/38.jpg", + "Position": "up", + "Name": "رضا کوتی", + "AthleteNumber": 13640, + "NetWorth": 103, + "TopSpeed": 4.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/pk.png", + "CountryName": "Pakistan" +}, { + "Id": 37, + "Avatar": "assets/images/men/86.jpg", + "Position": "down", + "Name": "Clyde Matthews", + "AthleteNumber": 11955, + "NetWorth": 93, + "TopSpeed": 5.2, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/pw.png", + "CountryName": "Palau" +}, { + "Id": 176, + "Avatar": "assets/images/men/26.jpg", + "Position": "current", + "Name": "Tim Neal", + "AthleteNumber": 45860, + "NetWorth": 97, + "TopSpeed": 5.6, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/pa.png", + "CountryName": "Panama" +}, { + "Id": 110, + "Avatar": "assets/images/women/15.jpg", + "Position": "current", + "Name": "Annabell Brand", + "AthleteNumber": 39233, + "NetWorth": 93, + "TopSpeed": 5.7, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/pg.png", + "CountryName": "Papua New Guinea" +}, { + "Id": 188, + "Avatar": "assets/images/men/3.jpg", + "Position": "current", + "Name": "Foppe Delfos", + "AthleteNumber": 39679, + "NetWorth": 107, + "TopSpeed": 4.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/py.png", + "CountryName": "Paraguay" +}, { + "Id": 43, + "Avatar": "assets/images/men/42.jpg", + "Position": "up", + "Name": "Kent Clark", + "AthleteNumber": 32799, + "NetWorth": 106, + "TopSpeed": 5.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/pe.png", + "CountryName": "Peru" +}, { + "Id": 167, + "Avatar": "assets/images/women/32.jpg", + "Position": "current", + "Name": "Esma Adıvar", + "AthleteNumber": 35565, + "NetWorth": 99, + "TopSpeed": 4.2, + "TrackProgress": 5, + "CountryFlag": "assets/images/flags/ph.png", + "CountryName": "Philippines" +}, { + "Id": 123, + "Avatar": "assets/images/women/19.jpg", + "Position": "down", + "Name": "Flora Perez", + "AthleteNumber": 23907, + "NetWorth": 102, + "TopSpeed": 5.8, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/pl.png", + "CountryName": "Poland" +}, { + "Id": 76, + "Avatar": "assets/images/men/65.jpg", + "Position": "current", + "Name": "David Scott", + "AthleteNumber": 46997, + "NetWorth": 101, + "TopSpeed": 4.4, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/pt.png", + "CountryName": "Portugal" +}, { + "Id": 183, + "Avatar": "assets/images/men/74.jpg", + "Position": "down", + "Name": "Yarno Kin", + "AthleteNumber": 47324, + "NetWorth": 107, + "TopSpeed": 5.1, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ro.png", + "CountryName": "Romania" +}, { + "Id": 8, + "Avatar": "assets/images/women/15.jpg", + "Position": "down", + "Name": "Esther Kühn", + "AthleteNumber": 24868, + "NetWorth": 92, + "TopSpeed": 5.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ru.png", + "CountryName": "Russian Federation" +}, { + "Id": 80, + "Avatar": "assets/images/men/90.jpg", + "Position": "down", + "Name": "Cecil Nichols", + "AthleteNumber": 20656, + "NetWorth": 100, + "TopSpeed": 5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/rw.png", + "CountryName": "RWANDA" +}, { + "Id": 41, + "Avatar": "assets/images/women/65.jpg", + "Position": "down", + "Name": "Lilly Keuter", + "AthleteNumber": 49893, + "NetWorth": 102, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/kn.png", + "CountryName": "Saint Kitts and Nevis" +}, { + "Id": 200, + "Avatar": "assets/images/women/73.jpg", + "Position": "current", + "Name": "Alice Perry", + "AthleteNumber": 23750, + "NetWorth": 104, + "TopSpeed": 5.3, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/lc.png", + "CountryName": "Saint Lucia" +}, { + "Id": 51, + "Avatar": "assets/images/women/34.jpg", + "Position": "down", + "Name": "Eléa Robin", + "AthleteNumber": 26742, + "NetWorth": 90, + "TopSpeed": 4.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/vc.png", + "CountryName": "Saint Vincent and the Grenadines" +}, { + "Id": 163, + "Avatar": "assets/images/men/70.jpg", + "Position": "down", + "Name": "میلاد قاسمی", + "AthleteNumber": 12788, + "NetWorth": 101, + "TopSpeed": 4.1, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ws.png", + "CountryName": "Samoa" +}, { + "Id": 72, + "Avatar": "assets/images/women/26.jpg", + "Position": "down", + "Name": "Sélène Roussel", + "AthleteNumber": 11261, + "NetWorth": 99, + "TopSpeed": 5.8, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/sm.png", + "CountryName": "San Marino" +}, { + "Id": 159, + "Avatar": "assets/images/women/66.jpg", + "Position": "up", + "Name": "Eva Dean", + "AthleteNumber": 48874, + "NetWorth": 103, + "TopSpeed": 5.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/st.png", + "CountryName": "Sao Tome and Principe" +}, { + "Id": 12, + "Avatar": "assets/images/women/83.jpg", + "Position": "up", + "Name": "Sara Larsen", + "AthleteNumber": 37094, + "NetWorth": 97, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/sa.png", + "CountryName": "Saudi Arabia" +}, { + "Id": 194, + "Avatar": "assets/images/men/11.jpg", + "Position": "down", + "Name": "Kaya Taşlı", + "AthleteNumber": 42291, + "NetWorth": 100, + "TopSpeed": 4.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/sn.png", + "CountryName": "Senegal" +}, { + "Id": 162, + "Avatar": "assets/images/men/5.jpg", + "Position": "down", + "Name": "Adam Bouchard", + "AthleteNumber": 38672, + "NetWorth": 99, + "TopSpeed": 4.7, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/sc.png", + "CountryName": "Seychelles" +}, { + "Id": 96, + "Avatar": "assets/images/women/37.jpg", + "Position": "up", + "Name": "Thea Edwards", + "AthleteNumber": 29141, + "NetWorth": 99, + "TopSpeed": 5.8, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/sl.png", + "CountryName": "Sierra Leone" +}, { + "Id": 93, + "Avatar": "assets/images/women/90.jpg", + "Position": "current", + "Name": "Ana Bourgeois", + "AthleteNumber": 24612, + "NetWorth": 110, + "TopSpeed": 6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/sg.png", + "CountryName": "Singapore" +}, { + "Id": 27, + "Avatar": "assets/images/women/61.jpg", + "Position": "up", + "Name": "Layla Douglas", + "AthleteNumber": 21977, + "NetWorth": 97, + "TopSpeed": 5.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/si.png", + "CountryName": "Slovenia" +}, { + "Id": 178, + "Avatar": "assets/images/women/65.jpg", + "Position": "down", + "Name": "Lillian Wade", + "AthleteNumber": 10729, + "NetWorth": 110, + "TopSpeed": 4.8, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/sb.png", + "CountryName": "Solomon Islands" +}, { + "Id": 192, + "Avatar": "assets/images/women/44.jpg", + "Position": "down", + "Name": "Viivi Kujala", + "AthleteNumber": 29939, + "NetWorth": 93, + "TopSpeed": 4.1, + "TrackProgress": 5, + "CountryFlag": "assets/images/flags/so.png", + "CountryName": "Somalia" +}, { + "Id": 87, + "Avatar": "assets/images/women/72.jpg", + "Position": "up", + "Name": "Charlotte Dean", + "AthleteNumber": 45969, + "NetWorth": 105, + "TopSpeed": 5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/za.png", + "CountryName": "South Africa" +}, { + "Id": 86, + "Avatar": "assets/images/women/45.jpg", + "Position": "down", + "Name": "Marisvalda Martins", + "AthleteNumber": 33879, + "NetWorth": 107, + "TopSpeed": 5.4, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/es.png", + "CountryName": "Spain" +}, { + "Id": 129, + "Avatar": "assets/images/women/34.jpg", + "Position": "up", + "Name": "Ella Hansen", + "AthleteNumber": 27075, + "NetWorth": 101, + "TopSpeed": 5.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/lk.png", + "CountryName": "Sri Lanka" +}, { + "Id": 27, + "Avatar": "assets/images/men/9.jpg", + "Position": "current", + "Name": "Johann Hinz", + "AthleteNumber": 48244, + "NetWorth": 94, + "TopSpeed": 4.3, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/sd.png", + "CountryName": "Sudan" +}, { + "Id": 113, + "Avatar": "assets/images/men/37.jpg", + "Position": "current", + "Name": "Nick Naumann", + "AthleteNumber": 25566, + "NetWorth": 109, + "TopSpeed": 5.9, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/sz.png", + "CountryName": "Swaziland" +}, { + "Id": 194, + "Avatar": "assets/images/women/62.jpg", + "Position": "up", + "Name": "آوا سلطانی نژاد", + "AthleteNumber": 45635, + "NetWorth": 98, + "TopSpeed": 4.1, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/se.png", + "CountryName": "Sweden" +}, { + "Id": 65, + "Avatar": "assets/images/women/47.jpg", + "Position": "current", + "Name": "Ilke Kisters", + "AthleteNumber": 23817, + "NetWorth": 100, + "TopSpeed": 5.9, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ch.png", + "CountryName": "Switzerland" +}, { + "Id": 162, + "Avatar": "assets/images/women/0.jpg", + "Position": "current", + "Name": "Alex Craig", + "AthleteNumber": 21868, + "NetWorth": 94, + "TopSpeed": 4.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/sy.png", + "CountryName": "Syrian Arab Republic" +}, { + "Id": 161, + "Avatar": "assets/images/men/89.jpg", + "Position": "up", + "Name": "Franklin Byrd", + "AthleteNumber": 49498, + "NetWorth": 106, + "TopSpeed": 5.3, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/tw.png", + "CountryName": "Taiwan, Province of China" +}, { + "Id": 167, + "Avatar": "assets/images/women/62.jpg", + "Position": "current", + "Name": "Pippa Morris", + "AthleteNumber": 44421, + "NetWorth": 101, + "TopSpeed": 5.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/tj.png", + "CountryName": "Tajikistan" +}, { + "Id": 43, + "Avatar": "assets/images/women/94.jpg", + "Position": "up", + "Name": "Emma Turner", + "AthleteNumber": 39487, + "NetWorth": 110, + "TopSpeed": 5.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/tz.png", + "CountryName": "Tanzania, United Republic of" +}, { + "Id": 76, + "Avatar": "assets/images/women/1.jpg", + "Position": "current", + "Name": "Encarnacion Martin", + "AthleteNumber": 40912, + "NetWorth": 105, + "TopSpeed": 5.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/th.png", + "CountryName": "Thailand" +}, { + "Id": 93, + "Avatar": "assets/images/women/21.jpg", + "Position": "up", + "Name": "Sara Hannula", + "AthleteNumber": 22025, + "NetWorth": 102, + "TopSpeed": 4.2, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/tl.png", + "CountryName": "Timor-Leste" +}, { + "Id": 147, + "Avatar": "assets/images/men/8.jpg", + "Position": "down", + "Name": "میلاد یاسمی", + "AthleteNumber": 44023, + "NetWorth": 104, + "TopSpeed": 5.2, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/tg.png", + "CountryName": "Togo" +}, { + "Id": 131, + "Avatar": "assets/images/women/61.jpg", + "Position": "down", + "Name": "Veronika Huber", + "AthleteNumber": 18146, + "NetWorth": 103, + "TopSpeed": 5.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/to.png", + "CountryName": "Tonga" +}, { + "Id": 122, + "Avatar": "assets/images/women/71.jpg", + "Position": "down", + "Name": "Natalie Conrad", + "AthleteNumber": 42602, + "NetWorth": 108, + "TopSpeed": 6, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/tt.png", + "CountryName": "Trinidad and Tobago" +}, { + "Id": 113, + "Avatar": "assets/images/women/36.jpg", + "Position": "current", + "Name": "Marialba Nascimento", + "AthleteNumber": 47061, + "NetWorth": 108, + "TopSpeed": 5.2, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/tn.png", + "CountryName": "Tunisia" +}, { + "Id": 135, + "Avatar": "assets/images/men/84.jpg", + "Position": "down", + "Name": "Darryl Douglas", + "AthleteNumber": 35826, + "NetWorth": 96, + "TopSpeed": 4.6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/tr.png", + "CountryName": "Turkey" +}, { + "Id": 130, + "Avatar": "assets/images/men/94.jpg", + "Position": "up", + "Name": "Adem Özdoğan", + "AthleteNumber": 45143, + "NetWorth": 90, + "TopSpeed": 5.5, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/tm.png", + "CountryName": "Turkmenistan" +}, { + "Id": 14, + "Avatar": "assets/images/women/84.jpg", + "Position": "up", + "Name": "Ömür Denkel", + "AthleteNumber": 31061, + "NetWorth": 104, + "TopSpeed": 4.5, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/tv.png", + "CountryName": "Tuvalu" +}, { + "Id": 43, + "Avatar": "assets/images/women/77.jpg", + "Position": "down", + "Name": "Cathalijne Van Der Ree", + "AthleteNumber": 45160, + "NetWorth": 102, + "TopSpeed": 5.4, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/ug.png", + "CountryName": "Uganda" +}, { + "Id": 164, + "Avatar": "assets/images/women/51.jpg", + "Position": "current", + "Name": "Ethel Stephens", + "AthleteNumber": 18692, + "NetWorth": 94, + "TopSpeed": 4.1, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ua.png", + "CountryName": "Ukraine" +}, { + "Id": 167, + "Avatar": "assets/images/men/67.jpg", + "Position": "down", + "Name": "Aatu Ranta", + "AthleteNumber": 38049, + "NetWorth": 94, + "TopSpeed": 5.1, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/ae.png", + "CountryName": "United Arab Emirates" +}, { + "Id": 169, + "Avatar": "assets/images/men/44.jpg", + "Position": "up", + "Name": "Aziz Santos", + "AthleteNumber": 38947, + "NetWorth": 98, + "TopSpeed": 4, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/gb.png", + "CountryName": "United Kingdom" +}, { + "Id": 170, + "Avatar": "assets/images/men/60.jpg", + "Position": "up", + "Name": "Fernando Gimenez", + "AthleteNumber": 31290, + "NetWorth": 102, + "TopSpeed": 5.1, + "TrackProgress": 3, + "CountryFlag": "assets/images/flags/uz.png", + "CountryName": "Uruguay" +}, { + "Id": 124, + "Avatar": "assets/images/men/98.jpg", + "Position": "down", + "Name": "Mathieu Mathieu", + "AthleteNumber": 10555, + "NetWorth": 101, + "TopSpeed": 5.2, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/uz.png", + "CountryName": "Uzbekistan" +}, { + "Id": 193, + "Avatar": "assets/images/women/9.jpg", + "Position": "down", + "Name": "Juanita Franklin", + "AthleteNumber": 13907, + "NetWorth": 91, + "TopSpeed": 6, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/vu.png", + "CountryName": "Vanuatu" +}, { + "Id": 25, + "Avatar": "assets/images/men/42.jpg", + "Position": "up", + "Name": "Stanley Hart", + "AthleteNumber": 14150, + "NetWorth": 91, + "TopSpeed": 4.5, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ve.png", + "CountryName": "Venezuela" +}, { + "Id": 131, + "Avatar": "assets/images/women/61.jpg", + "Position": "current", + "Name": "Eliza Bishop", + "AthleteNumber": 31774, + "NetWorth": 96, + "TopSpeed": 4.7, + "TrackProgress": 4, + "CountryFlag": "assets/images/flags/eh.png", + "CountryName": "Western Sahara" +}, { + "Id": 34, + "Avatar": "assets/images/women/19.jpg", + "Position": "down", + "Name": "Linda Schäfer", + "AthleteNumber": 43074, + "NetWorth": 107, + "TopSpeed": 5.1, + "TrackProgress": 2, + "CountryFlag": "assets/images/flags/ye.png", + "CountryName": "Yemen" +}]; diff --git a/projects/igniteui-angular-performance/src/app/data/employeesData.ts b/projects/igniteui-angular-performance/src/app/data/employeesData.ts new file mode 100644 index 00000000000..eb9c587ea2f --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/data/employeesData.ts @@ -0,0 +1,164 @@ +export const EMPLOYEES_DATA = [ + { + Age: 55, + Avatar: 'assets/images/men/5.jpg', + HireDate: new Date(2008, 3, 20), + ID: 1, + Name: 'Johnathan Winchester', + ParentID: -1, + Title: 'Development Manager' + }, + { + Age: 42, + Avatar: 'assets/images/women/4.jpg', + HireDate: new Date(2014, 1, 22), + ID: 4, + Name: 'Ana Sanders', + ParentID: -1, + Title: 'CEO' + }, + { + Age: 49, + Avatar: 'assets/images/women/2.jpg', + HireDate: new Date(2014, 1, 22), + ID: 18, + Name: 'Victoria Lincoln', + ParentID: -1, + Title: 'Accounting Manager' + }, + { + Age: 61, + Avatar: 'assets/images/men/4.jpg', + HireDate: new Date(2010, 1, 1), + ID: 10, + Name: 'Yang Wang', + ParentID: -1, + Title: 'Localization Manager' + }, + { + Age: 43, + Avatar: 'assets/images/men/1.jpg', + HireDate: new Date(2011, 6, 3), + ID: 3, + Name: 'Michael Burke', + ParentID: 1, + Title: 'Senior Software Developer' + }, + { + Age: 29, + Avatar: 'assets/images/men/2.jpg', + HireDate: new Date(2009, 6, 19), + ID: 2, + Name: 'Thomas Anderson', + ParentID: 1, + Title: 'Senior Software Developer' + }, + { + Age: 31, + Avatar: 'assets/images/women/3.jpg', + HireDate: new Date(2014, 8, 18), + ID: 11, + Name: 'Monica Reyes', + ParentID: 1, + Title: 'Software Development Team Lead' + }, + { + Age: 35, + Avatar: 'assets/images/men/3.jpg', + HireDate: new Date(2015, 9, 17), + ID: 6, + Name: 'Roland Mendel', + ParentID: 11, + Title: 'Senior Software Developer' + }, + { + Age: 44, + Avatar: 'assets/images/men/6.jpg', + HireDate: new Date(2009, 10, 11), + ID: 12, + Name: 'Sven Cooper', + ParentID: 11, + Title: 'Senior Software Developer' + }, + { + Age: 44, + Avatar: 'assets/images/men/7.jpg', + HireDate: new Date(2014, 4, 4), + ID: 14, + Name: 'Laurence Johnson', + ParentID: 4, + Title: 'Director' + }, + { + Age: 25, + Avatar: 'assets/images/women/1.jpg', + HireDate: new Date(2017, 11, 9), + ID: 5, + Name: 'Elizabeth Richards', + ParentID: 4, + Title: 'Vice President' + }, + { + Age: 39, + Avatar: 'assets/images/men/8.jpg', + HireDate: new Date(2010, 3, 22), + ID: 13, + Name: 'Trevor Ashworth', + ParentID: 5, + Title: 'Director' + }, + { + Age: 44, + Avatar: 'assets/images/men/9.jpg', + HireDate: new Date(2014, 4, 4), + ID: 17, + Name: 'Antonio Moreno', + ParentID: 18, + Title: 'Senior Accountant' + }, + { + Age: 50, + Avatar: 'assets/images/men/10.jpg', + HireDate: new Date(2007, 11, 18), + ID: 7, + Name: 'Pedro Rodriguez', + ParentID: 10, + Title: 'Senior Localization Developer' + }, + { + Age: 27, + Avatar: 'assets/images/women/5.jpg', + HireDate: new Date(2016, 2, 19), + ID: 8, + Name: 'Casey Harper', + ParentID: 10, + Title: 'Senior Localization Developer' + }, + { + Age: 25, + Avatar: 'assets/images/women/6.jpg', + HireDate: new Date(2017, 11, 9), + ID: 15, + Name: 'Patricia Simpson', + ParentID: 7, + Title: 'Localization Intern' + }, + { + Age: 39, + Avatar: 'assets/images/men/26.jpg', + HireDate: new Date(2010, 3, 22), + ID: 9, + Name: 'Francisco Chang', + ParentID: 7, + Title: 'Localization Intern' + }, + { + Age: 25, + Avatar: 'assets/images/men/27.jpg', + HireDate: new Date(2018, 3, 18), + ID: 16, + Name: 'Peter Lewis', + ParentID: 7, + Title: 'Localization Intern' + } +]; diff --git a/projects/igniteui-angular-performance/src/app/grid/grid.component.html b/projects/igniteui-angular-performance/src/app/grid/grid.component.html new file mode 100644 index 00000000000..9cad429ffa8 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/grid/grid.component.html @@ -0,0 +1,21 @@ +
+ + @for (col of columns; track col) { + + + } + +
diff --git a/projects/igniteui-angular-performance/src/app/grid/grid.component.scss b/projects/igniteui-angular-performance/src/app/grid/grid.component.scss new file mode 100644 index 00000000000..bc86bb4c9a3 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/grid/grid.component.scss @@ -0,0 +1,10 @@ +:host { + display: flex; + flex-direction: column; + height: 100%; +} + +.grid-wrapper { + height: 100%; + width: 100%; +} diff --git a/projects/igniteui-angular-performance/src/app/grid/grid.component.ts b/projects/igniteui-angular-performance/src/app/grid/grid.component.ts new file mode 100644 index 00000000000..5a8bf831dc1 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/grid/grid.component.ts @@ -0,0 +1,39 @@ +import { Component, inject, ViewChild } from '@angular/core'; +import { GridColumnDataType, IGX_GRID_DIRECTIVES, IgxGridComponent } from "igniteui-angular" +import { DataService } from '../services/data.service'; +import { ActivatedRoute } from '@angular/router'; + +@Component({ + selector: 'app-grid', + imports: [IGX_GRID_DIRECTIVES], + templateUrl: './grid.component.html', + styleUrl: './grid.component.scss' +}) +export class GridComponent { + protected columns: any[] = [] + protected data: any[] = []; + protected performanceDataList: PerformanceEntryList = []; + private dataService = inject(DataService); + private activatedRoute = inject(ActivatedRoute); + + @ViewChild(IgxGridComponent, { static: true }) + public grid: IgxGridComponent; + + constructor() { + this.data = this.dataService.generateData(this.activatedRoute.snapshot.data.rows) + this.columns = [ + { field: "Id", dataType: GridColumnDataType.Number, sortable: true, width: 'auto', groupable: true }, + { field: "Name", dataType: GridColumnDataType.String, sortable: true, width: 'auto', groupable: true }, + { field: "AthleteNumber", dataType: GridColumnDataType.Number, sortable: true, width: 'auto', groupable: true }, + { field: "Registered", dataType: GridColumnDataType.DateTime, sortable: true, width: 'auto', groupable: true }, + { field: "CountryName", dataType: GridColumnDataType.String, sortable: true, width: 'auto', groupable: true }, + { field: "FirstAppearance", dataType: GridColumnDataType.Time, sortable: true, width: 'auto', groupable: true }, + { field: "CareerStart", dataType: GridColumnDataType.Date, sortable: true, width: 'auto', groupable: true }, + { field: "Active", dataType: GridColumnDataType.Boolean, sortable: true, width: 'auto', groupable: true }, + { field: "NetWorth", dataType: GridColumnDataType.Currency, sortable: true, width: 'auto', groupable: true }, + { field: "CountryFlag", dataType: GridColumnDataType.Image, sortable: true, width: 'auto', groupable: true }, + { field: "SuccessRate", dataType: GridColumnDataType.Percent, sortable: true, width: 'auto', groupable: true }, + { field: "Position", dataType: GridColumnDataType.String, sortable: true, width: 'auto', groupable: true }, + ]; + } +} diff --git a/projects/igniteui-angular-performance/src/app/lib/mulberry.ts b/projects/igniteui-angular-performance/src/app/lib/mulberry.ts new file mode 100644 index 00000000000..716a6266205 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/lib/mulberry.ts @@ -0,0 +1,16 @@ +export class Mulberry32 { + private seed: number; + + constructor(s: number) { + this.seed = s; + } + + public random(): number { + /* eslint-disable */ + this.seed |= 0; this.seed = this.seed + 0x6D2B79F5 | 0; + let t = Math.imul(this.seed ^ this.seed >>> 15, 1 | this.seed); + t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t; + return ((t ^ t >>> 14) >>> 0) / 4294967296; + /* eslint-enable */ + } +} diff --git a/projects/igniteui-angular-performance/src/app/services/data.service.ts b/projects/igniteui-angular-performance/src/app/services/data.service.ts new file mode 100644 index 00000000000..001f33beb4a --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/services/data.service.ts @@ -0,0 +1,120 @@ +import { Injectable } from '@angular/core'; +import { Mulberry32 } from '../lib/mulberry'; +import { DATA as athletesData } from "../data/athletesData" +import { EMPLOYEES_DATA } from '../data/employeesData'; + + +@Injectable({ + providedIn: 'root' +}) +export class DataService { + constructor() { } + public generateData(rows: number): any[] { + const rnd = new Mulberry32(1234); + const data = this.generateAthletesData(rnd, rows); + return data; + } + + public generateTreeData(rows: number): any[] { + const rnd = new Mulberry32(1234); + const data = this.generateEmployeesData(rnd, rows); + return data; + } + + private generateEmployeesData(rnd: Mulberry32, rows: number): any[] { + const currData = []; + let uniqueId = 1; + const parentCandidates: number[] = []; + for (let i = 0; i < rows; i++) { + const rand = Math.floor(rnd.random() * Math.floor(EMPLOYEES_DATA.length)); + const dataObj = Object.assign({}, EMPLOYEES_DATA[rand]); + dataObj.ID = uniqueId++; + if (currData.length > 0 && rnd.random() > 0.2) { + const parentIndex = Math.floor(rnd.random() * parentCandidates.length); + dataObj.ParentID = parentCandidates[parentIndex]; + } else { + dataObj.ParentID = -1; // Root node + } + dataObj["CheckedIn"] = this.formatDateTime(this.randomizeDateTime(rnd)); + dataObj["CareerStart"] = this.formatDateTime(this.randomizeDateTime(rnd)); + dataObj["GrossSalary"] = this.randomizeSalary(rnd); + dataObj["PTO"] = this.randomizeBoolean(rnd); + dataObj["SuccessRate"] = this.randomizePercentage(rnd); + parentCandidates.push(dataObj.ID); + + currData.push(dataObj); + } + return currData; + } + + private generateAthletesData(rnd: Mulberry32, rows: number): any[] { + const currData = []; + for (let i = 0; i < rows; i++) { + const rand = Math.floor(rnd.random() * Math.floor(athletesData.length)); + const dataObj = Object.assign({}, athletesData[rand]); + dataObj["Registered"] = this.formatDateTime(this.randomizeDateTime(rnd)); + dataObj["FirstAppearance"] = this.formatDateTime(this.randomizeDateTime(rnd)); + dataObj["CareerStart"] = this.formatDateTime(this.randomizeDateTime(rnd)); + dataObj["Active"] = this.randomizeBoolean(rnd); + dataObj["SuccessRate"] = this.randomizePercentage(rnd); + dataObj["AthleteNumber"] = this.randomizeAthleteNumber(dataObj["AthleteNumber"], rnd); + currData.push(dataObj); + } + return currData; + } + + private randomizeDateTime(rnd: Mulberry32): Date { + const now = new Date(); + + // Generate a random date in the current year up to the current month/day + const year = now.getFullYear(); + const month = this.generateRandomNumber(rnd, 0, now.getMonth()); // 0 to current month + const daysInMonth = new Date(year, month + 1, 0).getDate(); + const day = this.generateRandomNumber(rnd, 1, daysInMonth); // 1 to last day of month + + // Generate random time + const hours = this.generateRandomNumber(rnd, 0, 23); + const minutes = this.generateRandomNumber(rnd, 0, 59); + const seconds = this.generateRandomNumber(rnd, 0, 59); + + const date = new Date(year, month, day, hours, minutes, seconds); + return date; + } + + private randomizeBoolean(rnd: Mulberry32): boolean { + const number = this.generateRandomNumber(rnd, 0, 10); + return number >= 5; + } + + private randomizeAthleteNumber(value: number, rnd: Mulberry32): number { + const number = this.generateRandomNumber(rnd, 0, 100); + return number % 2 ? value + number : value - number; + } + + private randomizePercentage(rnd: Mulberry32): number { + const value = rnd.random(); // returns value in [0, 1) + return Math.floor(value * 1000) / 1000; + } + + private randomizeSalary(rnd: Mulberry32): number { + return this.generateRandomNumber(rnd, 80_000, 100_000); + } + + private formatDateTime(date: Date) { + // Format: MM/DD/YYYY HH:mm:ss + const formatted = `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()} ` + + `${this.pad(date.getHours())}:${this.pad(date.getMinutes())}:${this.pad(date.getSeconds())}`; + return formatted; + } + + // Helper for leading zeros + private pad(num: number): string { + return num.toString().padStart(2, '0'); + } + + private generateRandomNumber(rnd, min, max) { + return Math.floor(rnd.random() * (max - min + 1)) + min; + } + + +} diff --git a/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.html b/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.html new file mode 100644 index 00000000000..a516762a6e2 --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.html @@ -0,0 +1,23 @@ +
+ + @for (col of columns; track col) { + + + } + +
diff --git a/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.scss b/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.scss new file mode 100644 index 00000000000..eabcf19790a --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.scss @@ -0,0 +1,16 @@ +:host { + display: flex; + flex-direction: column; + height: 100%; +} + +.grid-wrapper { + height: 100%; + width: 100%; +} + +::ng-deep { + img { + width: 60px !important; + } +} diff --git a/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.ts b/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.ts new file mode 100644 index 00000000000..2f274c23ade --- /dev/null +++ b/projects/igniteui-angular-performance/src/app/tree-grid/tree-grid.component.ts @@ -0,0 +1,38 @@ +import { Component, inject, ViewChild } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { GridColumnDataType, IgxColumnComponent, IgxTreeGridComponent } from 'igniteui-angular'; +import { DataService } from '../services/data.service'; + +@Component({ + selector: 'app-tree-grid', + imports: [IgxTreeGridComponent, IgxColumnComponent], + templateUrl: './tree-grid.component.html', + styleUrl: './tree-grid.component.scss' +}) +export class TreeGridComponent { + protected columns: any[] = [] + protected data: any[] = []; + protected performanceDataList: PerformanceEntryList = []; + private dataService = inject(DataService); + private activatedRoute = inject(ActivatedRoute); + + @ViewChild(IgxTreeGridComponent, { static: true }) + public grid: IgxTreeGridComponent; + + constructor() { + this.data = this.dataService.generateTreeData(this.activatedRoute.snapshot.data.rows) + this.columns = [ + { field: "ID", dataType: GridColumnDataType.Number, sortable: true, width: 'auto', groupable: true }, + { field: "Name", dataType: GridColumnDataType.String, sortable: true, width: 'auto', groupable: true }, + { field: "Age", dataType: GridColumnDataType.Number, sortable: true, width: 'auto', groupable: true }, + { field: "HireDate", dataType: GridColumnDataType.Date, sortable: true, width: 'auto', groupable: true }, + { field: "Title", dataType: GridColumnDataType.String, sortable: true, width: 'auto', groupable: true }, + { field: "CheckedIn", dataType: GridColumnDataType.Time, sortable: true, width: 'auto', groupable: true }, + { field: "PTO", dataType: GridColumnDataType.Boolean, sortable: true, width: 'auto', groupable: true }, + { field: "GrossSalary", dataType: GridColumnDataType.Currency, sortable: true, width: 'auto', groupable: true }, + { field: "Avatar", dataType: GridColumnDataType.Image, sortable: true, width: 'auto', groupable: true }, + { field: "CareerStart", dataType: GridColumnDataType.DateTime, sortable: true, width: 'auto', groupable: true }, + { field: "SuccessRate", dataType: GridColumnDataType.Percent, sortable: true, width: 'auto', groupable: true }, + ]; + } +} diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ad.png b/projects/igniteui-angular-performance/src/assets/images/flags/ad.png new file mode 100644 index 00000000000..c58bc937838 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ad.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ae.png b/projects/igniteui-angular-performance/src/assets/images/flags/ae.png new file mode 100644 index 00000000000..088ef8ea6df Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ae.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/af.png b/projects/igniteui-angular-performance/src/assets/images/flags/af.png new file mode 100644 index 00000000000..995b351ec62 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/af.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ag.png b/projects/igniteui-angular-performance/src/assets/images/flags/ag.png new file mode 100644 index 00000000000..5f8b4f68b1b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ag.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/al.png b/projects/igniteui-angular-performance/src/assets/images/flags/al.png new file mode 100644 index 00000000000..2e516ec39f2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/al.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/am.png b/projects/igniteui-angular-performance/src/assets/images/flags/am.png new file mode 100644 index 00000000000..d529a99e86f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/am.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ao.png b/projects/igniteui-angular-performance/src/assets/images/flags/ao.png new file mode 100644 index 00000000000..4cdfb0e10ea Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ao.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ar.png b/projects/igniteui-angular-performance/src/assets/images/flags/ar.png new file mode 100644 index 00000000000..b31ec92aa10 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ar.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/at.png b/projects/igniteui-angular-performance/src/assets/images/flags/at.png new file mode 100644 index 00000000000..993b903af13 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/at.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/au.png b/projects/igniteui-angular-performance/src/assets/images/flags/au.png new file mode 100644 index 00000000000..ef20b66dc8e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/au.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/az.png b/projects/igniteui-angular-performance/src/assets/images/flags/az.png new file mode 100644 index 00000000000..3fb7ccb30d9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/az.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ba.png b/projects/igniteui-angular-performance/src/assets/images/flags/ba.png new file mode 100644 index 00000000000..fa4d6097b46 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ba.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bb.png b/projects/igniteui-angular-performance/src/assets/images/flags/bb.png new file mode 100644 index 00000000000..5e87a9ea9d5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bb.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bd.png b/projects/igniteui-angular-performance/src/assets/images/flags/bd.png new file mode 100644 index 00000000000..c55d3d7ac08 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bd.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/be.png b/projects/igniteui-angular-performance/src/assets/images/flags/be.png new file mode 100644 index 00000000000..449446af9a7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/be.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bf.png b/projects/igniteui-angular-performance/src/assets/images/flags/bf.png new file mode 100644 index 00000000000..f3a728811c9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bf.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bg.png b/projects/igniteui-angular-performance/src/assets/images/flags/bg.png new file mode 100644 index 00000000000..ec03d4f8dba Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bh.png b/projects/igniteui-angular-performance/src/assets/images/flags/bh.png new file mode 100644 index 00000000000..61bad9b4129 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bh.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bi.png b/projects/igniteui-angular-performance/src/assets/images/flags/bi.png new file mode 100644 index 00000000000..d82b894b7ea Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bi.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bj.png b/projects/igniteui-angular-performance/src/assets/images/flags/bj.png new file mode 100644 index 00000000000..220c8e786c7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bj.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bn.png b/projects/igniteui-angular-performance/src/assets/images/flags/bn.png new file mode 100644 index 00000000000..944a7be1967 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bo.png b/projects/igniteui-angular-performance/src/assets/images/flags/bo.png new file mode 100644 index 00000000000..aec2cc6ca9c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bo.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/br.png b/projects/igniteui-angular-performance/src/assets/images/flags/br.png new file mode 100644 index 00000000000..b54f27df8de Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/br.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bs.png b/projects/igniteui-angular-performance/src/assets/images/flags/bs.png new file mode 100644 index 00000000000..43db8c1a4dd Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bs.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bt.png b/projects/igniteui-angular-performance/src/assets/images/flags/bt.png new file mode 100644 index 00000000000..dfd0d6af28c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bt.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bw.png b/projects/igniteui-angular-performance/src/assets/images/flags/bw.png new file mode 100644 index 00000000000..0a74b72f943 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/by.png b/projects/igniteui-angular-performance/src/assets/images/flags/by.png new file mode 100644 index 00000000000..1c9f5462a61 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/by.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/bz.png b/projects/igniteui-angular-performance/src/assets/images/flags/bz.png new file mode 100644 index 00000000000..ef37f6da9cd Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/bz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ca.png b/projects/igniteui-angular-performance/src/assets/images/flags/ca.png new file mode 100644 index 00000000000..524f815786e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ca.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cd.png b/projects/igniteui-angular-performance/src/assets/images/flags/cd.png new file mode 100644 index 00000000000..a96eccf5743 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cd.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cf.png b/projects/igniteui-angular-performance/src/assets/images/flags/cf.png new file mode 100644 index 00000000000..e203020e75b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cf.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cg.png b/projects/igniteui-angular-performance/src/assets/images/flags/cg.png new file mode 100644 index 00000000000..7afcfe08246 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ch.png b/projects/igniteui-angular-performance/src/assets/images/flags/ch.png new file mode 100644 index 00000000000..bd447d2bc37 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ch.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ci.png b/projects/igniteui-angular-performance/src/assets/images/flags/ci.png new file mode 100644 index 00000000000..14fceff96de Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ci.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ck.png b/projects/igniteui-angular-performance/src/assets/images/flags/ck.png new file mode 100644 index 00000000000..d74b82d9c26 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ck.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cl.png b/projects/igniteui-angular-performance/src/assets/images/flags/cl.png new file mode 100644 index 00000000000..741c34bfb72 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cl.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cm.png b/projects/igniteui-angular-performance/src/assets/images/flags/cm.png new file mode 100644 index 00000000000..e2a308b1f1a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cn.png b/projects/igniteui-angular-performance/src/assets/images/flags/cn.png new file mode 100644 index 00000000000..7474ddebc3c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/co.png b/projects/igniteui-angular-performance/src/assets/images/flags/co.png new file mode 100644 index 00000000000..477177ba930 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/co.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cr.png b/projects/igniteui-angular-performance/src/assets/images/flags/cr.png new file mode 100644 index 00000000000..62cc81a7023 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cu.png b/projects/igniteui-angular-performance/src/assets/images/flags/cu.png new file mode 100644 index 00000000000..4ada582f692 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cu.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cv.png b/projects/igniteui-angular-performance/src/assets/images/flags/cv.png new file mode 100644 index 00000000000..e45bfdb0abb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cv.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cy.png b/projects/igniteui-angular-performance/src/assets/images/flags/cy.png new file mode 100644 index 00000000000..e909ebc40b1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cy.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/cz.png b/projects/igniteui-angular-performance/src/assets/images/flags/cz.png new file mode 100644 index 00000000000..acfac562db7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/cz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/de.png b/projects/igniteui-angular-performance/src/assets/images/flags/de.png new file mode 100644 index 00000000000..2dbd9b08720 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/de.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/dj.png b/projects/igniteui-angular-performance/src/assets/images/flags/dj.png new file mode 100644 index 00000000000..147636ad0fc Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/dj.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/dk.png b/projects/igniteui-angular-performance/src/assets/images/flags/dk.png new file mode 100644 index 00000000000..65d6b3551f4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/dk.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/dm.png b/projects/igniteui-angular-performance/src/assets/images/flags/dm.png new file mode 100644 index 00000000000..04a92e16a7b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/dm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/do.png b/projects/igniteui-angular-performance/src/assets/images/flags/do.png new file mode 100644 index 00000000000..12e017e0209 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/do.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/dz.png b/projects/igniteui-angular-performance/src/assets/images/flags/dz.png new file mode 100644 index 00000000000..4670a0eb85b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/dz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ec.png b/projects/igniteui-angular-performance/src/assets/images/flags/ec.png new file mode 100644 index 00000000000..9289152375d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ec.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ee.png b/projects/igniteui-angular-performance/src/assets/images/flags/ee.png new file mode 100644 index 00000000000..1067640131a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ee.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/eg.png b/projects/igniteui-angular-performance/src/assets/images/flags/eg.png new file mode 100644 index 00000000000..238d535fb1a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/eg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/eh.png b/projects/igniteui-angular-performance/src/assets/images/flags/eh.png new file mode 100644 index 00000000000..b8cf7ef099e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/eh.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/er.png b/projects/igniteui-angular-performance/src/assets/images/flags/er.png new file mode 100644 index 00000000000..546b1b97089 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/er.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/es.png b/projects/igniteui-angular-performance/src/assets/images/flags/es.png new file mode 100644 index 00000000000..a8ad334cab5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/es.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/et.png b/projects/igniteui-angular-performance/src/assets/images/flags/et.png new file mode 100644 index 00000000000..e807c2114c4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/et.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/fi.png b/projects/igniteui-angular-performance/src/assets/images/flags/fi.png new file mode 100644 index 00000000000..1ad17975ae0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/fi.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/fj.png b/projects/igniteui-angular-performance/src/assets/images/flags/fj.png new file mode 100644 index 00000000000..6bf73714682 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/fj.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/fm.png b/projects/igniteui-angular-performance/src/assets/images/flags/fm.png new file mode 100644 index 00000000000..32d5b832589 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/fm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/fr.png b/projects/igniteui-angular-performance/src/assets/images/flags/fr.png new file mode 100644 index 00000000000..a7684766369 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/fr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ga.png b/projects/igniteui-angular-performance/src/assets/images/flags/ga.png new file mode 100644 index 00000000000..32c68bf6a4d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ga.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gb.png b/projects/igniteui-angular-performance/src/assets/images/flags/gb.png new file mode 100644 index 00000000000..3b6668e203c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gb.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gd.png b/projects/igniteui-angular-performance/src/assets/images/flags/gd.png new file mode 100644 index 00000000000..9a68c48951e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gd.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ge.png b/projects/igniteui-angular-performance/src/assets/images/flags/ge.png new file mode 100644 index 00000000000..108e367076a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ge.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gh.png b/projects/igniteui-angular-performance/src/assets/images/flags/gh.png new file mode 100644 index 00000000000..c2bf9d0bb44 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gh.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gm.png b/projects/igniteui-angular-performance/src/assets/images/flags/gm.png new file mode 100644 index 00000000000..b929a80dec1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gn.png b/projects/igniteui-angular-performance/src/assets/images/flags/gn.png new file mode 100644 index 00000000000..be43cebc611 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gq.png b/projects/igniteui-angular-performance/src/assets/images/flags/gq.png new file mode 100644 index 00000000000..db9415a0220 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gq.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gr.png b/projects/igniteui-angular-performance/src/assets/images/flags/gr.png new file mode 100644 index 00000000000..094441156c8 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gt.png b/projects/igniteui-angular-performance/src/assets/images/flags/gt.png new file mode 100644 index 00000000000..76c5db709c3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gt.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gw.png b/projects/igniteui-angular-performance/src/assets/images/flags/gw.png new file mode 100644 index 00000000000..06dc5103c7a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/gy.png b/projects/igniteui-angular-performance/src/assets/images/flags/gy.png new file mode 100644 index 00000000000..4f9b232372a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/gy.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/hn.png b/projects/igniteui-angular-performance/src/assets/images/flags/hn.png new file mode 100644 index 00000000000..b1a9f5f8dc9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/hn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/hr.png b/projects/igniteui-angular-performance/src/assets/images/flags/hr.png new file mode 100644 index 00000000000..68205134c2a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/hr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ht.png b/projects/igniteui-angular-performance/src/assets/images/flags/ht.png new file mode 100644 index 00000000000..ba76abd2318 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ht.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/hu.png b/projects/igniteui-angular-performance/src/assets/images/flags/hu.png new file mode 100644 index 00000000000..eeee4cad62a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/hu.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/id.png b/projects/igniteui-angular-performance/src/assets/images/flags/id.png new file mode 100644 index 00000000000..e96bc7483cf Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/id.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ie.png b/projects/igniteui-angular-performance/src/assets/images/flags/ie.png new file mode 100644 index 00000000000..52e2ad41098 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ie.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/il.png b/projects/igniteui-angular-performance/src/assets/images/flags/il.png new file mode 100644 index 00000000000..c85c9d34483 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/il.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/in.png b/projects/igniteui-angular-performance/src/assets/images/flags/in.png new file mode 100644 index 00000000000..be5acd354b7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/in.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/iq.png b/projects/igniteui-angular-performance/src/assets/images/flags/iq.png new file mode 100644 index 00000000000..f370c9af585 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/iq.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ir.png b/projects/igniteui-angular-performance/src/assets/images/flags/ir.png new file mode 100644 index 00000000000..7f647fa3b8f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ir.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/is.png b/projects/igniteui-angular-performance/src/assets/images/flags/is.png new file mode 100644 index 00000000000..74c9e034aad Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/is.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/it.png b/projects/igniteui-angular-performance/src/assets/images/flags/it.png new file mode 100644 index 00000000000..d62e50b293e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/it.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/jm.png b/projects/igniteui-angular-performance/src/assets/images/flags/jm.png new file mode 100644 index 00000000000..a960d3da72c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/jm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/jo.png b/projects/igniteui-angular-performance/src/assets/images/flags/jo.png new file mode 100644 index 00000000000..e8b743a3b1a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/jo.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/jp.png b/projects/igniteui-angular-performance/src/assets/images/flags/jp.png new file mode 100644 index 00000000000..fd1ce056a5d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/jp.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ke.png b/projects/igniteui-angular-performance/src/assets/images/flags/ke.png new file mode 100644 index 00000000000..dbf559fd0f6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ke.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kg.png b/projects/igniteui-angular-performance/src/assets/images/flags/kg.png new file mode 100644 index 00000000000..c0fe3e51a99 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kh.png b/projects/igniteui-angular-performance/src/assets/images/flags/kh.png new file mode 100644 index 00000000000..b9340f7653f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kh.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ki.png b/projects/igniteui-angular-performance/src/assets/images/flags/ki.png new file mode 100644 index 00000000000..6b718d1b833 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ki.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/km.png b/projects/igniteui-angular-performance/src/assets/images/flags/km.png new file mode 100644 index 00000000000..dbbd8f4e030 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/km.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kn.png b/projects/igniteui-angular-performance/src/assets/images/flags/kn.png new file mode 100644 index 00000000000..028bef50c43 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kp.png b/projects/igniteui-angular-performance/src/assets/images/flags/kp.png new file mode 100644 index 00000000000..3fee3795061 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kp.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kr.png b/projects/igniteui-angular-performance/src/assets/images/flags/kr.png new file mode 100644 index 00000000000..d0022a2e7e1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ks.png b/projects/igniteui-angular-performance/src/assets/images/flags/ks.png new file mode 100644 index 00000000000..e1824f13786 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ks.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kw.png b/projects/igniteui-angular-performance/src/assets/images/flags/kw.png new file mode 100644 index 00000000000..7f701d5c059 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/kz.png b/projects/igniteui-angular-performance/src/assets/images/flags/kz.png new file mode 100644 index 00000000000..1c23ee16a4e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/kz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/la.png b/projects/igniteui-angular-performance/src/assets/images/flags/la.png new file mode 100644 index 00000000000..975888468a3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/la.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lb.png b/projects/igniteui-angular-performance/src/assets/images/flags/lb.png new file mode 100644 index 00000000000..80b32567d3d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lb.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lc.png b/projects/igniteui-angular-performance/src/assets/images/flags/lc.png new file mode 100644 index 00000000000..dc2de27f479 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lc.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/li.png b/projects/igniteui-angular-performance/src/assets/images/flags/li.png new file mode 100644 index 00000000000..c635a63a243 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/li.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lk.png b/projects/igniteui-angular-performance/src/assets/images/flags/lk.png new file mode 100644 index 00000000000..12e6a000c89 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lk.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lr.png b/projects/igniteui-angular-performance/src/assets/images/flags/lr.png new file mode 100644 index 00000000000..0b998abda1c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ls.png b/projects/igniteui-angular-performance/src/assets/images/flags/ls.png new file mode 100644 index 00000000000..ba9ed2d383c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ls.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lt.png b/projects/igniteui-angular-performance/src/assets/images/flags/lt.png new file mode 100644 index 00000000000..257930e6485 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lt.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lu.png b/projects/igniteui-angular-performance/src/assets/images/flags/lu.png new file mode 100644 index 00000000000..64b5dd6c964 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lu.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/lv.png b/projects/igniteui-angular-performance/src/assets/images/flags/lv.png new file mode 100644 index 00000000000..fb8345e1365 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/lv.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ly.png b/projects/igniteui-angular-performance/src/assets/images/flags/ly.png new file mode 100644 index 00000000000..b90fc936ebc Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ly.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ma.png b/projects/igniteui-angular-performance/src/assets/images/flags/ma.png new file mode 100644 index 00000000000..8e625359b1b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ma.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mc.png b/projects/igniteui-angular-performance/src/assets/images/flags/mc.png new file mode 100644 index 00000000000..194a09e6554 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mc.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/md.png b/projects/igniteui-angular-performance/src/assets/images/flags/md.png new file mode 100644 index 00000000000..0071401eb6b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/md.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/me.png b/projects/igniteui-angular-performance/src/assets/images/flags/me.png new file mode 100644 index 00000000000..0952236af98 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/me.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mg.png b/projects/igniteui-angular-performance/src/assets/images/flags/mg.png new file mode 100644 index 00000000000..4b4b065529c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mh.png b/projects/igniteui-angular-performance/src/assets/images/flags/mh.png new file mode 100644 index 00000000000..3e7a4b5c8d9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mh.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mk.png b/projects/igniteui-angular-performance/src/assets/images/flags/mk.png new file mode 100644 index 00000000000..4cb42a74f3d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mk.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ml.png b/projects/igniteui-angular-performance/src/assets/images/flags/ml.png new file mode 100644 index 00000000000..182848aba6f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ml.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mm.png b/projects/igniteui-angular-performance/src/assets/images/flags/mm.png new file mode 100644 index 00000000000..f486f8538bd Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mn.png b/projects/igniteui-angular-performance/src/assets/images/flags/mn.png new file mode 100644 index 00000000000..dd0bb39962e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mr.png b/projects/igniteui-angular-performance/src/assets/images/flags/mr.png new file mode 100644 index 00000000000..caf03659f0b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mt.png b/projects/igniteui-angular-performance/src/assets/images/flags/mt.png new file mode 100644 index 00000000000..b4d686eae2a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mt.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mu.png b/projects/igniteui-angular-performance/src/assets/images/flags/mu.png new file mode 100644 index 00000000000..03f524f9319 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mu.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mv.png b/projects/igniteui-angular-performance/src/assets/images/flags/mv.png new file mode 100644 index 00000000000..ab4aae4c8cb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mv.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mw.png b/projects/igniteui-angular-performance/src/assets/images/flags/mw.png new file mode 100644 index 00000000000..bf38ff9c73a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mx.png b/projects/igniteui-angular-performance/src/assets/images/flags/mx.png new file mode 100644 index 00000000000..783148b3e9a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mx.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/my.png b/projects/igniteui-angular-performance/src/assets/images/flags/my.png new file mode 100644 index 00000000000..5a9ae417fd6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/my.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/mz.png b/projects/igniteui-angular-performance/src/assets/images/flags/mz.png new file mode 100644 index 00000000000..0e4c983ce87 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/mz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/na.png b/projects/igniteui-angular-performance/src/assets/images/flags/na.png new file mode 100644 index 00000000000..620937bbb58 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/na.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ne.png b/projects/igniteui-angular-performance/src/assets/images/flags/ne.png new file mode 100644 index 00000000000..0762231e2fe Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ne.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ng.png b/projects/igniteui-angular-performance/src/assets/images/flags/ng.png new file mode 100644 index 00000000000..ba56e9e06bc Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ng.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ni.png b/projects/igniteui-angular-performance/src/assets/images/flags/ni.png new file mode 100644 index 00000000000..9b6dbf54ec2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ni.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/nl.png b/projects/igniteui-angular-performance/src/assets/images/flags/nl.png new file mode 100644 index 00000000000..aeb72b664a7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/nl.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/no.png b/projects/igniteui-angular-performance/src/assets/images/flags/no.png new file mode 100644 index 00000000000..e14f90f33d8 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/no.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/np.png b/projects/igniteui-angular-performance/src/assets/images/flags/np.png new file mode 100644 index 00000000000..fd0cd6e626e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/np.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/nr.png b/projects/igniteui-angular-performance/src/assets/images/flags/nr.png new file mode 100644 index 00000000000..721408622d3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/nr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/nu.png b/projects/igniteui-angular-performance/src/assets/images/flags/nu.png new file mode 100644 index 00000000000..c7d8797c0f5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/nu.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/nz.png b/projects/igniteui-angular-performance/src/assets/images/flags/nz.png new file mode 100644 index 00000000000..1f25035b018 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/nz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/om.png b/projects/igniteui-angular-performance/src/assets/images/flags/om.png new file mode 100644 index 00000000000..05c99d92a3b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/om.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pa.png b/projects/igniteui-angular-performance/src/assets/images/flags/pa.png new file mode 100644 index 00000000000..96d4c8ef83f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pa.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pe.png b/projects/igniteui-angular-performance/src/assets/images/flags/pe.png new file mode 100644 index 00000000000..e4d623e8a14 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pe.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pg.png b/projects/igniteui-angular-performance/src/assets/images/flags/pg.png new file mode 100644 index 00000000000..5011a16753a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ph.png b/projects/igniteui-angular-performance/src/assets/images/flags/ph.png new file mode 100644 index 00000000000..41ddff21ab4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ph.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pk.png b/projects/igniteui-angular-performance/src/assets/images/flags/pk.png new file mode 100644 index 00000000000..76020feb964 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pk.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pl.png b/projects/igniteui-angular-performance/src/assets/images/flags/pl.png new file mode 100644 index 00000000000..d4db002f655 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pl.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pt.png b/projects/igniteui-angular-performance/src/assets/images/flags/pt.png new file mode 100644 index 00000000000..e0619bc9f66 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pt.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/pw.png b/projects/igniteui-angular-performance/src/assets/images/flags/pw.png new file mode 100644 index 00000000000..be101ba9796 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/pw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/py.png b/projects/igniteui-angular-performance/src/assets/images/flags/py.png new file mode 100644 index 00000000000..b2e2d5c5dd1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/py.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/qa.png b/projects/igniteui-angular-performance/src/assets/images/flags/qa.png new file mode 100644 index 00000000000..0e615feb7b8 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/qa.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ro.png b/projects/igniteui-angular-performance/src/assets/images/flags/ro.png new file mode 100644 index 00000000000..57f34f3559f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ro.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/rs.png b/projects/igniteui-angular-performance/src/assets/images/flags/rs.png new file mode 100644 index 00000000000..7273ea71550 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/rs.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ru.png b/projects/igniteui-angular-performance/src/assets/images/flags/ru.png new file mode 100644 index 00000000000..79d2101ee42 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ru.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/rw.png b/projects/igniteui-angular-performance/src/assets/images/flags/rw.png new file mode 100644 index 00000000000..5b859eafaac Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/rw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sa.png b/projects/igniteui-angular-performance/src/assets/images/flags/sa.png new file mode 100644 index 00000000000..0df5b9265f7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sa.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sb.png b/projects/igniteui-angular-performance/src/assets/images/flags/sb.png new file mode 100644 index 00000000000..832f7cee6fd Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sb.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sc.png b/projects/igniteui-angular-performance/src/assets/images/flags/sc.png new file mode 100644 index 00000000000..a497589e61f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sc.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sd.png b/projects/igniteui-angular-performance/src/assets/images/flags/sd.png new file mode 100644 index 00000000000..386f3e87b78 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sd.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/se.png b/projects/igniteui-angular-performance/src/assets/images/flags/se.png new file mode 100644 index 00000000000..9e125783037 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/se.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sg.png b/projects/igniteui-angular-performance/src/assets/images/flags/sg.png new file mode 100644 index 00000000000..7e898146a96 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/si.png b/projects/igniteui-angular-performance/src/assets/images/flags/si.png new file mode 100644 index 00000000000..3692b66f1f6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/si.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sk.png b/projects/igniteui-angular-performance/src/assets/images/flags/sk.png new file mode 100644 index 00000000000..8a73d6495bf Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sk.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sl.png b/projects/igniteui-angular-performance/src/assets/images/flags/sl.png new file mode 100644 index 00000000000..b68450ddaea Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sl.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sm.png b/projects/igniteui-angular-performance/src/assets/images/flags/sm.png new file mode 100644 index 00000000000..43f1965025d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sn.png b/projects/igniteui-angular-performance/src/assets/images/flags/sn.png new file mode 100644 index 00000000000..fcd02444d9b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/so.png b/projects/igniteui-angular-performance/src/assets/images/flags/so.png new file mode 100644 index 00000000000..819490b9d77 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/so.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sr.png b/projects/igniteui-angular-performance/src/assets/images/flags/sr.png new file mode 100644 index 00000000000..9ac43378880 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/st.png b/projects/igniteui-angular-performance/src/assets/images/flags/st.png new file mode 100644 index 00000000000..b4edccbf846 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/st.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sv.png b/projects/igniteui-angular-performance/src/assets/images/flags/sv.png new file mode 100644 index 00000000000..7fe790cb21b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sv.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sy.png b/projects/igniteui-angular-performance/src/assets/images/flags/sy.png new file mode 100644 index 00000000000..c78f9d5ff7a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sy.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/sz.png b/projects/igniteui-angular-performance/src/assets/images/flags/sz.png new file mode 100644 index 00000000000..6550515e4aa Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/sz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/td.png b/projects/igniteui-angular-performance/src/assets/images/flags/td.png new file mode 100644 index 00000000000..c0c76da34ea Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/td.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tg.png b/projects/igniteui-angular-performance/src/assets/images/flags/tg.png new file mode 100644 index 00000000000..31f1a00ab7c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tg.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/th.png b/projects/igniteui-angular-performance/src/assets/images/flags/th.png new file mode 100644 index 00000000000..5cf74c908b9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/th.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tj.png b/projects/igniteui-angular-performance/src/assets/images/flags/tj.png new file mode 100644 index 00000000000..1d83e4c7a25 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tj.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tl.png b/projects/igniteui-angular-performance/src/assets/images/flags/tl.png new file mode 100644 index 00000000000..c646f33f5ce Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tl.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tm.png b/projects/igniteui-angular-performance/src/assets/images/flags/tm.png new file mode 100644 index 00000000000..5dd8fb996e4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tn.png b/projects/igniteui-angular-performance/src/assets/images/flags/tn.png new file mode 100644 index 00000000000..09ce2352deb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/to.png b/projects/igniteui-angular-performance/src/assets/images/flags/to.png new file mode 100644 index 00000000000..34b5aa1491f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/to.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tr.png b/projects/igniteui-angular-performance/src/assets/images/flags/tr.png new file mode 100644 index 00000000000..a67740a1450 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tr.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tt.png b/projects/igniteui-angular-performance/src/assets/images/flags/tt.png new file mode 100644 index 00000000000..61ee0b07a5e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tt.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tv.png b/projects/igniteui-angular-performance/src/assets/images/flags/tv.png new file mode 100644 index 00000000000..16f8616fabb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tv.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tw.png b/projects/igniteui-angular-performance/src/assets/images/flags/tw.png new file mode 100644 index 00000000000..88cc0dfc6d7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/tz.png b/projects/igniteui-angular-performance/src/assets/images/flags/tz.png new file mode 100644 index 00000000000..94ca541a1a9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/tz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ua.png b/projects/igniteui-angular-performance/src/assets/images/flags/ua.png new file mode 100644 index 00000000000..80301f46100 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ua.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ug.png b/projects/igniteui-angular-performance/src/assets/images/flags/ug.png new file mode 100644 index 00000000000..fec8a452195 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ug.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/us.png b/projects/igniteui-angular-performance/src/assets/images/flags/us.png new file mode 100644 index 00000000000..07ddf4e718c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/us.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/uy.png b/projects/igniteui-angular-performance/src/assets/images/flags/uy.png new file mode 100644 index 00000000000..d49a4f1d21e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/uy.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/uz.png b/projects/igniteui-angular-performance/src/assets/images/flags/uz.png new file mode 100644 index 00000000000..37688d883a7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/uz.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/va.png b/projects/igniteui-angular-performance/src/assets/images/flags/va.png new file mode 100644 index 00000000000..9938009ece1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/va.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/vc.png b/projects/igniteui-angular-performance/src/assets/images/flags/vc.png new file mode 100644 index 00000000000..55018b1437b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/vc.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ve.png b/projects/igniteui-angular-performance/src/assets/images/flags/ve.png new file mode 100644 index 00000000000..4c8b135ab72 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ve.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/vn.png b/projects/igniteui-angular-performance/src/assets/images/flags/vn.png new file mode 100644 index 00000000000..e9edf37ff74 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/vn.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/vu.png b/projects/igniteui-angular-performance/src/assets/images/flags/vu.png new file mode 100644 index 00000000000..b2214473b5e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/vu.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ws.png b/projects/igniteui-angular-performance/src/assets/images/flags/ws.png new file mode 100644 index 00000000000..b44c452215f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ws.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/ye.png b/projects/igniteui-angular-performance/src/assets/images/flags/ye.png new file mode 100644 index 00000000000..61a0a5634f9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/ye.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/za.png b/projects/igniteui-angular-performance/src/assets/images/flags/za.png new file mode 100644 index 00000000000..b6ac53e44d0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/za.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/zm.png b/projects/igniteui-angular-performance/src/assets/images/flags/zm.png new file mode 100644 index 00000000000..a8b574959d2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/zm.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/flags/zw.png b/projects/igniteui-angular-performance/src/assets/images/flags/zw.png new file mode 100644 index 00000000000..004cd2a6e64 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/flags/zw.png differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/0.jpg b/projects/igniteui-angular-performance/src/assets/images/men/0.jpg new file mode 100644 index 00000000000..e29aaafb904 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/0.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/1.jpg b/projects/igniteui-angular-performance/src/assets/images/men/1.jpg new file mode 100644 index 00000000000..8004cc41119 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/1.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/10.jpg b/projects/igniteui-angular-performance/src/assets/images/men/10.jpg new file mode 100644 index 00000000000..8a9edd8d12b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/10.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/100.jpg b/projects/igniteui-angular-performance/src/assets/images/men/100.jpg new file mode 100644 index 00000000000..26f9951ab60 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/100.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/11.jpg b/projects/igniteui-angular-performance/src/assets/images/men/11.jpg new file mode 100644 index 00000000000..abddef0e876 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/11.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/12.jpg b/projects/igniteui-angular-performance/src/assets/images/men/12.jpg new file mode 100644 index 00000000000..b83a77397c4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/12.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/13.jpg b/projects/igniteui-angular-performance/src/assets/images/men/13.jpg new file mode 100644 index 00000000000..43269e04549 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/13.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/14.jpg b/projects/igniteui-angular-performance/src/assets/images/men/14.jpg new file mode 100644 index 00000000000..606b1a6f793 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/14.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/15.jpg b/projects/igniteui-angular-performance/src/assets/images/men/15.jpg new file mode 100644 index 00000000000..2818c5dda06 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/15.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/16.jpg b/projects/igniteui-angular-performance/src/assets/images/men/16.jpg new file mode 100644 index 00000000000..fc6bd14969f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/16.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/17.jpg b/projects/igniteui-angular-performance/src/assets/images/men/17.jpg new file mode 100644 index 00000000000..cfc6f311c55 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/17.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/18.jpg b/projects/igniteui-angular-performance/src/assets/images/men/18.jpg new file mode 100644 index 00000000000..1de43e9256f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/18.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/19.jpg b/projects/igniteui-angular-performance/src/assets/images/men/19.jpg new file mode 100644 index 00000000000..53023f84e1a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/19.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/2.jpg b/projects/igniteui-angular-performance/src/assets/images/men/2.jpg new file mode 100644 index 00000000000..7c2b4d63463 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/2.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/20.jpg b/projects/igniteui-angular-performance/src/assets/images/men/20.jpg new file mode 100644 index 00000000000..3e5f9457e47 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/20.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/21.jpg b/projects/igniteui-angular-performance/src/assets/images/men/21.jpg new file mode 100644 index 00000000000..cfba1fe4de4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/21.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/22.jpg b/projects/igniteui-angular-performance/src/assets/images/men/22.jpg new file mode 100644 index 00000000000..dcbaf260cc0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/22.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/23.jpg b/projects/igniteui-angular-performance/src/assets/images/men/23.jpg new file mode 100644 index 00000000000..3a2b514c33b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/23.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/24.jpg b/projects/igniteui-angular-performance/src/assets/images/men/24.jpg new file mode 100644 index 00000000000..c76f3f51263 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/24.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/25.jpg b/projects/igniteui-angular-performance/src/assets/images/men/25.jpg new file mode 100644 index 00000000000..f4fb14873ab Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/25.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/26.jpg b/projects/igniteui-angular-performance/src/assets/images/men/26.jpg new file mode 100644 index 00000000000..9dc05580e0c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/26.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/27.jpg b/projects/igniteui-angular-performance/src/assets/images/men/27.jpg new file mode 100644 index 00000000000..f3758fcb82d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/27.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/28.jpg b/projects/igniteui-angular-performance/src/assets/images/men/28.jpg new file mode 100644 index 00000000000..dfc34c2f929 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/28.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/29.jpg b/projects/igniteui-angular-performance/src/assets/images/men/29.jpg new file mode 100644 index 00000000000..6c3e004c168 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/29.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/3.jpg b/projects/igniteui-angular-performance/src/assets/images/men/3.jpg new file mode 100644 index 00000000000..4fc0e104c65 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/3.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/30.jpg b/projects/igniteui-angular-performance/src/assets/images/men/30.jpg new file mode 100644 index 00000000000..d04b7a26692 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/30.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/31.jpg b/projects/igniteui-angular-performance/src/assets/images/men/31.jpg new file mode 100644 index 00000000000..d5d73910084 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/31.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/32.jpg b/projects/igniteui-angular-performance/src/assets/images/men/32.jpg new file mode 100644 index 00000000000..279b70def3d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/32.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/33.jpg b/projects/igniteui-angular-performance/src/assets/images/men/33.jpg new file mode 100644 index 00000000000..07652946759 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/33.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/34.jpg b/projects/igniteui-angular-performance/src/assets/images/men/34.jpg new file mode 100644 index 00000000000..138fc3946d9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/34.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/35.jpg b/projects/igniteui-angular-performance/src/assets/images/men/35.jpg new file mode 100644 index 00000000000..ad943c9dec5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/35.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/36.jpg b/projects/igniteui-angular-performance/src/assets/images/men/36.jpg new file mode 100644 index 00000000000..62ea75fb8f0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/36.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/37.jpg b/projects/igniteui-angular-performance/src/assets/images/men/37.jpg new file mode 100644 index 00000000000..41dca98aead Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/37.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/38.jpg b/projects/igniteui-angular-performance/src/assets/images/men/38.jpg new file mode 100644 index 00000000000..ed97c9d0b22 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/38.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/39.jpg b/projects/igniteui-angular-performance/src/assets/images/men/39.jpg new file mode 100644 index 00000000000..26f9951ab60 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/39.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/4.jpg b/projects/igniteui-angular-performance/src/assets/images/men/4.jpg new file mode 100644 index 00000000000..68b8bb4416c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/4.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/40.jpg b/projects/igniteui-angular-performance/src/assets/images/men/40.jpg new file mode 100644 index 00000000000..c28fc2c7460 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/40.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/41.jpg b/projects/igniteui-angular-performance/src/assets/images/men/41.jpg new file mode 100644 index 00000000000..1daa4b8ae36 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/41.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/42.jpg b/projects/igniteui-angular-performance/src/assets/images/men/42.jpg new file mode 100644 index 00000000000..c0ec114caa2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/42.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/43.jpg b/projects/igniteui-angular-performance/src/assets/images/men/43.jpg new file mode 100644 index 00000000000..a6a39bfc88a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/43.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/44.jpg b/projects/igniteui-angular-performance/src/assets/images/men/44.jpg new file mode 100644 index 00000000000..f24b739a201 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/44.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/45.jpg b/projects/igniteui-angular-performance/src/assets/images/men/45.jpg new file mode 100644 index 00000000000..6d1e41cc9ee Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/45.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/46.jpg b/projects/igniteui-angular-performance/src/assets/images/men/46.jpg new file mode 100644 index 00000000000..5609a0edfda Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/46.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/47.jpg b/projects/igniteui-angular-performance/src/assets/images/men/47.jpg new file mode 100644 index 00000000000..6888bdd2c37 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/47.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/48.jpg b/projects/igniteui-angular-performance/src/assets/images/men/48.jpg new file mode 100644 index 00000000000..89f03a97172 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/48.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/49.jpg b/projects/igniteui-angular-performance/src/assets/images/men/49.jpg new file mode 100644 index 00000000000..dcf2608a885 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/49.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/5.jpg b/projects/igniteui-angular-performance/src/assets/images/men/5.jpg new file mode 100644 index 00000000000..4d47bd1afc6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/5.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/50.jpg b/projects/igniteui-angular-performance/src/assets/images/men/50.jpg new file mode 100644 index 00000000000..822813ec4b2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/50.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/51.jpg b/projects/igniteui-angular-performance/src/assets/images/men/51.jpg new file mode 100644 index 00000000000..b4101aecb6a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/51.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/52.jpg b/projects/igniteui-angular-performance/src/assets/images/men/52.jpg new file mode 100644 index 00000000000..1de43e9256f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/52.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/53.jpg b/projects/igniteui-angular-performance/src/assets/images/men/53.jpg new file mode 100644 index 00000000000..8968d3cf227 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/53.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/54.jpg b/projects/igniteui-angular-performance/src/assets/images/men/54.jpg new file mode 100644 index 00000000000..3e229e6a7e4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/54.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/55.jpg b/projects/igniteui-angular-performance/src/assets/images/men/55.jpg new file mode 100644 index 00000000000..02a105559b6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/55.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/56.jpg b/projects/igniteui-angular-performance/src/assets/images/men/56.jpg new file mode 100644 index 00000000000..fc9f3fa0743 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/56.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/57 (1).jpg b/projects/igniteui-angular-performance/src/assets/images/men/57 (1).jpg new file mode 100644 index 00000000000..c45665be739 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/57 (1).jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/57.jpg b/projects/igniteui-angular-performance/src/assets/images/men/57.jpg new file mode 100644 index 00000000000..ea4a22e51c3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/57.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/58.jpg b/projects/igniteui-angular-performance/src/assets/images/men/58.jpg new file mode 100644 index 00000000000..84791099891 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/58.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/59.jpg b/projects/igniteui-angular-performance/src/assets/images/men/59.jpg new file mode 100644 index 00000000000..b7b9a3905f3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/59.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/6.jpg b/projects/igniteui-angular-performance/src/assets/images/men/6.jpg new file mode 100644 index 00000000000..1258f0a9df7 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/6.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/60.jpg b/projects/igniteui-angular-performance/src/assets/images/men/60.jpg new file mode 100644 index 00000000000..52c1920c649 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/60.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/61.jpg b/projects/igniteui-angular-performance/src/assets/images/men/61.jpg new file mode 100644 index 00000000000..2481114b79c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/61.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/62.jpg b/projects/igniteui-angular-performance/src/assets/images/men/62.jpg new file mode 100644 index 00000000000..124dbe71c91 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/62.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/63.jpg b/projects/igniteui-angular-performance/src/assets/images/men/63.jpg new file mode 100644 index 00000000000..fa6d4819358 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/63.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/64.jpg b/projects/igniteui-angular-performance/src/assets/images/men/64.jpg new file mode 100644 index 00000000000..6cbce1af0e9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/64.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/65.jpg b/projects/igniteui-angular-performance/src/assets/images/men/65.jpg new file mode 100644 index 00000000000..c004920002d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/65.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/66.jpg b/projects/igniteui-angular-performance/src/assets/images/men/66.jpg new file mode 100644 index 00000000000..437143fb34a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/66.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/67.jpg b/projects/igniteui-angular-performance/src/assets/images/men/67.jpg new file mode 100644 index 00000000000..68b8bb4416c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/67.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/68.jpg b/projects/igniteui-angular-performance/src/assets/images/men/68.jpg new file mode 100644 index 00000000000..b318dd4b4cf Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/68.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/69.jpg b/projects/igniteui-angular-performance/src/assets/images/men/69.jpg new file mode 100644 index 00000000000..d39345ff86c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/69.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/7.jpg b/projects/igniteui-angular-performance/src/assets/images/men/7.jpg new file mode 100644 index 00000000000..1171cfb514a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/7.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/70.jpg b/projects/igniteui-angular-performance/src/assets/images/men/70.jpg new file mode 100644 index 00000000000..1e4b6773f54 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/70.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/71.jpg b/projects/igniteui-angular-performance/src/assets/images/men/71.jpg new file mode 100644 index 00000000000..7007fabea9c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/71.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/72.jpg b/projects/igniteui-angular-performance/src/assets/images/men/72.jpg new file mode 100644 index 00000000000..fb926529a5d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/72.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/73.jpg b/projects/igniteui-angular-performance/src/assets/images/men/73.jpg new file mode 100644 index 00000000000..b6a30e278b9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/73.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/74.jpg b/projects/igniteui-angular-performance/src/assets/images/men/74.jpg new file mode 100644 index 00000000000..abacfd1a2b5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/74.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/75.jpg b/projects/igniteui-angular-performance/src/assets/images/men/75.jpg new file mode 100644 index 00000000000..04cb7975376 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/75.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/76.jpg b/projects/igniteui-angular-performance/src/assets/images/men/76.jpg new file mode 100644 index 00000000000..681a7f1009a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/76.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/77.jpg b/projects/igniteui-angular-performance/src/assets/images/men/77.jpg new file mode 100644 index 00000000000..a243818b38c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/77.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/78.jpg b/projects/igniteui-angular-performance/src/assets/images/men/78.jpg new file mode 100644 index 00000000000..6438e80b9b5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/78.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/79.jpg b/projects/igniteui-angular-performance/src/assets/images/men/79.jpg new file mode 100644 index 00000000000..cf30fdf3679 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/79.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/8.jpg b/projects/igniteui-angular-performance/src/assets/images/men/8.jpg new file mode 100644 index 00000000000..33f2cdfcb82 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/8.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/80.jpg b/projects/igniteui-angular-performance/src/assets/images/men/80.jpg new file mode 100644 index 00000000000..b2d9bcee15d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/80.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/81.jpg b/projects/igniteui-angular-performance/src/assets/images/men/81.jpg new file mode 100644 index 00000000000..0b322677517 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/81.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/82.jpg b/projects/igniteui-angular-performance/src/assets/images/men/82.jpg new file mode 100644 index 00000000000..f32459ae186 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/82.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/83.jpg b/projects/igniteui-angular-performance/src/assets/images/men/83.jpg new file mode 100644 index 00000000000..dc3ae1f9bd3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/83.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/84.jpg b/projects/igniteui-angular-performance/src/assets/images/men/84.jpg new file mode 100644 index 00000000000..f3758fcb82d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/84.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/85.jpg b/projects/igniteui-angular-performance/src/assets/images/men/85.jpg new file mode 100644 index 00000000000..43ece19071e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/85.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/86.jpg b/projects/igniteui-angular-performance/src/assets/images/men/86.jpg new file mode 100644 index 00000000000..9358491105b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/86.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/87.jpg b/projects/igniteui-angular-performance/src/assets/images/men/87.jpg new file mode 100644 index 00000000000..2a4032424a8 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/87.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/88.jpg b/projects/igniteui-angular-performance/src/assets/images/men/88.jpg new file mode 100644 index 00000000000..02fa1cac663 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/88.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/89.jpg b/projects/igniteui-angular-performance/src/assets/images/men/89.jpg new file mode 100644 index 00000000000..57962bde02e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/89.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/9.jpg b/projects/igniteui-angular-performance/src/assets/images/men/9.jpg new file mode 100644 index 00000000000..be4d0110e81 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/9.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/90.jpg b/projects/igniteui-angular-performance/src/assets/images/men/90.jpg new file mode 100644 index 00000000000..00720c2f6ee Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/90.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/91.jpg b/projects/igniteui-angular-performance/src/assets/images/men/91.jpg new file mode 100644 index 00000000000..8c3ac42c481 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/91.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/92.jpg b/projects/igniteui-angular-performance/src/assets/images/men/92.jpg new file mode 100644 index 00000000000..b96231b5619 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/92.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/93.jpg b/projects/igniteui-angular-performance/src/assets/images/men/93.jpg new file mode 100644 index 00000000000..3a2b514c33b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/93.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/94.jpg b/projects/igniteui-angular-performance/src/assets/images/men/94.jpg new file mode 100644 index 00000000000..57b6c6b6367 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/94.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/95.jpg b/projects/igniteui-angular-performance/src/assets/images/men/95.jpg new file mode 100644 index 00000000000..138fc3946d9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/95.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/96.jpg b/projects/igniteui-angular-performance/src/assets/images/men/96.jpg new file mode 100644 index 00000000000..ad943c9dec5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/96.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/97.jpg b/projects/igniteui-angular-performance/src/assets/images/men/97.jpg new file mode 100644 index 00000000000..62ea75fb8f0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/97.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/98.jpg b/projects/igniteui-angular-performance/src/assets/images/men/98.jpg new file mode 100644 index 00000000000..41dca98aead Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/98.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/men/99.jpg b/projects/igniteui-angular-performance/src/assets/images/men/99.jpg new file mode 100644 index 00000000000..ed97c9d0b22 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/men/99.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/0.jpg b/projects/igniteui-angular-performance/src/assets/images/women/0.jpg new file mode 100644 index 00000000000..c6009f9eb95 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/0.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/1.jpg b/projects/igniteui-angular-performance/src/assets/images/women/1.jpg new file mode 100644 index 00000000000..d426fa2bfee Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/1.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/10.jpg b/projects/igniteui-angular-performance/src/assets/images/women/10.jpg new file mode 100644 index 00000000000..c7322386305 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/10.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/100.jpg b/projects/igniteui-angular-performance/src/assets/images/women/100.jpg new file mode 100644 index 00000000000..188758a49d6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/100.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/11.jpg b/projects/igniteui-angular-performance/src/assets/images/women/11.jpg new file mode 100644 index 00000000000..1027c59082e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/11.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/12.jpg b/projects/igniteui-angular-performance/src/assets/images/women/12.jpg new file mode 100644 index 00000000000..ab53c42d02c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/12.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/13.jpg b/projects/igniteui-angular-performance/src/assets/images/women/13.jpg new file mode 100644 index 00000000000..9ac7687af6d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/13.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/14.jpg b/projects/igniteui-angular-performance/src/assets/images/women/14.jpg new file mode 100644 index 00000000000..22ab075068e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/14.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/15.jpg b/projects/igniteui-angular-performance/src/assets/images/women/15.jpg new file mode 100644 index 00000000000..2818c5dda06 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/15.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/16.jpg b/projects/igniteui-angular-performance/src/assets/images/women/16.jpg new file mode 100644 index 00000000000..208d90246d2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/16.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/17.jpg b/projects/igniteui-angular-performance/src/assets/images/women/17.jpg new file mode 100644 index 00000000000..97e4885edeb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/17.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/18.jpg b/projects/igniteui-angular-performance/src/assets/images/women/18.jpg new file mode 100644 index 00000000000..c21271a2042 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/18.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/19.jpg b/projects/igniteui-angular-performance/src/assets/images/women/19.jpg new file mode 100644 index 00000000000..c2e4428651e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/19.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/2.jpg b/projects/igniteui-angular-performance/src/assets/images/women/2.jpg new file mode 100644 index 00000000000..fdf962529f3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/2.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/20.jpg b/projects/igniteui-angular-performance/src/assets/images/women/20.jpg new file mode 100644 index 00000000000..5e359ec31c5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/20.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/21.jpg b/projects/igniteui-angular-performance/src/assets/images/women/21.jpg new file mode 100644 index 00000000000..d4ec655fbf2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/21.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/22.jpg b/projects/igniteui-angular-performance/src/assets/images/women/22.jpg new file mode 100644 index 00000000000..86ee471d2bb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/22.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/23.jpg b/projects/igniteui-angular-performance/src/assets/images/women/23.jpg new file mode 100644 index 00000000000..3e1fe98e6a3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/23.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/24.jpg b/projects/igniteui-angular-performance/src/assets/images/women/24.jpg new file mode 100644 index 00000000000..7839f26a7c3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/24.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/25.jpg b/projects/igniteui-angular-performance/src/assets/images/women/25.jpg new file mode 100644 index 00000000000..f88c98b6c6c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/25.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/26.jpg b/projects/igniteui-angular-performance/src/assets/images/women/26.jpg new file mode 100644 index 00000000000..96e1934455d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/26.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/27.jpg b/projects/igniteui-angular-performance/src/assets/images/women/27.jpg new file mode 100644 index 00000000000..4c46653c624 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/27.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/28.jpg b/projects/igniteui-angular-performance/src/assets/images/women/28.jpg new file mode 100644 index 00000000000..c6c722e4b93 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/28.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/29.jpg b/projects/igniteui-angular-performance/src/assets/images/women/29.jpg new file mode 100644 index 00000000000..d916ac9f17c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/29.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/3.jpg b/projects/igniteui-angular-performance/src/assets/images/women/3.jpg new file mode 100644 index 00000000000..c0e9afee2c0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/3.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/30.jpg b/projects/igniteui-angular-performance/src/assets/images/women/30.jpg new file mode 100644 index 00000000000..ad6ad9ff1da Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/30.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/31.jpg b/projects/igniteui-angular-performance/src/assets/images/women/31.jpg new file mode 100644 index 00000000000..fcd6723d4db Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/31.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/32.jpg b/projects/igniteui-angular-performance/src/assets/images/women/32.jpg new file mode 100644 index 00000000000..a6a2e5f839a Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/32.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/33.jpg b/projects/igniteui-angular-performance/src/assets/images/women/33.jpg new file mode 100644 index 00000000000..f2659bd7dac Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/33.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/34.jpg b/projects/igniteui-angular-performance/src/assets/images/women/34.jpg new file mode 100644 index 00000000000..49a47135253 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/34.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/35.jpg b/projects/igniteui-angular-performance/src/assets/images/women/35.jpg new file mode 100644 index 00000000000..eb92fd80266 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/35.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/36.jpg b/projects/igniteui-angular-performance/src/assets/images/women/36.jpg new file mode 100644 index 00000000000..f0edc423739 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/36.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/37.jpg b/projects/igniteui-angular-performance/src/assets/images/women/37.jpg new file mode 100644 index 00000000000..13f863a640c Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/37.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/38.jpg b/projects/igniteui-angular-performance/src/assets/images/women/38.jpg new file mode 100644 index 00000000000..3e89648c694 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/38.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/39.jpg b/projects/igniteui-angular-performance/src/assets/images/women/39.jpg new file mode 100644 index 00000000000..7c0d29bcbb8 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/39.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/4.jpg b/projects/igniteui-angular-performance/src/assets/images/women/4.jpg new file mode 100644 index 00000000000..eb41bf6e4b2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/4.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/40.jpg b/projects/igniteui-angular-performance/src/assets/images/women/40.jpg new file mode 100644 index 00000000000..8d21d688b3b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/40.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/41.jpg b/projects/igniteui-angular-performance/src/assets/images/women/41.jpg new file mode 100644 index 00000000000..a359e5454fa Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/41.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/42.jpg b/projects/igniteui-angular-performance/src/assets/images/women/42.jpg new file mode 100644 index 00000000000..0abe17d4404 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/42.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/43.jpg b/projects/igniteui-angular-performance/src/assets/images/women/43.jpg new file mode 100644 index 00000000000..3aeb58e34a2 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/43.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/44.jpg b/projects/igniteui-angular-performance/src/assets/images/women/44.jpg new file mode 100644 index 00000000000..a63f8ce5798 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/44.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/45.jpg b/projects/igniteui-angular-performance/src/assets/images/women/45.jpg new file mode 100644 index 00000000000..9bef78e23ef Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/45.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/46.jpg b/projects/igniteui-angular-performance/src/assets/images/women/46.jpg new file mode 100644 index 00000000000..f77567141ca Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/46.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/47.jpg b/projects/igniteui-angular-performance/src/assets/images/women/47.jpg new file mode 100644 index 00000000000..7839f26a7c3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/47.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/48.jpg b/projects/igniteui-angular-performance/src/assets/images/women/48.jpg new file mode 100644 index 00000000000..502e684746b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/48.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/49.jpg b/projects/igniteui-angular-performance/src/assets/images/women/49.jpg new file mode 100644 index 00000000000..ecead1fae72 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/49.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/5.jpg b/projects/igniteui-angular-performance/src/assets/images/women/5.jpg new file mode 100644 index 00000000000..0d810bd3f94 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/5.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/50.jpg b/projects/igniteui-angular-performance/src/assets/images/women/50.jpg new file mode 100644 index 00000000000..98fa7b11b23 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/50.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/51.jpg b/projects/igniteui-angular-performance/src/assets/images/women/51.jpg new file mode 100644 index 00000000000..502e684746b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/51.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/52.jpg b/projects/igniteui-angular-performance/src/assets/images/women/52.jpg new file mode 100644 index 00000000000..6efac62c4c1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/52.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/53.jpg b/projects/igniteui-angular-performance/src/assets/images/women/53.jpg new file mode 100644 index 00000000000..085c6c0fdf1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/53.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/54.jpg b/projects/igniteui-angular-performance/src/assets/images/women/54.jpg new file mode 100644 index 00000000000..4c574932cd5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/54.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/55.jpg b/projects/igniteui-angular-performance/src/assets/images/women/55.jpg new file mode 100644 index 00000000000..9e24b8ef0f6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/55.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/56.jpg b/projects/igniteui-angular-performance/src/assets/images/women/56.jpg new file mode 100644 index 00000000000..f2659bd7dac Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/56.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/57.jpg b/projects/igniteui-angular-performance/src/assets/images/women/57.jpg new file mode 100644 index 00000000000..ea4a22e51c3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/57.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/58.jpg b/projects/igniteui-angular-performance/src/assets/images/women/58.jpg new file mode 100644 index 00000000000..f39c0d7c130 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/58.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/59.jpg b/projects/igniteui-angular-performance/src/assets/images/women/59.jpg new file mode 100644 index 00000000000..b968578921f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/59.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/6.jpg b/projects/igniteui-angular-performance/src/assets/images/women/6.jpg new file mode 100644 index 00000000000..e6e223faca8 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/6.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/60.jpg b/projects/igniteui-angular-performance/src/assets/images/women/60.jpg new file mode 100644 index 00000000000..4e88252a3af Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/60.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/61.jpg b/projects/igniteui-angular-performance/src/assets/images/women/61.jpg new file mode 100644 index 00000000000..5e822646a80 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/61.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/62.jpg b/projects/igniteui-angular-performance/src/assets/images/women/62.jpg new file mode 100644 index 00000000000..f0edc423739 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/62.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/63.jpg b/projects/igniteui-angular-performance/src/assets/images/women/63.jpg new file mode 100644 index 00000000000..21e482dc7a3 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/63.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/64.jpg b/projects/igniteui-angular-performance/src/assets/images/women/64.jpg new file mode 100644 index 00000000000..ec96c104653 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/64.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/65.jpg b/projects/igniteui-angular-performance/src/assets/images/women/65.jpg new file mode 100644 index 00000000000..3cab57987a6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/65.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/66.jpg b/projects/igniteui-angular-performance/src/assets/images/women/66.jpg new file mode 100644 index 00000000000..36cc0a59728 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/66.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/67.jpg b/projects/igniteui-angular-performance/src/assets/images/women/67.jpg new file mode 100644 index 00000000000..8d0815e0199 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/67.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/68.jpg b/projects/igniteui-angular-performance/src/assets/images/women/68.jpg new file mode 100644 index 00000000000..3391304273d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/68.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/69.jpg b/projects/igniteui-angular-performance/src/assets/images/women/69.jpg new file mode 100644 index 00000000000..ea027b14b0b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/69.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/7.jpg b/projects/igniteui-angular-performance/src/assets/images/women/7.jpg new file mode 100644 index 00000000000..acab0389ca5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/7.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/70.jpg b/projects/igniteui-angular-performance/src/assets/images/women/70.jpg new file mode 100644 index 00000000000..0cc2dff1b0d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/70.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/71.jpg b/projects/igniteui-angular-performance/src/assets/images/women/71.jpg new file mode 100644 index 00000000000..402ac4141ce Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/71.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/72.jpg b/projects/igniteui-angular-performance/src/assets/images/women/72.jpg new file mode 100644 index 00000000000..3435bc70094 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/72.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/73.jpg b/projects/igniteui-angular-performance/src/assets/images/women/73.jpg new file mode 100644 index 00000000000..2b0c8a21ad9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/73.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/74.jpg b/projects/igniteui-angular-performance/src/assets/images/women/74.jpg new file mode 100644 index 00000000000..188758a49d6 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/74.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/75.jpg b/projects/igniteui-angular-performance/src/assets/images/women/75.jpg new file mode 100644 index 00000000000..08b043a4ae5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/75.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/76.jpg b/projects/igniteui-angular-performance/src/assets/images/women/76.jpg new file mode 100644 index 00000000000..e6dbae8e2a5 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/76.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/77.jpg b/projects/igniteui-angular-performance/src/assets/images/women/77.jpg new file mode 100644 index 00000000000..fcababdb204 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/77.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/78.jpg b/projects/igniteui-angular-performance/src/assets/images/women/78.jpg new file mode 100644 index 00000000000..9c1a119fb4b Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/78.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/79.jpg b/projects/igniteui-angular-performance/src/assets/images/women/79.jpg new file mode 100644 index 00000000000..b6dd0668d7f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/79.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/8.jpg b/projects/igniteui-angular-performance/src/assets/images/women/8.jpg new file mode 100644 index 00000000000..6ab25af13e4 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/8.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/80.jpg b/projects/igniteui-angular-performance/src/assets/images/women/80.jpg new file mode 100644 index 00000000000..981542f6676 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/80.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/81.jpg b/projects/igniteui-angular-performance/src/assets/images/women/81.jpg new file mode 100644 index 00000000000..bf1dc8c1bec Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/81.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/82.jpg b/projects/igniteui-angular-performance/src/assets/images/women/82.jpg new file mode 100644 index 00000000000..fa1a29747eb Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/82.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/83.jpg b/projects/igniteui-angular-performance/src/assets/images/women/83.jpg new file mode 100644 index 00000000000..32a4a7e93ea Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/83.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/84.jpg b/projects/igniteui-angular-performance/src/assets/images/women/84.jpg new file mode 100644 index 00000000000..beb5491df73 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/84.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/85.jpg b/projects/igniteui-angular-performance/src/assets/images/women/85.jpg new file mode 100644 index 00000000000..0a900f9e887 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/85.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/86.jpg b/projects/igniteui-angular-performance/src/assets/images/women/86.jpg new file mode 100644 index 00000000000..4a01b17b1d1 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/86.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/87.jpg b/projects/igniteui-angular-performance/src/assets/images/women/87.jpg new file mode 100644 index 00000000000..3c40620c57e Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/87.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/88.jpg b/projects/igniteui-angular-performance/src/assets/images/women/88.jpg new file mode 100644 index 00000000000..3be827194e0 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/88.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/89.jpg b/projects/igniteui-angular-performance/src/assets/images/women/89.jpg new file mode 100644 index 00000000000..ad6ad9ff1da Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/89.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/9.jpg b/projects/igniteui-angular-performance/src/assets/images/women/9.jpg new file mode 100644 index 00000000000..0c730dc0428 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/9.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/90.jpg b/projects/igniteui-angular-performance/src/assets/images/women/90.jpg new file mode 100644 index 00000000000..6dff1dea35f Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/90.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/91.jpg b/projects/igniteui-angular-performance/src/assets/images/women/91.jpg new file mode 100644 index 00000000000..97466f849ef Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/91.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/92.jpg b/projects/igniteui-angular-performance/src/assets/images/women/92.jpg new file mode 100644 index 00000000000..cd667ab8390 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/92.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/93.jpg b/projects/igniteui-angular-performance/src/assets/images/women/93.jpg new file mode 100644 index 00000000000..81ea0613898 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/93.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/94.jpg b/projects/igniteui-angular-performance/src/assets/images/women/94.jpg new file mode 100644 index 00000000000..fc71188bc73 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/94.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/95.jpg b/projects/igniteui-angular-performance/src/assets/images/women/95.jpg new file mode 100644 index 00000000000..ff819b3e9fd Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/95.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/96.jpg b/projects/igniteui-angular-performance/src/assets/images/women/96.jpg new file mode 100644 index 00000000000..0cc2dff1b0d Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/96.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/97.jpg b/projects/igniteui-angular-performance/src/assets/images/women/97.jpg new file mode 100644 index 00000000000..402ac4141ce Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/97.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/98.jpg b/projects/igniteui-angular-performance/src/assets/images/women/98.jpg new file mode 100644 index 00000000000..3435bc70094 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/98.jpg differ diff --git a/projects/igniteui-angular-performance/src/assets/images/women/99.jpg b/projects/igniteui-angular-performance/src/assets/images/women/99.jpg new file mode 100644 index 00000000000..2b0c8a21ad9 Binary files /dev/null and b/projects/igniteui-angular-performance/src/assets/images/women/99.jpg differ diff --git a/projects/igniteui-angular-performance/src/index.html b/projects/igniteui-angular-performance/src/index.html new file mode 100644 index 00000000000..d6b92f29041 --- /dev/null +++ b/projects/igniteui-angular-performance/src/index.html @@ -0,0 +1,13 @@ + + + + + IgniteuiAngularPerformance + + + + + + + + diff --git a/projects/igniteui-angular-performance/src/main.ts b/projects/igniteui-angular-performance/src/main.ts new file mode 100644 index 00000000000..35b00f34633 --- /dev/null +++ b/projects/igniteui-angular-performance/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/projects/igniteui-angular-performance/src/styles.scss b/projects/igniteui-angular-performance/src/styles.scss new file mode 100644 index 00000000000..f6fc0768f45 --- /dev/null +++ b/projects/igniteui-angular-performance/src/styles.scss @@ -0,0 +1,23 @@ +@use '../../igniteui-angular/src/lib/core/styles/themes' as *; +@import url('https://fonts.googleapis.com/icon?family=Material+Icons'); +@include core(); +@include typography( + $font-family: $material-typeface, + $type-scale: $material-type-scale +); +@include theme($default-palette); + +html, +body { + height: 100%; + width: 100%; +} + +body { + margin: 0; + padding: 0; +} + +* { + box-sizing: border-box; +} diff --git a/projects/igniteui-angular-performance/tsconfig.app.json b/projects/igniteui-angular-performance/tsconfig.app.json new file mode 100644 index 00000000000..742c48812c6 --- /dev/null +++ b/projects/igniteui-angular-performance/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/app", + "types": [] + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "src/**/*.spec.ts" + ] +} diff --git a/projects/igniteui-angular-performance/tsconfig.spec.json b/projects/igniteui-angular-performance/tsconfig.spec.json new file mode 100644 index 00000000000..0feea88ed47 --- /dev/null +++ b/projects/igniteui-angular-performance/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/projects/igniteui-angular/src/lib/data-operations/data-util.ts b/projects/igniteui-angular/src/lib/data-operations/data-util.ts index cc0e0d5ad1c..ac609764713 100644 --- a/projects/igniteui-angular/src/lib/data-operations/data-util.ts +++ b/projects/igniteui-angular/src/lib/data-operations/data-util.ts @@ -24,7 +24,7 @@ import { IGroupingExpression } from './grouping-expression.interface'; /** * @hidden */ - export const DataType = { +export const DataType = { String: 'string', Number: 'number', Boolean: 'boolean', @@ -55,19 +55,44 @@ export class DataUtil { public static treeGridSort(hierarchicalData: ITreeGridRecord[], expressions: ISortingExpression[], sorting: IGridSortingStrategy = new IgxDataRecordSorting(), - parent?: ITreeGridRecord, grid?: GridType): ITreeGridRecord[] { - let res: ITreeGridRecord[] = []; - hierarchicalData.forEach((hr: ITreeGridRecord) => { - const rec: ITreeGridRecord = DataUtil.cloneTreeGridRecord(hr); - rec.parent = parent; - if (rec.children) { - rec.children = DataUtil.treeGridSort(rec.children, expressions, sorting, rec, grid); + const res: ITreeGridRecord[] = []; + const stack: { + original: ITreeGridRecord[]; + parent?: ITreeGridRecord; + result: ITreeGridRecord[]; + }[] = []; + + stack.push({ original: hierarchicalData, parent: null, result: res }); + + while (stack.length > 0) { + const { original, parent, result } = stack.pop()!; + + const clonedRecords: ITreeGridRecord[] = []; + + for (const treeRecord of original) { + const rec: ITreeGridRecord = DataUtil.cloneTreeGridRecord(treeRecord); + rec.parent = parent; + clonedRecords.push(rec); + + // If it has children, process them later + if (rec.children && rec.children.length > 0) { + const childClones: ITreeGridRecord[] = []; + rec.children = childClones; + stack.push({ + original: treeRecord.children, + parent: rec, + result: childClones + }); + } } - res.push(rec); - }); - res = DataUtil.sort(res, expressions, sorting, grid); + // Sort the clonedRecords before assigning to the result + const sorted = DataUtil.sort(clonedRecords, expressions, sorting, grid); + for (const item of sorted) { + result.push(item); + } + } return res; } diff --git a/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts b/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts index 414c61550ff..f27392d45f2 100644 --- a/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts +++ b/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts @@ -54,21 +54,34 @@ export class DefaultSortingStrategy implements ISortingStrategy { ) { const key = fieldName; const reverse = (dir === SortingDirection.Desc ? -1 : 1); - const cmpFunc = (obj1: any, obj2: any) => this.compareObjects(obj1, obj2, key, reverse, ignoreCase, valueResolver, isDate, isTime); - return this.arraySort(data, cmpFunc); + + /** + * Use Schwartizian transform on the data before sorting it so that the sorting value + * is not recomputed on every object compare which improves the number of comparisons from O(nlogn) to O(n) + * where n is the length of the datasource. + * This, on a very large dataset of 1 million records, gives a significant performance boost. + */ + const resolver = valueResolver.bind(this); + const preparedData = data.map(item => { + return { + original: item, + sortValue: this.prepareSortValue(resolver(item, key, isDate, isTime), ignoreCase) + } + }); + const compareFn = (a, b) => reverse * this.compareValues(a.sortValue, b.sortValue); + preparedData.sort(compareFn); + + return preparedData.map(item => item.original); } public compareValues(a: any, b: any): number { - const an = (a === null || a === undefined); - const bn = (b === null || b === undefined); - if (an) { - if (bn) { - return 0; - } - return -1; - } else if (bn) { - return 1; - } + const aIsNullish = a == null; + const bIsNullish = b == null; + + if (aIsNullish && bIsNullish) return 0; + if (aIsNullish) return -1 + if (bIsNullish) return 1; + return a > b ? 1 : a < b ? -1 : 0; } @@ -94,6 +107,10 @@ export class DefaultSortingStrategy implements ISortingStrategy { protected arraySort(data: any[], compareFn?: (arg0: any, arg1: any) => number): any[] { return data.sort(compareFn); } + + protected prepareSortValue(value: any, ignoreCase: boolean) { + return ignoreCase && typeof value === 'string' ? value.toLocaleLowerCase() : value; + } } export class GroupMemberCountSortingStrategy implements ISortingStrategy { diff --git a/projects/igniteui-angular/src/lib/grids/common/strategy.ts b/projects/igniteui-angular/src/lib/grids/common/strategy.ts index 69912780031..d951a4d38bc 100644 --- a/projects/igniteui-angular/src/lib/grids/common/strategy.ts +++ b/projects/igniteui-angular/src/lib/grids/common/strategy.ts @@ -45,6 +45,35 @@ export interface IGridGroupingStrategy extends IGridSortingStrategy { groupBy(data: any[], state: IGroupingState, grid?: any, groupsRecords?: any[], fullResult?: IGroupByResult): IGroupByResult; } +/** + * Represents internal sorting expression that extends the public one. + * Contains boolean properties that represent the type of the column that is being sorted. + * @internal + */ +interface IGridInternalSortingExpression extends ISortingExpression { + isDate: boolean; + isTime: boolean; + isString: boolean; +} + +/** + * Stack item represents a frame. + * Each frame needs: + * - data: The subset of records to process at this level. + * - level: The current grouping level. + * - parentGroup: The parent IGroupByRecord for groups created in this frame. + * - currentIndex: The index within 'data' to start processing. + * - isExpandingChildren: Flag to indicate if children generated by this group should be added to `result` and `metadata`. + * @internal + */ +interface StackFrame { + data: any[]; + level: number; + parentGroup: IGroupByRecord | null; + currentIndex: number; + isExpandingChildren: boolean; +} + /** * Represents a class implementing the IGridSortingStrategy interface. * It provides sorting functionality for grid data based on sorting expressions. @@ -59,111 +88,229 @@ export class IgxSorting implements IGridSortingStrategy { * Returns a new array with the data sorted according to the sorting expressions. */ public sort(data: any[], expressions: ISortingExpression[], grid?: GridType): any[] { - return this.sortDataRecursive(data, expressions, 0, grid); + return this.sortData(data, expressions, grid); + } + + /** + * Retrieves the value of the specified field from the given object, considering date and time data types. + * `key`: The key of the field to retrieve. + * `isDate`: (Optional) Indicates if the field is of type Date. + * `isTime`: (Optional) Indicates if the field is of type Time. + * Returns the value of the specified field in the data object. + * @internal + */ + protected getFieldValue(obj: T, key: string, isDate = false, isTime = false) { + let resolvedValue = resolveNestedPath(obj, columnFieldPath(key)); + if (isDate || isTime) { + const date = parseDate(resolvedValue); + if (date && isDate && isTime) { + resolvedValue = date; + } else if (date && isDate && !isTime) { + resolvedValue = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0); + } else if (date && isTime && !isDate) { + resolvedValue = new Date(new Date().setHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); + } + } + return resolvedValue; } /** - * Recursively groups the provided data based on the given grouping state and returns the grouped result. - * Returns an array containing the grouped result. + * Sorts the provided data array based on the given sorting expressions. + * The method can be used when multiple sorting is performed, going through each one + * Returns a new array with the data sorted according to the sorting expressions. * @internal */ - protected groupDataRecursive( + private sortData( + data: T[], + expressions: ISortingExpression[], + grid: GridType + ): T[] { + const sortingExpressions = this.prepareExpressions(expressions, grid); + + if (data.length <= 1) { + return data; + } + + for (let i = sortingExpressions.length - 1; i >= 0; i--) { + data = sortingExpressions[i].strategy.sort(data, sortingExpressions[i].fieldName, sortingExpressions[i].dir, sortingExpressions[i].ignoreCase, this.getFieldValue, sortingExpressions[i].isDate, sortingExpressions[i].isTime, grid) + } + + return data; + } + + private prepareExpressions(expressions: ISortingExpression[], grid: GridType): IGridInternalSortingExpression[] { + const multipleSortingExpressions: IGridInternalSortingExpression[] = []; + for (const expr of expressions) { + if (!expr.strategy) { + expr.strategy = DefaultSortingStrategy.instance(); + } + const column = grid?.getColumnByName(expr.fieldName); + const isDate = column?.dataType === DATE_TYPE || column?.dataType === DATE_TIME_TYPE; + const isTime = column?.dataType === TIME_TYPE || column?.dataType === DATE_TIME_TYPE; + const isString = column?.dataType === STRING_TYPE; + multipleSortingExpressions.push({ ...expr, isDate, isTime, isString }) + } + return multipleSortingExpressions; + } +} + +/** + * Represents a class implementing the IGridGroupingStrategy interface and extending the IgxSorting class. + * It provides a method to group data based on the given grouping state. + */ +export class IgxGrouping extends IgxSorting implements IGridGroupingStrategy { + /* blazorSuppress */ + /** + * Groups the provided data based on the given grouping state. + * Returns an object containing the result of the grouping operation. + */ + public groupBy(data: any[], state: IGroupingState, grid?: any, + groupsRecords?: any[], fullResult: IGroupByResult = { data: [], metadata: [] }): IGroupByResult { + const grouping = this.groupData(data, state, grid, groupsRecords, fullResult); + grid?.groupingPerformedSubject.next(); + return { + data: grouping.data, + metadata: grouping.metadata + }; + } + + /** + * Groups the provided data based on the given grouping state. + * Changes groupsRecords and fullResult collections by reference. + * Returns an array containing the visible grouped result. + * @internal + */ + protected groupData( data: any[], state: IGroupingState, - level: number, - parent: IGroupByRecord, - metadata: IGroupByRecord[], grid: GridType = null, groupsRecords: any[] = [], - fullResult: IGroupByResult = { data: [], metadata: [] } + fullResult: IGroupByResult ): IGroupByResult { + const expressions = state.expressions; const expansion = state.expansion; - let i = 0; - let result = []; - while (i < data.length) { + + // This holds the final visible data (the rows that are expanded). + const result: any[] = []; + + // This holds the group rows for each record in the result array. Used in grid for information when scrolling. + const metadata: IGroupByRecord[] = []; + + // Initialize the stack with the root level processing. + const initialFrame: StackFrame = { + data: data, + level: 0, + parentGroup: null, + currentIndex: 0, + isExpandingChildren: true + }; + const stack: StackFrame[] = [initialFrame]; + + while (stack.length > 0) { + const currentFrame = stack[stack.length - 1]; // Peek at the top of the stack + + const { data: currentData, level, parentGroup, currentIndex, isExpandingChildren } = currentFrame; + + // If we've processed all data in this frame, pop it. + if (currentIndex >= currentData.length) { + stack.pop(); + continue; + } + + // Process the next group at the current level const column = grid ? grid.getColumnByName(expressions[level].fieldName) : null; const isDate = column?.dataType === DATE_TYPE || column?.dataType === DATE_TIME_TYPE; const isTime = column?.dataType === TIME_TYPE || column?.dataType === DATE_TIME_TYPE; const isString = column?.dataType === STRING_TYPE; - const group = this.groupedRecordsByExpression(data, i, expressions[level], isDate, isTime, isString); + + // Next block of grouped records for the expression of the current level + const group = this.groupedRecordsByExpression( + currentData, + currentIndex, + expressions[level], + isDate, + isTime, + isString, + column?.groupingComparer + ); + + // Create the group row const groupRow: IGroupByRecord = { expression: expressions[level], level, records: cloneArray(group), value: this.getFieldValue(group[0], expressions[level].fieldName, isDate, isTime), - groupParent: parent, + groupParent: parentGroup, groups: [], height: grid ? grid.renderedRowHeight : null, column }; - if (parent) { - parent.groups.push(groupRow); + + // Link to parent's groups list + if (parentGroup) { + parentGroup.groups.push(groupRow); } else { - groupsRecords.push(groupRow); + groupsRecords.push(groupRow) } + + // Determine expansion state for this groupRow const hierarchy = getHierarchy(groupRow); const expandState: IGroupByExpandState = expansion.find((s) => isHierarchyMatch( s.hierarchy || [{ fieldName: groupRow.expression.fieldName, value: groupRow.value }], hierarchy, expressions - )); - const expanded = expandState ? expandState.expanded : state.defaultExpanded; - let recursiveResult; - result.push(groupRow); - metadata.push(null); + ) + ); + const expandedForThisGroup = expandState ? expandState.expanded : state.defaultExpanded; + + // Add the group row to the full result set fullResult.data.push(groupRow); fullResult.metadata.push(null); + + // Add the group row to the visible results (if its parent was expanded or it's a root group) + if (isExpandingChildren) { + result.push(groupRow); + metadata.push(null); + } + + // Advance the current frame's index for the next iteration of its loop + currentFrame.currentIndex += group.length; + if (level < expressions.length - 1) { - recursiveResult = this.groupDataRecursive(group, state, level + 1, groupRow, - [], grid, groupsRecords, fullResult); - if (expanded) { - result = result.concat(recursiveResult.data); - metadata = metadata.concat(recursiveResult.metadata); - } + // If there are more levels to group, push a new frame onto the stack + const nextFrame: StackFrame = { + data: group, // The records of the current group become the data for the next level + level: level + 1, + parentGroup: groupRow, // The current group row is the parent for the next level + currentIndex: 0, + isExpandingChildren: isExpandingChildren && expandedForThisGroup // Children are expanded only if this group is expanded AND parent is expanded + }; + stack.push(nextFrame); } else { + // This is the leaf level, add individual items to fullResult and conditionally to result/metadata for (const groupItem of group) { - fullResult.metadata.push(groupRow); + fullResult.metadata.push(groupRow); // The metadata for an item is its immediate parent group row. fullResult.data.push(groupItem); - } - if (expanded) { - metadata = metadata.concat(fullResult.metadata.slice(fullResult.metadata.length - group.length)); - result = result.concat(fullResult.data.slice(fullResult.data.length - group.length)); + if (isExpandingChildren && expandedForThisGroup) { + // Add to result and metadata only if expanded + metadata.push(groupRow); + result.push(groupItem); + } } } - i += group.length; } - return { data: result, metadata }; - } - /** - * Retrieves the value of the specified field from the given object, considering date and time data types. - * `key`: The key of the field to retrieve. - * `isDate`: (Optional) Indicates if the field is of type Date. - * `isTime`: (Optional) Indicates if the field is of type Time. - * Returns the value of the specified field in the data object. - * @internal - */ - protected getFieldValue(obj: T, key: string, isDate = false, isTime = false) { - let resolvedValue = resolveNestedPath(obj, columnFieldPath(key)); - const date = parseDate(resolvedValue); - if (date && isDate && isTime) { - resolvedValue = date; - } else if (date && isDate && !isTime) { - resolvedValue = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0); - } else if (date && isTime && !isDate) { - resolvedValue = new Date(new Date().setHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); - } - return resolvedValue; + return { data: result, metadata }; } /** - * Groups the records in the provided data array based on the given grouping expression. - * `groupingComparer`: (Optional) A custom grouping comparator to determine the members of the group. - * Returns an array containing the records that belong to the group. - * @internal - */ + * Groups the records in the provided data array based on the given grouping expression. + * `groupingComparer`: (Optional) A custom grouping comparator to determine the members of the group. + * Returns an array containing the records that belong to the group. + * @internal + */ private groupedRecordsByExpression( data: T[], index: number, @@ -173,23 +320,25 @@ export class IgxSorting implements IGridSortingStrategy { isString: boolean, groupingComparer?: (a: any, b: any, currRec: any, groupRec: any) => number ): T[] { - const res = []; + const res: T[] = []; const key = expression.fieldName; const len = data.length; const groupRecord = data[index]; - let groupval = this.getFieldValue(groupRecord, key, isDate, isTime); + let groupValue = this.getFieldValue(groupRecord, key, isDate, isTime); + if (expression.ignoreCase && isString && groupValue) { + // when column's dataType is string but the value is number + groupValue = groupValue.toString().toLowerCase(); + } res.push(groupRecord); - index++; const comparer = expression.groupingComparer || groupingComparer || DefaultSortingStrategy.instance().compareValues; - for (let i = index; i < len; i++) { + for (let i = index + 1; i < len; i++) { const currRec = data[i]; let fieldValue = this.getFieldValue(currRec, key, isDate, isTime); - if (expression.ignoreCase && isString) { + if (expression.ignoreCase && isString && fieldValue) { // when column's dataType is string but the value is number - fieldValue = fieldValue?.toString().toLowerCase(); - groupval = groupval?.toString().toLowerCase(); + fieldValue = fieldValue.toString().toLowerCase(); } - if (comparer(fieldValue, groupval, currRec, groupRecord) === 0) { + if (comparer(fieldValue, groupValue, currRec, groupRecord) === 0) { res.push(currRec); } else { break; @@ -197,78 +346,6 @@ export class IgxSorting implements IGridSortingStrategy { } return res; } - - /** - * Sorts the provided data array based on the given sorting expressions. - * The method can be used when multiple sorting is performed, going through each one - * Returns a new array with the data sorted according to the sorting expressions. - * @internal - */ - private sortDataRecursive( - data: T[], - expressions: ISortingExpression[], - expressionIndex = 0, - grid: GridType - ): T[] { - let i: number; - let j: number; - let gbData: T[]; - let gbDataLen: number; - const exprsLen = expressions.length; - const dataLen = data.length; - - expressionIndex = expressionIndex || 0; - if (expressionIndex >= exprsLen || dataLen <= 1) { - return data; - } - const expr = expressions[expressionIndex]; - if (!expr.strategy) { - expr.strategy = DefaultSortingStrategy.instance() as any; - } - const column = grid?.getColumnByName(expr.fieldName); - const isDate = column?.dataType === DATE_TYPE || column?.dataType === DATE_TIME_TYPE; - const isTime = column?.dataType === TIME_TYPE || column?.dataType === DATE_TIME_TYPE; - const isString = column?.dataType === STRING_TYPE; - data = expr.strategy.sort(data, expr.fieldName, expr.dir, expr.ignoreCase, this.getFieldValue, isDate, isTime, grid); - if (expressionIndex === exprsLen - 1) { - return data; - } - // in case of multiple sorting - for (i = 0; i < dataLen; i++) { - gbData = this.groupedRecordsByExpression(data, i, expr, isDate, isTime, isString, column?.groupingComparer); - gbDataLen = gbData.length; - if (gbDataLen > 1) { - gbData = this.sortDataRecursive(gbData, expressions, expressionIndex + 1, grid); - } - for (j = 0; j < gbDataLen; j++) { - data[i + j] = gbData[j]; - } - i += gbDataLen - 1; - } - return data; - } -} - -/** - * Represents a class implementing the IGridGroupingStrategy interface and extending the IgxSorting class. - * It provides a method to group data based on the given grouping state. - */ -export class IgxGrouping extends IgxSorting implements IGridGroupingStrategy { - /* blazorSuppress */ - /** - * Groups the provided data based on the given grouping state. - * Returns an object containing the result of the grouping operation. - */ - public groupBy(data: any[], state: IGroupingState, grid?: any, - groupsRecords?: any[], fullResult: IGroupByResult = { data: [], metadata: [] }): IGroupByResult { - const metadata: IGroupByRecord[] = []; - const grouping = this.groupDataRecursive(data, state, 0, null, metadata, grid, groupsRecords, fullResult); - grid?.groupingPerformedSubject.next(); - return { - data: grouping.data, - metadata: grouping.metadata - }; - } } /* csSuppress */ diff --git a/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.filtering.strategy.ts b/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.filtering.strategy.ts index f4a3371b11c..ae016c28bdd 100644 --- a/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.filtering.strategy.ts +++ b/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.filtering.strategy.ts @@ -81,7 +81,6 @@ export class TreeGridFilteringStrategy extends BaseFilteringStrategy { data, [{ fieldName: column.field, dir: SortingDirection.Asc, ignoreCase: column.sortingIgnoreCase }], column.grid.sortStrategy, - null, column.grid); const items = this.getHierarchicalFilterItems(data, column); diff --git a/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.pipes.ts b/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.pipes.ts index 319724f9538..053208508c6 100644 --- a/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.pipes.ts +++ b/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.pipes.ts @@ -202,7 +202,7 @@ export class IgxTreeGridSortingPipe implements PipeTransform { if (!expressions.length) { result = hierarchicalData; } else { - result = DataUtil.treeGridSort(hierarchicalData, expressions, sorting, null, this.grid); + result = DataUtil.treeGridSort(hierarchicalData, expressions, sorting, this.grid); } const filteredSortedData = []; diff --git a/projects/igniteui-angular/src/lib/performance.service.ts b/projects/igniteui-angular/src/lib/performance.service.ts new file mode 100644 index 00000000000..ba99360ed9d --- /dev/null +++ b/projects/igniteui-angular/src/lib/performance.service.ts @@ -0,0 +1,123 @@ +import { inject, Injectable, NgZone, isDevMode } from '@angular/core'; + + +interface igcPerformance { + startMeasure: typeof startMeasure; + getMeasures: typeof getMeasures; + clearMeasures: typeof clearMeasures, + clearAll: typeof clearAll +} + +declare global { + var $$igcPerformance: igcPerformance; +} + +function isInstrumented(): boolean { + return globalThis.performance && performance.measure && isDevMode(); +} + +function instrumentGlobalHelpers(): void { + if (!isInstrumented() || Object.hasOwn(globalThis, '$$igcPerformance')) { + return; + } + + globalThis.$$igcPerformance = { + startMeasure, + getMeasures, + clearMeasures, + clearAll, + }; + + console.debug('Performance helper functions attached @ `global.$$igcPerformance`'); + +} + +export function startMeasure(name: string, withLogging = false) { + if (!isInstrumented()) return () => { }; + + const startMark = `${name}:start`; + const endMark = `${name}:end`; + + performance.mark(startMark); + + return () => { + performance.mark(endMark); + performance.measure(name, startMark, endMark); + if (withLogging) { + const entry = performance.getEntriesByName(name).at(-1); + console.debug(`Performance Measure : ${entry.name} - Duration: ${entry.duration.toFixed(2)}ms`); + } + }; +} + +export function getMeasures(name?: string): PerformanceEntryList { + return name ? performance.getEntriesByName(name) : performance.getEntriesByType('measure'); +} + +export function clearMeasures(name?: string, withLogging = false): void { + performance.clearMeasures(name); + if (withLogging) { + console.debug(name ? 'Cleared all measures of type `${name}`' : 'Cleared all custom measures'); + } +} + +export function clearAll(withLogging = false): void { + performance.clearMarks(); + clearMeasures(); + if (withLogging) { + console.debug('Cleared all marks and custom measures'); + } +} + +@Injectable({ providedIn: 'root' }) +export class PerformanceService { + private readonly _ngZone = inject(NgZone); + private _logEnabled = false; + + constructor() { + instrumentGlobalHelpers(); + } + + public setLogEnabled(state: boolean): void { + this._logEnabled = state; + } + + public start(name: string) { + return startMeasure(name, this._logEnabled); + } + + public getMeasures(name?: string): PerformanceEntryList { + return getMeasures(name); + } + + public clearMeasures(name?: string): void { + clearMeasures(name, this._logEnabled); + } + + public clearAll(): void { + clearAll(this._logEnabled); + } + + public attachObserver(options?: PerformanceObserverInit) { + if (!isInstrumented()) return; + let observer: PerformanceObserver; + + options = options ?? { entryTypes: ['event', 'long-animation-frame', 'longtask', 'taskattribution'] }; + + this._ngZone.runOutsideAngular(() => { + observer = new PerformanceObserver((list) => { + if (this._logEnabled) { + for (const entry of list.getEntries()) { + console.debug(`Performance Entry: ${entry.name} (${entry.entryType}) - Duration: ${entry.duration.toFixed(2)}ms`); + } + } + }); + + observer.observe(options); + }); + + return () => { + observer.disconnect(); + }; + } +} diff --git a/tsconfig.json b/tsconfig.json index 62e16156d56..58ac0576fa5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -51,5 +51,13 @@ }, "strictInjectionParameters": true, "strictInputAccessModifiers": true, - } + }, + "references": [ + { + "path": "./projects/igniteui-angular-performance/tsconfig.app.json" + }, + { + "path": "./projects/igniteui-angular-performance/tsconfig.spec.json" + } + ] }