@yoozsoft/yoozsoft-ng 3.1.4 → 4.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 (152) hide show
  1. package/README.md +11 -4
  2. package/assets/js/UTIF.js-master/LICENSE +21 -0
  3. package/assets/js/UTIF.js-master/README.md +72 -0
  4. package/assets/js/UTIF.js-master/UTIF.js +1763 -0
  5. package/assets/js/UTIF.js-master/package-lock.json +13 -0
  6. package/assets/styles/ys-layout.scss +21 -47
  7. package/assets/styles/ys-preloader.scss +12 -12
  8. package/datepicker/src/models/date-time-format.d.ts +0 -1
  9. package/datepicker/src/ys-datepicker/ys-datepicker.component.d.ts +7 -1
  10. package/directives/src/password-match/ys-password-match.directive.d.ts +1 -1
  11. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +172 -162
  12. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
  13. package/fesm2022/yoozsoft-yoozsoft-ng-directives.mjs +6 -10
  14. package/fesm2022/yoozsoft-yoozsoft-ng-directives.mjs.map +1 -1
  15. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +145 -0
  16. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -0
  17. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +8 -15
  18. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
  19. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +16 -9
  20. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
  21. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +36 -31
  22. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
  23. package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs +6 -8
  24. package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs.map +1 -1
  25. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +90 -62
  26. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
  27. package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs +17 -17
  28. package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs.map +1 -1
  29. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +64 -23
  30. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
  31. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +50 -57
  32. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
  33. package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs +150 -0
  34. package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs.map +1 -0
  35. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +106 -0
  36. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -0
  37. package/{toasts → file-upload}/index.d.ts +1 -1
  38. package/file-upload/public-api.d.ts +1 -0
  39. package/file-upload/src/ys-file-upload/ys-file-upload.component.d.ts +51 -0
  40. package/loading/src/ys-loading-mask/ys-loading-mask.component.d.ts +5 -2
  41. package/navbar/src/models/navbar-brand.d.ts +2 -0
  42. package/navbar/src/models/navbar-item.d.ts +1 -0
  43. package/navbar/src/ys-navbar/ys-navbar.component.d.ts +13 -12
  44. package/overlay/src/ys-overlay/ys-overlay.component.d.ts +1 -1
  45. package/package.json +26 -46
  46. package/password-strength/public-api.d.ts +1 -0
  47. package/password-strength/src/directives/index.d.ts +1 -0
  48. package/password-strength/src/directives/ys-password-strength.directive.d.ts +18 -0
  49. package/password-strength/src/models/strength-validation-feedback.d.ts +2 -0
  50. package/password-strength/src/ys-password-strength/ys-password-strength.component.d.ts +4 -5
  51. package/select/src/ys-select/ys-select.component.d.ts +14 -4
  52. package/sidebar/src/models/index.d.ts +0 -1
  53. package/sidebar/src/models/sidebar-item-active.d.ts +1 -0
  54. package/sidebar/src/services/sidebar.service.d.ts +7 -10
  55. package/sidebar/src/ys-sidebar/ys-sidebar.component.d.ts +13 -15
  56. package/tiff-viewer/index.d.ts +5 -0
  57. package/tiff-viewer/public-api.d.ts +1 -0
  58. package/tiff-viewer/src/ys-tiff-viewer/ys-tiff-viewer.component.d.ts +48 -0
  59. package/{layout → toast}/index.d.ts +1 -1
  60. package/toast/public-api.d.ts +3 -0
  61. package/{toasts/src/ys-toasts/ys-toasts.component.d.ts → toast/src/ys-toast/ys-toast.component.d.ts} +4 -4
  62. package/assets/images/user.jpg +0 -0
  63. package/assets/styles/ys-layout-pin.scss +0 -153
  64. package/esm2022/datepicker/public-api.mjs +0 -12
  65. package/esm2022/datepicker/src/models/date-range.mjs +0 -2
  66. package/esm2022/datepicker/src/models/date-time-format.mjs +0 -4
  67. package/esm2022/datepicker/src/models/index.mjs +0 -4
  68. package/esm2022/datepicker/src/models/jalali-date.mjs +0 -74
  69. package/esm2022/datepicker/src/services/index.mjs +0 -3
  70. package/esm2022/datepicker/src/services/ys-date-parser-formatter.service.mjs +0 -32
  71. package/esm2022/datepicker/src/services/ys-datepicker-i18n.service.mjs +0 -66
  72. package/esm2022/datepicker/src/ys-datepicker/ys-datepicker.component.mjs +0 -108
  73. package/esm2022/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.mjs +0 -127
  74. package/esm2022/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.mjs +0 -130
  75. package/esm2022/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.mjs +0 -136
  76. package/esm2022/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.mjs +0 -157
  77. package/esm2022/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.mjs +0 -167
  78. package/esm2022/datepicker/yoozsoft-yoozsoft-ng-datepicker.mjs +0 -5
  79. package/esm2022/directives/public-api.mjs +0 -6
  80. package/esm2022/directives/src/password-match/ys-password-match.directive.mjs +0 -49
  81. package/esm2022/directives/yoozsoft-yoozsoft-ng-directives.mjs +0 -5
  82. package/esm2022/footer/public-api.mjs +0 -6
  83. package/esm2022/footer/src/models/footer-brand.mjs +0 -2
  84. package/esm2022/footer/src/models/index.mjs +0 -3
  85. package/esm2022/footer/src/models/social-network.mjs +0 -2
  86. package/esm2022/footer/src/ys-footer/ys-footer.component.mjs +0 -32
  87. package/esm2022/footer/yoozsoft-yoozsoft-ng-footer.mjs +0 -5
  88. package/esm2022/layout/public-api.mjs +0 -5
  89. package/esm2022/layout/src/ys-layout/ys-layout.component.mjs +0 -72
  90. package/esm2022/layout/yoozsoft-yoozsoft-ng-layout.mjs +0 -5
  91. package/esm2022/loading/public-api.mjs +0 -5
  92. package/esm2022/loading/src/ys-loading-mask/ys-loading-mask.component.mjs +0 -20
  93. package/esm2022/loading/yoozsoft-yoozsoft-ng-loading.mjs +0 -5
  94. package/esm2022/navbar/public-api.mjs +0 -6
  95. package/esm2022/navbar/src/models/index.mjs +0 -3
  96. package/esm2022/navbar/src/models/navbar-brand.mjs +0 -2
  97. package/esm2022/navbar/src/models/navbar-item.mjs +0 -2
  98. package/esm2022/navbar/src/ys-navbar/ys-navbar.component.mjs +0 -86
  99. package/esm2022/navbar/yoozsoft-yoozsoft-ng-navbar.mjs +0 -5
  100. package/esm2022/overlay/public-api.mjs +0 -5
  101. package/esm2022/overlay/src/ys-overlay/ys-overlay.component.mjs +0 -20
  102. package/esm2022/overlay/yoozsoft-yoozsoft-ng-overlay.mjs +0 -5
  103. package/esm2022/password-strength/public-api.mjs +0 -6
  104. package/esm2022/password-strength/src/models/index.mjs +0 -5
  105. package/esm2022/password-strength/src/models/regx.mjs +0 -7
  106. package/esm2022/password-strength/src/models/strength-validation-control.mjs +0 -2
  107. package/esm2022/password-strength/src/models/strength-validation-feedback.mjs +0 -25
  108. package/esm2022/password-strength/src/models/strength-validation-option.mjs +0 -25
  109. package/esm2022/password-strength/src/ys-password-strength/ys-password-strength.component.mjs +0 -69
  110. package/esm2022/password-strength/yoozsoft-yoozsoft-ng-password-strength.mjs +0 -5
  111. package/esm2022/progress/public-api.mjs +0 -6
  112. package/esm2022/progress/src/services/index.mjs +0 -2
  113. package/esm2022/progress/src/services/progress.service.mjs +0 -18
  114. package/esm2022/progress/src/ys-progress/ys-progress.component.mjs +0 -32
  115. package/esm2022/progress/yoozsoft-yoozsoft-ng-progress.mjs +0 -5
  116. package/esm2022/public-api.mjs +0 -5
  117. package/esm2022/select/public-api.mjs +0 -5
  118. package/esm2022/select/src/ys-select/ys-select.component.mjs +0 -63
  119. package/esm2022/select/yoozsoft-yoozsoft-ng-select.mjs +0 -5
  120. package/esm2022/sidebar/public-api.mjs +0 -8
  121. package/esm2022/sidebar/src/models/index.mjs +0 -6
  122. package/esm2022/sidebar/src/models/sidebar-item-active.mjs +0 -2
  123. package/esm2022/sidebar/src/models/sidebar-item.mjs +0 -2
  124. package/esm2022/sidebar/src/models/sidebar-state.mjs +0 -2
  125. package/esm2022/sidebar/src/models/user-image.mjs +0 -2
  126. package/esm2022/sidebar/src/models/user-profile.mjs +0 -2
  127. package/esm2022/sidebar/src/services/index.mjs +0 -2
  128. package/esm2022/sidebar/src/services/sidebar.service.mjs +0 -39
  129. package/esm2022/sidebar/src/ys-sidebar/ys-sidebar.component.mjs +0 -68
  130. package/esm2022/sidebar/yoozsoft-yoozsoft-ng-sidebar.mjs +0 -5
  131. package/esm2022/toasts/public-api.mjs +0 -7
  132. package/esm2022/toasts/src/models/index.mjs +0 -3
  133. package/esm2022/toasts/src/models/toast-info.mjs +0 -2
  134. package/esm2022/toasts/src/models/toast-type.mjs +0 -8
  135. package/esm2022/toasts/src/services/index.mjs +0 -2
  136. package/esm2022/toasts/src/services/toast.service.mjs +0 -44
  137. package/esm2022/toasts/src/ys-toasts/ys-toasts.component.mjs +0 -53
  138. package/esm2022/toasts/yoozsoft-yoozsoft-ng-toasts.mjs +0 -5
  139. package/esm2022/yoozsoft-yoozsoft-ng.mjs +0 -5
  140. package/fesm2022/yoozsoft-yoozsoft-ng-layout.mjs +0 -83
  141. package/fesm2022/yoozsoft-yoozsoft-ng-layout.mjs.map +0 -1
  142. package/fesm2022/yoozsoft-yoozsoft-ng-toasts.mjs +0 -111
  143. package/fesm2022/yoozsoft-yoozsoft-ng-toasts.mjs.map +0 -1
  144. package/layout/public-api.d.ts +0 -1
  145. package/layout/src/ys-layout/ys-layout.component.d.ts +0 -24
  146. package/sidebar/src/models/sidebar-state.d.ts +0 -4
  147. package/toasts/public-api.d.ts +0 -3
  148. /package/{toasts → toast}/src/models/index.d.ts +0 -0
  149. /package/{toasts → toast}/src/models/toast-info.d.ts +0 -0
  150. /package/{toasts → toast}/src/models/toast-type.d.ts +0 -0
  151. /package/{toasts → toast}/src/services/index.d.ts +0 -0
  152. /package/{toasts → toast}/src/services/toast.service.d.ts +0 -0
@@ -1,74 +0,0 @@
1
- export class JalaliDate {
2
- static { this.daysInMonth = {
3
- g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
4
- j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]
5
- }; }
6
- static jalaliToGregorian(jalaliYear, jalaliMonth, jalaliDay) {
7
- jalaliYear = parseInt(`${jalaliYear}`);
8
- jalaliMonth = parseInt(`${jalaliMonth}`);
9
- jalaliDay = parseInt(`${jalaliDay}`);
10
- var jy = jalaliYear - 979;
11
- var jm = jalaliMonth - 1;
12
- var jd = jalaliDay - 1;
13
- var j_day_no = 365 * jy + parseInt(`${jy / 33}`) * 8 + parseInt(`${(jy % 33 + 3) / 4}`);
14
- for (var i = 0; i < jm; ++i)
15
- j_day_no += this.daysInMonth.j_days_in_month[i];
16
- j_day_no += jd;
17
- var g_day_no = j_day_no + 79;
18
- var gy = 1600 + 400 * parseInt(`${g_day_no / 146097}`);
19
- g_day_no = g_day_no % 146097;
20
- var leap = true;
21
- if (g_day_no >= 36525) {
22
- g_day_no--;
23
- gy += 100 * parseInt(`${g_day_no / 36524}`);
24
- g_day_no = g_day_no % 36524;
25
- if (g_day_no >= 365)
26
- g_day_no++;
27
- else
28
- leap = false;
29
- }
30
- gy += 4 * parseInt(`${g_day_no / 1461}`);
31
- g_day_no %= 1461;
32
- if (g_day_no >= 366) {
33
- leap = false;
34
- g_day_no--;
35
- gy += parseInt(`${g_day_no / 365}`);
36
- g_day_no = g_day_no % 365;
37
- }
38
- for (var i = 0; g_day_no >= this.daysInMonth.g_days_in_month[i] + ((i == 1 && leap) ? 1 : 0); i++)
39
- g_day_no -= this.daysInMonth.g_days_in_month[i] + ((i == 1 && leap) ? 1 : 0);
40
- var gm = i + 1;
41
- var gd = g_day_no + 1;
42
- return [gy, gm, gd];
43
- }
44
- static gregorianToJalali(gregorianYear, gregorianMonth, gregorianDay) {
45
- gregorianYear = parseInt(`${gregorianYear}`);
46
- gregorianMonth = parseInt(`${gregorianMonth}`);
47
- gregorianDay = parseInt(`${gregorianDay}`);
48
- var gy = gregorianYear - 1600;
49
- var gm = gregorianMonth - 1;
50
- var gd = gregorianDay - 1;
51
- var g_day_no = 365 * gy + parseInt(`${(gy + 3) / 4}`) - parseInt(`${(gy + 99) / 100}`) + parseInt(`${(gy + 399) / 400}`);
52
- for (var i = 0; i < gm; ++i)
53
- g_day_no += this.daysInMonth.g_days_in_month[i];
54
- if (gm > 1 && ((gy % 4 == 0 && gy % 100 != 0) || (gy % 400 == 0)))
55
- ++g_day_no;
56
- g_day_no += gd;
57
- var j_day_no = g_day_no - 79;
58
- var j_np = parseInt(`${j_day_no / 12053}`);
59
- j_day_no %= 12053;
60
- var jy = 979 + 33 * j_np + 4 * parseInt(`${j_day_no / 1461}`);
61
- j_day_no %= 1461;
62
- if (j_day_no >= 366) {
63
- jy += parseInt(`${(j_day_no - 1) / 365}`);
64
- j_day_no = (j_day_no - 1) % 365;
65
- }
66
- for (var i = 0; i < 11 && j_day_no >= this.daysInMonth.j_days_in_month[i]; ++i) {
67
- j_day_no -= this.daysInMonth.j_days_in_month[i];
68
- }
69
- var jm = i + 1;
70
- var jd = j_day_no + 1;
71
- return [jy, jm, jd];
72
- }
73
- }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFsYWxpLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy9tb2RlbHMvamFsYWxpLWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7YUFFSixnQkFBVyxHQUFHO1FBQ3pCLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0tBQ3BFLENBQUM7SUFFRixNQUFNLENBQUMsaUJBQWlCLENBQUMsVUFBa0IsRUFBRSxXQUFtQixFQUFFLFNBQWlCO1FBQy9FLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksRUFBRSxHQUFHLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDMUIsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLEVBQUUsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxH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QUM7UUFDMUIsSUFBSSxRQUFRLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6SCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUN2QixRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3RCxFQUFFLFFBQVEsQ0FBQztRQUNmLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLFFBQVEsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDbEIsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELFFBQVEsSUFBSSxJQUFJLENBQUM7UUFDakIsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7WUFDbEIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsUUFBUSxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM3RSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLEVBQUUsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSmFsYWxpRGF0ZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGF5c0luTW9udGggPSB7XHJcbiAgICAgICAgZ19kYXlzX2luX21vbnRoOiBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV0sXHJcbiAgICAgICAgal9kYXlzX2luX21vbnRoOiBbMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzAsIDMwLCAzMCwgMzAsIDMwLCAyOV1cclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIGphbGFsaVRvR3JlZ29yaWFuKGphbGFsaVllYXI6IG51bWJlciwgamFsYWxpTW9udGg6IG51bWJlciwgamFsYWxpRGF5OiBudW1iZXIpIHtcclxuICAgICAgICBqYWxhbGlZZWFyID0gcGFyc2VJbnQoYCR7amFsYWxpWWVhcn1gKTtcclxuICAgICAgICBqYWxhbGlNb250aCA9IHBhcnNlSW50KGAke2phbGFsaU1vbnRofWApO1xyXG4gICAgICAgIGphbGFsaURheSA9IHBhcnNlSW50KGAke2phbGFsaURheX1gKTtcclxuICAgICAgICB2YXIgankgPSBqYWxhbGlZZWFyIC0gOTc5O1xyXG4gICAgICAgIHZhciBqbSA9IGphbGFsaU1vbnRoIC0gMTtcclxuICAgICAgICB2YXIgamQgPSBqYWxhbGlEYXkgLSAxO1xyXG4gICAgICAgIHZhciBqX2RheV9ubyA9IDM2NSAqIGp5ICsgcGFyc2VJbnQoYCR7ankgLyAzM31gKSAqIDggKyBwYXJzZUludChgJHsoankgJSAzMyArIDMpIC8gNH1gKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGptOyArK2kpXHJcbiAgICAgICAgICAgIGpfZGF5X25vICs9IHRoaXMuZGF5c0luTW9udGgual9kYXlzX2luX21vbnRoW2ldO1xyXG4gICAgICAgIGpfZGF5X25vICs9IGpkO1xyXG4gICAgICAgIHZhciBnX2RheV9ubyA9IGpfZGF5X25vICsgNzk7XHJcbiAgICAgICAgdmFyIGd5ID0gMTYwMCArIDQwMCAqIHBhcnNlSW50KGAke2dfZGF5X25vIC8gMTQ2MDk3fWApO1xyXG4gICAgICAgIGdfZGF5X25vID0gZ19kYXlfbm8gJSAxNDYwOTc7XHJcbiAgICAgICAgdmFyIGxlYXAgPSB0cnVlO1xyXG4gICAgICAgIGlmIChnX2RheV9ubyA+PSAzNjUyNSkge1xyXG4gICAgICAgICAgICBnX2RheV9uby0tO1xyXG4gICAgICAgICAgICBneSArPSAxMDAgKiBwYXJzZUludChgJHtnX2RheV9ubyAvIDM2NTI0fWApO1xyXG4gICAgICAgICAgICBnX2RheV9ubyA9IGdfZGF5X25vICUgMzY1MjQ7XHJcbiAgICAgICAgICAgIGlmIChnX2RheV9ubyA+PSAzNjUpXHJcbiAgICAgICAgICAgICAgICBnX2RheV9ubysrO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBsZWFwID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGd5ICs9IDQgKiBwYXJzZUludChgJHtnX2RheV9ubyAvIDE0NjF9YCk7XHJcbiAgICAgICAgZ19kYXlfbm8gJT0gMTQ2MTtcclxuICAgICAgICBpZiAoZ19kYXlfbm8gPj0gMzY2KSB7XHJcbiAgICAgICAgICAgIGxlYXAgPSBmYWxzZTtcclxuICAgICAgICAgICAgZ19kYXlfbm8tLTtcclxuICAgICAgICAgICAgZ3kgKz0gcGFyc2VJbnQoYCR7Z19kYXlfbm8gLyAzNjV9YCk7XHJcbiAgICAgICAgICAgIGdfZGF5X25vID0gZ19kYXlfbm8gJSAzNjU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBnX2RheV9ubyA+PSB0aGlzLmRheXNJbk1vbnRoLmdfZGF5c19pbl9tb250aFtpXSArICgoaSA9PSAxICYmIGxlYXApID8gMSA6IDApOyBpKyspXHJcbiAgICAgICAgICAgIGdfZGF5X25vIC09IHRoaXMuZGF5c0luTW9udGguZ19kYXlzX2luX21vbnRoW2ldICsgKChpID09IDEgJiYgbGVhcCkgPyAxIDogMCk7XHJcbiAgICAgICAgdmFyIGdtID0gaSArIDE7XHJcbiAgICAgICAgdmFyIGdkID0gZ19kYXlfbm8gKyAxO1xyXG4gICAgICAgIHJldHVybiBbZ3ksIGdtLCBnZF07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdyZWdvcmlhblRvSmFsYWxpKGdyZWdvcmlhblllYXI6IG51bWJlciwgZ3JlZ29yaWFuTW9udGg6IG51bWJlciwgZ3JlZ29yaWFuRGF5OiBudW1iZXIpIHtcclxuICAgICAgICBncmVnb3JpYW5ZZWFyID0gcGFyc2VJbnQoYCR7Z3JlZ29yaWFuWWVhcn1gKTtcclxuICAgICAgICBncmVnb3JpYW5Nb250aCA9IHBhcnNlSW50KGAke2dyZWdvcmlhbk1vbnRofWApO1xyXG4gICAgICAgIGdyZWdvcmlhbkRheSA9IHBhcnNlSW50KGAke2dyZWdvcmlhbkRheX1gKTtcclxuICAgICAgICB2YXIgZ3kgPSBncmVnb3JpYW5ZZWFyIC0gMTYwMDtcclxuICAgICAgICB2YXIgZ20gPSBncmVnb3JpYW5Nb250aCAtIDE7XHJcbiAgICAgICAgdmFyIGdkID0gZ3JlZ29yaWFuRGF5IC0gMTtcclxuICAgICAgICB2YXIgZ19kYXlfbm8gPSAzNjUgKiBneSArIHBhcnNlSW50KGAkeyhneSArIDMpIC8gNH1gKSAtIHBhcnNlSW50KGAkeyhneSArIDk5KSAvIDEwMH1gKSArIHBhcnNlSW50KGAkeyhneSArIDM5OSkgLyA0MDB9YCk7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBnbTsgKytpKVxyXG4gICAgICAgICAgICBnX2RheV9ubyArPSB0aGlzLmRheXNJbk1vbnRoLmdfZGF5c19pbl9tb250aFtpXTtcclxuICAgICAgICBpZiAoZ20gPiAxICYmICgoZ3kgJSA0ID09IDAgJiYgZ3kgJSAxMDAgIT0gMCkgfHwgKGd5ICUgNDAwID09IDApKSlcclxuICAgICAgICAgICAgKytnX2RheV9ubztcclxuICAgICAgICBnX2RheV9ubyArPSBnZDtcclxuICAgICAgICB2YXIgal9kYXlfbm8gPSBnX2RheV9ubyAtIDc5O1xyXG4gICAgICAgIHZhciBqX25wID0gcGFyc2VJbnQoYCR7al9kYXlfbm8gLyAxMjA1M31gKTtcclxuICAgICAgICBqX2RheV9ubyAlPSAxMjA1MztcclxuICAgICAgICB2YXIgankgPSA5NzkgKyAzMyAqIGpfbnAgKyA0ICogcGFyc2VJbnQoYCR7al9kYXlfbm8gLyAxNDYxfWApO1xyXG4gICAgICAgIGpfZGF5X25vICU9IDE0NjE7XHJcbiAgICAgICAgaWYgKGpfZGF5X25vID49IDM2Nikge1xyXG4gICAgICAgICAgICBqeSArPSBwYXJzZUludChgJHsoal9kYXlfbm8gLSAxKSAvIDM2NX1gKTtcclxuICAgICAgICAgICAgal9kYXlfbm8gPSAoal9kYXlfbm8gLSAxKSAlIDM2NTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMSAmJiBqX2RheV9ubyA+PSB0aGlzLmRheXNJbk1vbnRoLmpfZGF5c19pbl9tb250aFtpXTsgKytpKSB7XHJcbiAgICAgICAgICAgIGpfZGF5X25vIC09IHRoaXMuZGF5c0luTW9udGgual9kYXlzX2luX21vbnRoW2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgam0gPSBpICsgMTtcclxuICAgICAgICB2YXIgamQgPSBqX2RheV9ubyArIDE7XHJcbiAgICAgICAgcmV0dXJuIFtqeSwgam0sIGpkXTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './ys-date-parser-formatter.service';
2
- export * from './ys-datepicker-i18n.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3lzLWRhdGUtcGFyc2VyLWZvcm1hdHRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi95cy1kYXRlcGlja2VyLWkxOG4uc2VydmljZSc7XHJcbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
3
- import * as i0 from "@angular/core";
4
- export class YsDateParserFormatterService extends NgbDateParserFormatter {
5
- constructor() {
6
- super(...arguments);
7
- this.DELIMITER = '/';
8
- }
9
- parse(value) {
10
- if (value) {
11
- const date = value.split(this.DELIMITER);
12
- return {
13
- day: parseInt(date[0], 10),
14
- month: parseInt(date[1], 10),
15
- year: parseInt(date[2], 10),
16
- };
17
- }
18
- return null;
19
- }
20
- format(date) {
21
- return date ? date.year + this.DELIMITER + date.month + this.DELIMITER + date.day : '';
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDateParserFormatterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDateParserFormatterService, providedIn: 'root' }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDateParserFormatterService, decorators: [{
27
- type: Injectable,
28
- args: [{
29
- providedIn: 'root'
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZS1wYXJzZXItZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy9zZXJ2aWNlcy95cy1kYXRlLXBhcnNlci1mb3JtYXR0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBaUIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLbkYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHNCQUFzQjtJQUh4RTs7UUFJVyxjQUFTLEdBQUcsR0FBRyxDQUFDO0tBaUIxQjtJQWZDLEtBQUssQ0FBQyxLQUFhO1FBQ2pCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QyxPQUFPO2dCQUNMLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM1QixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDNUIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pGLENBQUM7OEdBakJVLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07OzJGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBZc0RhdGVQYXJzZXJGb3JtYXR0ZXJTZXJ2aWNlIGV4dGVuZHMgTmdiRGF0ZVBhcnNlckZvcm1hdHRlciB7XHJcbiAgcmVhZG9ubHkgREVMSU1JVEVSID0gJy8nO1xyXG5cclxuICBwYXJzZSh2YWx1ZTogc3RyaW5nKTogTmdiRGF0ZVN0cnVjdCB8IG51bGwge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSB2YWx1ZS5zcGxpdCh0aGlzLkRFTElNSVRFUik7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF5OiBwYXJzZUludChkYXRlWzBdLCAxMCksXHJcbiAgICAgICAgbW9udGg6IHBhcnNlSW50KGRhdGVbMV0sIDEwKSxcclxuICAgICAgICB5ZWFyOiBwYXJzZUludChkYXRlWzJdLCAxMCksXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGZvcm1hdChkYXRlOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGF0ZSA/IGRhdGUueWVhciArIHRoaXMuREVMSU1JVEVSICsgZGF0ZS5tb250aCArIHRoaXMuREVMSU1JVEVSICsgZGF0ZS5kYXkgOiAnJztcclxuICB9XHJcbn1cclxuIl19
@@ -1,66 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';
3
- import * as i0 from "@angular/core";
4
- export var LanguageType;
5
- (function (LanguageType) {
6
- LanguageType[LanguageType["en"] = 0] = "en";
7
- LanguageType[LanguageType["fa"] = 1] = "fa";
8
- LanguageType[LanguageType["fr"] = 2] = "fr";
9
- })(LanguageType || (LanguageType = {}));
10
- const I18N_VALUES = {
11
- "en": {
12
- weekdays: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
13
- months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
14
- weekLabel: 'week'
15
- },
16
- "fa": {
17
- weekdays: ['د', 'س', 'چ', 'پ', 'ج', 'ش', 'ی'],
18
- months: ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'],
19
- weekLabel: 'هفته'
20
- },
21
- "fr": {
22
- weekdays: ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'],
23
- months: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aou', 'Sep', 'Oct', 'Nov', 'Déc'],
24
- weekLabel: 'sem'
25
- }
26
- };
27
- export class I18n {
28
- constructor() {
29
- this.language = LanguageType[LanguageType.en];
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: I18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: I18n }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: I18n, decorators: [{
35
- type: Injectable
36
- }] });
37
- export class YsDatepickerI18nService extends NgbDatepickerI18n {
38
- constructor() {
39
- super();
40
- this._i18n = inject(I18n);
41
- }
42
- getWeekdayLabel(weekday) {
43
- return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];
44
- }
45
- getWeekLabel() {
46
- return I18N_VALUES[this._i18n.language].weekLabel;
47
- }
48
- getMonthShortName(month) {
49
- return I18N_VALUES[this._i18n.language].months[month - 1];
50
- }
51
- getMonthFullName(month) {
52
- return this.getMonthShortName(month);
53
- }
54
- getDayAriaLabel(date) {
55
- return `${date.day}-${date.month}-${date.year}`;
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerI18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
58
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerI18nService, providedIn: 'root' }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerI18nService, decorators: [{
61
- type: Injectable,
62
- args: [{
63
- providedIn: 'root'
64
- }]
65
- }], ctorParameters: () => [] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZXBpY2tlci1pMThuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy9zZXJ2aWNlcy95cy1kYXRlcGlja2VyLWkxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTlFLE1BQU0sQ0FBTixJQUFZLFlBSVg7QUFKRCxXQUFZLFlBQVk7SUFDdEIsMkNBQUUsQ0FBQTtJQUNGLDJDQUFFLENBQUE7SUFDRiwyQ0FBRSxDQUFBO0FBQ0osQ0FBQyxFQUpXLFlBQVksS0FBWixZQUFZLFFBSXZCO0FBRUQsTUFBTSxXQUFXLEdBQVE7SUFDdkIsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ3BELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzVGLFNBQVMsRUFBRSxNQUFNO0tBQ2xCO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQzdDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQy9HLFNBQVMsRUFBRSxNQUFNO0tBQ2xCO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ3BELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzlGLFNBQVMsRUFBRSxLQUFLO0tBQ2pCO0NBQ0YsQ0FBQztBQUdGLE1BQU0sT0FBTyxJQUFJO0lBRGpCO1FBRUUsYUFBUSxHQUFXLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDbEQ7OEdBRlksSUFBSTtrSEFBSixJQUFJOzsyRkFBSixJQUFJO2tCQURoQixVQUFVOztBQVFYLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFHNUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhGLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFJN0IsQ0FBQztJQUVRLGVBQWUsQ0FBQyxPQUFlO1FBQ3RDLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ1EsWUFBWTtRQUNuQixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRCxDQUFDO0lBQ1EsaUJBQWlCLENBQUMsS0FBYTtRQUN0QyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNRLGdCQUFnQixDQUFDLEtBQWE7UUFDckMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNRLGVBQWUsQ0FBQyxJQUFtQjtRQUMxQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzhHQXJCVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVTdHJ1Y3QsIE5nYkRhdGVwaWNrZXJJMThuIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuZXhwb3J0IGVudW0gTGFuZ3VhZ2VUeXBlIHtcclxuICBlbixcclxuICBmYSxcclxuICBmclxyXG59XHJcblxyXG5jb25zdCBJMThOX1ZBTFVFUzogYW55ID0ge1xyXG4gIFwiZW5cIjoge1xyXG4gICAgd2Vla2RheXM6IFsnTW8nLCAnVHUnLCAnV2UnLCAnVGgnLCAnRnInLCAnU2EnLCAnU3UnXSxcclxuICAgIG1vbnRoczogWydKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsICdKdWwnLCAnQXVnJywgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0RlYyddLFxyXG4gICAgd2Vla0xhYmVsOiAnd2VlaydcclxuICB9LFxyXG4gIFwiZmFcIjoge1xyXG4gICAgd2Vla2RheXM6IFsn2K8nLCAn2LMnLCAn2oYnLCAn2b4nLCAn2KwnLCAn2LQnLCAn24wnXSxcclxuICAgIG1vbnRoczogWyfZgdix2YjYsdiv24zZhicsICfYp9ix2K/bjNio2YfYtNiqJywgJ9iu2LHYr9in2K8nLCAn2KrbjNixJywgJ9mF2LHYr9in2K8nLCAn2LTZh9ix24zZiNixJywgJ9mF2YfYsScsICfYotio2KfZhicsICfYotiw2LEnLCAn2K/bjCcsICfYqNmH2YXZhicsICfYp9iz2YHZhtivJ10sXHJcbiAgICB3ZWVrTGFiZWw6ICfZh9mB2KrZhydcclxuICB9LFxyXG4gIFwiZnJcIjoge1xyXG4gICAgd2Vla2RheXM6IFsnTHUnLCAnTWEnLCAnTWUnLCAnSmUnLCAnVmUnLCAnU2EnLCAnRGknXSxcclxuICAgIG1vbnRoczogWydKYW4nLCAnRsOpdicsICdNYXInLCAnQXZyJywgJ01haScsICdKdWluJywgJ0p1aWwnLCAnQW91JywgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0TDqWMnXSxcclxuICAgIHdlZWtMYWJlbDogJ3NlbSdcclxuICB9XHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJMThuIHtcclxuICBsYW5ndWFnZTogc3RyaW5nID0gTGFuZ3VhZ2VUeXBlW0xhbmd1YWdlVHlwZS5lbl07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFlzRGF0ZXBpY2tlckkxOG5TZXJ2aWNlIGV4dGVuZHMgTmdiRGF0ZXBpY2tlckkxOG4ge1xyXG4gIHByaXZhdGUgX2kxOG4gPSBpbmplY3QoSTE4bik7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGdldFdlZWtkYXlMYWJlbCh3ZWVrZGF5OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEkxOE5fVkFMVUVTW3RoaXMuX2kxOG4ubGFuZ3VhZ2VdLndlZWtkYXlzW3dlZWtkYXkgLSAxXTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgZ2V0V2Vla0xhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSTE4Tl9WQUxVRVNbdGhpcy5faTE4bi5sYW5ndWFnZV0ud2Vla0xhYmVsO1xyXG4gIH1cclxuICBvdmVycmlkZSBnZXRNb250aFNob3J0TmFtZShtb250aDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBJMThOX1ZBTFVFU1t0aGlzLl9pMThuLmxhbmd1YWdlXS5tb250aHNbbW9udGggLSAxXTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgZ2V0TW9udGhGdWxsTmFtZShtb250aDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldE1vbnRoU2hvcnROYW1lKG1vbnRoKTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgZ2V0RGF5QXJpYUxhYmVsKGRhdGU6IE5nYkRhdGVTdHJ1Y3QpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2RhdGUuZGF5fS0ke2RhdGUubW9udGh9LSR7ZGF0ZS55ZWFyfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,108 +0,0 @@
1
- import { JsonPipe, NgIf } from '@angular/common';
2
- import { Component, Input, forwardRef, inject } from '@angular/core';
3
- import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { NgbCalendar, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
5
- import { I18n, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ng-bootstrap/ng-bootstrap";
8
- import * as i2 from "@angular/forms";
9
- export class YsDatepickerComponent {
10
- constructor() {
11
- this.calendar = inject(NgbCalendar);
12
- this.today = inject(NgbCalendar).getToday();
13
- this.firstDayOfWeek = 1;
14
- this.weekend = [6, 7];
15
- this.isFooter = true;
16
- this.todayLabel = "Today";
17
- this.footer = null;
18
- this._value = null;
19
- this.disabled = false;
20
- this.onChange = () => { };
21
- this.onTouched = () => { };
22
- this.markDisabled = (date, current) => date.month !== current?.month;
23
- this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
24
- }
25
- get value() {
26
- return this._value;
27
- }
28
- set value(val) {
29
- this._value = val;
30
- }
31
- writeValue(obj) {
32
- if (!obj) {
33
- this.value = null;
34
- return;
35
- }
36
- var date = obj;
37
- this.value = { year: date.getFullYear(), month: (date.getMonth() + 1), day: date.getDate() };
38
- }
39
- registerOnChange(fn) {
40
- this.onChange = fn;
41
- }
42
- registerOnTouched(fn) {
43
- this.onTouched = fn;
44
- }
45
- setDisabledState(isDisabled) {
46
- this.disabled = isDisabled;
47
- }
48
- valueChanged(newDate) {
49
- if (newDate) {
50
- if (typeof newDate == 'string') {
51
- let temp = newDate.split('/');
52
- let res = new Date(+temp[0], (+temp[1]) - 1, +temp[2]);
53
- this.onChange(res);
54
- this.onTouched(res);
55
- }
56
- else {
57
- let res = new Date(newDate.year, newDate.month - 1, newDate.day);
58
- this.onChange(res);
59
- this.onTouched(res);
60
- }
61
- }
62
- else {
63
- this.onChange(null);
64
- this.onTouched(null);
65
- }
66
- }
67
- setToday() {
68
- this.value = this.today;
69
- this.valueChanged(this.value);
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: YsDatepickerComponent, isStandalone: true, selector: "ys-datepicker", inputs: { firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", isFooter: "isFooter", todayLabel: "todayLabel", footer: "footer", disabled: "disabled" }, providers: [
73
- {
74
- provide: NG_VALUE_ACCESSOR,
75
- useExisting: forwardRef(() => YsDatepickerComponent),
76
- multi: true
77
- },
78
- I18n,
79
- { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
80
- { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
81
- ], ngImport: i0, template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-primary]=\"selected\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "component", type: i1.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerComponent, decorators: [{
84
- type: Component,
85
- args: [{ selector: 'ys-datepicker', standalone: true, imports: [NgbDatepickerModule, FormsModule, JsonPipe, NgIf], providers: [
86
- {
87
- provide: NG_VALUE_ACCESSOR,
88
- useExisting: forwardRef(() => YsDatepickerComponent),
89
- multi: true
90
- },
91
- I18n,
92
- { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
93
- { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
94
- ], template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-primary]=\"selected\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"] }]
95
- }], propDecorators: { firstDayOfWeek: [{
96
- type: Input
97
- }], weekend: [{
98
- type: Input
99
- }], isFooter: [{
100
- type: Input
101
- }], todayLabel: [{
102
- type: Input
103
- }], footer: [{
104
- type: Input
105
- }], disabled: [{
106
- type: Input
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy95b296c29mdC95b296c29mdC1uZy9kYXRlcGlja2VyL3NyYy95cy1kYXRlcGlja2VyL3lzLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveW9venNvZnQveW9venNvZnQtbmcvZGF0ZXBpY2tlci9zcmMveXMtZGF0ZXBpY2tlci95cy1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxXQUFXLEVBQVcsc0JBQXNCLEVBQWlCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakosT0FBTyxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQW1CMUYsTUFBTSxPQUFPLHFCQUFxQjtJQWpCbEM7UUFtQkUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixVQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxPQUFPLENBQUM7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cnQgeyBKc29uUGlwZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkRhdGUsIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIE5nYkRhdGVTdHJ1Y3QsIE5nYkRhdGVwaWNrZXJJMThuLCBOZ2JEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBJMThuLCBZc0RhdGVQYXJzZXJGb3JtYXR0ZXJTZXJ2aWNlLCBZc0RhdGVwaWNrZXJJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneXMtZGF0ZXBpY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdiRGF0ZXBpY2tlck1vZHVsZSwgRm9ybXNNb2R1bGUsIEpzb25QaXBlLCBOZ0lmXSxcclxuICB0ZW1wbGF0ZVVybDogJy4veXMtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4veXMtZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gWXNEYXRlcGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgICBJMThuLFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IFlzRGF0ZXBpY2tlckkxOG5TZXJ2aWNlIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBZc0RhdGVQYXJzZXJGb3JtYXR0ZXJTZXJ2aWNlIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBZc0RhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIGNhbGVuZGFyID0gaW5qZWN0KE5nYkNhbGVuZGFyKTtcclxuICB0b2RheSA9IGluamVjdChOZ2JDYWxlbmRhcikuZ2V0VG9kYXkoKTtcclxuXHJcbiAgQElucHV0KCkgZmlyc3REYXlPZldlZWs6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgd2Vla2VuZDogbnVtYmVyW10gPSBbNiwgN107XHJcblxyXG4gIEBJbnB1dCgpIGlzRm9vdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0b2RheUxhYmVsOiBzdHJpbmcgPSBcIlRvZGF5XCI7XHJcbiAgQElucHV0KCkgZm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF92YWx1ZTogTmdiRGF0ZVN0cnVjdCB8IG51bGwgPSBudWxsO1xyXG4gIGdldCB2YWx1ZSgpOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfVxyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghb2JqKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGRhdGU6IERhdGUgPSBvYmo7XHJcbiAgICB0aGlzLnZhbHVlID0geyB5ZWFyOiBkYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiAoZGF0ZS5nZXRNb250aCgpICsgMSksIGRheTogZGF0ZS5nZXREYXRlKCkgfTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgbWFya0Rpc2FibGVkID0gKGRhdGU6IE5nYkRhdGUsIGN1cnJlbnQ/OiB7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlciB9KSA9PiBkYXRlLm1vbnRoICE9PSBjdXJyZW50Py5tb250aDtcclxuICBpc1dlZWtlbmQgPSAoZGF0ZTogTmdiRGF0ZSkgPT4gdGhpcy53ZWVrZW5kLmluY2x1ZGVzKHRoaXMuY2FsZW5kYXIuZ2V0V2Vla2RheShkYXRlKSk7XHJcblxyXG4gIHZhbHVlQ2hhbmdlZChuZXdEYXRlOiBOZ2JEYXRlU3RydWN0IHwgc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgaWYgKG5ld0RhdGUpIHtcclxuICAgICAgaWYgKHR5cGVvZiBuZXdEYXRlID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgbGV0IHRlbXAgPSBuZXdEYXRlLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgbGV0IHJlczogRGF0ZSA9IG5ldyBEYXRlKCt0ZW1wWzBdLCAoK3RlbXBbMV0pIC0gMSwgK3RlbXBbMl0pO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UocmVzKTtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZChyZXMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCByZXM6IERhdGUgPSBuZXcgRGF0ZShuZXdEYXRlLnllYXIsIG5ld0RhdGUubW9udGggLSAxLCBuZXdEYXRlLmRheSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShyZXMpO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VG9kYXkoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy50b2RheTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nYi1kYXRlcGlja2VyICNkcCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCIgW2RheVRlbXBsYXRlXT1cImN1c3RvbURheVwiXHJcbiAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiBwbGFjZWhvbGRlcj1cInl5eXkvbW0vZGRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2VkKHZhbHVlKVwiIC8+XHJcblxyXG48bmctdGVtcGxhdGUgI2N1c3RvbURheSBsZXQtZGF0ZSBsZXQtY3VycmVudE1vbnRoPVwiY3VycmVudE1vbnRoXCIgbGV0LXNlbGVjdGVkPVwic2VsZWN0ZWRcIiBsZXQtZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcbiAgICBsZXQtZm9jdXNlZD1cImZvY3VzZWRcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY3VzdG9tLWRheVwiIFtjbGFzcy53ZWVrZW5kXT1cImlzV2Vla2VuZChkYXRlKVwiIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIiBbY2xhc3MuYmctcHJpbWFyeV09XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCJkYXRlLm1vbnRoICE9PSBjdXJyZW50TW9udGhcIiBbY2xhc3MudGV4dC1tdXRlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgIHt7IGRhdGUuZGF5IH19XHJcbiAgICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJpc0Zvb3RlclwiPlxyXG4gICAgICAgIDxociBjbGFzcz1cIm15LTBcIiAvPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIHt7Zm9vdGVyfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG0tMiBmbG9hdC1zdGFydFwiIChjbGljayk9XCJzZXRUb2RheSgpO1wiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj57e3RvZGF5TGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -1,127 +0,0 @@
1
- import { JsonPipe, NgIf } from '@angular/common';
2
- import { Component, Input, forwardRef, inject } from '@angular/core';
3
- import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { NgbCalendar, NgbCalendarPersian, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
5
- import { JalaliDate } from '../models';
6
- import { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../services";
9
- import * as i2 from "@ng-bootstrap/ng-bootstrap";
10
- import * as i3 from "@angular/forms";
11
- export class YsDatepickerPersianComponent {
12
- get language() {
13
- return this._language;
14
- }
15
- set language(value) {
16
- this._language = value;
17
- this.i18N.language = this._language;
18
- }
19
- get value() {
20
- return this._value;
21
- }
22
- set value(val) {
23
- this._value = val;
24
- }
25
- constructor(i18N) {
26
- this.i18N = i18N;
27
- this.calendar = inject(NgbCalendar);
28
- this.today = inject(NgbCalendar).getToday();
29
- this.firstDayOfWeek = 6;
30
- this.weekend = [5];
31
- this._language = LanguageType[LanguageType.fa];
32
- this.isFooter = true;
33
- this.todayLabel = "امروز";
34
- this.footer = null;
35
- this._value = null;
36
- this.disabled = false;
37
- this.onChange = () => { };
38
- this.onTouched = () => { };
39
- this.markDisabled = (date, current) => date.month !== current?.month;
40
- this.isWeekend = (date) => this.weekend.includes(this.calendar.getWeekday(date));
41
- this.language = LanguageType[LanguageType.fa];
42
- }
43
- writeValue(obj) {
44
- if (!obj) {
45
- this.value = null;
46
- return;
47
- }
48
- var date = obj;
49
- let persianDate = JalaliDate.gregorianToJalali(date.getFullYear(), date.getMonth() + 1, date.getDate());
50
- this.value = { year: persianDate[0], month: persianDate[1], day: persianDate[2] };
51
- }
52
- registerOnChange(fn) {
53
- this.onChange = fn;
54
- }
55
- registerOnTouched(fn) {
56
- this.onTouched = fn;
57
- }
58
- setDisabledState(isDisabled) {
59
- this.disabled = isDisabled;
60
- }
61
- valueChanged(newDate) {
62
- if (newDate) {
63
- if (typeof newDate == 'string') {
64
- let temp = newDate.split('/');
65
- let convertedDate = JalaliDate.jalaliToGregorian(+temp[0], (+temp[1]) - 1, +temp[2]);
66
- let res = new Date(+convertedDate[0], (+convertedDate[1]) - 1, +convertedDate[2]);
67
- this.onChange(res);
68
- this.onTouched(res);
69
- }
70
- else {
71
- let convertedDate = JalaliDate.jalaliToGregorian(newDate.year, newDate.month, newDate.day);
72
- var res = new Date(+convertedDate[0], +convertedDate[1] - 1, +convertedDate[2]);
73
- this.onChange(res);
74
- this.onTouched(res);
75
- }
76
- }
77
- else {
78
- this.onChange(null);
79
- this.onTouched(null);
80
- }
81
- }
82
- setToday() {
83
- this.value = this.today;
84
- this.valueChanged(this.value);
85
- }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerPersianComponent, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: YsDatepickerPersianComponent, isStandalone: true, selector: "ys-datepicker-persian", inputs: { firstDayOfWeek: "firstDayOfWeek", weekend: "weekend", language: "language", isFooter: "isFooter", todayLabel: "todayLabel", footer: "footer", disabled: "disabled" }, providers: [
88
- {
89
- provide: NG_VALUE_ACCESSOR,
90
- useExisting: forwardRef(() => YsDatepickerPersianComponent),
91
- multi: true
92
- },
93
- I18n,
94
- { provide: NgbCalendar, useClass: NgbCalendarPersian },
95
- { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
96
- { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
97
- ], ngImport: i0, template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\" (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-primary]=\"selected\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NgbDatepickerModule }, { kind: "component", type: i2.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: YsDatepickerPersianComponent, decorators: [{
100
- type: Component,
101
- args: [{ selector: 'ys-datepicker-persian', standalone: true, imports: [NgbDatepickerModule, FormsModule, JsonPipe, NgIf], providers: [
102
- {
103
- provide: NG_VALUE_ACCESSOR,
104
- useExisting: forwardRef(() => YsDatepickerPersianComponent),
105
- multi: true
106
- },
107
- I18n,
108
- { provide: NgbCalendar, useClass: NgbCalendarPersian },
109
- { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },
110
- { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }
111
- ], template: "<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\" (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n<ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-primary]=\"selected\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <span *ngIf=\"isFooter\">\r\n <hr class=\"my-0\" />\r\n <span *ngIf=\"footer\">\r\n {{footer}}\r\n </span>\r\n <span *ngIf=\"!footer\">\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n </span>\r\n</ng-template>", styles: ["::ng-deep html[dir=rtl] .ngb-dp-arrow-prev .ngb-dp-navigation-chevron{transform:rotate(45deg)}::ng-deep html[dir=rtl] .ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(-135deg)}::ng-deep html[dir=rtl] .form-select{background-position:left .75rem center}::ng-deep html[dir=rtl] .ngb-dp-month:first-child .ngb-dp-week{padding-right:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month:last-child .ngb-dp-week{padding-left:.25rem}::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,::ng-deep html[dir=rtl] .ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-right:1rem}::ng-deep html[dir=rtl] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,::ng-deep html[dir=rtl] .input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}::ng-deep html[dir=rtl] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(var(--bs-border-width) * -1);border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;border-top-right-radius:0;border-bottom-right-radius:0}::ng-deep .ngb-dp-day{display:flex;align-items:center}.custom-day{text-align:center;padding:.185rem .25rem;border-radius:.25rem;display:inline-block;width:2rem;height:2rem;line-height:1.7}.weekend{color:var(--bs-danger)}.custom-day:hover,.custom-day.focused{background-color:var(--bs-gray-300)}.hidden{display:none}\n"] }]
112
- }], ctorParameters: () => [{ type: i1.I18n }], propDecorators: { firstDayOfWeek: [{
113
- type: Input
114
- }], weekend: [{
115
- type: Input
116
- }], language: [{
117
- type: Input
118
- }], isFooter: [{
119
- type: Input
120
- }], todayLabel: [{
121
- type: Input
122
- }], footer: [{
123
- type: Input
124
- }], disabled: [{
125
- type: Input
126
- }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXMtZGF0ZXBpY2tlci1wZXJzaWFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3lvb3pzb2Z0L3lvb3pzb2Z0LW5nL2RhdGVwaWNrZXIvc3JjL3lzLWRhdGVwaWNrZXItcGVyc2lhbi95cy1kYXRlcGlja2VyLXBlcnNpYW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveW9venNvZnQveW9venNvZnQtbmcvZGF0ZXBpY2tlci9zcmMveXMtZGF0ZXBpY2tlci1wZXJzaWFuL3lzLWRhdGVwaWNrZXItcGVyc2lhbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFXLHNCQUFzQixFQUFpQixpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsNEJBQTRCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBb0J4RyxNQUFNLE9BQU8sNEJBQTRCO0lBU3ZDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJ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QUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvblBpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkNhbGVuZGFyLCBOZ2JDYWxlbmRhclBlcnNpYW4sIE5nYkRhdGUsIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIE5nYkRhdGVTdHJ1Y3QsIE5nYkRhdGVwaWNrZXJJMThuLCBOZ2JEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBKYWxhbGlEYXRlIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSTE4biwgTGFuZ3VhZ2VUeXBlLCBZc0RhdGVQYXJzZXJGb3JtYXR0ZXJTZXJ2aWNlLCBZc0RhdGVwaWNrZXJJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneXMtZGF0ZXBpY2tlci1wZXJzaWFuJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ2JEYXRlcGlja2VyTW9kdWxlLCBGb3Jtc01vZHVsZSwgSnNvblBpcGUsIE5nSWZdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi95cy1kYXRlcGlja2VyLXBlcnNpYW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3lzLWRhdGVwaWNrZXItcGVyc2lhbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gWXNEYXRlcGlja2VyUGVyc2lhbkNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgSTE4bixcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhclBlcnNpYW4gfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZXBpY2tlckkxOG4sIHVzZUNsYXNzOiBZc0RhdGVwaWNrZXJJMThuU2VydmljZSB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLCB1c2VDbGFzczogWXNEYXRlUGFyc2VyRm9ybWF0dGVyU2VydmljZSB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWXNEYXRlcGlja2VyUGVyc2lhbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgY2FsZW5kYXIgPSBpbmplY3QoTmdiQ2FsZW5kYXIpO1xyXG4gIHRvZGF5ID0gaW5qZWN0KE5nYkNhbGVuZGFyKS5nZXRUb2RheSgpO1xyXG5cclxuICBASW5wdXQoKSBmaXJzdERheU9mV2VlazogbnVtYmVyID0gNjtcclxuICBASW5wdXQoKSB3ZWVrZW5kOiBudW1iZXJbXSA9IFs1XTtcclxuXHJcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2U6IHN0cmluZyA9IExhbmd1YWdlVHlwZVtMYW5ndWFnZVR5cGUuZmFdO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG4gIHNldCBsYW5ndWFnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9sYW5ndWFnZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5pMThOLmxhbmd1YWdlID0gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpc0Zvb3RlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdG9kYXlMYWJlbDogc3RyaW5nID0gXCLYp9mF2LHZiNiyXCI7XHJcbiAgQElucHV0KCkgZm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIF92YWx1ZTogTmdiRGF0ZVN0cnVjdCB8IG51bGwgPSBudWxsO1xyXG4gIGdldCB2YWx1ZSgpOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfVxyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaTE4TjogSTE4bikge1xyXG4gICAgdGhpcy5sYW5ndWFnZSA9IExhbmd1YWdlVHlwZVtMYW5ndWFnZVR5cGUuZmFdO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCFvYmopIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZGF0ZTogRGF0ZSA9IG9iajtcclxuICAgIGxldCBwZXJzaWFuRGF0ZTogbnVtYmVyW10gPSBKYWxhbGlEYXRlLmdyZWdvcmlhblRvSmFsYWxpKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgZGF0ZS5nZXREYXRlKCkpO1xyXG4gICAgdGhpcy52YWx1ZSA9IHsgeWVhcjogcGVyc2lhbkRhdGVbMF0sIG1vbnRoOiBwZXJzaWFuRGF0ZVsxXSwgZGF5OiBwZXJzaWFuRGF0ZVsyXSB9O1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBtYXJrRGlzYWJsZWQgPSAoZGF0ZTogTmdiRGF0ZSwgY3VycmVudD86IHsgbW9udGg6IG51bWJlcjsgeWVhcjogbnVtYmVyIH0pID0+IGRhdGUubW9udGggIT09IGN1cnJlbnQ/Lm1vbnRoO1xyXG4gIGlzV2Vla2VuZCA9IChkYXRlOiBOZ2JEYXRlKSA9PiB0aGlzLndlZWtlbmQuaW5jbHVkZXModGhpcy5jYWxlbmRhci5nZXRXZWVrZGF5KGRhdGUpKTtcclxuXHJcbiAgdmFsdWVDaGFuZ2VkKG5ld0RhdGU6IE5nYkRhdGVTdHJ1Y3QgfCBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAobmV3RGF0ZSkge1xyXG4gICAgICBpZiAodHlwZW9mIG5ld0RhdGUgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICBsZXQgdGVtcCA9IG5ld0RhdGUuc3BsaXQoJy8nKTtcclxuICAgICAgICBsZXQgY29udmVydGVkRGF0ZTogbnVtYmVyW10gPSBKYWxhbGlEYXRlLmphbGFsaVRvR3JlZ29yaWFuKCt0ZW1wWzBdLCAoK3RlbXBbMV0pIC0gMSwgK3RlbXBbMl0pO1xyXG4gICAgICAgIGxldCByZXM6IERhdGUgPSBuZXcgRGF0ZSgrY29udmVydGVkRGF0ZVswXSwgKCtjb252ZXJ0ZWREYXRlWzFdKSAtIDEsICtjb252ZXJ0ZWREYXRlWzJdKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHJlcyk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQocmVzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgY29udmVydGVkRGF0ZTogbnVtYmVyW10gPSBKYWxhbGlEYXRlLmphbGFsaVRvR3JlZ29yaWFuKG5ld0RhdGUueWVhciwgbmV3RGF0ZS5tb250aCwgbmV3RGF0ZS5kYXkpO1xyXG4gICAgICAgIHZhciByZXM6IERhdGUgPSBuZXcgRGF0ZSgrY29udmVydGVkRGF0ZVswXSwgK2NvbnZlcnRlZERhdGVbMV0gLSAxLCArY29udmVydGVkRGF0ZVsyXSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShyZXMpO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VG9kYXkoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy50b2RheTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nYi1kYXRlcGlja2VyICNkcCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCIgW2RheVRlbXBsYXRlXT1cImN1c3RvbURheVwiXHJcbiAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiBwbGFjZWhvbGRlcj1cInl5eXkvbW0vZGRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQodmFsdWUpXCIgLz5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY3VzdG9tRGF5IGxldC1kYXRlIGxldC1jdXJyZW50TW9udGg9XCJjdXJyZW50TW9udGhcIiBsZXQtc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiIGxldC1kaXNhYmxlZD1cImRpc2FibGVkXCJcclxuICAgIGxldC1mb2N1c2VkPVwiZm9jdXNlZFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjdXN0b20tZGF5XCIgW2NsYXNzLndlZWtlbmRdPVwiaXNXZWVrZW5kKGRhdGUpXCIgW2NsYXNzLmZvY3VzZWRdPVwiZm9jdXNlZFwiIFtjbGFzcy5iZy1wcmltYXJ5XT1cInNlbGVjdGVkXCJcclxuICAgICAgICBbY2xhc3MuaGlkZGVuXT1cImRhdGUubW9udGggIT09IGN1cnJlbnRNb250aFwiIFtjbGFzcy50ZXh0LW11dGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAge3sgZGF0ZS5kYXkgfX1cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICA8c3BhbiAqbmdJZj1cImlzRm9vdGVyXCI+XHJcbiAgICAgICAgPGhyIGNsYXNzPVwibXktMFwiIC8+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAge3tmb290ZXJ9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFmb290ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbS0yIGZsb2F0LXN0YXJ0XCIgKGNsaWNrKT1cInNldFRvZGF5KCk7XCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPnt7dG9kYXlMYWJlbH19PC9idXR0b24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==