@syncfusion/ej2-schedule 30.2.7 → 31.1.17

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 (304) hide show
  1. package/dist/ej2-schedule.min.js +2 -2
  2. package/dist/ej2-schedule.umd.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-schedule.es2015.js +110 -36
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +110 -36
  7. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  8. package/dist/global/ej2-schedule.min.js +2 -2
  9. package/dist/global/ej2-schedule.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/dist/ts/common/calendar-util.d.ts +92 -0
  12. package/dist/ts/common/calendar-util.ts +261 -0
  13. package/dist/ts/common/index.d.ts +4 -0
  14. package/dist/ts/common/index.ts +4 -0
  15. package/dist/ts/components.d.ts +5 -0
  16. package/dist/ts/components.ts +5 -0
  17. package/dist/ts/index.d.ts +6 -0
  18. package/dist/ts/index.ts +7 -0
  19. package/dist/ts/recurrence-editor/date-generator.d.ts +76 -0
  20. package/dist/ts/recurrence-editor/date-generator.ts +1699 -0
  21. package/dist/ts/recurrence-editor/index.d.ts +6 -0
  22. package/dist/ts/recurrence-editor/index.ts +6 -0
  23. package/dist/ts/recurrence-editor/recurrence-editor-model.d.ts +112 -0
  24. package/dist/ts/recurrence-editor/recurrence-editor.d.ts +245 -0
  25. package/dist/ts/recurrence-editor/recurrence-editor.ts +1257 -0
  26. package/dist/ts/schedule/actions/action-base.d.ts +44 -0
  27. package/dist/ts/schedule/actions/action-base.ts +493 -0
  28. package/dist/ts/schedule/actions/crud.d.ts +41 -0
  29. package/dist/ts/schedule/actions/crud.ts +784 -0
  30. package/dist/ts/schedule/actions/data.d.ts +63 -0
  31. package/dist/ts/schedule/actions/data.ts +128 -0
  32. package/dist/ts/schedule/actions/drag.d.ts +75 -0
  33. package/dist/ts/schedule/actions/drag.ts +1401 -0
  34. package/dist/ts/schedule/actions/keyboard.d.ts +100 -0
  35. package/dist/ts/schedule/actions/keyboard.ts +1435 -0
  36. package/dist/ts/schedule/actions/resize.d.ts +27 -0
  37. package/dist/ts/schedule/actions/resize.ts +602 -0
  38. package/dist/ts/schedule/actions/scroll.d.ts +69 -0
  39. package/dist/ts/schedule/actions/scroll.ts +105 -0
  40. package/dist/ts/schedule/actions/touch.d.ts +32 -0
  41. package/dist/ts/schedule/actions/touch.ts +314 -0
  42. package/dist/ts/schedule/actions/virtual-scroll.d.ts +55 -0
  43. package/dist/ts/schedule/actions/virtual-scroll.ts +596 -0
  44. package/dist/ts/schedule/actions/work-cells.d.ts +14 -0
  45. package/dist/ts/schedule/actions/work-cells.ts +151 -0
  46. package/dist/ts/schedule/base/constant.d.ts +102 -0
  47. package/dist/ts/schedule/base/constant.ts +103 -0
  48. package/dist/ts/schedule/base/css-constant.d.ts +475 -0
  49. package/dist/ts/schedule/base/css-constant.ts +475 -0
  50. package/dist/ts/schedule/base/interface.d.ts +673 -0
  51. package/dist/ts/schedule/base/interface.ts +738 -0
  52. package/dist/ts/schedule/base/resource.d.ts +59 -0
  53. package/dist/ts/schedule/base/resource.ts +1091 -0
  54. package/dist/ts/schedule/base/schedule-model.d.ts +930 -0
  55. package/dist/ts/schedule/base/schedule.d.ts +1967 -0
  56. package/dist/ts/schedule/base/schedule.ts +4221 -0
  57. package/dist/ts/schedule/base/type.d.ts +134 -0
  58. package/dist/ts/schedule/base/type.ts +142 -0
  59. package/dist/ts/schedule/base/util.d.ts +266 -0
  60. package/dist/ts/schedule/base/util.ts +492 -0
  61. package/dist/ts/schedule/event-renderer/agenda-base.d.ts +15 -0
  62. package/dist/ts/schedule/event-renderer/agenda-base.ts +423 -0
  63. package/dist/ts/schedule/event-renderer/event-base.d.ts +101 -0
  64. package/dist/ts/schedule/event-renderer/event-base.ts +1501 -0
  65. package/dist/ts/schedule/event-renderer/inline-edit.d.ts +23 -0
  66. package/dist/ts/schedule/event-renderer/inline-edit.ts +287 -0
  67. package/dist/ts/schedule/event-renderer/month.d.ts +60 -0
  68. package/dist/ts/schedule/event-renderer/month.ts +760 -0
  69. package/dist/ts/schedule/event-renderer/timeline-view.d.ts +51 -0
  70. package/dist/ts/schedule/event-renderer/timeline-view.ts +606 -0
  71. package/dist/ts/schedule/event-renderer/vertical-view.d.ts +57 -0
  72. package/dist/ts/schedule/event-renderer/vertical-view.ts +898 -0
  73. package/dist/ts/schedule/event-renderer/year.d.ts +27 -0
  74. package/dist/ts/schedule/event-renderer/year.ts +623 -0
  75. package/dist/ts/schedule/exports/calendar-export.d.ts +16 -0
  76. package/dist/ts/schedule/exports/calendar-export.ts +160 -0
  77. package/dist/ts/schedule/exports/calendar-import.d.ts +18 -0
  78. package/dist/ts/schedule/exports/calendar-import.ts +277 -0
  79. package/dist/ts/schedule/exports/excel-export.d.ts +14 -0
  80. package/dist/ts/schedule/exports/excel-export.ts +89 -0
  81. package/dist/ts/schedule/exports/index.d.ts +7 -0
  82. package/dist/ts/schedule/exports/index.ts +7 -0
  83. package/dist/ts/schedule/exports/print.d.ts +20 -0
  84. package/dist/ts/schedule/exports/print.ts +233 -0
  85. package/dist/ts/schedule/index.d.ts +26 -0
  86. package/dist/ts/schedule/index.ts +26 -0
  87. package/dist/ts/schedule/models/event-settings-model.d.ts +165 -0
  88. package/dist/ts/schedule/models/event-settings.d.ts +149 -0
  89. package/dist/ts/schedule/models/event-settings.ts +187 -0
  90. package/dist/ts/schedule/models/field-options-model.d.ts +37 -0
  91. package/dist/ts/schedule/models/field-options.d.ts +31 -0
  92. package/dist/ts/schedule/models/field-options.ts +41 -0
  93. package/dist/ts/schedule/models/fields-model.d.ts +129 -0
  94. package/dist/ts/schedule/models/fields.d.ts +117 -0
  95. package/dist/ts/schedule/models/fields.ts +149 -0
  96. package/dist/ts/schedule/models/group-model.d.ts +69 -0
  97. package/dist/ts/schedule/models/group.d.ts +60 -0
  98. package/dist/ts/schedule/models/group.ts +75 -0
  99. package/dist/ts/schedule/models/header-rows-model.d.ts +33 -0
  100. package/dist/ts/schedule/models/header-rows.d.ts +30 -0
  101. package/dist/ts/schedule/models/header-rows.ts +35 -0
  102. package/dist/ts/schedule/models/models.d.ts +14 -0
  103. package/dist/ts/schedule/models/models.ts +15 -0
  104. package/dist/ts/schedule/models/quick-info-templates-model.d.ts +52 -0
  105. package/dist/ts/schedule/models/quick-info-templates.d.ts +47 -0
  106. package/dist/ts/schedule/models/quick-info-templates.ts +56 -0
  107. package/dist/ts/schedule/models/resources-model.d.ts +122 -0
  108. package/dist/ts/schedule/models/resources.d.ts +106 -0
  109. package/dist/ts/schedule/models/resources.ts +138 -0
  110. package/dist/ts/schedule/models/time-scale-model.d.ts +57 -0
  111. package/dist/ts/schedule/models/time-scale.d.ts +50 -0
  112. package/dist/ts/schedule/models/time-scale.ts +61 -0
  113. package/dist/ts/schedule/models/toolbar-model.d.ts +196 -0
  114. package/dist/ts/schedule/models/toolbar.d.ts +176 -0
  115. package/dist/ts/schedule/models/toolbar.ts +196 -0
  116. package/dist/ts/schedule/models/views-model.d.ts +370 -0
  117. package/dist/ts/schedule/models/views.d.ts +335 -0
  118. package/dist/ts/schedule/models/views.ts +408 -0
  119. package/dist/ts/schedule/models/work-hours-model.d.ts +29 -0
  120. package/dist/ts/schedule/models/work-hours.d.ts +24 -0
  121. package/dist/ts/schedule/models/work-hours.ts +31 -0
  122. package/dist/ts/schedule/popups/event-tooltip.d.ts +16 -0
  123. package/dist/ts/schedule/popups/event-tooltip.ts +203 -0
  124. package/dist/ts/schedule/popups/event-window.d.ts +118 -0
  125. package/dist/ts/schedule/popups/event-window.ts +2055 -0
  126. package/dist/ts/schedule/popups/form-validator.d.ts +16 -0
  127. package/dist/ts/schedule/popups/form-validator.ts +110 -0
  128. package/dist/ts/schedule/popups/quick-popups.d.ts +78 -0
  129. package/dist/ts/schedule/popups/quick-popups.ts +1470 -0
  130. package/dist/ts/schedule/renderer/agenda.d.ts +45 -0
  131. package/dist/ts/schedule/renderer/agenda.ts +497 -0
  132. package/dist/ts/schedule/renderer/day.d.ts +20 -0
  133. package/dist/ts/schedule/renderer/day.ts +28 -0
  134. package/dist/ts/schedule/renderer/header-renderer.d.ts +48 -0
  135. package/dist/ts/schedule/renderer/header-renderer.ts +736 -0
  136. package/dist/ts/schedule/renderer/month-agenda.d.ts +29 -0
  137. package/dist/ts/schedule/renderer/month-agenda.ts +184 -0
  138. package/dist/ts/schedule/renderer/month.d.ts +61 -0
  139. package/dist/ts/schedule/renderer/month.ts +766 -0
  140. package/dist/ts/schedule/renderer/renderer.d.ts +13 -0
  141. package/dist/ts/schedule/renderer/renderer.ts +165 -0
  142. package/dist/ts/schedule/renderer/timeline-header-row.d.ts +15 -0
  143. package/dist/ts/schedule/renderer/timeline-header-row.ts +132 -0
  144. package/dist/ts/schedule/renderer/timeline-month.d.ts +29 -0
  145. package/dist/ts/schedule/renderer/timeline-month.ts +184 -0
  146. package/dist/ts/schedule/renderer/timeline-view.d.ts +31 -0
  147. package/dist/ts/schedule/renderer/timeline-view.ts +308 -0
  148. package/dist/ts/schedule/renderer/timeline-year.d.ts +22 -0
  149. package/dist/ts/schedule/renderer/timeline-year.ts +450 -0
  150. package/dist/ts/schedule/renderer/vertical-view.d.ts +63 -0
  151. package/dist/ts/schedule/renderer/vertical-view.ts +911 -0
  152. package/dist/ts/schedule/renderer/view-base.d.ts +83 -0
  153. package/dist/ts/schedule/renderer/view-base.ts +709 -0
  154. package/dist/ts/schedule/renderer/week.d.ts +22 -0
  155. package/dist/ts/schedule/renderer/week.ts +35 -0
  156. package/dist/ts/schedule/renderer/work-week.d.ts +22 -0
  157. package/dist/ts/schedule/renderer/work-week.ts +36 -0
  158. package/dist/ts/schedule/renderer/year.d.ts +46 -0
  159. package/dist/ts/schedule/renderer/year.ts +470 -0
  160. package/dist/ts/schedule/timezone/timezone.d.ts +16 -0
  161. package/dist/ts/schedule/timezone/timezone.ts +313 -0
  162. package/package.json +56 -21
  163. package/src/schedule/actions/action-base.js +3 -0
  164. package/src/schedule/actions/drag.js +11 -4
  165. package/src/schedule/actions/keyboard.js +1 -1
  166. package/src/schedule/actions/resize.js +8 -5
  167. package/src/schedule/base/css-constant.d.ts +2 -0
  168. package/src/schedule/base/css-constant.js +2 -0
  169. package/src/schedule/base/schedule.js +15 -1
  170. package/src/schedule/event-renderer/agenda-base.d.ts +1 -1
  171. package/src/schedule/event-renderer/agenda-base.js +5 -4
  172. package/src/schedule/event-renderer/inline-edit.js +11 -6
  173. package/src/schedule/event-renderer/month.js +5 -3
  174. package/src/schedule/event-renderer/vertical-view.js +3 -0
  175. package/src/schedule/event-renderer/year.d.ts +2 -0
  176. package/src/schedule/event-renderer/year.js +28 -4
  177. package/src/schedule/popups/event-tooltip.js +4 -0
  178. package/src/schedule/popups/event-window.js +2 -2
  179. package/src/schedule/popups/quick-popups.js +5 -1
  180. package/src/schedule/renderer/agenda.js +3 -2
  181. package/src/schedule/renderer/vertical-view.js +1 -1
  182. package/src/schedule/renderer/year.js +3 -2
  183. package/styles/bds-lite.css +11 -8
  184. package/styles/bds.css +11 -8
  185. package/styles/bootstrap-dark-lite.css +12 -9
  186. package/styles/bootstrap-dark.css +12 -9
  187. package/styles/bootstrap-lite.css +12 -9
  188. package/styles/bootstrap.css +12 -9
  189. package/styles/bootstrap4-lite.css +11 -8
  190. package/styles/bootstrap4.css +11 -8
  191. package/styles/bootstrap5-dark-lite.css +11 -8
  192. package/styles/bootstrap5-dark.css +11 -8
  193. package/styles/bootstrap5-lite.css +11 -8
  194. package/styles/bootstrap5.3-lite.css +11 -8
  195. package/styles/bootstrap5.3.css +11 -8
  196. package/styles/bootstrap5.css +11 -8
  197. package/styles/fabric-dark-lite.css +12 -9
  198. package/styles/fabric-dark.css +12 -9
  199. package/styles/fabric-lite.css +12 -9
  200. package/styles/fabric.css +12 -9
  201. package/styles/fluent-dark-lite.css +13 -10
  202. package/styles/fluent-dark.css +13 -10
  203. package/styles/fluent-lite.css +13 -10
  204. package/styles/fluent.css +13 -10
  205. package/styles/fluent2-lite.css +11 -8
  206. package/styles/fluent2.css +11 -8
  207. package/styles/highcontrast-light-lite.css +12 -9
  208. package/styles/highcontrast-light.css +12 -9
  209. package/styles/highcontrast-lite.css +12 -9
  210. package/styles/highcontrast.css +12 -9
  211. package/styles/material-dark-lite.css +12 -9
  212. package/styles/material-dark.css +12 -9
  213. package/styles/material-lite.css +12 -9
  214. package/styles/material.css +12 -9
  215. package/styles/material3-dark-lite.css +11 -8
  216. package/styles/material3-dark.css +11 -8
  217. package/styles/material3-lite.css +11 -8
  218. package/styles/material3.css +11 -8
  219. package/styles/recurrence-editor/_bds-definition.scss +1 -0
  220. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +1 -0
  221. package/styles/recurrence-editor/_bootstrap-definition.scss +1 -0
  222. package/styles/recurrence-editor/_bootstrap4-definition.scss +1 -0
  223. package/styles/recurrence-editor/_bootstrap5-definition.scss +1 -0
  224. package/styles/recurrence-editor/_bootstrap5.3-definition.scss +1 -0
  225. package/styles/recurrence-editor/_fabric-dark-definition.scss +1 -0
  226. package/styles/recurrence-editor/_fabric-definition.scss +1 -0
  227. package/styles/recurrence-editor/_fluent-definition.scss +1 -0
  228. package/styles/recurrence-editor/_fluent2-definition.scss +1 -0
  229. package/styles/recurrence-editor/_fusionnew-definition.scss +1 -0
  230. package/styles/recurrence-editor/_highcontrast-definition.scss +1 -0
  231. package/styles/recurrence-editor/_highcontrast-light-definition.scss +1 -0
  232. package/styles/recurrence-editor/_layout.scss +5 -1
  233. package/styles/recurrence-editor/_material-dark-definition.scss +1 -0
  234. package/styles/recurrence-editor/_material-definition.scss +1 -0
  235. package/styles/recurrence-editor/_material3-definition.scss +1 -0
  236. package/styles/recurrence-editor/_tailwind-definition.scss +1 -0
  237. package/styles/recurrence-editor/_tailwind3-definition.scss +1 -0
  238. package/styles/recurrence-editor/bds.css +3 -0
  239. package/styles/recurrence-editor/bootstrap-dark.css +4 -1
  240. package/styles/recurrence-editor/bootstrap.css +4 -1
  241. package/styles/recurrence-editor/bootstrap4.css +3 -0
  242. package/styles/recurrence-editor/bootstrap5-dark.css +3 -0
  243. package/styles/recurrence-editor/bootstrap5.3.css +3 -0
  244. package/styles/recurrence-editor/bootstrap5.css +3 -0
  245. package/styles/recurrence-editor/fabric-dark.css +4 -1
  246. package/styles/recurrence-editor/fabric.css +4 -1
  247. package/styles/recurrence-editor/fluent-dark.css +4 -1
  248. package/styles/recurrence-editor/fluent.css +4 -1
  249. package/styles/recurrence-editor/fluent2.css +3 -0
  250. package/styles/recurrence-editor/highcontrast-light.css +4 -1
  251. package/styles/recurrence-editor/highcontrast.css +4 -1
  252. package/styles/recurrence-editor/material-dark.css +4 -1
  253. package/styles/recurrence-editor/material.css +4 -1
  254. package/styles/recurrence-editor/material3-dark.css +3 -0
  255. package/styles/recurrence-editor/material3.css +3 -0
  256. package/styles/recurrence-editor/tailwind-dark.css +3 -0
  257. package/styles/recurrence-editor/tailwind.css +3 -0
  258. package/styles/recurrence-editor/tailwind3.css +3 -0
  259. package/styles/schedule/_bds-definition.scss +2 -0
  260. package/styles/schedule/_bootstrap-dark-definition.scss +2 -0
  261. package/styles/schedule/_bootstrap-definition.scss +2 -0
  262. package/styles/schedule/_bootstrap4-definition.scss +2 -0
  263. package/styles/schedule/_bootstrap5-definition.scss +2 -0
  264. package/styles/schedule/_bootstrap5.3-definition.scss +2 -0
  265. package/styles/schedule/_fabric-dark-definition.scss +2 -0
  266. package/styles/schedule/_fabric-definition.scss +2 -0
  267. package/styles/schedule/_fluent-definition.scss +3 -1
  268. package/styles/schedule/_fluent2-definition.scss +2 -0
  269. package/styles/schedule/_fusionnew-definition.scss +2 -0
  270. package/styles/schedule/_highcontrast-definition.scss +2 -0
  271. package/styles/schedule/_highcontrast-light-definition.scss +2 -0
  272. package/styles/schedule/_layout.scss +12 -11
  273. package/styles/schedule/_material-dark-definition.scss +2 -0
  274. package/styles/schedule/_material-definition.scss +2 -0
  275. package/styles/schedule/_material3-definition.scss +2 -0
  276. package/styles/schedule/_tailwind-definition.scss +2 -0
  277. package/styles/schedule/_tailwind3-definition.scss +2 -0
  278. package/styles/schedule/bds.css +8 -8
  279. package/styles/schedule/bootstrap-dark.css +8 -8
  280. package/styles/schedule/bootstrap.css +8 -8
  281. package/styles/schedule/bootstrap4.css +8 -8
  282. package/styles/schedule/bootstrap5-dark.css +8 -8
  283. package/styles/schedule/bootstrap5.3.css +8 -8
  284. package/styles/schedule/bootstrap5.css +8 -8
  285. package/styles/schedule/fabric-dark.css +8 -8
  286. package/styles/schedule/fabric.css +8 -8
  287. package/styles/schedule/fluent-dark.css +9 -9
  288. package/styles/schedule/fluent.css +9 -9
  289. package/styles/schedule/fluent2.css +8 -8
  290. package/styles/schedule/highcontrast-light.css +8 -8
  291. package/styles/schedule/highcontrast.css +8 -8
  292. package/styles/schedule/material-dark.css +8 -8
  293. package/styles/schedule/material.css +8 -8
  294. package/styles/schedule/material3-dark.css +8 -8
  295. package/styles/schedule/material3.css +8 -8
  296. package/styles/schedule/tailwind-dark.css +8 -8
  297. package/styles/schedule/tailwind.css +8 -8
  298. package/styles/schedule/tailwind3.css +8 -8
  299. package/styles/tailwind-dark-lite.css +11 -8
  300. package/styles/tailwind-dark.css +11 -8
  301. package/styles/tailwind-lite.css +11 -8
  302. package/styles/tailwind.css +11 -8
  303. package/styles/tailwind3-lite.css +11 -8
  304. package/styles/tailwind3.css +11 -8
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 30.2.7
3
+ * version : 31.1.17
4
4
  * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Calendar functionalities
3
+ */
4
+ /**
5
+ * Defines the calendar type of the scheduler.
6
+ * ```props
7
+ * Islamic :- Denotes the Islamic calendar.
8
+ * Gregorian :- Denotes the Gregorian calendar.
9
+ * ```
10
+ */
11
+ export declare type CalendarType = 'Islamic' | 'Gregorian';
12
+ /** @private */
13
+ export interface CalendarUtil {
14
+ firstDateOfMonth(date: Date): Date;
15
+ lastDateOfMonth(date: Date): Date;
16
+ isMonthStart(date: Date): boolean;
17
+ getLeapYearDaysCount(): number;
18
+ getYearDaysCount(date: Date, interval: number): number;
19
+ getMonthDaysCount(date: Date): number;
20
+ getDate(date: Date): number;
21
+ getMonth(date: Date): number;
22
+ getFullYear(date: Date): number;
23
+ getYearLastDate(date: Date, interval: number): Date;
24
+ getMonthStartDate(date: Date): Date;
25
+ getMonthEndDate(date: Date): Date;
26
+ getExpectedDays(date: Date, days: number[]): number[];
27
+ setDate(dateObj: Date, date: number): void;
28
+ setValidDate(date1: Date, interval: number, startDate: number, month?: number, date2?: Date): void;
29
+ setMonth(date: Date, interval: number, startDate: number): void;
30
+ addYears(date: Date, interval: number, month: number): void;
31
+ isSameMonth(date1: Date, date2: Date): boolean;
32
+ checkMonth(date: Date, months: number[]): boolean;
33
+ compareMonth(date1: Date, date2: Date): boolean;
34
+ isSameYear(date1: Date, date2: Date): boolean;
35
+ isLastMonth(date: Date): boolean;
36
+ isLeapYear(year: number, interval: number): boolean;
37
+ }
38
+ /** @private */
39
+ export declare class Gregorian implements CalendarUtil {
40
+ firstDateOfMonth(date: Date): Date;
41
+ lastDateOfMonth(dt: Date): Date;
42
+ isMonthStart(date: Date): boolean;
43
+ getLeapYearDaysCount(): number;
44
+ getYearDaysCount(date: Date, interval: number): number;
45
+ getDate(date: Date): number;
46
+ getMonth(date: Date): number;
47
+ getFullYear(date: Date): number;
48
+ getYearLastDate(date: Date, interval: number): Date;
49
+ getMonthDaysCount(date: Date): number;
50
+ getMonthStartDate(date: Date): Date;
51
+ getMonthEndDate(date: Date): Date;
52
+ getExpectedDays(date: Date, days: number[]): number[];
53
+ setDate(dateObj: Date, date: number): void;
54
+ setValidDate(date: Date, interval: number, startDate: number, monthValue?: number, beginDate?: Date): void;
55
+ setMonth(date: Date, interval: number, startDate: number): void;
56
+ addYears(date: Date, interval: number): void;
57
+ isSameMonth(date1: Date, date2: Date): boolean;
58
+ checkMonth(date: Date, months: number[]): boolean;
59
+ compareMonth(date1: Date, date2: Date): boolean;
60
+ isSameYear(date1: Date, date2: Date): boolean;
61
+ isLastMonth(date: Date): boolean;
62
+ isLeapYear(year: number, interval: number): boolean;
63
+ }
64
+ /** @private */
65
+ export declare class Islamic implements CalendarUtil {
66
+ firstDateOfMonth(date: Date): Date;
67
+ lastDateOfMonth(date: Date): Date;
68
+ isMonthStart(date: Date): boolean;
69
+ getLeapYearDaysCount(): number;
70
+ getYearDaysCount(date: Date, interval: number): number;
71
+ getDate(date: Date): number;
72
+ getMonth(date: Date): number;
73
+ getFullYear(date: Date): number;
74
+ getYearLastDate(date: Date, interval: number): Date;
75
+ getMonthDaysCount(date: Date): number;
76
+ getMonthStartDate(date: Date): Date;
77
+ getMonthEndDate(date: Date): Date;
78
+ getExpectedDays(date: Date, days: number[]): number[];
79
+ setDate(dateObj: Date, date: number): void;
80
+ setValidDate(date: Date, interval: number, startDate: number, monthValue?: number, beginDate?: Date): void;
81
+ setMonth(date: Date, interval: number, startDate: number): void;
82
+ addYears(date: Date, interval: number, monthValue: number): void;
83
+ isSameMonth(date1: Date, date2: Date): boolean;
84
+ checkMonth(date: Date, months: number[]): boolean;
85
+ compareMonth(date1: Date, date2: Date): boolean;
86
+ isSameYear(date1: Date, date2: Date): boolean;
87
+ isLastMonth(date: Date): boolean;
88
+ private updateDateObj;
89
+ isLeapYear(year: number, interval: number): boolean;
90
+ private getDaysInMonth;
91
+ private getHijriDate;
92
+ }
@@ -0,0 +1,261 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { HijriParser, isNullOrUndefined } from '@syncfusion/ej2-base';
3
+
4
+ /**
5
+ * Calendar functionalities
6
+ */
7
+
8
+ /**
9
+ * Defines the calendar type of the scheduler.
10
+ * ```props
11
+ * Islamic :- Denotes the Islamic calendar.
12
+ * Gregorian :- Denotes the Gregorian calendar.
13
+ * ```
14
+ */
15
+ export type CalendarType = 'Islamic' | 'Gregorian';
16
+
17
+ /** @private */
18
+ export interface CalendarUtil {
19
+ firstDateOfMonth(date: Date): Date;
20
+ lastDateOfMonth(date: Date): Date;
21
+ isMonthStart(date: Date): boolean;
22
+ getLeapYearDaysCount(): number;
23
+ getYearDaysCount(date: Date, interval: number): number;
24
+ getMonthDaysCount(date: Date): number;
25
+ getDate(date: Date): number;
26
+ getMonth(date: Date): number;
27
+ getFullYear(date: Date): number;
28
+ getYearLastDate(date: Date, interval: number): Date;
29
+ getMonthStartDate(date: Date): Date;
30
+ getMonthEndDate(date: Date): Date;
31
+ getExpectedDays(date: Date, days: number[]): number[];
32
+ setDate(dateObj: Date, date: number): void;
33
+ setValidDate(date1: Date, interval: number, startDate: number, month?: number, date2?: Date): void;
34
+ setMonth(date: Date, interval: number, startDate: number): void;
35
+ addYears(date: Date, interval: number, month: number): void;
36
+ isSameMonth(date1: Date, date2: Date): boolean;
37
+ checkMonth(date: Date, months: number[]): boolean;
38
+ compareMonth(date1: Date, date2: Date): boolean;
39
+ isSameYear(date1: Date, date2: Date): boolean;
40
+ isLastMonth(date: Date): boolean;
41
+ isLeapYear(year: number, interval: number): boolean;
42
+ }
43
+
44
+ /** @private */
45
+ export class Gregorian implements CalendarUtil {
46
+ public firstDateOfMonth(date: Date): Date {
47
+ return new Date(date.getFullYear(), date.getMonth());
48
+ }
49
+ public lastDateOfMonth(dt: Date): Date {
50
+ return new Date(dt.getFullYear(), dt.getMonth() + 1, 0);
51
+ }
52
+ public isMonthStart(date: Date): boolean {
53
+ return (date.getDate() === 1);
54
+ }
55
+ public getLeapYearDaysCount(): number {
56
+ return 366;
57
+ }
58
+ public getYearDaysCount(date: Date, interval: number): number {
59
+ return ((date.getFullYear() + interval) % 4 === 0) ? 366 : 365;
60
+ }
61
+ public getDate(date: Date): number {
62
+ return date.getDate();
63
+ }
64
+ public getMonth(date: Date): number {
65
+ return (date.getMonth() + 1);
66
+ }
67
+ public getFullYear(date: Date): number {
68
+ return date.getFullYear();
69
+ }
70
+ public getYearLastDate(date: Date, interval: number): Date {
71
+ return new Date(date.getFullYear() + interval, 0, 0);
72
+ }
73
+ public getMonthDaysCount(date: Date): number {
74
+ return this.lastDateOfMonth(date).getDate();
75
+ }
76
+ public getMonthStartDate(date: Date): Date {
77
+ return new Date(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes());
78
+ }
79
+ public getMonthEndDate(date: Date): Date {
80
+ date.setDate(1);
81
+ return new Date(date.setMonth(date.getMonth() + 1));
82
+ }
83
+ public getExpectedDays(date: Date, days: number[]): number[] {
84
+ return days;
85
+ }
86
+ public setDate(dateObj: Date, date: number): void {
87
+ dateObj.setDate(date);
88
+ }
89
+ public setValidDate(date: Date, interval: number, startDate: number, monthValue?: number, beginDate?: Date): void {
90
+ if (!isNullOrUndefined(beginDate)) {
91
+ date.setMonth((beginDate ? monthValue : date.getMonth()) + interval);
92
+ } else {
93
+ date.setMonth(date.getMonth() + interval, startDate);
94
+ }
95
+ }
96
+ public setMonth(date: Date, interval: number, startDate: number): void {
97
+ date.setDate(1);
98
+ date.setFullYear(date.getFullYear());
99
+ date.setMonth(interval - 1);
100
+ const maxDay: number = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
101
+ date.setDate(Math.min(startDate, maxDay));
102
+ }
103
+ public addYears(date: Date, interval: number): void {
104
+ date.setFullYear(date.getFullYear() + interval);
105
+ }
106
+ public isSameMonth(date1: Date, date2: Date): boolean {
107
+ return (date1.getMonth() === date2.getMonth());
108
+ }
109
+ public checkMonth(date: Date, months: number[]): boolean {
110
+ return (months.indexOf(date.getMonth() + 1) === -1);
111
+ }
112
+ public compareMonth(date1: Date, date2: Date): boolean {
113
+ return (date1.getMonth() > date2.getMonth());
114
+ }
115
+ public isSameYear(date1: Date, date2: Date): boolean {
116
+ return (date1.getFullYear() === date2.getFullYear());
117
+ }
118
+ public isLastMonth(date: Date): boolean {
119
+ return (date.getMonth() === 11);
120
+ }
121
+ public isLeapYear(year: number, interval: number): boolean {
122
+ return ((year + interval) % 4 === 0);
123
+ }
124
+ }
125
+
126
+ /** @private */
127
+ export class Islamic implements CalendarUtil {
128
+ public firstDateOfMonth(date: Date): Date {
129
+ const hDate: Record<string, any> = this.getHijriDate(date);
130
+ const gDate: Date = HijriParser.toGregorian(hDate.year as number, hDate.month as number, 1);
131
+ return gDate;
132
+ }
133
+ public lastDateOfMonth(date: Date): Date {
134
+ const hDate: Record<string, any> = this.getHijriDate(date);
135
+ const daysInMonth: number = this.getDaysInMonth(hDate.month as number, hDate.year as number);
136
+ const gDate: Date = HijriParser.toGregorian(hDate.year as number, hDate.month as number, daysInMonth);
137
+ let finalGDate: Date = new Date(gDate.getTime());
138
+ finalGDate = new Date(finalGDate.setDate(finalGDate.getDate() + 1));
139
+ let finalHDate: Record<string, any> = this.getHijriDate(finalGDate);
140
+ if (hDate.month === finalHDate.month) {
141
+ return finalGDate;
142
+ }
143
+ finalHDate = this.getHijriDate(gDate);
144
+ if (hDate.month === finalHDate.month) {
145
+ return gDate;
146
+ }
147
+ return new Date(gDate.setDate(gDate.getDate() - 1));
148
+ }
149
+ public isMonthStart(date: Date): boolean {
150
+ const hijriDate: Record<string, any> = this.getHijriDate(date);
151
+ return (hijriDate.date === 1);
152
+ }
153
+ public getLeapYearDaysCount(): number {
154
+ return 355;
155
+ }
156
+ public getYearDaysCount(date: Date, interval: number): number {
157
+ const hDate: Record<string, any> = this.getHijriDate(date);
158
+ return this.isLeapYear((hDate.year as number), interval) ? 355 : 354;
159
+ }
160
+ public getDate(date: Date): number {
161
+ const hijriDate: Record<string, any> = this.getHijriDate(date);
162
+ return hijriDate.date as number;
163
+ }
164
+ public getMonth(date: Date): number {
165
+ const hDate: Record<string, any> = this.getHijriDate(date);
166
+ return hDate.month as number;
167
+ }
168
+ public getFullYear(date: Date): number {
169
+ const hDate: Record<string, any> = this.getHijriDate(date);
170
+ return hDate.year as number;
171
+ }
172
+ public getYearLastDate(date: Date, interval: number): Date {
173
+ const hDate: Record<string, any> = this.getHijriDate(date);
174
+ const gDate: Date = HijriParser.toGregorian((hDate.year as number) + interval, 1, 0);
175
+ return gDate;
176
+ }
177
+ public getMonthDaysCount(date: Date): number {
178
+ const maxDate: Date = this.lastDateOfMonth(date);
179
+ const hijriDate: Record<string, any> = this.getHijriDate(maxDate);
180
+ return hijriDate.date as number;
181
+ }
182
+ public getMonthStartDate(date: Date): Date {
183
+ const firstDate: Date = this.firstDateOfMonth(date);
184
+ return new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate(), date.getHours(), date.getMinutes());
185
+ }
186
+ public getMonthEndDate(date: Date): Date {
187
+ const lastDate: Date = this.lastDateOfMonth(date);
188
+ lastDate.setDate(lastDate.getDate() + 1);
189
+ return new Date(lastDate.setMonth(lastDate.getMonth()));
190
+ }
191
+ public getExpectedDays(date: Date, days: number[]): number[] {
192
+ const hDate: Record<string, any> = this.getHijriDate(date);
193
+ const day: number[] = [];
194
+ for (let i: number = 0; i < days.length; i++) {
195
+ const gDate: Date = HijriParser.toGregorian(hDate.year as number, (hDate.month as number), days[parseInt(i.toString(), 10)]);
196
+ day.push(gDate.getDate());
197
+ }
198
+ return day;
199
+ }
200
+ public setDate(dateObj: Date, date: number): void {
201
+ const hDate: Record<string, any> = this.getHijriDate(dateObj);
202
+ const gDate: Date = HijriParser.toGregorian((hDate.year as number), (hDate.month as number), date);
203
+ this.updateDateObj(dateObj, gDate);
204
+ }
205
+ public setValidDate(date: Date, interval: number, startDate: number, monthValue?: number, beginDate?: Date): void {
206
+ const firstDate: Date = (!isNullOrUndefined(beginDate)) ? this.firstDateOfMonth(beginDate) : date;
207
+ const hDate: Record<string, any> = this.getHijriDate(firstDate);
208
+ const gDate: Date = HijriParser.toGregorian(hDate.year as number, (hDate.month as number) + interval, startDate);
209
+ this.updateDateObj(date, gDate);
210
+ }
211
+ public setMonth(date: Date, interval: number, startDate: number): void {
212
+ const hDate: Record<string, any> = this.getHijriDate(date);
213
+ const gDate: Date = HijriParser.toGregorian((hDate.year as number), interval, startDate);
214
+ this.updateDateObj(date, gDate);
215
+ }
216
+ public addYears(date: Date, interval: number, monthValue: number): void {
217
+ const hDate: Record<string, any> = this.getHijriDate(date);
218
+ const gDate: Date = HijriParser.toGregorian((hDate.year as number) + interval, monthValue, 1);
219
+ this.updateDateObj(date, gDate);
220
+ }
221
+ public isSameMonth(date1: Date, date2: Date): boolean {
222
+ const currentHijri: Record<string, any> = this.getHijriDate(date1);
223
+ const tempHijri: Record<string, any> = this.getHijriDate(date2);
224
+ return (currentHijri.month === tempHijri.month);
225
+ }
226
+ public checkMonth(date: Date, months: number[]): boolean {
227
+ const hDate: Record<string, any> = this.getHijriDate(date);
228
+ return (months.indexOf(hDate.month as number) === -1);
229
+ }
230
+ public compareMonth(date1: Date, date2: Date): boolean {
231
+ const hDate: Record<string, Date> = this.getHijriDate(date1);
232
+ const hDate1: Record<string, Date> = this.getHijriDate(date2);
233
+ return (hDate.month > hDate1.month);
234
+ }
235
+ public isSameYear(date1: Date, date2: Date): boolean {
236
+ const hDate: Record<string, any> = this.getHijriDate(date1);
237
+ const hDate1: Record<string, any> = this.getHijriDate(date2);
238
+ return (hDate.year === hDate1.year);
239
+ }
240
+ public isLastMonth(date: Date): boolean {
241
+ const hDate: Record<string, any> = this.getHijriDate(date);
242
+ return ((hDate.month as number) === 12);
243
+ }
244
+ private updateDateObj(date: Date, gDate: Date): void {
245
+ date.setFullYear(gDate.getFullYear(), gDate.getMonth(), gDate.getDate());
246
+ }
247
+ public isLeapYear(year: number, interval: number): boolean {
248
+ return (14 + 11 * (year + interval)) % 30 < 11;
249
+ }
250
+ private getDaysInMonth(month: number, year: number): number {
251
+ let length: number = 0;
252
+ length = 29 + ((month + 1) % 2);
253
+ if (month === 11 && this.isLeapYear(year, 0)) {
254
+ length++;
255
+ }
256
+ return length;
257
+ }
258
+ private getHijriDate(date: Date): Record<string, Date> {
259
+ return HijriParser.getHijriDate(date) as Record<string, Date>;
260
+ }
261
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Calendar util exported items
3
+ */
4
+ export * from './calendar-util';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Calendar util exported items
3
+ */
4
+ export * from './calendar-util';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Export Schedule and Recurrence Editor
3
+ */
4
+ export * from './schedule/base/schedule';
5
+ export * from './recurrence-editor/recurrence-editor';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Export Schedule and Recurrence Editor
3
+ */
4
+ export * from './schedule/base/schedule';
5
+ export * from './recurrence-editor/recurrence-editor';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Export Schedule components
3
+ */
4
+ export * from './schedule/index';
5
+ export * from './recurrence-editor/index';
6
+ export * from './common/index';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Export Schedule components
3
+ */
4
+
5
+ export * from './schedule/index';
6
+ export * from './recurrence-editor/index';
7
+ export * from './common/index';
@@ -0,0 +1,76 @@
1
+ import { L10n } from '@syncfusion/ej2-base';
2
+ import { CalendarUtil, CalendarType } from '../common/calendar-util';
3
+ /**
4
+ * Date Generator from Recurrence Rule
5
+ */
6
+ /**
7
+ * Generate Summary from Recurrence Rule
8
+ *
9
+ * @param {string} rule Accepts the Recurrence rule
10
+ * @param {L10n} localeObject Accepts the locale object
11
+ * @param {string} locale Accepts the locale name
12
+ * @param {CalendarType} calendarType Accepts the calendar type
13
+ * @returns {string} Returns the summary string from given recurrence rule
14
+ */
15
+ export declare function generateSummary(rule: string, localeObject: L10n, locale: string, calendarType?: CalendarType): string;
16
+ /**
17
+ * Generates the date collections from the given recurrence rule
18
+ *
19
+ * @param {Date} startDate Accepts the rule start date
20
+ * @param {string} rule Accepts the recurrence rule
21
+ * @param {string} excludeDate Accepts the exception dates in string format
22
+ * @param {number} startDayOfWeek Accepts the start day index of week
23
+ * @param {number} maximumCount Accepts the maximum number count to generate date collections
24
+ * @param {Date} viewDate Accepts the current date instead of start date
25
+ * @param {CalendarType} calendarMode Accepts the calendar type
26
+ * @param {string} newTimezone Accepts the timezone name
27
+ * @returns {number[]} Returns the collection of dates
28
+ */
29
+ export declare function generate(startDate: Date, rule: string, excludeDate: string, startDayOfWeek: number, maximumCount?: number, viewDate?: Date, calendarMode?: CalendarType, newTimezone?: string): number[];
30
+ /**
31
+ * Generate date object from given date string
32
+ *
33
+ * @param {string} recDateString Accepts the exception date as string
34
+ * @returns {Date} Returns the date from exception date string
35
+ */
36
+ export declare function getDateFromRecurrenceDateString(recDateString: string): Date;
37
+ /**
38
+ * Method to generate recurrence rule object from given rule
39
+ *
40
+ * @param {string} rules Accepts the recurrence rule
41
+ * @returns {RecRule} Returns the recurrence rule object
42
+ */
43
+ export declare function extractObjectFromRule(rules: string): RecRule;
44
+ /**
45
+ * Internal method to get calendar util
46
+ *
47
+ * @param {CalendarType} calendarMode Accepts the calendar type object
48
+ * @returns {CalendarUtil} Returns the calendar util object
49
+ * @private
50
+ */
51
+ export declare function getCalendarUtil(calendarMode: CalendarType): CalendarUtil;
52
+ /** @private */
53
+ export interface RecRule {
54
+ freq: FreqType;
55
+ interval: number;
56
+ count: number;
57
+ until: Date;
58
+ day: string[];
59
+ wkst: string;
60
+ month: number[];
61
+ weekNo: number[];
62
+ monthDay: number[];
63
+ yearDay: number[];
64
+ setPosition: number;
65
+ validRules: string[];
66
+ recExceptionCount?: number;
67
+ }
68
+ /** @private */
69
+ export declare type FreqType = 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY';
70
+ /**
71
+ * Method to generate string from date
72
+ *
73
+ * @param {Date} date Accepts the date value
74
+ * @returns {string} Returns the string value
75
+ */
76
+ export declare function getRecurrenceStringFromDate(date: Date): string;