@syncfusion/ej2-schedule 30.2.4 → 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 (308) 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 +132 -43
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +132 -43
  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 +9 -5
  167. package/src/schedule/actions/virtual-scroll.js +3 -0
  168. package/src/schedule/base/css-constant.d.ts +2 -0
  169. package/src/schedule/base/css-constant.js +2 -0
  170. package/src/schedule/base/schedule.js +15 -1
  171. package/src/schedule/event-renderer/agenda-base.d.ts +1 -1
  172. package/src/schedule/event-renderer/agenda-base.js +5 -4
  173. package/src/schedule/event-renderer/inline-edit.js +11 -6
  174. package/src/schedule/event-renderer/month.js +5 -3
  175. package/src/schedule/event-renderer/vertical-view.js +3 -0
  176. package/src/schedule/event-renderer/year.d.ts +2 -0
  177. package/src/schedule/event-renderer/year.js +28 -4
  178. package/src/schedule/popups/event-tooltip.js +4 -0
  179. package/src/schedule/popups/event-window.js +2 -2
  180. package/src/schedule/popups/quick-popups.js +5 -1
  181. package/src/schedule/renderer/agenda.js +3 -2
  182. package/src/schedule/renderer/month.js +9 -7
  183. package/src/schedule/renderer/vertical-view.js +1 -1
  184. package/src/schedule/renderer/view-base.d.ts +2 -0
  185. package/src/schedule/renderer/view-base.js +9 -0
  186. package/src/schedule/renderer/year.js +3 -2
  187. package/styles/bds-lite.css +11 -8
  188. package/styles/bds.css +11 -8
  189. package/styles/bootstrap-dark-lite.css +12 -9
  190. package/styles/bootstrap-dark.css +12 -9
  191. package/styles/bootstrap-lite.css +12 -9
  192. package/styles/bootstrap.css +12 -9
  193. package/styles/bootstrap4-lite.css +11 -8
  194. package/styles/bootstrap4.css +11 -8
  195. package/styles/bootstrap5-dark-lite.css +11 -8
  196. package/styles/bootstrap5-dark.css +11 -8
  197. package/styles/bootstrap5-lite.css +11 -8
  198. package/styles/bootstrap5.3-lite.css +11 -8
  199. package/styles/bootstrap5.3.css +11 -8
  200. package/styles/bootstrap5.css +11 -8
  201. package/styles/fabric-dark-lite.css +12 -9
  202. package/styles/fabric-dark.css +12 -9
  203. package/styles/fabric-lite.css +12 -9
  204. package/styles/fabric.css +12 -9
  205. package/styles/fluent-dark-lite.css +13 -10
  206. package/styles/fluent-dark.css +13 -10
  207. package/styles/fluent-lite.css +13 -10
  208. package/styles/fluent.css +13 -10
  209. package/styles/fluent2-lite.css +11 -8
  210. package/styles/fluent2.css +11 -8
  211. package/styles/highcontrast-light-lite.css +12 -9
  212. package/styles/highcontrast-light.css +12 -9
  213. package/styles/highcontrast-lite.css +12 -9
  214. package/styles/highcontrast.css +12 -9
  215. package/styles/material-dark-lite.css +12 -9
  216. package/styles/material-dark.css +12 -9
  217. package/styles/material-lite.css +12 -9
  218. package/styles/material.css +12 -9
  219. package/styles/material3-dark-lite.css +11 -8
  220. package/styles/material3-dark.css +11 -8
  221. package/styles/material3-lite.css +11 -8
  222. package/styles/material3.css +11 -8
  223. package/styles/recurrence-editor/_bds-definition.scss +1 -0
  224. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +1 -0
  225. package/styles/recurrence-editor/_bootstrap-definition.scss +1 -0
  226. package/styles/recurrence-editor/_bootstrap4-definition.scss +1 -0
  227. package/styles/recurrence-editor/_bootstrap5-definition.scss +1 -0
  228. package/styles/recurrence-editor/_bootstrap5.3-definition.scss +1 -0
  229. package/styles/recurrence-editor/_fabric-dark-definition.scss +1 -0
  230. package/styles/recurrence-editor/_fabric-definition.scss +1 -0
  231. package/styles/recurrence-editor/_fluent-definition.scss +1 -0
  232. package/styles/recurrence-editor/_fluent2-definition.scss +1 -0
  233. package/styles/recurrence-editor/_fusionnew-definition.scss +1 -0
  234. package/styles/recurrence-editor/_highcontrast-definition.scss +1 -0
  235. package/styles/recurrence-editor/_highcontrast-light-definition.scss +1 -0
  236. package/styles/recurrence-editor/_layout.scss +5 -1
  237. package/styles/recurrence-editor/_material-dark-definition.scss +1 -0
  238. package/styles/recurrence-editor/_material-definition.scss +1 -0
  239. package/styles/recurrence-editor/_material3-definition.scss +1 -0
  240. package/styles/recurrence-editor/_tailwind-definition.scss +1 -0
  241. package/styles/recurrence-editor/_tailwind3-definition.scss +1 -0
  242. package/styles/recurrence-editor/bds.css +3 -0
  243. package/styles/recurrence-editor/bootstrap-dark.css +4 -1
  244. package/styles/recurrence-editor/bootstrap.css +4 -1
  245. package/styles/recurrence-editor/bootstrap4.css +3 -0
  246. package/styles/recurrence-editor/bootstrap5-dark.css +3 -0
  247. package/styles/recurrence-editor/bootstrap5.3.css +3 -0
  248. package/styles/recurrence-editor/bootstrap5.css +3 -0
  249. package/styles/recurrence-editor/fabric-dark.css +4 -1
  250. package/styles/recurrence-editor/fabric.css +4 -1
  251. package/styles/recurrence-editor/fluent-dark.css +4 -1
  252. package/styles/recurrence-editor/fluent.css +4 -1
  253. package/styles/recurrence-editor/fluent2.css +3 -0
  254. package/styles/recurrence-editor/highcontrast-light.css +4 -1
  255. package/styles/recurrence-editor/highcontrast.css +4 -1
  256. package/styles/recurrence-editor/material-dark.css +4 -1
  257. package/styles/recurrence-editor/material.css +4 -1
  258. package/styles/recurrence-editor/material3-dark.css +3 -0
  259. package/styles/recurrence-editor/material3.css +3 -0
  260. package/styles/recurrence-editor/tailwind-dark.css +3 -0
  261. package/styles/recurrence-editor/tailwind.css +3 -0
  262. package/styles/recurrence-editor/tailwind3.css +3 -0
  263. package/styles/schedule/_bds-definition.scss +2 -0
  264. package/styles/schedule/_bootstrap-dark-definition.scss +2 -0
  265. package/styles/schedule/_bootstrap-definition.scss +2 -0
  266. package/styles/schedule/_bootstrap4-definition.scss +2 -0
  267. package/styles/schedule/_bootstrap5-definition.scss +2 -0
  268. package/styles/schedule/_bootstrap5.3-definition.scss +2 -0
  269. package/styles/schedule/_fabric-dark-definition.scss +2 -0
  270. package/styles/schedule/_fabric-definition.scss +2 -0
  271. package/styles/schedule/_fluent-definition.scss +3 -1
  272. package/styles/schedule/_fluent2-definition.scss +2 -0
  273. package/styles/schedule/_fusionnew-definition.scss +2 -0
  274. package/styles/schedule/_highcontrast-definition.scss +2 -0
  275. package/styles/schedule/_highcontrast-light-definition.scss +2 -0
  276. package/styles/schedule/_layout.scss +12 -11
  277. package/styles/schedule/_material-dark-definition.scss +2 -0
  278. package/styles/schedule/_material-definition.scss +2 -0
  279. package/styles/schedule/_material3-definition.scss +2 -0
  280. package/styles/schedule/_tailwind-definition.scss +2 -0
  281. package/styles/schedule/_tailwind3-definition.scss +2 -0
  282. package/styles/schedule/bds.css +8 -8
  283. package/styles/schedule/bootstrap-dark.css +8 -8
  284. package/styles/schedule/bootstrap.css +8 -8
  285. package/styles/schedule/bootstrap4.css +8 -8
  286. package/styles/schedule/bootstrap5-dark.css +8 -8
  287. package/styles/schedule/bootstrap5.3.css +8 -8
  288. package/styles/schedule/bootstrap5.css +8 -8
  289. package/styles/schedule/fabric-dark.css +8 -8
  290. package/styles/schedule/fabric.css +8 -8
  291. package/styles/schedule/fluent-dark.css +9 -9
  292. package/styles/schedule/fluent.css +9 -9
  293. package/styles/schedule/fluent2.css +8 -8
  294. package/styles/schedule/highcontrast-light.css +8 -8
  295. package/styles/schedule/highcontrast.css +8 -8
  296. package/styles/schedule/material-dark.css +8 -8
  297. package/styles/schedule/material.css +8 -8
  298. package/styles/schedule/material3-dark.css +8 -8
  299. package/styles/schedule/material3.css +8 -8
  300. package/styles/schedule/tailwind-dark.css +8 -8
  301. package/styles/schedule/tailwind.css +8 -8
  302. package/styles/schedule/tailwind3.css +8 -8
  303. package/styles/tailwind-dark-lite.css +11 -8
  304. package/styles/tailwind-dark.css +11 -8
  305. package/styles/tailwind-lite.css +11 -8
  306. package/styles/tailwind.css +11 -8
  307. package/styles/tailwind3-lite.css +11 -8
  308. package/styles/tailwind3.css +11 -8
@@ -0,0 +1,203 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { isNullOrUndefined, Internationalization, append, createElement, addClass, initializeCSPTemplate, removeClass } from '@syncfusion/ej2-base';
3
+ import { Tooltip, TooltipEventArgs } from '@syncfusion/ej2-popups';
4
+ import { Schedule } from '../base/schedule';
5
+ import { TdData, ResourceDetails, EventFieldsMapping, TooltipOpenEventArgs } from '../base/interface';
6
+ import * as cls from '../base/css-constant';
7
+ import * as util from '../base/util';
8
+ import * as events from '../base/constant';
9
+
10
+ /**
11
+ * Tooltip for Schedule
12
+ */
13
+ export class EventTooltip {
14
+ private parent: Schedule;
15
+ private tooltipObj: Tooltip;
16
+
17
+ constructor(parent: Schedule) {
18
+ this.parent = parent;
19
+ this.tooltipObj = new Tooltip({
20
+ animation: { close: { effect: 'FadeOut' } },
21
+ content: 'No title',
22
+ position: 'BottomRight',
23
+ offsetY: 10,
24
+ mouseTrail: this.parent.isAdaptive ? false : true,
25
+ showTipPointer: false,
26
+ cssClass: this.parent.cssClass + ' ' + cls.EVENT_TOOLTIP_ROOT_CLASS,
27
+ target: this.getTargets(),
28
+ beforeRender: this.onBeforeRender.bind(this),
29
+ beforeClose: this.onTooltipClose.bind(this),
30
+ beforeOpen: this.onTooltipOpen.bind(this),
31
+ enableRtl: this.parent.enableRtl,
32
+ enableHtmlSanitizer: this.parent.enableHtmlSanitizer
33
+ });
34
+ this.tooltipObj.appendTo(this.parent.element);
35
+ }
36
+
37
+ private getTargets(): string {
38
+ const targets: string[] = [];
39
+ if (this.parent.activeViewOptions.group.headerTooltipTemplate) {
40
+ targets.push('.' + cls.RESOURCE_CELLS_CLASS);
41
+ }
42
+ if (this.parent.eventSettings.enableTooltip) {
43
+ targets.push('.' + cls.APPOINTMENT_CLASS);
44
+ }
45
+ return targets.join(',');
46
+ }
47
+
48
+ private onBeforeRender(args: TooltipEventArgs): void {
49
+ if (this.parent.uiStateValues.isSwipeScroll) {
50
+ args.cancel = true;
51
+ return;
52
+ }
53
+ if (!isNullOrUndefined(args.target.getAttribute('data-tooltip-id'))) {
54
+ return;
55
+ }
56
+ if (args.target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeViewOptions.group.resources.length > 0) {
57
+ if (args.target.closest('.' + cls.LEFT_INDENT_WRAP_CLASS)) {
58
+ args.cancel = true;
59
+ return;
60
+ }
61
+ let resCollection: TdData;
62
+ if (this.parent.activeView.isTimelineView()) {
63
+ const index: number = parseInt(args.target.getAttribute('data-group-index') as string, 10);
64
+ resCollection = this.parent.resourceBase.lastResourceLevel[parseInt(index.toString(), 10)];
65
+ } else {
66
+ const rowIndex: number = (args.target.parentNode as HTMLTableRowElement).sectionRowIndex;
67
+ const cellIndex: number = (args.target as HTMLTableCellElement).cellIndex;
68
+ resCollection =
69
+ this.parent.activeView.getColumnLevels()[parseInt(rowIndex.toString(), 10)][parseInt(cellIndex.toString(), 10)];
70
+ }
71
+ const data: ResourceDetails = {
72
+ resource: resCollection.resource,
73
+ resourceData: resCollection.resourceData
74
+ };
75
+ const contentContainer: HTMLElement = createElement('div');
76
+ const templateId: string = this.parent.element.id + '_headerTooltipTemplate';
77
+ const tooltipTemplate: HTMLElement[] =
78
+ [].slice.call(this.parent.getHeaderTooltipTemplate()(data, this.parent, 'headerTooltipTemplate', templateId, false));
79
+ append(tooltipTemplate, contentContainer);
80
+ this.setContent(contentContainer);
81
+ this.parent.renderTemplates();
82
+ return;
83
+ }
84
+ const record: Record<string, any> = this.parent.eventBase.getEventByGuid(args.target.getAttribute('data-guid'));
85
+ if (isNullOrUndefined(record)) {
86
+ return;
87
+ }
88
+ if (!isNullOrUndefined(this.parent.eventSettings.tooltipTemplate)) {
89
+ const contentContainer: HTMLElement = createElement('div');
90
+ const templateId: string = this.parent.element.id + '_tooltipTemplate';
91
+ const tooltipTemplate: HTMLElement[] =
92
+ [].slice.call(this.parent.getEventTooltipTemplate()(record, this.parent, 'tooltipTemplate', templateId, false));
93
+ append(tooltipTemplate, contentContainer);
94
+ this.setContent(contentContainer);
95
+ } else {
96
+ const globalize: Internationalization = this.parent.globalize;
97
+ const fields: EventFieldsMapping = this.parent.eventFields;
98
+ const eventStart: Date = new Date('' + record[fields.startTime]);
99
+ let eventEnd: Date = new Date('' + record[fields.endTime]) as Date;
100
+ eventEnd = ((eventEnd.getTime() - eventStart.getTime() !== 0) && eventEnd.getHours() === 0 && eventEnd.getMinutes() === 0) ?
101
+ new Date(eventEnd.setMilliseconds(-1000)) : eventEnd;
102
+ const startDate: Date = util.resetTime(new Date('' + eventStart));
103
+ const endDate: Date = util.resetTime(new Date('' + eventEnd));
104
+ const tooltipSubject: string = (record[fields.subject] || this.parent.eventSettings.fields.subject.default
105
+ || this.parent.localeObj.getConstant('addTitle')) as string;
106
+ const tooltipLocation: string = !isNullOrUndefined(record[fields.location]) ? <string>record[fields.location] : '';
107
+ let startMonthDate: string = '';
108
+ let startMonthYearDate: string = '';
109
+ let endMonthYearDate: string = '';
110
+ startMonthDate = globalize.formatDate(eventStart, {
111
+ type: 'date', skeleton: 'MMMd', calendar: this.parent.getCalendarMode()
112
+ });
113
+ startMonthYearDate = globalize.formatDate(eventStart, {
114
+ type: 'date', skeleton: 'medium', calendar: this.parent.getCalendarMode()
115
+ });
116
+ endMonthYearDate = globalize.formatDate(eventEnd, {
117
+ type: 'date', skeleton: 'medium', calendar: this.parent.getCalendarMode()
118
+ });
119
+
120
+ startMonthDate = util.capitalizeFirstWord(startMonthDate, 'single');
121
+ startMonthYearDate = util.capitalizeFirstWord(startMonthYearDate, 'single');
122
+ endMonthYearDate = util.capitalizeFirstWord(endMonthYearDate, 'single');
123
+ const startTime: string = this.parent.getTimeString(eventStart as Date);
124
+ const endTime: string = this.parent.getTimeString(eventEnd as Date);
125
+ let tooltipDetails: string;
126
+ if (startDate.getTime() === endDate.getTime()) {
127
+ tooltipDetails =
128
+ globalize.formatDate(eventStart, {
129
+ type: 'date', skeleton: 'long', calendar: this.parent.getCalendarMode()
130
+ });
131
+ tooltipDetails = util.capitalizeFirstWord(tooltipDetails, 'single');
132
+ } else {
133
+ tooltipDetails = (startDate.getFullYear() === endDate.getFullYear()) ? (startMonthDate + ' - ' + endMonthYearDate) :
134
+ (startMonthYearDate + ' - ' + endMonthYearDate);
135
+ }
136
+ const tooltipTime: string = (record[fields.isAllDay]) ? this.parent.localeObj.getConstant('allDay') :
137
+ (startTime + ' - ' + endTime);
138
+ const content: string = '<div><div class="e-subject">' + tooltipSubject + '</div>' +
139
+ '<div class="e-location">' + tooltipLocation + '</div>' +
140
+ '<div class="e-details">' + tooltipDetails + '</div>' +
141
+ '<div class="e-all-day">' + tooltipTime + '</div></div>';
142
+ const contentTemp: Function = function(): string {
143
+ return content;
144
+ };
145
+ this.setContent(initializeCSPTemplate(contentTemp));
146
+ }
147
+ this.parent.renderTemplates(() => {
148
+ if (this.parent && (this.parent as any).isReact && !isNullOrUndefined(this.parent.eventSettings.tooltipTemplate)) {
149
+ const wraps: Element = (document.querySelector('.' + cls.TOOLTIP_HIDDEN_CLASS));
150
+ if (wraps) {
151
+ removeClass([wraps], cls.TOOLTIP_HIDDEN_CLASS);
152
+ }
153
+ }
154
+ });
155
+ }
156
+ private onTooltipOpen(args: TooltipEventArgs): void {
157
+ if (args.element && this.parent.isReact && !isNullOrUndefined(this.parent.eventSettings.tooltipTemplate) ) {
158
+ addClass([args.element], cls.TOOLTIP_HIDDEN_CLASS);
159
+ }
160
+ const record: Record<string, any> = this.parent.eventBase.getEventByGuid(args.target.getAttribute('data-guid'));
161
+ if (isNullOrUndefined(record)) {
162
+ return;
163
+ }
164
+ const callbackArgs: TooltipOpenEventArgs = {
165
+ cancel: false,
166
+ data: record,
167
+ content: args.element,
168
+ target: args.target
169
+ };
170
+ this.parent.trigger(events.tooltipOpen, callbackArgs, (callbackArgs: TooltipOpenEventArgs) => {
171
+ if (callbackArgs.cancel) {
172
+ args.cancel = true;
173
+ return;
174
+ }
175
+ args.element = callbackArgs.content;
176
+ });
177
+ }
178
+ private onTooltipClose(args: TooltipEventArgs): void {
179
+ if (args.element) {
180
+ removeClass([args.element], cls.POPUP_OPEN);
181
+ addClass([args.element], cls.POPUP_CLOSE);
182
+ }
183
+ if (!(this.parent.isReact && this.parent.eventWindow.dialogObject && this.parent.eventWindow.dialogObject.visible)) {
184
+ this.parent.resetTemplates(['tooltipTemplate', 'headerTooltipTemplate']);
185
+ }
186
+ }
187
+
188
+ private setContent(content: string | HTMLElement | Function): void {
189
+ this.tooltipObj.setProperties({ content: content, windowCollision: true }, true);
190
+ }
191
+
192
+ public close(): void {
193
+ this.tooltipObj.close();
194
+ }
195
+
196
+ public destroy(): void {
197
+ this.tooltipObj.destroy();
198
+ addClass([this.parent.element], 'e-control');
199
+ this.tooltipObj = null;
200
+ this.parent = null;
201
+ }
202
+
203
+ }
@@ -0,0 +1,118 @@
1
+ import { Dialog } from '@syncfusion/ej2-popups';
2
+ import { Schedule } from '../base/schedule';
3
+ import { CurrentAction } from '../base/type';
4
+ import { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';
5
+ /**
6
+ * Event editor window
7
+ */
8
+ export declare class EventWindow {
9
+ private parent;
10
+ dialogObject: Dialog;
11
+ private element;
12
+ private fields;
13
+ private l10n;
14
+ private eventData;
15
+ private eventCrudData;
16
+ private fieldValidator;
17
+ private recurrenceEditor;
18
+ private repeatDialogObject;
19
+ private repeatTempRule;
20
+ private repeatRule;
21
+ private repeatStatus;
22
+ private buttonObj;
23
+ private repeatStartDate;
24
+ private cellClickAction;
25
+ private duration;
26
+ private isCrudAction;
27
+ private eventWindowTime;
28
+ private isEnterKey;
29
+ private dialogEvent;
30
+ constructor(parent: Schedule);
31
+ private renderEventWindow;
32
+ private renderDialogButtons;
33
+ private addEventHandlers;
34
+ refresh(): void;
35
+ refreshRecurrenceEditor(): void;
36
+ setRecurrenceEditor(recurrenceEditor: RecurrenceEditor): void;
37
+ openEditor(data: Record<string, any>, type: CurrentAction, isEventData?: boolean, repeatType?: number): void;
38
+ private setEditorContent;
39
+ setDialogContent(): void;
40
+ setDialogHeader(): void;
41
+ setDialogFooter(): void;
42
+ private createAdaptiveHeaderElement;
43
+ private getDialogHeader;
44
+ private getDialogFooter;
45
+ private preventEventSave;
46
+ private onBeforeOpen;
47
+ private onBeforeClose;
48
+ private getEventWindowContent;
49
+ private renderFormElements;
50
+ private getDefaultEventWindowContent;
51
+ private createRecurrenceEditor;
52
+ private createDivElement;
53
+ private createInputElement;
54
+ private getSlotDuration;
55
+ private renderDateTimePicker;
56
+ refreshDateTimePicker(duration?: number): void;
57
+ private onTimeChange;
58
+ private renderResourceDetails;
59
+ private applyStylesAfterRender;
60
+ private renderDropDown;
61
+ private onMultiselectResourceChange;
62
+ private createInstance;
63
+ private onDropdownResourceChange;
64
+ private filterDatasource;
65
+ private onTimezoneChange;
66
+ private renderCheckBox;
67
+ private renderTextBox;
68
+ private getFieldName;
69
+ private getFieldLabel;
70
+ private onChange;
71
+ private renderRepeatDialog;
72
+ private loadRecurrenceEditor;
73
+ private onRepeatChange;
74
+ private repeatSaveDialog;
75
+ private closeRepeatDialog;
76
+ private repeatCancelDialog;
77
+ private repeatOpenDialog;
78
+ private onCellDetailsUpdate;
79
+ convertToEventData(cellsData: Record<string, any>, eventObj: Record<string, any>): void;
80
+ private applyFormValidation;
81
+ private showDetails;
82
+ private getColumnName;
83
+ private onAllDayChange;
84
+ private updateDateTime;
85
+ private getFormat;
86
+ private onEventDetailsUpdate;
87
+ private disableButton;
88
+ private renderRecurrenceEditor;
89
+ updateMinMaxDateToEditor(): void;
90
+ private updateRepeatLabel;
91
+ dialogClose(event?: Event): void;
92
+ private resetForm;
93
+ private timezoneChangeStyle;
94
+ private resetFormFields;
95
+ eventSave(event: Event, alert?: string): void;
96
+ getEventDataFromEditor(): Record<string, Record<string, any>>;
97
+ private processEventValidation;
98
+ private processCrudActions;
99
+ private getResourceData;
100
+ getObjectFromFormData(className: string): Record<string, any>;
101
+ setDefaultValueToObject(eventObj: Record<string, any>): void;
102
+ private recurrenceValidation;
103
+ private getRecurrenceIndex;
104
+ private trimAllDay;
105
+ editOccurrenceValidation(eventId: string | number, currentData: Record<string, any>, editData?: Record<string, any>): boolean;
106
+ private resourceSaveEvent;
107
+ private getEventIdFromForm;
108
+ private getFormElements;
109
+ private getValueFromElement;
110
+ private setValueToElement;
111
+ private setDefaultValueToElement;
112
+ private getInstance;
113
+ private eventDelete;
114
+ getRecurrenceEditorInstance(): RecurrenceEditor;
115
+ private destroyComponents;
116
+ private detachComponents;
117
+ destroy(isIgnore?: boolean): void;
118
+ }