@stamhoofd/utility 1.1.15 → 2.1.3

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.
Files changed (74) hide show
  1. package/LICENSE +661 -0
  2. package/dist/index.d.ts +6 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/Colors.d.ts +39 -0
  7. package/dist/src/Colors.d.ts.map +1 -0
  8. package/dist/src/Colors.js +240 -0
  9. package/dist/src/Colors.js.map +1 -0
  10. package/dist/src/DataValidator.d.ts +4 -0
  11. package/dist/src/DataValidator.d.ts.map +1 -0
  12. package/dist/src/DataValidator.js +20 -0
  13. package/dist/src/DataValidator.js.map +1 -0
  14. package/dist/src/Formatter.d.ts +52 -6
  15. package/dist/src/Formatter.d.ts.map +1 -1
  16. package/dist/src/Formatter.js +218 -16
  17. package/dist/src/Formatter.js.map +1 -1
  18. package/dist/src/GoogleTranslateHelper.d.ts +5 -0
  19. package/dist/src/GoogleTranslateHelper.d.ts.map +1 -0
  20. package/dist/src/GoogleTranslateHelper.js +22 -0
  21. package/dist/src/GoogleTranslateHelper.js.map +1 -0
  22. package/dist/src/Sleep.d.ts +2 -0
  23. package/dist/src/Sleep.d.ts.map +1 -0
  24. package/dist/src/Sleep.js +8 -0
  25. package/dist/src/Sleep.js.map +1 -0
  26. package/dist/src/Sorter.d.ts +19 -7
  27. package/dist/src/Sorter.d.ts.map +1 -1
  28. package/dist/src/Sorter.js +37 -0
  29. package/dist/src/Sorter.js.map +1 -1
  30. package/dist/src/StringCompare.d.ts +16 -1
  31. package/dist/src/StringCompare.d.ts.map +1 -1
  32. package/dist/src/StringCompare.js +43 -1
  33. package/dist/src/StringCompare.js.map +1 -1
  34. package/dist/src/Throttle.d.ts +2 -0
  35. package/dist/src/Throttle.d.ts.map +1 -0
  36. package/dist/src/Throttle.js +24 -0
  37. package/dist/src/Throttle.js.map +1 -0
  38. package/esm/dist/index.d.ts +6 -1
  39. package/esm/dist/index.d.ts.map +1 -1
  40. package/esm/dist/index.js +6 -1
  41. package/esm/dist/index.js.map +1 -1
  42. package/esm/dist/src/Colors.d.ts +39 -0
  43. package/esm/dist/src/Colors.d.ts.map +1 -0
  44. package/esm/dist/src/Colors.js +236 -0
  45. package/esm/dist/src/Colors.js.map +1 -0
  46. package/esm/dist/src/DataValidator.d.ts +4 -0
  47. package/esm/dist/src/DataValidator.d.ts.map +1 -0
  48. package/esm/dist/src/DataValidator.js +16 -0
  49. package/esm/dist/src/DataValidator.js.map +1 -0
  50. package/esm/dist/src/Formatter.d.ts +52 -6
  51. package/esm/dist/src/Formatter.d.ts.map +1 -1
  52. package/esm/dist/src/Formatter.js +218 -16
  53. package/esm/dist/src/Formatter.js.map +1 -1
  54. package/esm/dist/src/GoogleTranslateHelper.d.ts +5 -0
  55. package/esm/dist/src/GoogleTranslateHelper.d.ts.map +1 -0
  56. package/esm/dist/src/GoogleTranslateHelper.js +18 -0
  57. package/esm/dist/src/GoogleTranslateHelper.js.map +1 -0
  58. package/esm/dist/src/Sleep.d.ts +2 -0
  59. package/esm/dist/src/Sleep.d.ts.map +1 -0
  60. package/esm/dist/src/Sleep.js +4 -0
  61. package/esm/dist/src/Sleep.js.map +1 -0
  62. package/esm/dist/src/Sorter.d.ts +19 -7
  63. package/esm/dist/src/Sorter.d.ts.map +1 -1
  64. package/esm/dist/src/Sorter.js +37 -0
  65. package/esm/dist/src/Sorter.js.map +1 -1
  66. package/esm/dist/src/StringCompare.d.ts +16 -1
  67. package/esm/dist/src/StringCompare.d.ts.map +1 -1
  68. package/esm/dist/src/StringCompare.js +43 -1
  69. package/esm/dist/src/StringCompare.js.map +1 -1
  70. package/esm/dist/src/Throttle.d.ts +2 -0
  71. package/esm/dist/src/Throttle.d.ts.map +1 -0
  72. package/esm/dist/src/Throttle.js +20 -0
  73. package/esm/dist/src/Throttle.js.map +1 -0
  74. package/package.json +4 -19
@@ -1,3 +1,5 @@
1
+ import { DateTime } from "luxon";
2
+ import { Sorter } from "./Sorter";
1
3
  function pad(number) {
2
4
  if (number < 10) {
3
5
  return '0' + number;
@@ -5,63 +7,204 @@ function pad(number) {
5
7
  return number;
6
8
  }
7
9
  export class Formatter {
8
- static slug(name) {
10
+ static removeAccents(name) {
9
11
  name = name.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
10
- return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
12
+ return name;
13
+ }
14
+ static emailSenderName(name) {
15
+ return this.removeAccents(name).replace(/[^A-Za-z]+/g, " ").trim();
16
+ }
17
+ static slug(name) {
18
+ return this.removeAccents(name).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
19
+ }
20
+ static slugEmail(name) {
21
+ return this.removeAccents(name).toLowerCase().replace(/[^a-z0-9_]+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
22
+ }
23
+ static fileSlug(name) {
24
+ return this.removeAccents(name).replace(/[^A-Za-z0-9-]+/g, " ").trim();
25
+ }
26
+ static removeDuplicateSpaces(name) {
27
+ return name.replace(/\s+/, " ");
11
28
  }
12
29
  /**
13
30
  * 1 = january
14
31
  */
15
32
  static month(index) {
33
+ if (typeof index === "object") {
34
+ const datetime = DateTime.fromJSDate(index).setZone(this.timezone);
35
+ index = datetime.month;
36
+ }
16
37
  const monthNames = ["januari", "februari", "maart", "april", "mei", "juni",
17
38
  "juli", "augustus", "september", "oktober", "november", "december"
18
39
  ];
19
40
  return monthNames[index - 1];
20
41
  }
42
+ static weekDay(date) {
43
+ if (!date) {
44
+ // Crash protection in case undefined get passed
45
+ return "?";
46
+ }
47
+ const monthNames = ["maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag",];
48
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
49
+ return monthNames[datetime.weekday - 1];
50
+ }
51
+ /**
52
+ * 1 januari (2020). Year only in different year if withYear is null (default)
53
+ */
54
+ static date(date, withYear = null) {
55
+ if (!date) {
56
+ // Crash protection in case undefined get passed
57
+ return "?";
58
+ }
59
+ const currentYear = DateTime.now().setZone(this.timezone).year;
60
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
61
+ const year = datetime.year;
62
+ return datetime.day + " " + this.month(datetime.month) + (currentYear != year || withYear === true ? (" " + year) : "");
63
+ }
64
+ /**
65
+ * januari 2020
66
+ */
67
+ static dateWithoutDay(date, options) {
68
+ var _a;
69
+ if (!date) {
70
+ // Crash protection in case undefined get passed
71
+ return "?";
72
+ }
73
+ const datetime = DateTime.fromJSDate(date).setZone((_a = options === null || options === void 0 ? void 0 : options.timezone) !== null && _a !== void 0 ? _a : this.timezone);
74
+ const year = datetime.year;
75
+ return this.month(datetime.month) + " " + year;
76
+ }
77
+ /**
78
+ * 2020
79
+ */
80
+ static year(date) {
81
+ if (!date) {
82
+ // Crash protection in case undefined get passed
83
+ return 0;
84
+ }
85
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
86
+ return datetime.year;
87
+ }
88
+ /**
89
+ * maandag, 1 januari (2020). Year only in different year
90
+ */
91
+ static dateWithDay(date) {
92
+ if (!date) {
93
+ // Crash protection in case undefined get passed
94
+ return "?";
95
+ }
96
+ return this.weekDay(date) + ", " + this.date(date);
97
+ }
21
98
  /**
22
- * 1 januari (2020). Year only in different year
99
+ * maandag, 1 januari (2020) om XX:XX. Year only in different year
23
100
  */
24
- static date(date) {
25
- const currentYear = new Date().getFullYear();
26
- const year = date.getFullYear();
27
- return date.getDate() + " " + this.month(date.getMonth() + 1) + (currentYear != year ? (" " + year) : "");
101
+ static dateTimeWithDay(date) {
102
+ if (!date) {
103
+ // Crash protection in case undefined get passed
104
+ return "?";
105
+ }
106
+ return this.weekDay(date) + ", " + this.dateTime(date);
28
107
  }
29
108
  /**
30
109
  * 01/01/2020
31
110
  */
32
- static dateNumber(date) {
33
- const year = date.getFullYear();
34
- return (date.getDate() + "").padStart(2, "0") + "/" + ((date.getMonth() + 1) + "").padStart(2, "0") + "/" + year;
111
+ static dateNumber(date, withYear = true) {
112
+ if (!date) {
113
+ // Crash protection in case undefined get passed
114
+ return "?";
115
+ }
116
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
117
+ return (datetime.day + "").padStart(2, "0") + "/" + (datetime.month + "").padStart(2, "0") + (withYear ? "/" + datetime.year : "");
35
118
  }
36
119
  /**
37
120
  * 2020-01-31
38
121
  */
39
122
  static dateIso(date) {
40
- const year = date.getFullYear();
41
- return year + "-" + ((date.getMonth() + 1) + "").padStart(2, "0") + "-" + (date.getDate() + "").padStart(2, "0");
123
+ if (!date) {
124
+ // Crash protection in case undefined get passed
125
+ return "?";
126
+ }
127
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
128
+ const year = datetime.year;
129
+ return year + "-" + (datetime.month + "").padStart(2, "0") + "-" + (datetime.day + "").padStart(2, "0");
42
130
  }
43
131
  /**
44
132
  * 12:00
45
133
  */
46
134
  static time(date) {
47
- return date.getHours() + ":" + (date.getMinutes() + "").padStart(2, "0");
135
+ if (!date) {
136
+ // Crash protection in case undefined get passed
137
+ return "?";
138
+ }
139
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
140
+ return datetime.hour + ":" + (datetime.minute + "").padStart(2, "0");
141
+ }
142
+ static luxon(date = new Date()) {
143
+ return DateTime.fromJSDate(date).setZone(this.timezone);
144
+ }
145
+ /**
146
+ * 12:00
147
+ */
148
+ static timeIso(date) {
149
+ if (!date) {
150
+ // Crash protection in case undefined get passed
151
+ return "?";
152
+ }
153
+ const datetime = DateTime.fromJSDate(date).setZone(this.timezone);
154
+ return (datetime.hour + "").padStart(2, "0") + ":" + (datetime.minute + "").padStart(2, "0");
155
+ }
156
+ static uniqueArray(array) {
157
+ function onlyUnique(value, index, self) {
158
+ return self.indexOf(value) === index;
159
+ }
160
+ return array.filter(onlyUnique);
48
161
  }
49
162
  /**
50
163
  * 1 januari (2020) om 12:00. Year only in different year
51
164
  */
52
- static dateTime(date) {
165
+ static dateTime(date, hideZero = false) {
166
+ if (!date) {
167
+ // Crash protection in case undefined get passed
168
+ return "?";
169
+ }
170
+ if (hideZero && this.time(date) == "0:00") {
171
+ return this.date(date);
172
+ }
53
173
  return this.date(date) + " om " + this.time(date);
54
174
  }
55
- static price(value) {
175
+ static integer(value) {
176
+ const formatted = new Intl.NumberFormat("nl-BE").format(Math.abs(value));
177
+ const v = (value < 0 ? "- " : "") + formatted;
178
+ return v;
179
+ }
180
+ static percentage(value) {
181
+ const formatted = new Intl.NumberFormat("nl-BE").format(Math.abs(value / 100));
182
+ const v = (value < 0 ? "- " : "") + formatted;
183
+ return v + "%";
184
+ }
185
+ static price(value, removeZeroDecimals = true) {
56
186
  const formatted = new Intl.NumberFormat("nl-BE", {
57
187
  style: "currency",
58
188
  currency: "EUR",
59
189
  }).format(Math.abs(value) / 100);
60
- return formatted.replace(new RegExp("EUR", "ig"), '€');
190
+ const v = (value < 0 ? "- " : "") + formatted.replace(new RegExp("EUR", "ig"), '€');
191
+ if (removeZeroDecimals && (v.endsWith(",00") || v.endsWith(".00"))) {
192
+ return v.substring(0, v.length - 3);
193
+ }
194
+ return v;
195
+ }
196
+ static priceChange(value) {
197
+ if (value >= 0) {
198
+ return "+ " + this.price(value);
199
+ }
200
+ return this.price(value);
61
201
  }
62
202
  static capitalizeFirstLetter(string) {
63
203
  return string.charAt(0).toUpperCase() + string.slice(1);
64
204
  }
205
+ static capitalizeWords(string) {
206
+ return string.split(" ").map(s => this.capitalizeFirstLetter(s)).join(" ");
207
+ }
65
208
  static fileSize(bytes) {
66
209
  if (bytes < 1000) {
67
210
  return bytes + " bytes";
@@ -74,10 +217,69 @@ export class Formatter {
74
217
  }
75
218
  return Math.round(bytes / 1000 / 1000 / 10) / 100 + " GB";
76
219
  }
220
+ static minutesPadded(minutes) {
221
+ const h = Math.floor(minutes / 60);
222
+ const m = minutes - h * 60;
223
+ return (h + "").padStart(2, "0") + ":" + (m + "").padStart(2, "0");
224
+ }
77
225
  static minutes(minutes) {
78
226
  const h = Math.floor(minutes / 60);
79
227
  const m = minutes - h * 60;
80
228
  return h + ":" + (m + "").padStart(2, "0");
81
229
  }
230
+ static escapeHtml(unsafe) {
231
+ return unsafe
232
+ .replace(/&/g, "&amp;")
233
+ .replace(/</g, "&lt;")
234
+ .replace(/>/g, "&gt;")
235
+ .replace(/"/g, "&quot;")
236
+ .replace(/'/g, "&#039;");
237
+ }
238
+ static joinLast(array, separator, lastSeparator) {
239
+ array = array.slice();
240
+ const last = array.pop();
241
+ if (last === undefined) {
242
+ return "";
243
+ }
244
+ if (array.length == 0) {
245
+ return last + "";
246
+ }
247
+ return array.join(separator) + lastSeparator + last;
248
+ }
249
+ static ordinalNumber(number) {
250
+ if (number == 1) {
251
+ return "eerste";
252
+ }
253
+ if (number == 2) {
254
+ return "tweede";
255
+ }
256
+ if (number == 3) {
257
+ return "derde";
258
+ }
259
+ return number + "e";
260
+ }
261
+ static pluralText(num, singular, plural) {
262
+ if (num === 1) {
263
+ return 'één ' + singular;
264
+ }
265
+ return num + ' ' + plural;
266
+ }
267
+ static groupNamesByFamily(names) {
268
+ const n = names.slice().sort((a, b) => Sorter.stack(a.lastName.localeCompare(b.lastName), a.firstName.localeCompare(b.firstName)));
269
+ const firstNames = this.uniqueArray(n.map(n => n.firstName));
270
+ const lastNames = this.uniqueArray(n.map(n => n.lastName));
271
+ return this.joinLast(firstNames, ", ", " en ") + (lastNames.length > 0 ? (" " + lastNames.join('-')) : '');
272
+ }
273
+ static firstLetters(str, maxLength) {
274
+ if (!str) {
275
+ return "";
276
+ }
277
+ if (maxLength === 1) {
278
+ return str.substr(0, 1).toLocaleUpperCase();
279
+ }
280
+ const splitted = Formatter.slug(str).split('-');
281
+ return splitted.slice(0, maxLength).map(s => s.substr(0, 1).toLocaleUpperCase()).join('');
282
+ }
82
283
  }
284
+ Formatter.timezone = "Europe/Brussels";
83
285
  //# sourceMappingURL=Formatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../../src/Formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../../src/Formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class GoogleTranslateHelper {
2
+ static isGoogleTranslateDomain(domain: string): boolean;
3
+ static getDomainFromTranslateDomain(domain: string): string;
4
+ }
5
+ //# sourceMappingURL=GoogleTranslateHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleTranslateHelper.d.ts","sourceRoot":"","sources":["../../../src/GoogleTranslateHelper.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAqB;IAC9B,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAc9D"}
@@ -0,0 +1,18 @@
1
+ export class GoogleTranslateHelper {
2
+ static isGoogleTranslateDomain(domain) {
3
+ return domain.endsWith(".translate.goog");
4
+ }
5
+ static getDomainFromTranslateDomain(domain) {
6
+ if (this.isGoogleTranslateDomain(domain)) {
7
+ // Strip it out
8
+ let cleaned = domain.substr(0, domain.length - (".translate.goog").length);
9
+ // Replace dashes with points
10
+ cleaned = cleaned.replace(/-/g, ".");
11
+ // Replace double points with dashes
12
+ cleaned = cleaned.replace(/\.\./g, "-");
13
+ return cleaned;
14
+ }
15
+ return domain;
16
+ }
17
+ }
18
+ //# sourceMappingURL=GoogleTranslateHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleTranslateHelper.js","sourceRoot":"","sources":["../../../src/GoogleTranslateHelper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAC9B,MAAM,CAAC,uBAAuB,CAAC,MAAc;QACzC,OAAO,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,MAAc;QAC9C,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,eAAe;YACf,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAE,CAAA;YAE3E,6BAA6B;YAC7B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAEpC,oCAAoC;YACpC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACvC,OAAO,OAAO,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare function sleep(ms: number): Promise<unknown>;
2
+ //# sourceMappingURL=Sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sleep.d.ts","sourceRoot":"","sources":["../../../src/Sleep.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B"}
@@ -0,0 +1,4 @@
1
+ export function sleep(ms) {
2
+ return new Promise(resolve => setTimeout(resolve, ms));
3
+ }
4
+ //# sourceMappingURL=Sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sleep.js","sourceRoot":"","sources":["../../../src/Sleep.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,EAAU;IAC5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -3,15 +3,27 @@ export declare class Sorter {
3
3
  id: string;
4
4
  }, b: {
5
5
  id: string;
6
- }): 1 | 0 | -1;
7
- static byStringProperty<Field extends keyof any>(a: Record<Field, string>, b: Record<Field, string>, field: Field): 1 | 0 | -1;
8
- static byStringValue(a: string, b: string): 1 | 0 | -1;
9
- static byBooleanValue(a: boolean, b: boolean): 1 | 0 | -1;
10
- static byNumberValue(a: number, b: number): 1 | 0 | -1;
11
- static byDateValue(a: Date, b: Date): 1 | 0 | -1;
6
+ }): 0 | 1 | -1;
7
+ static byStringProperty<Field extends keyof any>(a: Record<Field, string>, b: Record<Field, string>, field: Field): 0 | 1 | -1;
8
+ static byNumberProperty<Field extends keyof any>(a: Record<Field, number>, b: Record<Field, number>, field: Field): 0 | 1 | -1;
9
+ /**
10
+ * Sort strings ASC order
11
+ */
12
+ static byStringValue(a: string, b: string): 0 | 1 | -1;
13
+ static byBooleanValue(a: boolean, b: boolean): 0 | 1 | -1;
14
+ static byEnumValue<T extends {}>(a: string, b: string, enumObject: T): number;
15
+ /**
16
+ * Sort from large to small - DESC
17
+ */
18
+ static byNumberValue(a: number, b: number): 0 | 1 | -1;
19
+ /**
20
+ * Sort from new to old - DESC
21
+ */
22
+ static byDateValue(a: Date, b: Date): 0 | 1 | -1;
12
23
  /**
13
24
  * Return the first non zero value from a list, or zero if all values are zero
14
25
  */
15
- static stack(...sortResults: (0 | 1 | -1)[]): 1 | 0 | -1 | undefined;
26
+ static stack(...sortResults: number[]): number;
27
+ static getMostOccuringElement<T>(array: T[]): T | undefined;
16
28
  }
17
29
  //# sourceMappingURL=Sorter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sorter.d.ts","sourceRoot":"","sources":["../../../src/Sorter.ts"],"names":[],"mappings":"AACA,qBAAa,MAAM;IACf,MAAM,CAAC,IAAI,CAAE,CAAC,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC;IAU7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,EAAI,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK;IAInH,MAAM,CAAC,aAAa,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAa1C,MAAM,CAAC,cAAc,CAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO;IAU7C,MAAM,CAAC,aAAa,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAU1C,MAAM,CAAC,WAAW,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAUpC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;CAS9C"}
1
+ {"version":3,"file":"Sorter.d.ts","sourceRoot":"","sources":["../../../src/Sorter.ts"],"names":[],"mappings":"AACA,qBAAa,MAAM;IACf,MAAM,CAAC,IAAI,CAAE,CAAC,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC,EAAE;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC;IAU7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,EAAI,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK;IAInH,MAAM,CAAC,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,EAAI,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK;IAInH;;OAEG;IACH,MAAM,CAAC,aAAa,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAa1C,MAAM,CAAC,cAAc,CAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO;IAU7C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,EAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAIrE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAU1C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;IAUpC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE;IAWrC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS;CAoB9D"}
@@ -11,6 +11,12 @@ export class Sorter {
11
11
  static byStringProperty(a, b, field) {
12
12
  return this.byStringValue(a[field], b[field]);
13
13
  }
14
+ static byNumberProperty(a, b, field) {
15
+ return this.byNumberValue(a[field], b[field]);
16
+ }
17
+ /**
18
+ * Sort strings ASC order
19
+ */
14
20
  static byStringValue(a, b) {
15
21
  const af = a.toLowerCase();
16
22
  const bf = b.toLowerCase();
@@ -31,6 +37,12 @@ export class Sorter {
31
37
  }
32
38
  return 1;
33
39
  }
40
+ static byEnumValue(a, b, enumObject) {
41
+ return Object.values(enumObject).indexOf(a) - Object.values(enumObject).indexOf(b);
42
+ }
43
+ /**
44
+ * Sort from large to small - DESC
45
+ */
34
46
  static byNumberValue(a, b) {
35
47
  if (a === b) {
36
48
  return 0;
@@ -40,6 +52,9 @@ export class Sorter {
40
52
  }
41
53
  return 1;
42
54
  }
55
+ /**
56
+ * Sort from new to old - DESC
57
+ */
43
58
  static byDateValue(a, b) {
44
59
  if (a === b) {
45
60
  return 0;
@@ -54,6 +69,7 @@ export class Sorter {
54
69
  */
55
70
  static stack(...sortResults) {
56
71
  while (sortResults.length > 0) {
72
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
57
73
  const f = sortResults.shift();
58
74
  if (f != 0) {
59
75
  return f;
@@ -61,5 +77,26 @@ export class Sorter {
61
77
  }
62
78
  return 0;
63
79
  }
80
+ static getMostOccuringElement(array) {
81
+ const counts = new Map();
82
+ for (const element of array) {
83
+ const count = counts.get(element);
84
+ if (count) {
85
+ counts.set(element, count + 1);
86
+ }
87
+ else {
88
+ counts.set(element, 1);
89
+ }
90
+ }
91
+ let maxCount = 0;
92
+ let mostOccuringElement;
93
+ for (const [element, count] of counts) {
94
+ if (count > maxCount) {
95
+ maxCount = count;
96
+ mostOccuringElement = element;
97
+ }
98
+ }
99
+ return mostOccuringElement;
100
+ }
64
101
  }
65
102
  //# sourceMappingURL=Sorter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sorter.js","sourceRoot":"","sources":["../../../src/Sorter.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,MAAM;IACf,MAAM,CAAC,IAAI,CAAE,CAAe,EAAE,CAAe;QACzC,IAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,CAAC,CAAC,CAAC;SACb;QACD,IAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,gBAAgB,CAA4B,CAAwB,EAAE,CAAwB,EAAE,KAAY;QAC/G,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,CAAC,aAAa,CAAE,CAAS,EAAE,CAAS;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAE1B,IAAK,EAAE,GAAG,EAAE,EAAE;YACV,OAAO,CAAC,CAAC;SACZ;QACD,IAAK,EAAE,GAAG,EAAE,EAAE;YACV,OAAO,CAAC,CAAC,CAAC;SACb;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,cAAc,CAAE,CAAU,EAAE,CAAU;QACzC,IAAI,CAAC,KAAK,CAAC,EAAE;YACT,OAAO,CAAC,CAAA;SACX;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACT,OAAO,CAAC,CAAC,CAAA;SACZ;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,aAAa,CAAE,CAAS,EAAE,CAAS;QACtC,IAAI,CAAC,KAAK,CAAC,EAAE;YACT,OAAO,CAAC,CAAA;SACX;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,OAAO,CAAC,CAAC,CAAA;SACZ;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAE,CAAO,EAAE,CAAO;QAChC,IAAI,CAAC,KAAK,CAAC,EAAE;YACT,OAAO,CAAC,CAAA;SACX;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,OAAO,CAAC,CAAC,CAAA;SACZ;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,WAA2B;QACvC,OAAM,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,OAAO,CAAC,CAAA;aACX;SACJ;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;CACJ"}
1
+ {"version":3,"file":"Sorter.js","sourceRoot":"","sources":["../../../src/Sorter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,23 @@
1
1
  export declare class StringCompare {
2
+ /**
3
+ * Return the search score = percentage (floating point) that matches.
4
+ * Returns zero if no match is found or if minimum percentage is not met
5
+ */
6
+ static contains(haystack: string, needle: string): boolean;
7
+ /**
8
+ * Return the search score = percentage (floating point) that matches.
9
+ * Returns zero if no match is found or if minimum percentage is not met
10
+ */
11
+ static searchScore(haystack: string, needle: string, minimumPercentage?: number | null, minimumChars?: number | null): number;
2
12
  /**
3
13
  * Return the amount of characters that are equal (allowing to detect typo's)
4
14
  */
5
- static compare(left: string, right: string, allowSplit?: boolean): any;
15
+ static compare(left: string, right: string, allowSplit?: boolean): number;
16
+ static matchCount(original: string, compareWith: string): number;
6
17
  static typoCount(original: string, compareWith: string): number;
18
+ /**
19
+ * Return true if the user typed in full caps (sigh)
20
+ */
21
+ static isFullCaps(str: string): boolean;
7
22
  }
8
23
  //# sourceMappingURL=StringCompare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringCompare.d.ts","sourceRoot":"","sources":["../../../src/StringCompare.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IAEtB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,UAAO;IAyB7D,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAMzD"}
1
+ {"version":3,"file":"StringCompare.d.ts","sourceRoot":"","sources":["../../../src/StringCompare.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAa;IACtB;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAO1D;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAS,EAAE,YAAY,GAAE,MAAM,GAAG,IAAQ,GAAG,MAAM;IAgBpI;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,MAAM;IAyBtE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAOhE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAO/D;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAO1C"}
@@ -1,4 +1,30 @@
1
+ import { Formatter } from "./Formatter";
1
2
  export class StringCompare {
3
+ /**
4
+ * Return the search score = percentage (floating point) that matches.
5
+ * Returns zero if no match is found or if minimum percentage is not met
6
+ */
7
+ static contains(haystack, needle) {
8
+ haystack = haystack.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
9
+ needle = needle.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
10
+ return haystack.includes(needle);
11
+ }
12
+ /**
13
+ * Return the search score = percentage (floating point) that matches.
14
+ * Returns zero if no match is found or if minimum percentage is not met
15
+ */
16
+ static searchScore(haystack, needle, minimumPercentage = 10, minimumChars = 2) {
17
+ if (haystack.length == 0) {
18
+ return 0;
19
+ }
20
+ haystack = haystack.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
21
+ needle = needle.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
22
+ const overlap = this.compare(needle, haystack);
23
+ if ((minimumChars == null || overlap > minimumChars) && (minimumPercentage === null || overlap >= haystack.length * minimumPercentage / 100)) {
24
+ return overlap;
25
+ }
26
+ return 0;
27
+ }
2
28
  /**
3
29
  * Return the amount of characters that are equal (allowing to detect typo's)
4
30
  */
@@ -9,7 +35,7 @@ export class StringCompare {
9
35
  const firstLeft = left[0];
10
36
  const firstRight = right[0];
11
37
  if (firstLeft == firstRight) {
12
- return 1 + this.compare(left.substr(1), right.substr(1));
38
+ return 1 + this.compare(left.substr(1), right.substr(1), true);
13
39
  }
14
40
  if (allowSplit) {
15
41
  return Math.max(this.compare(left, right.substr(1), false), this.compare(right, left.substr(1), false), this.compare(left.substr(1), right.substr(1), false), this.compare(right.substr(1), left.substr(1), false));
@@ -17,11 +43,27 @@ export class StringCompare {
17
43
  // no split allowed -> continue to remove right side
18
44
  return this.compare(left, right.substr(1), false);
19
45
  }
46
+ static matchCount(original, compareWith) {
47
+ // remove special chars + lowercase
48
+ original = original.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
49
+ compareWith = compareWith.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
50
+ return this.compare(original, compareWith);
51
+ }
20
52
  static typoCount(original, compareWith) {
21
53
  // remove special chars + lowercase
22
54
  original = original.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
23
55
  compareWith = compareWith.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
24
56
  return Math.max(original.length, compareWith.length) - this.compare(original, compareWith);
25
57
  }
58
+ /**
59
+ * Return true if the user typed in full caps (sigh)
60
+ */
61
+ static isFullCaps(str) {
62
+ const fn = Formatter.removeAccents(str);
63
+ if (fn.toUpperCase() == fn) {
64
+ return true;
65
+ }
66
+ return false;
67
+ }
26
68
  }
27
69
  //# sourceMappingURL=StringCompare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringCompare.js","sourceRoot":"","sources":["../../../src/StringCompare.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAa;IAEtB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,UAAU,GAAG,IAAI;QACzD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACvC,OAAO,CAAC,CAAC;SACZ;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAE3B,IAAI,SAAS,IAAI,UAAU,EAAE;YACzB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SAC3D;QAED,IAAI,UAAU,EAAE;YACZ,OAAO,IAAI,CAAC,GAAG,CACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CACvD,CAAA;SACJ;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,QAAgB,EAAE,WAAmB;QAClD,mCAAmC;QACnC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9G,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpH,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC9F,CAAC;CACJ"}
1
+ {"version":3,"file":"StringCompare.js","sourceRoot":"","sources":["../../../src/StringCompare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const throttle: (func: any, limit: any) => (this: any) => void;
2
+ //# sourceMappingURL=Throttle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Throttle.d.ts","sourceRoot":"","sources":["../../../src/Throttle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,SAAU,GAAG,SAAS,GAAG,YAGpB,GAAG,SAgB5B,CAAC"}