@acorex/core 7.0.40 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dateTime/src/datetime.class.d.ts +1 -1
- package/esm2022/config/src/configs.mjs +24 -0
- package/esm2022/dateTime/src/datetime.class.mjs +295 -0
- package/{esm2020 → esm2022}/dateTime/src/datetime.module.mjs +5 -5
- package/{esm2020 → esm2022}/dateTime/src/datetime.pipe.mjs +4 -4
- package/esm2022/dateTime/src/georgian.calendar.mjs +187 -0
- package/esm2022/dateTime/src/jalali.calendar.mjs +357 -0
- package/esm2022/events/src/event.service.mjs +34 -0
- package/esm2022/file/src/file-download-ref.class.mjs +13 -0
- package/esm2022/file/src/file-download-result.class.mjs +47 -0
- package/esm2022/file/src/file-upload-ref.class.mjs +13 -0
- package/esm2022/file/src/file.service.mjs +102 -0
- package/esm2022/http/src/http-result.class.mjs +25 -0
- package/{esm2020 → esm2022}/http/src/http.module.mjs +9 -9
- package/esm2022/http/src/http.service.mjs +151 -0
- package/{esm2020 → esm2022}/image/src/image.service.mjs +4 -4
- package/{esm2020 → esm2022}/pipes/src/pipes.module.mjs +5 -5
- package/esm2022/pipes/src/safe.pipe.mjs +31 -0
- package/esm2022/platform/src/platform.service.mjs +159 -0
- package/{esm2020 → esm2022}/translation/src/translation.module.mjs +5 -5
- package/esm2022/translation/src/translator.mjs +43 -0
- package/{esm2020 → esm2022}/translation/src/translator.pipe.mjs +4 -4
- package/{fesm2015 → fesm2022}/acorex-core-config.mjs +3 -4
- package/{fesm2015 → fesm2022}/acorex-core-config.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/acorex-core-dateTime.mjs +88 -86
- package/{fesm2015 → fesm2022}/acorex-core-dateTime.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-events.mjs +4 -7
- package/fesm2022/acorex-core-events.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-file.mjs +15 -12
- package/{fesm2020 → fesm2022}/acorex-core-file.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-http.mjs +18 -12
- package/{fesm2015 → fesm2022}/acorex-core-http.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-image.mjs +3 -4
- package/{fesm2020 → fesm2022}/acorex-core-image.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/acorex-core-pipes.mjs +8 -8
- package/{fesm2015 → fesm2022}/acorex-core-pipes.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-platform.mjs +39 -34
- package/fesm2022/acorex-core-platform.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-translation.mjs +12 -13
- package/{fesm2020 → fesm2022}/acorex-core-translation.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-utils.mjs +0 -1
- package/{fesm2015 → fesm2022}/acorex-core.mjs +0 -1
- package/package.json +42 -68
- package/platform/src/platform.service.d.ts +4 -4
- package/utils/src/color-util.d.ts +2 -2
- package/esm2020/config/src/configs.mjs +0 -24
- package/esm2020/dateTime/src/datetime.class.mjs +0 -288
- package/esm2020/dateTime/src/georgian.calendar.mjs +0 -189
- package/esm2020/dateTime/src/jalali.calendar.mjs +0 -359
- package/esm2020/events/src/event.service.mjs +0 -36
- package/esm2020/file/src/file-download-ref.class.mjs +0 -12
- package/esm2020/file/src/file-download-result.class.mjs +0 -46
- package/esm2020/file/src/file-upload-ref.class.mjs +0 -12
- package/esm2020/file/src/file.service.mjs +0 -101
- package/esm2020/http/src/http-result.class.mjs +0 -21
- package/esm2020/http/src/http.service.mjs +0 -148
- package/esm2020/pipes/src/safe.pipe.mjs +0 -30
- package/esm2020/platform/src/platform.service.mjs +0 -153
- package/esm2020/translation/src/translator.mjs +0 -43
- package/fesm2015/acorex-core-events.mjs +0 -44
- package/fesm2015/acorex-core-events.mjs.map +0 -1
- package/fesm2015/acorex-core-file.mjs +0 -176
- package/fesm2015/acorex-core-file.mjs.map +0 -1
- package/fesm2015/acorex-core-http.mjs +0 -203
- package/fesm2015/acorex-core-image.mjs +0 -54
- package/fesm2015/acorex-core-image.mjs.map +0 -1
- package/fesm2015/acorex-core-platform.mjs +0 -161
- package/fesm2015/acorex-core-platform.mjs.map +0 -1
- package/fesm2015/acorex-core-translation.mjs +0 -81
- package/fesm2015/acorex-core-translation.mjs.map +0 -1
- package/fesm2015/acorex-core-utils.mjs +0 -227
- package/fesm2020/acorex-core-config.mjs +0 -32
- package/fesm2020/acorex-core-config.mjs.map +0 -1
- package/fesm2020/acorex-core-dateTime.mjs +0 -899
- package/fesm2020/acorex-core-dateTime.mjs.map +0 -1
- package/fesm2020/acorex-core-events.mjs.map +0 -1
- package/fesm2020/acorex-core-http.mjs.map +0 -1
- package/fesm2020/acorex-core-pipes.mjs +0 -54
- package/fesm2020/acorex-core-pipes.mjs.map +0 -1
- package/fesm2020/acorex-core-platform.mjs.map +0 -1
- package/fesm2020/acorex-core-utils.mjs.map +0 -1
- package/fesm2020/acorex-core.mjs +0 -12
- package/fesm2020/acorex-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/acorex-core.mjs +0 -0
- /package/{esm2020 → esm2022}/config/acorex-core-config.mjs +0 -0
- /package/{esm2020 → esm2022}/config/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/dateTime/acorex-core-dateTime.mjs +0 -0
- /package/{esm2020 → esm2022}/dateTime/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/events/acorex-core-events.mjs +0 -0
- /package/{esm2020 → esm2022}/events/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/file/acorex-core-file.mjs +0 -0
- /package/{esm2020 → esm2022}/file/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/http/acorex-core-http.mjs +0 -0
- /package/{esm2020 → esm2022}/http/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/http/src/http-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/http/src/http-events.interceptor.mjs +0 -0
- /package/{esm2020 → esm2022}/http/src/http-request.class.mjs +0 -0
- /package/{esm2020 → esm2022}/image/acorex-core-image.mjs +0 -0
- /package/{esm2020 → esm2022}/image/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pipes/acorex-core-pipes.mjs +0 -0
- /package/{esm2020 → esm2022}/pipes/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/platform/acorex-core-platform.mjs +0 -0
- /package/{esm2020 → esm2022}/platform/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/translation/acorex-core-translation.mjs +0 -0
- /package/{esm2020 → esm2022}/translation/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/acorex-core-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/color-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/drawing-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/html-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/object-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/string-util.mjs +0 -0
- /package/{fesm2015 → fesm2022}/acorex-core-utils.mjs.map +0 -0
- /package/{fesm2015 → fesm2022}/acorex-core.mjs.map +0 -0
@@ -0,0 +1,159 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { fromEvent, Subject } from 'rxjs';
|
3
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
const isChrome = (win) => testUserAgent(win, /Chrome/i);
|
6
|
+
const isFirefox = (win) => testUserAgent(win, /Firefox/i);
|
7
|
+
const isEdge = (win) => testUserAgent(win, /Edge/i);
|
8
|
+
const isSafari = (win) => testUserAgent(win, /Safari/i);
|
9
|
+
const isOpera = (win) => testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);
|
10
|
+
const isMSIE = (win) => testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);
|
11
|
+
const isMobileWeb = (win) => isMobile(win) && !isHybrid(win);
|
12
|
+
const isIpad = (win) => {
|
13
|
+
// iOS 12 and below
|
14
|
+
if (testUserAgent(win, /iPad/i)) {
|
15
|
+
return true;
|
16
|
+
}
|
17
|
+
// iOS 13+
|
18
|
+
if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
|
19
|
+
return true;
|
20
|
+
}
|
21
|
+
return false;
|
22
|
+
};
|
23
|
+
const isIphone = (win) => testUserAgent(win, /iPhone/i);
|
24
|
+
const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
|
25
|
+
const isAndroid = (win) => testUserAgent(win, /android|sink/i);
|
26
|
+
const isAndroidTablet = (win) => {
|
27
|
+
return isAndroid(win) && !testUserAgent(win, /mobile/i);
|
28
|
+
};
|
29
|
+
const isPhablet = (win) => {
|
30
|
+
const width = win.innerWidth;
|
31
|
+
const height = win.innerHeight;
|
32
|
+
const smallest = Math.min(width, height);
|
33
|
+
const largest = Math.max(width, height);
|
34
|
+
return smallest > 390 && smallest < 520 && largest > 620 && largest < 800;
|
35
|
+
};
|
36
|
+
const isTablet = (win) => {
|
37
|
+
const width = win.innerWidth;
|
38
|
+
const height = win.innerHeight;
|
39
|
+
const smallest = Math.min(width, height);
|
40
|
+
const largest = Math.max(width, height);
|
41
|
+
return (isIpad(win) ||
|
42
|
+
isAndroidTablet(win) ||
|
43
|
+
(smallest > 460 && smallest < 820 && largest > 780 && largest < 1400));
|
44
|
+
};
|
45
|
+
const isMobile = (win) => matchMedia(win, '(any-pointer:coarse)');
|
46
|
+
const isTouch = (win) => matchMedia(win, '(any-pointer:coarse)');
|
47
|
+
const isDesktop = (win) => !isMobile(win);
|
48
|
+
const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
49
|
+
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
50
|
+
const isCapacitorNative = (win) => {
|
51
|
+
const capacitor = win['Capacitor'];
|
52
|
+
return !!(capacitor && capacitor.isNative);
|
53
|
+
};
|
54
|
+
const isElectron = (win) => testUserAgent(win, /electron/i);
|
55
|
+
const isPWA = (win) => !!(win.matchMedia('(display-mode: standalone)').matches ||
|
56
|
+
win.navigator.standalone);
|
57
|
+
export const testUserAgent = (win, expr) => expr.test(win.navigator.userAgent);
|
58
|
+
const matchMedia = (win, query) => win.matchMedia(query).matches;
|
59
|
+
const isSMScreen = (win) => matchMedia(win, '(max-width: 640px)');
|
60
|
+
const isMDScreen = (win) => matchMedia(win, '(max-width: 768px)');
|
61
|
+
const isLGScreen = (win) => matchMedia(win, '(max-width: 1024px)');
|
62
|
+
const isXLScreen = (win) => matchMedia(win, '(max-width: 1280px)');
|
63
|
+
const is2XLScreen = (win) => matchMedia(win, '(max-width: 1536px)');
|
64
|
+
const PLATFORMS_MAP = {
|
65
|
+
Android: isAndroid,
|
66
|
+
iOS: isIOS,
|
67
|
+
Desktop: isDesktop,
|
68
|
+
Mobile: isMobile,
|
69
|
+
Touch: isTouch,
|
70
|
+
Chrome: isChrome,
|
71
|
+
Firefox: isFirefox,
|
72
|
+
Safari: isSafari,
|
73
|
+
Edge: isEdge,
|
74
|
+
Opera: isOpera,
|
75
|
+
Hybrid: isHybrid,
|
76
|
+
PWA: isPWA,
|
77
|
+
Electron: isElectron,
|
78
|
+
SM: isSMScreen,
|
79
|
+
MD: isMDScreen,
|
80
|
+
LG: isLGScreen,
|
81
|
+
XL: isXLScreen,
|
82
|
+
"2XL": is2XLScreen,
|
83
|
+
};
|
84
|
+
export class AXPlatformEvent {
|
85
|
+
nativeEvent;
|
86
|
+
source;
|
87
|
+
}
|
88
|
+
export class AXPlatform {
|
89
|
+
resize = new Subject();
|
90
|
+
click = new Subject();
|
91
|
+
scroll = new Subject();
|
92
|
+
isRtl() {
|
93
|
+
return (document.dir == 'rtl' ||
|
94
|
+
document.body.dir == 'rtl' ||
|
95
|
+
document.body.style.direction == 'rtl');
|
96
|
+
}
|
97
|
+
isLandscape() {
|
98
|
+
return window.innerHeight < window.innerWidth;
|
99
|
+
}
|
100
|
+
isPortrate() {
|
101
|
+
return !this.isLandscape();
|
102
|
+
}
|
103
|
+
is(name) {
|
104
|
+
return PLATFORMS_MAP[name](window) || false;
|
105
|
+
}
|
106
|
+
switchDarkMode() {
|
107
|
+
const _html = document.getElementsByTagName('html')[0];
|
108
|
+
_html.classList.add('ax-dark');
|
109
|
+
}
|
110
|
+
switchLightMode() {
|
111
|
+
const _html = document.getElementsByTagName('html')[0];
|
112
|
+
_html.classList.remove('ax-dark');
|
113
|
+
}
|
114
|
+
_setFullHeightRatio() {
|
115
|
+
try {
|
116
|
+
document
|
117
|
+
.querySelector(':root')
|
118
|
+
?.style.setProperty('--ax-vh', window.innerHeight / 100 + 'px');
|
119
|
+
}
|
120
|
+
catch (error) {
|
121
|
+
}
|
122
|
+
}
|
123
|
+
constructor() {
|
124
|
+
fromEvent(window, 'resize')
|
125
|
+
.pipe(debounceTime(100))
|
126
|
+
.pipe(distinctUntilChanged())
|
127
|
+
.subscribe((e) => {
|
128
|
+
this.resize.next({
|
129
|
+
nativeEvent: e,
|
130
|
+
source: this,
|
131
|
+
});
|
132
|
+
//
|
133
|
+
this._setFullHeightRatio();
|
134
|
+
});
|
135
|
+
document.addEventListener('click', (e) => {
|
136
|
+
this.click.next({
|
137
|
+
nativeEvent: e,
|
138
|
+
source: this,
|
139
|
+
});
|
140
|
+
}, true);
|
141
|
+
document.addEventListener('scroll', (e) => {
|
142
|
+
this.scroll.next({
|
143
|
+
nativeEvent: e,
|
144
|
+
source: this,
|
145
|
+
});
|
146
|
+
}, true);
|
147
|
+
// init functions
|
148
|
+
this._setFullHeightRatio();
|
149
|
+
}
|
150
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
151
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPlatform, providedIn: 'root' });
|
152
|
+
}
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPlatform, decorators: [{
|
154
|
+
type: Injectable,
|
155
|
+
args: [{
|
156
|
+
providedIn: 'root',
|
157
|
+
}]
|
158
|
+
}], ctorParameters: function () { return []; } });
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3BsYXRmb3JtL3NyYy9wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWNwRSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUV6RSxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUUzRSxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUVyRSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUV6RSxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3ZDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUU3RCxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFLENBQ3RDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVoRSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdB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QUM7SUFFRDtRQUNFLFNBQVMsQ0FBVSxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDNUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDZixXQUFXLEVBQUUsQ0FBQztnQkFDZCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztZQUNILEVBQUU7WUFDRixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVMLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkIsT0FBTyxFQUNQLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxXQUFXLEVBQUUsQ0FBQztnQkFDZCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUVGLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkIsUUFBUSxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDZixXQUFXLEVBQUUsQ0FBQztnQkFDZCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUNGLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQWhGVSxVQUFVOzJHQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgdHlwZSBBWFBsYXRmb3JtcyA9ICdBbmRyb2lkJyB8ICdEZXNrdG9wJyB8ICdpT1MnIHwgJ01vYmlsZSc7XHJcbmV4cG9ydCB0eXBlIEFYQnJvd3NlcnMgPVxyXG4gIHwgJ0Nocm9tZSdcclxuICB8ICdTYWZhcmknXHJcbiAgfCAnRWRnZSdcclxuICB8ICdGaXJlZm94J1xyXG4gIHwgJ09wZXJhJ1xyXG4gIHwgJ01TSUUnO1xyXG5leHBvcnQgdHlwZSBBWFRlY2hub2xvZ2llcyA9ICdQV0EnIHwgJ0h5YnJpZCcgfCAnRWxlY3Ryb24nO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhTY3JlZW5TaXplcyA9ICdTTScgfCAnTUQnIHwgJ0xHJyB8ICdYTCcgfCAnMlhMJztcclxuXHJcbmNvbnN0IGlzQ2hyb21lID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PiB0ZXN0VXNlckFnZW50KHdpbiwgL0Nocm9tZS9pKTtcclxuXHJcbmNvbnN0IGlzRmlyZWZveCA9ICh3aW46IFdpbmRvdyk6IGJvb2xlYW4gPT4gdGVzdFVzZXJBZ2VudCh3aW4sIC9GaXJlZm94L2kpO1xyXG5cclxuY29uc3QgaXNFZGdlID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PiB0ZXN0VXNlckFnZW50KHdpbiwgL0VkZ2UvaSk7XHJcblxyXG5jb25zdCBpc1NhZmFyaSA9ICh3aW46IFdpbmRvdyk6IGJvb2xlYW4gPT4gdGVzdFVzZXJBZ2VudCh3aW4sIC9TYWZhcmkvaSk7XHJcblxyXG5jb25zdCBpc09wZXJhID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PlxyXG4gIHRlc3RVc2VyQWdlbnQod2luLCAvT3BlcmEvaSkgfHwgdGVzdFVzZXJBZ2VudCh3aW4sIC9PUFIvaSk7XHJcblxyXG5jb25zdCBpc01TSUUgPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgdGVzdFVzZXJBZ2VudCh3aW4sIC9NU0lFL2kpIHx8IHRlc3RVc2VyQWdlbnQod2luLCAvVHJpZGVudC9pKTtcclxuXHJcbmNvbnN0IGlzTW9iaWxlV2ViID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PiBpc01vYmlsZSh3aW4pICYmICFpc0h5YnJpZCh3aW4pO1xyXG5cclxuY29uc3QgaXNJcGFkID0gKHdpbjogV2luZG93KSA9PiB7XHJcbiAgLy8gaU9TIDEyIGFuZCBiZWxvd1xyXG4gIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL2lQYWQvaSkpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gaU9TIDEzK1xyXG4gIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL01hY2ludG9zaC9pKSAmJiBpc01vYmlsZSh3aW4pKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBmYWxzZTtcclxufTtcclxuXHJcbmNvbnN0IGlzSXBob25lID0gKHdpbjogV2luZG93KSA9PiB0ZXN0VXNlckFnZW50KHdpbiwgL2lQaG9uZS9pKTtcclxuXHJcbmNvbnN0IGlzSU9TID0gKHdpbjogV2luZG93KSA9PlxyXG4gIHRlc3RVc2VyQWdlbnQod2luLCAvaVBob25lfGlQb2QvaSkgfHwgaXNJcGFkKHdpbik7XHJcblxyXG5jb25zdCBpc0FuZHJvaWQgPSAod2luOiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvYW5kcm9pZHxzaW5rL2kpO1xyXG5cclxuY29uc3QgaXNBbmRyb2lkVGFibGV0ID0gKHdpbjogV2luZG93KSA9PiB7XHJcbiAgcmV0dXJuIGlzQW5kcm9pZCh3aW4pICYmICF0ZXN0VXNlckFnZW50KHdpbiwgL21vYmlsZS9pKTtcclxufTtcclxuXHJcbmNvbnN0IGlzUGhhYmxldCA9ICh3aW46IFdpbmRvdykgPT4ge1xyXG4gIGNvbnN0IHdpZHRoID0gd2luLmlubmVyV2lkdGg7XHJcbiAgY29uc3QgaGVpZ2h0ID0gd2luLmlubmVySGVpZ2h0O1xyXG4gIGNvbnN0IHNtYWxsZXN0ID0gTWF0aC5taW4od2lkdGgsIGhlaWdodCk7XHJcbiAgY29uc3QgbGFyZ2VzdCA9IE1hdGgubWF4KHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gc21hbGxlc3QgPiAzOTAgJiYgc21hbGxlc3QgPCA1MjAgJiYgbGFyZ2VzdCA+IDYyMCAmJiBsYXJnZXN0IDwgODAwO1xyXG59O1xyXG5cclxuY29uc3QgaXNUYWJsZXQgPSAod2luOiBXaW5kb3cpID0+IHtcclxuICBjb25zdCB3aWR0aCA9IHdpbi5pbm5lcldpZHRoO1xyXG4gIGNvbnN0IGhlaWdodCA9IHdpbi5pbm5lckhlaWdodDtcclxuICBjb25zdCBzbWFsbGVzdCA9IE1hdGgubWluKHdpZHRoLCBoZWlnaHQpO1xyXG4gIGNvbnN0IGxhcmdlc3QgPSBNYXRoLm1heCh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIGlzSXBhZCh3aW4pIHx8XHJcbiAgICBpc0FuZHJvaWRUYWJsZXQod2luKSB8fFxyXG4gICAgKHNtYWxsZXN0ID4gNDYwICYmIHNtYWxsZXN0IDwgODIwICYmIGxhcmdlc3QgPiA3ODAgJiYgbGFyZ2VzdCA8IDE0MDApXHJcbiAgKTtcclxufTtcclxuXHJcbmNvbnN0IGlzTW9iaWxlID0gKHdpbjogV2luZG93KSA9PiBtYXRjaE1lZGlhKHdpbiwgJyhhbnktcG9pbnRlcjpjb2Fyc2UpJyk7XHJcbmNvbnN0IGlzVG91Y2ggPSAod2luOiBXaW5kb3cpID0+IG1hdGNoTWVkaWEod2luLCAnKGFueS1wb2ludGVyOmNvYXJzZSknKTtcclxuXHJcbmNvbnN0IGlzRGVza3RvcCA9ICh3aW46IFdpbmRvdykgPT4gIWlzTW9iaWxlKHdpbik7XHJcblxyXG5jb25zdCBpc0h5YnJpZCA9ICh3aW46IFdpbmRvdykgPT4gaXNDb3Jkb3ZhKHdpbikgfHwgaXNDYXBhY2l0b3JOYXRpdmUod2luKTtcclxuXHJcbmNvbnN0IGlzQ29yZG92YSA9ICh3aW46IGFueSk6IGJvb2xlYW4gPT5cclxuICAhISh3aW5bJ2NvcmRvdmEnXSB8fCB3aW5bJ3Bob25lZ2FwJ10gfHwgd2luWydQaG9uZUdhcCddKTtcclxuXHJcbmNvbnN0IGlzQ2FwYWNpdG9yTmF0aXZlID0gKHdpbjogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgY29uc3QgY2FwYWNpdG9yID0gd2luWydDYXBhY2l0b3InXTtcclxuICByZXR1cm4gISEoY2FwYWNpdG9yICYmIGNhcGFjaXRvci5pc05hdGl2ZSk7XHJcbn07XHJcblxyXG5jb25zdCBpc0VsZWN0cm9uID0gKHdpbjogV2luZG93KTogYm9vbGVhbiA9PiB0ZXN0VXNlckFnZW50KHdpbiwgL2VsZWN0cm9uL2kpO1xyXG5cclxuY29uc3QgaXNQV0EgPSAod2luOiBXaW5kb3cpOiBib29sZWFuID0+XHJcbiAgISEoXHJcbiAgICB3aW4ubWF0Y2hNZWRpYSgnKGRpc3BsYXktbW9kZTogc3RhbmRhbG9uZSknKS5tYXRjaGVzIHx8XHJcbiAgICAod2luLm5hdmlnYXRvciBhcyBhbnkpLnN0YW5kYWxvbmVcclxuICApO1xyXG5cclxuZXhwb3J0IGNvbnN0IHRlc3RVc2VyQWdlbnQgPSAod2luOiBXaW5kb3csIGV4cHI6IFJlZ0V4cCkgPT5cclxuICBleHByLnRlc3Qod2luLm5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG5cclxuY29uc3QgbWF0Y2hNZWRpYSA9ICh3aW46IFdpbmRvdywgcXVlcnk6IHN0cmluZyk6IGJvb2xlYW4gPT5cclxuICB3aW4ubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcclxuXHJcblxyXG5jb25zdCBpc1NNU2NyZWVuID0gKHdpbjogV2luZG93KSA9PiBtYXRjaE1lZGlhKHdpbiwgJyhtYXgtd2lkdGg6IDY0MHB4KScpO1xyXG5jb25zdCBpc01EU2NyZWVuID0gKHdpbjogV2luZG93KSA9PiBtYXRjaE1lZGlhKHdpbiwgJyhtYXgtd2lkdGg6IDc2OHB4KScpO1xyXG5jb25zdCBpc0xHU2NyZWVuID0gKHdpbjogV2luZG93KSA9PiBtYXRjaE1lZGlhKHdpbiwgJyhtYXgtd2lkdGg6IDEwMjRweCknKTtcclxuY29uc3QgaXNYTFNjcmVlbiA9ICh3aW46IFdpbmRvdykgPT4gbWF0Y2hNZWRpYSh3aW4sICcobWF4LXdpZHRoOiAxMjgwcHgpJyk7XHJcbmNvbnN0IGlzMlhMU2NyZWVuID0gKHdpbjogV2luZG93KSA9PiBtYXRjaE1lZGlhKHdpbiwgJyhtYXgtd2lkdGg6IDE1MzZweCknKTtcclxuXHJcbmNvbnN0IFBMQVRGT1JNU19NQVA6IGFueSA9IHtcclxuICBBbmRyb2lkOiBpc0FuZHJvaWQsXHJcbiAgaU9TOiBpc0lPUyxcclxuICBEZXNrdG9wOiBpc0Rlc2t0b3AsXHJcbiAgTW9iaWxlOiBpc01vYmlsZSxcclxuICBUb3VjaDogaXNUb3VjaCxcclxuICBDaHJvbWU6IGlzQ2hyb21lLFxyXG4gIEZpcmVmb3g6IGlzRmlyZWZveCxcclxuICBTYWZhcmk6IGlzU2FmYXJpLFxyXG4gIEVkZ2U6IGlzRWRnZSxcclxuICBPcGVyYTogaXNPcGVyYSxcclxuICBIeWJyaWQ6IGlzSHlicmlkLFxyXG4gIFBXQTogaXNQV0EsXHJcbiAgRWxlY3Ryb246IGlzRWxlY3Ryb24sXHJcbiAgU006IGlzU01TY3JlZW4sXHJcbiAgTUQ6IGlzTURTY3JlZW4sXHJcbiAgTEc6IGlzTEdTY3JlZW4sXHJcbiAgWEw6IGlzWExTY3JlZW4sXHJcbiAgXCIyWExcIjogaXMyWExTY3JlZW4sXHJcbn07XHJcblxyXG5leHBvcnQgY2xhc3MgQVhQbGF0Zm9ybUV2ZW50PFQgZXh0ZW5kcyBFdmVudCA9IEV2ZW50PiB7XHJcbiAgbmF0aXZlRXZlbnQhOiBUO1xyXG4gIHNvdXJjZSE6IEFYUGxhdGZvcm07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBsYXRmb3JtIHtcclxuICByZXNpemU6IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PiA9IG5ldyBTdWJqZWN0PEFYUGxhdGZvcm1FdmVudD4oKTtcclxuICBjbGljazogU3ViamVjdDxBWFBsYXRmb3JtRXZlbnQ+ID0gbmV3IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PigpO1xyXG4gIHNjcm9sbDogU3ViamVjdDxBWFBsYXRmb3JtRXZlbnQ+ID0gbmV3IFN1YmplY3Q8QVhQbGF0Zm9ybUV2ZW50PigpO1xyXG5cclxuICBpc1J0bCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGRvY3VtZW50LmRpciA9PSAncnRsJyB8fFxyXG4gICAgICBkb2N1bWVudC5ib2R5LmRpciA9PSAncnRsJyB8fFxyXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmRpcmVjdGlvbiA9PSAncnRsJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzTGFuZHNjYXBlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCA8IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgaXNQb3J0cmF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0xhbmRzY2FwZSgpO1xyXG4gIH1cclxuXHJcbiAgaXMobmFtZTogQVhQbGF0Zm9ybXMgfCBBWEJyb3dzZXJzIHwgQVhUZWNobm9sb2dpZXMgfCBBWFNjcmVlblNpemVzKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gUExBVEZPUk1TX01BUFtuYW1lXSh3aW5kb3cpIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoRGFya01vZGUoKSB7XHJcbiAgICBjb25zdCBfaHRtbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF07XHJcbiAgICBfaHRtbC5jbGFzc0xpc3QuYWRkKCdheC1kYXJrJyk7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2hMaWdodE1vZGUoKSB7XHJcbiAgICBjb25zdCBfaHRtbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF07XHJcbiAgICBfaHRtbC5jbGFzc0xpc3QucmVtb3ZlKCdheC1kYXJrJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRGdWxsSGVpZ2h0UmF0aW8oKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBkb2N1bWVudFxyXG4gICAgICAgIC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignOnJvb3QnKVxyXG4gICAgICAgID8uc3R5bGUuc2V0UHJvcGVydHkoJy0tYXgtdmgnLCB3aW5kb3cuaW5uZXJIZWlnaHQgLyAxMDAgKyAncHgnKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGZyb21FdmVudDxVSUV2ZW50Pih3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzaXplLm5leHQoe1xyXG4gICAgICAgICAgbmF0aXZlRXZlbnQ6IGUsXHJcbiAgICAgICAgICBzb3VyY2U6IHRoaXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy9cclxuICAgICAgICB0aGlzLl9zZXRGdWxsSGVpZ2h0UmF0aW8oKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgJ2NsaWNrJyxcclxuICAgICAgKGUpID0+IHtcclxuICAgICAgICB0aGlzLmNsaWNrLm5leHQoe1xyXG4gICAgICAgICAgbmF0aXZlRXZlbnQ6IGUsXHJcbiAgICAgICAgICBzb3VyY2U6IHRoaXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRydWVcclxuICAgICk7XHJcblxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgJ3Njcm9sbCcsXHJcbiAgICAgIChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGwubmV4dCh7XHJcbiAgICAgICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgICAgICAgIHNvdXJjZTogdGhpcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgdHJ1ZVxyXG4gICAgKTtcclxuICAgIC8vIGluaXQgZnVuY3Rpb25zXHJcbiAgICB0aGlzLl9zZXRGdWxsSGVpZ2h0UmF0aW8oKTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
|
|
2
2
|
import { AXTranslatorPipe } from './translator.pipe';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export class AXTranslationModule {
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
6
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXTranslationModule, declarations: [AXTranslatorPipe], exports: [AXTranslatorPipe] });
|
7
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTranslationModule });
|
5
8
|
}
|
6
|
-
|
7
|
-
AXTranslationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: AXTranslationModule, declarations: [AXTranslatorPipe], exports: [AXTranslatorPipe] });
|
8
|
-
AXTranslationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXTranslationModule });
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXTranslationModule, decorators: [{
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTranslationModule, decorators: [{
|
10
10
|
type: NgModule,
|
11
11
|
args: [{
|
12
12
|
imports: [],
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
15
15
|
providers: [],
|
16
16
|
}]
|
17
17
|
}] });
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24vc3JjL3RyYW5zbGF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVFyRCxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFIYixnQkFBZ0IsYUFEckIsZ0JBQWdCO3dHQUlqQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBTi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnLi90cmFuc2xhdG9yLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtdLFxyXG4gICAgZXhwb3J0czogW0FYVHJhbnNsYXRvclBpcGVdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbQVhUcmFuc2xhdG9yUGlwZV0sXHJcbiAgICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdGlvbk1vZHVsZSB7XHJcbiAgXHJcbn1cclxuIl19
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { Subject } from 'rxjs';
|
2
|
+
import merge from 'lodash-es/merge';
|
3
|
+
import * as _ from 'lodash';
|
4
|
+
// @dynamic
|
5
|
+
export class AXTranslator {
|
6
|
+
static lang = 'en';
|
7
|
+
static dataChangeSubject = new Subject();
|
8
|
+
static _varsRegx = /((\$\{[a-zA-Z_0-9\.]+\})+)/gm;
|
9
|
+
static _varNameRegx = /[a-zA-Z_0-9\.]+/gm;
|
10
|
+
static get onChange() {
|
11
|
+
return AXTranslator.dataChangeSubject.asObservable();
|
12
|
+
}
|
13
|
+
static load(lang, value) {
|
14
|
+
if (typeof value === 'object') {
|
15
|
+
if (!AXTranslator[`__data__${lang}`]) {
|
16
|
+
AXTranslator[`__data__${lang}`] = {};
|
17
|
+
}
|
18
|
+
AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
static use(lang) {
|
22
|
+
AXTranslator.lang = lang;
|
23
|
+
}
|
24
|
+
static get(key, arg1, arg2) {
|
25
|
+
const lang = arg1 && typeof arg1 == 'string' ? arg1 : AXTranslator.lang;
|
26
|
+
const params = arg1 && typeof arg1 == 'object' ? arg1 : arg2;
|
27
|
+
let result = _.get(AXTranslator[`__data__${lang}`], key, key);
|
28
|
+
const vars = typeof (result) == 'string' ? result?.match(this._varsRegx) : [];
|
29
|
+
if (vars?.length) {
|
30
|
+
vars.forEach((v) => {
|
31
|
+
const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;
|
32
|
+
if (varKey) {
|
33
|
+
const p = _.get(params, varKey) || this.get(varKey, lang);
|
34
|
+
if (p) {
|
35
|
+
result = result.replace(v, p);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
});
|
39
|
+
}
|
40
|
+
return typeof (result) == 'string' ? result : JSON.stringify(result);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3RyYW5zbGF0aW9uL3NyYy90cmFuc2xhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsV0FBVztBQUNYLE1BQU0sT0FBTyxZQUFZO0lBQ2IsTUFBTSxDQUFDLElBQUksR0FBVyxJQUFJLENBQUM7SUFDM0IsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7SUFDOUMsTUFBTSxDQUFDLFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztJQUNsRCxNQUFNLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDO0lBR2xELE1BQU0sS0FBSyxRQUFRO1FBQ2YsT0FBTyxZQUFZLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQ2xDLFlBQVksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3hDO1lBQ0QsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNuRjtJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDMUIsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLElBQXNCLEVBQUUsSUFBYTtRQUVoRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlFLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFLLEVBQUUsRUFBRTtnQkFDbkIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUN6RixJQUFJLE1BQU0sRUFBRTtvQkFDUixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLEVBQUU7d0JBQ0gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNqQztpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFBO1NBQ0w7UUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgbWVyZ2UgZnJvbSAnbG9kYXNoLWVzL21lcmdlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRvciB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBsYW5nOiBzdHJpbmcgPSAnZW4nO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGF0YUNoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBfdmFyc1JlZ3ggPSAvKChcXCRcXHtbYS16QS1aXzAtOVxcLl0rXFx9KSspL2dtO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX3Zhck5hbWVSZWd4ID0gL1thLXpBLVpfMC05XFwuXSsvZ207XHJcblxyXG5cclxuICAgIHN0YXRpYyBnZXQgb25DaGFuZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmRhdGFDaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbG9hZChsYW5nOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBpZiAoIUFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0pIHtcclxuICAgICAgICAgICAgICAgIEFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0gPSB7fTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBBWFRyYW5zbGF0b3JbYF9fZGF0YV9fJHtsYW5nfWBdID0gbWVyZ2UoQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHVzZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICBBWFRyYW5zbGF0b3IubGFuZyA9IGxhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQoa2V5OiBzdHJpbmcsIGFyZzE/OiBvYmplY3QgfCBzdHJpbmcsIGFyZzI/OiBvYmplY3QpOiBzdHJpbmcge1xyXG5cclxuICAgICAgICBjb25zdCBsYW5nID0gYXJnMSAmJiB0eXBlb2YgYXJnMSA9PSAnc3RyaW5nJyA/IGFyZzEgOiBBWFRyYW5zbGF0b3IubGFuZztcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBhcmcxICYmIHR5cGVvZiBhcmcxID09ICdvYmplY3QnID8gYXJnMSA6IGFyZzI7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IF8uZ2V0KEFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0sIGtleSwga2V5KTtcclxuICAgICAgICBjb25zdCB2YXJzID0gdHlwZW9mIChyZXN1bHQpID09ICdzdHJpbmcnID8gcmVzdWx0Py5tYXRjaCh0aGlzLl92YXJzUmVneCkgOiBbXTtcclxuICAgICAgICBpZiAodmFycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhcnMuZm9yRWFjaCgodjphbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhcktleSA9IHYubWF0Y2godGhpcy5fdmFyTmFtZVJlZ3gpPy5sZW5ndGggPyB2Lm1hdGNoKHRoaXMuX3Zhck5hbWVSZWd4KVswXSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFyS2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IF8uZ2V0KHBhcmFtcywgdmFyS2V5KSB8fCB0aGlzLmdldCh2YXJLZXksIGxhbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHYsIHApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAocmVzdWx0KSA9PSAnc3RyaW5nJyA/IHJlc3VsdCA6IEpTT04uc3RyaW5naWZ5KHJlc3VsdCk7XHJcbiAgICB9XHJcbn0iXX0=
|
@@ -5,11 +5,11 @@ export class AXTranslatorPipe {
|
|
5
5
|
transform(value, arg1, arg2) {
|
6
6
|
return AXTranslator.get(value, arg1, arg2);
|
7
7
|
}
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
9
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXTranslatorPipe, name: "trans" });
|
8
10
|
}
|
9
|
-
|
10
|
-
AXTranslatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: AXTranslatorPipe, name: "trans" });
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
12
12
|
type: Pipe,
|
13
13
|
args: [{ name: 'trans', pure: true }]
|
14
14
|
}] });
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24vc3JjL3RyYW5zbGF0b3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUc1QyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBc0IsRUFBRSxJQUFhO1FBQzFELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7dUdBSFEsZ0JBQWdCO3FHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJy4vdHJhbnNsYXRvcic7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICd0cmFucycsIHB1cmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEFYVHJhbnNsYXRvclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBhcmcxPzogb2JqZWN0IHwgc3RyaW5nLCBhcmcyPzogb2JqZWN0KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmdldCh2YWx1ZSwgYXJnMSwgYXJnMik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
@@ -3,6 +3,8 @@ import { Subject } from 'rxjs';
|
|
3
3
|
|
4
4
|
// @dynamic
|
5
5
|
class AXConfig {
|
6
|
+
static dataModel = {};
|
7
|
+
static dataChangeSubject = new Subject();
|
6
8
|
static get onChange() {
|
7
9
|
return AXConfig.dataChangeSubject.asObservable();
|
8
10
|
}
|
@@ -19,9 +21,7 @@ class AXConfig {
|
|
19
21
|
static get(path, defaultValue) {
|
20
22
|
return get(AXConfig.dataModel, path, defaultValue);
|
21
23
|
}
|
22
|
-
}
|
23
|
-
AXConfig.dataModel = {};
|
24
|
-
AXConfig.dataChangeSubject = new Subject();
|
24
|
+
}
|
25
25
|
|
26
26
|
/**
|
27
27
|
* Generated bundle index. Do not edit.
|
@@ -29,4 +29,3 @@ AXConfig.dataChangeSubject = new Subject();
|
|
29
29
|
|
30
30
|
export { AXConfig };
|
31
31
|
//# sourceMappingURL=acorex-core-config.mjs.map
|
32
|
-
//# sourceMappingURL=acorex-core-config.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-config.mjs","sources":["../../../../projects/acorex/core/config/src/configs.ts","../../../../projects/acorex/core/config/acorex-core-config.ts"],"sourcesContent":["import { get, set, merge } from 'lodash-es';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): void;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any): void {\r\n if (arg1 && typeof arg1 == 'string') {\r\n set(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n merge(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n }\r\n\r\n static get(path: string, defaultValue?: any): any {\r\n return get(AXConfig.dataModel, path, defaultValue);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGA;MACa,QAAQ,CAAA;
|
1
|
+
{"version":3,"file":"acorex-core-config.mjs","sources":["../../../../projects/acorex/core/config/src/configs.ts","../../../../projects/acorex/core/config/acorex-core-config.ts"],"sourcesContent":["import { get, set, merge } from 'lodash-es';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n// @dynamic\r\nexport class AXConfig {\r\n private static dataModel: any = {};\r\n private static dataChangeSubject = new Subject<any>();\r\n\r\n static get onChange(): Observable<any> {\r\n return AXConfig.dataChangeSubject.asObservable();\r\n }\r\n\r\n static set(config: any): void;\r\n static set(path: string, value?: any): void;\r\n static set(arg1?: any, arg2?: any): void {\r\n if (arg1 && typeof arg1 == 'string') {\r\n set(AXConfig.dataModel, arg1, arg2);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n if (arg1 && typeof arg1 == 'object') {\r\n merge(AXConfig.dataModel, arg1);\r\n AXConfig.dataChangeSubject.next(AXConfig.dataModel);\r\n }\r\n }\r\n\r\n static get(path: string, defaultValue?: any): any {\r\n return get(AXConfig.dataModel, path, defaultValue);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAGA;MACa,QAAQ,CAAA;AACX,IAAA,OAAO,SAAS,GAAQ,EAAE,CAAC;AAC3B,IAAA,OAAO,iBAAiB,GAAG,IAAI,OAAO,EAAO,CAAC;AAEtD,IAAA,WAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAClD;AAID,IAAA,OAAO,GAAG,CAAC,IAAU,EAAE,IAAU,EAAA;AAC/B,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;YACnC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;AACnC,YAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAChC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrD,SAAA;KACF;AAED,IAAA,OAAO,GAAG,CAAC,IAAY,EAAE,YAAkB,EAAA;QACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;KACpD;;;AC3BH;;AAEG;;;;"}
|
@@ -5,47 +5,6 @@ import { Pipe, NgModule } from '@angular/core';
|
|
5
5
|
|
6
6
|
// @dynamic
|
7
7
|
class AXDateTime {
|
8
|
-
constructor(value = new Date(), calendar = AXConfig.get(`dateTime.calendar`)) {
|
9
|
-
this._formatKeys = {
|
10
|
-
ss: () => this.pad(this.date.getSeconds(), 2),
|
11
|
-
s: () => this.date.getSeconds().toString(),
|
12
|
-
//
|
13
|
-
dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),
|
14
|
-
d: () => this.calendar.dayOfMonth(this.date).toString(),
|
15
|
-
//
|
16
|
-
mm: () => this.pad(this.date.getMinutes(), 2),
|
17
|
-
m: () => this.date.getMinutes().toString(),
|
18
|
-
//
|
19
|
-
MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1],
|
20
|
-
MMM: () => this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1],
|
21
|
-
MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),
|
22
|
-
//
|
23
|
-
DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1],
|
24
|
-
DDD: () => this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1],
|
25
|
-
//
|
26
|
-
yyyy: () => this.calendar.year(this.date).toString(),
|
27
|
-
YYYY: () => this.calendar.year(this.date).toString(),
|
28
|
-
yy: () => this.calendar.year(this.date).toString().substring(2),
|
29
|
-
YY: () => this.calendar.year(this.date).toString().substring(2),
|
30
|
-
//
|
31
|
-
HH: () => this.pad(this.date.getHours(), 2),
|
32
|
-
H: () => this.date.getHours().toString(),
|
33
|
-
//
|
34
|
-
hh: () => this.pad((this.date.getHours() % 12 || 12), 2),
|
35
|
-
h: () => (this.date.getHours() % 12 || 12).toString(),
|
36
|
-
//
|
37
|
-
A: () => (this.date.getHours() < 12) ? 'am' : 'pm',
|
38
|
-
a: () => (this.date.getHours() < 12) ? 'am' : 'pm',
|
39
|
-
};
|
40
|
-
this._calendar = AXDateTime.resolveCalendar(calendar);
|
41
|
-
if (value instanceof Date) {
|
42
|
-
this._date = value;
|
43
|
-
}
|
44
|
-
else {
|
45
|
-
//TODO: parse jalali
|
46
|
-
this._date = new Date(value);
|
47
|
-
}
|
48
|
-
}
|
49
8
|
static convert(value, calendar = AXConfig.get('dateTime.calendar')) {
|
50
9
|
let date;
|
51
10
|
if (typeof value === 'string' || value instanceof String) {
|
@@ -76,12 +35,24 @@ class AXDateTime {
|
|
76
35
|
? AXConfig.get(`dateTime.calendars.${calendar}.class`)
|
77
36
|
: calendar;
|
78
37
|
}
|
38
|
+
_date;
|
79
39
|
get date() {
|
80
40
|
return this._date;
|
81
41
|
}
|
42
|
+
_calendar;
|
82
43
|
get calendar() {
|
83
44
|
return this._calendar;
|
84
45
|
}
|
46
|
+
constructor(value = new Date(), calendar = AXConfig.get(`dateTime.calendar`)) {
|
47
|
+
this._calendar = AXDateTime.resolveCalendar(calendar);
|
48
|
+
if (value instanceof Date) {
|
49
|
+
this._date = value;
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
//TODO: parse jalali
|
53
|
+
this._date = new Date(value);
|
54
|
+
}
|
55
|
+
}
|
85
56
|
clone() {
|
86
57
|
return new AXDateTime(this.date, this.calendar);
|
87
58
|
}
|
@@ -131,6 +102,37 @@ class AXDateTime {
|
|
131
102
|
endOf(unit = 'day') {
|
132
103
|
return this._calendar.endOf(this.date, unit);
|
133
104
|
}
|
105
|
+
_formatKeys = {
|
106
|
+
ss: () => this.pad(this.date.getSeconds(), 2),
|
107
|
+
s: () => this.date.getSeconds().toString(),
|
108
|
+
//
|
109
|
+
dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),
|
110
|
+
d: () => this.calendar.dayOfMonth(this.date).toString(),
|
111
|
+
//
|
112
|
+
mm: () => this.pad(this.date.getMinutes(), 2),
|
113
|
+
m: () => this.date.getMinutes().toString(),
|
114
|
+
//
|
115
|
+
MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1],
|
116
|
+
MMM: () => this.calendar.monthShortNames[this.calendar.monthOfYear(this.date) - 1],
|
117
|
+
MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),
|
118
|
+
//
|
119
|
+
DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1],
|
120
|
+
DDD: () => this.calendar.dayShortNames[this.calendar.dayOfWeek(this.date) - 1],
|
121
|
+
//
|
122
|
+
yyyy: () => this.calendar.year(this.date).toString(),
|
123
|
+
YYYY: () => this.calendar.year(this.date).toString(),
|
124
|
+
yy: () => this.calendar.year(this.date).toString().substring(2),
|
125
|
+
YY: () => this.calendar.year(this.date).toString().substring(2),
|
126
|
+
//
|
127
|
+
HH: () => this.pad(this.date.getHours(), 2),
|
128
|
+
H: () => this.date.getHours().toString(),
|
129
|
+
//
|
130
|
+
hh: () => this.pad((this.date.getHours() % 12 || 12), 2),
|
131
|
+
h: () => (this.date.getHours() % 12 || 12).toString(),
|
132
|
+
//
|
133
|
+
A: () => (this.date.getHours() < 12) ? 'am' : 'pm',
|
134
|
+
a: () => (this.date.getHours() < 12) ? 'am' : 'pm',
|
135
|
+
};
|
134
136
|
format(format = AXConfig.get('dateTime.shortDateFormat')) {
|
135
137
|
const re = new RegExp(_.orderBy(Object.keys(this._formatKeys), c => c.length, ['desc']).join("|"), "gi");
|
136
138
|
return format.replace(re, (matched) => {
|
@@ -191,29 +193,34 @@ class AXDateTime {
|
|
191
193
|
}
|
192
194
|
}
|
193
195
|
class AXCalendarMonth {
|
194
|
-
|
195
|
-
this.index = date.date.getMonth();
|
196
|
-
this.name = date.format('MMMM');
|
197
|
-
this.range = new AXDateTimeRange(new AXDateTime(date.startOf('month').date, date.calendar), new AXDateTime(date.endOf('month').date, date.calendar));
|
198
|
-
}
|
196
|
+
_range;
|
199
197
|
get range() {
|
200
198
|
return this._range;
|
201
199
|
}
|
202
200
|
set range(v) {
|
203
201
|
this._range = v;
|
204
202
|
}
|
203
|
+
constructor(date) {
|
204
|
+
this.index = date.date.getMonth();
|
205
|
+
this.name = date.format('MMMM');
|
206
|
+
this.range = new AXDateTimeRange(new AXDateTime(date.startOf('month').date, date.calendar), new AXDateTime(date.endOf('month').date, date.calendar));
|
207
|
+
}
|
208
|
+
index;
|
209
|
+
name;
|
205
210
|
}
|
206
211
|
class AXDateTimeRange {
|
207
|
-
|
208
|
-
|
209
|
-
this._endTime = endTime;
|
210
|
-
}
|
212
|
+
_startTime;
|
213
|
+
_endTime;
|
211
214
|
get startTime() {
|
212
215
|
return this._startTime;
|
213
216
|
}
|
214
217
|
get endTime() {
|
215
218
|
return this._endTime;
|
216
219
|
}
|
220
|
+
constructor(startTime, endTime) {
|
221
|
+
this._startTime = startTime;
|
222
|
+
this._endTime = endTime;
|
223
|
+
}
|
217
224
|
duration() {
|
218
225
|
const result = {
|
219
226
|
miliseconds: 0,
|
@@ -303,37 +310,35 @@ class AXDateTimePipe {
|
|
303
310
|
return date.format(format);
|
304
311
|
}
|
305
312
|
}
|
313
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
314
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
|
306
315
|
}
|
307
|
-
|
308
|
-
AXDateTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: AXDateTimePipe, name: "axDate" });
|
309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXDateTimePipe, decorators: [{
|
316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimePipe, decorators: [{
|
310
317
|
type: Pipe,
|
311
318
|
args: [{ name: 'axDate' }]
|
312
319
|
}], ctorParameters: function () { return []; } });
|
313
320
|
|
314
321
|
class GeorgianCalendar {
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
];
|
336
|
-
}
|
322
|
+
monthNames = [
|
323
|
+
"January", "February", "March",
|
324
|
+
"April", "May", "June", "July",
|
325
|
+
"August", "September", "October",
|
326
|
+
"November", "December"
|
327
|
+
];
|
328
|
+
monthShortNames = [
|
329
|
+
"Jan", "Feb", "Mar",
|
330
|
+
"Apr", "May", "Jun", "Jul",
|
331
|
+
"Aug", "Sep", "Oct",
|
332
|
+
"Nov", "Dec"
|
333
|
+
];
|
334
|
+
dayNames = [
|
335
|
+
"Sunday", "Monday", "Tuesday", "Wednesday",
|
336
|
+
"Thursday", "Friday", "Saturday"
|
337
|
+
];
|
338
|
+
dayShortNames = [
|
339
|
+
"Sun", "Mon", "Tue", "Wed",
|
340
|
+
"Thu", "Fri", "Sat"
|
341
|
+
];
|
337
342
|
create(value) {
|
338
343
|
return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());
|
339
344
|
}
|
@@ -500,12 +505,10 @@ class GeorgianCalendar {
|
|
500
505
|
}
|
501
506
|
|
502
507
|
class JalaliCalendar {
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
this.dayShortNames = "ش_ی_د_س_چ_پ_ج".split("_");
|
508
|
-
}
|
508
|
+
monthNames = ("فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند").split("_");
|
509
|
+
monthShortNames = ("فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند").split("_");
|
510
|
+
dayNames = ("شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه").split("_");
|
511
|
+
dayShortNames = "ش_ی_د_س_چ_پ_ج".split("_");
|
509
512
|
create(value) {
|
510
513
|
const a = this.toGregorian(value.year, value.month, value.date);
|
511
514
|
return new AXDateTime(new Date(a.getFullYear(), a.getMonth(), a.getDate(), value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this.name());
|
@@ -876,11 +879,11 @@ class AXDateTimeModule {
|
|
876
879
|
}
|
877
880
|
});
|
878
881
|
}
|
882
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
883
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
|
884
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimeModule });
|
879
885
|
}
|
880
|
-
|
881
|
-
AXDateTimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] });
|
882
|
-
AXDateTimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXDateTimeModule });
|
883
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
886
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
884
887
|
type: NgModule,
|
885
888
|
args: [{
|
886
889
|
imports: [],
|
@@ -896,4 +899,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
896
899
|
|
897
900
|
export { AXCalendarMonth, AXDateTime, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, GeorgianCalendar, JalaliCalendar };
|
898
901
|
//# sourceMappingURL=acorex-core-dateTime.mjs.map
|
899
|
-
//# sourceMappingURL=acorex-core-dateTime.mjs.map
|