@acorex/core 18.16.0-next.8 → 19.0.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.
Files changed (120) hide show
  1. package/fesm2022/acorex-core-config.mjs +3 -3
  2. package/fesm2022/acorex-core-date-time.mjs +23 -20
  3. package/fesm2022/acorex-core-date-time.mjs.map +1 -1
  4. package/fesm2022/acorex-core-events.mjs +3 -3
  5. package/fesm2022/acorex-core-file.mjs +10 -10
  6. package/fesm2022/acorex-core-format.mjs +17 -16
  7. package/fesm2022/acorex-core-format.mjs.map +1 -1
  8. package/fesm2022/acorex-core-image.mjs +3 -3
  9. package/fesm2022/acorex-core-network.mjs +3 -3
  10. package/fesm2022/acorex-core-pipes.mjs +3 -3
  11. package/fesm2022/acorex-core-platform.mjs +3 -3
  12. package/fesm2022/acorex-core-storage.mjs +9 -9
  13. package/fesm2022/acorex-core-translation.mjs +27 -27
  14. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  15. package/fesm2022/acorex-core-utils.mjs +12 -11
  16. package/fesm2022/acorex-core-utils.mjs.map +1 -1
  17. package/fesm2022/acorex-core-validation.mjs +40 -40
  18. package/package.json +3 -37
  19. package/esm2022/acorex-core.mjs +0 -5
  20. package/esm2022/common/acorex-core-common.mjs +0 -5
  21. package/esm2022/common/countries/countries.data.mjs +0 -2640
  22. package/esm2022/common/countries/country.mjs +0 -2
  23. package/esm2022/common/index.mjs +0 -3
  24. package/esm2022/config/acorex-core-config.mjs +0 -5
  25. package/esm2022/config/index.mjs +0 -3
  26. package/esm2022/config/lib/configs.mjs +0 -7
  27. package/esm2022/config/lib/configs.service.mjs +0 -27
  28. package/esm2022/date-time/acorex-core-date-time.mjs +0 -5
  29. package/esm2022/date-time/index.mjs +0 -11
  30. package/esm2022/date-time/lib/calendar.service.mjs +0 -93
  31. package/esm2022/date-time/lib/dateTime.config.mjs +0 -50
  32. package/esm2022/date-time/lib/datetime.class.mjs +0 -337
  33. package/esm2022/date-time/lib/datetime.module.mjs +0 -28
  34. package/esm2022/date-time/lib/datetime.pipe.mjs +0 -29
  35. package/esm2022/date-time/lib/formatters/datetime-formatter.mjs +0 -38
  36. package/esm2022/date-time/lib/formatters/time-duration-formatter.mjs +0 -52
  37. package/esm2022/date-time/lib/formatters/timeleft-formatter.mjs +0 -90
  38. package/esm2022/date-time/lib/georgian.calendar.mjs +0 -198
  39. package/esm2022/date-time/lib/holidays.loader.mjs +0 -13
  40. package/esm2022/date-time/lib/jalali.calendar.mjs +0 -417
  41. package/esm2022/events/acorex-core-events.mjs +0 -5
  42. package/esm2022/events/index.mjs +0 -3
  43. package/esm2022/events/lib/event.service.mjs +0 -43
  44. package/esm2022/events/lib/event.type.mjs +0 -6
  45. package/esm2022/file/acorex-core-file.mjs +0 -5
  46. package/esm2022/file/index.mjs +0 -4
  47. package/esm2022/file/lib/file-size-formatter.mjs +0 -24
  48. package/esm2022/file/lib/file.module.mjs +0 -20
  49. package/esm2022/file/lib/file.service.mjs +0 -77
  50. package/esm2022/format/acorex-core-format.mjs +0 -5
  51. package/esm2022/format/index.mjs +0 -8
  52. package/esm2022/format/lib/format.config.mjs +0 -3
  53. package/esm2022/format/lib/format.module.mjs +0 -64
  54. package/esm2022/format/lib/format.pipe.mjs +0 -33
  55. package/esm2022/format/lib/format.service.mjs +0 -93
  56. package/esm2022/format/lib/format.types.mjs +0 -2
  57. package/esm2022/format/lib/formatters/number-formatter.mjs +0 -74
  58. package/esm2022/format/lib/formatters/string-formatter.mjs +0 -17
  59. package/esm2022/image/acorex-core-image.mjs +0 -5
  60. package/esm2022/image/index.mjs +0 -2
  61. package/esm2022/image/lib/image.service.mjs +0 -48
  62. package/esm2022/index.mjs +0 -2
  63. package/esm2022/memorize/acorex-core-memorize.mjs +0 -5
  64. package/esm2022/memorize/index.mjs +0 -2
  65. package/esm2022/memorize/lib/memorize.decorator.mjs +0 -19
  66. package/esm2022/network/acorex-core-network.mjs +0 -5
  67. package/esm2022/network/index.mjs +0 -5
  68. package/esm2022/network/lib/download-task.mjs +0 -47
  69. package/esm2022/network/lib/network.service.mjs +0 -85
  70. package/esm2022/network/lib/network.types.mjs +0 -16
  71. package/esm2022/network/lib/upload-task.mjs +0 -81
  72. package/esm2022/pipes/acorex-core-pipes.mjs +0 -5
  73. package/esm2022/pipes/index.mjs +0 -2
  74. package/esm2022/pipes/lib/safe/safe.pipe.mjs +0 -38
  75. package/esm2022/platform/acorex-core-platform.mjs +0 -5
  76. package/esm2022/platform/index.mjs +0 -2
  77. package/esm2022/platform/lib/platform.service.mjs +0 -293
  78. package/esm2022/storage/acorex-core-storage.mjs +0 -5
  79. package/esm2022/storage/cookie-storage.service.mjs +0 -196
  80. package/esm2022/storage/index.mjs +0 -5
  81. package/esm2022/storage/local-storage.service.mjs +0 -59
  82. package/esm2022/storage/session-storage.service.mjs +0 -35
  83. package/esm2022/storage/storage.interface.mjs +0 -2
  84. package/esm2022/translation/acorex-core-translation.mjs +0 -5
  85. package/esm2022/translation/index.mjs +0 -9
  86. package/esm2022/translation/lib/translation-scope.resolver.mjs +0 -11
  87. package/esm2022/translation/lib/translation.config.mjs +0 -20
  88. package/esm2022/translation/lib/translation.loader.mjs +0 -14
  89. package/esm2022/translation/lib/translation.module.mjs +0 -40
  90. package/esm2022/translation/lib/translation.service.mjs +0 -215
  91. package/esm2022/translation/lib/translation.types.mjs +0 -2
  92. package/esm2022/translation/lib/translator.directive.mjs +0 -28
  93. package/esm2022/translation/lib/translator.pipe.mjs +0 -23
  94. package/esm2022/types/acorex-core-types.mjs +0 -5
  95. package/esm2022/types/index.mjs +0 -2
  96. package/esm2022/utils/acorex-core-utils.mjs +0 -5
  97. package/esm2022/utils/index.mjs +0 -8
  98. package/esm2022/utils/lib/auto-unsubscribe.mjs +0 -36
  99. package/esm2022/utils/lib/color-util.mjs +0 -136
  100. package/esm2022/utils/lib/drawing-util.mjs +0 -32
  101. package/esm2022/utils/lib/html-util.mjs +0 -54
  102. package/esm2022/utils/lib/resize.directive.mjs +0 -124
  103. package/esm2022/utils/lib/string-util.mjs +0 -19
  104. package/esm2022/utils/lib/utils.module.mjs +0 -18
  105. package/esm2022/validation/acorex-core-validation.mjs +0 -5
  106. package/esm2022/validation/index.mjs +0 -18
  107. package/esm2022/validation/lib/rules/between-rule.mjs +0 -31
  108. package/esm2022/validation/lib/rules/callback-rule.mjs +0 -36
  109. package/esm2022/validation/lib/rules/equal-rule.mjs +0 -26
  110. package/esm2022/validation/lib/rules/greater-than.mjs +0 -25
  111. package/esm2022/validation/lib/rules/length-rule.mjs +0 -23
  112. package/esm2022/validation/lib/rules/less-than-rule.mjs +0 -25
  113. package/esm2022/validation/lib/rules/maxlength-rule.mjs +0 -24
  114. package/esm2022/validation/lib/rules/minlength-rule.mjs +0 -23
  115. package/esm2022/validation/lib/rules/regex-rule.mjs +0 -46
  116. package/esm2022/validation/lib/rules/required-rule.mjs +0 -39
  117. package/esm2022/validation/lib/validation.config.mjs +0 -33
  118. package/esm2022/validation/lib/validation.module.mjs +0 -84
  119. package/esm2022/validation/lib/validation.service.mjs +0 -98
  120. package/esm2022/validation/lib/validation.types.mjs +0 -3
@@ -1,90 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { isNil } from 'lodash-es';
3
- import * as i0 from "@angular/core";
4
- export class AXTimeLeftFormatter {
5
- get name() {
6
- return 'timeleft';
7
- }
8
- format(value, options) {
9
- const valueNumber = Number(value);
10
- const sign = valueNumber >= 0 ? 'left' : 'ago';
11
- const milliseconds = Math.abs(valueNumber);
12
- const durationInSeconds = Math.round(milliseconds / 1000);
13
- let format = options?.format;
14
- // Determine the best format if format is null
15
- if (isNil(format)) {
16
- if (durationInSeconds < 45)
17
- format = 's';
18
- else if (durationInSeconds < 60 * 45)
19
- format = 'm';
20
- else if (durationInSeconds < 60 * 60 * 22)
21
- format = 'h';
22
- else if (durationInSeconds < 60 * 60 * 24 * 26)
23
- format = 'd';
24
- else if (durationInSeconds < 60 * 60 * 24 * 320)
25
- format = 'M';
26
- else
27
- format = 'y';
28
- }
29
- // Helper function for zero-padding
30
- const pad = (num) => num.toString().padStart(2, '0');
31
- switch (format) {
32
- case 's':
33
- return `${durationInSeconds} seconds ${sign}`;
34
- case 'ss':
35
- return `${pad(durationInSeconds)} seconds ${sign}`;
36
- case 'm':
37
- return `${Math.round(durationInSeconds / 60)} minute${durationInSeconds >= 120 ? 's' : ''} ${sign}`;
38
- case 'mm':
39
- return `${pad(Math.round(durationInSeconds / 60))} minutes ${sign}`;
40
- case 'h':
41
- case 'H':
42
- if (durationInSeconds < 60 * 89)
43
- return `an hour ${sign}`;
44
- return `${Math.round(durationInSeconds / 3600)} hour${durationInSeconds >= 60 * 180 ? 's' : ''} ${sign}`;
45
- case 'hh':
46
- case 'HH':
47
- if (durationInSeconds < 60 * 89)
48
- return `01 hour ${sign}`;
49
- return `${pad(Math.round(durationInSeconds / 3600))} hours ${sign}`;
50
- case 'd':
51
- case 'D':
52
- if (durationInSeconds < 60 * 60 * 35)
53
- return `a day ${sign}`;
54
- return `${Math.round(durationInSeconds / (3600 * 24))} day${durationInSeconds >= 60 * 60 * 70 ? 's' : ''} ${sign}`;
55
- case 'dd':
56
- case 'DD':
57
- if (durationInSeconds < 60 * 60 * 35)
58
- return `01 day ${sign}`;
59
- return `${pad(Math.round(durationInSeconds / (3600 * 24)))} days ${sign}`;
60
- case 'M':
61
- if (durationInSeconds < 60 * 60 * 24 * 45)
62
- return `a month ${sign}`;
63
- return `${Math.round(durationInSeconds / (3600 * 24 * 30))} month${durationInSeconds >= 60 * 60 * 24 * 90 ? 's' : ''} ${sign}`;
64
- case 'MM':
65
- if (durationInSeconds < 60 * 60 * 24 * 45)
66
- return `01 month ${sign}`;
67
- return `${pad(Math.round(durationInSeconds / (3600 * 24 * 30)))} months ${sign}`;
68
- case 'y':
69
- case 'Y':
70
- if (durationInSeconds < 60 * 60 * 24 * 547)
71
- return `a year ${sign}`;
72
- return `${Math.round(durationInSeconds / (3600 * 24 * 365))} year${durationInSeconds >= 60 * 60 * 24 * 730 ? 's' : ''} ${sign}`;
73
- case 'yy':
74
- case 'YY':
75
- case 'yyyy':
76
- case 'YYYY':
77
- if (durationInSeconds < 60 * 60 * 24 * 547)
78
- return `01 year ${sign}`;
79
- return `${pad(Math.round(durationInSeconds / (3600 * 24 * 365)))} years ${sign}`;
80
- default:
81
- return 'Invalid format';
82
- }
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLeftFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
85
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLeftFormatter }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
88
- type: Injectable
89
- }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxlZnQtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2Zvcm1hdHRlcnMvdGltZWxlZnQtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFhbEMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixJQUFJLElBQUk7UUFDTixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQXNCLEVBQUUsT0FBb0M7UUFDakUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzdCLDhDQUE4QztRQUM5QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksaUJBQWlCLEdBQUcsRUFBRTtnQkFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDO2lCQUNwQyxJQUFJLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUFFLE1BQU0sR0FBRyxHQUFHLENBQUM7aUJBQzlDLElBQUksaUJBQWlCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUFFLE1BQU0sR0FBRyxHQUFHLENB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QUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHO29CQUFFLE9BQU8sV0FBVyxJQUFJLEVBQUUsQ0FBQztnQkFDckUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDbkY7Z0JBQ0UsT0FBTyxnQkFBZ0IsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzs4R0FwRVUsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE9wdGlvbnMsIEFYRm9ybWF0dGVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUaW1lTGVmdEZvcm1hdHRlck9wdGlvbnMgZXh0ZW5kcyBBWEZvcm1hdE9wdGlvbnMge1xuICBmb3JtYXQ6IHN0cmluZztcbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvY29yZS9mb3JtYXQnIHtcbiAgaW50ZXJmYWNlIEFYRm9ybWF0T3B0aW9uc01hcCB7XG4gICAgdGltZWxlZnQ6IEFYVGltZUxlZnRGb3JtYXR0ZXJPcHRpb25zO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFRpbWVMZWZ0Rm9ybWF0dGVyIGltcGxlbWVudHMgQVhGb3JtYXR0ZXIge1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGltZWxlZnQnO1xuICB9XG5cbiAgZm9ybWF0KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM/OiBBWFRpbWVMZWZ0Rm9ybWF0dGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWVOdW1iZXIgPSBOdW1iZXIodmFsdWUpO1xuICAgIGNvbnN0IHNpZ24gPSB2YWx1ZU51bWJlciA+PSAwID8gJ2xlZnQnIDogJ2Fnbyc7XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gTWF0aC5hYnModmFsdWVOdW1iZXIpO1xuICAgIGNvbnN0IGR1cmF0aW9uSW5TZWNvbmRzID0gTWF0aC5yb3VuZChtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICBsZXQgZm9ybWF0ID0gb3B0aW9ucz8uZm9ybWF0O1xuICAgIC8vIERldGVybWluZSB0aGUgYmVzdCBmb3JtYXQgaWYgZm9ybWF0IGlzIG51bGxcbiAgICBpZiAoaXNOaWwoZm9ybWF0KSkge1xuICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNDUpIGZvcm1hdCA9ICdzJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA0NSkgZm9ybWF0ID0gJ20nO1xuICAgICAgZWxzZSBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjIpIGZvcm1hdCA9ICdoJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogMjYpIGZvcm1hdCA9ICdkJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogMzIwKSBmb3JtYXQgPSAnTSc7XG4gICAgICBlbHNlIGZvcm1hdCA9ICd5JztcbiAgICB9XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHplcm8tcGFkZGluZ1xuICAgIGNvbnN0IHBhZCA9IChudW06IG51bWJlcikgPT4gbnVtLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcblxuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICdzJzpcbiAgICAgICAgcmV0dXJuIGAke2R1cmF0aW9uSW5TZWNvbmRzfSBzZWNvbmRzICR7c2lnbn1gO1xuICAgICAgY2FzZSAnc3MnOlxuICAgICAgICByZXR1cm4gYCR7cGFkKGR1cmF0aW9uSW5TZWNvbmRzKX0gc2Vjb25kcyAke3NpZ259YDtcbiAgICAgIGNhc2UgJ20nOlxuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDYwKX0gbWludXRlJHtkdXJhdGlvbkluU2Vjb25kcyA+PSAxMjAgPyAncycgOiAnJ30gJHtzaWdufWA7XG4gICAgICBjYXNlICdtbSc6XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDYwKSl9IG1pbnV0ZXMgJHtzaWdufWA7XG4gICAgICBjYXNlICdoJzpcbiAgICAgIGNhc2UgJ0gnOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDg5KSByZXR1cm4gYGFuIGhvdXIgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gMzYwMCl9IGhvdXIke2R1cmF0aW9uSW5TZWNvbmRzID49IDYwICogMTgwID8gJ3MnIDogJyd9ICR7c2lnbn1gO1xuICAgICAgY2FzZSAnaGgnOlxuICAgICAgY2FzZSAnSEgnOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDg5KSByZXR1cm4gYDAxIGhvdXIgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDM2MDApKX0gaG91cnMgJHtzaWdufWA7XG4gICAgICBjYXNlICdkJzpcbiAgICAgIGNhc2UgJ0QnOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMzUpIHJldHVybiBgYSBkYXkgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCkpfSBkYXkke2R1cmF0aW9uSW5TZWNvbmRzID49IDYwICogNjAgKiA3MCA/ICdzJyA6ICcnfSAke3NpZ259YDtcbiAgICAgIGNhc2UgJ2RkJzpcbiAgICAgIGNhc2UgJ0REJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDM1KSByZXR1cm4gYDAxIGRheSAke3NpZ259YDtcbiAgICAgICAgcmV0dXJuIGAke3BhZChNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCkpKX0gZGF5cyAke3NpZ259YDtcbiAgICAgIGNhc2UgJ00nOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA0NSkgcmV0dXJuIGBhIG1vbnRoICR7c2lnbn1gO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQgKiAzMCkpfSBtb250aCR7ZHVyYXRpb25JblNlY29uZHMgPj0gNjAgKiA2MCAqIDI0ICogOTAgPyAncycgOiAnJ30gJHtzaWdufWA7XG4gICAgICBjYXNlICdNTSc6XG4gICAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDQ1KSByZXR1cm4gYDAxIG1vbnRoICR7c2lnbn1gO1xuICAgICAgICByZXR1cm4gYCR7cGFkKE1hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyAoMzYwMCAqIDI0ICogMzApKSl9IG1vbnRocyAke3NpZ259YDtcbiAgICAgIGNhc2UgJ3knOlxuICAgICAgY2FzZSAnWSc6XG4gICAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDU0NykgcmV0dXJuIGBhIHllYXIgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCAqIDM2NSkpfSB5ZWFyJHtkdXJhdGlvbkluU2Vjb25kcyA+PSA2MCAqIDYwICogMjQgKiA3MzAgPyAncycgOiAnJ30gJHtzaWdufWA7XG4gICAgICBjYXNlICd5eSc6XG4gICAgICBjYXNlICdZWSc6XG4gICAgICBjYXNlICd5eXl5JzpcbiAgICAgIGNhc2UgJ1lZWVknOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA1NDcpIHJldHVybiBgMDEgeWVhciAke3NpZ259YDtcbiAgICAgICAgcmV0dXJuIGAke3BhZChNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCAqIDM2NSkpKX0geWVhcnMgJHtzaWdufWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0ludmFsaWQgZm9ybWF0JztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,198 +0,0 @@
1
- import { AXCalendar, AXDateTime } from './datetime.class';
2
- export class GeorgianCalendar extends AXCalendar {
3
- /**
4
- * @ignore
5
- */
6
- constructor(config) {
7
- super(config);
8
- }
9
- create(value) {
10
- 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);
11
- }
12
- name() {
13
- return 'georgian';
14
- }
15
- dayOfMonth(date) {
16
- return date.getDate();
17
- }
18
- dayOfYear(date) {
19
- let result = 0;
20
- let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
21
- if (this.isLeap(date)) {
22
- m[1] = 29;
23
- }
24
- for (let i = 0; i < date.getMonth(); i++) {
25
- result = result + m[i];
26
- }
27
- result += date.getDate();
28
- return result;
29
- }
30
- dayOfWeek(date) {
31
- return date.getDay() + 1;
32
- }
33
- weekOfYear(date) {
34
- const firstDay = new AXDateTime(date, this).startOf('year');
35
- return Math.ceil(((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7);
36
- }
37
- year(date) {
38
- return date.getFullYear();
39
- }
40
- monthOfYear(date) {
41
- return date.getMonth() + 1;
42
- }
43
- add(date, unit, amount) {
44
- let value = date.valueOf();
45
- switch (unit) {
46
- case 'second':
47
- value += 1000 * amount;
48
- break;
49
- case 'minute':
50
- value += 60000 * amount;
51
- break;
52
- case 'hour':
53
- value += 3600000 * amount;
54
- break;
55
- case 'month': {
56
- const v = new Date(value);
57
- // Calculate the new year and month considering the amount
58
- let newYear = v.getFullYear();
59
- let newMonth = v.getMonth() + amount;
60
- // Adjust for year overflow or underflow
61
- while (newMonth > 11) {
62
- newMonth -= 12;
63
- newYear++;
64
- }
65
- while (newMonth < 0) {
66
- newMonth += 12;
67
- newYear--;
68
- }
69
- // Set the date to the first of the month to prevent overflow
70
- v.setDate(1);
71
- v.setFullYear(newYear);
72
- v.setMonth(newMonth);
73
- // Get the last day of the new month
74
- const lastDayOfMonth = new Date(newYear, newMonth + 1, 0).getDate();
75
- // Set the date to either the original day or the last day of the new month, whichever is smaller
76
- const originalDay = date.getDate();
77
- v.setDate(Math.min(originalDay, lastDayOfMonth));
78
- value = v.valueOf();
79
- break;
80
- }
81
- case 'week':
82
- value += 7 * 86400000 * amount;
83
- break;
84
- case 'year': {
85
- const newDate = new Date(value);
86
- newDate.setFullYear(newDate.getFullYear() + amount);
87
- // Handling for leap years: if the original date is February 29th, and the new year is not a leap year,
88
- // set the date to February 28th.
89
- if (date.getMonth() === 1 && date.getDate() === 29 && newDate.getMonth() !== 1) {
90
- newDate.setMonth(1);
91
- newDate.setDate(28);
92
- }
93
- value = newDate.valueOf();
94
- break;
95
- }
96
- case 'day':
97
- default:
98
- value += 86400000 * amount;
99
- }
100
- return new AXDateTime(new Date(value), this);
101
- }
102
- set(date, unit, value) {
103
- const clone = new Date(date.valueOf());
104
- switch (unit) {
105
- case 'second':
106
- clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
107
- break;
108
- case 'minute':
109
- clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());
110
- break;
111
- case 'hour':
112
- clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
113
- break;
114
- default:
115
- case 'day':
116
- clone.setDate(value);
117
- break;
118
- case 'week':
119
- break;
120
- case 'month':
121
- clone.setMonth(Math.max(0, value - 1));
122
- break;
123
- case 'year':
124
- clone.setFullYear(value);
125
- break;
126
- }
127
- return new AXDateTime(clone, this);
128
- }
129
- startOf(date, unit) {
130
- const clone = new Date(date.valueOf());
131
- switch (unit) {
132
- case 'second':
133
- clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);
134
- return new AXDateTime(clone, this);
135
- case 'minute':
136
- clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);
137
- return new AXDateTime(clone, this);
138
- case 'hour':
139
- clone.setHours(clone.getHours(), 0, 0, 0);
140
- return new AXDateTime(clone, this);
141
- default:
142
- case 'day':
143
- clone.setHours(0, 0, 0, 0);
144
- return new AXDateTime(clone, this);
145
- case 'week': {
146
- const start = 1; // Week starts on Monday
147
- const day = clone.getDay();
148
- const diff = clone.getDate() - day + (day == 0 ? -6 : start - day);
149
- clone.setDate(diff);
150
- clone.setHours(0, 0, 0, 0);
151
- return new AXDateTime(clone, this);
152
- }
153
- case 'month':
154
- clone.setDate(1);
155
- return new AXDateTime(clone, this).startOf('day');
156
- case 'year':
157
- clone.setMonth(0);
158
- clone.setDate(1);
159
- return new AXDateTime(clone, this).startOf('day');
160
- }
161
- }
162
- endOf(date, unit) {
163
- const clone = new Date(date.valueOf());
164
- switch (unit) {
165
- case 'second':
166
- clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);
167
- return new AXDateTime(clone, this);
168
- case 'minute':
169
- clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);
170
- return new AXDateTime(clone, this);
171
- case 'hour':
172
- clone.setHours(clone.getHours(), 59, 59, 999);
173
- return new AXDateTime(clone, this);
174
- default:
175
- case 'day':
176
- clone.setHours(23, 59, 59, 999);
177
- return new AXDateTime(clone, this);
178
- case 'week':
179
- return this.startOf(date, 'week').add('day', 6).endOf('day');
180
- case 'month': {
181
- const dateObj = new Date(date.getFullYear(), date.getMonth() + 1, 0);
182
- dateObj.setHours(23, 59, 59, 999);
183
- return new AXDateTime(dateObj, this);
184
- }
185
- case 'year':
186
- clone.setMonth(11);
187
- return new AXDateTime(clone, this).endOf('month');
188
- }
189
- }
190
- isLeap(date) {
191
- let leapYear = new Date(date.getFullYear(), 1, 29);
192
- return leapYear.getDate() == 29;
193
- }
194
- parse(value) {
195
- return new AXDateTime(new Date(value), this);
196
- }
197
- }
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvcmdpYW4uY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZS10aW1lL3NyYy9saWIvZ2VvcmdpYW4uY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBb0IsVUFBVSxFQUF5QixNQUFNLGtCQUFrQixDQUFDO0FBRW5HLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBQzlDOztPQUVHO0lBQ0gsWUFBWSxNQUF3QjtRQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFrQjtRQUN2QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDMUgsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVU7UUFDbEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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VUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsS0FBSyxNQUFNO2dCQUNULEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFhO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhciwgQVhDYWxlbmRhckNvbmZpZywgQVhEYXRlVGltZSwgQVhEYXRlVmFsdWUsIFRpbWVVbml0IH0gZnJvbSAnLi9kYXRldGltZS5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW9yZ2lhbkNhbGVuZGFyIGV4dGVuZHMgQVhDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IEFYQ2FsZW5kYXJDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlKHZhbHVlOiBBWERhdGVWYWx1ZSk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShcbiAgICAgIG5ldyBEYXRlKHZhbHVlLnllYXIsIHZhbHVlLm1vbnRoIC0gMSwgdmFsdWUuZGF0ZSwgdmFsdWUuaG91cnMgfHwgMCwgdmFsdWUubWludXRlcyB8fCAwLCB2YWx1ZS5zZWNvbmRzIHx8IDAsIHZhbHVlLm1zIHx8IDApLFxuICAgICAgdGhpcyxcbiAgICApO1xuICB9XG5cbiAgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZ2VvcmdpYW4nO1xuICB9XG5cbiAgZGF5T2ZNb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICBkYXlPZlllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgbGV0IG0gPSBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG4gICAgaWYgKHRoaXMuaXNMZWFwKGRhdGUpKSB7XG4gICAgICBtWzFdID0gMjk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0ZS5nZXRNb250aCgpOyBpKyspIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCArIG1baV07XG4gICAgfVxuICAgIHJlc3VsdCArPSBkYXRlLmdldERhdGUoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpICsgMTtcbiAgfVxuXG4gIHdlZWtPZlllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgY29uc3QgZmlyc3REYXkgPSBuZXcgQVhEYXRlVGltZShkYXRlLCB0aGlzKS5zdGFydE9mKCd5ZWFyJyk7XG4gICAgcmV0dXJuIE1hdGguY2VpbCgoKGRhdGUuZ2V0VGltZSgpIC0gZmlyc3REYXkuZGF0ZS5nZXRUaW1lKCkpIC8gODY0MDAwMDAgKyBmaXJzdERheS5kYXRlLmdldERheSgpICsgMSkgLyA3KTtcbiAgfVxuXG4gIHllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIG1vbnRoT2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgYWRkKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0LCBhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xuICAgIGxldCB2YWx1ZSA9IGRhdGUudmFsdWVPZigpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgdmFsdWUgKz0gMTAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICB2YWx1ZSArPSA2MDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgdmFsdWUgKz0gMzYwMDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb250aCc6IHtcbiAgICAgICAgY29uc3QgdiA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyB5ZWFyIGFuZCBtb250aCBjb25zaWRlcmluZyB0aGUgYW1vdW50XG4gICAgICAgIGxldCBuZXdZZWFyID0gdi5nZXRGdWxsWWVhcigpO1xuICAgICAgICBsZXQgbmV3TW9udGggPSB2LmdldE1vbnRoKCkgKyBhbW91bnQ7XG5cbiAgICAgICAgLy8gQWRqdXN0IGZvciB5ZWFyIG92ZXJmbG93IG9yIHVuZGVyZmxvd1xuICAgICAgICB3aGlsZSAobmV3TW9udGggPiAxMSkge1xuICAgICAgICAgIG5ld01vbnRoIC09IDEyO1xuICAgICAgICAgIG5ld1llYXIrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAobmV3TW9udGggPCAwKSB7XG4gICAgICAgICAgbmV3TW9udGggKz0gMTI7XG4gICAgICAgICAgbmV3WWVhci0tO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBkYXRlIHRvIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggdG8gcHJldmVudCBvdmVyZmxvd1xuICAgICAgICB2LnNldERhdGUoMSk7XG4gICAgICAgIHYuc2V0RnVsbFllYXIobmV3WWVhcik7XG4gICAgICAgIHYuc2V0TW9udGgobmV3TW9udGgpO1xuXG4gICAgICAgIC8vIEdldCB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aFxuICAgICAgICBjb25zdCBsYXN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKG5ld1llYXIsIG5ld01vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuXG4gICAgICAgIC8vIFNldCB0aGUgZGF0ZSB0byBlaXRoZXIgdGhlIG9yaWdpbmFsIGRheSBvciB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aCwgd2hpY2hldmVyIGlzIHNtYWxsZXJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICAgICAgdi5zZXREYXRlKE1hdGgubWluKG9yaWdpbmFsRGF5LCBsYXN0RGF5T2ZNb250aCkpO1xuXG4gICAgICAgIHZhbHVlID0gdi52YWx1ZU9mKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIHZhbHVlICs9IDcgKiA4NjQwMDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSArIGFtb3VudCk7XG4gICAgICAgIC8vIEhhbmRsaW5nIGZvciBsZWFwIHllYXJzOiBpZiB0aGUgb3JpZ2luYWwgZGF0ZSBpcyBGZWJydWFyeSAyOXRoLCBhbmQgdGhlIG5ldyB5ZWFyIGlzIG5vdCBhIGxlYXAgeWVhcixcbiAgICAgICAgLy8gc2V0IHRoZSBkYXRlIHRvIEZlYnJ1YXJ5IDI4dGguXG4gICAgICAgIGlmIChkYXRlLmdldE1vbnRoKCkgPT09IDEgJiYgZGF0ZS5nZXREYXRlKCkgPT09IDI5ICYmIG5ld0RhdGUuZ2V0TW9udGgoKSAhPT0gMSkge1xuICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgoMSk7XG4gICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKDI4KTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IG5ld0RhdGUudmFsdWVPZigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YWx1ZSArPSA4NjQwMDAwMCAqIGFtb3VudDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKHZhbHVlKSwgdGhpcyk7XG4gIH1cblxuICBzZXQoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQsIHZhbHVlOiBudW1iZXIpOiBBWERhdGVUaW1lIHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgdmFsdWUsIGNsb25lLmdldE1pbGxpc2Vjb25kcygpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCB2YWx1ZSwgY2xvbmUuZ2V0U2Vjb25kcygpLCBjbG9uZS5nZXRNaWxsaXNlY29uZHMoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKHZhbHVlLCBjbG9uZS5nZXRNaW51dGVzKCksIGNsb25lLmdldFNlY29uZHMoKSwgY2xvbmUuZ2V0TWlsbGlzZWNvbmRzKCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXREYXRlKHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIGNsb25lLnNldE1vbnRoKE1hdGgubWF4KDAsIHZhbHVlIC0gMSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICBjbG9uZS5zZXRGdWxsWWVhcih2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICB9XG5cbiAgc3RhcnRPZihkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCk6IEFYRGF0ZVRpbWUge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgY2xvbmUuZ2V0TWludXRlcygpLCBjbG9uZS5nZXRTZWNvbmRzKCksIDApO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgY2xvbmUuZ2V0TWludXRlcygpLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ3dlZWsnOiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gMTsgLy8gV2VlayBzdGFydHMgb24gTW9uZGF5XG4gICAgICAgIGNvbnN0IGRheSA9IGNsb25lLmdldERheSgpO1xuICAgICAgICBjb25zdCBkaWZmID0gY2xvbmUuZ2V0RGF0ZSgpIC0gZGF5ICsgKGRheSA9PSAwID8gLTYgOiBzdGFydCAtIGRheSk7XG4gICAgICAgIGNsb25lLnNldERhdGUoZGlmZik7XG4gICAgICAgIGNsb25lLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgfVxuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICBjbG9uZS5zZXREYXRlKDEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLnN0YXJ0T2YoJ2RheScpO1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIGNsb25lLnNldE1vbnRoKDApO1xuICAgICAgICBjbG9uZS5zZXREYXRlKDEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cbiAgfVxuXG4gIGVuZE9mKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0KTogQVhEYXRlVGltZSB7XG4gICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIGNsb25lLmdldFNlY29uZHMoKSwgOTk5KTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgNTksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgNTksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRPZihkYXRlLCAnd2VlaycpLmFkZCgnZGF5JywgNikuZW5kT2YoJ2RheScpO1xuICAgICAgY2FzZSAnbW9udGgnOiB7XG4gICAgICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApO1xuICAgICAgICBkYXRlT2JqLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShkYXRlT2JqLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICBjbG9uZS5zZXRNb250aCgxMSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcykuZW5kT2YoJ21vbnRoJyk7XG4gICAgfVxuICB9XG5cbiAgaXNMZWFwKGRhdGU6IERhdGUpIHtcbiAgICBsZXQgbGVhcFllYXIgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDEsIDI5KTtcbiAgICByZXR1cm4gbGVhcFllYXIuZ2V0RGF0ZSgpID09IDI5O1xuICB9XG5cbiAgcGFyc2UodmFsdWU6IHN0cmluZyk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSh2YWx1ZSksIHRoaXMpO1xuICB9XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export class AXHolidaysLoaderDefault {
3
- getHolidays(options) {
4
- return Promise.resolve([]);
5
- }
6
- }
7
- export const AX_DATETIME_HOLIDAYS_LOADER = new InjectionToken('AX_DATETIME_HOLIDAYS_LOADER', {
8
- providedIn: 'root',
9
- factory: () => {
10
- return new AXHolidaysLoaderDefault();
11
- },
12
- });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9saWRheXMubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2hvbGlkYXlzLmxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IvQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFdBQVcsQ0FBQyxPQUE2QztRQUN2RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQW1CLDZCQUE2QixFQUFFO0lBQzdHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLElBQUksdUJBQXVCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlEYXRlIHtcbiAgZGF0ZTogRGF0ZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhIb2xpZGF5c0xvYWRlck9wdGlvbnMge1xuICBjYWxlbmRhcj86IHN0cmluZztcbiAgcmFuZ2U/OiB7IHN0YXJ0OiBEYXRlOyBlbmQ6IERhdGUgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlzTG9hZGVyIHtcbiAgZ2V0SG9saWRheXMob3B0aW9ucz86IEFYSG9saWRheXNMb2FkZXJPcHRpb25zKTogUHJvbWlzZTxBWEhvbGlkYXlEYXRlW10+O1xufVxuXG5leHBvcnQgY2xhc3MgQVhIb2xpZGF5c0xvYWRlckRlZmF1bHQgaW1wbGVtZW50cyBBWEhvbGlkYXlzTG9hZGVyIHtcbiAgZ2V0SG9saWRheXMob3B0aW9ucz86IEFYSG9saWRheXNMb2FkZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxBWEhvbGlkYXlEYXRlW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhfREFURVRJTUVfSE9MSURBWVNfTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYSG9saWRheXNMb2FkZXI+KCdBWF9EQVRFVElNRV9IT0xJREFZU19MT0FERVInLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIHJldHVybiBuZXcgQVhIb2xpZGF5c0xvYWRlckRlZmF1bHQoKTtcbiAgfSxcbn0pO1xuIl19