@stamhoofd/utility 1.1.15 → 2.1.1

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
package/dist/index.js CHANGED
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./src/Colors"), exports);
5
+ tslib_1.__exportStar(require("./src/DataValidator"), exports);
4
6
  tslib_1.__exportStar(require("./src/Formatter"), exports);
5
- tslib_1.__exportStar(require("./src/StringCompare"), exports);
7
+ tslib_1.__exportStar(require("./src/GoogleTranslateHelper"), exports);
8
+ tslib_1.__exportStar(require("./src/Sleep"), exports);
6
9
  tslib_1.__exportStar(require("./src/Sorter"), exports);
10
+ tslib_1.__exportStar(require("./src/StringCompare"), exports);
11
+ tslib_1.__exportStar(require("./src/Throttle"), exports);
7
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,0DAA+B;AAC/B,8DAAmC;AACnC,uDAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,8DAAmC;AACnC,0DAA+B;AAC/B,sEAA2C;AAC3C,sDAA2B;AAC3B,uDAA4B;AAC5B,8DAAmC;AACnC,yDAA8B"}
@@ -0,0 +1,39 @@
1
+ type RGB = {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ };
6
+ type HSL = {
7
+ h: number;
8
+ s: number;
9
+ l: number;
10
+ };
11
+ type anyColor = string | RGB | HSL;
12
+ export declare class Colors {
13
+ static hexToHSL(hex: string): HSL;
14
+ /**
15
+ *
16
+ * @param h degree
17
+ * @param s percentage
18
+ * @param l percentage
19
+ */
20
+ static HSLToRGB(h: number, s: number, l: number): {
21
+ r: number;
22
+ g: number;
23
+ b: number;
24
+ };
25
+ static hslToHex(color: HSL): string;
26
+ static hexToRGB(hex: string): RGB;
27
+ static getContrastRatio(foreground: RGB, background: RGB): number;
28
+ static getRelativeLuminance(c: RGB): number;
29
+ static anyColorToRGB(color: anyColor): RGB;
30
+ static getContrastColor(color: anyColor): string;
31
+ static linearize(val: any): number;
32
+ static clampLuminance(luminance: any): any;
33
+ static getLuminance(color: RGB): any;
34
+ static getContrast(background: RGB, foreground: RGB): number;
35
+ static scaleContrast(contrast: number): number;
36
+ static getAPCAContrast(background: RGB, foreground: RGB): number;
37
+ }
38
+ export {};
39
+ //# sourceMappingURL=Colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../src/Colors.ts"],"names":[],"mappings":"AACA,KAAK,GAAG,GAAG;IACP,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAA;AAED,KAAK,GAAG,GAAG;IAEP,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;CACb,CAAA;AAED,KAAK,QAAQ,GAAG,MAAM,GAAC,GAAG,GAAC,GAAG,CAAC;AAE/B,qBAAa,MAAM;IACf,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAsCjC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;;IAmC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IAYnC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAoBjC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IAQxD,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG;IA0BlC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG;IAY1C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAyBhD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAA;IAIpB,MAAM,CAAC,cAAc,CAAE,SAAS,KAAA;IAWhC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG;IAQ9B,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IAsBnD,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM;IA2BrC,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;CAK1D"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Colors = void 0;
4
+ class Colors {
5
+ static hexToHSL(hex) {
6
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
7
+ if (!result) {
8
+ if (STAMHOOFD.environment === "development") {
9
+ console.error(`Invalid hex color: ${hex}`);
10
+ }
11
+ return {
12
+ h: 0,
13
+ s: 0,
14
+ l: 0
15
+ };
16
+ }
17
+ let r = parseInt(result[1], 16);
18
+ let g = parseInt(result[2], 16);
19
+ let b = parseInt(result[3], 16);
20
+ r /= 255, g /= 255, b /= 255;
21
+ const max = Math.max(r, g, b), min = Math.min(r, g, b);
22
+ let h, s, l = (max + min) / 2;
23
+ if (max == min) {
24
+ h = s = 0; // achromatic
25
+ }
26
+ else {
27
+ const d = max - min;
28
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
29
+ switch (max) {
30
+ case r:
31
+ h = (g - b) / d + (g < b ? 6 : 0);
32
+ break;
33
+ case g:
34
+ h = (b - r) / d + 2;
35
+ break;
36
+ case b:
37
+ h = (r - g) / d + 4;
38
+ break;
39
+ }
40
+ h /= 6;
41
+ }
42
+ return {
43
+ h: h * 360,
44
+ s: s * 100,
45
+ l: l * 100
46
+ };
47
+ }
48
+ /**
49
+ *
50
+ * @param h degree
51
+ * @param s percentage
52
+ * @param l percentage
53
+ */
54
+ static HSLToRGB(h, s, l) {
55
+ // Must be fractions of 1
56
+ s /= 100;
57
+ l /= 100;
58
+ const c = (1 - Math.abs(2 * l - 1)) * s, x = c * (1 - Math.abs((h / 60) % 2 - 1)), m = l - c / 2;
59
+ let r = 0, g = 0, b = 0;
60
+ if (0 <= h && h < 60) {
61
+ r = c;
62
+ g = x;
63
+ b = 0;
64
+ }
65
+ else if (60 <= h && h < 120) {
66
+ r = x;
67
+ g = c;
68
+ b = 0;
69
+ }
70
+ else if (120 <= h && h < 180) {
71
+ r = 0;
72
+ g = c;
73
+ b = x;
74
+ }
75
+ else if (180 <= h && h < 240) {
76
+ r = 0;
77
+ g = x;
78
+ b = c;
79
+ }
80
+ else if (240 <= h && h < 300) {
81
+ r = x;
82
+ g = 0;
83
+ b = c;
84
+ }
85
+ else if (300 <= h && h < 360) {
86
+ r = c;
87
+ g = 0;
88
+ b = x;
89
+ }
90
+ r = Math.round((r + m) * 255);
91
+ g = Math.round((g + m) * 255);
92
+ b = Math.round((b + m) * 255);
93
+ return {
94
+ r, g, b
95
+ };
96
+ }
97
+ static hslToHex(color) {
98
+ let { h, s, l } = color;
99
+ l /= 100;
100
+ const a = s * Math.min(l, 1 - l) / 100;
101
+ const f = n => {
102
+ const k = (n + h / 30) % 12;
103
+ const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
104
+ return Math.round(255 * color).toString(16).padStart(2, '0'); // convert to Hex and prefix "0" if needed
105
+ };
106
+ return `#${f(0)}${f(8)}${f(4)}`;
107
+ }
108
+ static hexToRGB(hex) {
109
+ if (hex.startsWith("#")) {
110
+ hex = hex.substring(1);
111
+ }
112
+ if (hex.length != 6) {
113
+ throw "Only six-digit hex colors are allowed.";
114
+ }
115
+ const aRgbHex = hex.match(/.{1,2}/g);
116
+ if (!aRgbHex || aRgbHex.length !== 3) {
117
+ throw "Invalid hex color";
118
+ }
119
+ return {
120
+ r: parseInt(aRgbHex[0], 16),
121
+ g: parseInt(aRgbHex[1], 16),
122
+ b: parseInt(aRgbHex[2], 16)
123
+ };
124
+ }
125
+ static getContrastRatio(foreground, background) {
126
+ const L1 = this.getRelativeLuminance(background);
127
+ const L2 = this.getRelativeLuminance(foreground);
128
+ // https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
129
+ return (Math.max(L1, L2) + 0.05) / (Math.min(L1, L2) + 0.05);
130
+ }
131
+ static getRelativeLuminance(c) {
132
+ const color = {
133
+ r: c.r / 255,
134
+ g: c.g / 255,
135
+ b: c.b / 255
136
+ };
137
+ // https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
138
+ const R = color.r <= 0.03928
139
+ ? color.r / 12.92
140
+ : Math.pow((color.r + 0.055) / 1.055, 2.4);
141
+ const G = color.g <= 0.03928
142
+ ? color.g / 12.92
143
+ : Math.pow((color.g + 0.055) / 1.055, 2.4);
144
+ const B = color.b <= 0.03928
145
+ ? color.b / 12.92
146
+ : Math.pow((color.b + 0.055) / 1.055, 2.4);
147
+ const L = 0.2126 * R + 0.7152 * G + 0.0722 * B;
148
+ return L;
149
+ }
150
+ static anyColorToRGB(color) {
151
+ if (typeof color === "string") {
152
+ return this.hexToRGB(color);
153
+ }
154
+ if ("r" in color) {
155
+ return color;
156
+ }
157
+ return this.HSLToRGB(color.h, color.s, color.l);
158
+ }
159
+ static getContrastColor(color) {
160
+ try {
161
+ const rgb = this.anyColorToRGB(color);
162
+ const blackContrast = this.getAPCAContrast(rgb, { r: 0, g: 0, b: 0 });
163
+ const whiteContrast = this.getAPCAContrast(rgb, { r: 255, g: 255, b: 255 });
164
+ return blackContrast > whiteContrast ? "#000" : "#fff";
165
+ }
166
+ catch (e) {
167
+ console.error(e);
168
+ return "#fff";
169
+ }
170
+ }
171
+ // https://github.com/Myndex/SAPC-APCA#the-plain-english-steps-are
172
+ // Example:
173
+ // const contrast = getAPCAContrast("rgb(255, 255, 255)", "rgb(136, 136, 136)");
174
+ // This returns `66.89346308821438` (66.893%)
175
+ // SAPC-APCA README says:
176
+ // > #888 vs #fff • 66.89346308821438
177
+ // 80% means 7:1 in WCAG 2.0
178
+ // 60% means 4.5:1 in WCAG 2.0
179
+ // Web UI: https://hail2u.net/pub/test/702.html
180
+ static linearize(val) {
181
+ return (val / 255.0) ** 2.4;
182
+ }
183
+ static clampLuminance(luminance) {
184
+ const blkThrs = 0.022;
185
+ const blkClmp = 1.414;
186
+ if (luminance > blkThrs) {
187
+ return luminance;
188
+ }
189
+ return Math.abs(blkThrs - luminance) ** blkClmp + luminance;
190
+ }
191
+ static getLuminance(color) {
192
+ const y = 0.2126729 * this.linearize(color.r) +
193
+ 0.7151522 * this.linearize(color.g) +
194
+ 0.072175 * this.linearize(color.b);
195
+ return this.clampLuminance(y);
196
+ }
197
+ static getContrast(background, foreground) {
198
+ const deltaYmin = 0.0005;
199
+ const scale = 1.14;
200
+ const backgroundLuminance = this.getLuminance(background);
201
+ const foregroundLuminance = this.getLuminance(foreground);
202
+ if (Math.abs(backgroundLuminance - foregroundLuminance) < deltaYmin) {
203
+ return 0.0;
204
+ }
205
+ if (backgroundLuminance > foregroundLuminance) {
206
+ return (backgroundLuminance ** 0.56 - foregroundLuminance ** 0.57) * scale;
207
+ }
208
+ if (backgroundLuminance < foregroundLuminance) {
209
+ return (backgroundLuminance ** 0.65 - foregroundLuminance ** 0.62) * scale;
210
+ }
211
+ return 0.0;
212
+ }
213
+ static scaleContrast(contrast) {
214
+ const loClip = 0.001;
215
+ const loConThresh = 0.035991;
216
+ const loConFactor = 27.7847239587675;
217
+ const loConOffset = 0.027;
218
+ const absContrast = Math.abs(contrast);
219
+ if (absContrast < loClip) {
220
+ return 0.0;
221
+ }
222
+ if (absContrast <= loConThresh) {
223
+ return contrast - contrast * loConFactor * loConOffset;
224
+ }
225
+ if (contrast > loConThresh) {
226
+ return contrast - loConOffset;
227
+ }
228
+ if (contrast < -loConThresh) {
229
+ return contrast + loConOffset;
230
+ }
231
+ return 0.0;
232
+ }
233
+ static getAPCAContrast(background, foreground) {
234
+ const contrast = this.getContrast(background, foreground);
235
+ const scaledContrast = this.scaleContrast(contrast);
236
+ return Math.abs(scaledContrast * 100);
237
+ }
238
+ }
239
+ exports.Colors = Colors;
240
+ //# sourceMappingURL=Colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Colors.js","sourceRoot":"","sources":["../../src/Colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class DataValidator {
2
+ static isEmailValid(str: string): boolean;
3
+ }
4
+ //# sourceMappingURL=DataValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataValidator.d.ts","sourceRoot":"","sources":["../../src/DataValidator.ts"],"names":[],"mappings":"AACA,qBAAa,aAAa;IACtB,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM;CAgBlC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataValidator = void 0;
4
+ class DataValidator {
5
+ static isEmailValid(str) {
6
+ const blockList = ["gmail.be", "gmail.nl", "hotmail.c", "hotmail.co", "gmail.co", "gmail.c", "gmail.co", "gmal.com", "glail.com", "gmail.col", "gamil.com", "gmail.con", "icloud.be"];
7
+ const regex = /^[a-zA-Z0-9.!#$%&*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/;
8
+ if (!regex.test(str)) {
9
+ return false;
10
+ }
11
+ for (const l of blockList) {
12
+ if (str.endsWith("@" + l)) {
13
+ return false;
14
+ }
15
+ }
16
+ return true;
17
+ }
18
+ }
19
+ exports.DataValidator = DataValidator;
20
+ //# sourceMappingURL=DataValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataValidator.js","sourceRoot":"","sources":["../../src/DataValidator.ts"],"names":[],"mappings":";;;AACA,MAAa,aAAa;IACtB,MAAM,CAAC,YAAY,CAAC,GAAW;QAC3B,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QACrL,MAAM,KAAK,GAAG,qIAAqI,CAAC;QAEpJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAjBD,sCAiBC"}
@@ -1,17 +1,43 @@
1
+ import { DateTime } from "luxon";
1
2
  export declare class Formatter {
3
+ static timezone: string;
4
+ static removeAccents(name: string): string;
5
+ static emailSenderName(name: string): string;
2
6
  static slug(name: string): string;
7
+ static slugEmail(name: string): string;
8
+ static fileSlug(name: string): string;
9
+ static removeDuplicateSpaces(name: string): string;
3
10
  /**
4
11
  * 1 = january
5
12
  */
6
- static month(index: number): string;
13
+ static month(index: number | Date): string;
14
+ static weekDay(date: Date): string;
7
15
  /**
8
- * 1 januari (2020). Year only in different year
16
+ * 1 januari (2020). Year only in different year if withYear is null (default)
9
17
  */
10
- static date(date: Date): string;
18
+ static date(date: Date, withYear?: boolean | null): string;
19
+ /**
20
+ * januari 2020
21
+ */
22
+ static dateWithoutDay(date: Date, options?: {
23
+ timezone?: string;
24
+ }): string;
25
+ /**
26
+ * 2020
27
+ */
28
+ static year(date: Date): number;
29
+ /**
30
+ * maandag, 1 januari (2020). Year only in different year
31
+ */
32
+ static dateWithDay(date: Date): string;
33
+ /**
34
+ * maandag, 1 januari (2020) om XX:XX. Year only in different year
35
+ */
36
+ static dateTimeWithDay(date: Date): string;
11
37
  /**
12
38
  * 01/01/2020
13
39
  */
14
- static dateNumber(date: Date): string;
40
+ static dateNumber(date: Date, withYear?: boolean): string;
15
41
  /**
16
42
  * 2020-01-31
17
43
  */
@@ -20,13 +46,33 @@ export declare class Formatter {
20
46
  * 12:00
21
47
  */
22
48
  static time(date: Date): string;
49
+ static luxon(date?: Date): DateTime;
50
+ /**
51
+ * 12:00
52
+ */
53
+ static timeIso(date: Date): string;
54
+ static uniqueArray<T>(array: T[]): T[];
23
55
  /**
24
56
  * 1 januari (2020) om 12:00. Year only in different year
25
57
  */
26
- static dateTime(date: Date): string;
27
- static price(value: number): string;
58
+ static dateTime(date: Date, hideZero?: boolean): string;
59
+ static integer(value: number): string;
60
+ static percentage(value: number): string;
61
+ static price(value: number, removeZeroDecimals?: boolean): string;
62
+ static priceChange(value: number): string;
28
63
  static capitalizeFirstLetter(string: string): string;
64
+ static capitalizeWords(string: string): string;
29
65
  static fileSize(bytes: number): string;
66
+ static minutesPadded(minutes: number): string;
30
67
  static minutes(minutes: number): string;
68
+ static escapeHtml(unsafe: string): string;
69
+ static joinLast(array: (string | number)[], separator: string | undefined, lastSeparator: string | undefined): string;
70
+ static ordinalNumber(number: number): string;
71
+ static pluralText(num: number, singular: string, plural: string): string;
72
+ static groupNamesByFamily(names: {
73
+ firstName: string;
74
+ lastName: string;
75
+ }[]): string;
76
+ static firstLetters(str: string, maxLength: number): string;
31
77
  }
32
78
  //# sourceMappingURL=Formatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../../src/Formatter.ts"],"names":[],"mappings":"AAOA,qBAAa,SAAS;IAClB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKjC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAM9B;;MAEE;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAKrC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAKlC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI/B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IASnC,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM;IAI3C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAgB7B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAK1C"}
1
+ {"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../../src/Formatter.ts"],"names":[],"mappings":"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"}