@syncfusion/ej2-schedule 33.2.4 → 34.1.29

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 (481) 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 +344 -27
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +391 -39
  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/package.json +11 -11
  12. package/src/recurrence-editor/recurrence-editor.js +5 -0
  13. package/src/schedule/actions/action-base.js +6 -2
  14. package/src/schedule/base/css-constant.d.ts +2 -0
  15. package/src/schedule/base/css-constant.js +2 -0
  16. package/src/schedule/base/interface.d.ts +3 -0
  17. package/src/schedule/base/resource.d.ts +1 -1
  18. package/src/schedule/base/resource.js +7 -5
  19. package/src/schedule/base/schedule-model.d.ts +31 -0
  20. package/src/schedule/base/schedule.d.ts +33 -0
  21. package/src/schedule/base/schedule.js +37 -1
  22. package/src/schedule/event-renderer/event-base.js +4 -0
  23. package/src/schedule/event-renderer/inline-edit.js +2 -2
  24. package/src/schedule/event-renderer/month.js +8 -2
  25. package/src/schedule/event-renderer/vertical-view.d.ts +6 -0
  26. package/src/schedule/event-renderer/vertical-view.js +293 -23
  27. package/src/schedule/models/views-model.d.ts +13 -0
  28. package/src/schedule/models/views.d.ts +12 -0
  29. package/src/schedule/models/views.js +3 -0
  30. package/src/schedule/popups/quick-popups.d.ts +1 -0
  31. package/src/schedule/popups/quick-popups.js +27 -4
  32. package/styles/bds-lite.css +43 -354
  33. package/styles/bds-lite.scss +3 -16
  34. package/styles/bds.css +43 -362
  35. package/styles/bds.scss +5 -18
  36. package/styles/bootstrap-dark-lite.css +43 -88
  37. package/styles/bootstrap-dark-lite.scss +3 -16
  38. package/styles/bootstrap-dark.css +43 -88
  39. package/styles/bootstrap-dark.scss +5 -18
  40. package/styles/bootstrap-lite.css +43 -83
  41. package/styles/bootstrap-lite.scss +3 -16
  42. package/styles/bootstrap.css +43 -83
  43. package/styles/bootstrap.scss +5 -18
  44. package/styles/bootstrap4-lite.css +43 -144
  45. package/styles/bootstrap4-lite.scss +3 -16
  46. package/styles/bootstrap4.css +43 -144
  47. package/styles/bootstrap4.scss +5 -18
  48. package/styles/bootstrap5-dark-lite.css +43 -136
  49. package/styles/bootstrap5-dark-lite.scss +3 -16
  50. package/styles/bootstrap5-dark.css +43 -136
  51. package/styles/bootstrap5-dark.scss +5 -18
  52. package/styles/bootstrap5-lite.css +43 -136
  53. package/styles/bootstrap5-lite.scss +3 -17
  54. package/styles/bootstrap5.3-lite.css +58 -403
  55. package/styles/bootstrap5.3-lite.scss +3 -17
  56. package/styles/bootstrap5.3.css +60 -573
  57. package/styles/bootstrap5.3.scss +5 -19
  58. package/styles/bootstrap5.css +43 -136
  59. package/styles/bootstrap5.scss +5 -19
  60. package/styles/fabric-dark-lite.css +43 -58
  61. package/styles/fabric-dark-lite.scss +3 -17
  62. package/styles/fabric-dark.css +43 -58
  63. package/styles/fabric-dark.scss +5 -19
  64. package/styles/fabric-lite.css +43 -55
  65. package/styles/fabric-lite.scss +3 -17
  66. package/styles/fabric.css +43 -55
  67. package/styles/fabric.scss +5 -19
  68. package/styles/fluent-dark-lite.css +43 -124
  69. package/styles/fluent-dark-lite.scss +3 -17
  70. package/styles/fluent-dark.css +43 -124
  71. package/styles/fluent-dark.scss +5 -19
  72. package/styles/fluent-lite.css +43 -124
  73. package/styles/fluent-lite.scss +3 -17
  74. package/styles/fluent.css +43 -124
  75. package/styles/fluent.scss +5 -19
  76. package/styles/fluent2-lite.css +43 -695
  77. package/styles/fluent2-lite.scss +3 -17
  78. package/styles/fluent2.css +55 -879
  79. package/styles/fluent2.scss +5 -19
  80. package/styles/highcontrast-light-lite.css +43 -147
  81. package/styles/highcontrast-light-lite.scss +3 -17
  82. package/styles/highcontrast-light.css +43 -147
  83. package/styles/highcontrast-light.scss +5 -19
  84. package/styles/highcontrast-lite.css +43 -156
  85. package/styles/highcontrast-lite.scss +3 -17
  86. package/styles/highcontrast.css +43 -156
  87. package/styles/highcontrast.scss +5 -19
  88. package/styles/material-dark-lite.css +43 -135
  89. package/styles/material-dark-lite.scss +3 -17
  90. package/styles/material-dark.css +43 -135
  91. package/styles/material-dark.scss +5 -19
  92. package/styles/material-lite.css +43 -172
  93. package/styles/material-lite.scss +3 -16
  94. package/styles/material.css +43 -172
  95. package/styles/material.scss +5 -18
  96. package/styles/material3-dark-lite.css +43 -718
  97. package/styles/material3-dark-lite.scss +3 -17
  98. package/styles/material3-dark.css +53 -892
  99. package/styles/material3-dark.scss +5 -19
  100. package/styles/material3-lite.css +43 -724
  101. package/styles/material3-lite.scss +3 -17
  102. package/styles/material3.css +47 -896
  103. package/styles/material3.scss +5 -19
  104. package/styles/recurrence-editor/_all.scss +2 -2
  105. package/styles/recurrence-editor/_bds-definition.scss +2 -2
  106. package/styles/recurrence-editor/_bigger.scss +1 -1
  107. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +2 -2
  108. package/styles/recurrence-editor/_bootstrap-definition.scss +2 -2
  109. package/styles/recurrence-editor/_bootstrap4-definition.scss +2 -2
  110. package/styles/recurrence-editor/_bootstrap5-dark-definition.scss +2 -2
  111. package/styles/recurrence-editor/_bootstrap5-definition.scss +2 -2
  112. package/styles/recurrence-editor/_bootstrap5.3-definition.scss +2 -2
  113. package/styles/recurrence-editor/_fabric-dark-definition.scss +2 -2
  114. package/styles/recurrence-editor/_fabric-definition.scss +2 -2
  115. package/styles/recurrence-editor/_fluent-dark-definition.scss +2 -2
  116. package/styles/recurrence-editor/_fluent-definition.scss +2 -2
  117. package/styles/recurrence-editor/_fluent2-definition.scss +2 -2
  118. package/styles/recurrence-editor/_fusionnew-definition.scss +2 -2
  119. package/styles/recurrence-editor/_highcontrast-definition.scss +2 -2
  120. package/styles/recurrence-editor/_highcontrast-light-definition.scss +2 -2
  121. package/styles/recurrence-editor/_layout.scss +1 -1
  122. package/styles/recurrence-editor/_material-dark-definition.scss +2 -2
  123. package/styles/recurrence-editor/_material-definition.scss +2 -2
  124. package/styles/recurrence-editor/_material3-dark-definition.scss +2 -2
  125. package/styles/recurrence-editor/_material3-definition.scss +2 -2
  126. package/styles/recurrence-editor/_tailwind-dark-definition.scss +2 -2
  127. package/styles/recurrence-editor/_tailwind-definition.scss +2 -2
  128. package/styles/recurrence-editor/_tailwind3-definition.scss +2 -2
  129. package/styles/recurrence-editor/_theme.scss +1 -1
  130. package/styles/recurrence-editor/_variables.scss +2 -0
  131. package/styles/recurrence-editor/bds.css +0 -137
  132. package/styles/recurrence-editor/bds.scss +2 -8
  133. package/styles/recurrence-editor/bootstrap-dark.css +0 -58
  134. package/styles/recurrence-editor/bootstrap-dark.scss +2 -8
  135. package/styles/recurrence-editor/bootstrap.css +0 -58
  136. package/styles/recurrence-editor/bootstrap.scss +2 -8
  137. package/styles/recurrence-editor/bootstrap4.css +0 -94
  138. package/styles/recurrence-editor/bootstrap4.scss +2 -8
  139. package/styles/recurrence-editor/bootstrap5-dark.css +0 -96
  140. package/styles/recurrence-editor/bootstrap5-dark.scss +2 -8
  141. package/styles/recurrence-editor/bootstrap5.3.css +0 -264
  142. package/styles/recurrence-editor/bootstrap5.3.scss +2 -8
  143. package/styles/recurrence-editor/bootstrap5.css +0 -96
  144. package/styles/recurrence-editor/bootstrap5.scss +2 -8
  145. package/styles/recurrence-editor/fabric-dark.css +0 -34
  146. package/styles/recurrence-editor/fabric-dark.scss +2 -8
  147. package/styles/recurrence-editor/fabric.css +0 -34
  148. package/styles/recurrence-editor/fabric.scss +2 -8
  149. package/styles/recurrence-editor/fluent-dark.css +0 -89
  150. package/styles/recurrence-editor/fluent-dark.scss +2 -8
  151. package/styles/recurrence-editor/fluent.css +0 -89
  152. package/styles/recurrence-editor/fluent.scss +2 -8
  153. package/styles/recurrence-editor/fluent2.css +0 -490
  154. package/styles/recurrence-editor/fluent2.scss +2 -8
  155. package/styles/recurrence-editor/highcontrast-light.css +0 -43
  156. package/styles/recurrence-editor/highcontrast-light.scss +2 -8
  157. package/styles/recurrence-editor/highcontrast.css +0 -43
  158. package/styles/recurrence-editor/highcontrast.scss +2 -8
  159. package/styles/recurrence-editor/material-dark.css +0 -83
  160. package/styles/recurrence-editor/material-dark.scss +2 -8
  161. package/styles/recurrence-editor/material.css +0 -87
  162. package/styles/recurrence-editor/material.scss +2 -8
  163. package/styles/recurrence-editor/material3-dark.css +0 -316
  164. package/styles/recurrence-editor/material3-dark.scss +2 -8
  165. package/styles/recurrence-editor/material3.css +0 -320
  166. package/styles/recurrence-editor/material3.scss +2 -8
  167. package/styles/recurrence-editor/tailwind-dark.css +0 -70
  168. package/styles/recurrence-editor/tailwind-dark.scss +2 -8
  169. package/styles/recurrence-editor/tailwind.css +0 -70
  170. package/styles/recurrence-editor/tailwind.scss +2 -8
  171. package/styles/recurrence-editor/tailwind3.css +0 -244
  172. package/styles/recurrence-editor/tailwind3.scss +2 -8
  173. package/styles/schedule/_all.scss +2 -2
  174. package/styles/schedule/_bds-definition.scss +10 -2
  175. package/styles/schedule/_bigger.scss +1 -1
  176. package/styles/schedule/_bootstrap-dark-definition.scss +9 -2
  177. package/styles/schedule/_bootstrap-definition.scss +9 -2
  178. package/styles/schedule/_bootstrap4-definition.scss +9 -2
  179. package/styles/schedule/_bootstrap5-dark-definition.scss +9 -2
  180. package/styles/schedule/_bootstrap5-definition.scss +9 -2
  181. package/styles/schedule/_bootstrap5.3-definition.scss +13 -5
  182. package/styles/schedule/_fabric-dark-definition.scss +10 -2
  183. package/styles/schedule/_fabric-definition.scss +9 -2
  184. package/styles/schedule/_fluent-dark-definition.scss +10 -2
  185. package/styles/schedule/_fluent-definition.scss +10 -2
  186. package/styles/schedule/_fluent2-definition.scss +10 -2
  187. package/styles/schedule/_fusionnew-definition.scss +8 -0
  188. package/styles/schedule/_highcontrast-definition.scss +9 -2
  189. package/styles/schedule/_highcontrast-light-definition.scss +9 -2
  190. package/styles/schedule/_layout.scss +62 -23
  191. package/styles/schedule/_material-dark-definition.scss +10 -2
  192. package/styles/schedule/_material-definition.scss +10 -2
  193. package/styles/schedule/_material3-dark-definition.scss +10 -2
  194. package/styles/schedule/_material3-definition.scss +10 -2
  195. package/styles/schedule/_tailwind-dark-definition.scss +10 -2
  196. package/styles/schedule/_tailwind-definition.scss +10 -2
  197. package/styles/schedule/_tailwind3-definition.scss +10 -2
  198. package/styles/schedule/_theme.scss +2 -2
  199. package/styles/schedule/_variables.scss +2 -0
  200. package/styles/schedule/bds.css +43 -354
  201. package/styles/schedule/bds.scss +2 -16
  202. package/styles/schedule/bootstrap-dark.css +43 -88
  203. package/styles/schedule/bootstrap-dark.scss +2 -16
  204. package/styles/schedule/bootstrap.css +43 -83
  205. package/styles/schedule/bootstrap.scss +2 -16
  206. package/styles/schedule/bootstrap4.css +43 -144
  207. package/styles/schedule/bootstrap4.scss +2 -16
  208. package/styles/schedule/bootstrap5-dark.css +43 -136
  209. package/styles/schedule/bootstrap5-dark.scss +2 -16
  210. package/styles/schedule/bootstrap5.3.css +60 -405
  211. package/styles/schedule/bootstrap5.3.scss +2 -16
  212. package/styles/schedule/bootstrap5.css +43 -136
  213. package/styles/schedule/bootstrap5.scss +2 -16
  214. package/styles/schedule/fabric-dark.css +43 -58
  215. package/styles/schedule/fabric-dark.scss +2 -16
  216. package/styles/schedule/fabric.css +43 -55
  217. package/styles/schedule/fabric.scss +2 -16
  218. package/styles/schedule/fluent-dark.css +43 -124
  219. package/styles/schedule/fluent-dark.scss +2 -16
  220. package/styles/schedule/fluent.css +43 -124
  221. package/styles/schedule/fluent.scss +2 -16
  222. package/styles/schedule/fluent2.css +43 -695
  223. package/styles/schedule/fluent2.scss +2 -16
  224. package/styles/schedule/highcontrast-light.css +43 -147
  225. package/styles/schedule/highcontrast-light.scss +2 -16
  226. package/styles/schedule/highcontrast.css +43 -156
  227. package/styles/schedule/highcontrast.scss +2 -16
  228. package/styles/schedule/icons/_bds.scss +1 -1
  229. package/styles/schedule/icons/_bootstrap-dark.scss +1 -1
  230. package/styles/schedule/icons/_bootstrap.scss +1 -1
  231. package/styles/schedule/icons/_bootstrap4.scss +1 -1
  232. package/styles/schedule/icons/_bootstrap5.3.scss +1 -1
  233. package/styles/schedule/icons/_bootstrap5.scss +1 -1
  234. package/styles/schedule/icons/_fabric-dark.scss +1 -1
  235. package/styles/schedule/icons/_fabric.scss +1 -1
  236. package/styles/schedule/icons/_fluent.scss +1 -1
  237. package/styles/schedule/icons/_fluent2.scss +1 -1
  238. package/styles/schedule/icons/_fusionnew.scss +1 -1
  239. package/styles/schedule/icons/_highcontrast-light.scss +1 -1
  240. package/styles/schedule/icons/_highcontrast.scss +1 -1
  241. package/styles/schedule/icons/_material-dark.scss +1 -1
  242. package/styles/schedule/icons/_material.scss +1 -1
  243. package/styles/schedule/icons/_material3.scss +1 -1
  244. package/styles/schedule/icons/_tailwind.scss +1 -1
  245. package/styles/schedule/icons/_tailwind3.scss +1 -1
  246. package/styles/schedule/material-dark.css +43 -135
  247. package/styles/schedule/material-dark.scss +2 -16
  248. package/styles/schedule/material.css +43 -172
  249. package/styles/schedule/material.scss +2 -16
  250. package/styles/schedule/material3-dark.css +43 -718
  251. package/styles/schedule/material3-dark.scss +2 -16
  252. package/styles/schedule/material3.css +43 -724
  253. package/styles/schedule/material3.scss +2 -16
  254. package/styles/schedule/tailwind-dark.css +43 -101
  255. package/styles/schedule/tailwind-dark.scss +2 -16
  256. package/styles/schedule/tailwind.css +43 -101
  257. package/styles/schedule/tailwind.scss +2 -16
  258. package/styles/schedule/tailwind3.css +43 -414
  259. package/styles/schedule/tailwind3.scss +2 -16
  260. package/styles/tailwind-dark-lite.css +43 -101
  261. package/styles/tailwind-dark-lite.scss +3 -17
  262. package/styles/tailwind-dark.css +43 -101
  263. package/styles/tailwind-dark.scss +5 -19
  264. package/styles/tailwind-lite.css +43 -101
  265. package/styles/tailwind-lite.scss +3 -17
  266. package/styles/tailwind.css +43 -101
  267. package/styles/tailwind.scss +5 -19
  268. package/styles/tailwind3-lite.css +43 -414
  269. package/styles/tailwind3-lite.scss +3 -17
  270. package/styles/tailwind3.css +43 -562
  271. package/styles/tailwind3.scss +5 -19
  272. package/styles/recurrence-editor/_all.bds.scss +0 -2
  273. package/styles/recurrence-editor/_all.bootstrap-dark.scss +0 -2
  274. package/styles/recurrence-editor/_all.bootstrap.scss +0 -2
  275. package/styles/recurrence-editor/_all.bootstrap4.scss +0 -2
  276. package/styles/recurrence-editor/_all.bootstrap5-dark.scss +0 -2
  277. package/styles/recurrence-editor/_all.bootstrap5.3.scss +0 -2
  278. package/styles/recurrence-editor/_all.bootstrap5.scss +0 -2
  279. package/styles/recurrence-editor/_all.fabric-dark.scss +0 -2
  280. package/styles/recurrence-editor/_all.fabric.scss +0 -2
  281. package/styles/recurrence-editor/_all.fluent-dark.scss +0 -2
  282. package/styles/recurrence-editor/_all.fluent.scss +0 -2
  283. package/styles/recurrence-editor/_all.fluent2.scss +0 -2
  284. package/styles/recurrence-editor/_all.highcontrast-light.scss +0 -2
  285. package/styles/recurrence-editor/_all.highcontrast.scss +0 -2
  286. package/styles/recurrence-editor/_all.material-dark.scss +0 -2
  287. package/styles/recurrence-editor/_all.material.scss +0 -2
  288. package/styles/recurrence-editor/_all.material3-dark.scss +0 -2
  289. package/styles/recurrence-editor/_all.material3.scss +0 -2
  290. package/styles/recurrence-editor/_all.tailwind-dark.scss +0 -2
  291. package/styles/recurrence-editor/_all.tailwind.scss +0 -2
  292. package/styles/recurrence-editor/_all.tailwind3.scss +0 -2
  293. package/styles/recurrence-editor/_bigger.bds.scss +0 -3
  294. package/styles/recurrence-editor/_bigger.bootstrap-dark.scss +0 -3
  295. package/styles/recurrence-editor/_bigger.bootstrap.scss +0 -3
  296. package/styles/recurrence-editor/_bigger.bootstrap4.scss +0 -3
  297. package/styles/recurrence-editor/_bigger.bootstrap5-dark.scss +0 -3
  298. package/styles/recurrence-editor/_bigger.bootstrap5.3.scss +0 -3
  299. package/styles/recurrence-editor/_bigger.bootstrap5.scss +0 -3
  300. package/styles/recurrence-editor/_bigger.fabric-dark.scss +0 -3
  301. package/styles/recurrence-editor/_bigger.fabric.scss +0 -3
  302. package/styles/recurrence-editor/_bigger.fluent-dark.scss +0 -3
  303. package/styles/recurrence-editor/_bigger.fluent.scss +0 -3
  304. package/styles/recurrence-editor/_bigger.fluent2.scss +0 -3
  305. package/styles/recurrence-editor/_bigger.highcontrast-light.scss +0 -3
  306. package/styles/recurrence-editor/_bigger.highcontrast.scss +0 -3
  307. package/styles/recurrence-editor/_bigger.material-dark.scss +0 -3
  308. package/styles/recurrence-editor/_bigger.material.scss +0 -3
  309. package/styles/recurrence-editor/_bigger.material3-dark.scss +0 -3
  310. package/styles/recurrence-editor/_bigger.material3.scss +0 -3
  311. package/styles/recurrence-editor/_bigger.tailwind-dark.scss +0 -3
  312. package/styles/recurrence-editor/_bigger.tailwind.scss +0 -3
  313. package/styles/recurrence-editor/_bigger.tailwind3.scss +0 -3
  314. package/styles/recurrence-editor/_layout.bds.scss +0 -3
  315. package/styles/recurrence-editor/_layout.bootstrap-dark.scss +0 -3
  316. package/styles/recurrence-editor/_layout.bootstrap.scss +0 -3
  317. package/styles/recurrence-editor/_layout.bootstrap4.scss +0 -3
  318. package/styles/recurrence-editor/_layout.bootstrap5-dark.scss +0 -3
  319. package/styles/recurrence-editor/_layout.bootstrap5.3.scss +0 -3
  320. package/styles/recurrence-editor/_layout.bootstrap5.scss +0 -3
  321. package/styles/recurrence-editor/_layout.fabric-dark.scss +0 -3
  322. package/styles/recurrence-editor/_layout.fabric.scss +0 -3
  323. package/styles/recurrence-editor/_layout.fluent-dark.scss +0 -3
  324. package/styles/recurrence-editor/_layout.fluent.scss +0 -3
  325. package/styles/recurrence-editor/_layout.fluent2.scss +0 -3
  326. package/styles/recurrence-editor/_layout.highcontrast-light.scss +0 -3
  327. package/styles/recurrence-editor/_layout.highcontrast.scss +0 -3
  328. package/styles/recurrence-editor/_layout.material-dark.scss +0 -3
  329. package/styles/recurrence-editor/_layout.material.scss +0 -3
  330. package/styles/recurrence-editor/_layout.material3-dark.scss +0 -3
  331. package/styles/recurrence-editor/_layout.material3.scss +0 -3
  332. package/styles/recurrence-editor/_layout.tailwind-dark.scss +0 -3
  333. package/styles/recurrence-editor/_layout.tailwind.scss +0 -3
  334. package/styles/recurrence-editor/_layout.tailwind3.scss +0 -3
  335. package/styles/recurrence-editor/_theme-variables.bds.scss +0 -1
  336. package/styles/recurrence-editor/_theme-variables.bootstrap-dark.scss +0 -1
  337. package/styles/recurrence-editor/_theme-variables.bootstrap.scss +0 -1
  338. package/styles/recurrence-editor/_theme-variables.bootstrap4.scss +0 -1
  339. package/styles/recurrence-editor/_theme-variables.bootstrap5-dark.scss +0 -1
  340. package/styles/recurrence-editor/_theme-variables.bootstrap5.3.scss +0 -1
  341. package/styles/recurrence-editor/_theme-variables.bootstrap5.scss +0 -1
  342. package/styles/recurrence-editor/_theme-variables.fabric-dark.scss +0 -1
  343. package/styles/recurrence-editor/_theme-variables.fabric.scss +0 -1
  344. package/styles/recurrence-editor/_theme-variables.fluent-dark.scss +0 -1
  345. package/styles/recurrence-editor/_theme-variables.fluent.scss +0 -1
  346. package/styles/recurrence-editor/_theme-variables.fluent2.scss +0 -1
  347. package/styles/recurrence-editor/_theme-variables.highcontrast-light.scss +0 -1
  348. package/styles/recurrence-editor/_theme-variables.highcontrast.scss +0 -1
  349. package/styles/recurrence-editor/_theme-variables.material-dark.scss +0 -1
  350. package/styles/recurrence-editor/_theme-variables.material.scss +0 -1
  351. package/styles/recurrence-editor/_theme-variables.material3-dark.scss +0 -1
  352. package/styles/recurrence-editor/_theme-variables.material3.scss +0 -1
  353. package/styles/recurrence-editor/_theme-variables.tailwind-dark.scss +0 -1
  354. package/styles/recurrence-editor/_theme-variables.tailwind.scss +0 -1
  355. package/styles/recurrence-editor/_theme-variables.tailwind3.scss +0 -1
  356. package/styles/recurrence-editor/_theme.bds.scss +0 -1
  357. package/styles/recurrence-editor/_theme.bootstrap-dark.scss +0 -1
  358. package/styles/recurrence-editor/_theme.bootstrap.scss +0 -1
  359. package/styles/recurrence-editor/_theme.bootstrap4.scss +0 -1
  360. package/styles/recurrence-editor/_theme.bootstrap5-dark.scss +0 -1
  361. package/styles/recurrence-editor/_theme.bootstrap5.3.scss +0 -1
  362. package/styles/recurrence-editor/_theme.bootstrap5.scss +0 -1
  363. package/styles/recurrence-editor/_theme.fabric-dark.scss +0 -1
  364. package/styles/recurrence-editor/_theme.fabric.scss +0 -1
  365. package/styles/recurrence-editor/_theme.fluent-dark.scss +0 -1
  366. package/styles/recurrence-editor/_theme.fluent.scss +0 -1
  367. package/styles/recurrence-editor/_theme.fluent2.scss +0 -1
  368. package/styles/recurrence-editor/_theme.highcontrast-light.scss +0 -1
  369. package/styles/recurrence-editor/_theme.highcontrast.scss +0 -1
  370. package/styles/recurrence-editor/_theme.material-dark.scss +0 -1
  371. package/styles/recurrence-editor/_theme.material.scss +0 -1
  372. package/styles/recurrence-editor/_theme.material3-dark.scss +0 -1
  373. package/styles/recurrence-editor/_theme.material3.scss +0 -1
  374. package/styles/recurrence-editor/_theme.tailwind-dark.scss +0 -1
  375. package/styles/recurrence-editor/_theme.tailwind.scss +0 -1
  376. package/styles/recurrence-editor/_theme.tailwind3.scss +0 -1
  377. package/styles/schedule/_all.bds.scss +0 -2
  378. package/styles/schedule/_all.bootstrap-dark.scss +0 -2
  379. package/styles/schedule/_all.bootstrap.scss +0 -2
  380. package/styles/schedule/_all.bootstrap4.scss +0 -2
  381. package/styles/schedule/_all.bootstrap5-dark.scss +0 -2
  382. package/styles/schedule/_all.bootstrap5.3.scss +0 -2
  383. package/styles/schedule/_all.bootstrap5.scss +0 -2
  384. package/styles/schedule/_all.fabric-dark.scss +0 -2
  385. package/styles/schedule/_all.fabric.scss +0 -2
  386. package/styles/schedule/_all.fluent-dark.scss +0 -2
  387. package/styles/schedule/_all.fluent.scss +0 -2
  388. package/styles/schedule/_all.fluent2.scss +0 -2
  389. package/styles/schedule/_all.highcontrast-light.scss +0 -2
  390. package/styles/schedule/_all.highcontrast.scss +0 -2
  391. package/styles/schedule/_all.material-dark.scss +0 -2
  392. package/styles/schedule/_all.material.scss +0 -2
  393. package/styles/schedule/_all.material3-dark.scss +0 -2
  394. package/styles/schedule/_all.material3.scss +0 -2
  395. package/styles/schedule/_all.tailwind-dark.scss +0 -2
  396. package/styles/schedule/_all.tailwind.scss +0 -2
  397. package/styles/schedule/_all.tailwind3.scss +0 -2
  398. package/styles/schedule/_bigger.bds.scss +0 -3
  399. package/styles/schedule/_bigger.bootstrap-dark.scss +0 -3
  400. package/styles/schedule/_bigger.bootstrap.scss +0 -3
  401. package/styles/schedule/_bigger.bootstrap4.scss +0 -3
  402. package/styles/schedule/_bigger.bootstrap5-dark.scss +0 -3
  403. package/styles/schedule/_bigger.bootstrap5.3.scss +0 -3
  404. package/styles/schedule/_bigger.bootstrap5.scss +0 -3
  405. package/styles/schedule/_bigger.fabric-dark.scss +0 -3
  406. package/styles/schedule/_bigger.fabric.scss +0 -3
  407. package/styles/schedule/_bigger.fluent-dark.scss +0 -3
  408. package/styles/schedule/_bigger.fluent.scss +0 -3
  409. package/styles/schedule/_bigger.fluent2.scss +0 -3
  410. package/styles/schedule/_bigger.highcontrast-light.scss +0 -3
  411. package/styles/schedule/_bigger.highcontrast.scss +0 -3
  412. package/styles/schedule/_bigger.material-dark.scss +0 -3
  413. package/styles/schedule/_bigger.material.scss +0 -3
  414. package/styles/schedule/_bigger.material3-dark.scss +0 -3
  415. package/styles/schedule/_bigger.material3.scss +0 -3
  416. package/styles/schedule/_bigger.tailwind-dark.scss +0 -3
  417. package/styles/schedule/_bigger.tailwind.scss +0 -3
  418. package/styles/schedule/_bigger.tailwind3.scss +0 -3
  419. package/styles/schedule/_layout.bds.scss +0 -3
  420. package/styles/schedule/_layout.bootstrap-dark.scss +0 -3
  421. package/styles/schedule/_layout.bootstrap.scss +0 -3
  422. package/styles/schedule/_layout.bootstrap4.scss +0 -3
  423. package/styles/schedule/_layout.bootstrap5-dark.scss +0 -3
  424. package/styles/schedule/_layout.bootstrap5.3.scss +0 -3
  425. package/styles/schedule/_layout.bootstrap5.scss +0 -3
  426. package/styles/schedule/_layout.fabric-dark.scss +0 -3
  427. package/styles/schedule/_layout.fabric.scss +0 -3
  428. package/styles/schedule/_layout.fluent-dark.scss +0 -3
  429. package/styles/schedule/_layout.fluent.scss +0 -3
  430. package/styles/schedule/_layout.fluent2.scss +0 -3
  431. package/styles/schedule/_layout.highcontrast-light.scss +0 -3
  432. package/styles/schedule/_layout.highcontrast.scss +0 -3
  433. package/styles/schedule/_layout.material-dark.scss +0 -3
  434. package/styles/schedule/_layout.material.scss +0 -3
  435. package/styles/schedule/_layout.material3-dark.scss +0 -3
  436. package/styles/schedule/_layout.material3.scss +0 -3
  437. package/styles/schedule/_layout.tailwind-dark.scss +0 -3
  438. package/styles/schedule/_layout.tailwind.scss +0 -3
  439. package/styles/schedule/_layout.tailwind3.scss +0 -3
  440. package/styles/schedule/_theme-variables.bds.scss +0 -1
  441. package/styles/schedule/_theme-variables.bootstrap-dark.scss +0 -1
  442. package/styles/schedule/_theme-variables.bootstrap.scss +0 -1
  443. package/styles/schedule/_theme-variables.bootstrap4.scss +0 -1
  444. package/styles/schedule/_theme-variables.bootstrap5-dark.scss +0 -1
  445. package/styles/schedule/_theme-variables.bootstrap5.3.scss +0 -1
  446. package/styles/schedule/_theme-variables.bootstrap5.scss +0 -1
  447. package/styles/schedule/_theme-variables.fabric-dark.scss +0 -1
  448. package/styles/schedule/_theme-variables.fabric.scss +0 -1
  449. package/styles/schedule/_theme-variables.fluent-dark.scss +0 -1
  450. package/styles/schedule/_theme-variables.fluent.scss +0 -1
  451. package/styles/schedule/_theme-variables.fluent2.scss +0 -1
  452. package/styles/schedule/_theme-variables.highcontrast-light.scss +0 -1
  453. package/styles/schedule/_theme-variables.highcontrast.scss +0 -1
  454. package/styles/schedule/_theme-variables.material-dark.scss +0 -1
  455. package/styles/schedule/_theme-variables.material.scss +0 -1
  456. package/styles/schedule/_theme-variables.material3-dark.scss +0 -1
  457. package/styles/schedule/_theme-variables.material3.scss +0 -1
  458. package/styles/schedule/_theme-variables.tailwind-dark.scss +0 -1
  459. package/styles/schedule/_theme-variables.tailwind.scss +0 -1
  460. package/styles/schedule/_theme-variables.tailwind3.scss +0 -1
  461. package/styles/schedule/_theme.bds.scss +0 -4
  462. package/styles/schedule/_theme.bootstrap-dark.scss +0 -4
  463. package/styles/schedule/_theme.bootstrap.scss +0 -4
  464. package/styles/schedule/_theme.bootstrap4.scss +0 -4
  465. package/styles/schedule/_theme.bootstrap5-dark.scss +0 -4
  466. package/styles/schedule/_theme.bootstrap5.3.scss +0 -4
  467. package/styles/schedule/_theme.bootstrap5.scss +0 -4
  468. package/styles/schedule/_theme.fabric-dark.scss +0 -4
  469. package/styles/schedule/_theme.fabric.scss +0 -4
  470. package/styles/schedule/_theme.fluent-dark.scss +0 -4
  471. package/styles/schedule/_theme.fluent.scss +0 -4
  472. package/styles/schedule/_theme.fluent2.scss +0 -4
  473. package/styles/schedule/_theme.highcontrast-light.scss +0 -4
  474. package/styles/schedule/_theme.highcontrast.scss +0 -4
  475. package/styles/schedule/_theme.material-dark.scss +0 -4
  476. package/styles/schedule/_theme.material.scss +0 -4
  477. package/styles/schedule/_theme.material3-dark.scss +0 -4
  478. package/styles/schedule/_theme.material3.scss +0 -4
  479. package/styles/schedule/_theme.tailwind-dark.scss +0 -4
  480. package/styles/schedule/_theme.tailwind.scss +0 -4
  481. package/styles/schedule/_theme.tailwind3.scss +0 -4
@@ -832,6 +832,8 @@ const APPOINTMENT_ROW_COLLAPSE_CLASS = 'e-appointment-collapse';
832
832
  /** @private */
833
833
  const MORE_INDICATOR_CLASS = 'e-more-indicator';
834
834
  /** @private */
835
+ const MAX_EVENT_STACK_INDICATOR_CLASS = 'e-event-indicator-badge';
836
+ /** @private */
835
837
  const CELL_POPUP_CLASS = 'e-cell-popup';
836
838
  /** @private */
837
839
  const EVENT_POPUP_CLASS = 'e-event-popup';
@@ -7221,11 +7223,15 @@ class EventBase {
7221
7223
  ? [].slice.call(this.parent.element.querySelectorAll('.' + WEEK_NUMBER_WRAPPER_CLASS + ' tbody tr'))
7222
7224
  : [];
7223
7225
  for (const row of rows) {
7224
- const height = (this.parent.activeViewOptions.maxEventsPerRow *
7226
+ let height = (this.parent.activeViewOptions.maxEventsPerRow *
7225
7227
  ((eventHeight + (this.parent.currentView === 'Month' ? eventGap : 2)))) + headerHeight + indHeight;
7228
+ const monthHeaderHeight = this.parent.element.querySelectorAll('.' + MONTH_HEADER_CLASS);
7226
7229
  if (weekNumberRows.length > 0) {
7227
7230
  setStyleAttribute(weekNumberRows[rows.indexOf(row)].firstElementChild, { 'height': height + 'px' });
7228
7231
  }
7232
+ if (this.parent.currentView === 'TimelineYear') {
7233
+ height = height >= monthHeaderHeight[0].offsetHeight ? height : monthHeaderHeight[0].offsetHeight;
7234
+ }
7229
7235
  setStyleAttribute(row.firstElementChild, { 'height': height + 'px' });
7230
7236
  }
7231
7237
  if (!this.parent.enablePersistence && !this.parent.activeViewOptions.allowVirtualScrolling && isScrollUpdate) {
@@ -7264,6 +7270,7 @@ class VerticalEvent extends EventBase {
7264
7270
  this.allDayLevel = 0;
7265
7271
  this.startHour = this.getStartEndHours(this.parent.activeViewOptions.startHour);
7266
7272
  this.endHour = this.getStartEndHours(this.parent.activeViewOptions.endHour);
7273
+ this.moreIndicatorsMap = [];
7267
7274
  this.element = this.parent.activeView.getPanel();
7268
7275
  this.fields = this.parent.eventFields;
7269
7276
  this.animation = new Animation({ progress: this.animationUiUpdate.bind(this) });
@@ -7434,6 +7441,148 @@ class VerticalEvent extends EventBase {
7434
7441
  this.appendEvent(eventObj, appointmentElement, index, appLeft);
7435
7442
  }
7436
7443
  }
7444
+ filterEventsByOverlapGroups(eventList, maxEventStack, groupIndex, dayIndex, dayCount, resource) {
7445
+ if (maxEventStack === 0 || eventList.length === 0) {
7446
+ return eventList;
7447
+ }
7448
+ for (let i = 0; i < eventList.length; i++) {
7449
+ const item = eventList[parseInt(i.toString(), 10)];
7450
+ if (!item.__id) {
7451
+ item.__id = i;
7452
+ }
7453
+ }
7454
+ const overlapGroupList = [];
7455
+ for (const currentEvent of eventList) {
7456
+ const seedGroup = [currentEvent];
7457
+ const overlapGroup = [];
7458
+ for (const comparedEvent of eventList) {
7459
+ const isOverlapping = seedGroup.some((e) => !(comparedEvent.StartTime >= e.EndTime || comparedEvent.EndTime <= e.StartTime));
7460
+ if (isOverlapping) {
7461
+ overlapGroup.push(comparedEvent);
7462
+ }
7463
+ }
7464
+ overlapGroupList.push(overlapGroup);
7465
+ }
7466
+ const finalEventList = [];
7467
+ const currentVisibleEventBuffer = [];
7468
+ const visibleEventIdSet = new Set();
7469
+ const hiddenEventIdSet = new Set();
7470
+ const indicatorsForThisSlot = [];
7471
+ for (const overlapGroup of overlapGroupList) {
7472
+ const orderedGroupEvents = overlapGroup
7473
+ .slice()
7474
+ .sort((a, b) => {
7475
+ const startDiff = a.StartTime.getTime() - b.StartTime.getTime();
7476
+ return startDiff !== 0 ? startDiff : (a.__id - b.__id);
7477
+ });
7478
+ for (const candidateEvent of orderedGroupEvents) {
7479
+ const overlappingVisibleEvents = currentVisibleEventBuffer.filter((e) => !(candidateEvent.StartTime >= e.EndTime || candidateEvent.EndTime <= e.StartTime));
7480
+ const eventId = candidateEvent.__id;
7481
+ if (!visibleEventIdSet.has(eventId) && !hiddenEventIdSet.has(eventId) && overlappingVisibleEvents.length < maxEventStack) {
7482
+ finalEventList.push(candidateEvent);
7483
+ currentVisibleEventBuffer.push(candidateEvent);
7484
+ visibleEventIdSet.add(eventId);
7485
+ }
7486
+ }
7487
+ const hiddenEventsInGroup = overlapGroup
7488
+ .filter((e) => !visibleEventIdSet.has(e.__id) && !hiddenEventIdSet.has(e.__id));
7489
+ if (hiddenEventsInGroup.length > 0) {
7490
+ const indicatorStartTime = new Date(Math.min(...hiddenEventsInGroup.map((e) => e.StartTime.getTime())));
7491
+ const indicatorEndTime = new Date(Math.max(...hiddenEventsInGroup.map((e) => e.EndTime.getTime())));
7492
+ const indicatorKey = `${indicatorStartTime.getTime()}_${indicatorEndTime.getTime()}_${groupIndex}_${dayCount}_${resource}`;
7493
+ const indicatorInfo = {
7494
+ hiddenEvents: hiddenEventsInGroup,
7495
+ hiddenEventCount: hiddenEventsInGroup.length,
7496
+ startTime: indicatorStartTime,
7497
+ endTime: indicatorEndTime,
7498
+ groupIndex: groupIndex,
7499
+ dayIndex: dayIndex,
7500
+ dayCount: dayCount,
7501
+ resource: resource
7502
+ };
7503
+ indicatorsForThisSlot.push({ key: indicatorKey, info: indicatorInfo });
7504
+ for (const hiddenEvent of hiddenEventsInGroup) {
7505
+ hiddenEventIdSet.add(hiddenEvent.__id);
7506
+ }
7507
+ }
7508
+ }
7509
+ for (const event of eventList) {
7510
+ if (!visibleEventIdSet.has(event.__id) && !hiddenEventIdSet.has(event.__id)) {
7511
+ finalEventList.push(event);
7512
+ visibleEventIdSet.add(event.__id);
7513
+ }
7514
+ }
7515
+ for (const indicator of indicatorsForThisSlot) {
7516
+ this.moreIndicatorsMap.push({ key: indicator.key, info: indicator.info });
7517
+ }
7518
+ for (const event of finalEventList) {
7519
+ delete event.__id;
7520
+ }
7521
+ return finalEventList;
7522
+ }
7523
+ renderMoreIndicator(indicatorInfo, dayIndex, resource, dayCount) {
7524
+ const hiddenCount = indicatorInfo.hiddenEventCount || 0;
7525
+ if (hiddenCount === 0) {
7526
+ return;
7527
+ }
7528
+ const index = this.getDayIndex(dayIndex, resource, dayCount);
7529
+ const indicatorKey = `${indicatorInfo.startTime.getTime()}_${indicatorInfo.endTime.getTime()}_${indicatorInfo.groupIndex}_${indicatorInfo.dayCount}_${indicatorInfo.resource}`;
7530
+ const appointmentWrapper = this.element.querySelector('.' + APPOINTMENT_WRAPPER_CLASS + '[id="' + APPOINTMENT_WRAPPER_CLASS + '-' + index + '"]');
7531
+ if (appointmentWrapper) {
7532
+ const existingIndicator = appointmentWrapper.querySelector(`[data-indicator-key="${indicatorKey}"]`);
7533
+ if (existingIndicator) {
7534
+ EventHandler.remove(existingIndicator, 'click', this.onMoreIndicatorClick);
7535
+ remove(existingIndicator);
7536
+ }
7537
+ }
7538
+ const indicatorElement = createElement('div', {
7539
+ className: MAX_EVENT_STACK_INDICATOR_CLASS + ' ' + MORE_INDICATOR_CLASS,
7540
+ attrs: {
7541
+ 'tabindex': '0',
7542
+ 'role': 'button',
7543
+ 'aria-label': `${hiddenCount} more events`,
7544
+ 'data-indicator-key': indicatorKey,
7545
+ 'data-hidden-count': hiddenCount.toString()
7546
+ }
7547
+ });
7548
+ const startDate = indicatorInfo.startTime;
7549
+ const endDate = indicatorInfo.endTime;
7550
+ const top = this.getTopValue(startDate);
7551
+ const height = this.getHeight(startDate, endDate);
7552
+ setStyleAttribute(indicatorElement, {
7553
+ 'top': top + 'px',
7554
+ 'height': height + 'px'
7555
+ });
7556
+ if (this.parent.enableRtl) {
7557
+ indicatorElement.style.left = '0%';
7558
+ }
7559
+ else {
7560
+ indicatorElement.style.right = '0%';
7561
+ }
7562
+ indicatorElement.innerHTML = `+${hiddenCount}`;
7563
+ EventHandler.add(indicatorElement, 'click', this.onMoreIndicatorClick, this);
7564
+ appointmentWrapper.appendChild(indicatorElement);
7565
+ }
7566
+ onMoreIndicatorClick(e) {
7567
+ const target = e.target;
7568
+ const indicatorKey = target.getAttribute('data-indicator-key');
7569
+ if (indicatorKey) {
7570
+ const indicator = this.moreIndicatorsMap.find((item) => item.key === indicatorKey);
7571
+ if (indicator) {
7572
+ const indicatorInfo = indicator.info;
7573
+ const hiddenEvents = indicatorInfo.hiddenEvents;
7574
+ this.showMorePopup(hiddenEvents, indicatorInfo.startTime, indicatorInfo.endTime, e);
7575
+ }
7576
+ }
7577
+ }
7578
+ showMorePopup(hiddenEvents, startDate, endDate, e) {
7579
+ if (this.parent.quickPopup) {
7580
+ const target = closest(e.target, '.' + MORE_INDICATOR_CLASS);
7581
+ const groupIndex = target.getAttribute('data-group-index');
7582
+ const moreArgs = { date: startDate, event: hiddenEvents, element: e.target };
7583
+ this.parent.quickPopup.moreEventClick(moreArgs, endDate, groupIndex);
7584
+ }
7585
+ }
7437
7586
  renderEvents(eventType) {
7438
7587
  removeClass(this.allDayElement, ALLDAY_ROW_ANIMATE_CLASS);
7439
7588
  const eventCollection = (eventType === 'allDayEvents') ? this.sortByDateTime(this.allDayEvents) : undefined;
@@ -7462,17 +7611,56 @@ class VerticalEvent extends EventBase {
7462
7611
  const endDate = resetTime(addDays(renderDates[parseInt(day.toString(), 10)], 1));
7463
7612
  const filterEvents = this.filterEvents(startDate, endDate, eventCollection, this.resources[parseInt(resource.toString(), 10)]);
7464
7613
  if (isRender) {
7465
- for (const event of filterEvents) {
7466
- if (this.parent.resourceBase) {
7467
- this.setValues(event, resource);
7614
+ const maxEventStack = this.parent.activeViewOptions.maxEventStack || 0;
7615
+ if (maxEventStack > 0 && !this.parent.eventSettings.enableMaxHeight) {
7616
+ const normalEvents = [];
7617
+ const allDayEventsInDay = [];
7618
+ for (const event of filterEvents) {
7619
+ if (this.isAllDayAppointment(event)) {
7620
+ allDayEventsInDay.push(event);
7621
+ }
7622
+ else {
7623
+ normalEvents.push(event);
7624
+ }
7468
7625
  }
7469
- if (eventType === 'allDayEvents') {
7470
- this.renderAllDayEvents(event, day, resource, dateCount, false, allDayRowTop, appHeight);
7626
+ let finalEventList = [];
7627
+ const currentDayIndicators = [];
7628
+ if (normalEvents.length > 0) {
7629
+ finalEventList =
7630
+ this.filterEventsByOverlapGroups(normalEvents, maxEventStack, parseInt(resource.toString(), 10), day, dateCount, parseInt(resource.toString(), 10));
7631
+ for (const indicator of this.moreIndicatorsMap) {
7632
+ const indicatorInfo = indicator.info;
7633
+ if (indicatorInfo.dayIndex === day && indicatorInfo.dayCount === dateCount &&
7634
+ indicatorInfo.resource === parseInt(resource.toString(), 10)) {
7635
+ currentDayIndicators.push(indicator);
7636
+ }
7637
+ }
7471
7638
  }
7472
7639
  else {
7473
- if (this.isAllDayAppointment(event)) {
7640
+ finalEventList = normalEvents;
7641
+ }
7642
+ for (const event of allDayEventsInDay) {
7643
+ if (this.parent.resourceBase) {
7644
+ this.setValues(event, resource);
7645
+ }
7646
+ if (eventType === 'allDayEvents') {
7647
+ this.renderAllDayEvents(event, day, resource, dateCount, false, allDayRowTop, appHeight);
7648
+ }
7649
+ else {
7474
7650
  this.allDayEvents.push(extend({}, event, null, true));
7475
7651
  }
7652
+ this.cssClass = null;
7653
+ this.groupOrder = null;
7654
+ }
7655
+ for (const event of finalEventList) {
7656
+ if (this.parent.resourceBase) {
7657
+ this.setValues(event, resource);
7658
+ }
7659
+ if (eventType === 'allDayEvents') {
7660
+ if (!this.isAllDayAppointment(event)) {
7661
+ continue;
7662
+ }
7663
+ }
7476
7664
  else {
7477
7665
  if (this.parent.eventSettings.enableMaxHeight) {
7478
7666
  if (this.getOverlapIndex(event, day, false, resource) > 0) {
@@ -7480,10 +7668,53 @@ class VerticalEvent extends EventBase {
7480
7668
  }
7481
7669
  }
7482
7670
  this.renderNormalEvents(event, day, resource, dateCount);
7671
+ const appointmentWrapper = this.element.querySelector('.' + APPOINTMENT_WRAPPER_CLASS + '[id="' + APPOINTMENT_WRAPPER_CLASS + '-' + dateCount + '"]');
7672
+ if (appointmentWrapper) {
7673
+ const existingIndicators = [].slice.call(appointmentWrapper.querySelectorAll('.' + MORE_INDICATOR_CLASS));
7674
+ for (const existingIndicator of existingIndicators) {
7675
+ const indicatorKey = existingIndicator.getAttribute('data-indicator-key');
7676
+ const foundIndicator = currentDayIndicators
7677
+ .find((item) => item.key === indicatorKey);
7678
+ if (!foundIndicator) {
7679
+ EventHandler.remove(existingIndicator, 'click', this.onMoreIndicatorClick);
7680
+ remove(existingIndicator);
7681
+ }
7682
+ }
7683
+ }
7684
+ }
7685
+ this.cssClass = null;
7686
+ this.groupOrder = null;
7687
+ }
7688
+ for (const indicator of currentDayIndicators) {
7689
+ const indicatorInfo = indicator.info;
7690
+ this.renderMoreIndicator(indicatorInfo, day, resource, dateCount);
7691
+ }
7692
+ }
7693
+ else {
7694
+ this.cleanupMoreIndicators();
7695
+ for (const event of filterEvents) {
7696
+ if (this.parent.resourceBase) {
7697
+ this.setValues(event, resource);
7698
+ }
7699
+ if (eventType === 'allDayEvents') {
7700
+ this.renderAllDayEvents(event, day, resource, dateCount, false, allDayRowTop, appHeight);
7701
+ }
7702
+ else {
7703
+ if (this.isAllDayAppointment(event)) {
7704
+ this.allDayEvents.push(extend({}, event, null, true));
7705
+ }
7706
+ else {
7707
+ if (this.parent.eventSettings.enableMaxHeight) {
7708
+ if (this.getOverlapIndex(event, day, false, resource) > 0) {
7709
+ continue;
7710
+ }
7711
+ }
7712
+ this.renderNormalEvents(event, day, resource, dateCount);
7713
+ }
7483
7714
  }
7715
+ this.cssClass = null;
7716
+ this.groupOrder = null;
7484
7717
  }
7485
- this.cssClass = null;
7486
- this.groupOrder = null;
7487
7718
  }
7488
7719
  }
7489
7720
  else {
@@ -7847,7 +8078,10 @@ class VerticalEvent extends EventBase {
7847
8078
  }
7848
8079
  }
7849
8080
  getEventWidth() {
7850
- const width = this.parent.currentView === 'Day' ? 97 : 94;
8081
+ const width = (isNullOrUndefined(this.parent.activeViewOptions.maxEventStack) || this.parent.activeViewOptions.maxEventStack === 0)
8082
+ ? (this.parent.currentView === 'Day' ? 97 : 94)
8083
+ : (this.parent.isAdaptive ? (this.parent.currentView === 'Day' ? 75 : 50)
8084
+ : (this.parent.currentView === 'Day' ? 75 : 70));
7851
8085
  const tempWidth = ((width - this.overlapEvents.length) / this.overlapEvents.length);
7852
8086
  return (tempWidth < 0 ? 0 : tempWidth) + '%';
7853
8087
  }
@@ -8096,10 +8330,21 @@ class VerticalEvent extends EventBase {
8096
8330
  animationUiUpdate() {
8097
8331
  this.parent.notify(contentReady, {});
8098
8332
  }
8333
+ cleanupMoreIndicators() {
8334
+ if (this.element) {
8335
+ const moreIndicators = [].slice.call(this.element.querySelectorAll('.' + MAX_EVENT_STACK_INDICATOR_CLASS));
8336
+ for (const indicator of moreIndicators) {
8337
+ EventHandler.remove(indicator, 'click', this.onMoreIndicatorClick);
8338
+ remove(indicator);
8339
+ }
8340
+ }
8341
+ this.moreIndicatorsMap = null;
8342
+ }
8099
8343
  destroy() {
8100
8344
  if (!this.parent || this.parent && this.parent.isDestroyed) {
8101
8345
  return;
8102
8346
  }
8347
+ this.cleanupMoreIndicators();
8103
8348
  this.removeEventListener();
8104
8349
  this.allDayElement = null;
8105
8350
  this.renderedAllDayEvents = null;
@@ -8111,6 +8356,7 @@ class VerticalEvent extends EventBase {
8111
8356
  this.element = null;
8112
8357
  this.fields = null;
8113
8358
  this.animation = null;
8359
+ this.moreIndicatorsMap = null;
8114
8360
  super.destroy();
8115
8361
  }
8116
8362
  }
@@ -8819,9 +9065,15 @@ class MonthEvent extends EventBase {
8819
9065
  }
8820
9066
  }
8821
9067
  setMaxEventHeight(event, cell) {
8822
- const headerHeight = getOuterHeight(cell.querySelector('.' + DATE_HEADER_CLASS));
9068
+ const headerHeight = (this.parent.currentView === 'Month') ? getOuterHeight(cell.querySelector('.' + DATE_HEADER_CLASS)) : 0;
8823
9069
  const height = (cell.offsetHeight - headerHeight) - (this.maxHeight ? 0 : this.moreIndicatorHeight);
8824
- setStyleAttribute(event, { 'height': height + 'px', 'align-items': 'center' });
9070
+ setStyleAttribute(event, { 'height': height + 'px' });
9071
+ if (!isNullOrUndefined(event)) {
9072
+ const appointmentDetails = event.querySelector('.' + APPOINTMENT_DETAILS);
9073
+ if (!isNullOrUndefined(appointmentDetails)) {
9074
+ setStyleAttribute(appointmentDetails, { 'align-items': 'center' });
9075
+ }
9076
+ }
8825
9077
  }
8826
9078
  destroy() {
8827
9079
  this.element = null;
@@ -9504,8 +9756,8 @@ class InlineEdit {
9504
9756
  args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
9505
9757
  }
9506
9758
  else {
9507
- if (subEle && this.parent.activeViewOptions && !this.parent.activeViewOptions.eventTemplate) {
9508
- innerWrapElement.insertBefore(inlineSubject, subEle);
9759
+ if (subEle && subEle.parentNode && this.parent.activeViewOptions && !this.parent.activeViewOptions.eventTemplate) {
9760
+ subEle.parentNode.insertBefore(inlineSubject, subEle);
9509
9761
  }
9510
9762
  else {
9511
9763
  innerWrapElement.prepend(inlineSubject);
@@ -9785,6 +10037,7 @@ class QuickPopups {
9785
10037
  constructor(parent) {
9786
10038
  this.isMultipleEventSelect = false;
9787
10039
  this.isCrudAction = false;
10040
+ this.morePopupHiddenEvents = [];
9788
10041
  this.parent = parent;
9789
10042
  this.l10n = this.parent.localeObj;
9790
10043
  this.fieldValidator = new FieldValidator();
@@ -10592,6 +10845,7 @@ class QuickPopups {
10592
10845
  if (moreEventContentEle) {
10593
10846
  remove(moreEventContentEle);
10594
10847
  }
10848
+ this.morePopupHiddenEvents = extend([], data.event, null, true);
10595
10849
  const selectedDate = ((data.date).getTime()).toString();
10596
10850
  const target = closest(data.element, '.' + MORE_INDICATOR_CLASS + ',.' + WORK_CELLS_CLASS);
10597
10851
  const day = this.parent.globalize.formatDate(data.date, { format: 'E', calendar: this.parent.getCalendarMode() });
@@ -10637,7 +10891,13 @@ class QuickPopups {
10637
10891
  }
10638
10892
  }
10639
10893
  else {
10640
- this.morePopup.relateTo = closest(target, '.' + WORK_CELLS_CLASS);
10894
+ const isVerticalView = ['Day', 'Week', 'WorkWeek'].indexOf(this.parent.currentView) > -1 && !this.parent.activeViewOptions.timeScale.enable;
10895
+ if (!isVerticalView) {
10896
+ this.morePopup.relateTo = target;
10897
+ }
10898
+ else {
10899
+ this.morePopup.relateTo = closest(target, '.' + WORK_CELLS_CLASS);
10900
+ }
10641
10901
  }
10642
10902
  }
10643
10903
  this.parent.renderTemplates(() => {
@@ -10711,7 +10971,13 @@ class QuickPopups {
10711
10971
  data = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)];
10712
10972
  groupOrder = data.groupOrder;
10713
10973
  }
10714
- const events = this.parent.eventBase.filterEvents(startDate, endDate, this.parent.eventsProcessed, data);
10974
+ let events = this.parent.eventBase.filterEvents(startDate, endDate, this.parent.eventsProcessed, data);
10975
+ const morePopupIsVerticalView = ['Day', 'Week', 'WorkWeek'].indexOf(this.parent.currentView) > -1 && this.parent.activeViewOptions.timeScale.enable;
10976
+ if (morePopupIsVerticalView && this.morePopupHiddenEvents.length > 0) {
10977
+ events = events.filter((processedEvent) => {
10978
+ return this.morePopupHiddenEvents.some((hiddenEvent) => hiddenEvent[this.parent.eventFields.id] === processedEvent[this.parent.eventFields.id]);
10979
+ });
10980
+ }
10715
10981
  const moreElement = this.createMoreEventList(events, groupOrder, groupIndex);
10716
10982
  this.morePopup.element.querySelector('.' + MORE_EVENT_POPUP_CLASS).appendChild(moreElement);
10717
10983
  }
@@ -11028,9 +11294,14 @@ class QuickPopups {
11028
11294
  let popupData;
11029
11295
  if (isCellPopup) {
11030
11296
  const formvalidator = this.quickPopup.element.querySelector('.e-formvalidator');
11031
- if (this.isCrudAction && formvalidator &&
11032
- !formvalidator.ej2_instances[0].validate()) {
11033
- return;
11297
+ if (this.isCrudAction && formvalidator && !formvalidator.ej2_instances[0].validate()) {
11298
+ if (!this.parent.uiStateValues.isNavigation) {
11299
+ return;
11300
+ }
11301
+ this.isCrudAction = false;
11302
+ if (this.fieldValidator) {
11303
+ this.fieldValidator.destroyToolTip();
11304
+ }
11034
11305
  }
11035
11306
  const fields = this.parent.eventFields;
11036
11307
  const saveObj = this.parent.eventWindow.getObjectFromFormData(POPUP_WRAPPER_CLASS);
@@ -11208,6 +11479,7 @@ class QuickPopups {
11208
11479
  this.destroyMorePopup();
11209
11480
  this.destroyQuickDialog();
11210
11481
  this.dialogEvent = null;
11482
+ this.morePopupHiddenEvents = null;
11211
11483
  this.parent = null;
11212
11484
  this.l10n = null;
11213
11485
  this.isCrudAction = null;
@@ -11596,6 +11868,11 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
11596
11868
  this.selectMonthDay(startDate);
11597
11869
  this.updateUntilDate(startDate);
11598
11870
  this.onMonthDay.setProperties({ checked: true });
11871
+ const repeatContentElement = this.element.querySelector('.' + REPEATCONTENT);
11872
+ if (repeatContentElement) {
11873
+ const contentKey = freq.toLowerCase();
11874
+ repeatContentElement.innerHTML = this.localeObj.getConstant(contentType[contentKey]);
11875
+ }
11599
11876
  }
11600
11877
  preRender() {
11601
11878
  this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);
@@ -16973,9 +17250,9 @@ class ResourceBase {
16973
17250
  addClass([this.popupOverlay], ENABLE_CLASS);
16974
17251
  }
16975
17252
  }
16976
- selectResourceByIndex(groupIndex) {
17253
+ selectResourceByIndex(groupIndex, isUserInitiated = true) {
16977
17254
  if (this.lastResourceLevel && groupIndex > -1 && groupIndex < this.lastResourceLevel.length) {
16978
- this.triggerEvents(groupIndex);
17255
+ this.triggerEvents(groupIndex, undefined, isUserInitiated);
16979
17256
  }
16980
17257
  }
16981
17258
  resourceClick(event) {
@@ -16988,14 +17265,14 @@ class ResourceBase {
16988
17265
  event.event.preventDefault();
16989
17266
  }
16990
17267
  }
16991
- triggerEvents(groupIndex, event) {
16992
- let args = { cancel: false, event: (event) ? event.event : null, groupIndex: groupIndex, requestType: 'resourceChange' };
17268
+ triggerEvents(groupIndex, event, isUserInitiated = true) {
17269
+ let args = { cancel: false, event: (event) ? event.event : null, groupIndex: groupIndex, requestType: 'resourceChange', isUserInitiated: isUserInitiated };
16993
17270
  this.parent.trigger(actionBegin, args, (actionArgs) => {
16994
17271
  if (!actionArgs.cancel) {
16995
17272
  this.parent.uiStateValues.groupIndex = actionArgs.groupIndex;
16996
17273
  this.parent.renderModule.render(this.parent.currentView);
16997
17274
  args = {
16998
- cancel: false, event: (event) ? event.event : null, groupIndex: this.parent.uiStateValues.groupIndex, requestType: 'resourceChanged'
17275
+ cancel: false, event: (event) ? event.event : null, groupIndex: this.parent.uiStateValues.groupIndex, requestType: 'resourceChanged', isUserInitiated: isUserInitiated
16999
17276
  };
17000
17277
  this.parent.adaptiveGroupIndex = this.parent.uiStateValues.groupIndex;
17001
17278
  this.parent.trigger(actionComplete, args);
@@ -17824,6 +18101,11 @@ let Schedule = class Schedule extends Component {
17824
18101
  this.renderElements(isSetModel);
17825
18102
  }
17826
18103
  }
18104
+ initializeSelectedResource() {
18105
+ if (!isNullOrUndefined(this.selectedResource) && this.enableAdaptiveUI && this.resourceBase) {
18106
+ this.changeSelectedResource(this.selectedResource);
18107
+ }
18108
+ }
17827
18109
  destroyEditorWindow() {
17828
18110
  if (this.eventWindow) {
17829
18111
  this.eventWindow.destroy();
@@ -17858,6 +18140,7 @@ let Schedule = class Schedule extends Component {
17858
18140
  if (!this.isPrinting) {
17859
18141
  this.initializePopups();
17860
18142
  }
18143
+ this.initializeSelectedResource();
17861
18144
  }
17862
18145
  validateDate(selectedDate = this.selectedDate) {
17863
18146
  // persist the selected date value
@@ -18202,6 +18485,7 @@ let Schedule = class Schedule extends Component {
18202
18485
  * @private
18203
18486
  */
18204
18487
  changeView(view, event, muteOnChange, index) {
18488
+ this.closeQuickInfoOnNavigation();
18205
18489
  if (isNullOrUndefined(index)) {
18206
18490
  index = this.getViewIndex(view);
18207
18491
  }
@@ -18251,6 +18535,7 @@ let Schedule = class Schedule extends Component {
18251
18535
  * @private
18252
18536
  */
18253
18537
  changeDate(selectedDate, event) {
18538
+ this.closeQuickInfoOnNavigation();
18254
18539
  let args = { requestType: 'dateNavigate', cancel: false, event: event };
18255
18540
  this.trigger(actionBegin, args, (actionArgs) => {
18256
18541
  if (!actionArgs.cancel) {
@@ -18367,7 +18652,7 @@ let Schedule = class Schedule extends Component {
18367
18652
  this.uiStateValues = {
18368
18653
  expand: false, isInitial: true, left: 0, top: 0, isGroupAdaptive: false,
18369
18654
  isIgnoreOccurrence: false, groupIndex: this.adaptiveGroupIndex, action: false,
18370
- isBlock: false, isCustomMonth: true, isPreventTimezone: false, isTransformed: false
18655
+ isBlock: false, isCustomMonth: true, isPreventTimezone: false, isTransformed: false, isNavigation: false
18371
18656
  };
18372
18657
  }
18373
18658
  this.currentTimezoneDate = this.getCurrentTime();
@@ -19378,6 +19663,11 @@ let Schedule = class Schedule extends Component {
19378
19663
  case 'resources':
19379
19664
  state.isResource = true;
19380
19665
  break;
19666
+ case 'selectedResource':
19667
+ if (!isNullOrUndefined(newProp.selectedResource) && this.enableAdaptiveUI) {
19668
+ this.changeSelectedResource(newProp.selectedResource);
19669
+ }
19670
+ break;
19381
19671
  case 'timeScale':
19382
19672
  this.activeViewOptions.timeScale.interval = newProp.timeScale.interval || this.activeViewOptions.timeScale.interval;
19383
19673
  this.activeViewOptions.timeScale.slotCount = newProp.timeScale.slotCount || this.activeViewOptions.timeScale.slotCount;
@@ -19762,6 +20052,21 @@ let Schedule = class Schedule extends Component {
19762
20052
  }
19763
20053
  return undefined;
19764
20054
  }
20055
+ changeSelectedResource(resourceId) {
20056
+ if (!this.resourceBase || !this.resourceBase.lastResourceLevel || this.resourceBase.lastResourceLevel.length === 0) {
20057
+ return;
20058
+ }
20059
+ const foundIndex = this.resourceBase.lastResourceLevel.findIndex((level) => {
20060
+ const idField = level.resource.idField || 'Id';
20061
+ // eslint-disable-next-line security/detect-object-injection
20062
+ return level.resourceData[idField] === resourceId;
20063
+ });
20064
+ if (foundIndex === -1) {
20065
+ console.warn(`Resource with ID "${resourceId}" not found in data source.`);
20066
+ return;
20067
+ }
20068
+ this.resourceBase.selectResourceByIndex(foundIndex, false);
20069
+ }
19765
20070
  /**
19766
20071
  * This method allows to expand the resource that available on the scheduler.
19767
20072
  *
@@ -20435,6 +20740,11 @@ let Schedule = class Schedule extends Component {
20435
20740
  this.quickPopup.quickPopupHide(true);
20436
20741
  }
20437
20742
  }
20743
+ closeQuickInfoOnNavigation() {
20744
+ this.uiStateValues.isNavigation = true;
20745
+ this.closeQuickInfoPopup();
20746
+ this.uiStateValues.isNavigation = false;
20747
+ }
20438
20748
  /**
20439
20749
  * To manually open the overlap validation Alert.
20440
20750
  *
@@ -20852,6 +21162,9 @@ __decorate$b([
20852
21162
  __decorate$b([
20853
21163
  Collection([], Resources)
20854
21164
  ], Schedule.prototype, "resources", void 0);
21165
+ __decorate$b([
21166
+ Property()
21167
+ ], Schedule.prototype, "selectedResource", void 0);
20855
21168
  __decorate$b([
20856
21169
  Collection([], HeaderRows)
20857
21170
  ], Schedule.prototype, "headerRows", void 0);
@@ -21320,8 +21633,12 @@ class ActionBase {
21320
21633
  'width': appWidth + 'px', 'border': '0px', 'pointer-events': 'none',
21321
21634
  'position': 'absolute', 'overflow': 'hidden', 'padding': '3px'
21322
21635
  });
21323
- if (this.actionObj.clone.style.backgroundColor !== '') {
21324
- setStyleAttribute(appointmentElement, { 'backgroundColor': this.actionObj.clone.style.backgroundColor });
21636
+ const eventGuid = event.Guid;
21637
+ if (eventGuid) {
21638
+ const originalElement = this.parent.element.querySelector(`[data-guid="${eventGuid}"]`);
21639
+ if (originalElement && originalElement.style.backgroundColor) {
21640
+ setStyleAttribute(appointmentElement, { 'backgroundColor': originalElement.style.backgroundColor });
21641
+ }
21325
21642
  }
21326
21643
  const date = resetTime(event[this.parent.eventFields.startTime]).getTime();
21327
21644
  let query = '.' + WORK_CELLS_CLASS + '[data-date="' + date + '"]';