@acorex/core 7.3.1 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/config/lib/configs.d.ts +6 -9
  2. package/config/lib/configs.service.d.ts +6 -1
  3. package/dateTime/index.d.ts +2 -0
  4. package/dateTime/lib/calendar.service.d.ts +13 -0
  5. package/dateTime/lib/dateTime.config.d.ts +12 -0
  6. package/dateTime/lib/datetime.class.d.ts +61 -26
  7. package/dateTime/lib/datetime.module.d.ts +0 -1
  8. package/dateTime/lib/datetime.pipe.d.ts +3 -2
  9. package/dateTime/lib/georgian.calendar.d.ts +6 -6
  10. package/dateTime/lib/jalali.calendar.d.ts +7 -7
  11. package/esm2022/config/lib/configs.mjs +7 -24
  12. package/esm2022/config/lib/configs.service.mjs +20 -16
  13. package/esm2022/dateTime/index.mjs +3 -1
  14. package/esm2022/dateTime/lib/calendar.service.mjs +41 -0
  15. package/esm2022/dateTime/lib/dateTime.config.mjs +65 -0
  16. package/esm2022/dateTime/lib/datetime.class.mjs +43 -64
  17. package/esm2022/dateTime/lib/datetime.module.mjs +8 -28
  18. package/esm2022/dateTime/lib/datetime.pipe.mjs +18 -12
  19. package/esm2022/dateTime/lib/georgian.calendar.mjs +69 -72
  20. package/esm2022/dateTime/lib/jalali.calendar.mjs +50 -49
  21. package/esm2022/events/lib/event.service.mjs +3 -3
  22. package/esm2022/file/lib/file.service.mjs +3 -3
  23. package/esm2022/http/lib/http.module.mjs +4 -4
  24. package/esm2022/http/lib/http.service.mjs +3 -3
  25. package/esm2022/image/lib/image.service.mjs +3 -3
  26. package/esm2022/pipes/lib/pipes.module.mjs +4 -4
  27. package/esm2022/pipes/lib/safe.pipe.mjs +3 -3
  28. package/esm2022/platform/lib/platform.service.mjs +24 -13
  29. package/esm2022/translation/lib/translation.module.mjs +4 -4
  30. package/esm2022/translation/lib/translator.pipe.mjs +3 -3
  31. package/esm2022/types/acorex-core-types.mjs +5 -0
  32. package/esm2022/types/index.mjs +2 -0
  33. package/esm2022/utils/index.mjs +1 -2
  34. package/esm2022/utils/lib/auto-unsubscribe.mjs +3 -3
  35. package/esm2022/utils/lib/string-util.mjs +1 -1
  36. package/fesm2022/acorex-core-config.mjs +24 -39
  37. package/fesm2022/acorex-core-config.mjs.map +1 -1
  38. package/fesm2022/acorex-core-dateTime.mjs +408 -345
  39. package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
  40. package/fesm2022/acorex-core-events.mjs +3 -3
  41. package/fesm2022/acorex-core-file.mjs +3 -3
  42. package/fesm2022/acorex-core-http.mjs +7 -7
  43. package/fesm2022/acorex-core-image.mjs +3 -3
  44. package/fesm2022/acorex-core-pipes.mjs +7 -7
  45. package/fesm2022/acorex-core-platform.mjs +23 -12
  46. package/fesm2022/acorex-core-platform.mjs.map +1 -1
  47. package/fesm2022/acorex-core-translation.mjs +7 -7
  48. package/fesm2022/acorex-core-types.mjs +6 -0
  49. package/fesm2022/acorex-core-types.mjs.map +1 -0
  50. package/fesm2022/acorex-core-utils.mjs +4 -43
  51. package/fesm2022/acorex-core-utils.mjs.map +1 -1
  52. package/package.json +21 -17
  53. package/platform/lib/platform.service.d.ts +2 -1
  54. package/types/README.md +3 -0
  55. package/types/index.d.ts +2 -0
  56. package/utils/index.d.ts +0 -1
  57. package/esm2022/utils/lib/object-util.mjs +0 -39
  58. package/utils/lib/object-util.d.ts +0 -4
@@ -1,9 +1,6 @@
1
- import { Observable } from 'rxjs';
2
- export declare class AXConfig {
3
- private static dataModel;
4
- private static dataChangeSubject;
5
- static get onChange(): Observable<any>;
6
- static set(config: any): void;
7
- static set(path: string, value?: any): void;
8
- static get(path: string, defaultValue?: any): any;
9
- }
1
+ import { InjectionToken } from '@angular/core';
2
+ export type AXGlobalConfig = {
3
+ [key: string]: unknown;
4
+ };
5
+ export declare const AXGlobalDefaultConfig: AXGlobalConfig;
6
+ export declare const AX_GLOBAL_CONFIG: InjectionToken<AXGlobalConfig>;
@@ -1,7 +1,12 @@
1
+ import { Injector } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class AXConfigService {
3
4
  private injector;
4
- get<T = string>(): Promise<T>;
5
+ /**
6
+ * @ignore
7
+ */
8
+ constructor(injector: Injector);
9
+ get<T = string>(key: string, defaultValue?: T): T;
5
10
  static ɵfac: i0.ɵɵFactoryDeclaration<AXConfigService, never>;
6
11
  static ɵprov: i0.ɵɵInjectableDeclaration<AXConfigService>;
7
12
  }
@@ -1,3 +1,5 @@
1
+ export * from './lib/calendar.service';
2
+ export * from './lib/dateTime.config';
1
3
  export * from './lib/datetime.class';
2
4
  export * from './lib/datetime.module';
3
5
  export * from './lib/datetime.pipe';
@@ -0,0 +1,13 @@
1
+ import { AXCalendar, AXDateTime, AXDateValue } from './datetime.class';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AXCalendarService {
4
+ private _config;
5
+ get calendar(): AXCalendar;
6
+ create(value: AXDateValue, calendarName?: string): AXDateTime;
7
+ create(value: Date, calendarName?: string): AXDateTime;
8
+ now(calendarName?: string): AXDateTime;
9
+ resolveCalendar(name: string): AXCalendar;
10
+ convert(value: Date | AXDateTime, calendarName?: string): AXDateTime;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXCalendarService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXCalendarService>;
13
+ }
@@ -0,0 +1,12 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { AXCalendar } from './datetime.class';
3
+ export interface AXDateTimeConfig {
4
+ calendar: string;
5
+ calendars: {
6
+ [key: string]: AXCalendar;
7
+ };
8
+ }
9
+ export declare const AX_DATETIME_CONFIG: InjectionToken<AXDateTimeConfig>;
10
+ export declare const AXDateTimeDefaultConfig: AXDateTimeConfig;
11
+ export type PartialDateTimeConfig = Partial<AXDateTimeConfig>;
12
+ export declare function dateTimeConfig(config?: PartialDateTimeConfig): AXDateTimeConfig;
@@ -7,35 +7,72 @@ export interface AXDateValue {
7
7
  minutes?: number;
8
8
  seconds?: number;
9
9
  ms?: number;
10
- calendar: string;
11
10
  }
12
- export interface AXCalendar {
13
- monthNames: string[];
14
- monthShortNames: string[];
15
- dayNames: string[];
16
- dayShortNames: string[];
17
- name(): string;
18
- dayOfMonth(date: Date): number;
19
- dayOfYear(date: Date): number;
20
- dayOfWeek(date: Date): number;
21
- monthOfYear(date: Date): number;
22
- weekOfYear(date: Date): number;
23
- year(date: Date): number;
24
- add(date: Date, unit: TimeUnit, amount: number): AXDateTime;
25
- set(date: Date, unit: TimeUnit, value: number): AXDateTime;
26
- startOf(date: Date, unit: TimeUnit): AXDateTime;
27
- endOf(date: Date, unit: TimeUnit): AXDateTime;
28
- create(value: AXDateValue): AXDateTime;
11
+ export interface AXDateTimeDisplayFormats {
12
+ dateInput: string;
13
+ timeInput: string;
14
+ dateTimeInput: string;
15
+ dateDisplay: string;
16
+ timeDisplay: string;
17
+ dateTimeDisplay: string;
18
+ }
19
+ export type AXDateTimeUnitNames = {
20
+ long: string;
21
+ short: string;
22
+ letter: string;
23
+ }[];
24
+ export type AXDateTimePart = {
25
+ key: string;
26
+ placeholder: string;
27
+ placeholders: string[];
28
+ typedValue?: string | null;
29
+ default: number;
30
+ enabled: boolean;
31
+ realValue: () => string;
32
+ };
33
+ export type AXDateTimeParts = {
34
+ year: AXDateTimePart;
35
+ month: AXDateTimePart;
36
+ day: AXDateTimePart;
37
+ hour: AXDateTimePart;
38
+ minute: AXDateTimePart;
39
+ second: AXDateTimePart;
40
+ };
41
+ export interface AXCalendarConfig {
42
+ weekend: number[];
43
+ formats: AXDateTimeDisplayFormats;
44
+ dayNames: AXDateTimeUnitNames;
45
+ monthNames: AXDateTimeUnitNames;
46
+ }
47
+ export declare abstract class AXCalendar {
48
+ private _config;
49
+ /**
50
+ * @ignore
51
+ */
52
+ constructor(config: AXCalendarConfig);
53
+ get weekend(): number[];
54
+ get formats(): AXDateTimeDisplayFormats;
55
+ get dayNames(): AXDateTimeUnitNames;
56
+ get monthNames(): AXDateTimeUnitNames;
57
+ abstract name(): string;
58
+ abstract dayOfMonth(date: Date): number;
59
+ abstract dayOfYear(date: Date): number;
60
+ abstract dayOfWeek(date: Date): number;
61
+ abstract monthOfYear(date: Date): number;
62
+ abstract weekOfYear(date: Date): number;
63
+ abstract year(date: Date): number;
64
+ abstract add(date: Date, unit: TimeUnit, amount: number): AXDateTime;
65
+ abstract set(date: Date, unit: TimeUnit, value: number): AXDateTime;
66
+ abstract startOf(date: Date, unit: TimeUnit): AXDateTime;
67
+ abstract endOf(date: Date, unit: TimeUnit): AXDateTime;
68
+ abstract create(value: AXDateValue): AXDateTime;
29
69
  }
30
70
  export declare class AXDateTime {
31
- static convert(value: Date | AXDateTime | string, calendar?: string): AXDateTime;
32
- static from(value?: AXDateValue): AXDateTime;
33
- static resolveCalendar(calendar: string | AXCalendar): AXCalendar;
34
71
  private _date;
35
72
  get date(): Date;
36
73
  private _calendar;
37
74
  get calendar(): AXCalendar;
38
- constructor(value?: Date | string, calendar?: string | AXCalendar);
75
+ constructor(value: Date, calendar: AXCalendar);
39
76
  clone(): AXDateTime;
40
77
  get dayOfMonth(): number;
41
78
  get dayOfYear(): number;
@@ -49,21 +86,20 @@ export declare class AXDateTime {
49
86
  get month(): AXCalendarMonth;
50
87
  add(unit: TimeUnit, amount: number): AXDateTime;
51
88
  set(unit: TimeUnit, value: number): AXDateTime;
52
- duration(end: Date | AXDateTime, unit?: TimeUnit): AXTimeSpan;
89
+ duration(end: Date | AXDateTime): AXTimeSpan;
53
90
  startOf(unit?: TimeUnit): AXDateTime;
54
91
  endOf(unit?: TimeUnit): AXDateTime;
55
92
  private _formatKeys;
56
93
  format(format?: string): string;
57
94
  private pad;
58
- toString(format?: string): string;
59
95
  equal(value: Date | AXDateTime, unit?: TimeUnit): boolean;
60
96
  compare(value: Date | AXDateTime, unit?: TimeUnit): number;
61
- convert(calendar: string): AXDateTime;
62
97
  }
63
98
  export declare class AXCalendarMonth {
64
99
  private _range;
65
100
  get range(): AXDateTimeRange;
66
101
  set range(v: AXDateTimeRange);
102
+ get totalDays(): number;
67
103
  constructor(date: AXDateTime);
68
104
  private readonly index;
69
105
  private readonly name;
@@ -96,5 +132,4 @@ export declare class AXDateTimeRange {
96
132
  constructor(startTime: AXDateTime, endTime: AXDateTime);
97
133
  duration(): AXTimeSpan;
98
134
  enumurate(unit?: TimeUnit, amount?: number): AXDateTime[];
99
- includes(value: AXDateTime, unit?: TimeUnit): boolean;
100
135
  }
@@ -1,7 +1,6 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./datetime.pipe";
3
3
  export declare class AXDateTimeModule {
4
- constructor();
5
4
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDateTimeModule, never>;
6
5
  static ɵmod: i0.ɵɵNgModuleDeclaration<AXDateTimeModule, [typeof i1.AXDateTimePipe], never, [typeof i1.AXDateTimePipe]>;
7
6
  static ɵinj: i0.ɵɵInjectorDeclaration<AXDateTimeModule>;
@@ -1,8 +1,9 @@
1
1
  import { PipeTransform } from '@angular/core';
2
+ import { AXDateTime } from './datetime.class';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class AXDateTimePipe implements PipeTransform {
4
- constructor();
5
- transform(value: any, format?: string, calendar?: string): string;
5
+ private _calendarService;
6
+ transform(value: Date | AXDateTime, format?: string, calendarName?: string): string;
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDateTimePipe, never>;
7
8
  static ɵpipe: i0.ɵɵPipeDeclaration<AXDateTimePipe, "axDate", false>;
8
9
  }
@@ -1,9 +1,9 @@
1
- import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from "./datetime.class";
2
- export declare class GeorgianCalendar implements AXCalendar {
3
- monthNames: string[];
4
- monthShortNames: string[];
5
- dayNames: string[];
6
- dayShortNames: string[];
1
+ import { AXCalendar, AXCalendarConfig, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';
2
+ export declare class GeorgianCalendar extends AXCalendar {
3
+ /**
4
+ * @ignore
5
+ */
6
+ constructor(config: AXCalendarConfig);
7
7
  create(value: AXDateValue): AXDateTime;
8
8
  name(): string;
9
9
  dayOfMonth(date: Date): number;
@@ -1,10 +1,10 @@
1
- import { AXCalendar, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';
2
- export declare class JalaliCalendar implements AXCalendar {
3
- monthNames: string[];
4
- monthShortNames: string[];
5
- dayNames: string[];
6
- dayShortNames: string[];
7
- breaks: number[];
1
+ import { AXCalendar, AXCalendarConfig, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';
2
+ export declare class JalaliCalendar extends AXCalendar {
3
+ /**
4
+ * @ignore
5
+ */
6
+ constructor(config: AXCalendarConfig);
7
+ private breaks;
8
8
  create(value: AXDateValue): AXDateTime;
9
9
  name(): string;
10
10
  dayOfMonth(date: Date): number;
@@ -1,24 +1,7 @@
1
- import { get, set, merge } from 'lodash-es';
2
- import { Subject } from 'rxjs';
3
- // @dynamic
4
- export class AXConfig {
5
- static { this.dataModel = {}; }
6
- static { this.dataChangeSubject = new Subject(); }
7
- static get onChange() {
8
- return AXConfig.dataChangeSubject.asObservable();
9
- }
10
- static set(arg1, arg2) {
11
- if (arg1 && typeof arg1 == 'string') {
12
- set(AXConfig.dataModel, arg1, arg2);
13
- AXConfig.dataChangeSubject.next(AXConfig.dataModel);
14
- }
15
- if (arg1 && typeof arg1 == 'object') {
16
- merge(AXConfig.dataModel, arg1);
17
- AXConfig.dataChangeSubject.next(AXConfig.dataModel);
18
- }
19
- }
20
- static get(path, defaultValue) {
21
- return get(AXConfig.dataModel, path, defaultValue);
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9jb25maWcvc3JjL2xpYi9jb25maWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNDLFdBQVc7QUFDWCxNQUFNLE9BQU8sUUFBUTthQUNKLGNBQVMsR0FBUSxFQUFFLENBQUM7YUFDcEIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUV0RCxNQUFNLEtBQUssUUFBUTtRQUNqQixPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBSUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFVLEVBQUUsSUFBVTtRQUMvQixJQUFJLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDbkMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ25DLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBWSxFQUFFLFlBQWtCO1FBQ3pDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQsIHNldCwgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFYQ29uZmlnIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZGF0YU1vZGVsOiBhbnkgPSB7fTtcbiAgcHJpdmF0ZSBzdGF0aWMgZGF0YUNoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgc3RhdGljIGdldCBvbkNoYW5nZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBBWENvbmZpZy5kYXRhQ2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHN0YXRpYyBzZXQoY29uZmlnOiBhbnkpOiB2b2lkO1xuICBzdGF0aWMgc2V0KHBhdGg6IHN0cmluZywgdmFsdWU/OiBhbnkpOiB2b2lkO1xuICBzdGF0aWMgc2V0KGFyZzE/OiBhbnksIGFyZzI/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoYXJnMSAmJiB0eXBlb2YgYXJnMSA9PSAnc3RyaW5nJykge1xuICAgICAgc2V0KEFYQ29uZmlnLmRhdGFNb2RlbCwgYXJnMSwgYXJnMik7XG4gICAgICBBWENvbmZpZy5kYXRhQ2hhbmdlU3ViamVjdC5uZXh0KEFYQ29uZmlnLmRhdGFNb2RlbCk7XG4gICAgfVxuICAgIGlmIChhcmcxICYmIHR5cGVvZiBhcmcxID09ICdvYmplY3QnKSB7XG4gICAgICBtZXJnZShBWENvbmZpZy5kYXRhTW9kZWwsIGFyZzEpO1xuICAgICAgQVhDb25maWcuZGF0YUNoYW5nZVN1YmplY3QubmV4dChBWENvbmZpZy5kYXRhTW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXQocGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBnZXQoQVhDb25maWcuZGF0YU1vZGVsLCBwYXRoLCBkZWZhdWx0VmFsdWUpO1xuICB9XG59XG4iXX0=
1
+ import { InjectionToken } from '@angular/core';
2
+ export const AXGlobalDefaultConfig = {};
3
+ export const AX_GLOBAL_CONFIG = new InjectionToken('AX_GLOBAL_CONFIG', {
4
+ providedIn: 'root',
5
+ factory: () => AXGlobalDefaultConfig
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9jb25maWcvc3JjL2xpYi9jb25maWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW1CLEVBRXBELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsa0JBQWtCLEVBQUU7SUFDckYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFCQUFxQjtDQUNyQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWEdsb2JhbENvbmZpZyA9IHtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYR2xvYmFsRGVmYXVsdENvbmZpZzogQVhHbG9iYWxDb25maWcgPSB7XG5cbn07XG5cbmV4cG9ydCBjb25zdCBBWF9HTE9CQUxfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYR2xvYmFsQ29uZmlnPignQVhfR0xPQkFMX0NPTkZJRycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBBWEdsb2JhbERlZmF1bHRDb25maWdcbn0pO1xuIl19
@@ -1,23 +1,27 @@
1
- import { EnvironmentInjector, Injectable, InjectionToken, inject, runInInjectionContext } from '@angular/core';
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { AX_GLOBAL_CONFIG } from './configs';
3
+ import { get } from 'lodash-es';
2
4
  import * as i0 from "@angular/core";
3
5
  export class AXConfigService {
4
- constructor() {
5
- this.injector = inject(EnvironmentInjector);
6
+ /**
7
+ * @ignore
8
+ */
9
+ constructor(injector) {
10
+ this.injector = injector;
6
11
  }
7
- async get() {
8
- return new Promise((resolve) => {
9
- runInInjectionContext(this.injector, () => {
10
- debugger;
11
- const v = inject(new InjectionToken("AX_TOAST_CONFIG"));
12
- resolve(v.gap);
13
- });
14
- });
12
+ get(key, defaultValue) {
13
+ const v1 = this.injector.get(AX_GLOBAL_CONFIG);
14
+ const parts = key.split('.');
15
+ const tokenName = parts.slice(0, parts.length - 1).join('.');
16
+ const providerToken = get(v1, tokenName);
17
+ const v2 = this.injector.get(providerToken);
18
+ return get(v2, parts[parts.length - 1], defaultValue);
15
19
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXConfigService, providedIn: 'root' }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXConfigService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXConfigService, providedIn: 'root' }); }
18
22
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXConfigService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXConfigService, decorators: [{
20
24
  type: Injectable,
21
25
  args: [{ providedIn: 'root' }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2NvbmZpZy9zcmMvbGliL2NvbmZpZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRy9HLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBR1ksYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBYWxEO0lBVlUsS0FBSyxDQUFDLEdBQUc7UUFDWixPQUFPLElBQUksT0FBTyxDQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUIscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQTtnQkFDUixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQVMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLENBQUUsQ0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWJRLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ29uZmlnU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0PFQgPSBzdHJpbmc+KCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8VD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVidWdnZXJcbiAgICAgICAgICAgICAgICBjb25zdCB2ID0gaW5qZWN0KG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFwiQVhfVE9BU1RfQ09ORklHXCIpKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCh2IGFzIGFueSkuZ2FwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbn0iXX0=
26
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2NvbmZpZy9zcmMvbGliL2NvbmZpZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBR2hDLE1BQU0sT0FBTyxlQUFlO0lBRXhCOztPQUVHO0lBQ0gsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUV0QyxDQUFDO0lBRU0sR0FBRyxDQUFhLEdBQVcsRUFBRSxZQUFnQjtRQUNoRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUF3QyxDQUFDLENBQUM7UUFDdkUsT0FBTyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBaEJRLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhfR0xPQkFMX0NPTkZJRyB9IGZyb20gJy4vY29uZmlncyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ29uZmlnU2VydmljZSB7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQ8VCA9IHN0cmluZz4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpIHtcbiAgICAgICAgY29uc3QgdjEgPSB0aGlzLmluamVjdG9yLmdldChBWF9HTE9CQUxfQ09ORklHKTtcbiAgICAgICAgY29uc3QgcGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgdG9rZW5OYW1lID0gcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMSkuam9pbignLicpO1xuICAgICAgICBjb25zdCBwcm92aWRlclRva2VuID0gZ2V0KHYxLCB0b2tlbk5hbWUpO1xuICAgICAgICBjb25zdCB2MiA9IHRoaXMuaW5qZWN0b3IuZ2V0KHByb3ZpZGVyVG9rZW4gYXMgSW5qZWN0aW9uVG9rZW48dW5rbm93bj4pO1xuICAgICAgICByZXR1cm4gZ2V0KHYyLCBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSwgZGVmYXVsdFZhbHVlKTtcbiAgICB9XG5cbn0iXX0=
@@ -1,6 +1,8 @@
1
+ export * from './lib/calendar.service';
2
+ export * from './lib/dateTime.config';
1
3
  export * from './lib/datetime.class';
2
4
  export * from './lib/datetime.module';
3
5
  export * from './lib/datetime.pipe';
4
6
  export * from './lib/georgian.calendar';
5
7
  export * from './lib/jalali.calendar';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZVRpbWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGV0aW1lLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGV0aW1lLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRldGltZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dlb3JnaWFuLmNhbGVuZGFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2phbGFsaS5jYWxlbmRhcic7XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZVRpbWUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jYWxlbmRhci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGVUaW1lLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRldGltZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRldGltZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXRpbWUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nZW9yZ2lhbi5jYWxlbmRhcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9qYWxhbGkuY2FsZW5kYXInO1xuIl19
@@ -0,0 +1,41 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { AXDateTime } from './datetime.class';
3
+ import { AX_DATETIME_CONFIG } from './dateTime.config';
4
+ import * as i0 from "@angular/core";
5
+ export class AXCalendarService {
6
+ constructor() {
7
+ this._config = inject(AX_DATETIME_CONFIG);
8
+ }
9
+ get calendar() {
10
+ return this._config.calendars[this._config.calendar];
11
+ }
12
+ create(value, calendarName) {
13
+ const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;
14
+ if (value instanceof Date) {
15
+ return new AXDateTime(value, calendar);
16
+ }
17
+ else if (value?.year && value?.month) {
18
+ return calendar.create(value);
19
+ }
20
+ return this.now();
21
+ }
22
+ now(calendarName) {
23
+ const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;
24
+ return new AXDateTime(new Date(), calendar);
25
+ }
26
+ resolveCalendar(name) {
27
+ return this._config.calendars[name];
28
+ }
29
+ convert(value, calendarName) {
30
+ const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;
31
+ const date = value instanceof AXDateTime ? value.date : value;
32
+ return new AXDateTime(date, calendar);
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService, providedIn: 'root' }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXCalendarService, decorators: [{
38
+ type: Injectable,
39
+ args: [{ providedIn: 'root' }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9kYXRlVGltZS9zcmMvbGliL2NhbGVuZGFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBZSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZFLE9BQU8sRUFBb0Isa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHekUsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUdZLFlBQU8sR0FBcUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FrQ2xFO0lBaENHLElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBSU0sTUFBTSxDQUFDLEtBQXlCLEVBQUUsWUFBcUI7UUFDMUQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25GLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN2QixPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztTQUMxQzthQUNJLElBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ2xDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFvQixDQUFDLENBQUE7U0FDL0M7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUNyQixDQUFDO0lBRU0sR0FBRyxDQUFDLFlBQXFCO1FBQzVCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuRixPQUFPLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUF3QixFQUFFLFlBQXFCO1FBQzFELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuRixNQUFNLElBQUksR0FBRyxLQUFLLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFhLENBQUM7UUFDdEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FsQ1EsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDYWxlbmRhciwgQVhEYXRlVGltZSwgQVhEYXRlVmFsdWUgfSBmcm9tICcuL2RhdGV0aW1lLmNsYXNzJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVDb25maWcsIEFYX0RBVEVUSU1FX0NPTkZJRyB9IGZyb20gJy4vZGF0ZVRpbWUuY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWENhbGVuZGFyU2VydmljZSB7XG5cbiAgICBwcml2YXRlIF9jb25maWc6IEFYRGF0ZVRpbWVDb25maWcgPSBpbmplY3QoQVhfREFURVRJTUVfQ09ORklHKTtcblxuICAgIHB1YmxpYyBnZXQgY2FsZW5kYXIoKTogQVhDYWxlbmRhciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuY2FsZW5kYXJzW3RoaXMuX2NvbmZpZy5jYWxlbmRhcl07XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZSh2YWx1ZTogQVhEYXRlVmFsdWUsIGNhbGVuZGFyTmFtZT86IHN0cmluZyk6IEFYRGF0ZVRpbWU7XG4gICAgcHVibGljIGNyZWF0ZSh2YWx1ZTogRGF0ZSwgY2FsZW5kYXJOYW1lPzogc3RyaW5nKTogQVhEYXRlVGltZTtcbiAgICBwdWJsaWMgY3JlYXRlKHZhbHVlOiBBWERhdGVWYWx1ZSB8IERhdGUsIGNhbGVuZGFyTmFtZT86IHN0cmluZyk6IEFYRGF0ZVRpbWUge1xuICAgICAgICBjb25zdCBjYWxlbmRhciA9IGNhbGVuZGFyTmFtZSA/IHRoaXMucmVzb2x2ZUNhbGVuZGFyKGNhbGVuZGFyTmFtZSkgOiB0aGlzLmNhbGVuZGFyO1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUodmFsdWUsIGNhbGVuZGFyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZT8ueWVhciAmJiB2YWx1ZT8ubW9udGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxlbmRhci5jcmVhdGUodmFsdWUgYXMgQVhEYXRlVmFsdWUpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubm93KClcbiAgICB9XG5cbiAgICBwdWJsaWMgbm93KGNhbGVuZGFyTmFtZT86IHN0cmluZyk6IEFYRGF0ZVRpbWUge1xuICAgICAgICBjb25zdCBjYWxlbmRhciA9IGNhbGVuZGFyTmFtZSA/IHRoaXMucmVzb2x2ZUNhbGVuZGFyKGNhbGVuZGFyTmFtZSkgOiB0aGlzLmNhbGVuZGFyO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgY2FsZW5kYXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQ2FsZW5kYXIobmFtZTogc3RyaW5nKTogQVhDYWxlbmRhciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuY2FsZW5kYXJzW25hbWVdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0KHZhbHVlOiBEYXRlIHwgQVhEYXRlVGltZSwgY2FsZW5kYXJOYW1lPzogc3RyaW5nKTogQVhEYXRlVGltZSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyID0gY2FsZW5kYXJOYW1lID8gdGhpcy5yZXNvbHZlQ2FsZW5kYXIoY2FsZW5kYXJOYW1lKSA6IHRoaXMuY2FsZW5kYXI7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUgPyB2YWx1ZS5kYXRlIDogdmFsdWUgYXMgRGF0ZTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGRhdGUsIGNhbGVuZGFyKTtcbiAgICB9XG5cbn0iXX0=
@@ -0,0 +1,65 @@
1
+ import { InjectionToken, inject } from '@angular/core';
2
+ import { set } from 'lodash-es';
3
+ import { AX_GLOBAL_CONFIG } from '@acorex/core/config';
4
+ import { JalaliCalendar } from './jalali.calendar';
5
+ import { GeorgianCalendar } from './georgian.calendar';
6
+ export const AX_DATETIME_CONFIG = new InjectionToken('AX_DATETIME_CONFIG', {
7
+ providedIn: 'root',
8
+ factory: () => {
9
+ const global = inject(AX_GLOBAL_CONFIG);
10
+ set(global, "dateTime", AX_DATETIME_CONFIG);
11
+ return AXDateTimeDefaultConfig;
12
+ },
13
+ });
14
+ export const AXDateTimeDefaultConfig = {
15
+ calendar: 'georgian',
16
+ calendars: {
17
+ "georgian": new GeorgianCalendar({
18
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'].map(d => ({ long: d, short: d.substring(0, 3), letter: d[0] })),
19
+ monthNames: [
20
+ 'January',
21
+ 'February',
22
+ 'March',
23
+ 'April',
24
+ 'May',
25
+ 'June',
26
+ 'July',
27
+ 'August',
28
+ 'September',
29
+ 'October',
30
+ 'November',
31
+ 'December',
32
+ ].map(d => ({ long: d, short: d.substring(0, 3), letter: d[0] })),
33
+ weekend: [6, 7],
34
+ formats: {
35
+ dateInput: "yyyy/MM/dd",
36
+ timeInput: "HH:mm",
37
+ dateTimeInput: "yyyy/MM/dd HH:mm",
38
+ dateDisplay: "DDDD, d MMM yyyy",
39
+ timeDisplay: "HH:mm",
40
+ dateTimeDisplay: "DDDD, d MMM yyyy HH:mm"
41
+ }
42
+ }),
43
+ "jalali": new JalaliCalendar({
44
+ monthNames: 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'.split('_').map(d => ({ long: d, short: d, letter: d[0] })),
45
+ dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'.split('_').map(d => ({ long: d, short: d[0], letter: d[0] })),
46
+ weekend: [7, 1],
47
+ formats: {
48
+ dateInput: "yyyy/MM/dd",
49
+ timeInput: "HH:mm",
50
+ dateTimeInput: "yyyy/MM/dd HH:mm",
51
+ dateDisplay: "DDDD, d MMM yyyy",
52
+ timeDisplay: "HH:mm",
53
+ dateTimeDisplay: "DDDD, d MMM yyyy HH:mm"
54
+ }
55
+ })
56
+ }
57
+ };
58
+ export function dateTimeConfig(config = {}) {
59
+ const result = {
60
+ ...AXDateTimeDefaultConfig,
61
+ ...config,
62
+ };
63
+ return result;
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVRpbWUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGVUaW1lL3NyYy9saWIvZGF0ZVRpbWUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVXZELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNoRCxvQkFBb0IsRUFDcEI7SUFDSSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM1QyxPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7Q0FDSixDQUNKLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBcUI7SUFDckQsUUFBUSxFQUFFLFVBQVU7SUFDcEIsU0FBUyxFQUFFO1FBQ1AsVUFBVSxFQUFFLElBQUksZ0JBQWdCLENBQUM7WUFDN0IsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hKLFVBQVUsRUFBRTtnQkFDUixTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsT0FBTztnQkFDUCxPQUFPO2dCQUNQLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixNQUFNO2dCQUNOLFFBQVE7Z0JBQ1IsV0FBVztnQkFDWCxTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsVUFBVTthQUNiLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZixPQUFPLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLFNBQVMsRUFBRSxPQUFPO2dCQUNsQixhQUFhLEVBQUUsa0JBQWtCO2dCQUNqQyxXQUFXLEVBQUUsa0JBQWtCO2dCQUMvQixXQUFXLEVBQUUsT0FBTztnQkFDcEIsZUFBZSxFQUFFLHdCQUF3QjthQUM1QztTQUNKLENBQUM7UUFDRixRQUFRLEVBQUUsSUFBSSxjQUFjLENBQ3hCO1lBQ0ksVUFBVSxFQUFFLG9FQUFvRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNJLFFBQVEsRUFBRSxtREFBbUQsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzSCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsT0FBTyxFQUFFO2dCQUNMLFNBQVMsRUFBRSxZQUFZO2dCQUN2QixTQUFTLEVBQUUsT0FBTztnQkFDbEIsYUFBYSxFQUFFLGtCQUFrQjtnQkFDakMsV0FBVyxFQUFFLGtCQUFrQjtnQkFDL0IsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLGVBQWUsRUFBRSx3QkFBd0I7YUFDNUM7U0FDSixDQUNKO0tBQ0o7Q0FDSixDQUFDO0FBS0YsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFnQyxFQUFFO0lBQzdELE1BQU0sTUFBTSxHQUFHO1FBQ1gsR0FBRyx1QkFBdUI7UUFDMUIsR0FBRyxNQUFNO0tBQ1osQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhfR0xPQkFMX0NPTkZJRyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgQVhDYWxlbmRhciB9IGZyb20gJy4vZGF0ZXRpbWUuY2xhc3MnO1xuaW1wb3J0IHsgSmFsYWxpQ2FsZW5kYXIgfSBmcm9tICcuL2phbGFsaS5jYWxlbmRhcic7XG5pbXBvcnQgeyBHZW9yZ2lhbkNhbGVuZGFyIH0gZnJvbSAnLi9nZW9yZ2lhbi5jYWxlbmRhcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGVUaW1lQ29uZmlnIHtcbiAgICBjYWxlbmRhcjogc3RyaW5nLFxuICAgIGNhbGVuZGFyczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBWENhbGVuZGFyXG4gICAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IEFYX0RBVEVUSU1FX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWERhdGVUaW1lQ29uZmlnPihcbiAgICAnQVhfREFURVRJTUVfQ09ORklHJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ2xvYmFsID0gaW5qZWN0KEFYX0dMT0JBTF9DT05GSUcpO1xuICAgICAgICAgICAgc2V0KGdsb2JhbCwgXCJkYXRlVGltZVwiLCBBWF9EQVRFVElNRV9DT05GSUcpO1xuICAgICAgICAgICAgcmV0dXJuIEFYRGF0ZVRpbWVEZWZhdWx0Q29uZmlnO1xuICAgICAgICB9LFxuICAgIH1cbik7XG5cblxuZXhwb3J0IGNvbnN0IEFYRGF0ZVRpbWVEZWZhdWx0Q29uZmlnOiBBWERhdGVUaW1lQ29uZmlnID0ge1xuICAgIGNhbGVuZGFyOiAnZ2VvcmdpYW4nLFxuICAgIGNhbGVuZGFyczoge1xuICAgICAgICBcImdlb3JnaWFuXCI6IG5ldyBHZW9yZ2lhbkNhbGVuZGFyKHtcbiAgICAgICAgICAgIGRheU5hbWVzOiBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5J10ubWFwKGQgPT4gKHsgbG9uZzogZCwgc2hvcnQ6IGQuc3Vic3RyaW5nKDAsIDMpLCBsZXR0ZXI6IGRbMF0gfSkpLFxuICAgICAgICAgICAgbW9udGhOYW1lczogW1xuICAgICAgICAgICAgICAgICdKYW51YXJ5JyxcbiAgICAgICAgICAgICAgICAnRmVicnVhcnknLFxuICAgICAgICAgICAgICAgICdNYXJjaCcsXG4gICAgICAgICAgICAgICAgJ0FwcmlsJyxcbiAgICAgICAgICAgICAgICAnTWF5JyxcbiAgICAgICAgICAgICAgICAnSnVuZScsXG4gICAgICAgICAgICAgICAgJ0p1bHknLFxuICAgICAgICAgICAgICAgICdBdWd1c3QnLFxuICAgICAgICAgICAgICAgICdTZXB0ZW1iZXInLFxuICAgICAgICAgICAgICAgICdPY3RvYmVyJyxcbiAgICAgICAgICAgICAgICAnTm92ZW1iZXInLFxuICAgICAgICAgICAgICAgICdEZWNlbWJlcicsXG4gICAgICAgICAgICBdLm1hcChkID0+ICh7IGxvbmc6IGQsIHNob3J0OiBkLnN1YnN0cmluZygwLCAzKSwgbGV0dGVyOiBkWzBdIH0pKSxcbiAgICAgICAgICAgIHdlZWtlbmQ6IFs2LCA3XSxcbiAgICAgICAgICAgIGZvcm1hdHM6IHtcbiAgICAgICAgICAgICAgICBkYXRlSW5wdXQ6IFwieXl5eS9NTS9kZFwiLFxuICAgICAgICAgICAgICAgIHRpbWVJbnB1dDogXCJISDptbVwiLFxuICAgICAgICAgICAgICAgIGRhdGVUaW1lSW5wdXQ6IFwieXl5eS9NTS9kZCBISDptbVwiLFxuICAgICAgICAgICAgICAgIGRhdGVEaXNwbGF5OiBcIkREREQsIGQgTU1NIHl5eXlcIixcbiAgICAgICAgICAgICAgICB0aW1lRGlzcGxheTogXCJISDptbVwiLFxuICAgICAgICAgICAgICAgIGRhdGVUaW1lRGlzcGxheTogXCJERERELCBkIE1NTSB5eXl5IEhIOm1tXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIFwiamFsYWxpXCI6IG5ldyBKYWxhbGlDYWxlbmRhcihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtb250aE5hbWVzOiAn2YHYsdmI2LHYr9uM2YZf2KfYsdiv24zYqNmH2LTYql/Yrtix2K/Yp9ivX9iq24zYsV/Zhdix2K/Yp9ivX9i02YfYsduM2YjYsV/ZhdmH2LFf2KLYqNin2YZf2KLYsNixX9iv24xf2KjZh9mF2YZf2KfYs9mB2YbYrycuc3BsaXQoJ18nKS5tYXAoZCA9PiAoeyBsb25nOiBkLCBzaG9ydDogZCwgbGV0dGVyOiBkWzBdIH0pKSxcbiAgICAgICAgICAgICAgICBkYXlOYW1lczogJ9i02YbYqNmHX9uM2qnYtNmG2KjZh1/Yr9mI2LTZhtio2Ydf2LPZhyDYtNmG2KjZh1/ahtmH2KfYsdi02YbYqNmHX9m+2YbYrCDYtNmG2KjZh1/YrNmF2LnZhycuc3BsaXQoJ18nKS5tYXAoZCA9PiAoeyBsb25nOiBkLCBzaG9ydDogZFswXSwgbGV0dGVyOiBkWzBdIH0pKSxcbiAgICAgICAgICAgICAgICB3ZWVrZW5kOiBbNywgMV0sXG4gICAgICAgICAgICAgICAgZm9ybWF0czoge1xuICAgICAgICAgICAgICAgICAgICBkYXRlSW5wdXQ6IFwieXl5eS9NTS9kZFwiLFxuICAgICAgICAgICAgICAgICAgICB0aW1lSW5wdXQ6IFwiSEg6bW1cIixcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVRpbWVJbnB1dDogXCJ5eXl5L01NL2RkIEhIOm1tXCIsXG4gICAgICAgICAgICAgICAgICAgIGRhdGVEaXNwbGF5OiBcIkREREQsIGQgTU1NIHl5eXlcIixcbiAgICAgICAgICAgICAgICAgICAgdGltZURpc3BsYXk6IFwiSEg6bW1cIixcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVRpbWVEaXNwbGF5OiBcIkREREQsIGQgTU1NIHl5eXkgSEg6bW1cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cbn07XG5cblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lQ29uZmlnKGNvbmZpZzogUGFydGlhbERhdGVUaW1lQ29uZmlnID0ge30pOiBBWERhdGVUaW1lQ29uZmlnIHtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIC4uLkFYRGF0ZVRpbWVEZWZhdWx0Q29uZmlnLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0XG59Il19