@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,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Formatter = void 0;
4
+ const luxon_1 = require("luxon");
5
+ const Sorter_1 = require("./Sorter");
4
6
  function pad(number) {
5
7
  if (number < 10) {
6
8
  return '0' + number;
@@ -8,63 +10,204 @@ function pad(number) {
8
10
  return number;
9
11
  }
10
12
  class Formatter {
11
- static slug(name) {
13
+ static removeAccents(name) {
12
14
  name = name.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
13
- return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
15
+ return name;
16
+ }
17
+ static emailSenderName(name) {
18
+ return this.removeAccents(name).replace(/[^A-Za-z]+/g, " ").trim();
19
+ }
20
+ static slug(name) {
21
+ return this.removeAccents(name).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
22
+ }
23
+ static slugEmail(name) {
24
+ return this.removeAccents(name).toLowerCase().replace(/[^a-z0-9_]+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
25
+ }
26
+ static fileSlug(name) {
27
+ return this.removeAccents(name).replace(/[^A-Za-z0-9-]+/g, " ").trim();
28
+ }
29
+ static removeDuplicateSpaces(name) {
30
+ return name.replace(/\s+/, " ");
14
31
  }
15
32
  /**
16
33
  * 1 = january
17
34
  */
18
35
  static month(index) {
36
+ if (typeof index === "object") {
37
+ const datetime = luxon_1.DateTime.fromJSDate(index).setZone(this.timezone);
38
+ index = datetime.month;
39
+ }
19
40
  const monthNames = ["januari", "februari", "maart", "april", "mei", "juni",
20
41
  "juli", "augustus", "september", "oktober", "november", "december"
21
42
  ];
22
43
  return monthNames[index - 1];
23
44
  }
45
+ static weekDay(date) {
46
+ if (!date) {
47
+ // Crash protection in case undefined get passed
48
+ return "?";
49
+ }
50
+ const monthNames = ["maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag",];
51
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
52
+ return monthNames[datetime.weekday - 1];
53
+ }
54
+ /**
55
+ * 1 januari (2020). Year only in different year if withYear is null (default)
56
+ */
57
+ static date(date, withYear = null) {
58
+ if (!date) {
59
+ // Crash protection in case undefined get passed
60
+ return "?";
61
+ }
62
+ const currentYear = luxon_1.DateTime.now().setZone(this.timezone).year;
63
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
64
+ const year = datetime.year;
65
+ return datetime.day + " " + this.month(datetime.month) + (currentYear != year || withYear === true ? (" " + year) : "");
66
+ }
67
+ /**
68
+ * januari 2020
69
+ */
70
+ static dateWithoutDay(date, options) {
71
+ var _a;
72
+ if (!date) {
73
+ // Crash protection in case undefined get passed
74
+ return "?";
75
+ }
76
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone((_a = options === null || options === void 0 ? void 0 : options.timezone) !== null && _a !== void 0 ? _a : this.timezone);
77
+ const year = datetime.year;
78
+ return this.month(datetime.month) + " " + year;
79
+ }
80
+ /**
81
+ * 2020
82
+ */
83
+ static year(date) {
84
+ if (!date) {
85
+ // Crash protection in case undefined get passed
86
+ return 0;
87
+ }
88
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
89
+ return datetime.year;
90
+ }
91
+ /**
92
+ * maandag, 1 januari (2020). Year only in different year
93
+ */
94
+ static dateWithDay(date) {
95
+ if (!date) {
96
+ // Crash protection in case undefined get passed
97
+ return "?";
98
+ }
99
+ return this.weekDay(date) + ", " + this.date(date);
100
+ }
24
101
  /**
25
- * 1 januari (2020). Year only in different year
102
+ * maandag, 1 januari (2020) om XX:XX. Year only in different year
26
103
  */
27
- static date(date) {
28
- const currentYear = new Date().getFullYear();
29
- const year = date.getFullYear();
30
- return date.getDate() + " " + this.month(date.getMonth() + 1) + (currentYear != year ? (" " + year) : "");
104
+ static dateTimeWithDay(date) {
105
+ if (!date) {
106
+ // Crash protection in case undefined get passed
107
+ return "?";
108
+ }
109
+ return this.weekDay(date) + ", " + this.dateTime(date);
31
110
  }
32
111
  /**
33
112
  * 01/01/2020
34
113
  */
35
- static dateNumber(date) {
36
- const year = date.getFullYear();
37
- return (date.getDate() + "").padStart(2, "0") + "/" + ((date.getMonth() + 1) + "").padStart(2, "0") + "/" + year;
114
+ static dateNumber(date, withYear = true) {
115
+ if (!date) {
116
+ // Crash protection in case undefined get passed
117
+ return "?";
118
+ }
119
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
120
+ return (datetime.day + "").padStart(2, "0") + "/" + (datetime.month + "").padStart(2, "0") + (withYear ? "/" + datetime.year : "");
38
121
  }
39
122
  /**
40
123
  * 2020-01-31
41
124
  */
42
125
  static dateIso(date) {
43
- const year = date.getFullYear();
44
- return year + "-" + ((date.getMonth() + 1) + "").padStart(2, "0") + "-" + (date.getDate() + "").padStart(2, "0");
126
+ if (!date) {
127
+ // Crash protection in case undefined get passed
128
+ return "?";
129
+ }
130
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
131
+ const year = datetime.year;
132
+ return year + "-" + (datetime.month + "").padStart(2, "0") + "-" + (datetime.day + "").padStart(2, "0");
45
133
  }
46
134
  /**
47
135
  * 12:00
48
136
  */
49
137
  static time(date) {
50
- return date.getHours() + ":" + (date.getMinutes() + "").padStart(2, "0");
138
+ if (!date) {
139
+ // Crash protection in case undefined get passed
140
+ return "?";
141
+ }
142
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
143
+ return datetime.hour + ":" + (datetime.minute + "").padStart(2, "0");
144
+ }
145
+ static luxon(date = new Date()) {
146
+ return luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
147
+ }
148
+ /**
149
+ * 12:00
150
+ */
151
+ static timeIso(date) {
152
+ if (!date) {
153
+ // Crash protection in case undefined get passed
154
+ return "?";
155
+ }
156
+ const datetime = luxon_1.DateTime.fromJSDate(date).setZone(this.timezone);
157
+ return (datetime.hour + "").padStart(2, "0") + ":" + (datetime.minute + "").padStart(2, "0");
158
+ }
159
+ static uniqueArray(array) {
160
+ function onlyUnique(value, index, self) {
161
+ return self.indexOf(value) === index;
162
+ }
163
+ return array.filter(onlyUnique);
51
164
  }
52
165
  /**
53
166
  * 1 januari (2020) om 12:00. Year only in different year
54
167
  */
55
- static dateTime(date) {
168
+ static dateTime(date, hideZero = false) {
169
+ if (!date) {
170
+ // Crash protection in case undefined get passed
171
+ return "?";
172
+ }
173
+ if (hideZero && this.time(date) == "0:00") {
174
+ return this.date(date);
175
+ }
56
176
  return this.date(date) + " om " + this.time(date);
57
177
  }
58
- static price(value) {
178
+ static integer(value) {
179
+ const formatted = new Intl.NumberFormat("nl-BE").format(Math.abs(value));
180
+ const v = (value < 0 ? "- " : "") + formatted;
181
+ return v;
182
+ }
183
+ static percentage(value) {
184
+ const formatted = new Intl.NumberFormat("nl-BE").format(Math.abs(value / 100));
185
+ const v = (value < 0 ? "- " : "") + formatted;
186
+ return v + "%";
187
+ }
188
+ static price(value, removeZeroDecimals = true) {
59
189
  const formatted = new Intl.NumberFormat("nl-BE", {
60
190
  style: "currency",
61
191
  currency: "EUR",
62
192
  }).format(Math.abs(value) / 100);
63
- return formatted.replace(new RegExp("EUR", "ig"), '€');
193
+ const v = (value < 0 ? "- " : "") + formatted.replace(new RegExp("EUR", "ig"), '€');
194
+ if (removeZeroDecimals && (v.endsWith(",00") || v.endsWith(".00"))) {
195
+ return v.substring(0, v.length - 3);
196
+ }
197
+ return v;
198
+ }
199
+ static priceChange(value) {
200
+ if (value >= 0) {
201
+ return "+ " + this.price(value);
202
+ }
203
+ return this.price(value);
64
204
  }
65
205
  static capitalizeFirstLetter(string) {
66
206
  return string.charAt(0).toUpperCase() + string.slice(1);
67
207
  }
208
+ static capitalizeWords(string) {
209
+ return string.split(" ").map(s => this.capitalizeFirstLetter(s)).join(" ");
210
+ }
68
211
  static fileSize(bytes) {
69
212
  if (bytes < 1000) {
70
213
  return bytes + " bytes";
@@ -77,11 +220,70 @@ class Formatter {
77
220
  }
78
221
  return Math.round(bytes / 1000 / 1000 / 10) / 100 + " GB";
79
222
  }
223
+ static minutesPadded(minutes) {
224
+ const h = Math.floor(minutes / 60);
225
+ const m = minutes - h * 60;
226
+ return (h + "").padStart(2, "0") + ":" + (m + "").padStart(2, "0");
227
+ }
80
228
  static minutes(minutes) {
81
229
  const h = Math.floor(minutes / 60);
82
230
  const m = minutes - h * 60;
83
231
  return h + ":" + (m + "").padStart(2, "0");
84
232
  }
233
+ static escapeHtml(unsafe) {
234
+ return unsafe
235
+ .replace(/&/g, "&amp;")
236
+ .replace(/</g, "&lt;")
237
+ .replace(/>/g, "&gt;")
238
+ .replace(/"/g, "&quot;")
239
+ .replace(/'/g, "&#039;");
240
+ }
241
+ static joinLast(array, separator, lastSeparator) {
242
+ array = array.slice();
243
+ const last = array.pop();
244
+ if (last === undefined) {
245
+ return "";
246
+ }
247
+ if (array.length == 0) {
248
+ return last + "";
249
+ }
250
+ return array.join(separator) + lastSeparator + last;
251
+ }
252
+ static ordinalNumber(number) {
253
+ if (number == 1) {
254
+ return "eerste";
255
+ }
256
+ if (number == 2) {
257
+ return "tweede";
258
+ }
259
+ if (number == 3) {
260
+ return "derde";
261
+ }
262
+ return number + "e";
263
+ }
264
+ static pluralText(num, singular, plural) {
265
+ if (num === 1) {
266
+ return 'één ' + singular;
267
+ }
268
+ return num + ' ' + plural;
269
+ }
270
+ static groupNamesByFamily(names) {
271
+ const n = names.slice().sort((a, b) => Sorter_1.Sorter.stack(a.lastName.localeCompare(b.lastName), a.firstName.localeCompare(b.firstName)));
272
+ const firstNames = this.uniqueArray(n.map(n => n.firstName));
273
+ const lastNames = this.uniqueArray(n.map(n => n.lastName));
274
+ return this.joinLast(firstNames, ", ", " en ") + (lastNames.length > 0 ? (" " + lastNames.join('-')) : '');
275
+ }
276
+ static firstLetters(str, maxLength) {
277
+ if (!str) {
278
+ return "";
279
+ }
280
+ if (maxLength === 1) {
281
+ return str.substr(0, 1).toLocaleUpperCase();
282
+ }
283
+ const splitted = Formatter.slug(str).split('-');
284
+ return splitted.slice(0, maxLength).map(s => s.substr(0, 1).toLocaleUpperCase()).join('');
285
+ }
85
286
  }
86
287
  exports.Formatter = Formatter;
288
+ Formatter.timezone = "Europe/Brussels";
87
289
  //# 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":";;;AAAA,iCAAiC;AAEjC,qCAAkC;AAEjC,SAAS,GAAG,CAAC,MAAM;IAChB,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QACd,OAAO,GAAG,GAAG,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAa,SAAS;IAGlB,MAAM,CAAC,aAAa,CAAC,IAAY;QAC7B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,CAAC;IAGD,MAAM,CAAC,IAAI,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACpH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAkB;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QAC1B,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;YACtE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;SACrE,CAAC;QACF,OAAO,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAU;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAG,CAAA;QAErG,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAU,EAAE,WAA2B,IAAI;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,MAAM,WAAW,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;QAE/D,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,OAAO,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAU,EAAE,OAA6B;;QAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAC,IAAI,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAU;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,CAAC,CAAC;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAU;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAE,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAU;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAE,IAAI,GAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC;IAGA;;MAEE;IACH,MAAM,CAAC,UAAU,CAAC,IAAU,EAAE,QAAQ,GAAG,IAAI;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAChI,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAU;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC1B,OAAO,IAAI,GAAC,GAAG,GAAC,CAAC,QAAQ,CAAC,KAAK,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAC,GAAG,GAAC,CAAC,QAAQ,CAAC,GAAG,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAU;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,IAAI,GAAC,GAAG,GAAC,CAAC,QAAQ,CAAC,MAAM,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;QAC1B,OAAO,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAU;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAC,GAAG,GAAC,CAAC,QAAQ,CAAC,MAAM,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACxF,CAAC;IAED,MAAM,CAAC,WAAW,CAAI,KAAU;QAC5B,SAAS,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAU,EAAE,QAAQ,GAAG,KAAK;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,gDAAgD;YAChD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAa;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzE,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC;QAE5C,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAa;QAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAC,GAAG,CAAC,CAAC,CAAC;QAE7E,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC;QAE5C,OAAO,CAAC,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,kBAAkB,GAAG,IAAI;QACjD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC7C,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAEjC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAClF,IAAI,kBAAkB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;QACrC,CAAC;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa;QAC5B,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,MAAc;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAc;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAa;QACzB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YACf,OAAO,KAAK,GAAC,QAAQ,CAAA;QACzB,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,GAAC,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC,GAAG,KAAK,CAAA;QACzC,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,GAAC,EAAE,GAAG,KAAK,CAAA;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,KAAK,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAe;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAC,EAAE,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAC,EAAE,CAAA;QACxB,OAAO,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAe;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAC,EAAE,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAC,EAAE,CAAA;QACxB,OAAO,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAc;QAC5B,OAAO,MAAM;aACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAA0B,EAAE,SAA6B,EAAE,aAAiC;QACxG,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,EAAE,CAAA;QACb,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,GAAC,EAAE,CAAA;QAClB,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAC,aAAa,GAAC,IAAI,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAc;QAC/B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO,QAAQ,CAAA;QACnB,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO,QAAQ,CAAA;QACnB,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO,OAAO,CAAA;QAClB,CAAC;QAED,OAAO,MAAM,GAAC,GAAG,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,QAAgB,EAAE,MAAc;QAC3D,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,OAAO,MAAM,GAAG,QAAQ,CAAA;QAC5B,CAAC;QAED,OAAO,GAAG,GAAG,GAAG,GAAG,MAAM,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,KAA8C;QACpE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAE1D,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,GAAW,EAAE,SAAiB;QAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,EAAE,CAAA;QACb,CAAC;QACD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAA;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7F,CAAC;;AA1UL,8BA2UC;AA1UU,kBAAQ,GAAG,iBAAiB,CAAA"}
@@ -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,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleTranslateHelper = void 0;
4
+ class GoogleTranslateHelper {
5
+ static isGoogleTranslateDomain(domain) {
6
+ return domain.endsWith(".translate.goog");
7
+ }
8
+ static getDomainFromTranslateDomain(domain) {
9
+ if (this.isGoogleTranslateDomain(domain)) {
10
+ // Strip it out
11
+ let cleaned = domain.substr(0, domain.length - (".translate.goog").length);
12
+ // Replace dashes with points
13
+ cleaned = cleaned.replace(/-/g, ".");
14
+ // Replace double points with dashes
15
+ cleaned = cleaned.replace(/\.\./g, "-");
16
+ return cleaned;
17
+ }
18
+ return domain;
19
+ }
20
+ }
21
+ exports.GoogleTranslateHelper = GoogleTranslateHelper;
22
+ //# sourceMappingURL=GoogleTranslateHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleTranslateHelper.js","sourceRoot":"","sources":["../../src/GoogleTranslateHelper.ts"],"names":[],"mappings":";;;AAAA,MAAa,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;AAnBD,sDAmBC"}
@@ -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,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sleep = void 0;
4
+ function sleep(ms) {
5
+ return new Promise(resolve => setTimeout(resolve, ms));
6
+ }
7
+ exports.sleep = sleep;
8
+ //# sourceMappingURL=Sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sleep.js","sourceRoot":"","sources":["../../src/Sleep.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK,CAAC,EAAU;IAC5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAFD,sBAEC"}
@@ -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"}
@@ -14,6 +14,12 @@ class Sorter {
14
14
  static byStringProperty(a, b, field) {
15
15
  return this.byStringValue(a[field], b[field]);
16
16
  }
17
+ static byNumberProperty(a, b, field) {
18
+ return this.byNumberValue(a[field], b[field]);
19
+ }
20
+ /**
21
+ * Sort strings ASC order
22
+ */
17
23
  static byStringValue(a, b) {
18
24
  const af = a.toLowerCase();
19
25
  const bf = b.toLowerCase();
@@ -34,6 +40,12 @@ class Sorter {
34
40
  }
35
41
  return 1;
36
42
  }
43
+ static byEnumValue(a, b, enumObject) {
44
+ return Object.values(enumObject).indexOf(a) - Object.values(enumObject).indexOf(b);
45
+ }
46
+ /**
47
+ * Sort from large to small - DESC
48
+ */
37
49
  static byNumberValue(a, b) {
38
50
  if (a === b) {
39
51
  return 0;
@@ -43,6 +55,9 @@ class Sorter {
43
55
  }
44
56
  return 1;
45
57
  }
58
+ /**
59
+ * Sort from new to old - DESC
60
+ */
46
61
  static byDateValue(a, b) {
47
62
  if (a === b) {
48
63
  return 0;
@@ -57,6 +72,7 @@ class Sorter {
57
72
  */
58
73
  static stack(...sortResults) {
59
74
  while (sortResults.length > 0) {
75
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
60
76
  const f = sortResults.shift();
61
77
  if (f != 0) {
62
78
  return f;
@@ -64,6 +80,27 @@ class Sorter {
64
80
  }
65
81
  return 0;
66
82
  }
83
+ static getMostOccuringElement(array) {
84
+ const counts = new Map();
85
+ for (const element of array) {
86
+ const count = counts.get(element);
87
+ if (count) {
88
+ counts.set(element, count + 1);
89
+ }
90
+ else {
91
+ counts.set(element, 1);
92
+ }
93
+ }
94
+ let maxCount = 0;
95
+ let mostOccuringElement;
96
+ for (const [element, count] of counts) {
97
+ if (count > maxCount) {
98
+ maxCount = count;
99
+ mostOccuringElement = element;
100
+ }
101
+ }
102
+ return mostOccuringElement;
103
+ }
67
104
  }
68
105
  exports.Sorter = Sorter;
69
106
  //# sourceMappingURL=Sorter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sorter.js","sourceRoot":"","sources":["../../src/Sorter.ts"],"names":[],"mappings":";;;AACA,MAAa,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;AAtED,wBAsEC"}
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,7 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringCompare = void 0;
4
+ const Formatter_1 = require("./Formatter");
4
5
  class StringCompare {
6
+ /**
7
+ * Return the search score = percentage (floating point) that matches.
8
+ * Returns zero if no match is found or if minimum percentage is not met
9
+ */
10
+ static contains(haystack, needle) {
11
+ haystack = haystack.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
12
+ needle = needle.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
13
+ return haystack.includes(needle);
14
+ }
15
+ /**
16
+ * Return the search score = percentage (floating point) that matches.
17
+ * Returns zero if no match is found or if minimum percentage is not met
18
+ */
19
+ static searchScore(haystack, needle, minimumPercentage = 10, minimumChars = 2) {
20
+ if (haystack.length == 0) {
21
+ return 0;
22
+ }
23
+ haystack = haystack.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
24
+ needle = needle.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
25
+ const overlap = this.compare(needle, haystack);
26
+ if ((minimumChars == null || overlap > minimumChars) && (minimumPercentage === null || overlap >= haystack.length * minimumPercentage / 100)) {
27
+ return overlap;
28
+ }
29
+ return 0;
30
+ }
5
31
  /**
6
32
  * Return the amount of characters that are equal (allowing to detect typo's)
7
33
  */
@@ -12,7 +38,7 @@ class StringCompare {
12
38
  const firstLeft = left[0];
13
39
  const firstRight = right[0];
14
40
  if (firstLeft == firstRight) {
15
- return 1 + this.compare(left.substr(1), right.substr(1));
41
+ return 1 + this.compare(left.substr(1), right.substr(1), true);
16
42
  }
17
43
  if (allowSplit) {
18
44
  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));
@@ -20,12 +46,28 @@ class StringCompare {
20
46
  // no split allowed -> continue to remove right side
21
47
  return this.compare(left, right.substr(1), false);
22
48
  }
49
+ static matchCount(original, compareWith) {
50
+ // remove special chars + lowercase
51
+ original = original.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
52
+ compareWith = compareWith.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
53
+ return this.compare(original, compareWith);
54
+ }
23
55
  static typoCount(original, compareWith) {
24
56
  // remove special chars + lowercase
25
57
  original = original.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
26
58
  compareWith = compareWith.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/, " ").trim();
27
59
  return Math.max(original.length, compareWith.length) - this.compare(original, compareWith);
28
60
  }
61
+ /**
62
+ * Return true if the user typed in full caps (sigh)
63
+ */
64
+ static isFullCaps(str) {
65
+ const fn = Formatter_1.Formatter.removeAccents(str);
66
+ if (fn.toUpperCase() == fn) {
67
+ return true;
68
+ }
69
+ return false;
70
+ }
29
71
  }
30
72
  exports.StringCompare = StringCompare;
31
73
  //# sourceMappingURL=StringCompare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringCompare.js","sourceRoot":"","sources":["../../src/StringCompare.ts"],"names":[],"mappings":";;;AAAA,MAAa,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;AApCD,sCAoCC"}
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"}