asv-hlps 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.d.ts +2 -0
- package/lib/cjs/index.js +4 -0
- package/lib/cjs/utils/users/models/Gender.d.ts +6 -0
- package/lib/cjs/utils/users/models/Gender.js +2 -0
- package/lib/cjs/utils/users/models/Ste.d.ts +8 -0
- package/lib/cjs/utils/users/models/Ste.js +2 -0
- package/lib/cjs/utils/users/models/SteGrp.d.ts +7 -0
- package/lib/cjs/utils/users/models/SteGrp.js +2 -0
- package/lib/cjs/utils/users/models/Titr.d.ts +5 -0
- package/lib/cjs/utils/users/models/Titr.js +2 -0
- package/lib/cjs/utils/users/models/User.d.ts +30 -0
- package/lib/cjs/utils/users/models/User.js +2 -0
- package/lib/cjs/utils/users/models/UserGrp.d.ts +4 -0
- package/lib/cjs/utils/users/models/UserGrp.js +2 -0
- package/lib/cjs/utils/users/models/UserNote.d.ts +7 -0
- package/lib/cjs/utils/users/models/UserNote.js +2 -0
- package/lib/cjs/utils/users/models/UserOnline.d.ts +8 -0
- package/lib/cjs/utils/users/models/UserOnline.js +2 -0
- package/lib/cjs/utils/users/models/UserRole.d.ts +5 -0
- package/lib/cjs/utils/users/models/UserRole.js +2 -0
- package/lib/cjs/utils/users/models/shared/NaAc.d.ts +6 -0
- package/lib/cjs/utils/users/models/shared/NaAc.js +2 -0
- package/lib/cjs/utils/users/models/shared/NaCoAc.d.ts +4 -0
- package/lib/cjs/utils/users/models/shared/NaCoAc.js +2 -0
- package/lib/cjs/utils/users/models/shared/NaCoShortAc.d.ts +4 -0
- package/lib/cjs/utils/users/models/shared/NaCoShortAc.js +2 -0
- package/lib/cjs/utils/users/users.d.ts +8 -0
- package/lib/cjs/utils/users/users.js +54 -0
- package/lib/cjs/utils/utils.d.ts +56 -0
- package/lib/cjs/utils/utils.js +363 -0
- package/lib/esm/index.d.ts +2 -0
- package/lib/esm/index.js +2 -0
- package/lib/esm/utils/users/models/Gender.d.ts +6 -0
- package/lib/esm/utils/users/models/Gender.js +1 -0
- package/lib/esm/utils/users/models/Ste.d.ts +8 -0
- package/lib/esm/utils/users/models/Ste.js +1 -0
- package/lib/esm/utils/users/models/SteGrp.d.ts +7 -0
- package/lib/esm/utils/users/models/SteGrp.js +1 -0
- package/lib/esm/utils/users/models/Titr.d.ts +5 -0
- package/lib/esm/utils/users/models/Titr.js +1 -0
- package/lib/esm/utils/users/models/User.d.ts +30 -0
- package/lib/esm/utils/users/models/User.js +1 -0
- package/lib/esm/utils/users/models/UserGrp.d.ts +4 -0
- package/lib/esm/utils/users/models/UserGrp.js +1 -0
- package/lib/esm/utils/users/models/UserNote.d.ts +7 -0
- package/lib/esm/utils/users/models/UserNote.js +1 -0
- package/lib/esm/utils/users/models/UserOnline.d.ts +8 -0
- package/lib/esm/utils/users/models/UserOnline.js +1 -0
- package/lib/esm/utils/users/models/UserRole.d.ts +5 -0
- package/lib/esm/utils/users/models/UserRole.js +1 -0
- package/lib/esm/utils/users/models/shared/NaAc.d.ts +6 -0
- package/lib/esm/utils/users/models/shared/NaAc.js +1 -0
- package/lib/esm/utils/users/models/shared/NaCoAc.d.ts +4 -0
- package/lib/esm/utils/users/models/shared/NaCoAc.js +1 -0
- package/lib/esm/utils/users/models/shared/NaCoShortAc.d.ts +4 -0
- package/lib/esm/utils/users/models/shared/NaCoShortAc.js +1 -0
- package/lib/esm/utils/users/users.d.ts +8 -0
- package/lib/esm/utils/users/users.js +44 -0
- package/lib/esm/utils/utils.d.ts +56 -0
- package/lib/esm/utils/utils.js +313 -0
- package/package.json +21 -0
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Gender } from './Gender';
|
|
2
|
+
import { Ste } from './Ste';
|
|
3
|
+
import { Titr } from './Titr';
|
|
4
|
+
import { UserGrp } from './UserGrp';
|
|
5
|
+
import { UserRole } from './UserRole';
|
|
6
|
+
export interface User {
|
|
7
|
+
id: number;
|
|
8
|
+
codeCompta?: string | number;
|
|
9
|
+
firstname?: string;
|
|
10
|
+
lastname?: string;
|
|
11
|
+
fullname: string;
|
|
12
|
+
username: string;
|
|
13
|
+
birthday?: Date | string;
|
|
14
|
+
ip?: string;
|
|
15
|
+
isActive: boolean;
|
|
16
|
+
isSpecial: boolean;
|
|
17
|
+
hasBillCredit?: boolean;
|
|
18
|
+
isValided: boolean;
|
|
19
|
+
disabled: boolean;
|
|
20
|
+
isBadPayer: boolean;
|
|
21
|
+
foto?: string;
|
|
22
|
+
clp?: string;
|
|
23
|
+
periodBill?: string;
|
|
24
|
+
gender?: Gender;
|
|
25
|
+
titr?: Titr;
|
|
26
|
+
clientId?: number;
|
|
27
|
+
grp: UserGrp;
|
|
28
|
+
role: UserRole;
|
|
29
|
+
ste: Ste;
|
|
30
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { User } from "./models/User";
|
|
2
|
+
export declare const inGrp: (grps: string[], user: User) => boolean;
|
|
3
|
+
export declare const inSteGrp: (grps: string[], user: User) => boolean;
|
|
4
|
+
export declare const hasRole: (roles: string[], user: User) => boolean;
|
|
5
|
+
export declare const isBillPeriod: (user: User, period: string) => boolean;
|
|
6
|
+
export declare const isStaffSte: (user: User, steNames: string | string[]) => boolean;
|
|
7
|
+
export declare const getFullname: (user: User) => string;
|
|
8
|
+
export declare const entryDesignationUser: (user: User) => string;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.entryDesignationUser = exports.getFullname = exports.isStaffSte = exports.isBillPeriod = exports.hasRole = exports.inSteGrp = exports.inGrp = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const inGrp = (grps, user) => {
|
|
6
|
+
return [...grps].includes(user.grp.code.toLowerCase()) ? true : false;
|
|
7
|
+
};
|
|
8
|
+
exports.inGrp = inGrp;
|
|
9
|
+
const inSteGrp = (grps, user) => {
|
|
10
|
+
if (!user.ste) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return [...grps].includes(user.ste.grp.code.toLowerCase()) ? true : false;
|
|
14
|
+
};
|
|
15
|
+
exports.inSteGrp = inSteGrp;
|
|
16
|
+
const hasRole = (roles, user) => {
|
|
17
|
+
if (!user.ste) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return [...roles].includes(user.role.code.toLowerCase()) ? true : false;
|
|
21
|
+
};
|
|
22
|
+
exports.hasRole = hasRole;
|
|
23
|
+
const isBillPeriod = (user, period) => {
|
|
24
|
+
return (user.periodBill.toLowerCase() === period) ? true : false;
|
|
25
|
+
};
|
|
26
|
+
exports.isBillPeriod = isBillPeriod;
|
|
27
|
+
const isStaffSte = (user, steNames) => {
|
|
28
|
+
if (!Array.isArray(steNames)) {
|
|
29
|
+
return (user.ste.name.toLowerCase() === steNames.toLowerCase());
|
|
30
|
+
}
|
|
31
|
+
// return [...steNames].includes(user.ste.name.toLowerCase()) ? true : false;
|
|
32
|
+
return [...steNames].includes(user.ste.name.toLowerCase());
|
|
33
|
+
};
|
|
34
|
+
exports.isStaffSte = isStaffSte;
|
|
35
|
+
const getFullname = (user) => {
|
|
36
|
+
const gender = user.gender ? user.gender.abr.trim() : "";
|
|
37
|
+
const titr = user.titr ? user.titr.shortname.trim() : "";
|
|
38
|
+
const lastname = user.lastname ? user.lastname.trim() : "";
|
|
39
|
+
const firstname = user.firstname ? user.firstname.trim() : "";
|
|
40
|
+
const civil = titr ? titr : gender;
|
|
41
|
+
// const fullname = Util.titleCase(civil)+' '+lastname.toUpperCase()+' '+Util.titleCase(firstname);
|
|
42
|
+
return (0, utils_1.titleCase)(civil) + ' ' + lastname.toUpperCase() + ' ' + (0, utils_1.titleCase)(firstname);
|
|
43
|
+
};
|
|
44
|
+
exports.getFullname = getFullname;
|
|
45
|
+
const entryDesignationUser = (user) => {
|
|
46
|
+
if (user.grp && user.ste) {
|
|
47
|
+
if (!(user.grp.code === 'sf')) {
|
|
48
|
+
return user.username.toUpperCase() + ' ' + user.ste.name.trim().replace(/ +/g, ' '); // remove more than 1 space
|
|
49
|
+
}
|
|
50
|
+
return user.username.toUpperCase() + ' ' + user.fullname.trim().replace(/ +/g, ' ');
|
|
51
|
+
}
|
|
52
|
+
return user.username.toUpperCase();
|
|
53
|
+
};
|
|
54
|
+
exports.entryDesignationUser = entryDesignationUser;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const formatDateYmdHypen: (date: Date | any) => string;
|
|
2
|
+
export declare const formatDateYmdHypenFr: (date: Date | any) => string;
|
|
3
|
+
export declare const formatDateFirstDayFr: (date: Date | any) => string;
|
|
4
|
+
export declare const formatDateYmHypen: (date: Date | any) => string;
|
|
5
|
+
export declare const formatFromAndToDate: (fromDate: Date, toDate: Date) => string;
|
|
6
|
+
export declare const formatDateYmd: (date: Date | any, separator?: string) => string;
|
|
7
|
+
export declare const formatDateYmFirstDay: (date: Date | any, separator?: string) => string;
|
|
8
|
+
export declare const formatDateYm: (date: Date | any, separator?: string) => string;
|
|
9
|
+
export declare const formatDateMd: (date: Date | any, separator?: string) => string;
|
|
10
|
+
export declare const convertEnDateToFr: (date: string, separator?: string) => string;
|
|
11
|
+
export declare const convertFrDateToEnDate: (date: string, separator?: string) => string;
|
|
12
|
+
export declare const genDateMinutesStep: (step: number, lang?: string) => string[];
|
|
13
|
+
export declare const percentOf: (nbr: number, percentage: number) => number;
|
|
14
|
+
export declare const calPercent: (nbr: number, percentage: number) => number;
|
|
15
|
+
export declare const displayDateRangeFr: (getFromDate?: any, getToDate?: any) => string;
|
|
16
|
+
export declare const getNbOfDaysBetweenTwoDates: (date1: Date, date2: Date) => number;
|
|
17
|
+
export declare const getRandomColor: (brightness: number) => string;
|
|
18
|
+
export declare const removeDuplicates: (tab: any[]) => any[];
|
|
19
|
+
export declare const toObjectDate: (fromDate: any, toDate: string) => {
|
|
20
|
+
fromDate: any;
|
|
21
|
+
toDate: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const titleCase: (str: string) => string;
|
|
24
|
+
export declare const limitTo: (value: string, limit?: number, trail?: string) => string;
|
|
25
|
+
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
26
|
+
export declare const wakeUp: (sleep: any) => void;
|
|
27
|
+
export declare const formatToString: (val: number, separator?: string, currency?: string) => string;
|
|
28
|
+
export declare const formatToStringCfa: (val: number) => string;
|
|
29
|
+
export declare const reformatDates: (fromDate: any, toDate: any) => {
|
|
30
|
+
fromDate: any;
|
|
31
|
+
toDate: any;
|
|
32
|
+
};
|
|
33
|
+
export declare const absFromSequence: (arr: number[]) => number[];
|
|
34
|
+
export declare const sequencesToNumbers: (arr: any[]) => number[];
|
|
35
|
+
export declare const findSequencesMissing: (arr: any[]) => number[];
|
|
36
|
+
export declare const fillNumWithZero: (num: number, targetLength: number) => string;
|
|
37
|
+
export declare const findFirstSequenceMissing: (arr: any[]) => number;
|
|
38
|
+
export declare const deepClone: (obj: any) => any;
|
|
39
|
+
export declare const removeString: (text: string, word: string) => string;
|
|
40
|
+
export declare const removeBackSlashOccurences: (text: string, toChar: string) => string;
|
|
41
|
+
export declare const genSequenceRef: (refs: any[], startChars: string, zeroFillWidth: number, dateFormat?: string) => string;
|
|
42
|
+
export declare const sesStorageSet: (key: string, val: any) => void;
|
|
43
|
+
export declare const sesStorageGet: (key: string) => any;
|
|
44
|
+
export declare const replaceAllIn: (text: string, regex?: RegExp, toChar?: string) => string;
|
|
45
|
+
export declare const replaceSpacesWith: (text: string, toChar?: string) => string;
|
|
46
|
+
export declare const dateToString: (date: Date | any) => string;
|
|
47
|
+
export declare const formatNgbDate: (date: any) => {
|
|
48
|
+
fromDate: string;
|
|
49
|
+
toDate: string;
|
|
50
|
+
};
|
|
51
|
+
export declare const genRandomColour: () => string;
|
|
52
|
+
export declare const getColorAccordingToDate: (inputDate: Date, period1?: number, period2?: number, period3?: number, ifClass?: boolean) => "red" | "DarkOrange" | "turquoise" | "blue" | "green" | "#f46a6a" | "#f1b44c" | "#cce5ff" | "#34c38f" | "#339900";
|
|
53
|
+
export declare const checked: (event: any, item: any, checks: string[], isChecked?: boolean) => string[];
|
|
54
|
+
export declare const unCheckedAll: (checks?: any[]) => void;
|
|
55
|
+
export declare const arrayMultiChecked: (objet: any[], event: boolean, item: any) => any[];
|
|
56
|
+
export declare const packAndUnit: (qtity: number, qtityPerPackaging?: number) => string;
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.packAndUnit = exports.arrayMultiChecked = exports.unCheckedAll = exports.checked = exports.getColorAccordingToDate = exports.genRandomColour = exports.formatNgbDate = exports.dateToString = exports.replaceSpacesWith = exports.replaceAllIn = exports.sesStorageGet = exports.sesStorageSet = exports.genSequenceRef = exports.removeBackSlashOccurences = exports.removeString = exports.deepClone = exports.findFirstSequenceMissing = exports.fillNumWithZero = exports.findSequencesMissing = exports.sequencesToNumbers = exports.absFromSequence = exports.reformatDates = exports.formatToStringCfa = exports.formatToString = exports.wakeUp = exports.sleep = exports.limitTo = exports.titleCase = exports.toObjectDate = exports.removeDuplicates = exports.getRandomColor = exports.getNbOfDaysBetweenTwoDates = exports.displayDateRangeFr = exports.calPercent = exports.percentOf = exports.genDateMinutesStep = exports.convertFrDateToEnDate = exports.convertEnDateToFr = exports.formatDateMd = exports.formatDateYm = exports.formatDateYmFirstDay = exports.formatDateYmd = exports.formatFromAndToDate = exports.formatDateYmHypen = exports.formatDateFirstDayFr = exports.formatDateYmdHypenFr = exports.formatDateYmdHypen = void 0;
|
|
4
|
+
const formatDateYmdHypen = (date) => {
|
|
5
|
+
return (0, exports.formatDateYmd)(date, '-');
|
|
6
|
+
};
|
|
7
|
+
exports.formatDateYmdHypen = formatDateYmdHypen;
|
|
8
|
+
const formatDateYmdHypenFr = (date) => {
|
|
9
|
+
return (0, exports.convertEnDateToFr)((0, exports.formatDateYmd)(date, '-'));
|
|
10
|
+
};
|
|
11
|
+
exports.formatDateYmdHypenFr = formatDateYmdHypenFr;
|
|
12
|
+
const formatDateFirstDayFr = (date) => {
|
|
13
|
+
return (('0' + 1).slice(-2) +
|
|
14
|
+
'-' +
|
|
15
|
+
('0' + (date.getMonth() + 1)).slice(-2) +
|
|
16
|
+
'-' +
|
|
17
|
+
date.getUTCFullYear());
|
|
18
|
+
};
|
|
19
|
+
exports.formatDateFirstDayFr = formatDateFirstDayFr;
|
|
20
|
+
const formatDateYmHypen = (date) => {
|
|
21
|
+
return (0, exports.formatDateYm)(date, '-');
|
|
22
|
+
};
|
|
23
|
+
exports.formatDateYmHypen = formatDateYmHypen;
|
|
24
|
+
const formatFromAndToDate = (fromDate, toDate) => {
|
|
25
|
+
const getFromDate = !fromDate ? new Date() : fromDate;
|
|
26
|
+
const getToDate = !toDate ? fromDate : toDate;
|
|
27
|
+
return (0, exports.formatDateYmdHypenFr)(new Date(getFromDate)) + ' au ' + (0, exports.formatDateYmdHypenFr)(new Date(getToDate));
|
|
28
|
+
};
|
|
29
|
+
exports.formatFromAndToDate = formatFromAndToDate;
|
|
30
|
+
const formatDateYmd = (date, separator = '') => {
|
|
31
|
+
return (0, exports.formatDateYm)(date, separator) + separator + ('0' + date.getUTCDate()).slice(-2);
|
|
32
|
+
};
|
|
33
|
+
exports.formatDateYmd = formatDateYmd;
|
|
34
|
+
const formatDateYmFirstDay = (date, separator = '') => {
|
|
35
|
+
return (0, exports.formatDateYm)(date, separator) + separator + ('0' + 1).slice(-2);
|
|
36
|
+
};
|
|
37
|
+
exports.formatDateYmFirstDay = formatDateYmFirstDay;
|
|
38
|
+
const formatDateYm = (date, separator = '') => {
|
|
39
|
+
return date.getUTCFullYear() + separator + ('0' + (date.getMonth() + 1)).slice(-2);
|
|
40
|
+
};
|
|
41
|
+
exports.formatDateYm = formatDateYm;
|
|
42
|
+
const formatDateMd = (date, separator = '') => {
|
|
43
|
+
// return ('0' + (date.getMonth() + 1)).slice(-2) + separator + ('0' + date.getUTCDate()).slice(-2);
|
|
44
|
+
return (date.getMonth() + 1) + separator + date.getUTCDate();
|
|
45
|
+
};
|
|
46
|
+
exports.formatDateMd = formatDateMd;
|
|
47
|
+
const convertEnDateToFr = (date, separator = '-') => {
|
|
48
|
+
if (!date) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
date = date.trim();
|
|
52
|
+
const year = date.substring(0, 4);
|
|
53
|
+
const month = date.substring(5, 7);
|
|
54
|
+
const day = date.substring(8, 10);
|
|
55
|
+
return day + separator + month + separator + year;
|
|
56
|
+
};
|
|
57
|
+
exports.convertEnDateToFr = convertEnDateToFr;
|
|
58
|
+
const convertFrDateToEnDate = (date, separator = '-') => {
|
|
59
|
+
if (!date) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
date = date.trim();
|
|
63
|
+
const day = date.substring(0, 2);
|
|
64
|
+
const month = date.substring(3, 5);
|
|
65
|
+
const year = date.substring(6, 10);
|
|
66
|
+
// return day + separator + month + separator + year
|
|
67
|
+
return year + separator + month + separator + day;
|
|
68
|
+
};
|
|
69
|
+
exports.convertFrDateToEnDate = convertFrDateToEnDate;
|
|
70
|
+
const genDateMinutesStep = (step, lang = 'fr-FR') => {
|
|
71
|
+
const date = new Date(2021, 0, 1);
|
|
72
|
+
const series = [];
|
|
73
|
+
while (date.getDate() === 1) {
|
|
74
|
+
series.push(date.toLocaleTimeString(lang).replace(/(.*)\D\d+/, '$1')); // without seconds
|
|
75
|
+
date.setMinutes(date.getMinutes() + step);
|
|
76
|
+
}
|
|
77
|
+
return series;
|
|
78
|
+
};
|
|
79
|
+
exports.genDateMinutesStep = genDateMinutesStep;
|
|
80
|
+
const percentOf = (nbr, percentage) => {
|
|
81
|
+
return nbr * percentage / 100;
|
|
82
|
+
};
|
|
83
|
+
exports.percentOf = percentOf;
|
|
84
|
+
const calPercent = (nbr, percentage) => {
|
|
85
|
+
if (!nbr) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
if (!percentage) {
|
|
89
|
+
return nbr;
|
|
90
|
+
}
|
|
91
|
+
return nbr + (nbr * percentage / 100);
|
|
92
|
+
};
|
|
93
|
+
exports.calPercent = calPercent;
|
|
94
|
+
const displayDateRangeFr = (getFromDate, getToDate) => {
|
|
95
|
+
const fromDate = !getFromDate ? new Date() : getFromDate;
|
|
96
|
+
const toDate = !getToDate ? fromDate : getToDate;
|
|
97
|
+
return (0, exports.formatDateYmdHypenFr)(new Date(fromDate)) + ' au ' + (0, exports.formatDateYmdHypenFr)(new Date(toDate));
|
|
98
|
+
};
|
|
99
|
+
exports.displayDateRangeFr = displayDateRangeFr;
|
|
100
|
+
const getNbOfDaysBetweenTwoDates = (date1, date2) => {
|
|
101
|
+
const day = 1000 * 60 * 60 * 24;
|
|
102
|
+
const diff = Math.abs(date2.getTime() - date1.getTime());
|
|
103
|
+
return Math.ceil(diff / day);
|
|
104
|
+
};
|
|
105
|
+
exports.getNbOfDaysBetweenTwoDates = getNbOfDaysBetweenTwoDates;
|
|
106
|
+
const getRandomColor = (brightness) => {
|
|
107
|
+
// Six levels of brightness from 0 to 5, 0 being the darkest
|
|
108
|
+
const rgb = [Math.random() * 256, Math.random() * 256, Math.random() * 256];
|
|
109
|
+
const mix = [brightness * 51, brightness * 51, brightness * 51]; // 51 => 255/5
|
|
110
|
+
const mixedrgb = [rgb[0] + mix[0], rgb[1] + mix[1], rgb[2] + mix[2]].map(function (x) { return Math.round(x / 2.0); });
|
|
111
|
+
return 'rgb(' + mixedrgb.join(',') + ')';
|
|
112
|
+
};
|
|
113
|
+
exports.getRandomColor = getRandomColor;
|
|
114
|
+
const removeDuplicates = (tab) => {
|
|
115
|
+
return tab.filter((v, i, a) => a.findIndex(t => (t.id === v.id && t.name === v.name)) === i);
|
|
116
|
+
};
|
|
117
|
+
exports.removeDuplicates = removeDuplicates;
|
|
118
|
+
const toObjectDate = (fromDate, toDate) => {
|
|
119
|
+
toDate = (toDate !== 'null') ? toDate : fromDate;
|
|
120
|
+
return { fromDate: fromDate, toDate: toDate };
|
|
121
|
+
};
|
|
122
|
+
exports.toObjectDate = toObjectDate;
|
|
123
|
+
const titleCase = (str) => {
|
|
124
|
+
return str.trim()
|
|
125
|
+
.toLowerCase()
|
|
126
|
+
.split(' ')
|
|
127
|
+
// .map(function(word: string | string[]) => {
|
|
128
|
+
.map(function (word) {
|
|
129
|
+
return word.replace(word[0], word[0].toUpperCase());
|
|
130
|
+
})
|
|
131
|
+
.join(' ');
|
|
132
|
+
};
|
|
133
|
+
exports.titleCase = titleCase;
|
|
134
|
+
const limitTo = (value, limit = 15, trail = '') => {
|
|
135
|
+
// const limit = args ? parseInt(args, 10) : 10;
|
|
136
|
+
// const trail = '...';
|
|
137
|
+
return value.length > limit ? value.substring(0, limit) + trail : value;
|
|
138
|
+
};
|
|
139
|
+
exports.limitTo = limitTo;
|
|
140
|
+
const sleep = (ms) => {
|
|
141
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
142
|
+
};
|
|
143
|
+
exports.sleep = sleep;
|
|
144
|
+
const wakeUp = (sleep) => {
|
|
145
|
+
clearInterval(sleep);
|
|
146
|
+
};
|
|
147
|
+
exports.wakeUp = wakeUp;
|
|
148
|
+
const formatToString = (val, separator = ' ', currency = '') => {
|
|
149
|
+
// return String(val).replace(/(.)(?=(\d{3})+$)/g, '$1,');
|
|
150
|
+
return String(val).replace(/(.)(?=(\d{3})+$)/g, '$1' + separator + '') + currency;
|
|
151
|
+
};
|
|
152
|
+
exports.formatToString = formatToString;
|
|
153
|
+
const formatToStringCfa = (val) => {
|
|
154
|
+
// return String(val).replace(/(.)(?=(\d{3})+$)/g, '$1 ') + ' CFA';
|
|
155
|
+
return (0, exports.formatToString)(val, ' ', ' CFA');
|
|
156
|
+
};
|
|
157
|
+
exports.formatToStringCfa = formatToStringCfa;
|
|
158
|
+
// const = reformatDates(fromDate: string, toDate: string) => {
|
|
159
|
+
const reformatDates = (fromDate, toDate) => {
|
|
160
|
+
if (fromDate === undefined || fromDate === null) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
toDate = (!toDate) ? fromDate : toDate;
|
|
164
|
+
return { fromDate, toDate };
|
|
165
|
+
};
|
|
166
|
+
exports.reformatDates = reformatDates;
|
|
167
|
+
const absFromSequence = (arr) => {
|
|
168
|
+
const [min, max] = [Math.min(...arr), Math.max(...arr)];
|
|
169
|
+
// let out = Array.from(Array(max - min), (v, i) => i + min).filter((i) => !arr.includes(i));
|
|
170
|
+
return Array.from(Array(max - min), (v, i) => i + min).filter((i) => !arr.includes(i));
|
|
171
|
+
};
|
|
172
|
+
exports.absFromSequence = absFromSequence;
|
|
173
|
+
const sequencesToNumbers = (arr) => {
|
|
174
|
+
const seqs = [];
|
|
175
|
+
for (const item of arr) {
|
|
176
|
+
seqs.push(+(Object.values(item)));
|
|
177
|
+
}
|
|
178
|
+
return seqs;
|
|
179
|
+
};
|
|
180
|
+
exports.sequencesToNumbers = sequencesToNumbers;
|
|
181
|
+
const findSequencesMissing = (arr) => {
|
|
182
|
+
const seqs = [];
|
|
183
|
+
for (const item of arr) {
|
|
184
|
+
seqs.push(+(Object.values(item)));
|
|
185
|
+
}
|
|
186
|
+
return (0, exports.absFromSequence)(seqs);
|
|
187
|
+
};
|
|
188
|
+
exports.findSequencesMissing = findSequencesMissing;
|
|
189
|
+
const fillNumWithZero = (num, targetLength) => {
|
|
190
|
+
return num.toString().padStart(targetLength, '0');
|
|
191
|
+
};
|
|
192
|
+
exports.fillNumWithZero = fillNumWithZero;
|
|
193
|
+
const findFirstSequenceMissing = (arr) => {
|
|
194
|
+
/* const seqs: number[] = [];
|
|
195
|
+
for (const item of arr) => {
|
|
196
|
+
seqs.push(+ (Object.values(item)))
|
|
197
|
+
} */
|
|
198
|
+
return (0, exports.findSequencesMissing)(arr)[0];
|
|
199
|
+
};
|
|
200
|
+
exports.findFirstSequenceMissing = findFirstSequenceMissing;
|
|
201
|
+
const deepClone = (obj) => {
|
|
202
|
+
return JSON.parse(JSON.stringify(obj));
|
|
203
|
+
};
|
|
204
|
+
exports.deepClone = deepClone;
|
|
205
|
+
const removeString = (text, word) => {
|
|
206
|
+
return text.toLowerCase().replace(word.toLowerCase(), '') || text;
|
|
207
|
+
};
|
|
208
|
+
exports.removeString = removeString;
|
|
209
|
+
const removeBackSlashOccurences = (text, toChar) => {
|
|
210
|
+
const regex = /\/+/gi;
|
|
211
|
+
return String(text).toLowerCase().replace(regex, toChar) || text;
|
|
212
|
+
};
|
|
213
|
+
exports.removeBackSlashOccurences = removeBackSlashOccurences;
|
|
214
|
+
const genSequenceRef = (refs, startChars, zeroFillWidth, dateFormat = '') => {
|
|
215
|
+
if (!refs.length) {
|
|
216
|
+
return startChars + dateFormat + (0, exports.fillNumWithZero)(1, zeroFillWidth);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
const seqs = (0, exports.sequencesToNumbers)(refs);
|
|
220
|
+
const missingSequences = (0, exports.absFromSequence)(seqs);
|
|
221
|
+
if (!missingSequences.length) {
|
|
222
|
+
/* if(seqs.length === 1) => {
|
|
223
|
+
return startChars + fillNumWithZero((+seqs[0] + 1 ), zeroFillWidth); // get the last item of the array and incremente
|
|
224
|
+
} else { */
|
|
225
|
+
if (seqs[0] !== 1) {
|
|
226
|
+
return startChars + dateFormat + (0, exports.fillNumWithZero)(1, zeroFillWidth);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
return startChars + dateFormat + (0, exports.fillNumWithZero)((seqs[seqs.length - 1] + 1), zeroFillWidth); // get the last item of the array
|
|
230
|
+
}
|
|
231
|
+
// }
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
return startChars + dateFormat + (0, exports.fillNumWithZero)(missingSequences[0], zeroFillWidth);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
exports.genSequenceRef = genSequenceRef;
|
|
239
|
+
const sesStorageSet = (key, val) => {
|
|
240
|
+
sessionStorage.setItem(key, JSON.stringify(val));
|
|
241
|
+
};
|
|
242
|
+
exports.sesStorageSet = sesStorageSet;
|
|
243
|
+
const sesStorageGet = (key) => {
|
|
244
|
+
return JSON.parse(sessionStorage.getItem(key));
|
|
245
|
+
};
|
|
246
|
+
exports.sesStorageGet = sesStorageGet;
|
|
247
|
+
const replaceAllIn = (text, regex = / /g, toChar = '_') => {
|
|
248
|
+
return text.replace(regex, toChar) || text;
|
|
249
|
+
};
|
|
250
|
+
exports.replaceAllIn = replaceAllIn;
|
|
251
|
+
const replaceSpacesWith = (text, toChar = '_') => {
|
|
252
|
+
return text.replace(/\s/g, toChar) || text;
|
|
253
|
+
};
|
|
254
|
+
exports.replaceSpacesWith = replaceSpacesWith;
|
|
255
|
+
const dateToString = (date) => {
|
|
256
|
+
return date.year + '-' + ('0' + date.month).slice(-2) + '-' + ('0' + date.day).slice(-2);
|
|
257
|
+
};
|
|
258
|
+
exports.dateToString = dateToString;
|
|
259
|
+
// export const formatNgbDate = (date: DateSelected) => {
|
|
260
|
+
const formatNgbDate = (date) => {
|
|
261
|
+
const fromDate = (date.fromDate) ? (0, exports.dateToString)(date.fromDate) : null;
|
|
262
|
+
const toDate = (date.toDate) ? (0, exports.dateToString)(date.toDate) : null;
|
|
263
|
+
return { fromDate: fromDate, toDate: toDate };
|
|
264
|
+
};
|
|
265
|
+
exports.formatNgbDate = formatNgbDate;
|
|
266
|
+
const genRandomColour = () => {
|
|
267
|
+
return "#" + Math.floor(Math.random() * 16777215).toString(16);
|
|
268
|
+
};
|
|
269
|
+
exports.genRandomColour = genRandomColour;
|
|
270
|
+
const getColorAccordingToDate = (inputDate, period1 = 3, period2 = 6, period3 = 9, ifClass) => {
|
|
271
|
+
const date = new Date();
|
|
272
|
+
const date2 = new Date(inputDate);
|
|
273
|
+
const diffNumber = Math.ceil((0, exports.getNbOfDaysBetweenTwoDates)(date2, date));
|
|
274
|
+
period1 = period1 * 30;
|
|
275
|
+
period2 = period2 * 30;
|
|
276
|
+
period3 = period3 * 30;
|
|
277
|
+
if (ifClass) {
|
|
278
|
+
if (diffNumber <= period1) {
|
|
279
|
+
return 'red';
|
|
280
|
+
}
|
|
281
|
+
else if (diffNumber > period1 && diffNumber <= period2) {
|
|
282
|
+
return 'DarkOrange';
|
|
283
|
+
}
|
|
284
|
+
else if (diffNumber > period2 && diffNumber <= period3) {
|
|
285
|
+
return 'turquoise';
|
|
286
|
+
}
|
|
287
|
+
else if (diffNumber > period3) {
|
|
288
|
+
return 'blue';
|
|
289
|
+
}
|
|
290
|
+
return 'green';
|
|
291
|
+
}
|
|
292
|
+
if (diffNumber <= period1) {
|
|
293
|
+
// return '#cc3300';
|
|
294
|
+
return '#f46a6a';
|
|
295
|
+
}
|
|
296
|
+
else if (diffNumber > period1 && diffNumber <= period2) {
|
|
297
|
+
// return '#fff3cd';
|
|
298
|
+
return '#f1b44c';
|
|
299
|
+
}
|
|
300
|
+
else if (diffNumber > period2 && diffNumber <= period3) {
|
|
301
|
+
return '#cce5ff';
|
|
302
|
+
}
|
|
303
|
+
else if (diffNumber > period3) {
|
|
304
|
+
// return '#339900';
|
|
305
|
+
return '#34c38f';
|
|
306
|
+
}
|
|
307
|
+
return '#339900';
|
|
308
|
+
};
|
|
309
|
+
exports.getColorAccordingToDate = getColorAccordingToDate;
|
|
310
|
+
const checked = (event, item, checks, isChecked = true) => {
|
|
311
|
+
// let isChecked = true;
|
|
312
|
+
const evt = event.target.checked;
|
|
313
|
+
checks = (0, exports.arrayMultiChecked)(checks, evt, item);
|
|
314
|
+
// (checks.length) ? isChecked = true : isChecked = false;
|
|
315
|
+
isChecked = (checks.length) ? true : false;
|
|
316
|
+
return checks;
|
|
317
|
+
};
|
|
318
|
+
exports.checked = checked;
|
|
319
|
+
const unCheckedAll = (checks) => {
|
|
320
|
+
const checkeds = document.querySelectorAll("input");
|
|
321
|
+
checkeds.forEach((el) => {
|
|
322
|
+
if (el.checked) {
|
|
323
|
+
el.checked = false;
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
checks = [];
|
|
327
|
+
};
|
|
328
|
+
exports.unCheckedAll = unCheckedAll;
|
|
329
|
+
const arrayMultiChecked = (objet, event, item) => {
|
|
330
|
+
const findItem = objet.find(x => x.id === item.id);
|
|
331
|
+
event && !findItem ? objet.push(item) : objet.splice(objet.indexOf(findItem), 1);
|
|
332
|
+
return objet;
|
|
333
|
+
};
|
|
334
|
+
exports.arrayMultiChecked = arrayMultiChecked;
|
|
335
|
+
const packAndUnit = (qtity, qtityPerPackaging = 0) => {
|
|
336
|
+
if (qtityPerPackaging === 0) {
|
|
337
|
+
return qtity + ' u';
|
|
338
|
+
}
|
|
339
|
+
const pack = Math.floor(qtity / qtityPerPackaging);
|
|
340
|
+
const unit = qtity % qtityPerPackaging;
|
|
341
|
+
return pack + ' c et ' + unit + ' u';
|
|
342
|
+
};
|
|
343
|
+
exports.packAndUnit = packAndUnit;
|
|
344
|
+
const convertToCfa = (price, currency = 'fcfa', dollarRate = 600) => {
|
|
345
|
+
switch (currency.toLowerCase()) {
|
|
346
|
+
case 'eur':
|
|
347
|
+
return price * 655.95;
|
|
348
|
+
case 'usd':
|
|
349
|
+
return price * dollarRate; //579.50
|
|
350
|
+
case 'fcfa':
|
|
351
|
+
return price;
|
|
352
|
+
default:
|
|
353
|
+
return price;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
const validEmail = (email) => {
|
|
357
|
+
// const regexEmail = '/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/'
|
|
358
|
+
if (email !== '' && email.toLowerCase().match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/)) {
|
|
359
|
+
return true;
|
|
360
|
+
}
|
|
361
|
+
return false;
|
|
362
|
+
// return email.toLowerCase().match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/)
|
|
363
|
+
};
|