@acorex/core 7.2.6 → 7.2.8
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/lib/jalali.calendar.d.ts +8 -4
- package/esm2022/acorex-core.mjs +1 -1
- package/esm2022/config/lib/configs.service.mjs +3 -3
- package/esm2022/dateTime/lib/datetime.class.mjs +3 -3
- package/esm2022/dateTime/lib/datetime.module.mjs +4 -4
- package/esm2022/dateTime/lib/datetime.pipe.mjs +3 -3
- package/esm2022/dateTime/lib/jalali.calendar.mjs +94 -55
- package/esm2022/events/lib/event.service.mjs +3 -3
- package/esm2022/file/lib/file.service.mjs +3 -3
- package/esm2022/http/lib/http.module.mjs +4 -4
- package/esm2022/http/lib/http.service.mjs +3 -3
- package/esm2022/image/lib/image.service.mjs +3 -3
- package/esm2022/index.mjs +1 -1
- package/esm2022/pipes/lib/pipes.module.mjs +4 -4
- package/esm2022/pipes/lib/safe.pipe.mjs +3 -3
- package/esm2022/platform/lib/platform.service.mjs +3 -3
- package/esm2022/translation/lib/translation.module.mjs +4 -4
- package/esm2022/translation/lib/translator.mjs +7 -7
- package/esm2022/translation/lib/translator.pipe.mjs +3 -3
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/lib/auto-unsubscribe.mjs +37 -0
- package/esm2022/utils/lib/color-util.mjs +25 -34
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-dateTime.mjs +102 -63
- package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-file.mjs +3 -3
- package/fesm2022/acorex-core-http.mjs +7 -7
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs +7 -7
- package/fesm2022/acorex-core-platform.mjs +3 -3
- package/fesm2022/acorex-core-translation.mjs +13 -13
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +62 -34
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/package.json +10 -11
- package/utils/index.d.ts +1 -0
- package/utils/lib/auto-unsubscribe.d.ts +12 -0
- package/utils/lib/color-util.d.ts +2 -2
@@ -1,6 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import { get } from 'lodash-es';
|
2
2
|
import merge from 'lodash-es/merge';
|
3
|
-
import
|
3
|
+
import { Subject } from 'rxjs';
|
4
4
|
// @dynamic
|
5
5
|
export class AXTranslator {
|
6
6
|
static { this.lang = 'en'; }
|
@@ -24,20 +24,20 @@ export class AXTranslator {
|
|
24
24
|
static get(key, arg1, arg2) {
|
25
25
|
const lang = arg1 && typeof arg1 == 'string' ? arg1 : AXTranslator.lang;
|
26
26
|
const params = arg1 && typeof arg1 == 'object' ? arg1 : arg2;
|
27
|
-
let result =
|
28
|
-
const vars = typeof
|
27
|
+
let result = get(AXTranslator[`__data__${lang}`], key, key);
|
28
|
+
const vars = typeof result == 'string' ? result?.match(this._varsRegx) : [];
|
29
29
|
if (vars?.length) {
|
30
30
|
vars.forEach((v) => {
|
31
31
|
const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;
|
32
32
|
if (varKey) {
|
33
|
-
const p =
|
33
|
+
const p = get(params, varKey) || this.get(varKey, lang);
|
34
34
|
if (p) {
|
35
35
|
result = result.replace(v, p);
|
36
36
|
}
|
37
37
|
}
|
38
38
|
});
|
39
39
|
}
|
40
|
-
return typeof
|
40
|
+
return typeof result == 'string' ? result : JSON.stringify(result);
|
41
41
|
}
|
42
42
|
}
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS90cmFuc2xhdGlvbi9zcmMvbGliL3RyYW5zbGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEtBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLFdBQVc7QUFDWCxNQUFNLE9BQU8sWUFBWTthQUNSLFNBQUksR0FBVyxJQUFJLENBQUM7YUFDcEIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQzthQUN2QyxjQUFTLEdBQUcsOEJBQThCLENBQUM7YUFDM0MsaUJBQVksR0FBRyxtQkFBbUIsQ0FBQztJQUVsRCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUN6QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDcEMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDdEM7WUFDRCxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWTtRQUM1QixZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBc0IsRUFBRSxJQUFhO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUN4RSxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3RCxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekYsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLEVBQUU7d0JBQ0wsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUMvQjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLE9BQU8sTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC1lcy9tZXJnZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQVhUcmFuc2xhdG9yIHtcbiAgcHJpdmF0ZSBzdGF0aWMgbGFuZzogc3RyaW5nID0gJ2VuJztcbiAgcHJpdmF0ZSBzdGF0aWMgZGF0YUNoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgc3RhdGljIF92YXJzUmVneCA9IC8oKFxcJFxce1thLXpBLVpfMC05XFwuXStcXH0pKykvZ207XG4gIHByaXZhdGUgc3RhdGljIF92YXJOYW1lUmVneCA9IC9bYS16QS1aXzAtOVxcLl0rL2dtO1xuXG4gIHN0YXRpYyBnZXQgb25DaGFuZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmRhdGFDaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBsb2FkKGxhbmc6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIUFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0pIHtcbiAgICAgICAgQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSA9IHt9O1xuICAgICAgfVxuICAgICAgQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSA9IG1lcmdlKEFYVHJhbnNsYXRvcltgX19kYXRhX18ke2xhbmd9YF0sIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHVzZShsYW5nOiBzdHJpbmcpIHtcbiAgICBBWFRyYW5zbGF0b3IubGFuZyA9IGxhbmc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldChrZXk6IHN0cmluZywgYXJnMT86IG9iamVjdCB8IHN0cmluZywgYXJnMj86IG9iamVjdCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFuZyA9IGFyZzEgJiYgdHlwZW9mIGFyZzEgPT0gJ3N0cmluZycgPyBhcmcxIDogQVhUcmFuc2xhdG9yLmxhbmc7XG4gICAgY29uc3QgcGFyYW1zID0gYXJnMSAmJiB0eXBlb2YgYXJnMSA9PSAnb2JqZWN0JyA/IGFyZzEgOiBhcmcyO1xuICAgIGxldCByZXN1bHQgPSBnZXQoQVhUcmFuc2xhdG9yW2BfX2RhdGFfXyR7bGFuZ31gXSwga2V5LCBrZXkpO1xuICAgIGNvbnN0IHZhcnMgPSB0eXBlb2YgcmVzdWx0ID09ICdzdHJpbmcnID8gcmVzdWx0Py5tYXRjaCh0aGlzLl92YXJzUmVneCkgOiBbXTtcbiAgICBpZiAodmFycz8ubGVuZ3RoKSB7XG4gICAgICB2YXJzLmZvckVhY2goKHY6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB2YXJLZXkgPSB2Lm1hdGNoKHRoaXMuX3Zhck5hbWVSZWd4KT8ubGVuZ3RoID8gdi5tYXRjaCh0aGlzLl92YXJOYW1lUmVneClbMF0gOiBudWxsO1xuICAgICAgICBpZiAodmFyS2V5KSB7XG4gICAgICAgICAgY29uc3QgcCA9IGdldChwYXJhbXMsIHZhcktleSkgfHwgdGhpcy5nZXQodmFyS2V5LCBsYW5nKTtcbiAgICAgICAgICBpZiAocCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UodiwgcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT0gJ3N0cmluZycgPyByZXN1bHQgOiBKU09OLnN0cmluZ2lmeShyZXN1bHQpO1xuICB9XG59XG4iXX0=
|
@@ -5,10 +5,10 @@ export class AXTranslatorPipe {
|
|
5
5
|
transform(value, arg1, arg2) {
|
6
6
|
return AXTranslator.get(value, arg1, arg2);
|
7
7
|
}
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.
|
9
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
9
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: AXTranslatorPipe, name: "trans" }); }
|
10
10
|
}
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
12
12
|
type: Pipe,
|
13
13
|
args: [{ name: 'trans', pure: true }]
|
14
14
|
}] });
|
package/esm2022/utils/index.mjs
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
export * from './lib/auto-unsubscribe';
|
1
2
|
export * from './lib/color-util';
|
2
3
|
export * from './lib/drawing-util';
|
3
4
|
export * from './lib/html-util';
|
4
5
|
export * from './lib/object-util';
|
5
6
|
export * from './lib/string-util';
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdXRpbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0by11bnN1YnNjcmliZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xvci11dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RyYXdpbmctdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9odG1sLXV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LXV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RyaW5nLXV0aWwnO1xuIl19
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { Injectable } from "@angular/core";
|
2
|
+
import { Subject, takeUntil } from "rxjs";
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export function AXAutoUnsubscriber() {
|
5
|
+
return function (constructor) {
|
6
|
+
const orig = constructor.prototype.ngOnDestroy;
|
7
|
+
constructor.prototype.ngOnDestroy = function () {
|
8
|
+
debugger;
|
9
|
+
for (const prop in this) {
|
10
|
+
const property = this[prop];
|
11
|
+
if (typeof property.subscribe === "function") {
|
12
|
+
property.unsubscribe();
|
13
|
+
}
|
14
|
+
}
|
15
|
+
orig.apply();
|
16
|
+
};
|
17
|
+
};
|
18
|
+
}
|
19
|
+
export class AXUnsubscriber {
|
20
|
+
constructor() {
|
21
|
+
this._destroy$ = new Subject();
|
22
|
+
this.takeUntilDestroy = (origin) => origin.pipe(takeUntil(this._destroy$));
|
23
|
+
}
|
24
|
+
unsubscribe() {
|
25
|
+
this._destroy$.next();
|
26
|
+
this._destroy$.complete();
|
27
|
+
}
|
28
|
+
ngOnDestroy() {
|
29
|
+
this.unsubscribe();
|
30
|
+
}
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXUnsubscriber, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXUnsubscriber }); }
|
33
|
+
}
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXUnsubscriber, decorators: [{
|
35
|
+
type: Injectable
|
36
|
+
}] });
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by11bnN1YnNjcmliZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS91dGlscy9zcmMvbGliL2F1dG8tdW5zdWJzY3JpYmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUNyRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFFckQsTUFBTSxVQUFVLGtCQUFrQjtJQUM5QixPQUFPLFVBQVUsV0FBVztRQUN4QixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQTtRQUM5QyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRztZQUNoQyxRQUFRLENBQUE7WUFDUixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUMzQixJQUFJLE9BQU8sUUFBUSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7b0JBQzFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtpQkFDekI7YUFDSjtZQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNoQixDQUFDLENBQUE7SUFDTCxDQUFDLENBQUE7QUFDTCxDQUFDO0FBR0QsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFcUIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFakMscUJBQWdCLEdBQUcsQ0FBSSxNQUFxQixFQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FVMUg7SUFSVSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OEdBWlEsY0FBYztrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIlxuXG5leHBvcnQgZnVuY3Rpb24gQVhBdXRvVW5zdWJzY3JpYmVyKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3IpIHtcbiAgICAgICAgY29uc3Qgb3JpZyA9IGNvbnN0cnVjdG9yLnByb3RvdHlwZS5uZ09uRGVzdHJveVxuICAgICAgICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBkZWJ1Z2dlclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIHRoaXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXNbcHJvcF1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3BlcnR5LnN1YnNjcmliZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcmlnLmFwcGx5KClcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYVW5zdWJzY3JpYmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveSA9IDxUPihvcmlnaW46IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IG9yaWdpbi5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuXG4gICAgcHVibGljIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufSJdfQ==
|
@@ -5,7 +5,6 @@ export class AXColorUtil {
|
|
5
5
|
const _color = tinycolor(color);
|
6
6
|
switch (mode) {
|
7
7
|
case 'rgba':
|
8
|
-
;
|
9
8
|
return _color.toRgb();
|
10
9
|
case 'hsla':
|
11
10
|
return _color.toHsl();
|
@@ -15,7 +14,6 @@ export class AXColorUtil {
|
|
15
14
|
return _color.toHex();
|
16
15
|
}
|
17
16
|
}
|
18
|
-
;
|
19
17
|
static toString(color, mode = null) {
|
20
18
|
const _color = tinycolor(color);
|
21
19
|
switch (mode) {
|
@@ -25,48 +23,41 @@ export class AXColorUtil {
|
|
25
23
|
return _color.toHslString();
|
26
24
|
case 'hsva':
|
27
25
|
return _color.toHsvString();
|
28
|
-
case '
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
26
|
+
case 'hex': {
|
27
|
+
const rgba = _color.toRgb();
|
28
|
+
return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();
|
29
|
+
}
|
30
|
+
default: {
|
31
|
+
if (typeof color == 'string') {
|
32
|
+
if (color.toLowerCase().startsWith('#'))
|
33
|
+
return this.toString(color, 'hex');
|
34
|
+
else
|
35
|
+
return this.toString(color, 'rgba');
|
34
36
|
}
|
35
|
-
|
36
|
-
|
37
|
-
if (typeof color == 'string') {
|
38
|
-
if (color.toLowerCase().startsWith("#"))
|
39
|
-
return this.toString(color, "hex");
|
40
|
-
else
|
41
|
-
return this.toString(color, "rgba");
|
42
|
-
}
|
43
|
-
else {
|
44
|
-
return this.toString(color, "rgba");
|
45
|
-
}
|
37
|
+
else {
|
38
|
+
return this.toString(color, 'rgba');
|
46
39
|
}
|
40
|
+
}
|
47
41
|
}
|
48
42
|
}
|
49
|
-
;
|
50
43
|
static isValid(color) {
|
51
44
|
const _color = tinycolor(color);
|
52
45
|
return _color.isValid();
|
53
46
|
}
|
54
|
-
;
|
55
47
|
static mix(baseColor, hex, percentage) {
|
56
48
|
return tinycolor.mix(baseColor, hex, percentage).toString('rgb');
|
57
49
|
}
|
58
50
|
static multiply(color1, color2) {
|
59
|
-
|
60
|
-
|
61
|
-
rgb1.b = Math.floor(rgb1.b * rgb2.b / 255);
|
62
|
-
rgb1.g = Math.floor(rgb1.g * rgb2.g / 255);
|
63
|
-
rgb1.r = Math.floor(rgb1.r * rgb2.r / 255);
|
51
|
+
const rgb1 = tinycolor(color1).toRgb();
|
52
|
+
const rgb2 = tinycolor(color2).toRgb();
|
53
|
+
rgb1.b = Math.floor((rgb1.b * rgb2.b) / 255);
|
54
|
+
rgb1.g = Math.floor((rgb1.g * rgb2.g) / 255);
|
55
|
+
rgb1.r = Math.floor((rgb1.r * rgb2.r) / 255);
|
64
56
|
return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');
|
65
57
|
}
|
66
58
|
static contrastToWhite(color) {
|
67
|
-
return tinycolor.readability(
|
59
|
+
return tinycolor.readability('#fff', color);
|
68
60
|
}
|
69
|
-
;
|
70
61
|
static lighten(hex, percentage) {
|
71
62
|
return tinycolor(hex).lighten(percentage);
|
72
63
|
}
|
@@ -97,19 +88,19 @@ export class AXColorUtil {
|
|
97
88
|
let rgb = [
|
98
89
|
X * 1.656492 - Y * 0.354851 - Z * 0.255038,
|
99
90
|
-X * 0.707196 + Y * 1.655397 + Z * 0.036152,
|
100
|
-
X * 0.051713 - Y * 0.121364 + Z * 1.
|
91
|
+
X * 0.051713 - Y * 0.121364 + Z * 1.01153,
|
101
92
|
];
|
102
93
|
// Apply reverse gamma correction.
|
103
|
-
rgb = rgb.map(x => x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055);
|
94
|
+
rgb = rgb.map((x) => x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055);
|
104
95
|
// Bring all negative components to zero.
|
105
|
-
rgb = rgb.map(x => Math.max(0, x));
|
96
|
+
rgb = rgb.map((x) => Math.max(0, x));
|
106
97
|
// If one component is greater than 1, weight components by that value.
|
107
98
|
const max = Math.max(...rgb);
|
108
99
|
if (max > 1) {
|
109
|
-
rgb = rgb.map(x => x / max);
|
100
|
+
rgb = rgb.map((x) => x / max);
|
110
101
|
}
|
111
|
-
rgb = rgb.map(x => Math.round(x * 255));
|
102
|
+
rgb = rgb.map((x) => Math.round(x * 255));
|
112
103
|
return 'rgb(' + rgb.join(',') + ')';
|
113
104
|
}
|
114
105
|
}
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS91dGlscy9zcmMvbGliL2NvbG9yLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUF5QixNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLFlBQVksTUFBTSxjQUFjLENBQUE7QUFJdkMsTUFBTSxPQUFPLFdBQVc7SUFHcEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFvQixFQUFFLElBQWlCO1FBRTdDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixRQUFRLElBQUksRUFBRTtZQUNWLEtBQUssTUFBTTtnQkFBRSxDQUFDO2dCQUNWLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzFCLEtBQUssTUFBTTtnQkFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixLQUFLLE1BQU07Z0JBQ1AsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUI7Z0JBQ0ksT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBQUEsQ0FBQztJQUVGLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBb0IsRUFBRSxPQUFvQixJQUFJO1FBQzFELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixRQUFRLElBQUksRUFBRTtZQUNWLEtBQUssTUFBTTtnQkFDUCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsS0FBSyxNQUFNO2dCQUNQLE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLEtBQUssTUFBTTtnQkFDUCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxL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UTtZQUMzQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVE7U0FDN0MsQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNkLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQzlFLENBQUM7UUFFRix5Q0FBeUM7UUFDekMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5DLHVFQUF1RTtRQUN2RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ1QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDL0I7UUFFRCxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFeEMsT0FBTyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDeEMsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQVhDb2xvck1vZGUgPSAncmdiYScgfCAnaGV4JyB8ICdoc2xhJyB8ICdoc3ZhJztcblxuaW1wb3J0IHRpbnljb2xvciwgeyBDb2xvcklucHV0IH0gZnJvbSAndGlueWNvbG9yMic7XG5pbXBvcnQgdGlueWdyYWRpZW50IGZyb20gJ3RpbnlncmFkaWVudCdcblxuZXhwb3J0IHR5cGUgQVhDb2xvckZvcm1hdCA9IENvbG9ySW5wdXQ7XG5cbmV4cG9ydCBjbGFzcyBBWENvbG9yVXRpbCB7XG5cblxuICAgIHN0YXRpYyB0byhjb2xvcjogQVhDb2xvckZvcm1hdCwgbW9kZTogQVhDb2xvck1vZGUpOiBBWENvbG9yRm9ybWF0IHtcblxuICAgICAgICBjb25zdCBfY29sb3IgPSB0aW55Y29sb3IoY29sb3IpXG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSAncmdiYSc6IDtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvUmdiKCk7XG4gICAgICAgICAgICBjYXNlICdoc2xhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHNsKCk7XG4gICAgICAgICAgICBjYXNlICdoc3ZhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2KCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBfY29sb3IudG9IZXgoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzdGF0aWMgdG9TdHJpbmcoY29sb3I6IEFYQ29sb3JGb3JtYXQsIG1vZGU6IEFYQ29sb3JNb2RlID0gbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcilcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdyZ2JhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvUmdiU3RyaW5nKCk7XG4gICAgICAgICAgICBjYXNlICdoc2xhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHNsU3RyaW5nKCk7XG4gICAgICAgICAgICBjYXNlICdoc3ZhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2U3RyaW5nKCk7XG4gICAgICAgICAgICBjYXNlICdoc3ZhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2U3RyaW5nKCk7XG4gICAgICAgICAgICBjYXNlICdoZXgnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmdiYSA9IF9jb2xvci50b1JnYigpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmdiYS5hICE9IDEgPyBfY29sb3IudG9IZXg4U3RyaW5nKCkgOiBfY29sb3IudG9IZXhTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcIiNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoY29sb3IsIFwiaGV4XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCBcInJnYmFcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b1N0cmluZyhjb2xvciwgXCJyZ2JhXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHN0YXRpYyBpc1ZhbGlkKGNvbG9yOiBBWENvbG9yRm9ybWF0KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcilcbiAgICAgICAgcmV0dXJuIF9jb2xvci5pc1ZhbGlkKCk7XG4gICAgfTtcblxuICAgIHN0YXRpYyBtaXgoYmFzZUNvbG9yOiBBWENvbG9yRm9ybWF0LCBoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aW55Y29sb3IubWl4KGJhc2VDb2xvciwgaGV4LCBwZXJjZW50YWdlKS50b1N0cmluZygncmdiJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIG11bHRpcGx5KGNvbG9yMTogQVhDb2xvckZvcm1hdCwgY29sb3IyOiBBWENvbG9yRm9ybWF0KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJnYjEgPSB0aW55Y29sb3IoY29sb3IxKS50b1JnYigpO1xuICAgICAgICBsZXQgcmdiMiA9IHRpbnljb2xvcihjb2xvcjIpLnRvUmdiKCk7XG4gICAgICAgIHJnYjEuYiA9IE1hdGguZmxvb3IocmdiMS5iICogcmdiMi5iIC8gMjU1KTtcbiAgICAgICAgcmdiMS5nID0gTWF0aC5mbG9vcihyZ2IxLmcgKiByZ2IyLmcgLyAyNTUpO1xuICAgICAgICByZ2IxLnIgPSBNYXRoLmZsb29yKHJnYjEuciAqIHJnYjIuciAvIDI1NSk7XG4gICAgICAgIHJldHVybiB0aW55Y29sb3IoJ3JnYiAnICsgcmdiMS5yICsgJyAnICsgcmdiMS5nICsgJyAnICsgcmdiMS5iKS50b1N0cmluZygncmdiJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbnRyYXN0VG9XaGl0ZShjb2xvcjogQVhDb2xvckZvcm1hdCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aW55Y29sb3IucmVhZGFiaWxpdHkoXCIjZmZmXCIsIGNvbG9yKTtcbiAgICB9O1xuXG4gICAgc3RhdGljIGxpZ2h0ZW4oaGV4OiBBWENvbG9yRm9ybWF0LCBwZXJjZW50YWdlPzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5saWdodGVuKHBlcmNlbnRhZ2UpXG4gICAgfVxuXG4gICAgc3RhdGljIGRhcmtlbihoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcihoZXgpLmRhcmtlbihwZXJjZW50YWdlKVxuICAgIH1cblxuICAgIHN0YXRpYyBicmlnaHRlbihoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcihoZXgpLmJyaWdodGVuKHBlcmNlbnRhZ2UpXG4gICAgfVxuXG4gICAgc3RhdGljIHNhdHVyYXRlKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuc2F0dXJhdGUocGVyY2VudGFnZSlcbiAgICB9XG5cbiAgICBzdGF0aWMgZGVzYXR1cmF0ZShoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcihoZXgpLmdldEx1bWluYW5jZSgpXG4gICAgfVxuXG4gICAgc3RhdGljIGVxdWFsKGNvbG9yMTogQVhDb2xvckZvcm1hdCwgY29sb3IyOiBBWENvbG9yRm9ybWF0KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aW55Y29sb3IuZXF1YWxzKGNvbG9yMSwgY29sb3IyKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ3JhZGllbnQodmFsdWVzOiBhbnlbXSB8IHsgY29sb3I6IGFueSwgcG9zOiBudW1iZXIgfVtdKTogdGlueWdyYWRpZW50Lkluc3RhbmNlIHtcbiAgICAgICAgcmV0dXJuIHRpbnlncmFkaWVudChbLi4udmFsdWVzXSlcbiAgICB9XG5cbiAgICBzdGF0aWMgeHlUb1JnYih2WCwgdlkpOiBzdHJpbmcge1xuICAgICAgICB2WSA9IHZZIHx8IDAuMDAwMDAwMDAwMDE7XG4gICAgICAgIGNvbnN0IFkgPSAxO1xuICAgICAgICBjb25zdCBYID0gKFkgLyB2WSkgKiB2WDtcbiAgICAgICAgY29uc3QgWiA9IChZIC8gdlkpICogKDEgLSB2WCAtIHZZKTtcblxuICAgICAgICAvLyBDb252ZXJ0IHRvIFJHQiB1c2luZyBXaWRlIFJHQiBENjUgY29udmVyc2lvbi5cbiAgICAgICAgbGV0IHJnYiA9IFtcbiAgICAgICAgICAgIFggKiAxLjY1NjQ5MiAtIFkgKiAwLjM1NDg1MSAtIFogKiAwLjI1NTAzOCxcbiAgICAgICAgICAgIC1YICogMC43MDcxOTYgKyBZICogMS42NTUzOTcgKyBaICogMC4wMzYxNTIsXG4gICAgICAgICAgICBYICogMC4wNTE3MTMgLSBZICogMC4xMjEzNjQgKyBaICogMS4wMTE1MzBcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBBcHBseSByZXZlcnNlIGdhbW1hIGNvcnJlY3Rpb24uXG4gICAgICAgIHJnYiA9IHJnYi5tYXAoeCA9PlxuICAgICAgICAgICAgeCA8PSAwLjAwMzEzMDggPyAxMi45MiAqIHggOiAoMS4wICsgMC4wNTUpICogTWF0aC5wb3coeCwgMS4wIC8gMi40KSAtIDAuMDU1XG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gQnJpbmcgYWxsIG5lZ2F0aXZlIGNvbXBvbmVudHMgdG8gemVyby5cbiAgICAgICAgcmdiID0gcmdiLm1hcCh4ID0+IE1hdGgubWF4KDAsIHgpKTtcblxuICAgICAgICAvLyBJZiBvbmUgY29tcG9uZW50IGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZWlnaHQgY29tcG9uZW50cyBieSB0aGF0IHZhbHVlLlxuICAgICAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi5yZ2IpO1xuICAgICAgICBpZiAobWF4ID4gMSkge1xuICAgICAgICAgICAgcmdiID0gcmdiLm1hcCh4ID0+IHggLyBtYXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmdiID0gcmdiLm1hcCh4ID0+IE1hdGgucm91bmQoeCAqIDI1NSkpO1xuXG4gICAgICAgIHJldHVybiAncmdiKCcgKyByZ2Iuam9pbignLCcpICsgJyknO1xuICAgIH1cblxufSJdfQ==
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS91dGlscy9zcmMvbGliL2NvbG9yLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUF5QixNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLFlBQTBCLE1BQU0sY0FBYyxDQUFDO0FBSXRELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBb0IsRUFBRSxJQUFpQjtRQUMvQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QjtnQkFDRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQW9CLEVBQUUsT0FBb0IsSUFBSTtRQUM1RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUU5QixLQUFLLEtBQUssQ0FBQyxDQUFDO2dCQUNWLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIs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O1NBQzFDLENBQUM7UUFFRixrQ0FBa0M7UUFDbEMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNsQixDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUM1RSxDQUFDO1FBRUYseUNBQXlDO1FBQ3pDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJDLHVFQUF1RTtRQUN2RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUMvQjtRQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTFDLE9BQU8sTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYQ29sb3JNb2RlID0gJ3JnYmEnIHwgJ2hleCcgfCAnaHNsYScgfCAnaHN2YSc7XG5cbmltcG9ydCB0aW55Y29sb3IsIHsgQ29sb3JJbnB1dCB9IGZyb20gJ3Rpbnljb2xvcjInO1xuaW1wb3J0IHRpbnlncmFkaWVudCwgeyBJbnN0YW5jZSB9IGZyb20gJ3RpbnlncmFkaWVudCc7XG5cbmV4cG9ydCB0eXBlIEFYQ29sb3JGb3JtYXQgPSBDb2xvcklucHV0O1xuXG5leHBvcnQgY2xhc3MgQVhDb2xvclV0aWwge1xuICBzdGF0aWMgdG8oY29sb3I6IEFYQ29sb3JGb3JtYXQsIG1vZGU6IEFYQ29sb3JNb2RlKTogQVhDb2xvckZvcm1hdCB7XG4gICAgY29uc3QgX2NvbG9yID0gdGlueWNvbG9yKGNvbG9yKTtcbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgJ3JnYmEnOlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvUmdiKCk7XG4gICAgICBjYXNlICdoc2xhJzpcbiAgICAgICAgcmV0dXJuIF9jb2xvci50b0hzbCgpO1xuICAgICAgY2FzZSAnaHN2YSc6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9Ic3YoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9IZXgoKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdG9TdHJpbmcoY29sb3I6IEFYQ29sb3JGb3JtYXQsIG1vZGU6IEFYQ29sb3JNb2RlID0gbnVsbCk6IHN0cmluZyB7XG4gICAgY29uc3QgX2NvbG9yID0gdGlueWNvbG9yKGNvbG9yKTtcbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgJ3JnYmEnOlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvUmdiU3RyaW5nKCk7XG4gICAgICBjYXNlICdoc2xhJzpcbiAgICAgICAgcmV0dXJuIF9jb2xvci50b0hzbFN0cmluZygpO1xuICAgICAgY2FzZSAnaHN2YSc6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9Ic3ZTdHJpbmcoKTtcblxuICAgICAgY2FzZSAnaGV4Jzoge1xuICAgICAgICBjb25zdCByZ2JhID0gX2NvbG9yLnRvUmdiKCk7XG4gICAgICAgIHJldHVybiByZ2JhLmEgIT0gMSA/IF9jb2xvci50b0hleDhTdHJpbmcoKSA6IF9jb2xvci50b0hleFN0cmluZygpO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBpZiAodHlwZW9mIGNvbG9yID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnIycpKSByZXR1cm4gdGhpcy50b1N0cmluZyhjb2xvciwgJ2hleCcpO1xuICAgICAgICAgIGVsc2UgcmV0dXJuIHRoaXMudG9TdHJpbmcoY29sb3IsICdyZ2JhJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoY29sb3IsICdyZ2JhJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZChjb2xvcjogQVhDb2xvckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcik7XG4gICAgcmV0dXJuIF9jb2xvci5pc1ZhbGlkKCk7XG4gIH1cblxuICBzdGF0aWMgbWl4KGJhc2VDb2xvcjogQVhDb2xvckZvcm1hdCwgaGV4OiBBWENvbG9yRm9ybWF0LCBwZXJjZW50YWdlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aW55Y29sb3IubWl4KGJhc2VDb2xvciwgaGV4LCBwZXJjZW50YWdlKS50b1N0cmluZygncmdiJyk7XG4gIH1cblxuICBzdGF0aWMgbXVsdGlwbHkoY29sb3IxOiBBWENvbG9yRm9ybWF0LCBjb2xvcjI6IEFYQ29sb3JGb3JtYXQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJnYjEgPSB0aW55Y29sb3IoY29sb3IxKS50b1JnYigpO1xuICAgIGNvbnN0IHJnYjIgPSB0aW55Y29sb3IoY29sb3IyKS50b1JnYigpO1xuICAgIHJnYjEuYiA9IE1hdGguZmxvb3IoKHJnYjEuYiAqIHJnYjIuYikgLyAyNTUpO1xuICAgIHJnYjEuZyA9IE1hdGguZmxvb3IoKHJnYjEuZyAqIHJnYjIuZykgLyAyNTUpO1xuICAgIHJnYjEuciA9IE1hdGguZmxvb3IoKHJnYjEuciAqIHJnYjIucikgLyAyNTUpO1xuICAgIHJldHVybiB0aW55Y29sb3IoJ3JnYiAnICsgcmdiMS5yICsgJyAnICsgcmdiMS5nICsgJyAnICsgcmdiMS5iKS50b1N0cmluZygncmdiJyk7XG4gIH1cblxuICBzdGF0aWMgY29udHJhc3RUb1doaXRlKGNvbG9yOiBBWENvbG9yRm9ybWF0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGlueWNvbG9yLnJlYWRhYmlsaXR5KCcjZmZmJywgY29sb3IpO1xuICB9XG5cbiAgc3RhdGljIGxpZ2h0ZW4oaGV4OiBBWENvbG9yRm9ybWF0LCBwZXJjZW50YWdlPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoZXgpLmxpZ2h0ZW4ocGVyY2VudGFnZSk7XG4gIH1cblxuICBzdGF0aWMgZGFya2VuKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5kYXJrZW4ocGVyY2VudGFnZSk7XG4gIH1cblxuICBzdGF0aWMgYnJpZ2h0ZW4oaGV4OiBBWENvbG9yRm9ybWF0LCBwZXJjZW50YWdlPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoZXgpLmJyaWdodGVuKHBlcmNlbnRhZ2UpO1xuICB9XG5cbiAgc3RhdGljIHNhdHVyYXRlKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5zYXR1cmF0ZShwZXJjZW50YWdlKTtcbiAgfVxuXG4gIHN0YXRpYyBkZXNhdHVyYXRlKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5nZXRMdW1pbmFuY2UoKTtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbChjb2xvcjE6IEFYQ29sb3JGb3JtYXQsIGNvbG9yMjogQVhDb2xvckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aW55Y29sb3IuZXF1YWxzKGNvbG9yMSwgY29sb3IyKTtcbiAgfVxuXG4gIHN0YXRpYyBncmFkaWVudCh2YWx1ZXM6IGFueVtdIHwgeyBjb2xvcjogYW55OyBwb3M6IG51bWJlciB9W10pOiBJbnN0YW5jZSB7XG4gICAgcmV0dXJuIHRpbnlncmFkaWVudChbLi4udmFsdWVzXSk7XG4gIH1cblxuICBzdGF0aWMgeHlUb1JnYih2WCwgdlkpOiBzdHJpbmcge1xuICAgIHZZID0gdlkgfHwgMC4wMDAwMDAwMDAwMTtcbiAgICBjb25zdCBZID0gMTtcbiAgICBjb25zdCBYID0gKFkgLyB2WSkgKiB2WDtcbiAgICBjb25zdCBaID0gKFkgLyB2WSkgKiAoMSAtIHZYIC0gdlkpO1xuXG4gICAgLy8gQ29udmVydCB0byBSR0IgdXNpbmcgV2lkZSBSR0IgRDY1IGNvbnZlcnNpb24uXG4gICAgbGV0IHJnYiA9IFtcbiAgICAgIFggKiAxLjY1NjQ5MiAtIFkgKiAwLjM1NDg1MSAtIFogKiAwLjI1NTAzOCxcbiAgICAgIC1YICogMC43MDcxOTYgKyBZICogMS42NTUzOTcgKyBaICogMC4wMzYxNTIsXG4gICAgICBYICogMC4wNTE3MTMgLSBZICogMC4xMjEzNjQgKyBaICogMS4wMTE1MyxcbiAgICBdO1xuXG4gICAgLy8gQXBwbHkgcmV2ZXJzZSBnYW1tYSBjb3JyZWN0aW9uLlxuICAgIHJnYiA9IHJnYi5tYXAoKHgpID0+XG4gICAgICB4IDw9IDAuMDAzMTMwOCA/IDEyLjkyICogeCA6ICgxLjAgKyAwLjA1NSkgKiBNYXRoLnBvdyh4LCAxLjAgLyAyLjQpIC0gMC4wNTVcbiAgICApO1xuXG4gICAgLy8gQnJpbmcgYWxsIG5lZ2F0aXZlIGNvbXBvbmVudHMgdG8gemVyby5cbiAgICByZ2IgPSByZ2IubWFwKCh4KSA9PiBNYXRoLm1heCgwLCB4KSk7XG5cbiAgICAvLyBJZiBvbmUgY29tcG9uZW50IGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZWlnaHQgY29tcG9uZW50cyBieSB0aGF0IHZhbHVlLlxuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnJnYik7XG4gICAgaWYgKG1heCA+IDEpIHtcbiAgICAgIHJnYiA9IHJnYi5tYXAoKHgpID0+IHggLyBtYXgpO1xuICAgIH1cblxuICAgIHJnYiA9IHJnYi5tYXAoKHgpID0+IE1hdGgucm91bmQoeCAqIDI1NSkpO1xuXG4gICAgcmV0dXJuICdyZ2IoJyArIHJnYi5qb2luKCcsJykgKyAnKSc7XG4gIH1cbn1cbiJdfQ==
|
@@ -26,10 +26,10 @@ class AXConfig {
|
|
26
26
|
}
|
27
27
|
|
28
28
|
class AXConfigService {
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXConfigService, providedIn: 'platform' }); }
|
31
31
|
}
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXConfigService, decorators: [{
|
33
33
|
type: Injectable,
|
34
34
|
args: [{ providedIn: 'platform' }]
|
35
35
|
}] });
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as _ from 'lodash';
|
2
1
|
import { AXConfig } from '@acorex/core/config';
|
2
|
+
import { orderBy } from 'lodash-es';
|
3
3
|
import * as i0 from '@angular/core';
|
4
4
|
import { Pipe, NgModule } from '@angular/core';
|
5
5
|
|
@@ -132,7 +132,7 @@ class AXDateTime {
|
|
132
132
|
return this._calendar.endOf(this.date, unit);
|
133
133
|
}
|
134
134
|
format(format = AXConfig.get('dateTime.shortDateFormat')) {
|
135
|
-
const re = new RegExp(
|
135
|
+
const re = new RegExp(orderBy(Object.keys(this._formatKeys), (c) => c.length, ['desc']).join('|'), 'gi');
|
136
136
|
return format.replace(re, (matched) => {
|
137
137
|
return this._formatKeys[matched]();
|
138
138
|
});
|
@@ -303,10 +303,10 @@ class AXDateTimePipe {
|
|
303
303
|
return date.format(format);
|
304
304
|
}
|
305
305
|
}
|
306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.
|
307
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
307
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimePipe, name: "axDate" }); }
|
308
308
|
}
|
309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimePipe, decorators: [{
|
310
310
|
type: Pipe,
|
311
311
|
args: [{ name: 'axDate' }]
|
312
312
|
}], ctorParameters: function () { return []; } });
|
@@ -505,6 +505,13 @@ class JalaliCalendar {
|
|
505
505
|
this.monthShortNames = 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'.split('_');
|
506
506
|
this.dayNames = 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'.split('_');
|
507
507
|
this.dayShortNames = 'ش_ی_د_س_چ_پ_ج'.split('_');
|
508
|
+
/*
|
509
|
+
Jalaali years starting the 33-year rule.
|
510
|
+
*/
|
511
|
+
this.breaks = [
|
512
|
+
-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394,
|
513
|
+
2456, 3178,
|
514
|
+
];
|
508
515
|
}
|
509
516
|
create(value) {
|
510
517
|
const a = this.toGregorian(value.year, value.month, value.date);
|
@@ -514,10 +521,10 @@ class JalaliCalendar {
|
|
514
521
|
return 'jalali';
|
515
522
|
}
|
516
523
|
dayOfMonth(date) {
|
517
|
-
return this.
|
524
|
+
return this.toJalaali(date).day;
|
518
525
|
}
|
519
526
|
dayOfYear(date) {
|
520
|
-
const j = this.
|
527
|
+
const j = this.toJalaali(date);
|
521
528
|
return (j.month <= 6 ? (j.month - 1) * 31 : 6 * 31 + (j.month - 7) * 30) + j.day;
|
522
529
|
}
|
523
530
|
dayOfWeek(date) {
|
@@ -529,10 +536,10 @@ class JalaliCalendar {
|
|
529
536
|
return Math.ceil(((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7);
|
530
537
|
}
|
531
538
|
year(date) {
|
532
|
-
return this.
|
539
|
+
return this.toJalaali(date).year;
|
533
540
|
}
|
534
541
|
monthOfYear(date) {
|
535
|
-
return this.
|
542
|
+
return this.toJalaali(date).month;
|
536
543
|
}
|
537
544
|
add(date, unit, amount) {
|
538
545
|
let value = date.valueOf();
|
@@ -589,7 +596,7 @@ class JalaliCalendar {
|
|
589
596
|
}
|
590
597
|
set(date, unit, value) {
|
591
598
|
const clone = new Date(date.valueOf());
|
592
|
-
const jDate = this.
|
599
|
+
const jDate = this.toJalaali(clone);
|
593
600
|
switch (unit) {
|
594
601
|
case 'second':
|
595
602
|
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
@@ -673,20 +680,23 @@ class JalaliCalendar {
|
|
673
680
|
case 'month': {
|
674
681
|
const jy = this.year(date);
|
675
682
|
const jm = this.monthOfYear(date);
|
676
|
-
const jd = this.
|
683
|
+
const jd = this.jalaaliMonthLength(jy, jm);
|
677
684
|
const gDate = this.toGregorian(jy, jm, jd);
|
678
685
|
return new AXDateTime(gDate, this.name()).endOf('day');
|
679
686
|
}
|
680
687
|
case 'year':
|
681
688
|
let jy = this.year(date);
|
682
|
-
const gDate = this.toGregorian(jy, 12, this.
|
689
|
+
const gDate = this.toGregorian(jy, 12, this.jalaaliMonthLength(jy, 12));
|
683
690
|
return new AXDateTime(gDate, this.name()).endOf('day');
|
684
691
|
}
|
685
692
|
}
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
693
|
+
/*
|
694
|
+
Converts a Gregorian date to Jalaali.
|
695
|
+
*/
|
696
|
+
toJalaali(date) {
|
697
|
+
let gd = date.getDate();
|
698
|
+
let gm = date.getMonth() + 1;
|
699
|
+
let gy = date.getFullYear();
|
690
700
|
const r = this.d2j(this.g2d(gy, gm, gd));
|
691
701
|
return {
|
692
702
|
year: r.jy,
|
@@ -695,47 +705,75 @@ class JalaliCalendar {
|
|
695
705
|
};
|
696
706
|
}
|
697
707
|
/*
|
698
|
-
|
699
|
-
|
708
|
+
Converts a Jalaali date to Gregorian.
|
709
|
+
*/
|
700
710
|
toGregorian(jy, jm, jd) {
|
701
711
|
const g = this.d2g(this.j2d(jy, jm, jd));
|
702
712
|
return new Date(g.gy, g.gm - 1, g.gd);
|
703
713
|
}
|
704
714
|
/*
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
return (jy >= -61 &&
|
715
|
+
Checks whether a Jalaali date is valid or not.
|
716
|
+
*/
|
717
|
+
isValidJalaaliDate(jy, jm, jd) {
|
718
|
+
return (jy >= -61 &&
|
719
|
+
jy <= 3177 &&
|
720
|
+
jm >= 1 &&
|
721
|
+
jm <= 12 &&
|
722
|
+
jd >= 1 &&
|
723
|
+
jd <= this.jalaaliMonthLength(jy, jm));
|
709
724
|
}
|
710
725
|
/*
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
return this.
|
726
|
+
Is this a leap year or not?
|
727
|
+
*/
|
728
|
+
isLeapJalaaliYear(jy) {
|
729
|
+
return this.jalCalLeap(jy) === 0;
|
715
730
|
}
|
716
731
|
/*
|
717
|
-
|
718
|
-
|
719
|
-
|
732
|
+
Number of days in a given month in a Jalaali year.
|
733
|
+
*/
|
734
|
+
jalaaliMonthLength(jy, jm) {
|
720
735
|
if (jm <= 6)
|
721
736
|
return 31;
|
722
737
|
if (jm <= 11)
|
723
738
|
return 30;
|
724
|
-
if (this.
|
739
|
+
if (this.isLeapJalaaliYear(jy))
|
725
740
|
return 30;
|
726
741
|
return 29;
|
727
742
|
}
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
743
|
+
/*
|
744
|
+
This determines if the Jalaali (Persian) year is
|
745
|
+
leap (366-day long) or is the common year (365 days)
|
746
|
+
|
747
|
+
@param jy Jalaali calendar year (-61 to 3177)
|
748
|
+
@returns number of years since the last leap year (0 to 4)
|
749
|
+
*/
|
750
|
+
jalCalLeap(jy) {
|
751
|
+
let bl = this.breaks.length, jp = this.breaks[0], jm, jump, leap, n, i;
|
752
|
+
if (jy < jp || jy >= this.breaks[bl - 1])
|
753
|
+
throw new Error('Invalid Jalaali year ' + jy);
|
754
|
+
for (i = 1; i < bl; i += 1) {
|
755
|
+
jm = this.breaks[i];
|
756
|
+
jump = jm - jp;
|
757
|
+
if (jy < jm)
|
758
|
+
break;
|
759
|
+
jp = jm;
|
760
|
+
}
|
761
|
+
n = jy - jp;
|
762
|
+
if (jump - n < 6)
|
763
|
+
n = n - jump + this.div(jump + 4, 33) * 33;
|
764
|
+
leap = this.mod(this.mod(n + 1, 33) - 1, 4);
|
765
|
+
if (leap === -1) {
|
766
|
+
leap = 4;
|
767
|
+
}
|
768
|
+
return leap;
|
769
|
+
}
|
770
|
+
jalCal(jy, withoutLeap) {
|
771
|
+
let bl = this.breaks.length, gy = jy + 621, leapJ = -14, jp = this.breaks[0], jm, jump, leap, leapG, march, n, i;
|
772
|
+
if (jy < jp || jy >= this.breaks[bl - 1])
|
735
773
|
throw new Error('Invalid Jalaali year ' + jy);
|
736
774
|
// Find the limiting years for the Jalaali year jy.
|
737
775
|
for (i = 1; i < bl; i += 1) {
|
738
|
-
jm = breaks[i];
|
776
|
+
jm = this.breaks[i];
|
739
777
|
jump = jm - jp;
|
740
778
|
if (jy < jm)
|
741
779
|
break;
|
@@ -752,6 +790,9 @@ class JalaliCalendar {
|
|
752
790
|
leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150;
|
753
791
|
// Determine the Gregorian date of Farvardin the 1st.
|
754
792
|
march = 20 + leapJ - leapG;
|
793
|
+
// return with gy and march when we don't need leap
|
794
|
+
if (withoutLeap)
|
795
|
+
return { gy: gy, march: march };
|
755
796
|
// Find how many years have passed since the last leap year.
|
756
797
|
if (jump - n < 6)
|
757
798
|
n = n - jump + this.div(jump + 4, 33) * 33;
|
@@ -765,28 +806,13 @@ class JalaliCalendar {
|
|
765
806
|
march: march,
|
766
807
|
};
|
767
808
|
}
|
768
|
-
/*
|
769
|
-
Converts a date of the Jalaali calendar to the Julian Day number.
|
770
|
-
@param jy Jalaali year (1 to 3100)
|
771
|
-
@param jm Jalaali month (1 to 12)
|
772
|
-
@param jd Jalaali day (1 to 29/31)
|
773
|
-
@return Julian Day number
|
774
|
-
*/
|
775
809
|
j2d(jy, jm, jd) {
|
776
|
-
let r = this.jalCal(jy);
|
810
|
+
let r = this.jalCal(jy, true);
|
777
811
|
return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1;
|
778
812
|
}
|
779
|
-
/*
|
780
|
-
Converts the Julian Day number to a date in the Jalaali calendar.
|
781
|
-
@param jdn Julian Day number
|
782
|
-
@return
|
783
|
-
jy: Jalaali year (1 to 3100)
|
784
|
-
jm: Jalaali month (1 to 12)
|
785
|
-
jd: Jalaali day (1 to 29/31)
|
786
|
-
*/
|
787
813
|
d2j(jdn) {
|
788
814
|
let gy = this.d2g(jdn).gy, // Calculate Gregorian year (gy).
|
789
|
-
jy = gy - 621, r = this.jalCal(jy), jdn1f = this.g2d(gy, 3, r.march), jd, jm, k;
|
815
|
+
jy = gy - 621, r = this.jalCal(jy, false), jdn1f = this.g2d(gy, 3, r.march), jd, jm, k;
|
790
816
|
// Find number of days that passed since 1 Farvardin.
|
791
817
|
k = jdn - jdn1f;
|
792
818
|
if (k >= 0) {
|
@@ -842,14 +868,27 @@ class JalaliCalendar {
|
|
842
868
|
gd: gd,
|
843
869
|
};
|
844
870
|
}
|
871
|
+
jalaaliWeek(jy, jm, jd) {
|
872
|
+
let dayOfWeek = this.jalaaliToDateObject(jy, jm, jd, 0, 0, 0, 0).getDay();
|
873
|
+
let startDayDifference = dayOfWeek == 6 ? 0 : -(dayOfWeek + 1);
|
874
|
+
let endDayDifference = 6 + startDayDifference;
|
875
|
+
return {
|
876
|
+
saturday: this.d2j(this.j2d(jy, jm, jd + startDayDifference)),
|
877
|
+
friday: this.d2j(this.j2d(jy, jm, jd + endDayDifference)),
|
878
|
+
};
|
879
|
+
}
|
880
|
+
jalaaliToDateObject(jy, jm, jd, h = 0, m = 0, s = 0, ms = 0) {
|
881
|
+
let gregorianCalenderDate = this.toGregorian(jy, jm, jd);
|
882
|
+
return new Date(gregorianCalenderDate.getFullYear(), gregorianCalenderDate.getMonth() - 1, gregorianCalenderDate.getDate(), h || 0, m || 0, s || 0, ms || 0);
|
883
|
+
}
|
845
884
|
/*
|
846
|
-
|
847
|
-
|
885
|
+
Utility helper functions.
|
886
|
+
*/
|
848
887
|
div(a, b) {
|
849
|
-
return a / b;
|
888
|
+
return ~~(a / b);
|
850
889
|
}
|
851
890
|
mod(a, b) {
|
852
|
-
return a - (a / b) * b;
|
891
|
+
return a - ~~(a / b) * b;
|
853
892
|
}
|
854
893
|
}
|
855
894
|
|
@@ -872,11 +911,11 @@ class AXDateTimeModule {
|
|
872
911
|
}
|
873
912
|
});
|
874
913
|
}
|
875
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.
|
876
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.
|
877
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.
|
914
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
915
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], exports: [AXDateTimePipe] }); }
|
916
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimeModule }); }
|
878
917
|
}
|
879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.
|
918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
880
919
|
type: NgModule,
|
881
920
|
args: [{
|
882
921
|
imports: [],
|