@libs-ui/services-format-date 0.2.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # services-format-date
2
+
3
+ This library was generated with [Nx](https://nx.dev).
@@ -0,0 +1,96 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { UtilsCache, formatDate } from '@libs-ui/utils';
3
+ import * as dayjs from 'dayjs';
4
+ import * as en from 'dayjs/locale/en';
5
+ import * as vi from 'dayjs/locale/vi';
6
+ import * as updateLocale from 'dayjs/plugin/updateLocale';
7
+ import * as i0 from "@angular/core";
8
+ dayjs.extend(updateLocale);
9
+ export class FormatDateService {
10
+ functionFormatDate;
11
+ updateFunctionFormatDate(functionCustom) {
12
+ this.functionFormatDate = functionCustom;
13
+ }
14
+ transform(time, format = 'YYYY/MM/DD HH:mm', lang) {
15
+ if (!time) {
16
+ return '';
17
+ }
18
+ lang = lang || UtilsCache.getLang();
19
+ if (this.functionFormatDate) {
20
+ return this.functionFormatDate(time, format, lang);
21
+ }
22
+ if (formatDate()) {
23
+ return formatDate()?.(time, format, lang) || '';
24
+ }
25
+ time = typeof time === 'number' ? dayjs.unix(time).locale(lang) : dayjs(time).locale(lang);
26
+ this.updateLocale(lang);
27
+ if (typeof time === 'number') {
28
+ return dayjs.unix(time).format(this.getFormatData(this.getTypeByFormat(format), lang));
29
+ }
30
+ return dayjs(time).format(this.getFormatData(this.getTypeByFormat(format), lang));
31
+ }
32
+ updateLocale(lang) {
33
+ if (lang === 'vi') {
34
+ dayjs.locale(vi);
35
+ dayjs.updateLocale('vi', {
36
+ monthsShort: 'Thg 1_Thg 2_Thg 3_Thg 4_Thg 5_Thg 6_Thg 7_Thg 8_Thg 9_Thg 10_Thg 11_Thg 12'.split('_')
37
+ });
38
+ return;
39
+ }
40
+ dayjs.locale(en);
41
+ }
42
+ getTypeByFormat(format) {
43
+ if (format === 'dm' || format === 'dmy' || format === 'dmy hm' || format === 'my') {
44
+ return format;
45
+ }
46
+ if (format === 'DD/MM/YYYY' || format === 'YYYY-MM-DD' || format === 'dd/MM/yyyy' || format === 'dd-MM-yyyy' || format === 'dd/mm/yyyy') {
47
+ return 'dmy';
48
+ }
49
+ if (format === 'MM-DD' || format === 'dd/MM' || format === 'dd/mm') {
50
+ return 'dm';
51
+ }
52
+ if (format === 'M/YYYY' || format === 'YYYY-MM' || format === 'MM/yyyy') {
53
+ return 'my';
54
+ }
55
+ if (format === 'YYYY/MM/DD hh:mm:ss' || format === 'dmy hms' || format === 'dd/mm/yyyy hh:mm:ss') {
56
+ return 'dmy hms';
57
+ }
58
+ return 'dmy hm';
59
+ }
60
+ getFormatData(type, lang) {
61
+ switch (type) {
62
+ case 'dm':
63
+ if (lang === 'vi') {
64
+ return 'D MMM';
65
+ }
66
+ return 'MMM D';
67
+ case 'dmy':
68
+ if (lang === 'vi') {
69
+ return 'D MMM, YYYY';
70
+ }
71
+ return 'MMM D, YYYY';
72
+ case 'dmy hm':
73
+ if (lang === 'vi') {
74
+ return 'D MMM, YYYY HH:mm';
75
+ }
76
+ return 'MMM D, YYYY HH:mm';
77
+ case 'my':
78
+ if (lang === 'vi') {
79
+ return 'MMM, YYYY';
80
+ }
81
+ return 'MMM YYYY ';
82
+ case 'dmy hms':
83
+ if (lang === 'vi') {
84
+ return 'D MMM, YYYY HH:mm:ss';
85
+ }
86
+ return 'MMM D, YYYY HH:mm:ss';
87
+ }
88
+ }
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatDateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
90
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatDateService, providedIn: 'root' });
91
+ }
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatDateService, decorators: [{
93
+ type: Injectable,
94
+ args: [{ providedIn: 'root' }]
95
+ }] });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvZm9ybWF0LWRhdGUvc3JjL2Zvcm1hdC1kYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssWUFBWSxNQUFNLDJCQUEyQixDQUFDOztBQUMxRCxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRzNCLE1BQU0sT0FBTyxpQkFBaUI7SUFFcEIsa0JBQWtCLENBQWtIO0lBRXJJLHdCQUF3QixDQUFDLGNBQWlIO1FBQy9JLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxjQUFjLENBQUM7SUFDM0MsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFzRCxFQUFFLE1BQU0sR0FBRyxrQkFBa0IsRUFBRSxJQUFhO1FBQ2pILElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksR0FBRyxJQUFJLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sVUFBVSxFQUFF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LElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNsQixPQUFPLG1CQUFtQixDQUFDO2dCQUM3QixDQUFDO2dCQUVELE9BQU8sbUJBQW1CLENBQUM7WUFFN0IsS0FBSyxJQUFJO2dCQUNQLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNsQixPQUFPLFdBQVcsQ0FBQztnQkFDckIsQ0FBQztnQkFFRCxPQUFPLFdBQVcsQ0FBQztZQUVyQixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ2xCLE9BQU8sc0JBQXNCLENBQUM7Z0JBQ2hDLENBQUM7Z0JBRUQsT0FBTyxzQkFBc0IsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQzt3R0FyR1UsaUJBQWlCOzRHQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFV0aWxzQ2FjaGUsIGZvcm1hdERhdGUgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgKiBhcyBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgKiBhcyBlbiBmcm9tICdkYXlqcy9sb2NhbGUvZW4nO1xuaW1wb3J0ICogYXMgdmkgZnJvbSAnZGF5anMvbG9jYWxlL3ZpJztcbmltcG9ydCAqIGFzIHVwZGF0ZUxvY2FsZSBmcm9tICdkYXlqcy9wbHVnaW4vdXBkYXRlTG9jYWxlJztcbmRheWpzLmV4dGVuZCh1cGRhdGVMb2NhbGUpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZvcm1hdERhdGVTZXJ2aWNlIHtcblxuICBwcml2YXRlIGZ1bmN0aW9uRm9ybWF0RGF0ZTogKCh0aW1lOiBzdHJpbmcgfCBudW1iZXIgfCBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZCB8IG51bGwsIGZvcm1hdDogc3RyaW5nLCBsYW5nPzogc3RyaW5nKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB1cGRhdGVGdW5jdGlvbkZvcm1hdERhdGUoZnVuY3Rpb25DdXN0b206ICh0aW1lOiBzdHJpbmcgfCBudW1iZXIgfCBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZCB8IG51bGwsIGZvcm1hdDogc3RyaW5nLCBsYW5nPzogc3RyaW5nKSA9PiBzdHJpbmcpIHtcbiAgICB0aGlzLmZ1bmN0aW9uRm9ybWF0RGF0ZSA9IGZ1bmN0aW9uQ3VzdG9tO1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybSh0aW1lOiBzdHJpbmcgfCBudW1iZXIgfCBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZCB8IG51bGwsIGZvcm1hdCA9ICdZWVlZL01NL0REIEhIOm1tJywgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGxhbmcgPSBsYW5nIHx8IFV0aWxzQ2FjaGUuZ2V0TGFuZygpO1xuICAgIGlmICh0aGlzLmZ1bmN0aW9uRm9ybWF0RGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25Gb3JtYXREYXRlKHRpbWUsIGZvcm1hdCwgbGFuZyk7XG4gICAgfVxuICAgIGlmIChmb3JtYXREYXRlKCkpIHtcbiAgICAgIHJldHVybiBmb3JtYXREYXRlKCk/Lih0aW1lLCBmb3JtYXQsIGxhbmcpIHx8ICcnO1xuICAgIH1cbiAgICB0aW1lID0gdHlwZW9mIHRpbWUgPT09ICdudW1iZXInID8gZGF5anMudW5peCh0aW1lKS5sb2NhbGUobGFuZykgOiBkYXlqcyh0aW1lKS5sb2NhbGUobGFuZyk7XG4gICAgdGhpcy51cGRhdGVMb2NhbGUobGFuZyk7XG4gICAgaWYgKHR5cGVvZiB0aW1lID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGRheWpzLnVuaXgodGltZSkuZm9ybWF0KHRoaXMuZ2V0Rm9ybWF0RGF0YSh0aGlzLmdldFR5cGVCeUZvcm1hdChmb3JtYXQpLCBsYW5nKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRheWpzKHRpbWUpLmZvcm1hdCh0aGlzLmdldEZvcm1hdERhdGEodGhpcy5nZXRUeXBlQnlGb3JtYXQoZm9ybWF0KSwgbGFuZykpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMb2NhbGUobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgIGRheWpzLmxvY2FsZSh2aSk7XG4gICAgICBkYXlqcy51cGRhdGVMb2NhbGUoJ3ZpJywge1xuICAgICAgICBtb250aHNTaG9ydDogJ1RoZyAxX1RoZyAyX1RoZyAzX1RoZyA0X1RoZyA1X1RoZyA2X1RoZyA3X1RoZyA4X1RoZyA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdCgnXycpXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkYXlqcy5sb2NhbGUoZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlQnlGb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiAnZG0nIHwgJ2RteScgfCAnZG15IGhtJyB8ICdteScgfCAnZG15IGhtcycge1xuICAgIGlmIChmb3JtYXQgPT09ICdkbScgfHwgZm9ybWF0ID09PSAnZG15JyB8fCBmb3JtYXQgPT09ICdkbXkgaG0nIHx8IGZvcm1hdCA9PT0gJ215Jykge1xuICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0ID09PSAnREQvTU0vWVlZWScgfHwgZm9ybWF0ID09PSAnWVlZWS1NTS1ERCcgfHwgZm9ybWF0ID09PSAnZGQvTU0veXl5eScgfHwgZm9ybWF0ID09PSAnZGQtTU0teXl5eScgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eScpIHtcbiAgICAgIHJldHVybiAnZG15JztcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0ID09PSAnTU0tREQnIHx8IGZvcm1hdCA9PT0gJ2RkL01NJyB8fCBmb3JtYXQgPT09ICdkZC9tbScpIHtcbiAgICAgIHJldHVybiAnZG0nO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09ICdNL1lZWVknIHx8IGZvcm1hdCA9PT0gJ1lZWVktTU0nIHx8IGZvcm1hdCA9PT0gJ01NL3l5eXknKSB7XG4gICAgICByZXR1cm4gJ215JztcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0ID09PSAnWVlZWS9NTS9ERCBoaDptbTpzcycgfHwgZm9ybWF0ID09PSAnZG15IGhtcycgfHwgZm9ybWF0ID09PSAnZGQvbW0veXl5eSBoaDptbTpzcycpIHtcbiAgICAgIHJldHVybiAnZG15IGhtcyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdkbXkgaG0nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb3JtYXREYXRhKHR5cGU6ICdkbScgfCAnZG15JyB8ICdkbXkgaG0nIHwgJ215JyB8ICdkbXkgaG1zJywgbGFuZzogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdkbSc6XG4gICAgICAgIGlmIChsYW5nID09PSAndmknKSB7XG4gICAgICAgICAgcmV0dXJuICdEIE1NTSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ01NTSBEJztcblxuICAgICAgY2FzZSAnZG15JzpcbiAgICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgICByZXR1cm4gJ0QgTU1NLCBZWVlZJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnTU1NIEQsIFlZWVknO1xuXG4gICAgICBjYXNlICdkbXkgaG0nOlxuICAgICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVkgSEg6bW0nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSBISDptbSc7XG5cbiAgICAgIGNhc2UgJ215JzpcbiAgICAgICAgaWYgKGxhbmcgPT09ICd2aScpIHtcbiAgICAgICAgICByZXR1cm4gJ01NTSwgWVlZWSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ01NTSBZWVlZICc7XG5cbiAgICAgIGNhc2UgJ2RteSBobXMnOlxuICAgICAgICBpZiAobGFuZyA9PT0gJ3ZpJykge1xuICAgICAgICAgIHJldHVybiAnRCBNTU0sIFlZWVkgSEg6bW06c3MnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICdNTU0gRCwgWVlZWSBISDptbTpzcyc7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './format-date.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL2Zvcm1hdC1kYXRlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtYXQtZGF0ZS5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1zZXJ2aWNlcy1mb3JtYXQtZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvZm9ybWF0LWRhdGUvc3JjL2xpYnMtdWktc2VydmljZXMtZm9ybWF0LWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,103 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { UtilsCache, formatDate } from '@libs-ui/utils';
4
+ import * as dayjs from 'dayjs';
5
+ import * as en from 'dayjs/locale/en';
6
+ import * as vi from 'dayjs/locale/vi';
7
+ import * as updateLocale from 'dayjs/plugin/updateLocale';
8
+
9
+ dayjs.extend(updateLocale);
10
+ class FormatDateService {
11
+ functionFormatDate;
12
+ updateFunctionFormatDate(functionCustom) {
13
+ this.functionFormatDate = functionCustom;
14
+ }
15
+ transform(time, format = 'YYYY/MM/DD HH:mm', lang) {
16
+ if (!time) {
17
+ return '';
18
+ }
19
+ lang = lang || UtilsCache.getLang();
20
+ if (this.functionFormatDate) {
21
+ return this.functionFormatDate(time, format, lang);
22
+ }
23
+ if (formatDate()) {
24
+ return formatDate()?.(time, format, lang) || '';
25
+ }
26
+ time = typeof time === 'number' ? dayjs.unix(time).locale(lang) : dayjs(time).locale(lang);
27
+ this.updateLocale(lang);
28
+ if (typeof time === 'number') {
29
+ return dayjs.unix(time).format(this.getFormatData(this.getTypeByFormat(format), lang));
30
+ }
31
+ return dayjs(time).format(this.getFormatData(this.getTypeByFormat(format), lang));
32
+ }
33
+ updateLocale(lang) {
34
+ if (lang === 'vi') {
35
+ dayjs.locale(vi);
36
+ dayjs.updateLocale('vi', {
37
+ monthsShort: 'Thg 1_Thg 2_Thg 3_Thg 4_Thg 5_Thg 6_Thg 7_Thg 8_Thg 9_Thg 10_Thg 11_Thg 12'.split('_')
38
+ });
39
+ return;
40
+ }
41
+ dayjs.locale(en);
42
+ }
43
+ getTypeByFormat(format) {
44
+ if (format === 'dm' || format === 'dmy' || format === 'dmy hm' || format === 'my') {
45
+ return format;
46
+ }
47
+ if (format === 'DD/MM/YYYY' || format === 'YYYY-MM-DD' || format === 'dd/MM/yyyy' || format === 'dd-MM-yyyy' || format === 'dd/mm/yyyy') {
48
+ return 'dmy';
49
+ }
50
+ if (format === 'MM-DD' || format === 'dd/MM' || format === 'dd/mm') {
51
+ return 'dm';
52
+ }
53
+ if (format === 'M/YYYY' || format === 'YYYY-MM' || format === 'MM/yyyy') {
54
+ return 'my';
55
+ }
56
+ if (format === 'YYYY/MM/DD hh:mm:ss' || format === 'dmy hms' || format === 'dd/mm/yyyy hh:mm:ss') {
57
+ return 'dmy hms';
58
+ }
59
+ return 'dmy hm';
60
+ }
61
+ getFormatData(type, lang) {
62
+ switch (type) {
63
+ case 'dm':
64
+ if (lang === 'vi') {
65
+ return 'D MMM';
66
+ }
67
+ return 'MMM D';
68
+ case 'dmy':
69
+ if (lang === 'vi') {
70
+ return 'D MMM, YYYY';
71
+ }
72
+ return 'MMM D, YYYY';
73
+ case 'dmy hm':
74
+ if (lang === 'vi') {
75
+ return 'D MMM, YYYY HH:mm';
76
+ }
77
+ return 'MMM D, YYYY HH:mm';
78
+ case 'my':
79
+ if (lang === 'vi') {
80
+ return 'MMM, YYYY';
81
+ }
82
+ return 'MMM YYYY ';
83
+ case 'dmy hms':
84
+ if (lang === 'vi') {
85
+ return 'D MMM, YYYY HH:mm:ss';
86
+ }
87
+ return 'MMM D, YYYY HH:mm:ss';
88
+ }
89
+ }
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatDateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
91
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatDateService, providedIn: 'root' });
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormatDateService, decorators: [{
94
+ type: Injectable,
95
+ args: [{ providedIn: 'root' }]
96
+ }] });
97
+
98
+ /**
99
+ * Generated bundle index. Do not edit.
100
+ */
101
+
102
+ export { FormatDateService };
103
+ //# sourceMappingURL=libs-ui-services-format-date.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libs-ui-services-format-date.mjs","sources":["../../../../../libs-ui/services/format-date/src/format-date.service.ts","../../../../../libs-ui/services/format-date/src/libs-ui-services-format-date.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { UtilsCache, formatDate } from '@libs-ui/utils';\nimport * as dayjs from 'dayjs';\nimport * as en from 'dayjs/locale/en';\nimport * as vi from 'dayjs/locale/vi';\nimport * as updateLocale from 'dayjs/plugin/updateLocale';\ndayjs.extend(updateLocale);\n\n@Injectable({ providedIn: 'root' })\nexport class FormatDateService {\n\n private functionFormatDate: ((time: string | number | dayjs.Dayjs | undefined | null, format: string, lang?: string) => string) | undefined;\n\n public updateFunctionFormatDate(functionCustom: (time: string | number | dayjs.Dayjs | undefined | null, format: string, lang?: string) => string) {\n this.functionFormatDate = functionCustom;\n }\n\n public transform(time: string | number | dayjs.Dayjs | undefined | null, format = 'YYYY/MM/DD HH:mm', lang?: string): string {\n if (!time) {\n return '';\n }\n lang = lang || UtilsCache.getLang();\n if (this.functionFormatDate) {\n return this.functionFormatDate(time, format, lang);\n }\n if (formatDate()) {\n return formatDate()?.(time, format, lang) || '';\n }\n time = typeof time === 'number' ? dayjs.unix(time).locale(lang) : dayjs(time).locale(lang);\n this.updateLocale(lang);\n if (typeof time === 'number') {\n return dayjs.unix(time).format(this.getFormatData(this.getTypeByFormat(format), lang));\n }\n\n return dayjs(time).format(this.getFormatData(this.getTypeByFormat(format), lang));\n }\n\n private updateLocale(lang: string) {\n if (lang === 'vi') {\n dayjs.locale(vi);\n dayjs.updateLocale('vi', {\n monthsShort: 'Thg 1_Thg 2_Thg 3_Thg 4_Thg 5_Thg 6_Thg 7_Thg 8_Thg 9_Thg 10_Thg 11_Thg 12'.split('_')\n });\n\n return;\n }\n dayjs.locale(en);\n }\n\n private getTypeByFormat(format: string): 'dm' | 'dmy' | 'dmy hm' | 'my' | 'dmy hms' {\n if (format === 'dm' || format === 'dmy' || format === 'dmy hm' || format === 'my') {\n return format;\n }\n\n if (format === 'DD/MM/YYYY' || format === 'YYYY-MM-DD' || format === 'dd/MM/yyyy' || format === 'dd-MM-yyyy' || format === 'dd/mm/yyyy') {\n return 'dmy';\n }\n\n if (format === 'MM-DD' || format === 'dd/MM' || format === 'dd/mm') {\n return 'dm';\n }\n\n if (format === 'M/YYYY' || format === 'YYYY-MM' || format === 'MM/yyyy') {\n return 'my';\n }\n\n if (format === 'YYYY/MM/DD hh:mm:ss' || format === 'dmy hms' || format === 'dd/mm/yyyy hh:mm:ss') {\n return 'dmy hms';\n }\n\n return 'dmy hm';\n }\n\n private getFormatData(type: 'dm' | 'dmy' | 'dmy hm' | 'my' | 'dmy hms', lang: string) {\n switch (type) {\n case 'dm':\n if (lang === 'vi') {\n return 'D MMM';\n }\n\n return 'MMM D';\n\n case 'dmy':\n if (lang === 'vi') {\n return 'D MMM, YYYY';\n }\n\n return 'MMM D, YYYY';\n\n case 'dmy hm':\n if (lang === 'vi') {\n return 'D MMM, YYYY HH:mm';\n }\n\n return 'MMM D, YYYY HH:mm';\n\n case 'my':\n if (lang === 'vi') {\n return 'MMM, YYYY';\n }\n\n return 'MMM YYYY ';\n\n case 'dmy hms':\n if (lang === 'vi') {\n return 'D MMM, YYYY HH:mm:ss';\n }\n\n return 'MMM D, YYYY HH:mm:ss';\n }\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as dayjs from 'dayjs';
2
+ import * as i0 from "@angular/core";
3
+ export declare class FormatDateService {
4
+ private functionFormatDate;
5
+ updateFunctionFormatDate(functionCustom: (time: string | number | dayjs.Dayjs | undefined | null, format: string, lang?: string) => string): void;
6
+ transform(time: string | number | dayjs.Dayjs | undefined | null, format?: string, lang?: string): string;
7
+ private updateLocale;
8
+ private getTypeByFormat;
9
+ private getFormatData;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormatDateService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<FormatDateService>;
12
+ }
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './format-date.service';
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@libs-ui/services-format-date",
3
+ "version": "0.2.43",
4
+ "peerDependencies": {
5
+ "@angular/common": "^18.2.0",
6
+ "@angular/core": "^18.2.0"
7
+ },
8
+ "sideEffects": false,
9
+ "module": "fesm2022/libs-ui-services-format-date.mjs",
10
+ "typings": "index.d.ts",
11
+ "exports": {
12
+ "./package.json": {
13
+ "default": "./package.json"
14
+ },
15
+ ".": {
16
+ "types": "./index.d.ts",
17
+ "esm2022": "./esm2022/libs-ui-services-format-date.mjs",
18
+ "esm": "./esm2022/libs-ui-services-format-date.mjs",
19
+ "default": "./fesm2022/libs-ui-services-format-date.mjs"
20
+ }
21
+ },
22
+ "dependencies": {
23
+ "tslib": "^2.3.0"
24
+ }
25
+ }