@acorex/components 20.2.0-next.9 → 20.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/accordion/index.d.ts +6 -5
  2. package/action-sheet/index.d.ts +1 -10
  3. package/alert/index.d.ts +1 -3
  4. package/aspect-ratio/README.md +3 -0
  5. package/aspect-ratio/index.d.ts +11 -0
  6. package/autocomplete/index.d.ts +6 -2
  7. package/avatar/index.d.ts +1 -2
  8. package/badge/index.d.ts +1 -2
  9. package/bottom-navigation/index.d.ts +10 -2
  10. package/breadcrumbs/index.d.ts +2 -3
  11. package/button/index.d.ts +56 -17
  12. package/button-group/index.d.ts +10 -6
  13. package/calendar/index.d.ts +9 -9
  14. package/check-box/index.d.ts +1 -4
  15. package/chips/index.d.ts +1 -2
  16. package/circular-progress/index.d.ts +23 -18
  17. package/code-editor/README.md +3 -0
  18. package/code-editor/index.d.ts +103 -0
  19. package/collapse/index.d.ts +7 -6
  20. package/color-box/index.d.ts +5 -8
  21. package/color-palette/index.d.ts +19 -24
  22. package/command/README.md +3 -0
  23. package/command/index.d.ts +60 -0
  24. package/comment/index.d.ts +15 -10
  25. package/conversation/index.d.ts +106 -78
  26. package/data-list/README.md +356 -0
  27. package/data-list/index.d.ts +102 -0
  28. package/data-pager/index.d.ts +22 -17
  29. package/data-table/index.d.ts +59 -3
  30. package/datetime-box/index.d.ts +11 -15
  31. package/datetime-input/index.d.ts +1 -4
  32. package/datetime-picker/index.d.ts +4 -11
  33. package/decorators/index.d.ts +2 -2
  34. package/dialog/index.d.ts +29 -4
  35. package/drawer-2/index.d.ts +22 -8
  36. package/dropdown/index.d.ts +44 -3
  37. package/dropdown-button/index.d.ts +7 -2
  38. package/fesm2022/acorex-components-accordion.mjs +74 -72
  39. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  40. package/fesm2022/acorex-components-action-sheet.mjs +22 -48
  41. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  42. package/fesm2022/acorex-components-alert.mjs +12 -16
  43. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  44. package/fesm2022/acorex-components-aspect-ratio.mjs +36 -0
  45. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -0
  46. package/fesm2022/acorex-components-audio-wave.mjs +7 -7
  47. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  48. package/fesm2022/acorex-components-autocomplete.mjs +25 -10
  49. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  50. package/fesm2022/acorex-components-avatar.mjs +13 -17
  51. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  52. package/fesm2022/acorex-components-badge.mjs +9 -11
  53. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  54. package/fesm2022/acorex-components-bottom-navigation.mjs +18 -16
  55. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  56. package/fesm2022/acorex-components-breadcrumbs.mjs +21 -20
  57. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  58. package/fesm2022/acorex-components-button-group.mjs +35 -26
  59. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  60. package/fesm2022/acorex-components-button.mjs +78 -38
  61. package/fesm2022/acorex-components-button.mjs.map +1 -1
  62. package/fesm2022/acorex-components-calendar.mjs +52 -41
  63. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  64. package/fesm2022/acorex-components-check-box.mjs +10 -13
  65. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  66. package/fesm2022/acorex-components-chips.mjs +9 -11
  67. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  68. package/fesm2022/acorex-components-circular-progress.mjs +31 -26
  69. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  70. package/fesm2022/acorex-components-code-editor.mjs +591 -0
  71. package/fesm2022/acorex-components-code-editor.mjs.map +1 -0
  72. package/fesm2022/acorex-components-collapse.mjs +21 -21
  73. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  74. package/fesm2022/acorex-components-color-box.mjs +32 -32
  75. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  76. package/fesm2022/acorex-components-color-palette.mjs +68 -84
  77. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  78. package/fesm2022/acorex-components-command.mjs +144 -0
  79. package/fesm2022/acorex-components-command.mjs.map +1 -0
  80. package/fesm2022/acorex-components-comment.mjs +47 -41
  81. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  82. package/fesm2022/acorex-components-conversation.mjs +121 -89
  83. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  84. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  85. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  86. package/fesm2022/acorex-components-data-list.mjs +386 -0
  87. package/fesm2022/acorex-components-data-list.mjs.map +1 -0
  88. package/fesm2022/acorex-components-data-pager.mjs +41 -36
  89. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  90. package/fesm2022/acorex-components-data-table.mjs +97 -41
  91. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  92. package/fesm2022/acorex-components-datetime-box.mjs +21 -35
  93. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  94. package/fesm2022/acorex-components-datetime-input.mjs +13 -17
  95. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  96. package/fesm2022/acorex-components-datetime-picker.mjs +44 -46
  97. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  98. package/fesm2022/acorex-components-decorators.mjs +27 -27
  99. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  100. package/fesm2022/acorex-components-dialog.mjs +44 -19
  101. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  102. package/fesm2022/acorex-components-drawer-2.mjs +28 -14
  103. package/fesm2022/acorex-components-drawer-2.mjs.map +1 -1
  104. package/fesm2022/acorex-components-drawer.mjs +13 -13
  105. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  106. package/fesm2022/acorex-components-dropdown-button.mjs +16 -11
  107. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  108. package/fesm2022/acorex-components-dropdown.mjs +57 -13
  109. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  110. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  111. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  112. package/fesm2022/acorex-components-flow-chart.mjs +40 -16
  113. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  114. package/fesm2022/acorex-components-form.mjs +36 -17
  115. package/fesm2022/acorex-components-form.mjs.map +1 -1
  116. package/fesm2022/acorex-components-grid-layout-builder.mjs +125 -15
  117. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  118. package/fesm2022/acorex-components-image-editor.mjs +115 -92
  119. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  120. package/fesm2022/acorex-components-image.mjs +7 -7
  121. package/fesm2022/acorex-components-image.mjs.map +1 -1
  122. package/fesm2022/acorex-components-json-viewer.mjs +8 -8
  123. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  124. package/fesm2022/acorex-components-kanban.mjs +11 -7
  125. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  126. package/fesm2022/acorex-components-kbd.mjs +21 -29
  127. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  128. package/fesm2022/acorex-components-label.mjs +11 -15
  129. package/fesm2022/acorex-components-label.mjs.map +1 -1
  130. package/fesm2022/acorex-components-list.mjs +17 -28
  131. package/fesm2022/acorex-components-list.mjs.map +1 -1
  132. package/fesm2022/acorex-components-loading-dialog.mjs +58 -59
  133. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  134. package/fesm2022/acorex-components-loading.mjs +84 -28
  135. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  136. package/fesm2022/acorex-components-map.mjs +484 -112
  137. package/fesm2022/acorex-components-map.mjs.map +1 -1
  138. package/fesm2022/acorex-components-media-viewer.mjs +37 -37
  139. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  140. package/fesm2022/acorex-components-menu.mjs +67 -37
  141. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  142. package/fesm2022/{acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs → acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs} +117 -40
  143. package/fesm2022/acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs.map +1 -0
  144. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs +235 -0
  145. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs.map +1 -0
  146. package/fesm2022/acorex-components-modal.mjs +1 -1
  147. package/fesm2022/acorex-components-navbar.mjs +14 -10
  148. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  149. package/fesm2022/acorex-components-notification.mjs +31 -45
  150. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  151. package/fesm2022/acorex-components-number-box-2.mjs +18 -5
  152. package/fesm2022/acorex-components-number-box-2.mjs.map +1 -1
  153. package/fesm2022/acorex-components-number-box.mjs +7 -7
  154. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  155. package/fesm2022/acorex-components-otp.mjs +14 -15
  156. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  157. package/fesm2022/acorex-components-page.mjs +10 -10
  158. package/fesm2022/acorex-components-page.mjs.map +1 -1
  159. package/fesm2022/acorex-components-paint.mjs +68 -33
  160. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  161. package/fesm2022/acorex-components-password-box.mjs +15 -18
  162. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  163. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  164. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  165. package/fesm2022/acorex-components-phone-box.mjs +44 -14
  166. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  167. package/fesm2022/acorex-components-picker.mjs +13 -13
  168. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  169. package/fesm2022/acorex-components-popover.mjs +13 -18
  170. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  171. package/fesm2022/acorex-components-popup.mjs +10 -10
  172. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  173. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  174. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  175. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  176. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  177. package/fesm2022/acorex-components-query-builder.mjs +7 -7
  178. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  179. package/fesm2022/acorex-components-radio.mjs +7 -7
  180. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  181. package/fesm2022/acorex-components-rail-navigation.mjs +26 -16
  182. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  183. package/fesm2022/acorex-components-range-slider.mjs +13 -9
  184. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  185. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  186. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  187. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  188. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  189. package/fesm2022/acorex-components-result.mjs +7 -7
  190. package/fesm2022/acorex-components-result.mjs.map +1 -1
  191. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  192. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  193. package/fesm2022/acorex-components-rrule.mjs +222 -102
  194. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  195. package/fesm2022/acorex-components-scheduler.mjs +1581 -167
  196. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  197. package/fesm2022/acorex-components-scss.mjs +4 -4
  198. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  199. package/fesm2022/acorex-components-search-box.mjs +7 -7
  200. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  201. package/fesm2022/acorex-components-select-box.mjs +70 -28
  202. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  203. package/fesm2022/acorex-components-selection-list-2.mjs +12 -9
  204. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  205. package/fesm2022/acorex-components-selection-list.mjs +14 -11
  206. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  207. package/fesm2022/acorex-components-side-menu.mjs +98 -43
  208. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  209. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  210. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  211. package/fesm2022/acorex-components-slider.mjs +9 -9
  212. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  213. package/fesm2022/acorex-components-sliding-item.mjs +16 -16
  214. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  215. package/fesm2022/acorex-components-step-wizard.mjs +31 -32
  216. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  217. package/fesm2022/acorex-components-switch.mjs +12 -12
  218. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  219. package/fesm2022/acorex-components-tabs.mjs +20 -15
  220. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  221. package/fesm2022/acorex-components-tag-box.mjs +47 -19
  222. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  223. package/fesm2022/acorex-components-tag.mjs +8 -8
  224. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  225. package/fesm2022/acorex-components-text-area.mjs +8 -9
  226. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  227. package/fesm2022/acorex-components-text-box.mjs +22 -12
  228. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  229. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  230. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  231. package/fesm2022/acorex-components-time-line.mjs +13 -10
  232. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  233. package/fesm2022/acorex-components-toast.mjs +59 -14
  234. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  235. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  236. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  237. package/fesm2022/acorex-components-tooltip.mjs +12 -11
  238. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  239. package/fesm2022/acorex-components-tree-view.mjs +12 -12
  240. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  241. package/fesm2022/acorex-components-uploader.mjs +252 -56
  242. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  243. package/fesm2022/acorex-components-video-player.mjs +7 -7
  244. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  245. package/fesm2022/acorex-components-wysiwyg.mjs +96 -60
  246. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  247. package/flow-chart/index.d.ts +24 -0
  248. package/form/index.d.ts +27 -13
  249. package/grid-layout-builder/index.d.ts +115 -4
  250. package/image/index.d.ts +4 -4
  251. package/image-editor/index.d.ts +16 -14
  252. package/json-viewer/index.d.ts +3 -3
  253. package/kanban/index.d.ts +7 -3
  254. package/kbd/index.d.ts +11 -11
  255. package/label/index.d.ts +1 -2
  256. package/list/index.d.ts +4 -14
  257. package/loading/index.d.ts +59 -6
  258. package/loading-dialog/index.d.ts +30 -19
  259. package/map/index.d.ts +95 -2
  260. package/menu/index.d.ts +38 -13
  261. package/modal/index.d.ts +47 -2
  262. package/navbar/index.d.ts +7 -3
  263. package/notification/index.d.ts +1 -8
  264. package/number-box-2/index.d.ts +1 -1
  265. package/otp/index.d.ts +1 -3
  266. package/package.json +43 -4
  267. package/paint/index.d.ts +42 -7
  268. package/password-box/index.d.ts +7 -10
  269. package/phone-box/index.d.ts +17 -16
  270. package/popover/index.d.ts +2 -2
  271. package/popup/index.d.ts +2 -2
  272. package/qrcode/index.d.ts +7 -7
  273. package/query-builder/index.d.ts +1 -1
  274. package/rail-navigation/index.d.ts +12 -3
  275. package/range-slider/index.d.ts +13 -13
  276. package/rate-picker/index.d.ts +5 -5
  277. package/rest-api-generator/index.d.ts +1 -1
  278. package/rrule/index.d.ts +40 -17
  279. package/scheduler/index.d.ts +541 -191
  280. package/search-box/index.d.ts +2 -2
  281. package/select-box/index.d.ts +13 -4
  282. package/selection-list-2/index.d.ts +3 -3
  283. package/side-menu/index.d.ts +24 -15
  284. package/sliding-item/index.d.ts +4 -5
  285. package/step-wizard/index.d.ts +10 -13
  286. package/switch/index.d.ts +0 -1
  287. package/tabs/index.d.ts +6 -1
  288. package/tag-box/index.d.ts +18 -2
  289. package/text-area/index.d.ts +1 -2
  290. package/text-box/index.d.ts +2 -0
  291. package/time-line/index.d.ts +3 -0
  292. package/toast/index.d.ts +45 -1
  293. package/tooltip/index.d.ts +2 -1
  294. package/uploader/index.d.ts +215 -5
  295. package/wysiwyg/index.d.ts +26 -5
  296. package/fesm2022/acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs.map +0 -1
  297. package/fesm2022/acorex-components-modal-modal-content.component-DfhgA_WL.mjs +0 -218
  298. package/fesm2022/acorex-components-modal-modal-content.component-DfhgA_WL.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { AXRange, NXNativeEvent, NXComponent, NXEvent, AXValueChangedEvent } from '@acorex/cdk/common';
2
2
  import { AXDateTime, AXHolidayDate } from '@acorex/core/date-time';
3
3
  import * as _angular_core from '@angular/core';
4
- import { OnInit, TemplateRef } from '@angular/core';
4
+ import { OnInit, TemplateRef, AfterViewInit, ElementRef } from '@angular/core';
5
5
  import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
6
6
 
7
- type AXSchedulerView = 'day' | 'week' | 'month' | 'timeline-day' | 'timeline-multi-day' | 'timeline-month' | 'agenda';
7
+ type AXSchedulerView = 'day' | 'week' | 'month' | 'timeline-day' | 'timeline-multi-day' | 'timeline-month' | 'timeline-year' | 'agenda';
8
8
  type AXDayOfWeekName = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
9
9
  type AXSchedulerBlockIdentifier = {
10
10
  dayIndex: number;
@@ -15,6 +15,7 @@ type AXSchedulerAppointment = {
15
15
  endDate: Date;
16
16
  title?: string;
17
17
  startDate: Date;
18
+ resourceId?: any;
18
19
  allDay?: boolean;
19
20
  cssClass?: string;
20
21
  readonly?: boolean;
@@ -33,7 +34,6 @@ type AXSchedulerDayAppointmentLayout = {
33
34
  effectiveTotalColumns: number;
34
35
  };
35
36
  type AXSchedulerBlockOccupancyMap = Map<string, any>;
36
- type AXSchedulerAppointmentsByStartBlock = Record<number, Record<number, AXSchedulerAppointmentSegment[]>>;
37
37
  type AXSchedulerActiveAppointmentsInBlock = Record<number, Record<number, AXSchedulerAppointmentSegment[]>>;
38
38
  type AXSchedulerOverflowBadge = {
39
39
  key: any;
@@ -63,6 +63,11 @@ type AXSchedulerAppointmentDataSourceFilter = {
63
63
  type AXSchedulerAppointmentLoader = (filter?: AXSchedulerAppointmentDataSourceFilter) => AXSchedulerAppointment[];
64
64
  type AXSchedulerAppointmentLoaderAsync = (filter?: AXSchedulerAppointmentDataSourceFilter) => Promise<AXSchedulerAppointment[]>;
65
65
  type AXSchedulerAppointmentDataSource = AXSchedulerAppointment[] | AXSchedulerAppointmentLoader | AXSchedulerAppointmentLoaderAsync;
66
+ type AXSchedulerResource = {
67
+ id: any;
68
+ title: string;
69
+ description?: string;
70
+ };
66
71
 
67
72
  interface AXSchedulerAppointmentMouseEvent extends NXNativeEvent<AXSchedulerComponent, MouseEvent> {
68
73
  appointment: AXSchedulerAppointment;
@@ -81,6 +86,7 @@ interface AXSchedulerSlotDropEvent extends NXEvent<AXSchedulerComponent> {
81
86
  endDate: AXDateTime;
82
87
  startDate: AXDateTime;
83
88
  view: AXSchedulerView;
89
+ resourceId?: any;
84
90
  };
85
91
  isSameSlotDrop: boolean;
86
92
  }
@@ -116,12 +122,18 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
116
122
  draggable: _angular_core.InputSignal<boolean>;
117
123
  hasActions: _angular_core.InputSignal<boolean>;
118
124
  dragStartDelay: _angular_core.InputSignal<number>;
125
+ weekend: _angular_core.InputSignal<number[]>;
119
126
  allowFullScreen: _angular_core.InputSignal<boolean>;
120
127
  multiDayViewDaysCount: _angular_core.InputSignal<number>;
128
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
129
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
130
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
131
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
132
+ resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
133
+ firstDayOfWeek: _angular_core.InputSignal<AXDayOfWeekName>;
121
134
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
122
135
  dataSource: _angular_core.InputSignal<AXSchedulerAppointmentDataSource>;
123
136
  holidays: _angular_core.InputSignal<(range: AXSchedulerDateRange) => Promise<AXHolidayDate[]>>;
124
- firstDayOfWeek: _angular_core.InputSignal<AXDayOfWeekName>;
125
137
  views: _angular_core.InputSignal<AXSchedulerView[]>;
126
138
  selectedView: _angular_core.ModelSignal<AXSchedulerView>;
127
139
  private prevView;
@@ -146,22 +158,46 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
146
158
  private fillDataSource;
147
159
  private getGridDateRange;
148
160
  currentDateText: _angular_core.Signal<string>;
149
- calendarDepth: _angular_core.Signal<"day" | "month">;
161
+ calendarDepth: _angular_core.Signal<"day" | "month" | "year">;
150
162
  private mappedAppointments;
151
163
  range: _angular_core.Signal<AXSchedulerDateRange>;
152
164
  viewAppointments: _angular_core.Signal<AXSchedulerAppointment[]>;
165
+ /**
166
+ * Handles view change events.
167
+ *
168
+ * @param e - The value changed event containing old and new view values.
169
+ */
153
170
  viewChanged(e: AXValueChangedEvent<AXSchedulerView>): void;
154
171
  private handleViewChanged;
172
+ /**
173
+ * Navigates to the next time period based on current view.
174
+ */
155
175
  nextClick(): void;
176
+ /**
177
+ * Navigates to the previous time period based on current view.
178
+ */
156
179
  prevClick(): void;
180
+ /**
181
+ * Handles calendar date change events.
182
+ *
183
+ * @param e - The value changed event containing the new date.
184
+ */
157
185
  calendarDateChanged(e: AXValueChangedEvent<Date>): void;
186
+ /**
187
+ * Toggles fullscreen mode for the scheduler.
188
+ */
158
189
  handleFullScreen(): void;
190
+ /**
191
+ * Refreshes the scheduler data.
192
+ *
193
+ * @param appointments - Optional array of appointments to refresh with.
194
+ */
159
195
  refresh(appointments?: AXSchedulerAppointment[]): Promise<void>;
160
196
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerComponent, never>;
161
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerComponent, "ax-scheduler", never, { "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "startingDate": { "alias": "startingDate"; "required": false; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": false; "isSignal": true; }; "hasHeader": { "alias": "hasHeader"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "allowFullScreen": { "alias": "allowFullScreen"; "required": false; "isSignal": true; }; "multiDayViewDaysCount": { "alias": "multiDayViewDaysCount"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "holidays": { "alias": "holidays"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "views": { "alias": "views"; "required": false; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": false; "isSignal": true; }; }, { "selectedView": "selectedViewChange"; "onDataLoaded": "onDataLoaded"; "onRangeChanged": "onRangeChanged"; "onSlotClicked": "onSlotClicked"; "onSlotDblClicked": "onSlotDblClicked"; "onSlotRightClick": "onSlotRightClick"; "onAppointmentDrop": "onAppointmentDrop"; "onActionClick": "onActionClick"; "onAppointmentClicked": "onAppointmentClicked"; "onAppointmentDblClicked": "onAppointmentDblClicked"; "onAppointmentRightClick": "onAppointmentRightClick"; }, never, never, true, never>;
197
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerComponent, "ax-scheduler", never, { "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "startingDate": { "alias": "startingDate"; "required": false; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": false; "isSignal": true; }; "hasHeader": { "alias": "hasHeader"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "allowFullScreen": { "alias": "allowFullScreen"; "required": false; "isSignal": true; }; "multiDayViewDaysCount": { "alias": "multiDayViewDaysCount"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "holidays": { "alias": "holidays"; "required": false; "isSignal": true; }; "views": { "alias": "views"; "required": false; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": false; "isSignal": true; }; }, { "selectedView": "selectedViewChange"; "onDataLoaded": "onDataLoaded"; "onRangeChanged": "onRangeChanged"; "onSlotClicked": "onSlotClicked"; "onSlotDblClicked": "onSlotDblClicked"; "onSlotRightClick": "onSlotRightClick"; "onAppointmentDrop": "onAppointmentDrop"; "onActionClick": "onActionClick"; "onAppointmentClicked": "onAppointmentClicked"; "onAppointmentDblClicked": "onAppointmentDblClicked"; "onAppointmentRightClick": "onAppointmentRightClick"; }, never, never, true, never>;
162
198
  }
163
199
 
164
- declare class AXSchedulerDayViewComponent extends NXComponent {
200
+ declare class AXSchedulerDayViewComponent extends NXComponent implements AfterViewInit {
165
201
  private document;
166
202
  private scheduler;
167
203
  private calendarService;
@@ -175,12 +211,14 @@ declare class AXSchedulerDayViewComponent extends NXComponent {
175
211
  date: _angular_core.InputSignal<AXDateTime>;
176
212
  endDayHour: _angular_core.InputSignal<number>;
177
213
  startDayHour: _angular_core.InputSignal<number>;
214
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
178
215
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
179
216
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
217
+ currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
180
218
  private dragStartSlotId;
181
- processedAppointmentsForLayout: _angular_core.Signal<AXSchedulerAppointmentSegment[]>;
182
- allDayAppointments: _angular_core.Signal<AXSchedulerAppointment[]>;
183
- singleDayAppointments: _angular_core.Signal<AXSchedulerAppointmentSegment[]>;
219
+ private processedAppointmentsForLayout;
220
+ protected allDayAppointments: _angular_core.Signal<AXSchedulerAppointment[]>;
221
+ protected singleDayAppointments: _angular_core.Signal<AXSchedulerAppointmentSegment[]>;
184
222
  slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
185
223
  slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
186
224
  slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -190,29 +228,33 @@ declare class AXSchedulerDayViewComponent extends NXComponent {
190
228
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
191
229
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
192
230
  private readonly eventOutputMap;
193
- handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointment): void;
194
- handleSingleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime): void;
195
- handleAllDaySlotEvent(mouseEvent: MouseEvent): void;
196
- handleAllDayDrop(e: AXDropZoneDropEvent): void;
197
- handleSingleDayDrop(e: AXDropZoneDropEvent, startDate: AXDateTime): void;
198
- handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
199
- hoursArray: _angular_core.Signal<AXDateTime[]>;
200
- appointmentLayouts: _angular_core.Signal<Map<any, AXSchedulerDayAppointmentLayout>>;
201
- getAppointmentLayout(key: any): AXSchedulerDayAppointmentLayout | undefined;
202
- getAppointmentLeft(key: any): string;
203
- getAppointmentWidth(key: any): string;
204
- getAppointmentTop(key: any): string;
205
- getAppointmentHeight(key: any): string;
206
- getSlotId(e: PointerEvent): void;
207
- get isReadonly(): boolean;
231
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointment): void;
232
+ protected handleSingleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime): void;
233
+ protected handleAllDaySlotEvent(mouseEvent: MouseEvent): void;
234
+ protected handleAllDayDrop(e: AXDropZoneDropEvent): void;
235
+ protected handleSingleDayDrop(e: AXDropZoneDropEvent, startDate: AXDateTime): void;
236
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
237
+ protected hoursArray: _angular_core.Signal<AXDateTime[]>;
238
+ private appointmentLayouts;
239
+ private getAppointmentLayout;
240
+ protected getAppointmentLeft(key: any): string;
241
+ protected getAppointmentWidth(key: any): string;
242
+ protected getAppointmentTop(key: any): string;
243
+ protected getAppointmentHeight(key: any): string;
244
+ protected getCurrentTimePosition(): number | null;
245
+ protected getCurrentTimePositionWithOffset(): string | null;
246
+ ngAfterViewInit(): void;
247
+ private setupCurrentTimeScroll;
248
+ protected getSlotId(e: PointerEvent): void;
249
+ protected get isReadonly(): boolean;
208
250
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerDayViewComponent, never>;
209
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerDayViewComponent, "ax-scheduler-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
251
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerDayViewComponent, "ax-scheduler-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
210
252
  }
211
253
 
212
254
  type AXSchedulerGridBadgeInfo = AXSchedulerOverflowBadge & {
213
255
  hiddenAppointments: AXSchedulerAppointmentSegment[];
214
256
  };
215
- declare class AXSchedulerWeekViewComponent extends NXComponent {
257
+ declare class AXSchedulerWeekViewComponent extends NXComponent implements AfterViewInit {
216
258
  private readonly document;
217
259
  private readonly scheduler;
218
260
  private readonly calendarService;
@@ -228,8 +270,10 @@ declare class AXSchedulerWeekViewComponent extends NXComponent {
228
270
  date: _angular_core.InputSignal<AXDateTime>;
229
271
  endDayHour: _angular_core.InputSignal<number>;
230
272
  startDayHour: _angular_core.InputSignal<number>;
273
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
231
274
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
232
275
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
276
+ currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
233
277
  protected readonly slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
234
278
  protected readonly slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
235
279
  protected readonly slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -287,48 +331,48 @@ declare class AXSchedulerWeekViewComponent extends NXComponent {
287
331
  * Handles click, dblclick, and contextmenu events on an appointment and emits them to the parent.
288
332
  * @param mouseEvent The native DOM event.
289
333
  * @param appointmentSegment The appointment data segment that was interacted with.
290
- * @public
334
+ * @protected
291
335
  */
292
- handleAppointmentEvent(mouseEvent: MouseEvent, appointmentSegment: AXSchedulerAppointment): void;
336
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentSegment: AXSchedulerAppointment): void;
293
337
  /**
294
338
  * Handles click, dblclick, and contextmenu events on an empty time slot and emits them to the parent.
295
339
  * @param mouseEvent The native DOM event.
296
340
  * @param hour The starting hour of the slot.
297
341
  * @param day The day of the slot.
298
342
  * @param minuteIndex The half-hour index (0 or 1).
299
- * @public
343
+ * @protected
300
344
  */
301
- handleSingleSlotEvent(mouseEvent: MouseEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
345
+ protected handleSingleSlotEvent(mouseEvent: MouseEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
302
346
  /**
303
347
  * Handles interaction events on the all-day slot.
304
348
  * @param mouseEvent The native DOM event.
305
349
  * @param day The corresponding day for the all-day slot.
306
- * @public
350
+ * @protected
307
351
  */
308
- handleAllDaySlotEvent(mouseEvent: MouseEvent, day: AXDateTime): void;
352
+ protected handleAllDaySlotEvent(mouseEvent: MouseEvent, day: AXDateTime): void;
309
353
  /**
310
354
  * Handles dropping an appointment onto the all-day slot.
311
355
  * @param e The drop event from the CDK.
312
356
  * @param day The corresponding day for the all-day slot.
313
- * @public
357
+ * @protected
314
358
  */
315
- handleAllDayDrop(e: AXDropZoneDropEvent, day: AXDateTime): void;
359
+ protected handleAllDayDrop(e: AXDropZoneDropEvent, day: AXDateTime): void;
316
360
  /**
317
361
  * Handles dropping an appointment onto a timed grid slot.
318
362
  * @param e The drop event from the CDK.
319
363
  * @param hour The starting hour of the drop target.
320
364
  * @param day The day of the drop target.
321
365
  * @param minuteIndex The half-hour index (0 or 1) of the drop target.
322
- * @public
366
+ * @protected
323
367
  */
324
- handleSingleDayDrop(e: AXDropZoneDropEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
368
+ protected handleSingleDayDrop(e: AXDropZoneDropEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
325
369
  /**
326
370
  * Handles clicks on the "more" action icon on an appointment.
327
371
  * @param event The native mouse event.
328
372
  * @param appointmentItem The appointment associated with the action.
329
- * @public
373
+ * @protected
330
374
  */
331
- handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
375
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
332
376
  /**
333
377
  * @protected
334
378
  * Checks if a given date is the current day.
@@ -352,11 +396,18 @@ declare class AXSchedulerWeekViewComponent extends NXComponent {
352
396
  * @param e The pointer event that initiates the drag.
353
397
  */
354
398
  protected getSlotId(e: PointerEvent): void;
399
+ protected getCurrentTimePosition(): number | null;
400
+ protected getCurrentTimePositionWithOffset(): string | null;
401
+ protected getCurrentDayColumnPosition(): string | null;
402
+ protected getCurrentDayColumnWidth(): string;
403
+ ngAfterViewInit(): void;
404
+ private setupCurrentTimeScroll;
405
+ protected shouldShowCurrentTimeForToday(): boolean;
355
406
  protected get isReadonly(): boolean;
356
407
  private processedAppointmentsForLayout;
357
408
  private timedGridSegments;
358
409
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerWeekViewComponent, never>;
359
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
410
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
360
411
  }
361
412
 
362
413
  type AXSchedulerMonthDayCell = {
@@ -397,54 +448,46 @@ declare class AXSchedulerMonthViewComponent extends NXComponent {
397
448
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
398
449
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
399
450
  private readonly eventOutputMap;
400
- handleAppointmentEvent(mouseEvent: MouseEvent, appointmentSegmentOrOriginal: AXSchedulerAppointment): void;
401
- handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
402
- handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
403
- handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
404
- monthStartDate: _angular_core.Signal<AXDateTime>;
405
- daysArray: _angular_core.Signal<AXDateTime[]>;
406
- calendarDaysInfo: _angular_core.Signal<{
407
- days: {
408
- date: AXDateTime;
409
- isCurrentMonth: boolean;
410
- isToday: boolean;
411
- isHoliday: boolean;
412
- holidayTitle?: string;
413
- holidayCssClass?: string;
414
- }[];
415
- weeksNeeded: number;
416
- }>;
417
- appointmentsGroupedByDay: _angular_core.Signal<Map<string, AXSchedulerAppointment[]>>;
418
- dayCellLayouts: _angular_core.Signal<AXSchedulerMonthDayCell[]>;
419
- gridTemplateRowsStyle: _angular_core.Signal<string>;
420
- getSlotId(e: PointerEvent): void;
421
- get isReadonly(): boolean;
451
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentSegmentOrOriginal: AXSchedulerAppointment): void;
452
+ protected handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
453
+ protected handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
454
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
455
+ private monthStartDate;
456
+ protected daysArray: _angular_core.Signal<AXDateTime[]>;
457
+ private calendarDaysInfo;
458
+ private appointmentsGroupedByDay;
459
+ protected dayCellLayouts: _angular_core.Signal<AXSchedulerMonthDayCell[]>;
460
+ protected gridTemplateRowsStyle: _angular_core.Signal<string>;
461
+ protected getSlotId(e: PointerEvent): void;
462
+ protected get isReadonly(): boolean;
422
463
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerMonthViewComponent, never>;
423
464
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
424
465
  }
425
466
 
426
- declare class AXSchedulerTimelineDayViewComponent extends NXComponent {
467
+ interface AgendaDayData {
468
+ date: AXDateTime;
469
+ appointments: AXSchedulerAppointmentSegment[];
470
+ holiday?: {
471
+ state: 'holiday' | 'weekend' | 'none';
472
+ holiday?: AXHolidayDate;
473
+ };
474
+ }
475
+ declare class AXSchedulerAgendaViewComponent extends NXComponent {
427
476
  private document;
428
477
  private scheduler;
429
478
  private calendarService;
430
479
  private schedulerService;
431
- readonly GAP_PX = 1;
480
+ daysCount: _angular_core.InputSignal<number>;
432
481
  readonly: _angular_core.InputSignal<boolean>;
433
482
  draggable: _angular_core.InputSignal<boolean>;
434
483
  hasActions: _angular_core.InputSignal<boolean>;
435
484
  dragStartDelay: _angular_core.InputSignal<number>;
436
485
  calendar: _angular_core.InputSignal<string>;
437
486
  date: _angular_core.InputSignal<AXDateTime>;
438
- endDayHour: _angular_core.InputSignal<number>;
439
- startDayHour: _angular_core.InputSignal<number>;
440
487
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
441
488
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
442
489
  private dragStartSlotId;
443
- /**
444
- * Processes original appointments to get segments relevant to this specific day and its viewable hours.
445
- * Filters out original all-day events.
446
- */
447
- processedSegmentsForLayout: _angular_core.Signal<AXSchedulerAppointmentSegment[]>;
490
+ protected agendaDaysLayout: _angular_core.Signal<AgendaDayData[]>;
448
491
  slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
449
492
  slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
450
493
  slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -454,124 +497,142 @@ declare class AXSchedulerTimelineDayViewComponent extends NXComponent {
454
497
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
455
498
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
456
499
  private readonly eventOutputMap;
457
- handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
458
- handleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime): void;
459
- handleDrop(e: AXDropZoneDropEvent, startDate: AXDateTime): void;
460
- handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
461
- hoursArray: _angular_core.Signal<AXDateTime[]>;
462
- appointmentLayouts: _angular_core.Signal<AXSchedulerAppointmentLayout[]>;
463
- getSlotId(e: PointerEvent): void;
464
- get isReadonly(): boolean;
465
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineDayViewComponent, never>;
466
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineDayViewComponent, "ax-scheduler-timeline-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
467
- }
468
-
469
- declare class AXSchedulerModule {
470
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerModule, never>;
471
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXSchedulerModule, never, [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerTimelineDayViewComponent], [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerTimelineDayViewComponent]>;
472
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXSchedulerModule>;
500
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
501
+ protected handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
502
+ protected handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
503
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
504
+ protected isToday(date: AXDateTime): boolean;
505
+ protected isHoliday(date: AXDateTime): {
506
+ state: 'holiday' | 'weekend' | 'none';
507
+ holiday?: AXHolidayDate;
508
+ };
509
+ protected getSlotId(e: PointerEvent): void;
510
+ protected get isReadonly(): boolean;
511
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerAgendaViewComponent, never>;
512
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerAgendaViewComponent, "ax-scheduler-agenda-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
473
513
  }
474
514
 
475
- declare class AXSchedulerService {
476
- private formatService;
515
+ declare class AXSchedulerTimelineDayViewComponent extends NXComponent implements AfterViewInit {
516
+ private document;
517
+ private scheduler;
477
518
  private calendarService;
478
- readonly HOURS_PER_DAY = 24;
479
- readonly MINUTES_PER_HOUR = 60;
480
- readonly BLOCK_DURATION_MINUTES = 30;
481
- readonly MILLISECONDS_PER_MINUTE: number;
482
- readonly MILLISECONDS_PER_DAY: number;
483
- internalHoliday: _angular_core.WritableSignal<AXHolidayDate[]>;
484
- /**
485
- * Checks if two appointments overlap in time.
486
- */
487
- doAppointmentsOverlap(appointmentA: AXSchedulerAppointment, appointmentB: AXSchedulerAppointment): boolean;
519
+ private schedulerService;
520
+ readonly GAP_PX = 1;
521
+ readonly: _angular_core.InputSignal<boolean>;
522
+ draggable: _angular_core.InputSignal<boolean>;
523
+ hasActions: _angular_core.InputSignal<boolean>;
524
+ dragStartDelay: _angular_core.InputSignal<number>;
525
+ calendar: _angular_core.InputSignal<string>;
526
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
527
+ date: _angular_core.InputSignal<AXDateTime>;
528
+ endDayHour: _angular_core.InputSignal<number>;
529
+ startDayHour: _angular_core.InputSignal<number>;
530
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
531
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
532
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
533
+ resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
534
+ appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
535
+ tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
536
+ private dragStartSlotId;
537
+ private dragStartSlotResourceId;
538
+ currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
488
539
  /**
489
- * Calculates appointment duration in minutes.
540
+ * Gets appointments grouped by resources for timeline view.
490
541
  */
491
- calculateDurationInMinutes(Appointment: AXSchedulerAppointment): number;
542
+ protected appointmentsByResource: _angular_core.Signal<Map<any, AXSchedulerAppointment[]>>;
492
543
  /**
493
- * Calculates appointment duration in blocks (default 30 min).
544
+ * Gets all resource IDs including unassigned if applicable.
494
545
  */
495
- calculateDurationInBlocks(appointment: AXSchedulerAppointment): number;
546
+ protected resourceIds: _angular_core.Signal<any[]>;
496
547
  /**
497
- * Gets the day index (relative to view start) and block index (relative to start hour)
498
- * for a given date time within the view context. Returns null if outside view.
548
+ * Processes original appointments to get segments relevant to this specific day and its viewable hours.
549
+ * Filters out original all-day events.
499
550
  */
500
- getBlockIdentifier(dateTime: AXDateTime, viewStartDate: AXDateTime, startHour: number, endHour: number, // Exclusive end hour
501
- viewTotalDays?: number): AXSchedulerBlockIdentifier | null;
551
+ private processedSegmentsForLayout;
552
+ slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
553
+ slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
554
+ slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
555
+ appointmentClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
556
+ appointmentDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
557
+ appointmentRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
558
+ onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
559
+ onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
560
+ private readonly eventOutputMap;
561
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
562
+ protected handleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime): void;
563
+ protected handleDrop(e: AXDropZoneDropEvent, startDate: AXDateTime, resourceId?: any): void;
564
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
565
+ protected hoursArray: _angular_core.Signal<AXDateTime[]>;
566
+ protected appointmentLayouts: _angular_core.Signal<AXSchedulerAppointmentLayout[]>;
502
567
  /**
503
- * Groups appointments by the blocks they are ACTIVE in for a given view.
504
- * @param viewTotalDays - Number of days in the current view (1 for Day, 7 for Week, etc.)
568
+ * Gets appointments for a specific resource.
505
569
  */
506
- calculateActiveAppointmentsInBlock(singleDayAppointments: AXSchedulerAppointmentSegment[], viewStartDate: AXDateTime, startHour: number, endHour: number, viewTotalDays: number): AXSchedulerActiveAppointmentsInBlock;
570
+ protected getAppointmentsForResource(resourceId: any): AXSchedulerAppointment[];
507
571
  /**
508
- * Calculates max concurrency and effective total columns for Day View appointments.
572
+ * Gets resource title by ID.
509
573
  */
510
- calculateDayViewConcurrencyInfo(singleDayAppointments: AXSchedulerAppointmentSegment[], // These are segments for the current day
511
- viewStartDate: AXDateTime, startHour: number, endHour: number): Map<any, {
512
- maxConcurrency: number;
513
- effectiveTotalColumns: number;
514
- }>;
574
+ protected getResourceTitle(resourceId: any): string;
575
+ protected getResourceContext(resourceId: any): AXSchedulerResource;
576
+ protected getCurrentTimePosition(): number | null;
577
+ protected getCurrentTimePositionWithOffset(): string | null;
578
+ ngAfterViewInit(): void;
579
+ private setupCurrentTimeScroll;
515
580
  /**
516
- * Groups appointments by the block they START in for Week View.
581
+ * Gets appointment layouts for a specific resource with proper positioning.
517
582
  */
518
- calculateWeekViewAppointmentsByStartBlock(singleDayAppointments: AXSchedulerAppointmentSegment[], viewStartDate: AXDateTime, startHour: number, endHour: number): AXSchedulerAppointmentsByStartBlock;
583
+ protected getAppointmentLayoutsForResource(resourceId: any): AXSchedulerAppointmentLayout[];
519
584
  /**
520
- * Groups appointments by the day(s) they occur on within a given date range.
521
- * Returns a Map where the key is the date string ('YYYY-MM-DD') and the value is an array of appointments.
585
+ * Calculates the height for a resource row based on its appointments.
522
586
  */
523
- groupAppointmentsByDay(appointments: AXSchedulerAppointment[], viewStartDate: AXDateTime, // First day visible in the grid
524
- viewEndDate: AXDateTime): Map<string, AXSchedulerAppointment[]>;
525
- getDayOfWeekNumber(dayName: AXDayOfWeekName): number;
526
- getSlotData(startDate: AXDateTime, view: AXSchedulerView): {
527
- startDate: AXDateTime;
528
- endDate: AXDateTime;
529
- view: AXSchedulerView;
530
- };
531
- handleEvent(event: AXSchedulerSlotMouseEvent | AXSchedulerAppointmentMouseEvent, eventOutputMap: any, eventType: 'appointment' | 'slot'): void;
532
- calculateTimelineLayout(appt: AXSchedulerAppointment, viewStartHour: number, // e.g., 8 for 8 AM
533
- viewEndHour: number): {
534
- left: string;
535
- width: string;
536
- } | null;
587
+ protected getResourceRowHeight(resourceId: any): string;
537
588
  /**
538
- * Calculates the visible segment of a timed appointment on a specific day,
539
- * constrained by the view's start and end hours.
540
- * Returns a new appointment-like object representing the segment.
589
+ * Calculates the maximum number of overlapping appointment rows needed.
541
590
  */
542
- getClonedAppointmentSegmentOnDay(appointment: AXSchedulerAppointment, // This is the ORIGINAL appointment
543
- day: AXDateTime, viewStartHour: number, viewEndHour: number, isFullDayCellContext?: boolean): AXSchedulerAppointmentSegment | null;
544
- getOriginalAppointment(item: AXSchedulerAppointment | AXSchedulerAppointmentSegment): AXSchedulerAppointment;
545
- isHoliday(date: AXDateTime): boolean;
546
- isWeekend(date: AXDateTime, calendar: string): boolean;
547
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerService, never>;
548
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXSchedulerService>;
591
+ private calculateMaxOverlappingRows;
592
+ protected getSlotId(e: PointerEvent): void;
593
+ protected get isReadonly(): boolean;
594
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineDayViewComponent, never>;
595
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineDayViewComponent, "ax-scheduler-timeline-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
549
596
  }
550
597
 
551
- interface AgendaDayData {
598
+ interface TimelineMonthViewDayData {
552
599
  date: AXDateTime;
553
- appointments: AXSchedulerAppointmentSegment[];
600
+ visibleAppointments: AXSchedulerAppointmentSegment[];
601
+ hiddenAppointments: AXSchedulerAppointmentSegment[];
602
+ moreCount: number;
554
603
  holiday?: {
555
604
  state: 'holiday' | 'weekend' | 'none';
556
605
  holiday?: AXHolidayDate;
557
606
  };
607
+ appointmentsByResource?: Map<string, {
608
+ visible: AXSchedulerAppointmentSegment[];
609
+ hidden: AXSchedulerAppointmentSegment[];
610
+ moreCount: number;
611
+ }>;
558
612
  }
559
- declare class AXSchedulerAgendaViewComponent extends NXComponent {
613
+ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent implements AfterViewInit {
560
614
  private document;
561
615
  private scheduler;
562
616
  private calendarService;
563
617
  private schedulerService;
564
- daysCount: _angular_core.InputSignal<number>;
618
+ private readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY;
565
619
  readonly: _angular_core.InputSignal<boolean>;
566
620
  draggable: _angular_core.InputSignal<boolean>;
567
621
  hasActions: _angular_core.InputSignal<boolean>;
568
622
  dragStartDelay: _angular_core.InputSignal<number>;
569
623
  calendar: _angular_core.InputSignal<string>;
624
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
570
625
  date: _angular_core.InputSignal<AXDateTime>;
626
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
627
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
628
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
629
+ resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
571
630
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
572
631
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
573
632
  private dragStartSlotId;
574
- agendaDaysLayout: _angular_core.Signal<AgendaDayData[]>;
633
+ private dragStartSlotResourceId;
634
+ currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
635
+ protected processedDayData: _angular_core.Signal<TimelineMonthViewDayData[]>;
575
636
  slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
576
637
  slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
577
638
  slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -581,47 +642,88 @@ declare class AXSchedulerAgendaViewComponent extends NXComponent {
581
642
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
582
643
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
583
644
  private readonly eventOutputMap;
584
- handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
585
- handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
586
- handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
587
- handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
645
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
646
+ protected handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
647
+ protected handleDrop(e: AXDropZoneDropEvent, date: AXDateTime, resourceId?: any): void;
648
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
588
649
  protected isToday(date: AXDateTime): boolean;
589
650
  protected isHoliday(date: AXDateTime): {
590
651
  state: 'holiday' | 'weekend' | 'none';
591
652
  holiday?: AXHolidayDate;
592
653
  };
593
- getSlotId(e: PointerEvent): void;
594
- get isReadonly(): boolean;
595
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerAgendaViewComponent, never>;
596
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerAgendaViewComponent, "ax-scheduler-agenda-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
654
+ /**
655
+ * Gets appointments grouped by resources for timeline view.
656
+ */
657
+ protected appointmentsByResource: _angular_core.Signal<Map<any, AXSchedulerAppointment[]>>;
658
+ /**
659
+ * Gets all resource IDs including unassigned if applicable.
660
+ */
661
+ protected resourceIds: _angular_core.Signal<any[]>;
662
+ /**
663
+ * Gets appointments for a specific resource.
664
+ */
665
+ protected getAppointmentsForResource(resourceId: any): AXSchedulerAppointment[];
666
+ /**
667
+ * Gets resource title by ID.
668
+ */
669
+ protected getResourceTitle(resourceId: any): string;
670
+ protected getResourceContext(resourceId: any): AXSchedulerResource;
671
+ protected getCurrentTimePosition(): number | null;
672
+ ngAfterViewInit(): void;
673
+ private setupCurrentTimeScroll;
674
+ /**
675
+ * Gets appointments for a specific resource and day.
676
+ */
677
+ protected getAppointmentsForResourceAndDay(resourceId: any, dayData: TimelineMonthViewDayData): {
678
+ visible: AXSchedulerAppointmentSegment[];
679
+ hidden: AXSchedulerAppointmentSegment[];
680
+ moreCount: number;
681
+ };
682
+ protected getSlotId(e: PointerEvent): void;
683
+ /**
684
+ * Gets the height for a specific resource row based on appointments.
685
+ */
686
+ protected getResourceRowHeight(resourceId: any): string;
687
+ /**
688
+ * Calculates the maximum number of overlapping appointment rows needed.
689
+ * This is a simplified version for timeline month view.
690
+ */
691
+ protected calculateMaxOverlappingRows(appointments: AXSchedulerAppointmentSegment[]): number;
692
+ protected shouldShowCurrentTimeForDay(dayDate: AXDateTime): boolean;
693
+ protected get isReadonly(): boolean;
694
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMonthViewComponent, never>;
695
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMonthViewComponent, "ax-scheduler-timeline-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
597
696
  }
598
697
 
599
- interface TimelineMonthViewDayData {
698
+ interface TimelineMultiDayDaySlot {
600
699
  date: AXDateTime;
601
- visibleAppointments: AXSchedulerAppointmentSegment[];
602
- hiddenAppointments: AXSchedulerAppointmentSegment[];
603
- moreCount: number;
700
+ originalAppointmentsForThisDay: AXSchedulerAppointment[];
604
701
  holiday?: {
605
702
  state: 'holiday' | 'weekend' | 'none';
606
703
  holiday?: AXHolidayDate;
607
704
  };
608
705
  }
609
- declare class AXSchedulerTimelineMonthViewComponent extends NXComponent {
610
- private document;
611
- private scheduler;
706
+ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent implements AfterViewInit {
612
707
  private calendarService;
613
708
  private schedulerService;
614
- private readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY;
709
+ daysCount: _angular_core.InputSignal<number>;
615
710
  readonly: _angular_core.InputSignal<boolean>;
616
711
  draggable: _angular_core.InputSignal<boolean>;
617
712
  hasActions: _angular_core.InputSignal<boolean>;
618
713
  dragStartDelay: _angular_core.InputSignal<number>;
619
714
  calendar: _angular_core.InputSignal<string>;
715
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
620
716
  date: _angular_core.InputSignal<AXDateTime>;
717
+ endDayHour: _angular_core.InputSignal<number>;
718
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
719
+ startDayHour: _angular_core.InputSignal<number>;
720
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
721
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
722
+ resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
621
723
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
622
724
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
623
- private dragStartSlotId;
624
- processedDayData: _angular_core.Signal<TimelineMonthViewDayData[]>;
725
+ currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
726
+ protected daysDataForTimelineViews: _angular_core.Signal<TimelineMultiDayDaySlot[]>;
625
727
  slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
626
728
  slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
627
729
  slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -630,45 +732,110 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent {
630
732
  appointmentRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
631
733
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
632
734
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
633
- private readonly eventOutputMap;
634
- handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
635
- handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
636
- handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
637
- handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
735
+ protected handleDrop(event: AXSchedulerSlotDropEvent, resourceId: any): void;
638
736
  protected isToday(date: AXDateTime): boolean;
737
+ /**
738
+ * Gets appointments grouped by resources for timeline view.
739
+ */
740
+ protected appointmentsByResource: _angular_core.Signal<Map<any, AXSchedulerAppointment[]>>;
741
+ /**
742
+ * Gets all resource IDs including unassigned if applicable.
743
+ */
744
+ protected resourceIds: _angular_core.Signal<any[]>;
745
+ /**
746
+ * Gets appointments for a specific resource.
747
+ */
748
+ protected getAppointmentsForResource(resourceId: any): AXSchedulerAppointment[];
749
+ /**
750
+ * Gets resource title by ID.
751
+ */
752
+ protected getResourceTitle(resourceId: any): string;
753
+ protected getResourceContext(resourceId: any): AXSchedulerResource;
754
+ protected getCurrentTimePosition(): number | null;
755
+ protected shouldShowCurrentTimeForDay(dayDate: AXDateTime): boolean;
756
+ ngAfterViewInit(): void;
757
+ private setupCurrentTimeScroll;
758
+ /**
759
+ * Gets appointments for a specific resource and day.
760
+ */
761
+ protected getAppointmentsForResourceAndDay(resourceId: any, dayAppointments: AXSchedulerAppointment[]): AXSchedulerAppointment[];
762
+ /**
763
+ * Gets the height for a specific resource across all days.
764
+ */
765
+ protected getResourceRowHeight(resourceId: any): string;
766
+ /**
767
+ * Calculates the maximum number of overlapping rows for a set of appointments.
768
+ * Uses the actual segmented times that will be displayed in the timeline view.
769
+ */
770
+ private calculateMaxOverlappingRowsForAppointments;
771
+ /**
772
+ * Gets the hours array for time slots display.
773
+ */
774
+ protected getHoursArray(): AXDateTime[];
775
+ /**
776
+ * Gets the number of hours for CSS calculations.
777
+ */
778
+ protected getHoursCount(): number;
639
779
  protected isHoliday(date: AXDateTime): {
640
780
  state: 'holiday' | 'weekend' | 'none';
641
781
  holiday?: AXHolidayDate;
642
782
  };
643
- getSlotId(e: PointerEvent): void;
644
- get isReadonly(): boolean;
645
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMonthViewComponent, never>;
646
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMonthViewComponent, "ax-scheduler-timeline-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
783
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMultiDayViewComponent, never>;
784
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMultiDayViewComponent, "ax-scheduler-timeline-multi-day-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
647
785
  }
648
786
 
649
- interface TimelineMultiDayDaySlot {
787
+ interface TimelineYearViewDayData {
650
788
  date: AXDateTime;
651
- originalAppointmentsForThisDay: AXSchedulerAppointment[];
789
+ visibleAppointments: AXSchedulerAppointmentSegment[];
790
+ hiddenAppointments: AXSchedulerAppointmentSegment[];
791
+ moreCount: number;
652
792
  holiday?: {
653
793
  state: 'holiday' | 'weekend' | 'none';
654
794
  holiday?: AXHolidayDate;
655
795
  };
796
+ appointmentsByResource?: Map<string, {
797
+ visible: AXSchedulerAppointmentSegment[];
798
+ hidden: AXSchedulerAppointmentSegment[];
799
+ moreCount: number;
800
+ }>;
656
801
  }
657
- declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent {
802
+ declare class AXSchedulerTimelineYearViewComponent extends NXComponent implements AfterViewInit {
803
+ private document;
804
+ private scheduler;
658
805
  private calendarService;
659
806
  private schedulerService;
660
- daysCount: _angular_core.InputSignal<number>;
807
+ private readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY;
661
808
  readonly: _angular_core.InputSignal<boolean>;
662
809
  draggable: _angular_core.InputSignal<boolean>;
663
810
  hasActions: _angular_core.InputSignal<boolean>;
664
811
  dragStartDelay: _angular_core.InputSignal<number>;
665
812
  calendar: _angular_core.InputSignal<string>;
813
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
666
814
  date: _angular_core.InputSignal<AXDateTime>;
667
- endDayHour: _angular_core.InputSignal<number>;
668
- startDayHour: _angular_core.InputSignal<number>;
815
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
816
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
817
+ showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
818
+ resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
669
819
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
670
820
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
671
- daysDataForTimelineViews: _angular_core.Signal<TimelineMultiDayDaySlot[]>;
821
+ private dragStartSlotId;
822
+ private dragStartSlotResourceId;
823
+ currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
824
+ protected optimizedDragStartDelay: _angular_core.Signal<number>;
825
+ protected processedDayData: _angular_core.Signal<TimelineYearViewDayData[]>;
826
+ protected resourceIds: _angular_core.Signal<any[]>;
827
+ private getHolidayInfo;
828
+ protected isToday(date: AXDateTime): boolean;
829
+ protected getResourceTitle(resourceId: any): string;
830
+ protected getAppointmentsForResourceAndDay(resourceId: any, dayData: TimelineYearViewDayData): {
831
+ visible: AXSchedulerAppointmentSegment[];
832
+ hidden: AXSchedulerAppointmentSegment[];
833
+ moreCount: number;
834
+ };
835
+ protected getResourceContext(resourceId: any): AXSchedulerResource;
836
+ protected getCurrentTimePosition(): number | null;
837
+ ngAfterViewInit(): void;
838
+ private setupCurrentTimeScroll;
672
839
  slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
673
840
  slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
674
841
  slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -677,14 +844,197 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent {
677
844
  appointmentRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
678
845
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
679
846
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
680
- protected isToday(date: AXDateTime): boolean;
681
- protected isHoliday(date: AXDateTime): {
682
- state: 'holiday' | 'weekend' | 'none';
683
- holiday?: AXHolidayDate;
847
+ private readonly eventOutputMap;
848
+ protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
849
+ protected handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
850
+ protected handleDrop(e: AXDropZoneDropEvent, date: AXDateTime, resourceId?: any): void;
851
+ protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
852
+ protected shouldShowCurrentTimeForDay(dayDate: AXDateTime): boolean;
853
+ protected getSlotId(e: PointerEvent): void;
854
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineYearViewComponent, never>;
855
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineYearViewComponent, "ax-scheduler-timeline-year-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
856
+ }
857
+
858
+ declare class AXSchedulerModule {
859
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerModule, never>;
860
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXSchedulerModule, never, [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerAgendaViewComponent, typeof AXSchedulerTimelineDayViewComponent, typeof AXSchedulerTimelineMonthViewComponent, typeof AXSchedulerTimelineMultiDayViewComponent, typeof AXSchedulerTimelineYearViewComponent], [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerAgendaViewComponent, typeof AXSchedulerTimelineDayViewComponent, typeof AXSchedulerTimelineMonthViewComponent, typeof AXSchedulerTimelineMultiDayViewComponent, typeof AXSchedulerTimelineYearViewComponent]>;
861
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXSchedulerModule>;
862
+ }
863
+
864
+ declare class AXSchedulerService {
865
+ private formatService;
866
+ private calendarService;
867
+ readonly HOURS_PER_DAY = 24;
868
+ readonly MINUTES_PER_HOUR = 60;
869
+ readonly BLOCK_DURATION_MINUTES = 30;
870
+ readonly MILLISECONDS_PER_MINUTE: number;
871
+ readonly MILLISECONDS_PER_DAY: number;
872
+ internalWeekend: _angular_core.WritableSignal<number[]>;
873
+ internalHoliday: _angular_core.WritableSignal<AXHolidayDate[]>;
874
+ /**
875
+ * Checks if two appointments overlap in time.
876
+ *
877
+ * @param appointmentA - First appointment to check.
878
+ * @param appointmentB - Second appointment to check.
879
+ * @returns boolean - True if appointments overlap, false otherwise.
880
+ */
881
+ doAppointmentsOverlap(appointmentA: AXSchedulerAppointment, appointmentB: AXSchedulerAppointment): boolean;
882
+ /**
883
+ * Calculates appointment duration in minutes.
884
+ *
885
+ * @param Appointment - The appointment to calculate duration for.
886
+ * @returns number - Duration in minutes.
887
+ */
888
+ calculateDurationInMinutes(Appointment: AXSchedulerAppointment): number;
889
+ /**
890
+ * Gets the day index and block index for a given date time within the view context.
891
+ *
892
+ * @param dateTime - The date time to get block identifier for.
893
+ * @param viewStartDate - Start date of the view.
894
+ * @param startHour - Start hour of the view.
895
+ * @param endHour - End hour of the view (exclusive).
896
+ * @param viewTotalDays - Total days in the view (default: 1).
897
+ * @returns AXSchedulerBlockIdentifier | null - Block identifier or null if outside view.
898
+ */
899
+ getBlockIdentifier(dateTime: AXDateTime, viewStartDate: AXDateTime, startHour: number, endHour: number, // Exclusive end hour
900
+ viewTotalDays?: number): AXSchedulerBlockIdentifier | null;
901
+ /**
902
+ * Groups appointments by the blocks they are ACTIVE in for a given view.
903
+ *
904
+ * @param singleDayAppointments - Array of appointment segments.
905
+ * @param viewStartDate - Start date of the view.
906
+ * @param startHour - Start hour of the view.
907
+ * @param endHour - End hour of the view.
908
+ * @param viewTotalDays - Total days in the view.
909
+ * @returns AXSchedulerActiveAppointmentsInBlock - Active appointments grouped by blocks.
910
+ */
911
+ private calculateActiveAppointmentsInBlock;
912
+ /**
913
+ * Calculates day view concurrency information for appointments.
914
+ *
915
+ * @param singleDayAppointments - Array of appointment segments.
916
+ * @param viewStartDate - Start date of the view.
917
+ * @param startHour - Start hour of the view.
918
+ * @param endHour - End hour of the view.
919
+ * @returns Map<any, { maxConcurrency: number; effectiveTotalColumns: number }> - Concurrency information map.
920
+ */
921
+ calculateDayViewConcurrencyInfo(singleDayAppointments: AXSchedulerAppointmentSegment[], // These are segments for the current day
922
+ viewStartDate: AXDateTime, startHour: number, endHour: number): Map<any, {
923
+ maxConcurrency: number;
924
+ effectiveTotalColumns: number;
925
+ }>;
926
+ /**
927
+ * Groups appointments by day within a date range.
928
+ *
929
+ * @param appointments - Array of appointments.
930
+ * @param viewStartDate - Start date of the view.
931
+ * @param viewEndDate - End date of the view.
932
+ * @returns Map<string, AXSchedulerAppointment[]> - Appointments grouped by day.
933
+ */
934
+ groupAppointmentsByDay(appointments: AXSchedulerAppointment[], viewStartDate: AXDateTime, // First day visible in the grid
935
+ viewEndDate: AXDateTime): Map<string, AXSchedulerAppointment[]>;
936
+ /**
937
+ * Gets the day of week number for a given day name.
938
+ *
939
+ * @param dayName - The day name to get number for.
940
+ * @returns number - Day number (1-7, where 1 is Sunday).
941
+ */
942
+ getDayOfWeekNumber(dayName: AXDayOfWeekName): number;
943
+ /**
944
+ * Gets slot data for a given start date and view.
945
+ *
946
+ * @param startDate - Start date for the slot.
947
+ * @param view - View type.
948
+ * @returns { startDate: AXDateTime; endDate: AXDateTime; view: AXSchedulerView } - Slot data.
949
+ */
950
+ getSlotData(startDate: AXDateTime, view: AXSchedulerView): {
951
+ startDate: AXDateTime;
952
+ endDate: AXDateTime;
953
+ view: AXSchedulerView;
684
954
  };
685
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMultiDayViewComponent, never>;
686
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMultiDayViewComponent, "ax-scheduler-timeline-multi-day-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
955
+ /**
956
+ * Handles events for appointments and slots.
957
+ *
958
+ * @param event - The event to handle.
959
+ * @param eventOutputMap - Map of event outputs.
960
+ * @param eventType - Type of event ('appointment' or 'slot').
961
+ */
962
+ handleEvent(event: AXSchedulerSlotMouseEvent | AXSchedulerAppointmentMouseEvent, eventOutputMap: any, eventType: 'appointment' | 'slot'): void;
963
+ /**
964
+ * Calculates timeline layout for appointments.
965
+ *
966
+ * @param appt - The appointment to calculate layout for.
967
+ * @param viewStartHour - Start hour of the view.
968
+ * @param viewEndHour - End hour of the view.
969
+ * @returns { left: string; width: string } | null - Layout information or null.
970
+ */
971
+ calculateTimelineLayout(appt: AXSchedulerAppointment, viewStartHour: number, // e.g., 8 for 8 AM
972
+ viewEndHour: number): {
973
+ left: string;
974
+ width: string;
975
+ } | null;
976
+ /**
977
+ * Gets cloned appointment segment for a specific day.
978
+ *
979
+ * @param appointment - The appointment to clone.
980
+ * @param day - The day to get segment for.
981
+ * @param viewStartHour - Start hour of the view.
982
+ * @param viewEndHour - End hour of the view.
983
+ * @param isFullDayCellContext - Whether this is for full day cell context.
984
+ * @returns AXSchedulerAppointmentSegment | null - Cloned segment or null.
985
+ */
986
+ getClonedAppointmentSegmentOnDay(appointment: AXSchedulerAppointment, // This is the ORIGINAL appointment
987
+ day: AXDateTime, viewStartHour: number, viewEndHour: number, isFullDayCellContext?: boolean): AXSchedulerAppointmentSegment | null;
988
+ /**
989
+ * Gets the original appointment from a segment.
990
+ *
991
+ * @param item - Appointment or appointment segment.
992
+ * @returns AXSchedulerAppointment - The original appointment.
993
+ */
994
+ getOriginalAppointment(item: AXSchedulerAppointment | AXSchedulerAppointmentSegment): AXSchedulerAppointment;
995
+ /**
996
+ * Checks if a date is a holiday.
997
+ *
998
+ * @param date - The date to check.
999
+ * @returns boolean - True if the date is a holiday.
1000
+ */
1001
+ isHoliday(date: AXDateTime): boolean;
1002
+ /**
1003
+ * Checks if a date is a weekend.
1004
+ *
1005
+ * @param date - The date to check.
1006
+ * @param calendar - The calendar type to use.
1007
+ * @returns boolean - True if the date is a weekend.
1008
+ */
1009
+ isWeekend(date: AXDateTime, calendar: string): boolean;
1010
+ /**
1011
+ * Filters appointments by resources and unassigned appointments.
1012
+ *
1013
+ * @param appointments - Array of appointments to filter.
1014
+ * @param resources - Array of resources.
1015
+ * @param showUnassignedAppointments - Whether to show appointments without resources.
1016
+ * @returns Map<any, AXSchedulerAppointment[]> - Appointments grouped by resource ID.
1017
+ */
1018
+ filterAppointmentsByResources(appointments: AXSchedulerAppointment[], resources: AXSchedulerResource[], showUnassignedAppointments?: boolean): Map<any, AXSchedulerAppointment[]>;
1019
+ /**
1020
+ * Gets appointments for a specific resource.
1021
+ *
1022
+ * @param appointments - Array of appointments.
1023
+ * @param resourceId - The resource ID to filter by.
1024
+ * @returns AXSchedulerAppointment[] - Filtered appointments.
1025
+ */
1026
+ getAppointmentsForResource(appointments: AXSchedulerAppointment[], resourceId: any): AXSchedulerAppointment[];
1027
+ /**
1028
+ * Gets all resource IDs including unassigned if applicable.
1029
+ *
1030
+ * @param resources - Array of resources.
1031
+ * @param showUnassignedAppointments - Whether to include unassigned appointments.
1032
+ * @returns string[] - Array of resource IDs.
1033
+ */
1034
+ getAllResourceIds(resources: AXSchedulerResource[], showUnassignedAppointments?: boolean): any[];
1035
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerService, never>;
1036
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXSchedulerService>;
687
1037
  }
688
1038
 
689
- export { AXSchedulerAgendaViewComponent, AXSchedulerComponent, AXSchedulerDayViewComponent, AXSchedulerModule, AXSchedulerMonthViewComponent, AXSchedulerService, AXSchedulerTimelineDayViewComponent, AXSchedulerTimelineMonthViewComponent, AXSchedulerTimelineMultiDayViewComponent, AXSchedulerWeekViewComponent };
690
- export type { AXDayOfWeekName, AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointment, AXSchedulerAppointmentDataSource, AXSchedulerAppointmentDataSourceFilter, AXSchedulerAppointmentLayout, AXSchedulerAppointmentLoader, AXSchedulerAppointmentLoaderAsync, AXSchedulerAppointmentMouseEvent, AXSchedulerAppointmentSegment, AXSchedulerAppointmentsByStartBlock, AXSchedulerBlockIdentifier, AXSchedulerBlockOccupancyMap, AXSchedulerDateRange, AXSchedulerDayAppointmentLayout, AXSchedulerMonthDayCell, AXSchedulerMultiDayViewAppointment, AXSchedulerOverflowBadge, AXSchedulerSlotDropEvent, AXSchedulerSlotMouseEvent, AXSchedulerView, AgendaDayData, TimelineMonthViewDayData, TimelineMultiDayDaySlot };
1039
+ export { AXSchedulerAgendaViewComponent, AXSchedulerComponent, AXSchedulerDayViewComponent, AXSchedulerModule, AXSchedulerMonthViewComponent, AXSchedulerService, AXSchedulerTimelineDayViewComponent, AXSchedulerTimelineMonthViewComponent, AXSchedulerTimelineMultiDayViewComponent, AXSchedulerTimelineYearViewComponent, AXSchedulerWeekViewComponent };
1040
+ export type { AXDayOfWeekName, AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointment, AXSchedulerAppointmentDataSource, AXSchedulerAppointmentDataSourceFilter, AXSchedulerAppointmentLayout, AXSchedulerAppointmentLoader, AXSchedulerAppointmentLoaderAsync, AXSchedulerAppointmentMouseEvent, AXSchedulerAppointmentSegment, AXSchedulerBlockIdentifier, AXSchedulerBlockOccupancyMap, AXSchedulerDateRange, AXSchedulerDayAppointmentLayout, AXSchedulerMonthDayCell, AXSchedulerMultiDayViewAppointment, AXSchedulerOverflowBadge, AXSchedulerResource, AXSchedulerSlotDropEvent, AXSchedulerSlotMouseEvent, AXSchedulerView, AgendaDayData, TimelineMonthViewDayData, TimelineMultiDayDaySlot, TimelineYearViewDayData };