Import des sources angular à partir de 'headup_app'

This commit is contained in:
Rampeur
2025-08-11 23:26:29 +02:00
parent 7dcb426ef5
commit 0a6cbc0c00
335 changed files with 64362 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
import { TestBed } from '@angular/core/testing';
import { CanActivateFn } from '@angular/router';
import { authGuard } from './auth.guard';
describe('authGuard', () => {
const executeGuard: CanActivateFn = (...guardParameters) =>
TestBed.runInInjectionContext(() => authGuard(...guardParameters));
beforeEach(() => {
TestBed.configureTestingModule({});
});
it('should be created', () => {
expect(executeGuard).toBeTruthy();
});
});
+18
View File
@@ -0,0 +1,18 @@
import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { map, take } from 'rxjs/operators';
import { UserService } from 'src/app/core/services';
export const adminGuard: CanActivateFn = () => {
const router = inject(Router);
const userService = inject(UserService);
return userService.currentUser.pipe(take(1)).pipe(map(data => {
if (data.role !== 'Admin') {
router.navigate(['/']);
return false;
} else {
return true;
}
}));
};
+17
View File
@@ -0,0 +1,17 @@
import { TestBed } from '@angular/core/testing';
import { CanActivateFn } from '@angular/router';
import { adminGuard } from './admin.guard';
describe('adminGuard', () => {
const executeGuard: CanActivateFn = (...guardParameters) =>
TestBed.runInInjectionContext(() => adminGuard(...guardParameters));
beforeEach(() => {
TestBed.configureTestingModule({});
});
it('should be created', () => {
expect(executeGuard).toBeTruthy();
});
});
+18
View File
@@ -0,0 +1,18 @@
import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { map, take } from 'rxjs/operators';
import { UserService } from 'src/app/core/services';
export const authGuard: CanActivateFn = () => {
const router = inject(Router);
const userService = inject(UserService);
return userService.isAuthenticated.pipe(take(1)).pipe(map(data => {
if (!data) {
router.navigate(['/']);
return false;
} else {
return true;
}
}));
};
+3
View File
@@ -0,0 +1,3 @@
export * from './admin.guard';
export * from './auth.guard';
export * from './noauth.guard';
+17
View File
@@ -0,0 +1,17 @@
import { TestBed } from '@angular/core/testing';
import { CanActivateFn } from '@angular/router';
import { noauthGuard } from './noauth.guard';
describe('noauthGuard', () => {
const executeGuard: CanActivateFn = (...guardParameters) =>
TestBed.runInInjectionContext(() => noauthGuard(...guardParameters));
beforeEach(() => {
TestBed.configureTestingModule({});
});
it('should be created', () => {
expect(executeGuard).toBeTruthy();
});
});
+23
View File
@@ -0,0 +1,23 @@
import { inject } from '@angular/core';
import { CanActivateFn } from '@angular/router';
import { Observable } from 'rxjs';
import { map, take } from 'rxjs/operators';
import { UserService } from 'src/app/core/services';
export const noauthGuard: CanActivateFn = (): Observable<boolean> => {
/*
const router = inject(Router);
const userService = inject(UserService);
return userService.isAuthenticated.pipe(take(1)).pipe(map(data => {
if (data) {
router.navigate(['/']);
return false;
} else {
return true;
}
}));
*/
const userService = inject(UserService);
return userService.isAuthenticated.pipe(take(1), map(isAuth => !isAuth));
};
+6
View File
@@ -0,0 +1,6 @@
export * from './guards';
export * from './interceptors';
//export * from './interfaces';
export * from './models';
export * from './resolvers';
export * from './services';
@@ -0,0 +1,13 @@
import { HttpInterceptorFn } from "@angular/common/http";
import { environment } from 'src/environments/environment';
export const apiInterceptor: HttpInterceptorFn = (req, next) => {
const apiReq = req.clone({
setHeaders: {
...({ 'Content-Type': 'application/json', 'Accept': 'application/json' }),
},
url: `${environment.api_url}${req.url}`
});
return next(apiReq);
};
@@ -0,0 +1,10 @@
import { HttpInterceptorFn } from "@angular/common/http";
import { throwError } from "rxjs";
import { catchError } from "rxjs/operators";
export const errorInterceptor: HttpInterceptorFn = (req, next) => {
return next(req).pipe(catchError((err) => throwError(() => {
console.log(err.error);
return err.error;
})));
};
+4
View File
@@ -0,0 +1,4 @@
export * from './api.interceptor';
export * from './error.interceptor';
//export * from './http.token.interceptor';
export * from './token.interceptor';
@@ -0,0 +1,13 @@
import { inject } from "@angular/core";
import { HttpInterceptorFn } from "@angular/common/http";
import { JwtService } from "src/app/core/services/jwt.service";
export const tokenInterceptor: HttpInterceptorFn = (req, next) => {
const token = inject(JwtService).getToken();
const request = req.clone({
setHeaders: {
...(token ? { Authorization: `Token ${token}` } : {}),
},
});
return next(request);
};
View File
@@ -0,0 +1,6 @@
import { Aeronef } from './aeronef.model';
export interface AeronefList {
aeronefs: Array<Aeronef>,
aeronefsCount: number
}
+29
View File
@@ -0,0 +1,29 @@
import { Jump } from './jump.model';
import { Profile } from './profile.model';
export interface Aeronef {
aeronef: string;
imat: string;
author: Profile;
createdAt: string;
updatedAt: string;
}
export interface AeronefByImat {
aeronef: string,
imat: string,
count: number
}
export interface AeronefByYear {
aeronef: string,
imat: string,
year: number,
count: number
}
export interface AeronefsPageData {
aeronefsByImat: Array<AeronefByImat>;
aeronefsByImatByYear: Array<AeronefByYear>;
lastjump: Jump;
}
@@ -0,0 +1,11 @@
export interface ApplicationListConfig {
type: string;
filters: ApplicationListFilters;
}
export interface ApplicationListFilters {
apikey?: string | undefined;
author?: string | undefined;
limit?: number | undefined;
offset?: number | undefined;
}
@@ -0,0 +1,6 @@
import { Application } from './application.model';
export interface ApplicationList {
applications: Array<Application>;
applicationsCount: number;
}
+12
View File
@@ -0,0 +1,12 @@
import { Profile } from './profile.model';
export interface Application {
apikey: string;
maskedkey: string;
slug: string;
title: string;
description: string;
author: Profile;
createdAt: string;
updatedAt: string;
}
+5
View File
@@ -0,0 +1,5 @@
export interface Badge {
type: string;
name: string;
value: number;
}
+163
View File
@@ -0,0 +1,163 @@
export interface CalculatorInfo {
charges: CalculatorResult;
sizesFeet: CalculatorResult;
sizesMeter: CalculatorResult;
state: CalculatorState
}
export interface CalculatorResult {
current?: number;
min: number;
min11: number;
}
export interface CalculatorState {
color: string;
error?: string;
}
export interface InputParams {
jumps: number;
weight: number;
gear: number;
current: number;
color: string;
}
export interface WeightSizeRange extends Range {
num: number;
active: string;
name: string;
label: string;
}
export interface Range {
start: number;
end: number;
value?: number;
}
export interface TableHeader {
name: string;
active: string;
}
export interface WeightSize {
weight: number;
active: string;
ranges: WeightSizeRange[];
}
export interface WeightSizes {
data: WeightSize[];
}
/* DT48 - 08 février 2024 */
export const weightSizes: WeightSize[] = [
{weight: 60, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 175}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 161}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 147}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 133}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 124}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 115}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 107}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 97}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 89}] },
{weight: 61, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 178}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 163}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 149}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 135}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 126}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 116}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 108}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 98}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 90}] },
{weight: 62, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 180}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 166}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 151}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 137}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 127}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 118}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 109}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 99}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 91}] },
{weight: 63, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 183}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 168}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 153}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 138}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 129}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 119}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 111}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 100}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 91}] },
{weight: 64, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 185}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 170}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 155}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 140}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 130}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 121}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 112}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 101}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 92}] },
{weight: 65, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 188}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 173}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 157}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 142}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 132}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 122}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 113}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 102}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 93}] },
{weight: 66, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 190}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 175}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 159}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 144}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 134}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 123}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 114}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 103}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 94}] },
{weight: 67, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 193}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 177}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 161}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 146}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 135}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 125}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 116}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 104}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 94}] },
{weight: 68, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 195}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 179}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 164}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 147}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 137}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 126}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 117}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 105}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 95}] },
{weight: 69, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 198}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 182}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 166}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 149}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 138}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 128}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 118}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 106}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 96}] },
{weight: 70, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 200}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 184}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 168}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 151}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 140}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 129}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 119}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 107}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 96}] },
{weight: 71, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 203}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 186}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 170}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 153}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 142}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 130}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 120}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 107}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 97}] },
{weight: 72, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 205}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 189}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 172}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 155}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 143}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 132}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 121}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 108}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 98}] },
{weight: 73, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 208}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 191}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 174}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 156}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 145}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 133}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 123}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 109}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 99}] },
{weight: 74, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 210}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 193}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 176}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 158}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 146}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 134}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 124}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 110}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 99}] },
{weight: 75, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 213}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 196}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 178}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 160}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 148}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 136}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 125}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 111}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 100}] },
{weight: 76, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 215}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 198}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 180}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 162}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 150}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 137}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 126}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 112}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 101}] },
{weight: 77, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 218}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 200}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 182}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 163}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 151}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 139}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 127}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 113}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 101}] },
{weight: 78, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 220}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 202}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 184}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 165}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 153}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 140}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 128}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 114}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 102}] },
{weight: 79, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 223}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 205}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 186}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 167}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 154}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 141}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 129}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 115}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 103}] },
{weight: 80, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 225}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 207}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 188}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 169}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 156}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 143}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 131}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 115}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 103}] },
{weight: 81, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 228}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 209}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 190}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 170}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 157}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 144}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 132}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 116}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 104}] },
{weight: 82, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 230}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 212}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 192}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 172}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 159}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 145}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 133}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 117}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 104}] },
{weight: 83, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 233}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 214}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 194}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 174}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 160}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 146}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 134}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 118}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 105}] },
{weight: 84, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 235}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 216}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 196}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 176}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 162}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 148}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 135}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 119}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 106}] },
{weight: 85, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 238}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 219}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 198}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 177}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 163}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 149}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 136}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 120}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 106}] },
{weight: 86, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 240}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 221}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 201}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 179}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 165}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 150}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 137}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 120}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 107}] },
{weight: 87, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 243}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 223}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 203}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 181}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 166}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 152}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 138}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 121}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 108}] },
{weight: 88, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 245}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 225}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 205}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 183}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 168}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 153}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 139}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 122}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 108}] },
{weight: 89, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 248}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 228}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 207}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 184}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 170}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 154}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 140}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 123}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 109}] },
{weight: 90, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 250}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 230}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 209}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 186}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 171}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 156}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 141}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 124}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 109}] },
{weight: 91, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 253}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 232}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 211}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 188}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 173}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 157}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 143}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 124}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 110}] },
{weight: 92, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 255}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 235}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 213}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 190}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 174}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 158}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 144}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 125}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 110}] },
{weight: 93, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 258}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 237}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 215}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 191}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 176}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 159}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 145}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 126}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 111}] },
{weight: 94, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 260}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 239}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 217}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 193}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 177}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 161}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 146}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 127}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 112}] },
{weight: 95, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 263}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 242}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 219}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 195}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 179}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 162}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 147}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 128}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 112}] },
{weight: 96, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 265}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 244}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 221}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 197}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 180}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 163}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 148}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 128}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 113}] },
{weight: 97, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 268}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 246}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 223}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 198}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 182}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 164}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 149}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 129}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 113}] },
{weight: 98, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 270}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 248}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 225}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 200}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 183}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 166}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 150}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 130}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 114}] },
{weight: 99, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 273}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 251}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 227}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 202}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 185}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 167}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 151}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 131}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 114}] },
{weight: 100, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 275}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 253}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 229}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 203}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 186}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 168}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 152}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 131}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 115}] },
{weight: 101, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 278}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 255}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 231}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 205}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 188}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 169}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 153}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 132}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 115}] },
{weight: 102, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 280}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 258}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 233}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 207}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 189}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 171}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 154}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 133}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 116}] },
{weight: 103, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 283}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 260}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 235}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 209}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 190}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 172}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 155}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 134}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 116}] },
{weight: 104, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 285}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 262}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 237}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 210}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 192}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 173}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 156}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 134}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 117}] },
{weight: 105, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 288}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 265}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 239}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 212}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 193}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 174}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 157}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 135}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 118}] },
{weight: 106, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 290}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 267}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 241}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 214}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 195}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 175}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 158}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 136}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 118}] },
{weight: 107, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 293}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 269}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 243}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 215}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 196}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 177}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 159}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 136}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 119}] },
{weight: 108, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 295}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 271}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 245}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 217}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 198}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 178}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 160}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 137}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 119}] },
{weight: 109, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 298}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 274}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 247}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 219}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 199}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 179}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 161}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 138}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 120}] },
{weight: 110, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 300}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 276}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 249}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 220}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 201}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 180}, {num: 7, active: '', name: 'range_7', label: '1000 à 1199', start: 1000, end: 1199, value: 162}, {num: 8, active: '', name: 'range_8', label: '1200 à 1399', start: 1200, end: 1399, value: 138}, {num: 9, active: '', name: 'range_9', label: '1400 à 1600', start: 1400, end: 1600, value: 120}] }
];
/* DT48 - 13 mars 2020 */
export const weightSizesPrev: WeightSize[] = [
{weight: 60, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 175}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 161}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 147}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 133}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 124}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 115}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 107}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 97}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 89}] },
{weight: 61, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 178}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 163}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 149}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 135}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 126}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 116}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 108}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 98}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 90}] },
{weight: 62, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 180}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 166}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 151}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 137}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 127}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 118}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 109}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 99}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 91}] },
{weight: 63, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 183}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 168}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 153}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 138}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 129}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 119}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 111}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 100}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 91}] },
{weight: 64, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 185}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 170}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 155}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 140}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 130}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 121}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 112}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 101}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 92}] },
{weight: 65, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 188}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 173}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 157}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 142}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 132}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 122}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 113}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 102}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 93}] },
{weight: 66, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 190}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 175}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 159}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 144}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 134}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 123}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 114}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 103}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 94}] },
{weight: 67, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 193}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 177}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 161}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 146}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 135}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 125}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 116}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 104}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 94}] },
{weight: 68, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 195}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 179}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 164}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 147}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 137}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 126}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 117}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 105}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 95}] },
{weight: 69, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 198}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 182}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 166}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 149}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 138}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 128}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 118}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 106}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 96}] },
{weight: 70, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 200}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 184}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 168}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 151}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 140}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 129}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 119}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 107}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 96}] },
{weight: 71, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 203}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 186}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 170}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 153}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 142}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 130}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 120}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 107}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 97}] },
{weight: 72, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 205}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 189}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 172}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 155}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 143}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 132}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 121}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 108}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 98}] },
{weight: 73, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 208}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 191}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 174}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 156}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 145}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 133}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 123}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 109}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 99}] },
{weight: 74, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 210}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 193}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 176}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 158}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 146}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 134}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 124}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 110}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 99}] },
{weight: 75, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 213}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 196}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 178}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 160}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 148}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 136}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 125}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 111}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 100}] },
{weight: 76, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 215}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 198}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 180}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 162}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 150}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 137}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 126}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 112}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 101}] },
{weight: 77, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 218}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 200}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 182}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 163}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 151}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 139}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 127}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 113}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 101}] },
{weight: 78, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 220}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 202}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 184}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 165}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 153}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 140}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 128}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 114}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 102}] },
{weight: 79, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 223}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 205}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 186}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 167}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 154}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 141}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 129}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 115}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 103}] },
{weight: 80, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 225}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 207}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 188}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 169}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 156}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 143}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 131}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 115}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 103}] },
{weight: 81, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 228}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 209}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 190}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 170}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 157}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 144}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 132}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 116}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 104}] },
{weight: 82, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 230}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 212}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 192}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 172}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 159}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 145}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 133}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 117}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 104}] },
{weight: 83, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 233}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 214}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 194}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 174}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 160}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 146}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 134}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 118}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 105}] },
{weight: 84, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 235}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 216}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 196}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 176}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 162}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 148}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 135}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 119}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 106}] },
{weight: 85, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 238}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 219}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 198}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 177}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 163}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 149}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 136}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 120}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 106}] },
{weight: 86, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 240}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 221}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 201}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 179}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 165}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 150}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 137}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 120}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 107}] },
{weight: 87, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 243}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 223}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 203}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 181}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 166}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 152}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 138}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 121}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 108}] },
{weight: 88, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 245}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 225}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 205}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 183}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 168}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 153}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 139}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 122}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 108}] },
{weight: 89, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 248}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 228}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 207}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 184}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 170}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 154}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 140}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 123}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 109}] },
{weight: 90, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 250}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 230}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 209}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 186}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 171}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 156}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 141}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 124}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 109}] },
{weight: 91, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 253}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 232}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 211}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 188}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 173}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 157}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 143}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 124}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 110}] },
{weight: 92, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 255}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 235}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 213}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 190}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 174}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 158}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 144}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 125}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 110}] },
{weight: 93, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 258}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 237}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 215}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 191}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 176}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 159}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 145}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 126}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 111}] },
{weight: 94, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 260}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 239}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 217}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 193}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 177}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 161}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 146}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 127}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 112}] },
{weight: 95, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 263}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 242}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 219}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 195}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 179}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 162}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 147}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 128}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 112}] },
{weight: 96, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 265}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 244}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 221}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 197}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 180}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 163}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 148}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 128}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 113}] },
{weight: 97, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 268}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 246}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 223}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 198}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 182}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 164}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 149}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 129}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 113}] },
{weight: 98, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 270}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 248}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 225}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 200}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 183}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 166}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 150}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 130}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 114}] },
{weight: 99, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 273}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 251}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 227}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 202}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 185}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 167}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 151}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 131}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 114}] },
{weight: 100, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 275}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 253}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 229}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 203}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 186}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 168}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 152}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 131}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 115}] },
{weight: 101, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 278}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 255}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 231}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 205}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 188}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 169}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 153}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 132}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 115}] },
{weight: 102, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 280}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 258}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 233}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 207}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 189}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 171}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 154}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 133}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 116}] },
{weight: 103, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 283}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 260}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 235}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 209}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 190}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 172}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 155}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 134}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 116}] },
{weight: 104, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 285}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 262}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 237}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 210}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 192}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 173}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 156}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 134}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 117}] },
{weight: 105, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 288}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 265}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 239}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 212}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 193}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 174}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 157}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 135}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 118}] },
{weight: 106, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 290}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 267}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 241}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 214}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 195}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 175}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 158}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 136}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 118}] },
{weight: 107, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 293}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 269}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 243}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 215}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 196}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 177}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 159}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 136}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 119}] },
{weight: 108, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 295}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 271}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 245}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 217}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 198}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 178}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 160}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 137}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 119}] },
{weight: 109, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 298}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 274}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 247}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 219}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 199}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 179}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 161}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 138}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 120}] },
{weight: 110, active: '', ranges: [{num: 1, active: '', name: 'range_1', label: '0 à 99', start: 0, end: 99, value: 300}, {num: 2, active: '', name: 'range_2', label: '100 à 249', start: 100, end: 249, value: 276}, {num: 3, active: '', name: 'range_3', label: '250 à 399', start: 250, end: 399, value: 249}, {num: 4, active: '', name: 'range_4', label: '400 à 599', start: 400, end: 599, value: 220}, {num: 5, active: '', name: 'range_5', label: '600 à 799', start: 600, end: 799, value: 201}, {num: 6, active: '', name: 'range_6', label: '800 à 999', start: 800, end: 999, value: 180}, {num: 7, active: '', name: 'range_7', label: '1000 à 1399', start: 1000, end: 1399, value: 162}, {num: 8, active: '', name: 'range_8', label: '1400 à 1799', start: 1400, end: 1799, value: 138}, {num: 9, active: '', name: 'range_9', label: '1800 à 2000', start: 1800, end: 2000, value: 120}] }
];
+42
View File
@@ -0,0 +1,42 @@
import { Jump } from './jump.model';
import { Profile } from './profile.model';
export interface Canopy {
voile: string;
taille: number;
author: Profile;
createdAt: string;
updatedAt: string;
}
export interface CanopyModelBySize {
voile: string,
taille: number,
count: number
}
export interface CanopyModelByYear {
voile: string,
taille: number,
year: number,
count: number
}
export interface CanopyBySize {
taille: number,
count: number
}
export interface CanopyByYear {
taille: number,
year: number,
count: number
}
export interface CanopiesPageData {
canopiesBySize: Array<CanopyBySize>;
canopiesBySizeByYear: Array<CanopyByYear>;
canopiesBySizeByModel: Array<CanopyModelBySize>;
canopiesBySizeByModelByYear: Array<CanopyModelByYear>;
lastjump: Jump;
}
+29
View File
@@ -0,0 +1,29 @@
import { ChartConfiguration, ChartOptions } from 'chart.js';
export interface BarConfig {
barChartData: ChartConfiguration<'bar'>['data'],
barChartOptions: ChartConfiguration<'bar'>['options'],
barChartPlugins: ChartConfiguration<'bar'>['plugins'],
barChartLegend: boolean
}
export interface CircleConfig {
circleChartLabels: string[],
circleChartDatasets: ChartConfiguration<'doughnut'>['data']['datasets'],
circleChartOptions: ChartConfiguration<'doughnut'>['options'],
circleChartPlugins: ChartConfiguration<'doughnut'>['plugins'],
circleChartLegend: boolean
}
export interface DoughnutConfig {
doughnutChartLabels: string[],
doughnutChartDatasets: ChartConfiguration<'doughnut'>['data']['datasets'],
doughnutChartOptions: ChartConfiguration<'doughnut'>['options'],
doughnutChartLegend: boolean
}
export interface LineConfig {
lineChartData: ChartConfiguration<'line'>['data'],
lineChartOptions: ChartOptions<'line'>,
lineChartLegend: boolean
}
+29
View File
@@ -0,0 +1,29 @@
import { Jump } from './jump.model';
import { Profile } from './profile.model';
export interface DropZone {
lieu: string;
oaci: string;
author: Profile;
createdAt: string;
updatedAt: string;
}
export interface DropZoneByOaci {
lieu: string,
oaci: string,
count: number
}
export interface DropZoneByYear {
lieu: string,
oaci: string,
year: number,
count: number
}
export interface DropZonesPageData {
dropZonesByOaci: Array<DropZoneByOaci>;
dropZonesByOaciByYear: Array<DropZoneByYear>;
lastjump: Jump;
}
+3
View File
@@ -0,0 +1,3 @@
export interface Errors {
errors: {[key: string]: string};
}
+17
View File
@@ -0,0 +1,17 @@
export * from './aeronef.model';
export * from './aeronef-list.model';
export * from './application.model';
export * from './application-list.model';
export * from './application-list-config.model';
export * from './calculator.model';
export * from './canopy.model';
export * from './chart.model';
export * from './dropzone.model';
export * from './errors.model';
export * from './jump.model';
export * from './jump-list.model';
export * from './jump-list-config.model';
export * from './profile.model';
export * from './qcm.model';
export * from './shared.model';
export * from './user.model';
@@ -0,0 +1,38 @@
export interface JumpListConfig {
type: string;
filters: JumpListFilters;
}
export interface JumpListFilters {
date?: string;
numero?: number;
lieu?: string;
oaci?: string;
aeronef?: string;
imat?: string;
hauteur?: number;
deploiement?: number;
voile?: string;
taille?: number;
categorie?: string;
module?: string;
participants?: number;
sautant?: number;
accessoires?: string;
zone?: string;
author?: string;
limit?: number;
offset?: number;
numeroRangeStart?: number;
numeroRangeEnd?: number;
tailleRangeStart?: number;
tailleRangeEnd?: number;
participantsRangeStart?: number;
participantsRangeEnd?: number;
hauteurRangeStart?: number;
hauteurRangeEnd?: number;
yearRangeStart?: number;
yearRangeEnd?: number;
dateRangeStart?: string;
dateRangeEnd?: string;
}
+6
View File
@@ -0,0 +1,6 @@
import { Jump } from './jump.model';
export interface JumpList {
jumps: Array<Jump>;
jumpsCount: number;
}
+323
View File
@@ -0,0 +1,323 @@
import { FormControl } from '@angular/forms';
import { Profile } from './profile.model';
import { PageLinks, PageMeta } from './shared.model';
export interface Jump {
slug: string;
date: string;
numero: number;
lieu?: string;
oaci?: string;
aeronef?: string;
imat?: string;
hauteur?: number;
deploiement?: number;
voile?: string;
taille?: number;
categorie?: string;
module?: string;
participants?: number;
sautants: Array<string>;
programme?: string;
accessoires?: string;
zone?: string;
dossier?: string;
video?: string;
files: Array<JumpFile>;
x2data: X2Data;
author: Profile;
createdAt: string;
updatedAt: string;
//isEdit?: boolean;
isSelected?: boolean;
}
export enum JumpFileType {
CSV = "csv",
IMAGE = "image",
KML = "kml",
VIDEO = "video"
}
export interface JumpFile {
slug: string;
name: string;
path: string;
type: JumpFileType;
}
export interface JumpForm {
date: FormControl<string>;
numero: FormControl<number>;
lieu: FormControl<string>;
oaci: FormControl<string>;
aeronef: FormControl<string>;
imat: FormControl<string>;
hauteur: FormControl<number>;
deploiement: FormControl<number>;
voile: FormControl<string>;
taille: FormControl<number>;
categorie: FormControl<string>;
module: FormControl<string>;
participants: FormControl<number>;
//sautants: FormControl<Array<string>>;
programme: FormControl<string>;
accessoires: FormControl<string>;
zone: FormControl<string>;
dossier: FormControl<string>;
video: FormControl<string>;
}
export interface JumpAddParams {
numeros: string;
date: string;
video: boolean;
}
export interface JumpByDate {
month: number;
year: number;
count: number;
}
export interface JumpByCategorie {
categorie: string;
count: number;
}
export interface JumpByDay {
jumps: Array<Partial<Jump>>;
count: number;
}
export interface JumpByModule {
categorie: string;
module: string;
count: number;
}
export interface JumpByDateByModule {
categorie: string;
module: string;
year: number;
month: number;
count: number;
}
export interface JumpYears {
year: number;
count: number;
}
export interface SkydiverIdJumps {
items: Array<X2Data>;
_links: PageLinks;
_meta: PageMeta;
}
export interface X2Data {
id: string;
name: string;
type: string;
description: string;
landingZone: string;
speed: {
freeFall: {
vertical: {
max: number;
avg: number;
};
horizontal: {
max: number;
avg: number;
};
};
underCanopy: {
vertical: {
max: number;
avg: number;
};
horizontal: {
max: number;
avg: number;
};
};
};
glideRatio: {
freeFall: {
max: number;
avg: number;
};
underCanopy: {
max: number;
avg: number;
};
};
duration: {
freeFall: number;
underCanopy: number;
};
distance: {
exitFromLandingZone: number;
totalFlying: number;
totalHorizontal: number;
};
altitude: {
exit: number;
deployment: number;
};
cutaway: string;
malfunctions:Array<
{
name: string;
type: string;
}
>;
date: string;
createdOn: string;
}
export interface JumpPageData {
jump: Jump;
prevJump: Jump;
nextJump: Jump;
_links: PageLinks;
_meta: PageMeta;
}
export interface JumpsPageData {
jumpsByCategory: Array<JumpByCategorie>;
jumpsByDate: Array<JumpByDate>;
jumpsByDateByModule: Array<JumpByDateByModule>;
jumpsByModule: Array<JumpByModule>;
jumpsByYears: Array<JumpYears>;
//jumpsFromSkydiverIdApi: SkydiverIdJumps;
lastjump: Jump;
/*yearsCount: number;
jumpsByCategoryCount: number;
jumpsByDateCount: number;
jumpsByModuleCount: number;*/
}
export interface ColumnDefinition {
key: string;
type: string;
label: string;
required?: boolean;
pattern?: string;
min?: number;
step?: number;
}
export const jumpColumns: Array<ColumnDefinition> = [
{
key: 'isSelected',
type: 'isSelected',
label: ''
},
{
key: 'date',
type: 'date',
label: 'Date',
required: true
},
{
key: 'numero',
type: 'numeric',
label: 'Numéro',
required: true,
min: 0,
step: 1
},
{
key: 'lieu',
type: 'text',
label: 'Lieu'
},
{
key: 'oaci',
type: 'text',
label: 'OACI'
},
{
key: 'aeronef',
type: 'text',
label: 'Aéronef'
},
{
key: 'imat',
type: 'text',
label: 'Imat.'
},
{
key: 'hauteur',
type: 'numeric',
label: 'Hauteur'
},
{
key: 'deploiement',
type: 'numeric',
label: 'Deploiement'
},
{
key: 'voile',
type: 'text',
label: 'Voile'
},
{
key: 'taille',
type: 'numeric',
label: 'Taille'
},
{
key: 'categorie',
type: 'text',
label: 'Categorie'
},
{
key: 'module',
type: 'text',
label: 'Module'
},
{
key: 'participants',
type: 'numeric',
label: 'Participants'
},
{
key: 'sautants',
type: 'text',
label: 'Sautants'
},
{
key: 'programme',
type: 'text',
label: 'Programme'
},
{
key: 'accessoires',
type: 'text',
label: 'Accessoires'
},
{
key: 'zone',
type: 'text',
label: 'Zone'
},
/*{
key: 'dossier',
type: 'text',
label: ''
},*/
{
key: 'video',
type: 'text',
label: 'Vidéo'
},
{
key: 'isEdit',
type: 'isEdit',
label: ''
}
];
@@ -0,0 +1,5 @@
export enum LoadingState {
NOT_LOADED = "NOT_LOADED",
LOADING = "LOADING",
LOADED = "LOADED",
}
+11
View File
@@ -0,0 +1,11 @@
import { Badge } from './badge.model';
export interface Menu {
state: string;
name: string;
type: string;
icon: string;
desc?: string;
badge?: Badge[];
color?: string;
}
+8
View File
@@ -0,0 +1,8 @@
export interface Profile {
username: string;
licence?: number;
poids?: number;
image?: string;
bg_image?: string;
following: boolean;
}
+29
View File
@@ -0,0 +1,29 @@
export interface Qcm {
name: string;
categories: Array<QcmCategory>;
}
export interface QcmCategory {
num: number;
name: string;
questions: Array<QcmQuestion>;
}
export interface QcmQuestion {
num: number;
libelle: string;
choices: Array<QcmChoice>;
}
export enum QcmQuestionState {
UNANSWERED = "unanswered",
DEFERED = "defer",
VALID = "valid",
ERROR = "error"
}
export interface QcmChoice {
index: string;
libelle: string;
correct: boolean;
}
+4
View File
@@ -0,0 +1,4 @@
export interface ReduceRow {
key: string[];
value: number;
}
+30
View File
@@ -0,0 +1,30 @@
export interface PageLinks {
self: {
href: string;
};
first: {
href: string;
};
last: {
href: string;
};
prev: {
href: string;
};
next: {
href: string;
};
}
export interface PageMeta {
totalCount: number;
pageCount: number;
currentPage: number;
perPage: number;
}
export interface ReduceRow {
key: string[];
value: number;
}
+13
View File
@@ -0,0 +1,13 @@
export interface User {
email: string;
username: string;
role: string;
firstname: string;
lastname: string;
phone: string;
licence?: number;
poids?: number;
image?: string;
bg_image?: string;
token: string;
}
@@ -0,0 +1,10 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { AeronefsPageData } from 'src/app/core/models';
import { PagesService } from 'src/app/core/services';
export const aeronefsPageResolver: ResolveFn<AeronefsPageData> = () => {
return inject(PagesService).getAeronefsPage().pipe(take(1));
};
@@ -0,0 +1,9 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { UserService } from 'src/app/core/services';
export const authResolver: ResolveFn<boolean> = () => {
return inject(UserService).isAuthenticated.pipe(take(1));
};
@@ -0,0 +1,10 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { CanopiesPageData } from 'src/app/core/models';
import { PagesService } from 'src/app/core/services';
export const canopiesPageResolver: ResolveFn<CanopiesPageData> = () => {
return inject(PagesService).getCanopiesPage().pipe(take(1));
};
@@ -0,0 +1,10 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { DropZonesPageData } from 'src/app/core/models';
import { PagesService } from 'src/app/core/services';
export const dropZonesPageResolver: ResolveFn<DropZonesPageData> = () => {
return inject(PagesService).getDropZonesPage().pipe(take(1));
};
+10
View File
@@ -0,0 +1,10 @@
export * from './aeronefs-page-resolver.service';
export * from './auth-resolver.service';
export * from './canopies-page-resolver.service';
export * from './dropzones-page-resolver.service';
export * from './jump-resolver.service';
export * from './jumps-page-resolver.service';
export * from './jumps-resolver.service';
export * from './lastjump-resolver.service';
export * from './profile-resolver.service';
export * from './qcm-resolver.service';
@@ -0,0 +1,12 @@
import { inject } from '@angular/core';
import { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { JumpPageData } from 'src/app/core/models';
import { JumpsService } from 'src/app/core/services';
export const jumpResolver: ResolveFn<JumpPageData> = (
route: ActivatedRouteSnapshot
) => {
return inject(JumpsService).get(route.params['slug']).pipe(take(1));
};
@@ -0,0 +1,10 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { JumpsPageData } from 'src/app/core/models';
import { PagesService } from 'src/app/core/services';
export const jumpsPageResolver: ResolveFn<JumpsPageData> = () => {
return inject(PagesService).getJumpsPage().pipe(take(1));
};
@@ -0,0 +1,10 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { Jump } from 'src/app/core/models';
import { JumpsService } from 'src/app/core/services';
export const jumpsResolver: ResolveFn<Array<Jump>> = () => {
return inject(JumpsService).getAll().pipe(take(1));
};
@@ -0,0 +1,10 @@
import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { Jump } from 'src/app/core/models';
import { JumpsService } from 'src/app/core/services';
export const lastjumpResolver: ResolveFn<Jump> = () => {
return inject(JumpsService).getLastJump().pipe(take(1));
};
@@ -0,0 +1,12 @@
import { inject } from '@angular/core';
import { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { Profile } from 'src/app/core/models';
import { ProfilesService } from 'src/app/core/services';
export const profileResolver: ResolveFn<Profile> = (
route: ActivatedRouteSnapshot
) => {
return inject(ProfilesService).get(route.params['username']).pipe(take(1));
};
@@ -0,0 +1,12 @@
import { inject } from '@angular/core';
import { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';
import { take } from 'rxjs/operators';
import { Qcm } from 'src/app/core/models';
import { QcmService } from 'src/app/core/services';
export const qcmResolver: ResolveFn<Qcm> = (
route: ActivatedRouteSnapshot
) => {
return inject(QcmService).get(route.params['type']).pipe(take(1));
};
+24
View File
@@ -0,0 +1,24 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ApiService } from './api.service';
import { AeronefByImat, AeronefByYear } from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class AeronefsService {
constructor(
private apiService: ApiService
) { }
getAllByImat(): Observable<Array<AeronefByImat>> {
return this.apiService.get('/aeronefs/allByImat')
.pipe(map(data => data.aeronefs));
}
getAllByImatByYear(): Observable<Array<AeronefByYear>> {
return this.apiService.get('/aeronefs/allByImatByYear')
.pipe(map(data => data.aeronefs));
}
}
+32
View File
@@ -0,0 +1,32 @@
import { Injectable } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
//import { environment } from 'src/environments/environment';
@Injectable({ providedIn: 'root' })
export class ApiService {
constructor(
private http: HttpClient
) { }
/*private formatErrors(error: any) {
return throwError(error.error);
}*/
get(path: string, params: HttpParams = new HttpParams()): Observable<any> {
return this.http.get(`${path}`, { params });
}
put(path: string, body: NonNullable<unknown> = {}): Observable<any> {
return this.http.put(`${path}`, JSON.stringify(body));
}
post(path: string, body: NonNullable<unknown> = {}): Observable<any> {
return this.http.post(`${path}`, JSON.stringify(body));
}
delete(path: string): Observable<any> {
return this.http.delete(`${path}`);
}
}
@@ -0,0 +1,53 @@
import { Injectable } from '@angular/core';
import { HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ApiService } from './api.service';
import { Application, ApplicationList, ApplicationListConfig, ApplicationListFilters } from 'src/app/core/models';
import { map } from 'rxjs/operators';
@Injectable({ providedIn: 'root' })
export class ApplicationsService {
constructor(
private apiService: ApiService
) { }
query(config: ApplicationListConfig): Observable<ApplicationList> {
// Convert any filters over to Angular's URLSearchParams
const params: ApplicationListFilters = {
apikey: config.filters.apikey,
author: config.filters.author,
limit: config.filters.limit,
offset: config.filters.offset
};
return this.apiService
.get(
'/applications' + ((config.type === 'feed') ? '/feed' : ''),
new HttpParams({ fromObject: <{
[param: string]: string | number | boolean | readonly (string | number | boolean)[];
}>params })
);
}
get(slug: string): Observable<Application> {
return this.apiService.get(`/applications/${slug}`)
.pipe(map(data => data.application));
}
destroy(slug: string): Observable<boolean> {
return this.apiService.delete(`/applications/${slug}`).pipe(map(data => data.deleted));
}
save(application: Application): Observable<Application> {
if (application.slug) {
// If we're updating an existing application
return this.apiService.put(`/applications/${application.slug}`, { application: application })
.pipe(map(data => data.application));
} else {
// Otherwise, create a new application
return this.apiService.post('/applications/', { application: application })
.pipe(map(data => data.application));
}
}
}
+129
View File
@@ -0,0 +1,129 @@
import { Injectable } from '@angular/core';
import { CalculatorResult, WeightSizeRange, weightSizes } from 'src/app/core/models';
import { UtilitiesService } from 'src/app/core/services';
@Injectable({ providedIn: 'root' })
export class CalculatorService {
public coeffKgLbs: number = this._utilitiesService.getCoeffKgLbs();
public coeffFtM: number = this._utilitiesService.getCoeffFtM();
constructor(
private _utilitiesService: UtilitiesService
) { }
private _getTableColumn(jumps: number): number {
let column: number = 0;
weightSizes[0].ranges.some((range: WeightSizeRange) => {
if (jumps >= range.start && jumps <= range.end) {
column = (range.num-1)
return true;
}
return false;
});
return column;
}
private _getTableLine(weight: number): number {
let line: number;
const min = 60;
const max = 110;
if (weight < min) {
line = min;
} else if (weight > max) {
line = max;
} else {
line = weight;
}
return line;
}
private _isInRange(nb: number, range: WeightSizeRange): boolean {
return (nb >= range.start && nb <= range.end);
}
private _reduceLimit(surface: number, percentOff: number): number {
return Math.ceil(surface * (100 - percentOff) / 100);
}
public canopySizeCalc(weight: number, jumps: number): CalculatorResult {
/* DT48 - 13 mars 2020 */
/* const maxRange = 2000; */
/* DT48 - 08 février 2024 */
const maxRange = 1600;
const result: CalculatorResult = {
min: 59,
min11: 34
};
if (jumps > maxRange) {
return result;
}
const index: number = (this._getTableLine(weight) - this._getTableLine(0));
result.min = weightSizes[index].ranges[this._getTableColumn(jumps)].value!;
result.min11 = this._reduceLimit(result.min, 11);
return result;
}
public convertFeet2Meters(size: number): number {
return (size * this._utilitiesService.getCoeffFtM());
}
public getCanopySizes(weight: number, reduce = false): number[] {
if (weight < 60) {
weight = 60;
}
if (weight > 110) {
weight = 110;
}
const line = (weight - this._getTableLine(0));
const data = weightSizes[line];
if (reduce) {
return data.ranges.map((range: WeightSizeRange): number => {
return Math.ceil(range.value! * (100 - 11) / 100);
});
} else {
return data.ranges.map((range: WeightSizeRange): number => {
return range.value!;
});
}
}
public getCharge(canopySize: number, nakedWeight: number, equipementWeight: number): number {
return (((nakedWeight + equipementWeight) * this.coeffKgLbs) / canopySize);
}
public getRangeNum(jumps: number): number {
const data: WeightSizeRange[] = weightSizes[0].ranges;
let num: number = 1;
/* DT48 - 13 mars 2020 */
/* const maxRange = 2000; */
/* DT48 - 08 février 2024 */
const maxRange = 1600;
data.some((range: WeightSizeRange): boolean => {
if (jumps >= range.start && jumps <= range.end) {
num = range.num;
return true;
} else if (jumps > maxRange) {
num = 9;
return true;
}
return false;
});
return num;
}
public getStateColor(values: CalculatorResult): string {
let color: string = 'danger';
if (values.current! >= values.min11 && values.current! < values.min) {
color = 'warning';
}
if (values.current! >= values.min) {
color = 'success';
}
return color;
}
}
+34
View File
@@ -0,0 +1,34 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ApiService } from './api.service';
import { CanopyBySize, CanopyByYear, CanopyModelBySize, CanopyModelByYear } from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class CanopiesService {
constructor(
private apiService: ApiService
) { }
getAllBySize(): Observable<Array<CanopyBySize>> {
return this.apiService.get('/canopies/allBySize')
.pipe(map(data => data.canopies));
}
getAllBySizeByYear(): Observable<Array<CanopyByYear>> {
return this.apiService.get('/canopies/allBySizeByYear')
.pipe(map(data => data.canopies));
}
getAllBySizeByModel(): Observable<Array<CanopyModelBySize>> {
return this.apiService.get('/canopies/allBySizeByModel')
.pipe(map(data => data.canopies));
}
getAllBySizeByModelByYear(): Observable<Array<CanopyModelByYear>> {
return this.apiService.get('/canopies/allBySizeByModelByYear')
.pipe(map(data => data.canopies));
}
}
@@ -0,0 +1,24 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ApiService } from './api.service';
import { DropZoneByOaci, DropZoneByYear } from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class DropZonesService {
constructor(
private apiService: ApiService
) { }
getAllByOaci(): Observable<Array<DropZoneByOaci>> {
return this.apiService.get('/dropzones/allByOaci')
.pipe(map(data => data.dropzones));
}
getAllByOaciByYear(): Observable<Array<DropZoneByYear>> {
return this.apiService.get('/dropzones/allByOaciByYear')
.pipe(map(data => data.dropzones));
}
}
+14
View File
@@ -0,0 +1,14 @@
export * from './aeronefs.service';
export * from './api.service';
export * from './applications.service';
export * from './calculator.service';
export * from './canopies.service';
export * from './dropzones.service';
export * from './jumps.service';
export * from './jump-table.service';
export * from './jwt.service';
export * from './pages.service';
export * from './profiles.service';
export * from './qcm.service';
export * from './user.service';
export * from './utilities.service';
@@ -0,0 +1,31 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject } from "rxjs";
@Injectable({ providedIn: 'root' })
export class JumpTableService {
tableRefresh: boolean;
_tableRefreshBS = new BehaviorSubject<boolean>(false);
jumpRefresh: boolean;
_jumpRefreshBS = new BehaviorSubject<boolean>(false);
constructor() {
this.tableRefresh = false;
this.jumpRefresh = false;
//this._tableRefreshBS.next(this.tableRefresh);
//this._jumpRefreshBS.next(this.jumpRefresh);
}
updateTableRefresh(val: boolean) {
this.tableRefresh = val;
this._tableRefreshBS.next(this.tableRefresh);
}
updateJumpRefresh(val: boolean) {
this.jumpRefresh = val;
this._jumpRefreshBS.next(this.jumpRefresh);
}
}
+166
View File
@@ -0,0 +1,166 @@
import { Injectable } from '@angular/core';
import { HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ApiService } from './api.service';
import {
Jump, JumpByCategorie, JumpByDate, JumpByDay, JumpByModule, JumpFile,
JumpList, JumpListConfig, JumpListFilters, JumpPageData,
X2Data, SkydiverIdJumps
} from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class JumpsService {
constructor(
private apiService: ApiService
) { }
query(config: JumpListConfig): Observable<JumpList> {
// Convert any filters over to Angular's URLSearchParams
/*
const params: JumpListFilters = {
date: config.filters.date,
lieu: config.filters.lieu,
oaci: config.filters.oaci,
aeronef: config.filters.aeronef,
imat: config.filters.imat,
hauteur: config.filters.hauteur,
voile: config.filters.voile,
taille: config.filters.taille,
categorie: config.filters.categorie,
module: config.filters.module,
participants: config.filters.participants,
accessoires: config.filters.accessoires,
zone: config.filters.zone,
author: config.filters.author,
limit: config.filters.limit,
offset: config.filters.offset,
numeroRangeStart: config.filters.numeroRangeStart!,
numeroRangeEnd: config.filters.numeroRangeEnd!,
tailleRangeStart: config.filters.tailleRangeStart!,
tailleRangeEnd: config.filters.tailleRangeEnd!,
participantsRangeStart: config.filters.participantsRangeStart!,
participantsRangeEnd: config.filters.participantsRangeEnd!,
hauteurRangeStart: config.filters.hauteurRangeStart!,
hauteurRangeEnd: config.filters.hauteurRangeEnd!
};
*/
const params: JumpListFilters = {} as JumpListFilters;
Object.assign(params, config.filters);
return this.apiService
.get(
'/jumps' + ((config.type === 'feed') ? '/feed' : ''),
new HttpParams({ fromObject: <{
[param: string]: string | number | boolean | readonly (string | number | boolean)[];
}>params })
);
}
get(slug: string): Observable<JumpPageData> {
/* return this.apiService.get(`/jumps/${slug}`)
.pipe(map(data => {
return { jump: data.jump, prevJump: data.prevJump, nextJump: data.nextJump };
})); */
return this.apiService.get(`/jumps/${slug}`);
}
getAll(): Observable<Array<Jump>> {
return this.apiService.get('/jumps').pipe(map(data => data.jumps));
}
getAllByDate(): Observable<Array<JumpByDate>> {
return this.apiService.get('/jumps/allByDate').pipe(map(data => data.jumps));
}
getAllByCategorie(): Observable<Array<JumpByCategorie>> {
return this.apiService.get('/jumps/allByCategorie').pipe(map(data => data.jumps));
}
getAllByDay(config: JumpListConfig): Observable<Array<JumpByDay>> {
const params: JumpListFilters = {} as JumpListFilters;
Object.assign(params, config.filters);
return this.apiService.get('/jumps/allByDay', new HttpParams({ fromObject: <{
[param: string]: string | number | boolean | readonly (string | number | boolean)[];
}>params }))
.pipe(map(data => data.days));
}
getAllByModule(): Observable<Array<JumpByModule>> {
return this.apiService.get('/jumps/allByModule').pipe(map(data => data.jumps));
}
getAllFromSkydiverIdApi(config: JumpListConfig): Observable<SkydiverIdJumps> {
const params: JumpListFilters = {} as JumpListFilters;
Object.assign(params, config.filters);
return this.apiService.get('/jumps/allFromSkydiverIdApi', new HttpParams({ fromObject: <{
[param: string]: string | number | boolean | readonly (string | number | boolean)[];
}>params }))
.pipe(map(data => data.jumps));
}
getLastJump(): Observable<Jump> {
return this.apiService.get('/jumps/last').pipe(map(data => data.jump));
}
create(jump: Jump): Observable<Jump> {
return this.apiService.post('/jumps/', { jump: jump }).pipe(map(data => data.jump));
}
update(jump: Jump): Observable<Jump> {
return this.apiService.put(`/jumps/${jump.slug}`, { jump: jump }).pipe(map(data => data.jump));
}
destroy(slug: string): Observable<boolean> {
return this.apiService.delete(`/jumps/${slug}`).pipe(map(data => data.deleted));
}
save(jump: Jump): Observable<Jump> {
// If we're updating an existing jump
if (jump.slug) {
return this.apiService.put(`/jumps/${jump.slug}`, { jump: jump }).pipe(map(data => data.jump));
// Otherwise, create a new jump
} else {
return this.apiService.post('/jumps/', { jump: jump }).pipe(map(data => data.jump));
}
}
saveX2Data(slug: string, file: JumpFile, data: X2Data): Observable<Jump> {
return this.apiService.post(`/jumps/data/${slug}`, { file: file, data: data })
.pipe(map(data => data.jump));
}
saveFile(slug: string, file: JumpFile): Observable<JumpFile> {
return this.apiService.post(`/jumps/file/${slug}`, { file: file })
.pipe(map(data => data.file));
}
saveKml(slug: string, file: JumpFile): Observable<JumpFile> {
return this.apiService.post(`/jumps/kml/${slug}`, { file: file })
.pipe(map(data => data.file));
}
getAeronefs() {
/*
[
{
'$match': {
'aeronef': 'Pilatus'
}
}, {
'$group': {
'_id': {
'Aeronef': '$aeronef',
'Imat': '$imat'
},
'count': {
'$sum': 1
}
}
}
]
*/
}
}
+18
View File
@@ -0,0 +1,18 @@
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' })
export class JwtService {
getToken(): string {
return window.localStorage['jwtToken'];
}
saveToken(token: string) {
window.localStorage['jwtToken'] = token;
}
destroyToken() {
window.localStorage.removeItem('jwtToken');
}
}
+30
View File
@@ -0,0 +1,30 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { take } from 'rxjs/operators';
import { ApiService } from './api.service';
import { AeronefsPageData, CanopiesPageData, DropZonesPageData, JumpsPageData } from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class PagesService {
constructor(
private apiService: ApiService
) { }
getAeronefsPage(): Observable<AeronefsPageData> {
return this.apiService.get(`/pages/aeronefs`).pipe(take(1));
}
getCanopiesPage(): Observable<CanopiesPageData> {
return this.apiService.get(`/pages/canopies`).pipe(take(1));
}
getDropZonesPage(): Observable<DropZonesPageData> {
return this.apiService.get(`/pages/dropzones`).pipe(take(1));
}
getJumpsPage(): Observable<JumpsPageData> {
return this.apiService.get(`/pages/jumps`).pipe(take(1));
}
}
+27
View File
@@ -0,0 +1,27 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { ApiService } from 'src/app/core/services';
import { Profile } from 'src/app/core/models';
import { map } from 'rxjs/operators';
@Injectable({ providedIn: 'root' })
export class ProfilesService {
constructor(
private apiService: ApiService
) { }
get(username: string): Observable<Profile> {
return this.apiService.get('/profiles/' + username)
.pipe(map((data: { profile: Profile }) => data.profile));
}
follow(username: string): Observable<Profile> {
return this.apiService.post('/profiles/' + username + '/follow');
}
unfollow(username: string): Observable<Profile> {
return this.apiService.delete('/profiles/' + username + '/follow');
}
}
+28
View File
@@ -0,0 +1,28 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { ApiService } from './api.service';
import { Qcm, QcmCategory, QcmQuestion } from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class QcmService {
constructor(
private apiService: ApiService
) { }
get(type: string): Observable<Qcm> {
return this.apiService.get(`/qcm/type/${type}`).pipe(map(data => data.qcm));
}
saveChoices(question: object): Observable<QcmQuestion> {
return this.apiService.post('/qcm/choices', { question: question })
.pipe(map(data => data.question));
}
saveQuestions(category: object): Observable<QcmCategory> {
return this.apiService.post('/qcm/questions', { category: category })
.pipe(map(data => data.category));
}
}
+93
View File
@@ -0,0 +1,93 @@
import { Injectable, OnDestroy } from '@angular/core';
import { HttpClient } from "@angular/common/http";
import { Observable, BehaviorSubject, ReplaySubject, Subscription } from 'rxjs';
import { distinctUntilChanged, take, tap } from 'rxjs/operators';
import { User } from 'src/app/core/models';
import { JwtService } from 'src/app/core/services';
@Injectable({ providedIn: 'root' })
export class UserService implements OnDestroy {
private _subcriptions: Array<Subscription> = new Array<Subscription>();
private _user: Subscription = new Subscription();
private currentUserSubject = new BehaviorSubject<User>({} as User);
public currentUser = this.currentUserSubject.asObservable().pipe(distinctUntilChanged());
private isAuthenticatedSubject = new ReplaySubject<boolean>(1);
public isAuthenticated = this.isAuthenticatedSubject.asObservable();
constructor(
private readonly http: HttpClient,
private readonly jwtService: JwtService
) { }
ngOnDestroy() {
this._subcriptions.forEach((subscription: Subscription) => subscription.unsubscribe());
}
// Verify JWT in localstorage with server & load user's info.
// This runs once on application startup.
populate() {
// If JWT detected, attempt to get & store user's info
if (this.jwtService.getToken()) {
const user$: Observable<{ user: User }> = this.http.get<{ user: User }>('/user').pipe(take(1));
this._user = user$.subscribe({
next: (data) => this.setAuth(data.user),
error: () => this.purgeAuth()
});
this._subcriptions.push(this._user);
} else {
// Remove any potential remnants of previous auth states
this.purgeAuth();
}
}
setAuth(user: User) {
// Save JWT sent from server in localstorage
this.jwtService.saveToken(user.token);
// Set current user data into observable
this.currentUserSubject.next(user);
// Set isAuthenticated to true
this.isAuthenticatedSubject.next(true);
}
purgeAuth() {
// Remove JWT from localstorage
this.jwtService.destroyToken();
// Set current user to an empty object
this.currentUserSubject.next({} as User);
// Set auth status to false
this.isAuthenticatedSubject.next(false);
}
attemptAuth(type: string, credentials?: { email: string; password: string; }): Observable<{ user: User }> {
const route = (type === 'login') ? '/login' : '';
const user$: Observable<{ user: User }> = this.http.post<{ user: User }>(`/users${route}`, { user: credentials });
/*return user$.pipe(map(
(data: any) => {
this.setAuth(data.user);
return data;
}
));*/
return user$.pipe(tap(({ user }) => this.setAuth(user)));
}
getCurrentUser(): User {
return this.currentUserSubject.value;
}
canAdministrate(): boolean {
return (this.currentUserSubject.value.role == 'Admin') ? true : false;
}
// Update the user on the server (email, pass, etc)
update(user: Partial<User>): Observable<{ user: User }> {
return this.http.put<{ user: User }>("/user", { user }).pipe(
tap(({ user }) => {
this.currentUserSubject.next(user);
}),
);
}
}
+539
View File
@@ -0,0 +1,539 @@
import { Injectable } from '@angular/core';
import { Chart } from 'chart.js';
import { Configuration } from 'ng-chartist';
import { BarConfig, CircleConfig, DoughnutConfig, LineConfig } from 'src/app/core/models';
@Injectable({ providedIn: 'root' })
export class UtilitiesService {
private _coeffKgLbs: number = 2.20462;
private _coeffFtM: number = 0.092903;
constructor() { }
getCoeffKgLbs(): number {
return this._coeffKgLbs;
}
getCoeffFtM(): number {
return this._coeffFtM;
}
getBarConfig(): Configuration {
const config: Configuration = {
type: 'Bar',
data: {
'labels': [],
'series': []
},
options: {},
responsiveOptions: []
};
return config;
}
getChartColors(): string[] {
const colors: string[] = [
'ct-color-a',
'ct-color-b',
'ct-color-c',
'ct-color-d',
'ct-color-e',
'ct-color-f',
'ct-color-g',
'ct-color-h',
'ct-color-i',
'ct-color-j',
'ct-color-k',
'ct-color-l',
'ct-color-m',
'ct-color-n',
'ct-color-o',
'ct-color-p',
'ct-color-q',
'ct-color-r',
'ct-color-s',
'ct-color-t',
'ct-color-u',
'ct-color-v',
'ct-color-w',
'ct-color-x',
'ct-color-y',
'ct-color-z'
];
return colors;
}
getCurrentDateFr(): string {
return new Date().toLocaleDateString('fr');
}
getSeriesColors(opacity: number, palette: string = 'all', offset: number = 0): string[] {
let colors: string[] = [];
switch (palette) {
case 'pastels':
colors = [
`rgba(171, 222, 230, ${opacity})`,
`rgba(203, 170, 203, ${opacity})`,
`rgba(255, 255, 181, ${opacity})`,
`rgba(255, 204, 182, ${opacity})`,
`rgba(243, 176, 195, ${opacity})`,
`rgba(198, 219, 218, ${opacity})`,
`rgba(254, 225, 232, ${opacity})`,
`rgba(254, 215, 195, ${opacity})`,
`rgba(246, 234, 194, ${opacity})`,
`rgba(236, 213, 227, ${opacity})`,
`rgba(255, 150, 138, ${opacity})`,
`rgba(255, 174, 165, ${opacity})`,
`rgba(255, 197, 191, ${opacity})`,
`rgba(255, 216, 190, ${opacity})`,
`rgba(255, 200, 162, ${opacity})`,
`rgba(212, 240, 240, ${opacity})`,
`rgba(143, 202, 202, ${opacity})`,
`rgba(204, 226, 203, ${opacity})`,
`rgba(182, 207, 182, ${opacity})`,
`rgba(151, 193, 169, ${opacity})`
];
break;
case 'red':
colors = [
`rgba(163, 0, 0, ${opacity})`,
`rgba(178, 47, 25, ${opacity})`,
`rgba(192, 74, 49, ${opacity})`,
`rgba(205, 99, 72, ${opacity})`,
`rgba(217, 122, 97, ${opacity})`,
`rgba(228, 145, 122, ${opacity})`,
`rgba(238, 168, 148, ${opacity})`,
`rgba(247, 192, 175, ${opacity})`,
`rgba(255, 215, 203, ${opacity})`
];
break;
case 'green':
colors = [
`rgba(0, 109, 45, ${opacity})`,
`rgba(42, 124, 64, ${opacity})`,
`rgba(67, 140, 83, ${opacity})`,
`rgba(90, 155, 102, ${opacity})`,
`rgba(112, 171, 122, ${opacity})`,
`rgba(134, 187, 142, ${opacity})`,
`rgba(156, 203, 163, ${opacity})`,
`rgba(179, 219, 184, ${opacity})`,
`rgba(201, 235, 205, ${opacity})`
];
break;
case 'blue':
colors = [
`rgba(0, 76, 109, ${opacity})`,
`rgba(37, 94, 126, ${opacity})`,
`rgba(61, 112, 143, ${opacity})`,
`rgba(83, 131, 161, ${opacity})`,
`rgba(105, 150, 179, ${opacity})`,
`rgba(127, 170, 198, ${opacity})`,
`rgba(148, 190, 217, ${opacity})`,
`rgba(171, 210, 236, ${opacity})`,
`rgba(193, 231, 255, ${opacity})`
];
break;
case 'all':
default:
colors = [
`rgba(53, 162, 235, ${opacity})`,
`rgba(255, 99, 132, ${opacity})`,
`rgba(75, 192, 192, ${opacity})`,
`rgba(255, 159, 64, ${opacity})`,
`rgba(153, 102, 255, ${opacity})`,
`rgba(255, 205, 86, ${opacity})`,
`rgba(201, 203, 207, ${opacity})`,
`rgba(93, 204, 137, ${opacity})`,
`rgba(181, 17, 86, ${opacity})`,
`rgba(255, 226, 5, ${opacity})`,
`rgba(191, 101, 224, ${opacity})`,
`rgba(76, 174, 76, ${opacity})`,
`rgba(237, 80, 148, ${opacity})`,
`rgba(51, 122, 183, ${opacity})`,
`rgba(253, 24, 243, ${opacity})`,
`rgba(214, 31, 31, ${opacity})`,
`rgba(0, 137, 123, ${opacity})`,
`rgba(153, 171, 180, ${opacity})`,
`rgba(205, 186, 152, ${opacity})`,
`rgba(101, 224, 184, ${opacity})`,
`rgba(2, 191, 171, ${opacity})`,
`rgba(101, 218, 224, ${opacity})`,
`rgba(161, 199, 161, ${opacity})`,
`rgba(217, 202, 174, ${opacity})`,
`rgba(151, 136, 199, ${opacity})`,
`rgba(212, 206, 112, ${opacity})`,
`rgba(32, 182, 252, ${opacity})`,
`rgba(241, 80, 80, ${opacity})`,
`rgba(2, 191, 171, ${opacity})`,
`rgba(255, 153, 0, ${opacity})`,
`rgba(101, 218, 224, ${opacity})`,
`rgba(138, 101, 224, ${opacity})`,
`rgba(0, 137, 123, ${opacity})`,
`rgba(181, 17, 86, ${opacity})`,
`rgba(93, 204, 137, ${opacity})`,
`rgba(255, 226, 5, ${opacity})`,
`rgba(191, 101, 224, ${opacity})`,
`rgba(76, 174, 76, ${opacity})`,
`rgba(51, 122, 183, ${opacity})`,
`rgba(237, 80, 148, ${opacity})`,
`rgba(253, 24, 243, ${opacity})`,
`rgba(214, 31, 31, ${opacity})`,
`rgba(153, 171, 180, ${opacity})`,
`rgba(205, 186, 152, ${opacity})`,
`rgba(101, 224, 184, ${opacity})`,
`rgba(2, 191, 171, ${opacity})`,
`rgba(101, 218, 224, ${opacity})`,
`rgba(161, 199, 161, ${opacity})`,
`rgba(217, 202, 174, ${opacity})`,
`rgba(151, 136, 199, ${opacity})`,
`rgba(212, 206, 112, ${opacity})`,
`rgba(255, 255, 255, ${opacity})`
];
if (offset > 0 && offset < colors.length) {
colors = colors.slice(offset);
}
break;
}
return colors;
}
getCircleChartConfig(): CircleConfig {
const config: CircleConfig = {
circleChartLabels: [],
circleChartDatasets: [
{
data: [],
label: 'Nombre total de sauts',
backgroundColor: this.getSeriesColors(0.8),
borderColor: this.getSeriesColors(1), // 'rgba(255, 255, 255, 1)'
borderWidth: 2
}
],
circleChartOptions: {
cutout: '90%',
elements: {
arc: {
//spacing: -10,
borderJoinStyle: 'round',
borderRadius: 10,
borderWidth: 0
}
},
plugins: {
legend: {
display: false,
position: 'left'
}
},
responsive: true,
maintainAspectRatio: false,
animation: {
onProgress: function (this: Chart) {
const width = this.width, height = this.height, ctx = this.ctx;
const count: number = parseInt(this.data.datasets[0].data[0]!.toString());
const diff: number = parseInt(this.data.datasets[0].data[1]!.toString());
const total: number = (count + diff);
const percent: number = Math.round((count/total*100));
const lineHeight = (height / 8);
ctx.restore();
let fontSize = (height / 120).toFixed(2);
ctx.font = `${fontSize}em sans-serif`;
//ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillStyle = '#dddddd';
//const text = `${percent} % (${count} ${this.data.datasets[0].label})`, textX = Math.round((width - ctx.measureText(text).width) / 2), textY = height / 2;
let text = this.data.datasets[0].label!;
let textX = Math.round((width - ctx.measureText(text).width) / 2);
let textY = height / 2;
ctx.fillText(text, textX, (textY-lineHeight));
text = `${percent}%`;
textX = Math.round((width - ctx.measureText(text).width) / 2);
textY = height / 2;
ctx.fillText(text, textX, textY);
ctx.restore();
fontSize = (height / 180).toFixed(2);
ctx.font = `${fontSize}em sans-serif`;
ctx.textBaseline = 'middle';
ctx.fillStyle = '#dddddd';
text = `${count} / ${total}`;
textX = Math.round((width - ctx.measureText(text).width) / 2);
textY = height / 2;
ctx.fillText(text, textX, (textY+lineHeight));
ctx.save();
//console.log(width, height, fontSize);
},
onComplete: function (this: Chart) {
const width = this.width, height = this.height, ctx = this.ctx;
const count: number = parseInt(this.data.datasets[0].data[0]!.toString());
const diff: number = parseInt(this.data.datasets[0].data[1]!.toString());
const total: number = (count + diff);
const percent: number = Math.round((count/total*100));
const lineHeight = (height / 8);
ctx.restore();
let fontSize = (height / 120).toFixed(2);
ctx.font = `${fontSize}em sans-serif`;
//ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.fillStyle = '#dddddd';
//ctx.fillStyle = this.data!.datasets[0].backgroundColor ? this.data.datasets[0].backgroundColor[0]!.toString() : '#dddddd';
//const text = `${percent} % (${count} ${this.data.datasets[0].label})`, textX = Math.round((width - ctx.measureText(text).width) / 2), textY = height / 2;
let text = this.data.datasets[0].label!;
let textX = Math.round((width - ctx.measureText(text).width) / 2);
let textY = height / 2;
ctx.fillText(text, textX, (textY-lineHeight));
text = `${percent}%`;
textX = Math.round((width - ctx.measureText(text).width) / 2);
textY = height / 2;
ctx.fillText(text, textX, textY);
ctx.restore();
fontSize = (height / 180).toFixed(2);
ctx.font = `${fontSize}em sans-serif`;
ctx.textBaseline = 'middle';
ctx.fillStyle = '#dddddd';
text = `${count} / ${total}`;
textX = Math.round((width - ctx.measureText(text).width) / 2);
textY = height / 2;
ctx.fillText(text, textX, (textY+lineHeight));
ctx.save();
//console.log(width, height, fontSize);
},
},
},
circleChartPlugins: [
/*{
beforeInit: (chart: Chart<"doughnut", number[], unknown>) => {
const dataset = chart.data.datasets[0];
chart.data.labels = [dataset.label];
dataset.data = [dataset.data[0], 100 - dataset.data[0]];
},
id: 'beforeinit'
},*/
{
beforeDatasetDraw: (chart: Chart<"doughnut", number[], unknown>) => {
const width = chart.width, height = chart.height, ctx = chart.ctx;
ctx.restore();
const fontSize = (height / 150).toFixed(2);
ctx.font = fontSize + "em sans-serif";
ctx.fillStyle = "#ffffff";
ctx.textBaseline = "middle";
const text = chart.data.datasets[0].data[0] + "%", textX = Math.round((width - ctx.measureText(text).width) / 2), textY = height / 2;
ctx.fillText(text, textX, textY);
ctx.save();
console.log(width, height, fontSize);
},
id: 'doughnutlabel'
}
],
circleChartLegend: false
};
return config;
}
getDoughnutChartConfig(): DoughnutConfig {
const config: DoughnutConfig = {
doughnutChartLabels: [],
doughnutChartDatasets: [
{
data: [],
label: 'Nombre total de sauts',
backgroundColor: this.getSeriesColors(0.8),
borderColor: this.getSeriesColors(1), // 'rgba(255, 255, 255, 1)'
borderWidth: 2
}
],
doughnutChartOptions: {
elements: {
arc: {
borderWidth: 2,
}
},
plugins: {
legend: {
display: true,
position: 'left'
}
},
responsive: true,
maintainAspectRatio: false
},
doughnutChartLegend: false
};
return config;
}
getBarChartConfig(): BarConfig {
const config: BarConfig = {
barChartData: {
labels: [''],
datasets: []
},
barChartOptions: {
plugins: {
legend: {
display: true,
position: 'top'
}
},
elements: {
bar: {
borderWidth: 1,
}
},
/*interaction: {
intersect: false,
axis: 'x'
},*/
scales: {
x: {
display: false,
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.1)', tickBorderDash: [1,2], tickBorderDashOffset: 2 }
},
y: {
display: true,
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.2)', tickBorderDash: [1,2], tickBorderDashOffset: 2 }
}
},
responsive: true,
maintainAspectRatio: false
},
barChartPlugins: [],
barChartLegend: true
};
return config;
}
getHorizontalBarChartConfig(): BarConfig {
const config: BarConfig = {
barChartData: {
labels: [''],
datasets: []
},
barChartOptions: {
indexAxis: 'y',
elements: {
bar: {
borderWidth: 1,
}
},
plugins: {
legend: {
display: true,
position: 'left'
},
title: {
display: false,
text: 'Nombre total de sauts'
}
},
responsive: true,
aspectRatio: 3,
scales: {
x: {
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.1)', tickBorderDash: [1,2] }
},
y: {
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: false, color: 'rgba(255,255,255,0.2)' }
}
}
},
barChartPlugins: [],
barChartLegend: false
};
return config;
}
getLineChartConfig(): LineConfig {
const config: LineConfig = {
lineChartData: {
labels: [],
datasets: []
},
lineChartOptions: {
plugins: {
legend: {
display: true,
position: 'top'
}
},
/*interaction: {
intersect: false,
axis: 'x'
},*/
scales: {
x: {
display: true,
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.1)', tickBorderDash: [1,2], tickBorderDashOffset: 2 }
},
y: {
display: true,
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.2)', tickBorderDash: [1,2], tickBorderDashOffset: 2 }
}
},
responsive: true,
maintainAspectRatio: false
},
lineChartLegend: true
};
return config;
}
getMonthsList(): Array<string> {
return ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
}
getStackedLineAreaChartConfig(): LineConfig {
const config: LineConfig = {
lineChartData: {
labels: [],
datasets: []
},
lineChartOptions: {
plugins: {
legend: {
display: true,
position: 'top'
}
},
interaction: {
mode: 'nearest',
axis: 'x',
intersect: false
},
scales: {
x: {
display: true,
beginAtZero: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.1)', tickBorderDash: [1,2] }
},
y: {
display: true,
beginAtZero: true,
stacked: true,
ticks: { color: 'rgba(255,255,255,0.3)' },
grid: { display: true, color: 'rgba(255,255,255,0.2)', tickBorderDash: [1,2] }
}
},
responsive: true,
maintainAspectRatio: false
},
lineChartLegend: true
};
return config;
}
}