@acorex/components 21.0.2-next.37 → 21.0.2-next.38

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 (339) hide show
  1. package/{types/acorex-components-accordion.d.ts → accordion/index.d.ts} +1 -0
  2. package/{types/acorex-components-button.d.ts → button/index.d.ts} +3 -3
  3. package/{types/acorex-components-button-group.d.ts → button-group/index.d.ts} +12 -20
  4. package/{types/acorex-components-check-box.d.ts → check-box/index.d.ts} +1 -1
  5. package/{types/acorex-components-chips.d.ts → chips/index.d.ts} +8 -3
  6. package/collapse/README.md +3 -0
  7. package/collapse/index.d.ts +174 -0
  8. package/{types/acorex-components-color-palette.d.ts → color-palette/index.d.ts} +0 -2
  9. package/{types/acorex-components-conversation2.d.ts → conversation2/index.d.ts} +667 -667
  10. package/{types/acorex-components-data-table.d.ts → data-table/index.d.ts} +262 -4
  11. package/{types/acorex-components-datetime-box.d.ts → datetime-box/index.d.ts} +4 -5
  12. package/drawer-legacy/README.md +3 -0
  13. package/drawer-legacy/index.d.ts +86 -0
  14. package/{types/acorex-components-dropdown-button.d.ts → dropdown-button/index.d.ts} +2 -4
  15. package/fesm2022/acorex-components-accordion.mjs +37 -32
  16. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  17. package/fesm2022/acorex-components-action-sheet.mjs +32 -32
  18. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  19. package/fesm2022/acorex-components-alert.mjs +21 -21
  20. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  21. package/fesm2022/acorex-components-aspect-ratio.mjs +6 -6
  22. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  23. package/fesm2022/acorex-components-audio-wave.mjs +14 -15
  24. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  25. package/fesm2022/acorex-components-autocomplete.mjs +16 -16
  26. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  27. package/fesm2022/acorex-components-avatar.mjs +17 -17
  28. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  29. package/fesm2022/acorex-components-badge.mjs +11 -11
  30. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  31. package/fesm2022/acorex-components-bottom-navigation.mjs +15 -15
  32. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  33. package/fesm2022/acorex-components-breadcrumbs.mjs +14 -14
  34. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  35. package/fesm2022/acorex-components-button-group.mjs +28 -63
  36. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  37. package/fesm2022/acorex-components-button.mjs +31 -31
  38. package/fesm2022/acorex-components-button.mjs.map +1 -1
  39. package/fesm2022/acorex-components-calendar.mjs +27 -27
  40. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  41. package/fesm2022/acorex-components-check-box.mjs +12 -12
  42. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  43. package/fesm2022/acorex-components-chips.mjs +15 -13
  44. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  45. package/fesm2022/acorex-components-circular-progress.mjs +16 -18
  46. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  47. package/fesm2022/acorex-components-code-editor.mjs +30 -30
  48. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  49. package/fesm2022/acorex-components-collapse.mjs +366 -0
  50. package/fesm2022/acorex-components-collapse.mjs.map +1 -0
  51. package/fesm2022/acorex-components-color-box.mjs +16 -16
  52. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  53. package/fesm2022/acorex-components-color-palette.mjs +44 -85
  54. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  55. package/fesm2022/acorex-components-command.mjs +20 -20
  56. package/fesm2022/acorex-components-command.mjs.map +1 -1
  57. package/fesm2022/acorex-components-comment.mjs +37 -37
  58. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  59. package/fesm2022/acorex-components-conversation.mjs +119 -119
  60. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  61. package/fesm2022/acorex-components-conversation2.mjs +708 -720
  62. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  63. package/fesm2022/acorex-components-cron-job.mjs +60 -60
  64. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-list.mjs +34 -34
  66. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  67. package/fesm2022/acorex-components-data-pager.mjs +42 -42
  68. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  69. package/fesm2022/acorex-components-data-table.mjs +516 -69
  70. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-box.mjs +26 -26
  72. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  73. package/fesm2022/acorex-components-datetime-input.mjs +24 -24
  74. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  75. package/fesm2022/acorex-components-datetime-picker.mjs +30 -30
  76. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  77. package/fesm2022/acorex-components-decorators.mjs +49 -56
  78. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  79. package/fesm2022/acorex-components-dialog.mjs +16 -16
  80. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  81. package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
  82. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
  83. package/fesm2022/acorex-components-drawer.mjs +26 -25
  84. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  85. package/fesm2022/acorex-components-dropdown-button.mjs +11 -19
  86. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  87. package/fesm2022/acorex-components-dropdown.mjs +22 -22
  88. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  89. package/fesm2022/acorex-components-editor.mjs +15 -15
  90. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  91. package/fesm2022/acorex-components-fab.mjs +18 -18
  92. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  93. package/fesm2022/acorex-components-file-explorer.mjs +307 -0
  94. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -0
  95. package/fesm2022/acorex-components-flow-chart.mjs +63 -80
  96. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  97. package/fesm2022/acorex-components-form.mjs +39 -47
  98. package/fesm2022/acorex-components-form.mjs.map +1 -1
  99. package/fesm2022/acorex-components-grid-layout-builder.mjs +19 -18
  100. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  101. package/fesm2022/acorex-components-image-editor.mjs +93 -93
  102. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  103. package/fesm2022/acorex-components-image.mjs +12 -12
  104. package/fesm2022/acorex-components-image.mjs.map +1 -1
  105. package/fesm2022/acorex-components-json-viewer.mjs +13 -13
  106. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-kanban.mjs +26 -28
  108. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  109. package/fesm2022/acorex-components-kbd.mjs +17 -17
  110. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  111. package/fesm2022/acorex-components-label.mjs +9 -9
  112. package/fesm2022/acorex-components-label.mjs.map +1 -1
  113. package/fesm2022/acorex-components-list.mjs +16 -16
  114. package/fesm2022/acorex-components-list.mjs.map +1 -1
  115. package/fesm2022/acorex-components-loading-dialog.mjs +20 -20
  116. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading.mjs +23 -23
  118. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  119. package/fesm2022/acorex-components-map.mjs +47 -47
  120. package/fesm2022/acorex-components-map.mjs.map +1 -1
  121. package/fesm2022/acorex-components-media-viewer.mjs +85 -85
  122. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  123. package/fesm2022/acorex-components-menu.mjs +49 -49
  124. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  125. package/fesm2022/{acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs → acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs} +29 -29
  126. package/fesm2022/acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs.map +1 -0
  127. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs +212 -0
  128. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs.map +1 -0
  129. package/fesm2022/acorex-components-modal.mjs +1 -1
  130. package/fesm2022/acorex-components-navbar.mjs +9 -9
  131. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  132. package/fesm2022/acorex-components-notification.mjs +29 -29
  133. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  134. package/fesm2022/acorex-components-number-box-legacy.mjs +430 -0
  135. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
  136. package/fesm2022/acorex-components-number-box.mjs +21 -21
  137. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  138. package/fesm2022/acorex-components-otp.mjs +13 -13
  139. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  140. package/fesm2022/acorex-components-page.mjs +10 -10
  141. package/fesm2022/acorex-components-page.mjs.map +1 -1
  142. package/fesm2022/acorex-components-paint.mjs +65 -60
  143. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  144. package/fesm2022/acorex-components-password-box.mjs +39 -31
  145. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  146. package/fesm2022/acorex-components-pdf-reader.mjs +10 -10
  147. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  148. package/fesm2022/acorex-components-phone-box.mjs +20 -20
  149. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  150. package/fesm2022/acorex-components-picker.mjs +33 -33
  151. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  152. package/fesm2022/acorex-components-popover.mjs +11 -11
  153. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  154. package/fesm2022/acorex-components-popup.mjs +25 -25
  155. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  156. package/fesm2022/acorex-components-progress-bar.mjs +9 -11
  157. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  158. package/fesm2022/acorex-components-qrcode.mjs +21 -38
  159. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  160. package/fesm2022/acorex-components-query-builder.mjs +15 -16
  161. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  162. package/fesm2022/acorex-components-radio.mjs +9 -10
  163. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  164. package/fesm2022/acorex-components-rail-navigation.mjs +51 -53
  165. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  166. package/fesm2022/acorex-components-range-slider.mjs +36 -36
  167. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  168. package/fesm2022/acorex-components-rate-picker.mjs +42 -27
  169. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  170. package/fesm2022/acorex-components-rest-api-generator.mjs +39 -39
  171. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  172. package/fesm2022/acorex-components-result.mjs +8 -8
  173. package/fesm2022/acorex-components-result.mjs.map +1 -1
  174. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  175. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  176. package/fesm2022/acorex-components-rrule.mjs +38 -38
  177. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  178. package/fesm2022/acorex-components-scheduler-picker.mjs +234 -228
  179. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  180. package/fesm2022/acorex-components-scheduler.mjs +302 -292
  181. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  182. package/fesm2022/acorex-components-scss.mjs +22 -0
  183. package/fesm2022/acorex-components-scss.mjs.map +1 -0
  184. package/fesm2022/acorex-components-search-box.mjs +13 -19
  185. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  186. package/fesm2022/acorex-components-select-box.mjs +25 -27
  187. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  188. package/fesm2022/acorex-components-selection-list-2.mjs +15 -15
  189. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  190. package/fesm2022/acorex-components-selection-list.mjs +12 -12
  191. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  192. package/fesm2022/acorex-components-side-menu.mjs +44 -44
  193. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  194. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  195. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  196. package/fesm2022/acorex-components-slider.mjs +13 -13
  197. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  198. package/fesm2022/acorex-components-sliding-item.mjs +28 -28
  199. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  200. package/fesm2022/acorex-components-step-wizard.mjs +41 -41
  201. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  202. package/fesm2022/acorex-components-switch.mjs +14 -14
  203. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  204. package/fesm2022/acorex-components-tabs.mjs +22 -22
  205. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  206. package/fesm2022/acorex-components-tag-box.mjs +20 -20
  207. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  208. package/fesm2022/acorex-components-tag.mjs +10 -10
  209. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  210. package/fesm2022/acorex-components-text-area.mjs +9 -9
  211. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  212. package/fesm2022/acorex-components-text-box.mjs +14 -14
  213. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  214. package/fesm2022/acorex-components-time-duration.mjs +31 -29
  215. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  216. package/fesm2022/acorex-components-time-line.mjs +21 -21
  217. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  218. package/fesm2022/acorex-components-toast.mjs +27 -27
  219. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  220. package/fesm2022/acorex-components-toolbar.mjs +14 -14
  221. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  222. package/fesm2022/acorex-components-tooltip.mjs +17 -17
  223. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  224. package/fesm2022/acorex-components-tree-view-legacy.mjs +511 -0
  225. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -0
  226. package/fesm2022/acorex-components-tree-view.mjs +328 -69
  227. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  228. package/fesm2022/acorex-components-uploader.mjs +18 -18
  229. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  230. package/fesm2022/acorex-components-video-player.mjs +10 -10
  231. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  232. package/fesm2022/acorex-components-wysiwyg.mjs +58 -58
  233. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  234. package/fesm2022/acorex-components.mjs.map +1 -1
  235. package/file-explorer/README.md +3 -0
  236. package/file-explorer/index.d.ts +103 -0
  237. package/{types/acorex-components-flow-chart.d.ts → flow-chart/index.d.ts} +0 -4
  238. package/{types/acorex-components-form.d.ts → form/index.d.ts} +24 -24
  239. package/{types/acorex-components-grid-layout-builder.d.ts → grid-layout-builder/index.d.ts} +1 -0
  240. package/{types/acorex-components-loading.d.ts → loading/index.d.ts} +1 -1
  241. package/{types/acorex-components-menu.d.ts → menu/index.d.ts} +6 -6
  242. package/number-box-legacy/README.md +3 -0
  243. package/number-box-legacy/index.d.ts +191 -0
  244. package/package.json +141 -118
  245. package/{types/acorex-components-paint.d.ts → paint/index.d.ts} +6 -1
  246. package/{types/acorex-components-qrcode.d.ts → qrcode/index.d.ts} +0 -1
  247. package/{types/acorex-components-radio.d.ts → radio/index.d.ts} +1 -1
  248. package/{types/acorex-components-rate-picker.d.ts → rate-picker/index.d.ts} +15 -5
  249. package/{types/acorex-components-scheduler-picker.d.ts → scheduler-picker/index.d.ts} +81 -82
  250. package/scss/README.md +3 -0
  251. package/scss/index.d.ts +10 -0
  252. package/{types/acorex-components-select-box.d.ts → select-box/index.d.ts} +1 -2
  253. package/{types/acorex-components-slider.d.ts → slider/index.d.ts} +2 -2
  254. package/{types/acorex-components-tabs.d.ts → tabs/index.d.ts} +1 -1
  255. package/{types/acorex-components-tag.d.ts → tag/index.d.ts} +3 -3
  256. package/{types/acorex-components-tree-view.d.ts → tree-view/index.d.ts} +43 -2
  257. package/tree-view-legacy/README.md +3 -0
  258. package/tree-view-legacy/index.d.ts +184 -0
  259. package/fesm2022/acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs.map +0 -1
  260. package/fesm2022/acorex-components-modal-modal-content.component-DKweXQfl.mjs +0 -214
  261. package/fesm2022/acorex-components-modal-modal-content.component-DKweXQfl.mjs.map +0 -1
  262. package/{types/acorex-components-action-sheet.d.ts → action-sheet/index.d.ts} +0 -0
  263. package/{types/acorex-components-alert.d.ts → alert/index.d.ts} +0 -0
  264. package/{types/acorex-components-aspect-ratio.d.ts → aspect-ratio/index.d.ts} +0 -0
  265. package/{types/acorex-components-audio-wave.d.ts → audio-wave/index.d.ts} +0 -0
  266. package/{types/acorex-components-autocomplete.d.ts → autocomplete/index.d.ts} +0 -0
  267. package/{types/acorex-components-avatar.d.ts → avatar/index.d.ts} +0 -0
  268. package/{types/acorex-components-badge.d.ts → badge/index.d.ts} +0 -0
  269. package/{types/acorex-components-bottom-navigation.d.ts → bottom-navigation/index.d.ts} +0 -0
  270. package/{types/acorex-components-breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
  271. package/{types/acorex-components-calendar.d.ts → calendar/index.d.ts} +0 -0
  272. package/{types/acorex-components-circular-progress.d.ts → circular-progress/index.d.ts} +0 -0
  273. package/{types/acorex-components-code-editor.d.ts → code-editor/index.d.ts} +0 -0
  274. package/{types/acorex-components-color-box.d.ts → color-box/index.d.ts} +0 -0
  275. package/{types/acorex-components-command.d.ts → command/index.d.ts} +0 -0
  276. package/{types/acorex-components-comment.d.ts → comment/index.d.ts} +0 -0
  277. package/{types/acorex-components-conversation.d.ts → conversation/index.d.ts} +0 -0
  278. package/{types/acorex-components-cron-job.d.ts → cron-job/index.d.ts} +0 -0
  279. package/{types/acorex-components-data-list.d.ts → data-list/index.d.ts} +0 -0
  280. package/{types/acorex-components-data-pager.d.ts → data-pager/index.d.ts} +0 -0
  281. package/{types/acorex-components-datetime-input.d.ts → datetime-input/index.d.ts} +0 -0
  282. package/{types/acorex-components-datetime-picker.d.ts → datetime-picker/index.d.ts} +0 -0
  283. package/{types/acorex-components-decorators.d.ts → decorators/index.d.ts} +0 -0
  284. package/{types/acorex-components-dialog.d.ts → dialog/index.d.ts} +0 -0
  285. package/{types/acorex-components-drawer.d.ts → drawer/index.d.ts} +0 -0
  286. package/{types/acorex-components-dropdown.d.ts → dropdown/index.d.ts} +0 -0
  287. package/{types/acorex-components-editor.d.ts → editor/index.d.ts} +0 -0
  288. package/{types/acorex-components-fab.d.ts → fab/index.d.ts} +0 -0
  289. package/{types/acorex-components-image.d.ts → image/index.d.ts} +0 -0
  290. package/{types/acorex-components-image-editor.d.ts → image-editor/index.d.ts} +0 -0
  291. package/{types/acorex-components.d.ts → index.d.ts} +0 -0
  292. package/{types/acorex-components-json-viewer.d.ts → json-viewer/index.d.ts} +0 -0
  293. package/{types/acorex-components-kanban.d.ts → kanban/index.d.ts} +0 -0
  294. package/{types/acorex-components-kbd.d.ts → kbd/index.d.ts} +0 -0
  295. package/{types/acorex-components-label.d.ts → label/index.d.ts} +0 -0
  296. package/{types/acorex-components-list.d.ts → list/index.d.ts} +0 -0
  297. package/{types/acorex-components-loading-dialog.d.ts → loading-dialog/index.d.ts} +0 -0
  298. package/{types/acorex-components-map.d.ts → map/index.d.ts} +0 -0
  299. package/{types/acorex-components-media-viewer.d.ts → media-viewer/index.d.ts} +0 -0
  300. package/{types/acorex-components-modal.d.ts → modal/index.d.ts} +0 -0
  301. package/{types/acorex-components-navbar.d.ts → navbar/index.d.ts} +0 -0
  302. package/{types/acorex-components-notification.d.ts → notification/index.d.ts} +0 -0
  303. package/{types/acorex-components-number-box.d.ts → number-box/index.d.ts} +0 -0
  304. package/{types/acorex-components-otp.d.ts → otp/index.d.ts} +0 -0
  305. package/{types/acorex-components-page.d.ts → page/index.d.ts} +0 -0
  306. package/{types/acorex-components-password-box.d.ts → password-box/index.d.ts} +0 -0
  307. package/{types/acorex-components-pdf-reader.d.ts → pdf-reader/index.d.ts} +0 -0
  308. package/{types/acorex-components-phone-box.d.ts → phone-box/index.d.ts} +0 -0
  309. package/{types/acorex-components-picker.d.ts → picker/index.d.ts} +0 -0
  310. package/{types/acorex-components-popover.d.ts → popover/index.d.ts} +0 -0
  311. package/{types/acorex-components-popup.d.ts → popup/index.d.ts} +0 -0
  312. package/{types/acorex-components-progress-bar.d.ts → progress-bar/index.d.ts} +0 -0
  313. package/{types/acorex-components-query-builder.d.ts → query-builder/index.d.ts} +1 -1
  314. /package/{types/acorex-components-rail-navigation.d.ts → rail-navigation/index.d.ts} +0 -0
  315. /package/{types/acorex-components-range-slider.d.ts → range-slider/index.d.ts} +0 -0
  316. /package/{types/acorex-components-rest-api-generator.d.ts → rest-api-generator/index.d.ts} +0 -0
  317. /package/{types/acorex-components-result.d.ts → result/index.d.ts} +0 -0
  318. /package/{types/acorex-components-routing-progress.d.ts → routing-progress/index.d.ts} +0 -0
  319. /package/{types/acorex-components-rrule.d.ts → rrule/index.d.ts} +0 -0
  320. /package/{types/acorex-components-scheduler.d.ts → scheduler/index.d.ts} +0 -0
  321. /package/{types/acorex-components-search-box.d.ts → search-box/index.d.ts} +0 -0
  322. /package/{types/acorex-components-selection-list.d.ts → selection-list/index.d.ts} +0 -0
  323. /package/{types/acorex-components-selection-list-2.d.ts → selection-list-2/index.d.ts} +0 -0
  324. /package/{types/acorex-components-side-menu.d.ts → side-menu/index.d.ts} +0 -0
  325. /package/{types/acorex-components-skeleton.d.ts → skeleton/index.d.ts} +0 -0
  326. /package/{types/acorex-components-sliding-item.d.ts → sliding-item/index.d.ts} +0 -0
  327. /package/{types/acorex-components-step-wizard.d.ts → step-wizard/index.d.ts} +0 -0
  328. /package/{types/acorex-components-switch.d.ts → switch/index.d.ts} +0 -0
  329. /package/{types/acorex-components-tag-box.d.ts → tag-box/index.d.ts} +0 -0
  330. /package/{types/acorex-components-text-area.d.ts → text-area/index.d.ts} +0 -0
  331. /package/{types/acorex-components-text-box.d.ts → text-box/index.d.ts} +0 -0
  332. /package/{types/acorex-components-time-duration.d.ts → time-duration/index.d.ts} +0 -0
  333. /package/{types/acorex-components-time-line.d.ts → time-line/index.d.ts} +0 -0
  334. /package/{types/acorex-components-toast.d.ts → toast/index.d.ts} +0 -0
  335. /package/{types/acorex-components-toolbar.d.ts → toolbar/index.d.ts} +0 -0
  336. /package/{types/acorex-components-tooltip.d.ts → tooltip/index.d.ts} +0 -0
  337. /package/{types/acorex-components-uploader.d.ts → uploader/index.d.ts} +0 -0
  338. /package/{types/acorex-components-video-player.d.ts → video-player/index.d.ts} +0 -0
  339. /package/{types/acorex-components-wysiwyg.d.ts → wysiwyg/index.d.ts} +0 -0
@@ -31,8 +31,8 @@ class AXSchedulerService {
31
31
  this.BLOCK_DURATION_MINUTES = 30;
32
32
  this.MILLISECONDS_PER_MINUTE = 60 * 1000;
33
33
  this.MILLISECONDS_PER_DAY = this.HOURS_PER_DAY * this.MINUTES_PER_HOUR * this.MILLISECONDS_PER_MINUTE;
34
- this.internalWeekend = signal([], ...(ngDevMode ? [{ debugName: "internalWeekend" }] : /* istanbul ignore next */ []));
35
- this.internalHoliday = signal([], ...(ngDevMode ? [{ debugName: "internalHoliday" }] : /* istanbul ignore next */ []));
34
+ this.internalWeekend = signal([], ...(ngDevMode ? [{ debugName: "internalWeekend" }] : []));
35
+ this.internalHoliday = signal([], ...(ngDevMode ? [{ debugName: "internalHoliday" }] : []));
36
36
  }
37
37
  /**
38
38
  * Checks if two appointments overlap in time.
@@ -828,10 +828,10 @@ class AXSchedulerService {
828
828
  resourceId: dropResult.resourceId,
829
829
  };
830
830
  }
831
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
832
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerService, providedIn: 'root' }); }
831
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
832
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerService, providedIn: 'root' }); }
833
833
  }
834
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerService, decorators: [{
834
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerService, decorators: [{
835
835
  type: Injectable,
836
836
  args: [{
837
837
  providedIn: 'root',
@@ -845,17 +845,17 @@ class AXSchedulerAgendaViewComponent extends NXComponent {
845
845
  this.scheduler = inject(AXSchedulerComponent);
846
846
  this.calendarService = inject(AXCalendarService);
847
847
  this.schedulerService = inject(AXSchedulerService);
848
- this.daysCount = input(7, ...(ngDevMode ? [{ debugName: "daysCount" }] : /* istanbul ignore next */ []));
849
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
850
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
851
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
852
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
853
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
854
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
855
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
856
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
857
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
858
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
848
+ this.daysCount = input(7, ...(ngDevMode ? [{ debugName: "daysCount" }] : []));
849
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
850
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
851
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
852
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
853
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
854
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
855
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
856
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
857
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
858
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
859
859
  this.agendaDaysLayout = computed(() => {
860
860
  const allOriginalAppointments = this.appointments();
861
861
  const agendaStartDate = this.date();
@@ -885,7 +885,7 @@ class AXSchedulerAgendaViewComponent extends NXComponent {
885
885
  });
886
886
  }
887
887
  return result;
888
- }, ...(ngDevMode ? [{ debugName: "agendaDaysLayout" }] : /* istanbul ignore next */ []));
888
+ }, ...(ngDevMode ? [{ debugName: "agendaDaysLayout" }] : []));
889
889
  // Internal outputs to be caught by parent AXSchedulerComponent
890
890
  this.slotClickedInternal = output();
891
891
  this.slotDblClickedInternal = output();
@@ -1000,10 +1000,10 @@ class AXSchedulerAgendaViewComponent extends NXComponent {
1000
1000
  getMultiDayEndDate(segment) {
1001
1001
  return segment.originalEndDate;
1002
1002
  }
1003
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerAgendaViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1004
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerAgendaViewComponent, isStandalone: true, selector: "ax-scheduler-agenda-view", inputs: { daysCount: { classPropertyName: "daysCount", publicName: "daysCount", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerAgendaViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-agenda-container\">\n @for (dayData of agendaDaysLayout(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-agenda-view-container {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-agenda-header-date-day\">\n <span\n class=\"ax-scheduler-agenda-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-agenda-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <div class=\"ax-scheduler-agenda-appointment-container\">\n @for (segment of dayData.appointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ' (All Day)'\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-agenda-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <div class=\"ax-scheduler-agenda-appointment-time\">\n <div\n class=\"ax-scheduler-agenda-appointment-time-inner {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n ></div>\n @if (segment.allDay) {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n </span>\n } @else {\n <span>{{ '@acorex:dateTime.duration.all-day' | translate | async }}</span>\n }\n } @else {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n <span>\n {{\n segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n </span>\n } @else {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n }\n </div>\n <ax-title class=\"ax-scheduler-agenda-appointment-title ax-scheduler-truncate\">{{ segment.title }}</ax-title>\n <!-- Description could go here if needed -->\n <!-- @if (segment.description) {\n <ax-subtitle>{{ segment.description }}</ax-subtitle>\n } -->\n @if (hasActions()) {\n <ax-icon\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n (click)=\"handleActionClick($event, segment)\"\n >\n </ax-icon>\n }\n </div>\n }\n @if (dayData.appointments.length === 0) {\n <div class=\"ax-scheduler-agenda-no-appointments\">\n {{ '@acorex:common.general.no-record' | translate | async }}\n </div>\n }\n </div>\n </div>\n }\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-scheduler-agenda-view .ax-scheduler-agenda-container{flex-direction:column;height:100%;display:flex}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container{gap:calc(var(--spacing,.25rem) * 4);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);display:flex;position:relative}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day{top:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 14);max-width:calc(var(--spacing,.25rem) * 24);min-width:calc(var(--spacing,.25rem) * 24);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);flex-direction:column;display:flex;position:sticky}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-char{--tw-font-weight:var(--font-weight-light,300);max-width:100%;font-weight:var(--font-weight-light,300)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-num{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container{justify-content:center;align-items:center;gap:var(--spacing,.25rem);flex-direction:column;width:calc(100% - 7rem);display:flex}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment{justify-content:space-between;gap:calc(var(--spacing,.25rem) * 2);border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);text-align:center;flex-direction:row;display:flex;overflow:hidden}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment.all-day-segment .ax-scheduler-agenda-appointment-time{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time{min-width:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:.9;flex-shrink:0}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-title{width:100%}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{text-align:center;color:rgba(var(--ax-sys-color-on-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{font-style:italic}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-appointment{cursor:pointer}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-view-container{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-view-container:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1003
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerAgendaViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1004
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerAgendaViewComponent, isStandalone: true, selector: "ax-scheduler-agenda-view", inputs: { daysCount: { classPropertyName: "daysCount", publicName: "daysCount", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerAgendaViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-agenda-container\">\n @for (dayData of agendaDaysLayout(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-agenda-view-container {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-agenda-header-date-day\">\n <span\n class=\"ax-scheduler-agenda-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-agenda-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <div class=\"ax-scheduler-agenda-appointment-container\">\n @for (segment of dayData.appointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ' (All Day)'\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-agenda-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <div class=\"ax-scheduler-agenda-appointment-time\">\n <div\n class=\"ax-scheduler-agenda-appointment-time-inner {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n ></div>\n @if (segment.allDay) {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n </span>\n } @else {\n <span>{{ '@acorex:dateTime.duration.all-day' | translate | async }}</span>\n }\n } @else {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n <span>\n {{\n segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n </span>\n } @else {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n }\n </div>\n <ax-title class=\"ax-scheduler-agenda-appointment-title ax-scheduler-truncate\">{{ segment.title }}</ax-title>\n <!-- Description could go here if needed -->\n <!-- @if (segment.description) {\n <ax-subtitle>{{ segment.description }}</ax-subtitle>\n } -->\n @if (hasActions()) {\n <ax-icon\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n (click)=\"handleActionClick($event, segment)\"\n >\n </ax-icon>\n }\n </div>\n }\n @if (dayData.appointments.length === 0) {\n <div class=\"ax-scheduler-agenda-no-appointments\">\n {{ '@acorex:common.general.no-record' | translate | async }}\n </div>\n }\n </div>\n </div>\n }\n</div>\n", styles: ["ax-scheduler-agenda-view .ax-scheduler-agenda-container{height:100%;display:flex;flex-direction:column}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container{gap:1rem;display:flex;position:relative;padding-inline:1rem;padding-block:.25rem;border-block-end:1px solid rgba(var(--ax-sys-color-border-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container:last-child{border-block-end-width:0}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-char{font-weight:500}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-num{font-weight:700}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday .ax-scheduler-agenda-header-date-day{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday .ax-scheduler-agenda-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day{gap:.25rem;display:flex;height:3.5rem;min-width:6rem;max-width:6rem;position:sticky;align-items:start;flex-direction:column;inset-block-start:1rem;justify-content:center}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-char{max-width:100%;font-weight:300}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-num{font-weight:500;font-size:1.25rem}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container{gap:.25rem;display:flex;align-items:center;flex-direction:column;justify-content:center;width:100%;color:unset}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment{gap:.5rem;width:100%;display:flex;overflow:hidden;align-items:center;flex-direction:row;padding-block:.25rem;padding-inline:1rem;justify-content:space-between;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .15))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time-inner{width:.75rem;height:.75rem}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment.all-day-segment .ax-scheduler-agenda-appointment-time{display:flex;align-items:center;gap:1rem;font-weight:500}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time{display:flex;align-items:center;gap:1rem;flex-shrink:0;min-width:10rem;font-size:.9em;opacity:.9}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time .ax-scheduler-agenda-multiday-info{display:flex;align-items:center;gap:.5rem}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time .ax-scheduler-agenda-multiday-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding-inline:.5rem;padding-block:.25rem;font-size:.8rem;font-weight:500;line-height:1.2;border-radius:.375rem;background-color:rgba(var(--ax-sys-color-primary-surface),.12);color:rgba(var(--ax-sys-color-primary-surface));white-space:nowrap}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-title{width:100%;font-weight:500}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{text-align:center;font-style:italic;color:rgba(var(--ax-sys-color-on-surface),.6)}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-appointment{cursor:pointer}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-view-container{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1005
1005
  }
1006
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerAgendaViewComponent, decorators: [{
1006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerAgendaViewComponent, decorators: [{
1007
1007
  type: Component,
1008
1008
  args: [{ selector: 'ax-scheduler-agenda-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1009
1009
  '[class.ax-state-readonly]': 'readonly()',
@@ -1016,8 +1016,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1016
1016
  AXDropZoneDirective,
1017
1017
  AXDecoratorIconComponent,
1018
1018
  AXDecoratorGenericComponent,
1019
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerAgendaViewComponent }], template: "<div class=\"ax-scheduler-agenda-container\">\n @for (dayData of agendaDaysLayout(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-agenda-view-container {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-agenda-header-date-day\">\n <span\n class=\"ax-scheduler-agenda-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-agenda-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <div class=\"ax-scheduler-agenda-appointment-container\">\n @for (segment of dayData.appointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ' (All Day)'\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-agenda-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <div class=\"ax-scheduler-agenda-appointment-time\">\n <div\n class=\"ax-scheduler-agenda-appointment-time-inner {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n ></div>\n @if (segment.allDay) {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n </span>\n } @else {\n <span>{{ '@acorex:dateTime.duration.all-day' | translate | async }}</span>\n }\n } @else {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n <span>\n {{\n segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n </span>\n } @else {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n }\n </div>\n <ax-title class=\"ax-scheduler-agenda-appointment-title ax-scheduler-truncate\">{{ segment.title }}</ax-title>\n <!-- Description could go here if needed -->\n <!-- @if (segment.description) {\n <ax-subtitle>{{ segment.description }}</ax-subtitle>\n } -->\n @if (hasActions()) {\n <ax-icon\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n (click)=\"handleActionClick($event, segment)\"\n >\n </ax-icon>\n }\n </div>\n }\n @if (dayData.appointments.length === 0) {\n <div class=\"ax-scheduler-agenda-no-appointments\">\n {{ '@acorex:common.general.no-record' | translate | async }}\n </div>\n }\n </div>\n </div>\n }\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-scheduler-agenda-view .ax-scheduler-agenda-container{flex-direction:column;height:100%;display:flex}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container{gap:calc(var(--spacing,.25rem) * 4);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);display:flex;position:relative}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day{top:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 14);max-width:calc(var(--spacing,.25rem) * 24);min-width:calc(var(--spacing,.25rem) * 24);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);flex-direction:column;display:flex;position:sticky}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-char{--tw-font-weight:var(--font-weight-light,300);max-width:100%;font-weight:var(--font-weight-light,300)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-num{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container{justify-content:center;align-items:center;gap:var(--spacing,.25rem);flex-direction:column;width:calc(100% - 7rem);display:flex}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment{justify-content:space-between;gap:calc(var(--spacing,.25rem) * 2);border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);text-align:center;flex-direction:row;display:flex;overflow:hidden}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment.all-day-segment .ax-scheduler-agenda-appointment-time{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time{min-width:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:.9;flex-shrink:0}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-title{width:100%}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{text-align:center;color:rgba(var(--ax-sys-color-on-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{font-style:italic}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-appointment{cursor:pointer}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-view-container{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-view-container:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
1020
- }], propDecorators: { daysCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "daysCount", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
1019
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerAgendaViewComponent }], template: "<div class=\"ax-scheduler-agenda-container\">\n @for (dayData of agendaDaysLayout(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-agenda-view-container {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-agenda-header-date-day\">\n <span\n class=\"ax-scheduler-agenda-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-agenda-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <div class=\"ax-scheduler-agenda-appointment-container\">\n @for (segment of dayData.appointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ' (All Day)'\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-agenda-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <div class=\"ax-scheduler-agenda-appointment-time\">\n <div\n class=\"ax-scheduler-agenda-appointment-time-inner {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n ></div>\n @if (segment.allDay) {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n </span>\n } @else {\n <span>{{ '@acorex:dateTime.duration.all-day' | translate | async }}</span>\n }\n } @else {\n @if (isMultiDayAppointment(segment)) {\n <span class=\"ax-scheduler-agenda-multiday-info\">\n <span class=\"ax-scheduler-agenda-multiday-badge\">\n {{\n getMultiDayStartDate(segment)\n | format: 'date' : { format: 'D MMM', calendar: calendar() }\n | async\n }}\n -\n {{\n getMultiDayEndDate(segment) | format: 'date' : { format: 'D MMM', calendar: calendar() } | async\n }}\n </span>\n <span>\n {{\n segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n </span>\n } @else {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n }\n </div>\n <ax-title class=\"ax-scheduler-agenda-appointment-title ax-scheduler-truncate\">{{ segment.title }}</ax-title>\n <!-- Description could go here if needed -->\n <!-- @if (segment.description) {\n <ax-subtitle>{{ segment.description }}</ax-subtitle>\n } -->\n @if (hasActions()) {\n <ax-icon\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n (click)=\"handleActionClick($event, segment)\"\n >\n </ax-icon>\n }\n </div>\n }\n @if (dayData.appointments.length === 0) {\n <div class=\"ax-scheduler-agenda-no-appointments\">\n {{ '@acorex:common.general.no-record' | translate | async }}\n </div>\n }\n </div>\n </div>\n }\n</div>\n", styles: ["ax-scheduler-agenda-view .ax-scheduler-agenda-container{height:100%;display:flex;flex-direction:column}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container{gap:1rem;display:flex;position:relative;padding-inline:1rem;padding-block:.25rem;border-block-end:1px solid rgba(var(--ax-sys-color-border-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container:last-child{border-block-end-width:0}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-char{font-weight:500}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-today .ax-scheduler-agenda-header-date-day .ax-scheduler-month-header-date-day-num{font-weight:700}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday .ax-scheduler-agenda-header-date-day{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container.ax-state-holiday .ax-scheduler-agenda-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day{gap:.25rem;display:flex;height:3.5rem;min-width:6rem;max-width:6rem;position:sticky;align-items:start;flex-direction:column;inset-block-start:1rem;justify-content:center}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-char{max-width:100%;font-weight:300}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-view-container .ax-scheduler-agenda-header-date-day .ax-scheduler-agenda-header-date-day-num{font-weight:500;font-size:1.25rem}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container{gap:.25rem;display:flex;align-items:center;flex-direction:column;justify-content:center;width:100%;color:unset}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment{gap:.5rem;width:100%;display:flex;overflow:hidden;align-items:center;flex-direction:row;padding-block:.25rem;padding-inline:1rem;justify-content:space-between;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .15))}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time-inner{width:.75rem;height:.75rem}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment.all-day-segment .ax-scheduler-agenda-appointment-time{display:flex;align-items:center;gap:1rem;font-weight:500}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time{display:flex;align-items:center;gap:1rem;flex-shrink:0;min-width:10rem;font-size:.9em;opacity:.9}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time .ax-scheduler-agenda-multiday-info{display:flex;align-items:center;gap:.5rem}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-time .ax-scheduler-agenda-multiday-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding-inline:.5rem;padding-block:.25rem;font-size:.8rem;font-weight:500;line-height:1.2;border-radius:.375rem;background-color:rgba(var(--ax-sys-color-primary-surface),.12);color:rgba(var(--ax-sys-color-primary-surface));white-space:nowrap}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-agenda-appointment-title{width:100%;font-weight:500}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-appointment .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-agenda-view .ax-scheduler-agenda-container .ax-scheduler-agenda-appointment-container .ax-scheduler-agenda-no-appointments{text-align:center;font-style:italic;color:rgba(var(--ax-sys-color-on-surface),.6)}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-appointment{cursor:pointer}ax-scheduler-agenda-view:not(.ax-state-readonly) .ax-scheduler-agenda-view-container{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}\n"] }]
1020
+ }] });
1021
1021
 
1022
1022
  class AXSchedulerDayViewComponent extends NXComponent {
1023
1023
  constructor() {
@@ -1028,23 +1028,23 @@ class AXSchedulerDayViewComponent extends NXComponent {
1028
1028
  this.calendarService = inject(AXCalendarService);
1029
1029
  this.schedulerService = inject(AXSchedulerService);
1030
1030
  this.GAP_PX = 1;
1031
- this.rtl = input(false, ...(ngDevMode ? [{ debugName: "rtl" }] : /* istanbul ignore next */ []));
1032
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
1033
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
1034
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
1035
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
1036
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
1037
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
1038
- this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : /* istanbul ignore next */ []));
1039
- this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : /* istanbul ignore next */ []));
1040
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
1041
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
1042
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
1043
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
1044
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
1031
+ this.rtl = input(false, ...(ngDevMode ? [{ debugName: "rtl" }] : []));
1032
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
1033
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
1034
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
1035
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
1036
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
1037
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
1038
+ this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : []));
1039
+ this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : []));
1040
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
1041
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
1042
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
1043
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
1044
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
1045
1045
  // ViewChild for current time line element
1046
- this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : /* istanbul ignore next */ []));
1047
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
1046
+ this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : []));
1047
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
1048
1048
  this.processedAppointmentsForLayout = computed(() => {
1049
1049
  const viewDate = this.date();
1050
1050
  const startH = this.startDayHour();
@@ -1061,14 +1061,14 @@ class AXSchedulerDayViewComponent extends NXComponent {
1061
1061
  }
1062
1062
  }
1063
1063
  return segmentsForThisDay;
1064
- }, ...(ngDevMode ? [{ debugName: "processedAppointmentsForLayout" }] : /* istanbul ignore next */ []));
1064
+ }, ...(ngDevMode ? [{ debugName: "processedAppointmentsForLayout" }] : []));
1065
1065
  this.allDayAppointments = computed(() => {
1066
1066
  // Use segments from processedAppointmentsForLayout to get continuation flags
1067
1067
  return this.processedAppointmentsForLayout()?.filter((e) => e && e.allDay) ?? [];
1068
- }, ...(ngDevMode ? [{ debugName: "allDayAppointments" }] : /* istanbul ignore next */ []));
1068
+ }, ...(ngDevMode ? [{ debugName: "allDayAppointments" }] : []));
1069
1069
  this.singleDayAppointments = computed(() => {
1070
1070
  return this.processedAppointmentsForLayout()?.filter((e) => e && !e.allDay) ?? [];
1071
- }, ...(ngDevMode ? [{ debugName: "singleDayAppointments" }] : /* istanbul ignore next */ []));
1071
+ }, ...(ngDevMode ? [{ debugName: "singleDayAppointments" }] : []));
1072
1072
  this.slotClickedInternal = output();
1073
1073
  this.slotDblClickedInternal = output();
1074
1074
  this.slotRightClickedInternal = output();
@@ -1100,7 +1100,7 @@ class AXSchedulerDayViewComponent extends NXComponent {
1100
1100
  hours.push(time);
1101
1101
  }
1102
1102
  return hours;
1103
- }, ...(ngDevMode ? [{ debugName: "hoursArray" }] : /* istanbul ignore next */ []));
1103
+ }, ...(ngDevMode ? [{ debugName: "hoursArray" }] : []));
1104
1104
  this.appointmentLayouts = computed(() => {
1105
1105
  const layouts = new Map();
1106
1106
  const appointmentsToLayout = this.singleDayAppointments();
@@ -1151,7 +1151,7 @@ class AXSchedulerDayViewComponent extends NXComponent {
1151
1151
  });
1152
1152
  }
1153
1153
  return layouts;
1154
- }, ...(ngDevMode ? [{ debugName: "appointmentLayouts" }] : /* istanbul ignore next */ []));
1154
+ }, ...(ngDevMode ? [{ debugName: "appointmentLayouts" }] : []));
1155
1155
  }
1156
1156
  isActive(appointmentId) {
1157
1157
  return this.selectedAppointmentId() === appointmentId;
@@ -1382,10 +1382,10 @@ class AXSchedulerDayViewComponent extends NXComponent {
1382
1382
  .find((el) => el instanceof HTMLElement && el.dataset['slotId'] !== undefined);
1383
1383
  this.dragStartSlotId.set(dropListElement ? dropListElement.dataset['slotId'] : null);
1384
1384
  }
1385
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerDayViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1386
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerDayViewComponent, isStandalone: true, selector: "ax-scheduler-day-view", inputs: { rtl: { classPropertyName: "rtl", publicName: "rtl", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerDayViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-day-header\">\n <div class=\"ax-scheduler-day-header-table\" aria-hidden=\"true\">\n <div>\n {{ '@acorex:dateTime.duration.all-day' | translate | async }}\n </div>\n </div>\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleAllDayDrop($event)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleAllDaySlotEvent($event)\"\n (dblclick)=\"handleAllDaySlotEvent($event)\"\n (contextmenu)=\"handleAllDaySlotEvent($event)\"\n class=\"ax-scheduler-day-header-table-container\"\n [attr.data-slot-id]=\"date().format('YYYYMMDD') + '-allday'\"\n >\n <div class=\"ax-scheduler-day-header-appointment-container\">\n @if (allDayAppointments().length) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || allDayAppointments()[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n [dragData]=\"allDayAppointments()[0]\"\n (click)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (dblclick)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n [title]=\"tooltipTemplate() ? '' : allDayAppointments()[0].title\"\n class=\"ax-scheduler-header-day-appointment\"\n [class.ax-continuation-from-previous]=\"allDayAppointments()[0].isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"allDayAppointments()[0].isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(allDayAppointments()[0].id)\"\n [class]=\"\n allDayAppointments()[0].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"allDayAppointments()[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ allDayAppointments()[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, allDayAppointments()[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ allDayAppointments()[0].startDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ allDayAppointments()[0].endDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (allDayAppointments().length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-day-header-more-tag\"\n [class]=\"\n allDayAppointments()[1].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[1].priority ?? 'primary') + '-priority'\n \"\n >\n {{\n '@acorex:common.general.more-items'\n | translate: { params: { number: allDayAppointments().length - 1 } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of allDayAppointments(); track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n @if (appointment.isContinuationFromPreviousDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? '\u2192 ' : '\u2190 ' }}</span>\n }\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (appointment.isContinuationToNextDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? ' \u2190' : ' \u2192' }}</span>\n }\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ appointment.originalEndDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-day-time-container\">\n <table class=\"ax-scheduler-day-time\" aria-hidden=\"true\" [border]=\"1\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </table>\n <div class=\"ax-scheduler-day-table-container\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n <div class=\"ax-scheduler-day-appointment-container\">\n @for (appointment of singleDayAppointments(); track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-day-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [style.width]=\"getAppointmentWidth(appointment.id)\"\n [style.height]=\"getAppointmentHeight(appointment.id)\"\n [style.inset-block-start]=\"getAppointmentTop(appointment.id)\"\n [style.inset-inline-start]=\"getAppointmentLeft(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'time' : { calendar: calendar() } | async }} -\n {{ appointment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div aria-hidden=\"true\" class=\"ax-scheduler-day-slot\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleSingleDayDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSingleSlotEvent($event, time)\"\n (dblclick)=\"handleSingleSlotEvent($event, time)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time.add('minute', 30))\"\n (click)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (dblclick)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (contextmenu)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n [attr.data-slot-id]=\"time.add('minute', 30).format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-scheduler-day-view{min-width:var(--ax-comp-scheduler-width);background-color:inherit;display:block;position:relative}ax-scheduler-day-view .ax-scheduler-day-header{z-index:10;border-style:var(--tw-border-style);border-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex;position:sticky;top:0}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table{z-index:10;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table div{height:var(--ax-comp-scheduler-basic-view-blocks-height);width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));justify-content:center;align-items:center;display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container{width:100%;display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container{gap:calc(var(--spacing,.25rem) * 4);width:calc(100% - 2.5rem);display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);flex-direction:column;justify-content:center;display:flex;overflow:hidden}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-day-header-more-tag{cursor:pointer;border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 2);text-wrap:nowrap;flex-direction:column;justify-content:center;display:flex}ax-scheduler-day-view .ax-scheduler-day-time-container{background-color:inherit;width:100%;display:flex}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time{z-index:15;background-color:var(--ax-comp-scheduler-all-day-bg,inherit);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time div{height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));text-align:center;display:block;position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container{width:100%;position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container{width:calc(100% - 2.5rem);position:absolute;top:0}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot{width:100%}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div{height:var(--ax-comp-scheduler-basic-view-blocks-height);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);display:block}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div:first-child{border-top-style:var(--tw-border-style);border-top-width:0}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-header-day-appointment,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-appointment{cursor:pointer}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){:is(ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div):hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-day-view ax-title{justify-content:space-between;display:flex}ax-scheduler-day-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-day-view .ax-scheduler-current-time-line{height:calc(var(--spacing,.25rem) * .5);inset-inline:0}ax-scheduler-day-view .ax-scheduler-current-time-line:before{inset-inline-start:-6px;top:-5px}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerDayViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerDayViewComponent, isStandalone: true, selector: "ax-scheduler-day-view", inputs: { rtl: { classPropertyName: "rtl", publicName: "rtl", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerDayViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-day-header\">\n <div class=\"ax-scheduler-day-header-table\" aria-hidden=\"true\">\n <div>\n {{ '@acorex:dateTime.duration.all-day' | translate | async }}\n </div>\n </div>\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleAllDayDrop($event)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleAllDaySlotEvent($event)\"\n (dblclick)=\"handleAllDaySlotEvent($event)\"\n (contextmenu)=\"handleAllDaySlotEvent($event)\"\n class=\"ax-scheduler-day-header-table-container\"\n [attr.data-slot-id]=\"date().format('YYYYMMDD') + '-allday'\"\n >\n <div class=\"ax-scheduler-day-header-appointment-container\">\n @if (allDayAppointments().length) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || allDayAppointments()[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n [dragData]=\"allDayAppointments()[0]\"\n (click)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (dblclick)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n [title]=\"tooltipTemplate() ? '' : allDayAppointments()[0].title\"\n class=\"ax-scheduler-header-day-appointment\"\n [class.ax-continuation-from-previous]=\"allDayAppointments()[0].isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"allDayAppointments()[0].isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(allDayAppointments()[0].id)\"\n [class]=\"\n allDayAppointments()[0].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"allDayAppointments()[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ allDayAppointments()[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, allDayAppointments()[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ allDayAppointments()[0].startDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ allDayAppointments()[0].endDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (allDayAppointments().length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-day-header-more-tag\"\n [class]=\"\n allDayAppointments()[1].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[1].priority ?? 'primary') + '-priority'\n \"\n >\n {{\n '@acorex:common.general.more-items'\n | translate: { params: { number: allDayAppointments().length - 1 } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of allDayAppointments(); track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n @if (appointment.isContinuationFromPreviousDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? '\u2192 ' : '\u2190 ' }}</span>\n }\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (appointment.isContinuationToNextDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? ' \u2190' : ' \u2192' }}</span>\n }\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ appointment.originalEndDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-day-time-container\">\n <table class=\"ax-scheduler-day-time\" aria-hidden=\"true\" [border]=\"1\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </table>\n <div class=\"ax-scheduler-day-table-container\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n <div class=\"ax-scheduler-day-appointment-container\">\n @for (appointment of singleDayAppointments(); track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-day-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [style.width]=\"getAppointmentWidth(appointment.id)\"\n [style.height]=\"getAppointmentHeight(appointment.id)\"\n [style.inset-block-start]=\"getAppointmentTop(appointment.id)\"\n [style.inset-inline-start]=\"getAppointmentLeft(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'time' : { calendar: calendar() } | async }} -\n {{ appointment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div aria-hidden=\"true\" class=\"ax-scheduler-day-slot\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleSingleDayDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSingleSlotEvent($event, time)\"\n (dblclick)=\"handleSingleSlotEvent($event, time)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time.add('minute', 30))\"\n (click)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (dblclick)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (contextmenu)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n [attr.data-slot-id]=\"time.add('minute', 30).format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";ax-scheduler-day-view{display:block;position:relative;background-color:inherit;min-width:var(--ax-comp-scheduler-width)}ax-scheduler-day-view .ax-scheduler-day-header{top:0;z-index:20;width:100%;display:flex;position:sticky;background-color:var(--ax-comp-scheduler-all-day-bg, inherit);border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table{z-index:10;position:sticky;inset-inline-start:0;background-color:inherit}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table div{display:flex;align-items:center;justify-content:center;width:var(--ax-comp-scheduler-basic-view-blocks-width);height:var(--ax-comp-scheduler-basic-view-blocks-height);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container{width:100%;display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container{gap:1rem;display:flex;width:calc(100% - 2.5rem)}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment{width:100%;display:flex;overflow:hidden;position:relative;flex-direction:column;padding-inline:.5rem;justify-content:center;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-from-previous{border-start-start-radius:0;border-end-start-radius:0;padding-inline-start:1.25rem}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-from-previous:before{content:\"\\2190\";position:absolute;inset-inline-start:.25rem;top:50%;transform:translateY(-50%);font-size:.75rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-from-previous:before{content:\"\\2192\"}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-to-next{border-start-end-radius:0;border-end-end-radius:0;padding-inline-end:1.25rem}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-to-next:after{content:\"\\2192\";position:absolute;inset-inline-end:.25rem;top:50%;transform:translateY(-50%);font-size:.75rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-to-next:after{content:\"\\2190\"}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-day-header-more-tag{display:flex;cursor:pointer;text-wrap:nowrap;flex-direction:column;padding-inline:.5rem;justify-content:center;border-radius:var(--ax-sys-border-radius)}ax-scheduler-day-view .ax-scheduler-day-time-container{width:100%;display:flex;background-color:inherit}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time{z-index:15;position:sticky;inset-inline-start:0;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time div{display:block;text-align:center;padding-inline:.5rem;width:var(--ax-comp-scheduler-basic-view-blocks-width);height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container{width:100%;position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container{top:0;position:absolute;width:100%}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-from-previous{border-start-start-radius:0;border-end-start-radius:0}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-from-previous:before{content:\"\\2190\";position:absolute;inset-inline-start:.25rem;top:.25rem;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-from-previous:before{content:\"\\2192\"}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-to-next{border-start-end-radius:0;border-end-end-radius:0}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-to-next:after{content:\"\\2192\";position:absolute;inset-inline-end:.25rem;top:.25rem;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-to-next:after{content:\"\\2190\"}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot{width:100%}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div{height:var(--ax-comp-scheduler-basic-view-blocks-height);display:block;padding-inline:.5rem;border-block-start:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div:first-child{border-block-start-width:0}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-header-day-appointment,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-appointment{cursor:pointer}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container:hover,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-day-view ax-title{display:flex;justify-content:space-between}ax-scheduler-day-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-day-view ax-title .ax-continuation-arrow{font-size:.65rem;opacity:.7;flex-shrink:0}ax-scheduler-day-view .ax-scheduler-current-time-line{inset-inline-start:0;inset-inline-end:0;height:2px}ax-scheduler-day-view .ax-scheduler-current-time-line:before{top:-5px;inset-inline-start:-6px}\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1387
1387
  }
1388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerDayViewComponent, decorators: [{
1388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerDayViewComponent, decorators: [{
1389
1389
  type: Component,
1390
1390
  args: [{ selector: 'ax-scheduler-day-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1391
1391
  '[class.ax-state-readonly]': 'readonly()',
@@ -1399,8 +1399,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1399
1399
  AXDropZoneDirective,
1400
1400
  AXDecoratorIconComponent,
1401
1401
  AXDecoratorGenericComponent,
1402
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerDayViewComponent }], template: "<div class=\"ax-scheduler-day-header\">\n <div class=\"ax-scheduler-day-header-table\" aria-hidden=\"true\">\n <div>\n {{ '@acorex:dateTime.duration.all-day' | translate | async }}\n </div>\n </div>\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleAllDayDrop($event)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleAllDaySlotEvent($event)\"\n (dblclick)=\"handleAllDaySlotEvent($event)\"\n (contextmenu)=\"handleAllDaySlotEvent($event)\"\n class=\"ax-scheduler-day-header-table-container\"\n [attr.data-slot-id]=\"date().format('YYYYMMDD') + '-allday'\"\n >\n <div class=\"ax-scheduler-day-header-appointment-container\">\n @if (allDayAppointments().length) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || allDayAppointments()[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n [dragData]=\"allDayAppointments()[0]\"\n (click)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (dblclick)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n [title]=\"tooltipTemplate() ? '' : allDayAppointments()[0].title\"\n class=\"ax-scheduler-header-day-appointment\"\n [class.ax-continuation-from-previous]=\"allDayAppointments()[0].isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"allDayAppointments()[0].isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(allDayAppointments()[0].id)\"\n [class]=\"\n allDayAppointments()[0].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"allDayAppointments()[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ allDayAppointments()[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, allDayAppointments()[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ allDayAppointments()[0].startDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ allDayAppointments()[0].endDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (allDayAppointments().length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-day-header-more-tag\"\n [class]=\"\n allDayAppointments()[1].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[1].priority ?? 'primary') + '-priority'\n \"\n >\n {{\n '@acorex:common.general.more-items'\n | translate: { params: { number: allDayAppointments().length - 1 } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of allDayAppointments(); track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n @if (appointment.isContinuationFromPreviousDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? '\u2192 ' : '\u2190 ' }}</span>\n }\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (appointment.isContinuationToNextDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? ' \u2190' : ' \u2192' }}</span>\n }\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ appointment.originalEndDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-day-time-container\">\n <table class=\"ax-scheduler-day-time\" aria-hidden=\"true\" [border]=\"1\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </table>\n <div class=\"ax-scheduler-day-table-container\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n <div class=\"ax-scheduler-day-appointment-container\">\n @for (appointment of singleDayAppointments(); track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-day-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [style.width]=\"getAppointmentWidth(appointment.id)\"\n [style.height]=\"getAppointmentHeight(appointment.id)\"\n [style.inset-block-start]=\"getAppointmentTop(appointment.id)\"\n [style.inset-inline-start]=\"getAppointmentLeft(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'time' : { calendar: calendar() } | async }} -\n {{ appointment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div aria-hidden=\"true\" class=\"ax-scheduler-day-slot\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleSingleDayDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSingleSlotEvent($event, time)\"\n (dblclick)=\"handleSingleSlotEvent($event, time)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time.add('minute', 30))\"\n (click)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (dblclick)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (contextmenu)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n [attr.data-slot-id]=\"time.add('minute', 30).format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{ax-scheduler-day-view{min-width:var(--ax-comp-scheduler-width);background-color:inherit;display:block;position:relative}ax-scheduler-day-view .ax-scheduler-day-header{z-index:10;border-style:var(--tw-border-style);border-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex;position:sticky;top:0}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table{z-index:10;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table div{height:var(--ax-comp-scheduler-basic-view-blocks-height);width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));justify-content:center;align-items:center;display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container{width:100%;display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container{gap:calc(var(--spacing,.25rem) * 4);width:calc(100% - 2.5rem);display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);flex-direction:column;justify-content:center;display:flex;overflow:hidden}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-day-header-more-tag{cursor:pointer;border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 2);text-wrap:nowrap;flex-direction:column;justify-content:center;display:flex}ax-scheduler-day-view .ax-scheduler-day-time-container{background-color:inherit;width:100%;display:flex}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time{z-index:15;background-color:var(--ax-comp-scheduler-all-day-bg,inherit);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time div{height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));text-align:center;display:block;position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container{width:100%;position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container{width:calc(100% - 2.5rem);position:absolute;top:0}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot{width:100%}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div{height:var(--ax-comp-scheduler-basic-view-blocks-height);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);display:block}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div:first-child{border-top-style:var(--tw-border-style);border-top-width:0}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-header-day-appointment,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-appointment{cursor:pointer}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){:is(ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div):hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-day-view ax-title{justify-content:space-between;display:flex}ax-scheduler-day-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-day-view .ax-scheduler-current-time-line{height:calc(var(--spacing,.25rem) * .5);inset-inline:0}ax-scheduler-day-view .ax-scheduler-current-time-line:before{inset-inline-start:-6px;top:-5px}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
1403
- }], propDecorators: { rtl: [{ type: i0.Input, args: [{ isSignal: true, alias: "rtl", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], endDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "endDayHour", required: true }] }], startDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDayHour", required: true }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], currentTimeLineElement: [{ type: i0.ViewChild, args: ['currentTimeLine', { isSignal: true }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
1402
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerDayViewComponent }], template: "<div class=\"ax-scheduler-day-header\">\n <div class=\"ax-scheduler-day-header-table\" aria-hidden=\"true\">\n <div>\n {{ '@acorex:dateTime.duration.all-day' | translate | async }}\n </div>\n </div>\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleAllDayDrop($event)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleAllDaySlotEvent($event)\"\n (dblclick)=\"handleAllDaySlotEvent($event)\"\n (contextmenu)=\"handleAllDaySlotEvent($event)\"\n class=\"ax-scheduler-day-header-table-container\"\n [attr.data-slot-id]=\"date().format('YYYYMMDD') + '-allday'\"\n >\n <div class=\"ax-scheduler-day-header-appointment-container\">\n @if (allDayAppointments().length) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || allDayAppointments()[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n [dragData]=\"allDayAppointments()[0]\"\n (click)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (dblclick)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, allDayAppointments()[0])\"\n [title]=\"tooltipTemplate() ? '' : allDayAppointments()[0].title\"\n class=\"ax-scheduler-header-day-appointment\"\n [class.ax-continuation-from-previous]=\"allDayAppointments()[0].isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"allDayAppointments()[0].isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(allDayAppointments()[0].id)\"\n [class]=\"\n allDayAppointments()[0].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"allDayAppointments()[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ allDayAppointments()[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, allDayAppointments()[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ allDayAppointments()[0].startDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ allDayAppointments()[0].endDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (allDayAppointments().length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-day-header-more-tag\"\n [class]=\"\n allDayAppointments()[1].cssClass ??\n 'ax-scheduler-' + (allDayAppointments()[1].priority ?? 'primary') + '-priority'\n \"\n >\n {{\n '@acorex:common.general.more-items'\n | translate: { params: { number: allDayAppointments().length - 1 } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of allDayAppointments(); track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n @if (appointment.isContinuationFromPreviousDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? '\u2192 ' : '\u2190 ' }}</span>\n }\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (appointment.isContinuationToNextDay) {\n <span class=\"ax-continuation-arrow\">{{ rtl() ? ' \u2190' : ' \u2192' }}</span>\n }\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'date' : { calendar: calendar() } | async }}\n -\n {{ appointment.originalEndDate | format: 'date' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-day-time-container\">\n <table class=\"ax-scheduler-day-time\" aria-hidden=\"true\" [border]=\"1\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </table>\n <div class=\"ax-scheduler-day-table-container\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n <div class=\"ax-scheduler-day-appointment-container\">\n @for (appointment of singleDayAppointments(); track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-day-appointment\"\n [class.ax-continuation-from-previous]=\"appointment.isContinuationFromPreviousDay\"\n [class.ax-continuation-to-next]=\"appointment.isContinuationToNextDay\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [style.width]=\"getAppointmentWidth(appointment.id)\"\n [style.height]=\"getAppointmentHeight(appointment.id)\"\n [style.inset-block-start]=\"getAppointmentTop(appointment.id)\"\n [style.inset-inline-start]=\"getAppointmentLeft(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ appointment.originalStartDate | format: 'time' : { calendar: calendar() } | async }} -\n {{ appointment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div aria-hidden=\"true\" class=\"ax-scheduler-day-slot\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleSingleDayDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSingleSlotEvent($event, time)\"\n (dblclick)=\"handleSingleSlotEvent($event, time)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time.add('minute', 30))\"\n (click)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (dblclick)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n (contextmenu)=\"handleSingleSlotEvent($event, time.add('minute', 30))\"\n [attr.data-slot-id]=\"time.add('minute', 30).format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";ax-scheduler-day-view{display:block;position:relative;background-color:inherit;min-width:var(--ax-comp-scheduler-width)}ax-scheduler-day-view .ax-scheduler-day-header{top:0;z-index:20;width:100%;display:flex;position:sticky;background-color:var(--ax-comp-scheduler-all-day-bg, inherit);border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table{z-index:10;position:sticky;inset-inline-start:0;background-color:inherit}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table div{display:flex;align-items:center;justify-content:center;width:var(--ax-comp-scheduler-basic-view-blocks-width);height:var(--ax-comp-scheduler-basic-view-blocks-height);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container{width:100%;display:flex}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container{gap:1rem;display:flex;width:calc(100% - 2.5rem)}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment{width:100%;display:flex;overflow:hidden;position:relative;flex-direction:column;padding-inline:.5rem;justify-content:center;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-from-previous{border-start-start-radius:0;border-end-start-radius:0;padding-inline-start:1.25rem}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-from-previous:before{content:\"\\2190\";position:absolute;inset-inline-start:.25rem;top:50%;transform:translateY(-50%);font-size:.75rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-from-previous:before{content:\"\\2192\"}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-to-next{border-start-end-radius:0;border-end-end-radius:0;padding-inline-end:1.25rem}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-to-next:after{content:\"\\2192\";position:absolute;inset-inline-end:.25rem;top:50%;transform:translateY(-50%);font-size:.75rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-header-day-appointment.ax-continuation-to-next:after{content:\"\\2190\"}ax-scheduler-day-view .ax-scheduler-day-header .ax-scheduler-day-header-table-container .ax-scheduler-day-header-appointment-container .ax-scheduler-day-header-more-tag{display:flex;cursor:pointer;text-wrap:nowrap;flex-direction:column;padding-inline:.5rem;justify-content:center;border-radius:var(--ax-sys-border-radius)}ax-scheduler-day-view .ax-scheduler-day-time-container{width:100%;display:flex;background-color:inherit}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time{z-index:15;position:sticky;inset-inline-start:0;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-time div{display:block;text-align:center;padding-inline:.5rem;width:var(--ax-comp-scheduler-basic-view-blocks-width);height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container{width:100%;position:relative}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container{top:0;position:absolute;width:100%}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-from-previous{border-start-start-radius:0;border-end-start-radius:0}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-from-previous:before{content:\"\\2190\";position:absolute;inset-inline-start:.25rem;top:.25rem;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-from-previous:before{content:\"\\2192\"}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-to-next{border-start-end-radius:0;border-end-end-radius:0}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-to-next:after{content:\"\\2192\";position:absolute;inset-inline-end:.25rem;top:.25rem;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-appointment-container .ax-scheduler-day-appointment.ax-continuation-to-next:after{content:\"\\2190\"}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot{width:100%}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div{height:var(--ax-comp-scheduler-basic-view-blocks-height);display:block;padding-inline:.5rem;border-block-start:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-day-view .ax-scheduler-day-time-container .ax-scheduler-day-table-container .ax-scheduler-day-slot div:first-child{border-block-start-width:0}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-header-day-appointment,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-appointment{cursor:pointer}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-header-table-container:hover,ax-scheduler-day-view:not(.ax-state-readonly) .ax-scheduler-day-slot>div:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-day-view ax-title{display:flex;justify-content:space-between}ax-scheduler-day-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-day-view ax-title .ax-continuation-arrow{font-size:.65rem;opacity:.7;flex-shrink:0}ax-scheduler-day-view .ax-scheduler-current-time-line{inset-inline-start:0;inset-inline-end:0;height:2px}ax-scheduler-day-view .ax-scheduler-current-time-line:before{top:-5px;inset-inline-start:-6px}\n"] }]
1403
+ }] });
1404
1404
 
1405
1405
  class AXSchedulerMonthViewComponent extends NXComponent {
1406
1406
  constructor() {
@@ -1410,20 +1410,20 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1410
1410
  this.calendarService = inject(AXCalendarService);
1411
1411
  this.schedulerService = inject(AXSchedulerService);
1412
1412
  // --- Inputs ---
1413
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
1414
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
1415
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
1416
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
1417
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
1418
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
1419
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
1420
- this.firstDayOfWeek = input(...(ngDevMode ? [undefined, { debugName: "firstDayOfWeek" }] : /* istanbul ignore next */ []));
1421
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
1422
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
1413
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
1414
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
1415
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
1416
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
1417
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
1418
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
1419
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
1420
+ this.firstDayOfWeek = input(...(ngDevMode ? [undefined, { debugName: "firstDayOfWeek" }] : []));
1421
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
1422
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
1423
1423
  // --- Constants ---
1424
1424
  this.DAYS_IN_WEEK = 7;
1425
1425
  this.MAX_VISIBLE_APPOINTMENTS_PER_DAY = 2;
1426
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
1426
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
1427
1427
  // Internal outputs to be caught by parent AXSchedulerComponent
1428
1428
  this.slotClickedInternal = output();
1429
1429
  this.slotDblClickedInternal = output();
@@ -1451,7 +1451,7 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1451
1451
  this.monthStartDate = computed(() => {
1452
1452
  const d = this.date();
1453
1453
  return d ? d.startOf('month') : null;
1454
- }, ...(ngDevMode ? [{ debugName: "monthStartDate" }] : /* istanbul ignore next */ []));
1454
+ }, ...(ngDevMode ? [{ debugName: "monthStartDate" }] : []));
1455
1455
  // Generate the list of weekday names based on the firstDayOfWeek
1456
1456
  this.daysArray = computed(() => {
1457
1457
  const currentDate = this.date();
@@ -1459,7 +1459,7 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1459
1459
  firstDayOfWeek: this.firstDayOfWeek(),
1460
1460
  });
1461
1461
  return Array.from({ length: 7 }, (_, index) => headerStartDate.add('day', index));
1462
- }, ...(ngDevMode ? [{ debugName: "daysArray" }] : /* istanbul ignore next */ []));
1462
+ }, ...(ngDevMode ? [{ debugName: "daysArray" }] : []));
1463
1463
  // --- Calendar Grid Calculation ---
1464
1464
  this.calendarDaysInfo = computed(() => {
1465
1465
  const monthStart = this.monthStartDate();
@@ -1507,7 +1507,7 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1507
1507
  currentDay = currentDay.add('day', 1);
1508
1508
  }
1509
1509
  return { days: days, weeksNeeded: actualWeeksToShow };
1510
- }, ...(ngDevMode ? [{ debugName: "calendarDaysInfo" }] : /* istanbul ignore next */ []));
1510
+ }, ...(ngDevMode ? [{ debugName: "calendarDaysInfo" }] : []));
1511
1511
  // Calculate spanning appointments with their grid positions
1512
1512
  this.spanningAppointments = computed(() => {
1513
1513
  const { days } = this.calendarDaysInfo();
@@ -1605,12 +1605,12 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1605
1605
  });
1606
1606
  }
1607
1607
  return spanningResult;
1608
- }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : /* istanbul ignore next */ []));
1608
+ }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : []));
1609
1609
  // Get the set of multi-day appointment IDs for exclusion from per-day rendering
1610
1610
  this.multiDayAppointmentIds = computed(() => {
1611
1611
  const spanning = this.spanningAppointments();
1612
1612
  return new Set(spanning.map((s) => s.appointment.id));
1613
- }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : /* istanbul ignore next */ []));
1613
+ }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : []));
1614
1614
  // --- Day Cell Layout Calculation ---
1615
1615
  this.dayCellLayouts = computed(() => {
1616
1616
  const { days: initialDaysInfo } = this.calendarDaysInfo();
@@ -1661,7 +1661,7 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1661
1661
  gridIndex,
1662
1662
  };
1663
1663
  });
1664
- }, ...(ngDevMode ? [{ debugName: "dayCellLayouts" }] : /* istanbul ignore next */ []));
1664
+ }, ...(ngDevMode ? [{ debugName: "dayCellLayouts" }] : []));
1665
1665
  // --- Dynamic Grid Rows ---
1666
1666
  this.gridTemplateRowsStyle = computed(() => {
1667
1667
  const { weeksNeeded } = this.calendarDaysInfo();
@@ -1669,7 +1669,7 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1669
1669
  return `repeat(6, minmax(0, 1fr))`; // Fallback, ensures grid is at least somewhat sensible
1670
1670
  }
1671
1671
  return `repeat(${weeksNeeded}, minmax(0, 1fr))`; // Use 1fr for equal distribution
1672
- }, ...(ngDevMode ? [{ debugName: "gridTemplateRowsStyle" }] : /* istanbul ignore next */ []));
1672
+ }, ...(ngDevMode ? [{ debugName: "gridTemplateRowsStyle" }] : []));
1673
1673
  // Group spanning appointments by their week row for proper rendering
1674
1674
  this.spanningAppointmentsByWeekRow = computed(() => {
1675
1675
  const spanning = this.spanningAppointments();
@@ -1711,12 +1711,12 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1711
1711
  }
1712
1712
  }
1713
1713
  return result;
1714
- }, ...(ngDevMode ? [{ debugName: "spanningAppointmentsByWeekRow" }] : /* istanbul ignore next */ []));
1714
+ }, ...(ngDevMode ? [{ debugName: "spanningAppointmentsByWeekRow" }] : []));
1715
1715
  // Get the number of week rows in the current month view
1716
1716
  this.weekRowsArray = computed(() => {
1717
1717
  const { weeksNeeded } = this.calendarDaysInfo();
1718
1718
  return Array.from({ length: weeksNeeded }, (_, i) => i);
1719
- }, ...(ngDevMode ? [{ debugName: "weekRowsArray" }] : /* istanbul ignore next */ []));
1719
+ }, ...(ngDevMode ? [{ debugName: "weekRowsArray" }] : []));
1720
1720
  // Calculate the maximum row index (number of stacked spanning appointments - 1) for each week row
1721
1721
  this.maxSpanningRowsPerWeek = computed(() => {
1722
1722
  const byWeekRow = this.spanningAppointmentsByWeekRow();
@@ -1731,7 +1731,7 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1731
1731
  result.set(weekRowIndex, maxRowIndex + 1); // +1 to get count from 0-based index
1732
1732
  }
1733
1733
  return result;
1734
- }, ...(ngDevMode ? [{ debugName: "maxSpanningRowsPerWeek" }] : /* istanbul ignore next */ []));
1734
+ }, ...(ngDevMode ? [{ debugName: "maxSpanningRowsPerWeek" }] : []));
1735
1735
  }
1736
1736
  isActive(appointmentId) {
1737
1737
  return this.selectedAppointmentId() === appointmentId;
@@ -1814,10 +1814,10 @@ class AXSchedulerMonthViewComponent extends NXComponent {
1814
1814
  const weekRowIndex = Math.floor(gridIndex / this.DAYS_IN_WEEK);
1815
1815
  return this.maxSpanningRowsPerWeek().get(weekRowIndex) ?? 0;
1816
1816
  }
1817
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerMonthViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1818
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerMonthViewComponent, isStandalone: true, selector: "ax-scheduler-month-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerMonthViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-month-container\">\n <!-- Weekday Header -->\n <div class=\"ax-scheduler-month-weekdays\">\n @for (day of daysArray(); track day.date.getTime()) {\n <div class=\"ax-scheduler-month-weekday\">\n {{ day | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <!-- Calendar Grid Wrapper -->\n <div class=\"ax-scheduler-month-grid-wrapper\">\n <!-- Spanning Appointments Layer -->\n <div class=\"ax-scheduler-month-spanning-layer\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (weekRowIndex of weekRowsArray(); track weekRowIndex) {\n <div class=\"ax-scheduler-month-spanning-week-row\">\n @for (\n spanning of getSpanningAppointmentsForWeekRow(weekRowIndex);\n track spanning.appointment.id + spanning.gridStartIndex\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-month-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"(spanning.gridStartIndex % 7) + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"ax-scheduler-month-grid\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (dayCell of dayCellLayouts(); track dayCell.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayCell.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSlotEvent($event, dayCell.date)\"\n (dblclick)=\"handleSlotEvent($event, dayCell.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayCell.date)\"\n class=\"ax-scheduler-month-day-cell {{\n dayCell.isHoliday ? (dayCell.holidayCssClass ?? 'ax-state-holiday') : ''\n }}\"\n [class.ax-state-today]=\"dayCell.isToday\"\n [class.ax-other-month]=\"!dayCell.isCurrentMonth\"\n [attr.data-slot-id]=\"dayCell.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-month-day-header\">\n <span class=\"ax-scheduler-month-day-number ax-scheduler-truncate\" [axTooltip]=\"dayCell.holidayTitle ?? ''\">\n {{ dayCell.date.dayOfMonth }}\n\n @if (dayCell.holidayTitle) {\n ( {{ dayCell.holidayTitle }} )\n }\n </span>\n </div>\n <div\n class=\"ax-scheduler-month-day-appointments\"\n [style.--spanning-rows-count]=\"getSpanningRowsCountForDayCell(dayCell.gridIndex)\"\n >\n <!-- Visible Single-day Appointment Segments -->\n @for (segment of dayCell.visibleAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n [class.all-day-segment]=\"segment.allDay\"\n class=\"ax-scheduler-month-appointment-chip\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n </div>\n }\n <!-- Overflow Badge and Popover -->\n @if (dayCell.overflowCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n <!-- Stop propagation to prevent slot click -->\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayCell.overflowCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (segment of dayCell.hiddenAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-popover-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-scheduler-month-view{height:100%;min-width:var(--ax-comp-scheduler-width);background-color:inherit;display:block}ax-scheduler-month-view .ax-scheduler-month-container{background-color:inherit;flex-direction:column;height:100%;display:flex}ax-scheduler-month-view .ax-scheduler-month-container .ax-scheduler-month-grid-wrapper{height:100%}ax-scheduler-month-view .ax-scheduler-month-weekdays{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * 2);text-align:center;flex-shrink:0;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;position:sticky;top:0}ax-scheduler-month-view .ax-scheduler-month-weekdays .ax-scheduler-month-weekday{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-month-view .ax-scheduler-month-grid{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-grow:1;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(5rem,auto);width:100%;height:100%;display:grid}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:var(--spacing,.25rem);position:relative;overflow:hidden}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month{background-color:rgba(var(--ax-sys-color-border-lightest-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-border-lightest-surface)) 20%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-on-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month .ax-scheduler-month-day-number{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today .ax-scheduler-month-day-number{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 2.5%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month .ax-scheduler-month-day-number{color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 50%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday .ax-scheduler-month-day-number{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-danger-600))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday.ax-other-month .ax-scheduler-month-day-number{color:color-mix(in oklab,rgba(var(--ax-sys-color-danger-600)) 50%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header{margin-bottom:var(--spacing,.25rem);text-align:center}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header .ax-scheduler-month-day-number{max-width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));display:inline-block}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments{gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-appointment-chip{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm,.25rem);padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));overflow:hidden}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}@media(hover:hover){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-appointment-chip{cursor:pointer}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.1)}ax-scheduler-month-view .ax-appointment-chip-title{justify-content:space-between;display:flex}ax-scheduler-month-view .ax-appointment-chip-title .ax-scheduler-action-icon{cursor:pointer;width:auto}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1817
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerMonthViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1818
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerMonthViewComponent, isStandalone: true, selector: "ax-scheduler-month-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerMonthViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-month-container\">\n <!-- Weekday Header -->\n <div class=\"ax-scheduler-month-weekdays\">\n @for (day of daysArray(); track day.date.getTime()) {\n <div class=\"ax-scheduler-month-weekday\">\n {{ day | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <!-- Calendar Grid Wrapper -->\n <div class=\"ax-scheduler-month-grid-wrapper\">\n <!-- Spanning Appointments Layer -->\n <div class=\"ax-scheduler-month-spanning-layer\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (weekRowIndex of weekRowsArray(); track weekRowIndex) {\n <div class=\"ax-scheduler-month-spanning-week-row\">\n @for (\n spanning of getSpanningAppointmentsForWeekRow(weekRowIndex);\n track spanning.appointment.id + spanning.gridStartIndex\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-month-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"(spanning.gridStartIndex % 7) + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"ax-scheduler-month-grid\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (dayCell of dayCellLayouts(); track dayCell.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayCell.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSlotEvent($event, dayCell.date)\"\n (dblclick)=\"handleSlotEvent($event, dayCell.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayCell.date)\"\n class=\"ax-scheduler-month-day-cell {{\n dayCell.isHoliday ? (dayCell.holidayCssClass ?? 'ax-state-holiday') : ''\n }}\"\n [class.ax-state-today]=\"dayCell.isToday\"\n [class.ax-other-month]=\"!dayCell.isCurrentMonth\"\n [attr.data-slot-id]=\"dayCell.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-month-day-header\">\n <span class=\"ax-scheduler-month-day-number ax-scheduler-truncate\" [axTooltip]=\"dayCell.holidayTitle ?? ''\">\n {{ dayCell.date.dayOfMonth }}\n\n @if (dayCell.holidayTitle) {\n ( {{ dayCell.holidayTitle }} )\n }\n </span>\n </div>\n <div\n class=\"ax-scheduler-month-day-appointments\"\n [style.--spanning-rows-count]=\"getSpanningRowsCountForDayCell(dayCell.gridIndex)\"\n >\n <!-- Visible Single-day Appointment Segments -->\n @for (segment of dayCell.visibleAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n [class.all-day-segment]=\"segment.allDay\"\n class=\"ax-scheduler-month-appointment-chip\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n </div>\n }\n <!-- Overflow Badge and Popover -->\n @if (dayCell.overflowCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n <!-- Stop propagation to prevent slot click -->\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayCell.overflowCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (segment of dayCell.hiddenAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-popover-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";ax-scheduler-month-view{--ax-scheduler-month-spanning-row-height: 1.25rem;--ax-scheduler-month-spanning-row-gap: .25rem;height:100%;display:block;background-color:inherit;min-width:var(--ax-comp-scheduler-width)}ax-scheduler-month-view .ax-scheduler-month-container{height:100%;display:flex;flex-direction:column;background-color:inherit}ax-scheduler-month-view .ax-scheduler-month-weekdays{top:0;z-index:10;width:100%;display:grid;flex-shrink:0;position:sticky;padding:.5rem 0;text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));background-color:var(--ax-comp-scheduler-all-day-bg, inherit);border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-month-view .ax-scheduler-month-weekdays .ax-scheduler-month-weekday{font-weight:500;font-size:.875rem}ax-scheduler-month-view .ax-scheduler-month-grid-wrapper{flex-grow:1;display:grid;position:relative}ax-scheduler-month-view .ax-scheduler-month-spanning-layer{top:0;right:0;bottom:0;left:0;z-index:5;width:100%;height:100%;display:grid;position:absolute;pointer-events:none;grid-auto-rows:minmax(5rem,auto);grid-template-columns:1fr;border-inline-start:1px solid transparent}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row{display:grid;position:relative;align-content:start;padding-top:1.5rem;row-gap:var(--ax-scheduler-month-spanning-row-gap);grid-auto-rows:var(--ax-scheduler-month-spanning-row-height);grid-template-columns:repeat(7,minmax(0,1fr))}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment{z-index:6;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;pointer-events:auto;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-month-view .ax-scheduler-month-grid{width:100%;display:grid;position:relative;z-index:1;grid-auto-rows:minmax(5rem,auto);grid-template-columns:repeat(7,minmax(0,1fr));border-inline-start:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell{padding:.25rem;overflow:hidden;position:relative;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month{background-color:rgba(var(--ax-sys-color-border-lightest-surface),.2)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-on-surface),.5)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today .ax-scheduler-month-day-number{font-weight:700;color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month{background-color:rgba(var(--ax-sys-color-primary-surface),.025)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-primary-surface),.5)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday .ax-scheduler-month-day-number{font-weight:700;color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-danger-surface),.5)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header{text-align:center;margin-bottom:.25rem}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header .ax-scheduler-month-day-number{max-width:100%;font-size:.875rem;display:inline-block}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments{gap:.125rem;display:flex;overflow:hidden;flex-direction:column;padding-top:max(0rem,var(--spanning-rows-count, 0) * (var(--ax-scheduler-month-spanning-row-height) + var(--ax-scheduler-month-spanning-row-gap)) - var(--ax-scheduler-month-spanning-row-gap))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-appointment-chip{overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge{cursor:pointer;text-align:left;font-size:.75rem;padding:.125rem 0;margin-top:.125rem}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge:hover{text-decoration:underline}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-appointment-chip,ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-spanning-appointment{cursor:pointer}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.1)}ax-scheduler-month-view .ax-appointment-chip-title{display:flex;justify-content:space-between}ax-scheduler-month-view .ax-appointment-chip-title .ax-scheduler-action-icon{width:auto;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1819
1819
  }
1820
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerMonthViewComponent, decorators: [{
1820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerMonthViewComponent, decorators: [{
1821
1821
  type: Component,
1822
1822
  args: [{ selector: 'ax-scheduler-month-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1823
1823
  '[class.ax-state-readonly]': 'readonly()',
@@ -1830,8 +1830,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1830
1830
  AXTooltipDirective,
1831
1831
  AXDropZoneDirective,
1832
1832
  AXDecoratorIconComponent,
1833
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerMonthViewComponent }], template: "<div class=\"ax-scheduler-month-container\">\n <!-- Weekday Header -->\n <div class=\"ax-scheduler-month-weekdays\">\n @for (day of daysArray(); track day.date.getTime()) {\n <div class=\"ax-scheduler-month-weekday\">\n {{ day | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <!-- Calendar Grid Wrapper -->\n <div class=\"ax-scheduler-month-grid-wrapper\">\n <!-- Spanning Appointments Layer -->\n <div class=\"ax-scheduler-month-spanning-layer\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (weekRowIndex of weekRowsArray(); track weekRowIndex) {\n <div class=\"ax-scheduler-month-spanning-week-row\">\n @for (\n spanning of getSpanningAppointmentsForWeekRow(weekRowIndex);\n track spanning.appointment.id + spanning.gridStartIndex\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-month-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"(spanning.gridStartIndex % 7) + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"ax-scheduler-month-grid\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (dayCell of dayCellLayouts(); track dayCell.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayCell.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSlotEvent($event, dayCell.date)\"\n (dblclick)=\"handleSlotEvent($event, dayCell.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayCell.date)\"\n class=\"ax-scheduler-month-day-cell {{\n dayCell.isHoliday ? (dayCell.holidayCssClass ?? 'ax-state-holiday') : ''\n }}\"\n [class.ax-state-today]=\"dayCell.isToday\"\n [class.ax-other-month]=\"!dayCell.isCurrentMonth\"\n [attr.data-slot-id]=\"dayCell.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-month-day-header\">\n <span class=\"ax-scheduler-month-day-number ax-scheduler-truncate\" [axTooltip]=\"dayCell.holidayTitle ?? ''\">\n {{ dayCell.date.dayOfMonth }}\n\n @if (dayCell.holidayTitle) {\n ( {{ dayCell.holidayTitle }} )\n }\n </span>\n </div>\n <div\n class=\"ax-scheduler-month-day-appointments\"\n [style.--spanning-rows-count]=\"getSpanningRowsCountForDayCell(dayCell.gridIndex)\"\n >\n <!-- Visible Single-day Appointment Segments -->\n @for (segment of dayCell.visibleAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n [class.all-day-segment]=\"segment.allDay\"\n class=\"ax-scheduler-month-appointment-chip\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n </div>\n }\n <!-- Overflow Badge and Popover -->\n @if (dayCell.overflowCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n <!-- Stop propagation to prevent slot click -->\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayCell.overflowCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (segment of dayCell.hiddenAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-popover-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-scheduler-month-view{height:100%;min-width:var(--ax-comp-scheduler-width);background-color:inherit;display:block}ax-scheduler-month-view .ax-scheduler-month-container{background-color:inherit;flex-direction:column;height:100%;display:flex}ax-scheduler-month-view .ax-scheduler-month-container .ax-scheduler-month-grid-wrapper{height:100%}ax-scheduler-month-view .ax-scheduler-month-weekdays{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * 2);text-align:center;flex-shrink:0;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;position:sticky;top:0}ax-scheduler-month-view .ax-scheduler-month-weekdays .ax-scheduler-month-weekday{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-month-view .ax-scheduler-month-grid{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-grow:1;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(5rem,auto);width:100%;height:100%;display:grid}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:var(--spacing,.25rem);position:relative;overflow:hidden}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month{background-color:rgba(var(--ax-sys-color-border-lightest-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-border-lightest-surface)) 20%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-on-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month .ax-scheduler-month-day-number{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 50%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today .ax-scheduler-month-day-number{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 2.5%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month .ax-scheduler-month-day-number{color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 50%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday .ax-scheduler-month-day-number{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-danger-600))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday.ax-other-month .ax-scheduler-month-day-number{color:color-mix(in oklab,rgba(var(--ax-sys-color-danger-600)) 50%,transparent)}}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header{margin-bottom:var(--spacing,.25rem);text-align:center}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header .ax-scheduler-month-day-number{max-width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));display:inline-block}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments{gap:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-appointment-chip{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-sm,.25rem);padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));overflow:hidden}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}@media(hover:hover){ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-appointment-chip{cursor:pointer}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.1)}ax-scheduler-month-view .ax-appointment-chip-title{justify-content:space-between;display:flex}ax-scheduler-month-view .ax-appointment-chip-title .ax-scheduler-action-icon{cursor:pointer;width:auto}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
1834
- }], propDecorators: { readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
1833
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerMonthViewComponent }], template: "<div class=\"ax-scheduler-month-container\">\n <!-- Weekday Header -->\n <div class=\"ax-scheduler-month-weekdays\">\n @for (day of daysArray(); track day.date.getTime()) {\n <div class=\"ax-scheduler-month-weekday\">\n {{ day | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <!-- Calendar Grid Wrapper -->\n <div class=\"ax-scheduler-month-grid-wrapper\">\n <!-- Spanning Appointments Layer -->\n <div class=\"ax-scheduler-month-spanning-layer\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (weekRowIndex of weekRowsArray(); track weekRowIndex) {\n <div class=\"ax-scheduler-month-spanning-week-row\">\n @for (\n spanning of getSpanningAppointmentsForWeekRow(weekRowIndex);\n track spanning.appointment.id + spanning.gridStartIndex\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-month-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"(spanning.gridStartIndex % 7) + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"ax-scheduler-month-grid\" [style.gridTemplateRows]=\"gridTemplateRowsStyle()\">\n @for (dayCell of dayCellLayouts(); track dayCell.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayCell.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (click)=\"handleSlotEvent($event, dayCell.date)\"\n (dblclick)=\"handleSlotEvent($event, dayCell.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayCell.date)\"\n class=\"ax-scheduler-month-day-cell {{\n dayCell.isHoliday ? (dayCell.holidayCssClass ?? 'ax-state-holiday') : ''\n }}\"\n [class.ax-state-today]=\"dayCell.isToday\"\n [class.ax-other-month]=\"!dayCell.isCurrentMonth\"\n [attr.data-slot-id]=\"dayCell.date.format('YYYYMMDD')\"\n >\n <div class=\"ax-scheduler-month-day-header\">\n <span class=\"ax-scheduler-month-day-number ax-scheduler-truncate\" [axTooltip]=\"dayCell.holidayTitle ?? ''\">\n {{ dayCell.date.dayOfMonth }}\n\n @if (dayCell.holidayTitle) {\n ( {{ dayCell.holidayTitle }} )\n }\n </span>\n </div>\n <div\n class=\"ax-scheduler-month-day-appointments\"\n [style.--spanning-rows-count]=\"getSpanningRowsCountForDayCell(dayCell.gridIndex)\"\n >\n <!-- Visible Single-day Appointment Segments -->\n @for (segment of dayCell.visibleAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n [class.all-day-segment]=\"segment.allDay\"\n class=\"ax-scheduler-month-appointment-chip\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </span>\n }\n </div>\n }\n <!-- Overflow Badge and Popover -->\n @if (dayCell.overflowCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n <!-- Stop propagation to prevent slot click -->\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayCell.overflowCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (segment of dayCell.hiddenAppointments; track segment.id + segment.originalStartDate) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n (segment.allDay\n ? ''\n : ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')')\n \"\n class=\"ax-scheduler-popover-appointment\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [class]=\"segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <span class=\"ax-appointment-chip-title\">\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </span>\n @if (!segment.allDay) {\n <span>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";ax-scheduler-month-view{--ax-scheduler-month-spanning-row-height: 1.25rem;--ax-scheduler-month-spanning-row-gap: .25rem;height:100%;display:block;background-color:inherit;min-width:var(--ax-comp-scheduler-width)}ax-scheduler-month-view .ax-scheduler-month-container{height:100%;display:flex;flex-direction:column;background-color:inherit}ax-scheduler-month-view .ax-scheduler-month-weekdays{top:0;z-index:10;width:100%;display:grid;flex-shrink:0;position:sticky;padding:.5rem 0;text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));background-color:var(--ax-comp-scheduler-all-day-bg, inherit);border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-month-view .ax-scheduler-month-weekdays .ax-scheduler-month-weekday{font-weight:500;font-size:.875rem}ax-scheduler-month-view .ax-scheduler-month-grid-wrapper{flex-grow:1;display:grid;position:relative}ax-scheduler-month-view .ax-scheduler-month-spanning-layer{top:0;right:0;bottom:0;left:0;z-index:5;width:100%;height:100%;display:grid;position:absolute;pointer-events:none;grid-auto-rows:minmax(5rem,auto);grid-template-columns:1fr;border-inline-start:1px solid transparent}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row{display:grid;position:relative;align-content:start;padding-top:1.5rem;row-gap:var(--ax-scheduler-month-spanning-row-gap);grid-auto-rows:var(--ax-scheduler-month-spanning-row-height);grid-template-columns:repeat(7,minmax(0,1fr))}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment{z-index:6;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;pointer-events:auto;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-month-view .ax-scheduler-month-spanning-layer .ax-scheduler-month-spanning-week-row .ax-scheduler-month-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-month-view .ax-scheduler-month-grid{width:100%;display:grid;position:relative;z-index:1;grid-auto-rows:minmax(5rem,auto);grid-template-columns:repeat(7,minmax(0,1fr));border-inline-start:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell{padding:.25rem;overflow:hidden;position:relative;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month{background-color:rgba(var(--ax-sys-color-border-lightest-surface),.2)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-on-surface),.5)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today .ax-scheduler-month-day-number{font-weight:700;color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month{background-color:rgba(var(--ax-sys-color-primary-surface),.025)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-today.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-primary-surface),.5)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday .ax-scheduler-month-day-number{font-weight:700;color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell.ax-state-holiday.ax-other-month .ax-scheduler-month-day-number{color:rgba(var(--ax-sys-color-danger-surface),.5)}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header{text-align:center;margin-bottom:.25rem}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-header .ax-scheduler-month-day-number{max-width:100%;font-size:.875rem;display:inline-block}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments{gap:.125rem;display:flex;overflow:hidden;flex-direction:column;padding-top:max(0rem,var(--spanning-rows-count, 0) * (var(--ax-scheduler-month-spanning-row-height) + var(--ax-scheduler-month-spanning-row-gap)) - var(--ax-scheduler-month-spanning-row-gap))}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-appointment-chip{overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge{cursor:pointer;text-align:left;font-size:.75rem;padding:.125rem 0;margin-top:.125rem}ax-scheduler-month-view .ax-scheduler-month-grid .ax-scheduler-month-day-cell .ax-scheduler-month-day-appointments .ax-scheduler-month-overflow-badge:hover{text-decoration:underline}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-appointment-chip,ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-spanning-appointment{cursor:pointer}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-month-view:not(.ax-state-readonly) .ax-scheduler-month-day-cell:hover.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.1)}ax-scheduler-month-view .ax-appointment-chip-title{display:flex;justify-content:space-between}ax-scheduler-month-view .ax-appointment-chip-title .ax-scheduler-action-icon{width:auto;cursor:pointer}\n"] }]
1834
+ }] });
1835
1835
 
1836
1836
  class AXSchedulerTimelineDayViewComponent extends NXComponent {
1837
1837
  constructor() {
@@ -1842,26 +1842,26 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
1842
1842
  this.calendarService = inject(AXCalendarService);
1843
1843
  this.schedulerService = inject(AXSchedulerService);
1844
1844
  this.GAP_PX = 1;
1845
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
1846
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
1847
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
1848
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
1849
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
1850
- this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : /* istanbul ignore next */ []));
1851
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
1852
- this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : /* istanbul ignore next */ []));
1853
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
1854
- this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : /* istanbul ignore next */ []));
1855
- this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : /* istanbul ignore next */ []));
1856
- this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : /* istanbul ignore next */ []));
1857
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
1858
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
1859
- this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : /* istanbul ignore next */ []));
1860
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
1861
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
1862
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
1863
- this.dragStartSlotResourceId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotResourceId" }] : /* istanbul ignore next */ []));
1864
- this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : /* istanbul ignore next */ []));
1845
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
1846
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
1847
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
1848
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
1849
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
1850
+ this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : []));
1851
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
1852
+ this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : []));
1853
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
1854
+ this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : []));
1855
+ this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : []));
1856
+ this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
1857
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
1858
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
1859
+ this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : []));
1860
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
1861
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
1862
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
1863
+ this.dragStartSlotResourceId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotResourceId" }] : []));
1864
+ this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : []));
1865
1865
  /**
1866
1866
  * Gets appointments grouped by resources for timeline view.
1867
1867
  */
@@ -1870,7 +1870,7 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
1870
1870
  const resources = this.resources();
1871
1871
  const showUnassigned = this.showUnassignedAppointments();
1872
1872
  return this.schedulerService.filterAppointmentsByResources(allAppointments, resources, showUnassigned);
1873
- }, ...(ngDevMode ? [{ debugName: "appointmentsByResource" }] : /* istanbul ignore next */ []));
1873
+ }, ...(ngDevMode ? [{ debugName: "appointmentsByResource" }] : []));
1874
1874
  /**
1875
1875
  * Gets all resource IDs including unassigned if applicable.
1876
1876
  */
@@ -1878,7 +1878,7 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
1878
1878
  const resources = this.resources();
1879
1879
  const showUnassigned = this.showUnassignedAppointments();
1880
1880
  return this.schedulerService.getAllResourceIds(resources, showUnassigned);
1881
- }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : /* istanbul ignore next */ []));
1881
+ }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : []));
1882
1882
  /**
1883
1883
  * Processes original appointments to get segments relevant to this specific day and its viewable hours.
1884
1884
  * Filters out original all-day events.
@@ -1922,7 +1922,7 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
1922
1922
  }
1923
1923
  }
1924
1924
  return segmentsOnThisDay;
1925
- }, ...(ngDevMode ? [{ debugName: "processedSegmentsForLayout" }] : /* istanbul ignore next */ []));
1925
+ }, ...(ngDevMode ? [{ debugName: "processedSegmentsForLayout" }] : []));
1926
1926
  // Internal outputs to be caught by parent AXSchedulerComponent
1927
1927
  this.slotClickedInternal = output();
1928
1928
  this.slotDblClickedInternal = output();
@@ -1956,7 +1956,7 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
1956
1956
  hours.push(time);
1957
1957
  }
1958
1958
  return hours;
1959
- }, ...(ngDevMode ? [{ debugName: "hoursArray" }] : /* istanbul ignore next */ []));
1959
+ }, ...(ngDevMode ? [{ debugName: "hoursArray" }] : []));
1960
1960
  // --- Appointment Layout Calculation ---
1961
1961
  this.appointmentLayouts = computed(() => {
1962
1962
  const finalLayouts = [];
@@ -2007,7 +2007,7 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
2007
2007
  });
2008
2008
  }
2009
2009
  return finalLayouts;
2010
- }, ...(ngDevMode ? [{ debugName: "appointmentLayouts" }] : /* istanbul ignore next */ []));
2010
+ }, ...(ngDevMode ? [{ debugName: "appointmentLayouts" }] : []));
2011
2011
  }
2012
2012
  isActive(appointmentId) {
2013
2013
  return this.selectedAppointmentId() === appointmentId;
@@ -2287,10 +2287,10 @@ class AXSchedulerTimelineDayViewComponent extends NXComponent {
2287
2287
  this.dragStartSlotId.set(dropListElement ? dropListElement.dataset['slotId'] : null);
2288
2288
  this.dragStartSlotResourceId.set(dropListElement ? dropListElement.dataset['resourceId'] : null);
2289
2289
  }
2290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineDayViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2291
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerTimelineDayViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-day-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineDayViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-header\">\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-content\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n layout of resources().length === 0 ? appointmentLayouts() : getAppointmentLayoutsForResource(resourceIds()[0]);\n track layout.appointment.id\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ?? 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n layout.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-resource-container\">\n <!-- Single sticky time header for all resources (only show if not used in multi-day) -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-header ax-scheduler-timeline-header-sticky\">\n <div class=\"ax-scheduler-timeline-resource-header-placeholder\"><span>Resources</span></div>\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows -->\n <div class=\"ax-scheduler-timeline-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div class=\"ax-scheduler-timeline-resource-row\" [style.height]=\"getResourceRowHeight(resourceId)\">\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-resource-header ax-scheduler-timeline-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-resource-content\">\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (layout of getAppointmentLayoutsForResource(resourceId); track layout.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ??\n 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n layout.appointment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n [attr.data-resource-id]=\"resourceId\"\n ></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-day-view{background-color:inherit;flex-direction:column;height:100%;display:inline-flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container{background-color:inherit;flex-direction:column;height:auto;min-height:100%;display:flex;position:relative;overflow:visible}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex;position:sticky;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky .ax-scheduler-timeline-resource-header-placeholder{z-index:15;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-rows{background-color:inherit;flex:1;position:relative;overflow:visible}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;width:max-content;min-height:0;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header{width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header.ax-scheduler-timeline-resource-header-sticky{z-index:15;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header .ax-scheduler-timeline-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container{width:100%;height:100%;position:absolute;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row{height:100%;display:flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{inset-inline-end:calc(var(--spacing,.25rem) * 0);content:var(--tw-content);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:1px;height:100%;position:absolute;top:0}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-border-lightest-surface)) 30%,transparent)}}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{--tw-content:\"\";content:var(--tw-content)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{z-index:2;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex;position:sticky;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours span{position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 2)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{width:100%;height:100%;position:absolute;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row{height:100%;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{z-index:1;cursor:pointer}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell{z-index:0;cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-timeline-day-view ax-title{justify-content:space-between;display:flex}ax-scheduler-timeline-day-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2290
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineDayViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerTimelineDayViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-day-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineDayViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-header\">\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-content\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n layout of resources().length === 0 ? appointmentLayouts() : getAppointmentLayoutsForResource(resourceIds()[0]);\n track layout.appointment.id\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ?? 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n layout.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-resource-container\">\n <!-- Single sticky time header for all resources (only show if not used in multi-day) -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-header ax-scheduler-timeline-header-sticky\">\n <div class=\"ax-scheduler-timeline-resource-header-placeholder\"><span>Resources</span></div>\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows -->\n <div class=\"ax-scheduler-timeline-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div class=\"ax-scheduler-timeline-resource-row\" [style.height]=\"getResourceRowHeight(resourceId)\">\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-resource-header ax-scheduler-timeline-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-resource-content\">\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (layout of getAppointmentLayoutsForResource(resourceId); track layout.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ??\n 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n layout.appointment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n [attr.data-resource-id]=\"resourceId\"\n ></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["ax-scheduler-timeline-day-view{height:100%;position:relative;display:inline-flex;flex-direction:column;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container{height:auto;display:flex;min-height:100%;overflow:visible;flex-direction:column;background-color:inherit;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky{position:sticky;top:0;z-index:10;display:flex;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky .ax-scheduler-timeline-resource-header-placeholder{left:0;z-index:15;display:flex;position:sticky;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-right:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-rows{flex:1;overflow:visible;position:relative;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row{display:flex;min-height:0;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));width:max-content;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header{display:flex;padding:.5rem;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-right:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header.ax-scheduler-timeline-resource-header-sticky{position:sticky;inset-inline-start:0;z-index:15;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header .ax-scheduler-timeline-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container{top:0;width:100%;height:100%;position:absolute}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row{height:100%;display:flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{content:\"\";position:absolute;top:0;right:0;width:1px;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface),.3)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{top:0;z-index:2;width:100%;display:flex;position:sticky;background-color:var(--ax-comp-scheduler-all-day-bg, inherit);border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours{position:relative;padding:.25rem .5rem;width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours span{position:sticky;inset-inline-start:.5rem}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{top:0;width:100%;height:100%;position:absolute}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row{height:100%;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{z-index:1;cursor:pointer}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell{z-index:0;cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-timeline-day-view ax-title{display:flex;justify-content:space-between}ax-scheduler-timeline-day-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2292
2292
  }
2293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineDayViewComponent, decorators: [{
2293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineDayViewComponent, decorators: [{
2294
2294
  type: Component,
2295
2295
  args: [{ selector: 'ax-scheduler-timeline-day-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2296
2296
  '[class.ax-state-readonly]': 'readonly()',
@@ -2303,8 +2303,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2303
2303
  AXDropZoneDirective,
2304
2304
  AXDecoratorIconComponent,
2305
2305
  AXDecoratorGenericComponent,
2306
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineDayViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-header\">\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-content\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n layout of resources().length === 0 ? appointmentLayouts() : getAppointmentLayoutsForResource(resourceIds()[0]);\n track layout.appointment.id\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ?? 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n layout.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-resource-container\">\n <!-- Single sticky time header for all resources (only show if not used in multi-day) -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-header ax-scheduler-timeline-header-sticky\">\n <div class=\"ax-scheduler-timeline-resource-header-placeholder\"><span>Resources</span></div>\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows -->\n <div class=\"ax-scheduler-timeline-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div class=\"ax-scheduler-timeline-resource-row\" [style.height]=\"getResourceRowHeight(resourceId)\">\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-resource-header ax-scheduler-timeline-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-resource-content\">\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (layout of getAppointmentLayoutsForResource(resourceId); track layout.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ??\n 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n layout.appointment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n [attr.data-resource-id]=\"resourceId\"\n ></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-day-view{background-color:inherit;flex-direction:column;height:100%;display:inline-flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container{background-color:inherit;flex-direction:column;height:auto;min-height:100%;display:flex;position:relative;overflow:visible}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex;position:sticky;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky .ax-scheduler-timeline-resource-header-placeholder{z-index:15;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-rows{background-color:inherit;flex:1;position:relative;overflow:visible}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;width:max-content;min-height:0;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header{width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header.ax-scheduler-timeline-resource-header-sticky{z-index:15;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header .ax-scheduler-timeline-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container{width:100%;height:100%;position:absolute;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row{height:100%;display:flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{inset-inline-end:calc(var(--spacing,.25rem) * 0);content:var(--tw-content);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:1px;height:100%;position:absolute;top:0}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-border-lightest-surface)) 30%,transparent)}}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{--tw-content:\"\";content:var(--tw-content)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{z-index:2;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex;position:sticky;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours span{position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 2)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{width:100%;height:100%;position:absolute;top:0}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row{height:100%;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{z-index:1;cursor:pointer}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell{z-index:0;cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-timeline-day-view ax-title{justify-content:space-between;display:flex}ax-scheduler-timeline-day-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
2307
- }], propDecorators: { readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], showResourceHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResourceHeaders", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], endDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "endDayHour", required: true }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], startDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDayHour", required: true }] }], showUnassignedAppointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUnassignedAppointments", required: false }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], resourceTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "resourceTemplate", required: false }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], currentTimeLineElement: [{ type: i0.ViewChild, args: ['currentTimeLine', { isSignal: true }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
2306
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineDayViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-header\">\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-content\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n layout of resources().length === 0 ? appointmentLayouts() : getAppointmentLayoutsForResource(resourceIds()[0]);\n track layout.appointment.id\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ?? 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n layout.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n ></div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-resource-container\">\n <!-- Single sticky time header for all resources (only show if not used in multi-day) -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-header ax-scheduler-timeline-header-sticky\">\n <div class=\"ax-scheduler-timeline-resource-header-placeholder\"><span>Resources</span></div>\n @for (hour of hoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-header-hours\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows -->\n <div class=\"ax-scheduler-timeline-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePositionWithOffset() !== null) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start]=\"getCurrentTimePositionWithOffset()\"\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div class=\"ax-scheduler-timeline-resource-row\" [style.height]=\"getResourceRowHeight(resourceId)\">\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-resource-header ax-scheduler-timeline-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-resource-content\">\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (layout of getAppointmentLayoutsForResource(resourceId); track layout.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || layout.appointment.readonly || readonly()\"\n [dragData]=\"layout.appointment\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, layout.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, layout.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, layout.appointment)\"\n [title]=\"tooltipTemplate() ? '' : layout.appointment.title\"\n [style.width]=\"layout.layoutWidth\"\n [style.height]=\"layout.layoutHeight\"\n class=\"ax-scheduler-timeline-appointment {{\n layout.appointment.cssClass ??\n 'ax-scheduler-' + (layout.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(layout.appointment.id)\"\n [style.insetBlockStart]=\"layout.layoutTop\"\n [style.insetInlineStart]=\"layout.layoutLeft\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"layout.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ layout.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, layout.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n layout.appointment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n layout.appointment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n <div class=\"ax-scheduler-timeline-slot-row\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, time, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-slot-cell\"\n (click)=\"handleSlotEvent($event, time)\"\n (dblclick)=\"handleSlotEvent($event, time)\"\n (contextmenu)=\"handleSlotEvent($event, time)\"\n [attr.data-slot-id]=\"time.format('YYYYMMDD-HHmm')\"\n [attr.data-resource-id]=\"resourceId\"\n ></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["ax-scheduler-timeline-day-view{height:100%;position:relative;display:inline-flex;flex-direction:column;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container{height:auto;display:flex;min-height:100%;overflow:visible;flex-direction:column;background-color:inherit;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky{position:sticky;top:0;z-index:10;display:flex;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-header-sticky .ax-scheduler-timeline-resource-header-placeholder{left:0;z-index:15;display:flex;position:sticky;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-right:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-rows{flex:1;overflow:visible;position:relative;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row{display:flex;min-height:0;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));width:max-content;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header{display:flex;padding:.5rem;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-right:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header.ax-scheduler-timeline-resource-header-sticky{position:sticky;inset-inline-start:0;z-index:15;background-color:inherit}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-header .ax-scheduler-timeline-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container{top:0;width:100%;height:100%;position:absolute}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row{height:100%;display:flex;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-resource-container .ax-scheduler-timeline-resource-row .ax-scheduler-timeline-resource-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{content:\"\";position:absolute;top:0;right:0;width:1px;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface),.3)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{top:0;z-index:2;width:100%;display:flex;position:sticky;background-color:var(--ax-comp-scheduler-all-day-bg, inherit);border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours{position:relative;padding:.25rem .5rem;width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view .ax-scheduler-timeline-header .ax-scheduler-timeline-header-hours span{position:sticky;inset-inline-start:.5rem}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{top:0;width:100%;height:100%;position:absolute}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row{height:100%;display:flex}ax-scheduler-timeline-day-view .ax-scheduler-timeline-content .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{z-index:1;cursor:pointer}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell{z-index:0;cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-timeline-day-view:not(.ax-state-readonly) .ax-scheduler-timeline-slot-cell:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-timeline-day-view ax-title{display:flex;justify-content:space-between}ax-scheduler-timeline-day-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-day-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"] }]
2307
+ }] });
2308
2308
 
2309
2309
  class AXSchedulerTimelineMonthViewComponent extends NXComponent {
2310
2310
  constructor() {
@@ -2405,37 +2405,37 @@ class AXSchedulerTimelineMonthViewComponent extends NXComponent {
2405
2405
  });
2406
2406
  }
2407
2407
  return spanningResult;
2408
- }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : /* istanbul ignore next */ []));
2408
+ }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : []));
2409
2409
  // Get the set of multi-day appointment IDs for exclusion from per-day rendering
2410
2410
  this.multiDayAppointmentIds = computed(() => {
2411
2411
  const spanning = this.spanningAppointments();
2412
2412
  return new Set(spanning.map((s) => s.appointment.id));
2413
- }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : /* istanbul ignore next */ []));
2413
+ }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : []));
2414
2414
  // Calculate max spanning rows for the non-resource view
2415
2415
  this.maxSpanningRows = computed(() => {
2416
2416
  const spanning = this.spanningAppointments();
2417
2417
  if (spanning.length === 0)
2418
2418
  return 0;
2419
2419
  return Math.max(...spanning.map((s) => s.rowIndex)) + 1;
2420
- }, ...(ngDevMode ? [{ debugName: "maxSpanningRows" }] : /* istanbul ignore next */ []));
2421
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
2422
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
2423
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
2424
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
2425
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
2426
- this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : /* istanbul ignore next */ []));
2427
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
2428
- this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : /* istanbul ignore next */ []));
2429
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
2430
- this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : /* istanbul ignore next */ []));
2431
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
2432
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
2433
- this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : /* istanbul ignore next */ []));
2434
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
2435
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
2436
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
2437
- this.dragStartSlotResourceId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotResourceId" }] : /* istanbul ignore next */ []));
2438
- this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : /* istanbul ignore next */ []));
2420
+ }, ...(ngDevMode ? [{ debugName: "maxSpanningRows" }] : []));
2421
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
2422
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
2423
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
2424
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
2425
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
2426
+ this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : []));
2427
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
2428
+ this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : []));
2429
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
2430
+ this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
2431
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
2432
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
2433
+ this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : []));
2434
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
2435
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
2436
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
2437
+ this.dragStartSlotResourceId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotResourceId" }] : []));
2438
+ this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : []));
2439
2439
  this.processedDayData = computed(() => {
2440
2440
  const allOriginalAppointments = this.appointments();
2441
2441
  const monthStartDate = this.date().startOf('month');
@@ -2513,7 +2513,7 @@ class AXSchedulerTimelineMonthViewComponent extends NXComponent {
2513
2513
  });
2514
2514
  }
2515
2515
  return result;
2516
- }, ...(ngDevMode ? [{ debugName: "processedDayData" }] : /* istanbul ignore next */ []));
2516
+ }, ...(ngDevMode ? [{ debugName: "processedDayData" }] : []));
2517
2517
  // Internal outputs to be caught by parent AXSchedulerComponent
2518
2518
  this.slotClickedInternal = output();
2519
2519
  this.slotDblClickedInternal = output();
@@ -2544,7 +2544,7 @@ class AXSchedulerTimelineMonthViewComponent extends NXComponent {
2544
2544
  const resources = this.resources();
2545
2545
  const showUnassigned = this.showUnassignedAppointments();
2546
2546
  return this.schedulerService.filterAppointmentsByResources(allAppointments, resources, showUnassigned);
2547
- }, ...(ngDevMode ? [{ debugName: "appointmentsByResource" }] : /* istanbul ignore next */ []));
2547
+ }, ...(ngDevMode ? [{ debugName: "appointmentsByResource" }] : []));
2548
2548
  /**
2549
2549
  * Gets all resource IDs including unassigned if applicable.
2550
2550
  */
@@ -2552,7 +2552,7 @@ class AXSchedulerTimelineMonthViewComponent extends NXComponent {
2552
2552
  const resources = this.resources();
2553
2553
  const showUnassigned = this.showUnassignedAppointments();
2554
2554
  return this.schedulerService.getAllResourceIds(resources, showUnassigned);
2555
- }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : /* istanbul ignore next */ []));
2555
+ }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : []));
2556
2556
  }
2557
2557
  // --- Multi-day Appointment Detection ---
2558
2558
  isMultiDayAppointment(appointment) {
@@ -2811,10 +2811,10 @@ class AXSchedulerTimelineMonthViewComponent extends NXComponent {
2811
2811
  // Check if current time is on the same day as this day column
2812
2812
  return now.isSame(dayDate, 'day');
2813
2813
  }
2814
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineMonthViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2815
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerTimelineMonthViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-month-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineMonthViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-month-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-month-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-month-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout with sticky resources -->\n <div class=\"ax-scheduler-timeline-month-resource-container\">\n <!-- Sticky header with resource placeholder and day headers -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-month-header-sticky\">\n <div class=\"ax-scheduler-timeline-month-resource-header-placeholder\"><span>Resources</span></div>\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-month-day-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday?.state !== 'none' ? (dayData.holiday?.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday?.state === 'holiday' && dayData.holiday?.holiday?.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows with sticky resource headers -->\n <div class=\"ax-scheduler-timeline-month-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-month-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-month-resource-header ax-scheduler-timeline-month-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-month-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-month-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-leading:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-month-view{background-color:inherit;flex-direction:column;height:100%;display:inline-flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container{height:100%;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header{background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{--tw-leading:calc(var(--spacing,.25rem) * 4);max-width:100%;line-height:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content{height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{flex-direction:column;gap:1px;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}@media(hover:hover){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container{background-color:inherit;flex-direction:column;height:100%;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex;position:sticky;top:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-resource-header-placeholder{z-index:15;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);justify-content:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header{background-color:inherit;flex:1;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));justify-content:center;gap:var(--spacing,.25rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);text-align:start;flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{--tw-leading:calc(var(--spacing,.25rem) * 4);max-width:100%;line-height:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows{background-color:inherit;flex:1;position:relative;overflow:visible}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;width:max-content;min-height:3.313rem;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header{width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header.ax-scheduler-timeline-month-resource-header-sticky{z-index:15;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header .ax-scheduler-timeline-month-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content{background-color:inherit;flex:1;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content{width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex:1;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-month-gap-height,.125rem);width:100%;height:100%;padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{height:var(--ax-comp-scheduler-timeline-month-appointment-height,3rem);border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{height:var(--ax-comp-scheduler-timeline-month-more-link-height,.5rem);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));flex-shrink:0}@media(hover:hover){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-timeline-month-view ax-title{justify-content:space-between;display:flex}ax-scheduler-timeline-month-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2814
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineMonthViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2815
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerTimelineMonthViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-month-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineMonthViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-month-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-month-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-month-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout with sticky resources -->\n <div class=\"ax-scheduler-timeline-month-resource-container\">\n <!-- Sticky header with resource placeholder and day headers -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-month-header-sticky\">\n <div class=\"ax-scheduler-timeline-month-resource-header-placeholder\"><span>Resources</span></div>\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-month-day-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday?.state !== 'none' ? (dayData.holiday?.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday?.state === 'holiday' && dayData.holiday?.holiday?.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows with sticky resource headers -->\n <div class=\"ax-scheduler-timeline-month-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-month-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-month-resource-header ax-scheduler-timeline-month-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-month-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-month-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";ax-scheduler-timeline-month-view{--ax-scheduler-timeline-spanning-row-height: 1.5rem;--ax-scheduler-timeline-spanning-gap: .125rem;height:100%;position:relative;display:inline-flex;flex-direction:column;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-wrapper{height:100%;display:flex;flex-direction:column;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer{display:grid;position:absolute;top:4rem;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;pointer-events:none;align-content:start;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 31),var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2)))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container{height:100%;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header{width:100%;display:flex;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{font-weight:500}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{font-weight:700}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{max-width:100%;position:sticky;font-weight:300;line-height:1rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content{padding:.25rem;position:relative;height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-month-gap-height, .125rem);display:flex;flex-direction:column}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);min-height:2.5rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{cursor:pointer;text-align:left;font-size:.75rem;padding:.125rem 0;margin-top:.125rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container{height:100%;display:flex;flex-direction:column;background-color:inherit;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky{position:sticky;top:0;z-index:10;display:flex;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-resource-header-placeholder{inset-inline-start:0;z-index:15;display:flex;position:sticky;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding:.5rem;font-weight:500;font-size:.875rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header{flex:1;display:flex;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{font-weight:500}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{font-weight:700}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{max-width:100%;position:sticky;font-weight:300;line-height:1rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows{flex:1;overflow:visible;position:relative;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));width:max-content;background-color:inherit;display:flex;min-height:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + var(--ax-comp-scheduler-timeline-month-row-base-height, 5rem))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header{display:flex;padding:.5rem;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));align-self:stretch}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header.ax-scheduler-timeline-month-resource-header-sticky{position:sticky;inset-inline-start:0;z-index:9;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header .ax-scheduler-timeline-month-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content{flex:1;display:flex;background-color:inherit;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer{display:grid;position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;align-content:start;pointer-events:none;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 31),var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2)))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content{display:flex;flex-direction:column;position:relative;background-color:inherit;width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);padding-bottom:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-month-gap-height, .125rem);display:flex;flex-direction:column;width:100%;padding-inline:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);flex-shrink:0;min-height:2.5rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{cursor:pointer;text-align:left;font-size:.75rem;padding:.125rem 0;margin-top:.125rem;flex-shrink:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-timeline-month-view ax-title{display:flex;justify-content:space-between}ax-scheduler-timeline-month-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2816
2816
  }
2817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineMonthViewComponent, decorators: [{
2817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineMonthViewComponent, decorators: [{
2818
2818
  type: Component,
2819
2819
  args: [{ selector: 'ax-scheduler-timeline-month-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
2820
2820
  '[class.ax-state-readonly]': 'readonly()',
@@ -2829,10 +2829,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2829
2829
  AXDropZoneDirective,
2830
2830
  AXDecoratorIconComponent,
2831
2831
  AXDecoratorGenericComponent,
2832
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineMonthViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-month-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-month-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-month-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout with sticky resources -->\n <div class=\"ax-scheduler-timeline-month-resource-container\">\n <!-- Sticky header with resource placeholder and day headers -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-month-header-sticky\">\n <div class=\"ax-scheduler-timeline-month-resource-header-placeholder\"><span>Resources</span></div>\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-month-day-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday?.state !== 'none' ? (dayData.holiday?.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday?.state === 'holiday' && dayData.holiday?.holiday?.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows with sticky resource headers -->\n <div class=\"ax-scheduler-timeline-month-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-month-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-month-resource-header ax-scheduler-timeline-month-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-month-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-month-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-leading:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-month-view{background-color:inherit;flex-direction:column;height:100%;display:inline-flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container{height:100%;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header{background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{--tw-leading:calc(var(--spacing,.25rem) * 4);max-width:100%;line-height:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content{height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{flex-direction:column;gap:1px;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}@media(hover:hover){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container{background-color:inherit;flex-direction:column;height:100%;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex;position:sticky;top:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-resource-header-placeholder{z-index:15;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);justify-content:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header{background-color:inherit;flex:1;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));justify-content:center;gap:var(--spacing,.25rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);text-align:start;flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{--tw-leading:calc(var(--spacing,.25rem) * 4);max-width:100%;line-height:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows{background-color:inherit;flex:1;position:relative;overflow:visible}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;width:max-content;min-height:3.313rem;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header{width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header.ax-scheduler-timeline-month-resource-header-sticky{z-index:15;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header .ax-scheduler-timeline-month-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content{background-color:inherit;flex:1;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content{width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width,calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex:1;display:flex;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-month-gap-height,.125rem);width:100%;height:100%;padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{height:var(--ax-comp-scheduler-timeline-month-appointment-height,3rem);border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{height:var(--ax-comp-scheduler-timeline-month-more-link-height,.5rem);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));flex-shrink:0}@media(hover:hover){ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-timeline-month-view ax-title{justify-content:space-between;display:flex}ax-scheduler-timeline-month-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
2833
- }], propDecorators: { readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], showResourceHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResourceHeaders", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], showUnassignedAppointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUnassignedAppointments", required: false }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], resourceTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "resourceTemplate", required: false }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], currentTimeLineElement: [{ type: i0.ViewChild, args: ['currentTimeLine', { isSignal: true }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
2832
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineMonthViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-month-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-month-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-month-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{ segment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n -\n {{ segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout with sticky resources -->\n <div class=\"ax-scheduler-timeline-month-resource-container\">\n <!-- Sticky header with resource placeholder and day headers -->\n @if (showResourceHeaders()) {\n <div class=\"ax-scheduler-timeline-month-header-sticky\">\n <div class=\"ax-scheduler-timeline-month-resource-header-placeholder\"><span>Resources</span></div>\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-month-day-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-month-header-date-day {{\n dayData.holiday?.state !== 'none' ? (dayData.holiday?.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-month-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday?.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (dayData.holiday?.state === 'holiday' && dayData.holiday?.holiday?.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-month-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Resource rows with sticky resource headers -->\n <div class=\"ax-scheduler-timeline-month-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-month-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (showResourceHeaders()) {\n <!-- Sticky Resource Header -->\n <div class=\"ax-scheduler-timeline-month-resource-header ax-scheduler-timeline-month-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-month-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n\n <!-- Resource Content -->\n <div class=\"ax-scheduler-timeline-month-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [class.ax-state-active]=\"isActive(segment.id)\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-month-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-month-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{\n segment.originalStartDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n -\n {{\n segment.originalEndDate\n | format: 'time' : { format: 'HH:mm', calendar: calendar() }\n | async\n }}\n }\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";ax-scheduler-timeline-month-view{--ax-scheduler-timeline-spanning-row-height: 1.5rem;--ax-scheduler-timeline-spanning-gap: .125rem;height:100%;position:relative;display:inline-flex;flex-direction:column;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-wrapper{height:100%;display:flex;flex-direction:column;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer{display:grid;position:absolute;top:4rem;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;pointer-events:none;align-content:start;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 31),var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2)))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container{height:100%;display:flex}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header{width:100%;display:flex;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{font-weight:500}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{font-weight:700}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{max-width:100%;position:sticky;font-weight:300;line-height:1rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content{padding:.25rem;position:relative;height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-month-gap-height, .125rem);display:flex;flex-direction:column}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);min-height:2.5rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{cursor:pointer;text-align:left;font-size:.75rem;padding:.125rem 0;margin-top:.125rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container{height:100%;display:flex;flex-direction:column;background-color:inherit;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky{position:sticky;top:0;z-index:10;display:flex;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-resource-header-placeholder{inset-inline-start:0;z-index:15;display:flex;position:sticky;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding:.5rem;font-weight:500;font-size:.875rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header{flex:1;display:flex;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-char{font-weight:500}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-today .ax-scheduler-month-header-date-day-num{font-weight:700}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-char{max-width:100%;position:sticky;font-weight:300;line-height:1rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-header-sticky .ax-scheduler-timeline-month-day-header .ax-scheduler-month-header-date-day .ax-scheduler-month-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows{flex:1;overflow:visible;position:relative;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));width:max-content;background-color:inherit;display:flex;min-height:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + var(--ax-comp-scheduler-timeline-month-row-base-height, 5rem))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header{display:flex;padding:.5rem;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));align-self:stretch}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header.ax-scheduler-timeline-month-resource-header-sticky{position:sticky;inset-inline-start:0;z-index:9;background-color:inherit}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-header .ax-scheduler-timeline-month-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content{flex:1;display:flex;background-color:inherit;position:relative}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer{display:grid;position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;align-content:start;pointer-events:none;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 31),var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2)))}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content{display:flex;flex-direction:column;position:relative;background-color:inherit;width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));min-width:var(--ax-comp-scheduler-timeline-month-view-blocks-width, calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);padding-bottom:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-month-gap-height, .125rem);display:flex;flex-direction:column;width:100%;padding-inline:.25rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);flex-shrink:0;min-height:2.5rem}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge{cursor:pointer;text-align:left;font-size:.75rem;padding:.125rem 0;margin-top:.125rem;flex-shrink:0}ax-scheduler-timeline-month-view .ax-scheduler-timeline-month-resource-container .ax-scheduler-timeline-month-resource-rows .ax-scheduler-timeline-month-resource-row .ax-scheduler-timeline-month-resource-content .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-month-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-timeline-month-view:not(.ax-state-readonly) .ax-scheduler-timeline-content:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-timeline-month-view ax-title{display:flex;justify-content:space-between}ax-scheduler-timeline-month-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-month-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"] }]
2833
+ }] });
2834
2834
 
2835
- // prettier-ignore
2836
2835
  class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
2837
2836
  constructor() {
2838
2837
  super(...arguments);
@@ -2840,25 +2839,25 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
2840
2839
  this.scheduler = inject(AXSchedulerComponent);
2841
2840
  this.calendarService = inject(AXCalendarService);
2842
2841
  this.schedulerService = inject(AXSchedulerService);
2843
- this.daysCount = input(7, ...(ngDevMode ? [{ debugName: "daysCount" }] : /* istanbul ignore next */ []));
2844
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
2845
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
2846
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
2847
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
2848
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
2849
- this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : /* istanbul ignore next */ []));
2850
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
2851
- this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : /* istanbul ignore next */ []));
2852
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
2853
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
2854
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
2855
- this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : /* istanbul ignore next */ []));
2856
- this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : /* istanbul ignore next */ []));
2857
- this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : /* istanbul ignore next */ []));
2858
- this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : /* istanbul ignore next */ []));
2859
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
2860
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
2861
- this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : /* istanbul ignore next */ []));
2842
+ this.daysCount = input(7, ...(ngDevMode ? [{ debugName: "daysCount" }] : []));
2843
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
2844
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
2845
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
2846
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
2847
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
2848
+ this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : []));
2849
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
2850
+ this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : []));
2851
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
2852
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
2853
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
2854
+ this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : []));
2855
+ this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : []));
2856
+ this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
2857
+ this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : []));
2858
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
2859
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
2860
+ this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : []));
2862
2861
  this.daysDataForTimelineViews = computed(() => {
2863
2862
  const allOriginalAppointments = this.appointments();
2864
2863
  const multiViewStartDate = this.date();
@@ -2885,7 +2884,7 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
2885
2884
  });
2886
2885
  }
2887
2886
  return result;
2888
- }, ...(ngDevMode ? [{ debugName: "daysDataForTimelineViews" }] : /* istanbul ignore next */ []));
2887
+ }, ...(ngDevMode ? [{ debugName: "daysDataForTimelineViews" }] : []));
2889
2888
  /**
2890
2889
  * Computes spanning appointments for multi-day events across the view.
2891
2890
  */
@@ -2990,7 +2989,7 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
2990
2989
  }
2991
2990
  }
2992
2991
  return spanningResults;
2993
- }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : /* istanbul ignore next */ []));
2992
+ }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : []));
2994
2993
  /**
2995
2994
  * Gets the set of multi-day appointment IDs to exclude from individual day views.
2996
2995
  */
@@ -3003,7 +3002,7 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
3003
3002
  }
3004
3003
  }
3005
3004
  return ids;
3006
- }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : /* istanbul ignore next */ []));
3005
+ }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : []));
3007
3006
  /**
3008
3007
  * Gets the maximum number of spanning rows across all appointments (for non-resource layouts).
3009
3008
  */
@@ -3012,7 +3011,7 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
3012
3011
  if (spanning.length === 0)
3013
3012
  return 0;
3014
3013
  return Math.max(...spanning.map((s) => s.rowIndex)) + 1;
3015
- }, ...(ngDevMode ? [{ debugName: "maxSpanningRows" }] : /* istanbul ignore next */ []));
3014
+ }, ...(ngDevMode ? [{ debugName: "maxSpanningRows" }] : []));
3016
3015
  this.slotClickedInternal = output();
3017
3016
  this.slotDblClickedInternal = output();
3018
3017
  this.slotRightClickedInternal = output();
@@ -3029,7 +3028,7 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
3029
3028
  const resources = this.resources();
3030
3029
  const showUnassigned = this.showUnassignedAppointments();
3031
3030
  return this.schedulerService.filterAppointmentsByResources(allAppointments, resources, showUnassigned);
3032
- }, ...(ngDevMode ? [{ debugName: "appointmentsByResource" }] : /* istanbul ignore next */ []));
3031
+ }, ...(ngDevMode ? [{ debugName: "appointmentsByResource" }] : []));
3033
3032
  /**
3034
3033
  * Gets all resource IDs including unassigned if applicable.
3035
3034
  */
@@ -3037,7 +3036,7 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
3037
3036
  const resources = this.resources();
3038
3037
  const showUnassigned = this.showUnassignedAppointments();
3039
3038
  return this.schedulerService.getAllResourceIds(resources, showUnassigned);
3040
- }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : /* istanbul ignore next */ []));
3039
+ }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : []));
3041
3040
  }
3042
3041
  isActive(appointmentId) {
3043
3042
  return this.selectedAppointmentId() === appointmentId;
@@ -3397,10 +3396,10 @@ class AXSchedulerTimelineWeeklyViewComponent extends NXComponent {
3397
3396
  }
3398
3397
  return { state: 'none' };
3399
3398
  }
3400
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineWeeklyViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3401
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerTimelineWeeklyViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-weekly-view", inputs: { daysCount: { classPropertyName: "daysCount", publicName: "daysCount", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineWeeklyViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-day-view-container\" [style.--spanning-rows-count]=\"maxSpanningRows()\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div\n class=\"ax-scheduler-timeline-weekly-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"resources()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"true\"\n [startDayHour]=\"startDayHour()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [appointments]=\"getFilteredAppointmentsForDay(daySlot.originalAppointmentsForThisDay)\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, undefined)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n} @else {\n <!-- Resource-based layout for weekly -->\n <div\n class=\"ax-scheduler-timeline-weekly-resource-container\"\n [style.--ax-comp-scheduler-hours-count]=\"getHoursCount()\"\n >\n <!-- Top header with day names -->\n <div class=\"ax-scheduler-timeline-weekly-top-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-resource-header-placeholder\"></div>\n <!-- Day headers -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-header\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n\n <!-- Time header with hours for each day -->\n <div class=\"ax-scheduler-timeline-weekly-time-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-time-header-placeholder\"><span>Resources</span></div>\n <!-- Time slots for each day -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-time-slots\">\n @for (hour of getHoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-time-slot\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main content area -->\n <div class=\"ax-scheduler-timeline-weekly-content\">\n <!-- Resource headers column -->\n <div class=\"ax-scheduler-timeline-weekly-resource-headers\">\n <!-- Resource headers -->\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-header\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n </div>\n\n <!-- Days columns -->\n <div class=\"ax-scheduler-timeline-weekly-days-container\" #daysContainer>\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime(); let dayIndex = $index) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <!-- Current Time Line Indicator for this day -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(daySlot.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <!-- Resource rows for this day -->\n <div class=\"ax-scheduler-timeline-weekly-resource-rows\">\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-row\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <!-- Spanning layer for this resource (only on first day column) -->\n @if (dayIndex === 0 && getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"\n resourceId === 'unassigned' ? [] : [{ id: resourceId, title: getResourceTitle(resourceId) }]\n \"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"false\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"false\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showUnassignedAppointments]=\"resourceId === 'unassigned'\"\n [appointments]=\"\n getFilteredAppointmentsForDay(\n getAppointmentsForResourceAndDay(resourceId, daySlot.originalAppointmentsForThisDay)\n )\n \"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, resourceId)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-weekly-view{background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container{background-color:inherit;flex-direction:row;height:100%;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day{height:calc(var(--spacing,.25rem) * 16);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-light,300);max-width:100%;font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-weekly-view ax-scheduler-timeline-day-view{height:calc(100% - 4rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container{background-color:inherit;flex-direction:column;height:100%;display:flex;overflow:auto}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:row;min-width:max-content;display:flex;position:sticky;top:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-resource-header-placeholder{z-index:15;height:calc(var(--spacing,.25rem) * 4);width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day{height:calc(var(--spacing,.25rem) * 16);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width,8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{max-width:100%;font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width,8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header{top:calc(var(--spacing,.25rem) * 16);z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:row;min-width:max-content;display:flex;position:sticky}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-time-header-placeholder{z-index:15;height:calc(var(--spacing,.25rem) * 8);width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:row;flex-shrink:0;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot{width:var(--ax-comp-scheduler-timeline-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);flex-shrink:0;align-items:center;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot span{z-index:5;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);position:sticky;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width,8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content{background-color:inherit;flex-direction:row;flex:1;width:fit-content;min-height:0;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers{z-index:15;height:fit-content;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:column;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header .ax-scheduler-timeline-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container{flex-direction:row;flex:1;min-width:max-content;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-direction:column;flex-shrink:0;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows{flex-direction:column;flex:1;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row{min-height:var(--ax-comp-scheduler-basic-view-blocks-height);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view{width:100%;height:100%;display:block}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{display:none}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container{width:100%;height:100%;position:absolute;top:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row{width:max-content;height:100%;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{background-color:rgba(var(--ax-sys-color-border-lightest-surface));inset-inline-end:calc(var(--spacing,.25rem) * 0);width:1px;height:100%;top:0}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-border-lightest-surface)) 30%,transparent)}}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{--tw-content:\"\";content:var(--tw-content)}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSchedulerTimelineDayViewComponent, selector: "ax-scheduler-timeline-day-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "endDayHour", "selectedAppointmentId", "startDayHour", "showUnassignedAppointments", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3399
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineWeeklyViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerTimelineWeeklyViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-weekly-view", inputs: { daysCount: { classPropertyName: "daysCount", publicName: "daysCount", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineWeeklyViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-day-view-container\" [style.--spanning-rows-count]=\"maxSpanningRows()\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div\n class=\"ax-scheduler-timeline-weekly-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"resources()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"true\"\n [startDayHour]=\"startDayHour()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [appointments]=\"getFilteredAppointmentsForDay(daySlot.originalAppointmentsForThisDay)\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, undefined)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n} @else {\n <!-- Resource-based layout for weekly -->\n <div\n class=\"ax-scheduler-timeline-weekly-resource-container\"\n [style.--ax-comp-scheduler-hours-count]=\"getHoursCount()\"\n >\n <!-- Top header with day names -->\n <div class=\"ax-scheduler-timeline-weekly-top-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-resource-header-placeholder\"></div>\n <!-- Day headers -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-header\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n\n <!-- Time header with hours for each day -->\n <div class=\"ax-scheduler-timeline-weekly-time-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-time-header-placeholder\"><span>Resources</span></div>\n <!-- Time slots for each day -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-time-slots\">\n @for (hour of getHoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-time-slot\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main content area -->\n <div class=\"ax-scheduler-timeline-weekly-content\">\n <!-- Resource headers column -->\n <div class=\"ax-scheduler-timeline-weekly-resource-headers\">\n <!-- Resource headers -->\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-header\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n </div>\n\n <!-- Days columns -->\n <div class=\"ax-scheduler-timeline-weekly-days-container\" #daysContainer>\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime(); let dayIndex = $index) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <!-- Current Time Line Indicator for this day -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(daySlot.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <!-- Resource rows for this day -->\n <div class=\"ax-scheduler-timeline-weekly-resource-rows\">\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-row\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <!-- Spanning layer for this resource (only on first day column) -->\n @if (dayIndex === 0 && getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"\n resourceId === 'unassigned' ? [] : [{ id: resourceId, title: getResourceTitle(resourceId) }]\n \"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"false\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"false\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showUnassignedAppointments]=\"resourceId === 'unassigned'\"\n [appointments]=\"\n getFilteredAppointmentsForDay(\n getAppointmentsForResourceAndDay(resourceId, daySlot.originalAppointmentsForThisDay)\n )\n \"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, resourceId)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";ax-scheduler-timeline-weekly-view{--ax-scheduler-timeline-spanning-row-height: 1.5rem;--ax-scheduler-timeline-spanning-gap: .125rem;background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container{height:100%;display:flex;flex-direction:row;background-color:inherit;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer{display:grid;position:absolute;top:4rem;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;pointer-events:none;align-content:start;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 7),calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16)))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{font-weight:500}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{font-weight:700}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;position:sticky;font-weight:300;inset-inline-start:1rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container ax-scheduler-timeline-day-view{height:calc(100% - 4rem - var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) - .5rem);margin-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .5rem)}ax-scheduler-timeline-weekly-view ax-scheduler-timeline-day-view{height:calc(100% - 4rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container{height:100%;display:flex;overflow:auto;flex-direction:column;background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:row;min-width:max-content;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-resource-header-placeholder{width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);height:4rem;display:flex;align-items:center;justify-content:center;background-color:inherit;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:sticky;inset-inline-start:0;z-index:15}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{font-weight:500}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{font-weight:700}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;font-weight:300;position:sticky;font-size:.75rem;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width, 8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-weight:500;position:sticky;font-size:1.25rem;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width, 8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header{top:4rem;z-index:10;display:flex;position:sticky;flex-direction:row;min-width:max-content;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-time-header-placeholder{z-index:15;height:2rem;display:flex;position:sticky;align-items:center;inset-inline-start:0;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));height:2rem;display:flex;flex-direction:row;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0;background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot{display:flex;flex-shrink:0;position:relative;align-items:center;padding-inline:1rem;width:var(--ax-comp-scheduler-timeline-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot span{z-index:5;font-weight:400;position:sticky;font-size:.75rem;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width, 8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content{flex:1;display:flex;min-height:0;width:fit-content;flex-direction:row;background-color:inherit;align-items:stretch}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers{z-index:15;display:flex;position:sticky;inset-inline-start:0;flex-direction:column;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header{display:flex;align-items:center;justify-content:center;padding:.5rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));box-sizing:border-box}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header .ax-scheduler-timeline-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container{flex:1;display:flex;flex-direction:row;min-width:max-content}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));display:flex;flex-direction:column;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows{flex:1;display:flex;flex-direction:column}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative;box-sizing:border-box}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer{display:grid;position:absolute;top:0;inset-inline-start:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;align-content:start;pointer-events:none;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);width:calc(var(--timeline-days-count, 7) * var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));grid-template-columns:repeat(var(--timeline-days-count, 7),calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16)))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view{height:100%;width:100%;display:block}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{display:none}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container{width:100%;position:absolute;top:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);height:calc(100% - var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) - .25rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row{height:100%;display:flex;position:relative;width:max-content;padding-top:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);box-sizing:border-box}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative;flex-shrink:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{content:\"\";position:absolute;top:0;inset-inline-end:0;width:1px;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface),.3)}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSchedulerTimelineDayViewComponent, selector: "ax-scheduler-timeline-day-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "endDayHour", "selectedAppointmentId", "startDayHour", "showUnassignedAppointments", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3402
3401
  }
3403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineWeeklyViewComponent, decorators: [{
3402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineWeeklyViewComponent, decorators: [{
3404
3403
  type: Component,
3405
3404
  args: [{ selector: 'ax-scheduler-timeline-weekly-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3406
3405
  '[class.ax-state-readonly]': 'readonly()',
@@ -3412,8 +3411,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
3412
3411
  AXTooltipDirective,
3413
3412
  AXDecoratorIconComponent,
3414
3413
  AXSchedulerTimelineDayViewComponent,
3415
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineWeeklyViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-day-view-container\" [style.--spanning-rows-count]=\"maxSpanningRows()\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div\n class=\"ax-scheduler-timeline-weekly-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"resources()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"true\"\n [startDayHour]=\"startDayHour()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [appointments]=\"getFilteredAppointmentsForDay(daySlot.originalAppointmentsForThisDay)\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, undefined)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n} @else {\n <!-- Resource-based layout for weekly -->\n <div\n class=\"ax-scheduler-timeline-weekly-resource-container\"\n [style.--ax-comp-scheduler-hours-count]=\"getHoursCount()\"\n >\n <!-- Top header with day names -->\n <div class=\"ax-scheduler-timeline-weekly-top-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-resource-header-placeholder\"></div>\n <!-- Day headers -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-header\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n\n <!-- Time header with hours for each day -->\n <div class=\"ax-scheduler-timeline-weekly-time-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-time-header-placeholder\"><span>Resources</span></div>\n <!-- Time slots for each day -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-time-slots\">\n @for (hour of getHoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-time-slot\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main content area -->\n <div class=\"ax-scheduler-timeline-weekly-content\">\n <!-- Resource headers column -->\n <div class=\"ax-scheduler-timeline-weekly-resource-headers\">\n <!-- Resource headers -->\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-header\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n </div>\n\n <!-- Days columns -->\n <div class=\"ax-scheduler-timeline-weekly-days-container\" #daysContainer>\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime(); let dayIndex = $index) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <!-- Current Time Line Indicator for this day -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(daySlot.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <!-- Resource rows for this day -->\n <div class=\"ax-scheduler-timeline-weekly-resource-rows\">\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-row\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <!-- Spanning layer for this resource (only on first day column) -->\n @if (dayIndex === 0 && getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"\n resourceId === 'unassigned' ? [] : [{ id: resourceId, title: getResourceTitle(resourceId) }]\n \"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"false\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"false\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showUnassignedAppointments]=\"resourceId === 'unassigned'\"\n [appointments]=\"\n getFilteredAppointmentsForDay(\n getAppointmentsForResourceAndDay(resourceId, daySlot.originalAppointmentsForThisDay)\n )\n \"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, resourceId)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-weekly-view{background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container{background-color:inherit;flex-direction:row;height:100%;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day{height:calc(var(--spacing,.25rem) * 16);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-light,300);max-width:100%;font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-weekly-view ax-scheduler-timeline-day-view{height:calc(100% - 4rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container{background-color:inherit;flex-direction:column;height:100%;display:flex;overflow:auto}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:row;min-width:max-content;display:flex;position:sticky;top:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-resource-header-placeholder{z-index:15;height:calc(var(--spacing,.25rem) * 4);width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day{height:calc(var(--spacing,.25rem) * 16);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width,8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{max-width:100%;font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width,8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header{top:calc(var(--spacing,.25rem) * 16);z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:row;min-width:max-content;display:flex;position:sticky}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-time-header-placeholder{z-index:15;height:calc(var(--spacing,.25rem) * 8);width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots{height:calc(var(--spacing,.25rem) * 8);width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:row;flex-shrink:0;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot{width:var(--ax-comp-scheduler-timeline-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);flex-shrink:0;align-items:center;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot span{z-index:5;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);position:sticky;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width,8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content{background-color:inherit;flex-direction:row;flex:1;width:fit-content;min-height:0;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers{z-index:15;height:fit-content;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex-direction:column;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header .ax-scheduler-timeline-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container{flex-direction:row;flex:1;min-width:max-content;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count,16));border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-direction:column;flex-shrink:0;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows{flex-direction:column;flex:1;display:flex}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row{min-height:var(--ax-comp-scheduler-basic-view-blocks-height);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view{width:100%;height:100%;display:block}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{display:none}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container{width:100%;height:100%;position:absolute;top:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0);overflow:hidden}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row{width:max-content;height:100%;display:flex;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{background-color:rgba(var(--ax-sys-color-border-lightest-surface));inset-inline-end:calc(var(--spacing,.25rem) * 0);width:1px;height:100%;top:0}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-border-lightest-surface)) 30%,transparent)}}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{--tw-content:\"\";content:var(--tw-content)}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
3416
- }], propDecorators: { daysCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "daysCount", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], showResourceHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResourceHeaders", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], endDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "endDayHour", required: true }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], startDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDayHour", required: true }] }], showUnassignedAppointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUnassignedAppointments", required: false }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], resourceTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "resourceTemplate", required: false }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], currentTimeLineElement: [{ type: i0.ViewChild, args: ['currentTimeLine', { isSignal: true }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
3414
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineWeeklyViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-day-view-container\" [style.--spanning-rows-count]=\"maxSpanningRows()\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div\n class=\"ax-scheduler-timeline-weekly-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"resources()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"true\"\n [startDayHour]=\"startDayHour()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [appointments]=\"getFilteredAppointmentsForDay(daySlot.originalAppointmentsForThisDay)\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, undefined)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n} @else {\n <!-- Resource-based layout for weekly -->\n <div\n class=\"ax-scheduler-timeline-weekly-resource-container\"\n [style.--ax-comp-scheduler-hours-count]=\"getHoursCount()\"\n >\n <!-- Top header with day names -->\n <div class=\"ax-scheduler-timeline-weekly-top-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-resource-header-placeholder\"></div>\n <!-- Day headers -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-header\">\n <div\n [class.ax-state-today]=\"isToday(daySlot.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n daySlot.holiday.state !== 'none' ? (daySlot.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"daySlot.holiday.holiday?.title ?? ''\"\n >\n {{ daySlot.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (daySlot.holiday.state === 'holiday' && daySlot.holiday.holiday.title) {\n ( {{ daySlot.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ daySlot.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n\n <!-- Time header with hours for each day -->\n <div class=\"ax-scheduler-timeline-weekly-time-header\">\n <!-- Resource placeholder -->\n <div class=\"ax-scheduler-timeline-weekly-time-header-placeholder\"><span>Resources</span></div>\n <!-- Time slots for each day -->\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-day-time-slots\">\n @for (hour of getHoursArray(); track hour.date.getTime()) {\n <div class=\"ax-scheduler-timeline-weekly-time-slot\">\n <span>{{ hour | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}</span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main content area -->\n <div class=\"ax-scheduler-timeline-weekly-content\">\n <!-- Resource headers column -->\n <div class=\"ax-scheduler-timeline-weekly-resource-headers\">\n <!-- Resource headers -->\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-header\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <span class=\"ax-scheduler-timeline-resource-title\">{{ getResourceTitle(resourceId) }}</span>\n }\n </div>\n }\n </div>\n\n <!-- Days columns -->\n <div class=\"ax-scheduler-timeline-weekly-days-container\" #daysContainer>\n @for (daySlot of daysDataForTimelineViews(); track daySlot.date.date.getTime(); let dayIndex = $index) {\n <div class=\"ax-scheduler-timeline-weekly-column\">\n <!-- Current Time Line Indicator for this day -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(daySlot.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <!-- Resource rows for this day -->\n <div class=\"ax-scheduler-timeline-weekly-resource-rows\">\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-weekly-resource-row\"\n [style.height]=\"getResourceRowHeight(resourceId)\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <!-- Spanning layer for this resource (only on first day column) -->\n @if (dayIndex === 0 && getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"daysDataForTimelineViews().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (click)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleSpanningAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleSpanningActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <ax-scheduler-timeline-day-view\n [date]=\"daySlot.date\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [resources]=\"\n resourceId === 'unassigned' ? [] : [{ id: resourceId, title: getResourceTitle(resourceId) }]\n \"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [showResourceHeaders]=\"false\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"false\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [showUnassignedAppointments]=\"resourceId === 'unassigned'\"\n [appointments]=\"\n getFilteredAppointmentsForDay(\n getAppointmentsForResourceAndDay(resourceId, daySlot.originalAppointmentsForThisDay)\n )\n \"\n (onActionClickInternal)=\"onActionClickInternal.emit($event)\"\n (slotClickedInternal)=\"slotClickedInternal.emit($event)\"\n (slotDblClickedInternal)=\"slotDblClickedInternal.emit($event)\"\n (slotRightClickedInternal)=\"slotRightClickedInternal.emit($event)\"\n (onAppointmentDropInternal)=\"handleDrop($event, resourceId)\"\n (appointmentClickedInternal)=\"appointmentClickedInternal.emit($event)\"\n (appointmentDblClickedInternal)=\"appointmentDblClickedInternal.emit($event)\"\n (appointmentRightClickedInternal)=\"appointmentRightClickedInternal.emit($event)\"\n >\n </ax-scheduler-timeline-day-view>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";ax-scheduler-timeline-weekly-view{--ax-scheduler-timeline-spanning-row-height: 1.5rem;--ax-scheduler-timeline-spanning-gap: .125rem;background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container{height:100%;display:flex;flex-direction:row;background-color:inherit;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer{display:grid;position:absolute;top:4rem;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;pointer-events:none;align-content:start;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 7),calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16)))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-timeline-weekly-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{font-weight:500}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{font-weight:700}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;position:sticky;font-weight:300;inset-inline-start:1rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-day-view-container ax-scheduler-timeline-day-view{height:calc(100% - 4rem - var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) - .5rem);margin-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .5rem)}ax-scheduler-timeline-weekly-view ax-scheduler-timeline-day-view{height:calc(100% - 4rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container{height:100%;display:flex;overflow:auto;flex-direction:column;background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:row;min-width:max-content;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-resource-header-placeholder{width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);height:4rem;display:flex;align-items:center;justify-content:center;background-color:inherit;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:sticky;inset-inline-start:0;z-index:15}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{font-weight:500}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{font-weight:700}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;font-weight:300;position:sticky;font-size:.75rem;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width, 8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-top-header .ax-scheduler-timeline-weekly-day-header .ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-weight:500;position:sticky;font-size:1.25rem;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width, 8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header{top:4rem;z-index:10;display:flex;position:sticky;flex-direction:row;min-width:max-content;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-time-header-placeholder{z-index:15;height:2rem;display:flex;position:sticky;align-items:center;inset-inline-start:0;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));height:2rem;display:flex;flex-direction:row;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0;background-color:inherit}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot{display:flex;flex-shrink:0;position:relative;align-items:center;padding-inline:1rem;width:var(--ax-comp-scheduler-timeline-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-time-header .ax-scheduler-timeline-weekly-day-time-slots .ax-scheduler-timeline-weekly-time-slot span{z-index:5;font-weight:400;position:sticky;font-size:.75rem;inset-inline-start:calc(var(--ax-comp-scheduler-resource-header-width, 8rem) + 1rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content{flex:1;display:flex;min-height:0;width:fit-content;flex-direction:row;background-color:inherit;align-items:stretch}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers{z-index:15;display:flex;position:sticky;inset-inline-start:0;flex-direction:column;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header{display:flex;align-items:center;justify-content:center;padding:.5rem;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));box-sizing:border-box}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-resource-headers .ax-scheduler-timeline-weekly-resource-header .ax-scheduler-timeline-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container{flex:1;display:flex;flex-direction:row;min-width:max-content}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column{width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));min-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));display:flex;flex-direction:column;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-shrink:0;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows{flex:1;display:flex;flex-direction:column}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative;box-sizing:border-box}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer{display:grid;position:absolute;top:0;inset-inline-start:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;align-content:start;pointer-events:none;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);width:calc(var(--timeline-days-count, 7) * var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16));grid-template-columns:repeat(var(--timeline-days-count, 7),calc(var(--ax-comp-scheduler-timeline-view-blocks-width) * var(--ax-comp-scheduler-hours-count, 16)))}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view{height:100%;width:100%;display:block}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-header{display:none}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-content{height:100%;position:relative}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container{width:100%;position:absolute;top:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);height:calc(100% - var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) - .25rem)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;display:flex;overflow:hidden;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row{height:100%;display:flex;position:relative;width:max-content;padding-top:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);box-sizing:border-box}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell{width:var(--ax-comp-scheduler-timeline-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative;flex-shrink:0}ax-scheduler-timeline-weekly-view .ax-scheduler-timeline-weekly-resource-container .ax-scheduler-timeline-weekly-content .ax-scheduler-timeline-weekly-days-container .ax-scheduler-timeline-weekly-column .ax-scheduler-timeline-weekly-resource-rows .ax-scheduler-timeline-weekly-resource-row ax-scheduler-timeline-day-view .ax-scheduler-timeline-slot-row .ax-scheduler-timeline-slot-cell:after{content:\"\";position:absolute;top:0;inset-inline-end:0;width:1px;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface),.3)}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-weekly-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"] }]
3415
+ }] });
3417
3416
 
3418
3417
  class AXSchedulerTimelineYearViewComponent extends NXComponent {
3419
3418
  constructor() {
@@ -3514,41 +3513,41 @@ class AXSchedulerTimelineYearViewComponent extends NXComponent {
3514
3513
  });
3515
3514
  }
3516
3515
  return spanningResult;
3517
- }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : /* istanbul ignore next */ []));
3516
+ }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : []));
3518
3517
  // Get the set of multi-day appointment IDs for exclusion from per-day rendering
3519
3518
  this.multiDayAppointmentIds = computed(() => {
3520
3519
  const spanning = this.spanningAppointments();
3521
3520
  return new Set(spanning.map((s) => s.appointment.id));
3522
- }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : /* istanbul ignore next */ []));
3521
+ }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : []));
3523
3522
  // Calculate max spanning rows for the non-resource view
3524
3523
  this.maxSpanningRows = computed(() => {
3525
3524
  const spanning = this.spanningAppointments();
3526
3525
  if (spanning.length === 0)
3527
3526
  return 0;
3528
3527
  return Math.max(...spanning.map((s) => s.rowIndex)) + 1;
3529
- }, ...(ngDevMode ? [{ debugName: "maxSpanningRows" }] : /* istanbul ignore next */ []));
3530
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
3531
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
3532
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
3533
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
3534
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
3535
- this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : /* istanbul ignore next */ []));
3536
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
3537
- this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : /* istanbul ignore next */ []));
3538
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
3539
- this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : /* istanbul ignore next */ []));
3540
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
3541
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
3542
- this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : /* istanbul ignore next */ []));
3543
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
3544
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
3545
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
3546
- this.dragStartSlotResourceId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotResourceId" }] : /* istanbul ignore next */ []));
3547
- this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : /* istanbul ignore next */ []));
3528
+ }, ...(ngDevMode ? [{ debugName: "maxSpanningRows" }] : []));
3529
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
3530
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
3531
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
3532
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
3533
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
3534
+ this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : []));
3535
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
3536
+ this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : []));
3537
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
3538
+ this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
3539
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
3540
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
3541
+ this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : []));
3542
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
3543
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
3544
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
3545
+ this.dragStartSlotResourceId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotResourceId" }] : []));
3546
+ this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : []));
3548
3547
  // Performance optimization: reduce drag start delay for year view
3549
3548
  this.optimizedDragStartDelay = computed(() => {
3550
3549
  return this.dragStartDelay() > 0 ? Math.min(this.dragStartDelay(), 50) : 0;
3551
- }, ...(ngDevMode ? [{ debugName: "optimizedDragStartDelay" }] : /* istanbul ignore next */ []));
3550
+ }, ...(ngDevMode ? [{ debugName: "optimizedDragStartDelay" }] : []));
3552
3551
  this.processedDayData = computed(() => {
3553
3552
  const allOriginalAppointments = this.appointments();
3554
3553
  const yearStartDate = this.date().startOf('year');
@@ -3632,13 +3631,13 @@ class AXSchedulerTimelineYearViewComponent extends NXComponent {
3632
3631
  });
3633
3632
  }
3634
3633
  return result;
3635
- }, ...(ngDevMode ? [{ debugName: "processedDayData" }] : /* istanbul ignore next */ []));
3634
+ }, ...(ngDevMode ? [{ debugName: "processedDayData" }] : []));
3636
3635
  this.resourceIds = computed(() => {
3637
3636
  const resources = this.resources();
3638
3637
  if (resources.length === 0)
3639
3638
  return [];
3640
3639
  return this.schedulerService.getAllResourceIds(resources, this.showUnassignedAppointments());
3641
- }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : /* istanbul ignore next */ []));
3640
+ }, ...(ngDevMode ? [{ debugName: "resourceIds" }] : []));
3642
3641
  // Internal outputs to be caught by parent AXSchedulerComponent
3643
3642
  this.slotClickedInternal = output();
3644
3643
  this.slotDblClickedInternal = output();
@@ -3845,10 +3844,10 @@ class AXSchedulerTimelineYearViewComponent extends NXComponent {
3845
3844
  this.dragStartSlotId.set(dropListElement ? dropListElement.dataset['slotId'] : null);
3846
3845
  this.dragStartSlotResourceId.set(dropListElement ? dropListElement.dataset['resourceId'] : null);
3847
3846
  }
3848
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineYearViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3849
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerTimelineYearViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-year-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineYearViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-year-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-year-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-year-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-year-resource-container\">\n <div class=\"ax-scheduler-timeline-year-header-sticky\">\n <div class=\"ax-scheduler-timeline-year-resource-header-placeholder\">\n <span>Resources</span>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-day-header\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-year-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-year-resource-header ax-scheduler-timeline-year-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <div class=\"ax-scheduler-timeline-year-resource-title\">\n {{ getResourceTitle(resourceId) | translate | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-year-slot-row\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n @if (!segment.allDay) {\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (\n !segment.allDay &&\n segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()\n ) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-leading:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-year-view{background-color:inherit;--ax-comp-scheduler-timeline-year-view-blocks-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2);height:100%;display:inline-flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container{--tw-translate-z:0;height:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);will-change:transform;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header{background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content{height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{flex-direction:column;gap:1px;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{--tw-translate-z:0;width:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);gap:calc(var(--spacing,.25rem) * .5);border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);will-change:transform;flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:var(--spacing,.25rem);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}@media(hover:hover){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container{--tw-translate-z:0;height:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);background-color:inherit;will-change:transform;flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex;position:sticky;top:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-resource-header-placeholder{z-index:15;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header{background-color:inherit;flex:1;display:flex;overflow-x:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows{background-color:inherit;flex:1;position:relative;overflow:visible}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;width:max-content;min-height:auto;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header{min-height:2.625rem;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header.ax-scheduler-timeline-year-resource-header-sticky{z-index:9;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header .ax-scheduler-timeline-year-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content{background-color:inherit;flex:1;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row{width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex:1;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-year-gap-height,.125rem);width:100%;min-height:100%;padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex;overflow:visible}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container ax-popover{display:none}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{--tw-translate-z:0;width:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);gap:calc(var(--spacing,.25rem) * .5);border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);will-change:transform;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));flex-shrink:0}@media(hover:hover){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){:is(ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row):hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-timeline-year-view ax-title{justify-content:space-between;display:flex}ax-scheduler-timeline-year-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:100%}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment{margin-bottom:var(--spacing,.25rem);border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment:last-child{margin-bottom:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment .ax-appointment-chip-title{margin-bottom:calc(var(--spacing,.25rem) * .5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3847
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineYearViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3848
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerTimelineYearViewComponent, isStandalone: true, selector: "ax-scheduler-timeline-year-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineYearViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-year-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-year-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-year-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-year-resource-container\">\n <div class=\"ax-scheduler-timeline-year-header-sticky\">\n <div class=\"ax-scheduler-timeline-year-resource-header-placeholder\">\n <span>Resources</span>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-day-header\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-year-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-year-resource-header ax-scheduler-timeline-year-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <div class=\"ax-scheduler-timeline-year-resource-title\">\n {{ getResourceTitle(resourceId) | translate | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-year-slot-row\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n @if (!segment.allDay) {\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (\n !segment.allDay &&\n segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()\n ) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";ax-scheduler-timeline-year-view{--ax-scheduler-timeline-spanning-row-height: 1.5rem;--ax-scheduler-timeline-spanning-gap: .125rem;height:100%;position:relative;display:inline-flex;flex-direction:column;background-color:inherit;--ax-comp-scheduler-timeline-year-view-blocks-width: calc( var(--ax-comp-scheduler-timeline-view-blocks-width) / 2 )}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-wrapper{height:100%;display:flex;flex-direction:column;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer{display:grid;position:absolute;top:4rem;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;pointer-events:none;align-content:start;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 365),var(--ax-comp-scheduler-timeline-year-view-blocks-width))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.7rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container{height:100%;display:flex;will-change:transform;transform:translateZ(0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header{width:100%;display:flex;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{font-weight:500}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{font-weight:700}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;position:sticky;font-weight:300;font-size:.75rem;line-height:.875rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content{padding:.125rem .25rem;position:relative;height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:1px;display:flex;flex-direction:column}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;gap:.125rem;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);font-size:.75rem;line-height:.875rem;will-change:transform;transform:translateZ(0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{font-weight:600}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{cursor:pointer;text-align:left;font-size:.7rem;padding:.125rem 0;margin-top:.125rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container{height:100%;display:flex;flex-direction:column;background-color:inherit;will-change:transform;transform:translateZ(0);position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky{position:sticky;top:0;z-index:10;display:flex;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-resource-header-placeholder{inset-inline-start:0;z-index:15;display:flex;position:sticky;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding:.5rem;font-weight:500;font-size:.875rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header{flex:1;display:flex;background-color:inherit;overflow-x:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{font-weight:500}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{font-weight:700}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;position:sticky;font-weight:300;font-size:.75rem;line-height:.875rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows{flex:1;overflow:visible;position:relative;background-color:inherit}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));width:max-content;background-color:inherit;display:flex;min-height:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + var(--ax-comp-scheduler-timeline-year-row-base-height, 4rem))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header{display:flex;padding:.5rem;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));align-self:stretch}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header.ax-scheduler-timeline-year-resource-header-sticky{position:sticky;inset-inline-start:0;z-index:9;background-color:inherit}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header .ax-scheduler-timeline-year-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content{flex:1;display:flex;background-color:inherit;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer{display:grid;position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;align-content:start;pointer-events:none;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 365),var(--ax-comp-scheduler-timeline-year-view-blocks-width))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.7rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row{display:flex;flex-direction:column;position:relative;background-color:inherit;width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);padding-bottom:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-year-gap-height, .125rem);display:flex;flex-direction:column;width:100%;padding-inline:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container ax-popover{display:none}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;gap:.125rem;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);flex-shrink:0;font-size:.75rem;line-height:.875rem;min-height:2rem;will-change:transform;transform:translateZ(0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{font-weight:500}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{cursor:pointer;text-align:left;font-size:.7rem;padding:.125rem 0;margin-top:.125rem;flex-shrink:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content:hover,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-timeline-year-view ax-title{display:flex;justify-content:space-between}ax-scheduler-timeline-year-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment{font-size:.75rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);margin-bottom:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment:last-child{margin-bottom:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment .ax-appointment-chip-title{font-size:.8rem;margin-bottom:.125rem;font-weight:600}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3850
3849
  }
3851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerTimelineYearViewComponent, decorators: [{
3850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerTimelineYearViewComponent, decorators: [{
3852
3851
  type: Component,
3853
3852
  args: [{ selector: 'ax-scheduler-timeline-year-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3854
3853
  '[class.ax-state-readonly]': 'readonly()',
@@ -3863,8 +3862,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
3863
3862
  AXDropZoneDirective,
3864
3863
  AXDecoratorIconComponent,
3865
3864
  AXDecoratorGenericComponent,
3866
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineYearViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-year-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-year-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-year-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-year-resource-container\">\n <div class=\"ax-scheduler-timeline-year-header-sticky\">\n <div class=\"ax-scheduler-timeline-year-resource-header-placeholder\">\n <span>Resources</span>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-day-header\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-year-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-year-resource-header ax-scheduler-timeline-year-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <div class=\"ax-scheduler-timeline-year-resource-title\">\n {{ getResourceTitle(resourceId) | translate | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-year-slot-row\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n @if (!segment.allDay) {\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (\n !segment.allDay &&\n segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()\n ) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-leading:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-timeline-year-view{background-color:inherit;--ax-comp-scheduler-timeline-year-view-blocks-width:calc(var(--ax-comp-scheduler-timeline-view-blocks-width) / 2);height:100%;display:inline-flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container{--tw-translate-z:0;height:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);will-change:transform;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header{background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content{height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{flex-direction:column;gap:1px;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{--tw-translate-z:0;width:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);gap:calc(var(--spacing,.25rem) * .5);border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);will-change:transform;flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:var(--spacing,.25rem);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}@media(hover:hover){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container{--tw-translate-z:0;height:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);background-color:inherit;will-change:transform;flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky{z-index:10;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex;position:sticky;top:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-resource-header-placeholder{z-index:15;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);justify-content:center;align-items:center;display:flex;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header{background-color:inherit;flex:1;display:flex;overflow-x:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day{height:calc(var(--spacing,.25rem) * 16);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);justify-content:center;align-items:flex-start;gap:var(--spacing,.25rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);--tw-font-weight:var(--font-weight-light,300);font-weight:var(--font-weight-light,300);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 4)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows{background-color:inherit;flex:1;position:relative;overflow:visible}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;width:max-content;min-height:auto;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header{min-height:2.625rem;width:var(--ax-comp-scheduler-resource-header-width,8rem);min-width:var(--ax-comp-scheduler-resource-header-width,8rem);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;padding:calc(var(--spacing,.25rem) * 2);justify-content:center;align-items:center;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header.ax-scheduler-timeline-year-resource-header-sticky{z-index:9;background-color:inherit;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header .ax-scheduler-timeline-year-resource-title{text-align:center;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow-wrap:break-word}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content{background-color:inherit;flex:1;display:flex}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row{width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;flex:1;display:flex;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-year-gap-height,.125rem);width:100%;min-height:100%;padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);flex-direction:column;display:flex;overflow:visible}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container ax-popover{display:none}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{--tw-translate-z:0;width:100%;translate:var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z);gap:calc(var(--spacing,.25rem) * .5);border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 3.5);line-height:calc(var(--spacing,.25rem) * 3.5);will-change:transform;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{margin-top:calc(var(--spacing,.25rem) * .5);cursor:pointer;padding-inline:0;padding-block:calc(var(--spacing,.25rem) * .5);text-align:start;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));flex-shrink:0}@media(hover:hover){ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration-line:underline}}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){:is(ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row):hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-timeline-year-view ax-title{justify-content:space-between;display:flex}ax-scheduler-timeline-year-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:100%}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment{margin-bottom:var(--spacing,.25rem);border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;overflow:hidden}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment:last-child{margin-bottom:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment .ax-appointment-chip-title{margin-bottom:calc(var(--spacing,.25rem) * .5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line{width:calc(var(--spacing,.25rem) * .5);top:0;bottom:0}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
3867
- }], propDecorators: { readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], showResourceHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResourceHeaders", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], showUnassignedAppointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUnassignedAppointments", required: false }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], resourceTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "resourceTemplate", required: false }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], currentTimeLineElement: [{ type: i0.ViewChild, args: ['currentTimeLine', { isSignal: true }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
3865
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerTimelineYearViewComponent }], template: "@if (resources().length === 0 || !showResourceHeaders()) {\n <!-- Original layout when no resources -->\n <div class=\"ax-scheduler-timeline-year-wrapper\">\n <!-- Spanning appointments layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-timeline-year-spanning-layer\" [style.--timeline-days-count]=\"processedDayData().length\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate | format: 'date' : { format: 'MMM d', calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n <div class=\"ax-scheduler-timeline-year-container\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div>\n <div class=\"ax-scheduler-timeline-header\">\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n </div>\n\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-content\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"maxSpanningRows()\"\n >\n <!-- Current Time Line Indicator -->\n @if (\n showCurrentTimeIndicator() &&\n shouldShowCurrentTimeForDay(dayData.date) &&\n getCurrentTimePosition() !== null\n ) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (segment of dayData.visibleAppointments; track segment.id + segment.originalStartDate.getTime()) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (dayData.moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items' | translate: { params: { number: dayData.moreCount } } | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of dayData.hiddenAppointments;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n} @else {\n <!-- Resource-based layout -->\n <div class=\"ax-scheduler-timeline-year-resource-container\">\n <div class=\"ax-scheduler-timeline-year-header-sticky\">\n <div class=\"ax-scheduler-timeline-year-resource-header-placeholder\">\n <span>Resources</span>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-day-header\">\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(dayData.date)\"\n class=\"ax-scheduler-year-header-date-day {{\n dayData.holiday.state !== 'none' ? (dayData.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-year-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"dayData.holiday.holiday?.title ?? ''\"\n >\n {{ dayData.date | format: 'date' : { format: 'MMMM', calendar: calendar() } | async }}\n @if (dayData.holiday.state === 'holiday' && dayData.holiday.holiday.title) {\n ( {{ dayData.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-year-header-date-day-num\">\n {{ dayData.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-rows\">\n <!-- Current Time Line Indicator -->\n @if (showCurrentTimeIndicator() && getCurrentTimePosition() !== null) {\n <div\n class=\"ax-scheduler-current-time-line\"\n [style.inset-inline-start.%]=\"getCurrentTimePosition()\"\n #currentTimeLine\n ></div>\n }\n\n @for (resourceId of resourceIds(); track resourceId) {\n <div\n class=\"ax-scheduler-timeline-year-resource-row\"\n [style.--resource-spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-year-resource-header ax-scheduler-timeline-year-resource-header-sticky\">\n @if (resourceTemplate() && typeof resourceTemplate() !== 'string') {\n <ng-container\n [ngTemplateOutlet]=\"$any(resourceTemplate())\"\n [ngTemplateOutletContext]=\"{\n $implicit: getResourceContext(resourceId),\n resource: getResourceContext(resourceId),\n resourceId: resourceId,\n }\"\n ></ng-container>\n } @else {\n <div class=\"ax-scheduler-timeline-year-resource-title\">\n {{ getResourceTitle(resourceId) | translate | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-timeline-year-resource-content\">\n <!-- Spanning appointments layer for this resource -->\n @if (getSpanningAppointmentsForResource(resourceId).length > 0) {\n <div\n class=\"ax-scheduler-timeline-resource-spanning-layer\"\n [style.--timeline-days-count]=\"processedDayData().length\"\n >\n @for (spanning of getSpanningAppointmentsForResource(resourceId); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-spanning-appointment {{\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n }}\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.grid-row]=\"spanning.rowIndex + 1\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n\n @for (dayData of processedDayData(); track dayData.date.date.getTime()) {\n <div\n axDropZone\n #zone=\"axDropZone\"\n (onElementDrop)=\"handleDrop($event, dayData.date, resourceId)\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n class=\"ax-scheduler-timeline-year-slot-row\"\n (click)=\"handleSlotEvent($event, dayData.date)\"\n (dblclick)=\"handleSlotEvent($event, dayData.date)\"\n (contextmenu)=\"handleSlotEvent($event, dayData.date)\"\n [attr.data-slot-id]=\"dayData.date.format('YYYYMMDD')\"\n [attr.data-resource-id]=\"resourceId\"\n [style.pointer-events]=\"draggable() ? 'auto' : 'none'\"\n [style.--spanning-rows-count]=\"getMaxSpanningRowsForResource(resourceId)\"\n >\n <div class=\"ax-scheduler-timeline-appointment-container\">\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).visible;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragData]=\"segment\"\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, segment)\"\n (dblclick)=\"handleAppointmentEvent($event, segment)\"\n (contextmenu)=\"handleAppointmentEvent($event, segment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title +\n ' (' +\n (segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-timeline-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n <span class=\"ax-scheduler-timeline-appointment-time\">\n @if (segment.allDay) {\n {{\n segment.originalStartDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{\n segment.originalEndDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async\n }}\n }\n } @else {\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n }\n </span>\n </div>\n }\n\n <!-- Overflow Badge and Popover -->\n @if (getAppointmentsForResourceAndDay(resourceId, dayData).moreCount > 0) {\n <div #moreAppointments class=\"ax-scheduler-year-overflow-badge\" (click)=\"$event.stopPropagation()\">\n +{{\n '@acorex:common.general.more-items'\n | translate\n : { params: { number: getAppointmentsForResourceAndDay(resourceId, dayData).moreCount } }\n | async\n }}\n </div>\n <ax-popover [target]=\"moreAppointments\" placement=\"bottom-start\" trigger=\"click\">\n <div\n axDropZone\n [class.ax-state-readonly]=\"readonly()\"\n class=\"ax-scheduler-popover ax-scheduler-timeline-year-popover-appointment\"\n >\n @for (\n segment of getAppointmentsForResourceAndDay(resourceId, dayData).hidden;\n track segment.id + segment.originalStartDate.getTime()\n ) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"segment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"optimizedDragStartDelay()\"\n [dragDisabled]=\"!draggable() || segment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (dblclick)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n (contextmenu)=\"handleAppointmentEvent($event, segment); $event.stopPropagation()\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : segment.allDay\n ? segment.title\n : segment.title +\n ' (' +\n (segment.originalStartDate | format: 'time' : { calendar: calendar() } | async) +\n ' - ' +\n (segment.originalEndDate | format: 'time' : { calendar: calendar() } | async) +\n ')'\n \"\n class=\"ax-scheduler-popover-appointment {{\n segment.cssClass ?? 'ax-scheduler-' + (segment.priority ?? 'primary') + '-priority'\n }}\"\n [class.all-day-segment]=\"segment.allDay\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"segment\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ segment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, segment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n >\n </ax-icon>\n }\n </ax-title>\n @if (!segment.allDay) {\n <span class=\"ax-scheduler-timeline-appointment-time\">\n {{ segment.originalStartDate | format: 'time' : { calendar: calendar() } | async }}\n @if (\n !segment.allDay &&\n segment.originalStartDate.getTime() !== segment.originalEndDate.getTime()\n ) {\n -\n {{ segment.originalEndDate | format: 'time' : { calendar: calendar() } | async }}\n }\n </span>\n }\n </div>\n }\n </div>\n </ax-popover>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n}\n", styles: ["@charset \"UTF-8\";ax-scheduler-timeline-year-view{--ax-scheduler-timeline-spanning-row-height: 1.5rem;--ax-scheduler-timeline-spanning-gap: .125rem;height:100%;position:relative;display:inline-flex;flex-direction:column;background-color:inherit;--ax-comp-scheduler-timeline-year-view-blocks-width: calc( var(--ax-comp-scheduler-timeline-view-blocks-width) / 2 )}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-wrapper{height:100%;display:flex;flex-direction:column;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer{display:grid;position:absolute;top:4rem;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;pointer-events:none;align-content:start;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 365),var(--ax-comp-scheduler-timeline-year-view-blocks-width))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.7rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container{height:100%;display:flex;will-change:transform;transform:translateZ(0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header{width:100%;display:flex;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{font-weight:500}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{font-weight:700}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;position:sticky;font-weight:300;font-size:.75rem;line-height:.875rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content{padding:.125rem .25rem;position:relative;height:calc(100% - 4rem);width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container{gap:1px;display:flex;flex-direction:column}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;gap:.125rem;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);font-size:.75rem;line-height:.875rem;will-change:transform;transform:translateZ(0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{font-weight:600}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{cursor:pointer;text-align:left;font-size:.7rem;padding:.125rem 0;margin-top:.125rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-container .ax-scheduler-timeline-content .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container{height:100%;display:flex;flex-direction:column;background-color:inherit;will-change:transform;transform:translateZ(0);position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky{position:sticky;top:0;z-index:10;display:flex;background-color:inherit;border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-resource-header-placeholder{inset-inline-start:0;z-index:15;display:flex;position:sticky;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding:.5rem;font-weight:500;font-size:.875rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header{flex:1;display:flex;background-color:inherit;overflow-x:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day{gap:.25rem;height:4rem;display:flex;position:relative;align-items:start;padding-inline:1rem;flex-direction:column;padding-block:.25rem;justify-content:center;width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-char{font-weight:500}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-today .ax-scheduler-year-header-date-day-num{font-weight:700}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-char{max-width:100%;position:sticky;font-weight:300;font-size:.75rem;line-height:.875rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-header-sticky .ax-scheduler-timeline-year-day-header .ax-scheduler-year-header-date-day .ax-scheduler-year-header-date-day-num{position:sticky;font-weight:500;font-size:1.25rem;inset-inline-start:1rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows{flex:1;overflow:visible;position:relative;background-color:inherit}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface));width:max-content;background-color:inherit;display:flex;min-height:calc(var(--resource-spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + var(--ax-comp-scheduler-timeline-year-row-base-height, 4rem))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header{display:flex;padding:.5rem;align-items:center;justify-content:center;background-color:inherit;width:var(--ax-comp-scheduler-resource-header-width, 8rem);min-width:var(--ax-comp-scheduler-resource-header-width, 8rem);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));align-self:stretch}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header.ax-scheduler-timeline-year-resource-header-sticky{position:sticky;inset-inline-start:0;z-index:9;background-color:inherit}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-header .ax-scheduler-timeline-year-resource-title{font-weight:500;font-size:.875rem;text-align:center;word-break:break-word}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content{flex:1;display:flex;background-color:inherit;position:relative}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer{display:grid;position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;z-index:5;padding-block:.25rem;padding-inline:.125rem;align-content:start;pointer-events:none;row-gap:var(--ax-scheduler-timeline-spanning-gap);grid-auto-rows:var(--ax-scheduler-timeline-spanning-row-height);grid-template-columns:repeat(var(--timeline-days-count, 365),var(--ax-comp-scheduler-timeline-year-view-blocks-width))}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment{z-index:6;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.7rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .25rem;margin-inline:.125rem;pointer-events:auto}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;padding-inline:.5rem;height:100%;width:100%}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:0;top:2px;font-size:.6rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-resource-spanning-layer .ax-scheduler-timeline-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row{display:flex;flex-direction:column;position:relative;background-color:inherit;width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);min-width:var(--ax-comp-scheduler-timeline-year-view-blocks-width);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));padding-top:calc(var(--spanning-rows-count, 0) * (var(--ax-scheduler-timeline-spanning-row-height) + var(--ax-scheduler-timeline-spanning-gap)) + .25rem);padding-bottom:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container{gap:var(--ax-comp-scheduler-timeline-year-gap-height, .125rem);display:flex;flex-direction:column;width:100%;padding-inline:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container ax-popover{display:none}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment{width:100%;gap:.125rem;display:flex;overflow:hidden;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);flex-shrink:0;font-size:.75rem;line-height:.875rem;min-height:2rem;will-change:transform;transform:translateZ(0)}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-timeline-appointment ax-title{font-weight:500}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge{cursor:pointer;text-align:left;font-size:.7rem;padding:.125rem 0;margin-top:.125rem;flex-shrink:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-resource-container .ax-scheduler-timeline-year-resource-rows .ax-scheduler-timeline-year-resource-row .ax-scheduler-timeline-year-resource-content .ax-scheduler-timeline-year-slot-row .ax-scheduler-timeline-appointment-container .ax-scheduler-year-overflow-badge:hover{text-decoration:underline}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-appointment{cursor:pointer}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-content:hover,ax-scheduler-timeline-year-view:not(.ax-state-readonly) .ax-scheduler-timeline-year-slot-row:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-timeline-year-view ax-title{display:flex;justify-content:space-between}ax-scheduler-timeline-year-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment{font-size:.75rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);margin-bottom:.25rem}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment:last-child{margin-bottom:0}ax-scheduler-timeline-year-view .ax-scheduler-timeline-year-popover-appointment .ax-scheduler-popover-appointment .ax-appointment-chip-title{font-size:.8rem;margin-bottom:.125rem;font-weight:600}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line{top:0;bottom:0;width:2px}ax-scheduler-timeline-year-view .ax-scheduler-current-time-line:before{top:-6px;inset-inline-start:-5px}\n"] }]
3866
+ }] });
3868
3867
 
3869
3868
  class AXSchedulerWeekViewComponent extends NXComponent {
3870
3869
  constructor() {
@@ -3875,26 +3874,26 @@ class AXSchedulerWeekViewComponent extends NXComponent {
3875
3874
  this.scheduler = inject(AXSchedulerComponent);
3876
3875
  this.calendarService = inject(AXCalendarService);
3877
3876
  this.schedulerService = inject(AXSchedulerService);
3878
- this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : /* istanbul ignore next */ []));
3877
+ this.dragStartSlotId = signal(null, ...(ngDevMode ? [{ debugName: "dragStartSlotId" }] : []));
3879
3878
  // --- Constants ---
3880
3879
  this.GAP_PX = 1;
3881
3880
  this.BADGE_SPACE_REM = 2;
3882
3881
  // --- Component Inputs ---
3883
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
3884
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
3885
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
3886
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
3887
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
3888
- this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : /* istanbul ignore next */ []));
3889
- this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : /* istanbul ignore next */ []));
3890
- this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : /* istanbul ignore next */ []));
3891
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
3892
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
3893
- this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : /* istanbul ignore next */ []));
3894
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
3895
- this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
3882
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
3883
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
3884
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
3885
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
3886
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
3887
+ this.date = input.required(...(ngDevMode ? [{ debugName: "date" }] : []));
3888
+ this.endDayHour = input.required(...(ngDevMode ? [{ debugName: "endDayHour" }] : []));
3889
+ this.startDayHour = input.required(...(ngDevMode ? [{ debugName: "startDayHour" }] : []));
3890
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
3891
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
3892
+ this.appointments = input([], ...(ngDevMode ? [{ debugName: "appointments" }] : []));
3893
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
3894
+ this.selectedAppointmentId = input(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
3896
3895
  // ViewChild for current time line element
3897
- this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : /* istanbul ignore next */ []));
3896
+ this.currentTimeLineElement = viewChild('currentTimeLine', ...(ngDevMode ? [{ debugName: "currentTimeLineElement" }] : []));
3898
3897
  // --- Component Outputs (Internal, to be caught by the main scheduler) ---
3899
3898
  this.slotClickedInternal = output();
3900
3899
  this.slotDblClickedInternal = output();
@@ -3925,7 +3924,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
3925
3924
  hours.push(time);
3926
3925
  }
3927
3926
  return hours;
3928
- }, ...(ngDevMode ? [{ debugName: "hoursArray" }] : /* istanbul ignore next */ []));
3927
+ }, ...(ngDevMode ? [{ debugName: "hoursArray" }] : []));
3929
3928
  /**
3930
3929
  * @protected
3931
3930
  * Generates an array of day data objects for the 7 days in the view, including holiday info.
@@ -3941,7 +3940,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
3941
3940
  days.push({ date, holiday: this.isHoliday(date) });
3942
3941
  }
3943
3942
  return days;
3944
- }, ...(ngDevMode ? [{ debugName: "daysArray" }] : /* istanbul ignore next */ []));
3943
+ }, ...(ngDevMode ? [{ debugName: "daysArray" }] : []));
3945
3944
  /**
3946
3945
  * @protected
3947
3946
  * Calculates the total number of 30-minute blocks within the visible hours of a single day.
@@ -3950,7 +3949,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
3950
3949
  const startH = this.startDayHour();
3951
3950
  const endH = this.endDayHour();
3952
3951
  return Math.max(0, (endH - startH) * (60 / 30));
3953
- }, ...(ngDevMode ? [{ debugName: "totalBlocksPerViewDay" }] : /* istanbul ignore next */ []));
3952
+ }, ...(ngDevMode ? [{ debugName: "totalBlocksPerViewDay" }] : []));
3954
3953
  // Calculate spanning appointments with their grid positions for the all-day header
3955
3954
  this.spanningAppointments = computed(() => {
3956
3955
  const daysInWeek = this.daysArray();
@@ -4044,19 +4043,19 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4044
4043
  });
4045
4044
  }
4046
4045
  return spanningResult;
4047
- }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : /* istanbul ignore next */ []));
4046
+ }, ...(ngDevMode ? [{ debugName: "spanningAppointments" }] : []));
4048
4047
  // Get the set of multi-day/all-day appointment IDs for exclusion from regular all-day rendering
4049
4048
  this.multiDayAppointmentIds = computed(() => {
4050
4049
  const spanning = this.spanningAppointments();
4051
4050
  return new Set(spanning.map((s) => s.appointment.id));
4052
- }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : /* istanbul ignore next */ []));
4051
+ }, ...(ngDevMode ? [{ debugName: "multiDayAppointmentIds" }] : []));
4053
4052
  // Calculate the maximum row index to determine header height
4054
4053
  this.maxSpanningRowIndex = computed(() => {
4055
4054
  const spanning = this.spanningAppointments();
4056
4055
  if (spanning.length === 0)
4057
4056
  return -1;
4058
4057
  return Math.max(...spanning.map((s) => s.rowIndex));
4059
- }, ...(ngDevMode ? [{ debugName: "maxSpanningRowIndex" }] : /* istanbul ignore next */ []));
4058
+ }, ...(ngDevMode ? [{ debugName: "maxSpanningRowIndex" }] : []));
4060
4059
  /**
4061
4060
  * @protected
4062
4061
  * Filters processed segments to get only single-day all-day appointments for the all-day header.
@@ -4075,7 +4074,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4075
4074
  appointments: orderBy(appointmentsForThisDay, ['originalStartDate', 'title'], ['asc', 'asc']),
4076
4075
  };
4077
4076
  });
4078
- }, ...(ngDevMode ? [{ debugName: "allDayAppointmentsPerDay" }] : /* istanbul ignore next */ []));
4077
+ }, ...(ngDevMode ? [{ debugName: "allDayAppointmentsPerDay" }] : []));
4079
4078
  // =================================================================================================
4080
4079
  //
4081
4080
  // GRID LAYOUT & BADGE LOGIC (THE CORE FIX)
@@ -4129,7 +4128,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4129
4128
  layoutsByDay.set(dayIndex, dayLayouts);
4130
4129
  }
4131
4130
  return layoutsByDay;
4132
- }, ...(ngDevMode ? [{ debugName: "dayViewLayoutsByDay" }] : /* istanbul ignore next */ []));
4131
+ }, ...(ngDevMode ? [{ debugName: "dayViewLayoutsByDay" }] : []));
4133
4132
  /**
4134
4133
  * @protected
4135
4134
  * [STEP 2] From the full layout, select ONLY appointments in the first column (`columnIndex: 0`)
@@ -4168,7 +4167,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4168
4167
  });
4169
4168
  }
4170
4169
  return finalLayouts;
4171
- }, ...(ngDevMode ? [{ debugName: "visibleAppointmentsLayout" }] : /* istanbul ignore next */ []));
4170
+ }, ...(ngDevMode ? [{ debugName: "visibleAppointmentsLayout" }] : []));
4172
4171
  /**
4173
4172
  * @protected
4174
4173
  * [STEP 3] Create badges for all appointments NOT in the first column (`columnIndex > 0`).
@@ -4212,7 +4211,7 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4212
4211
  });
4213
4212
  });
4214
4213
  return badgesInfo;
4215
- }, ...(ngDevMode ? [{ debugName: "overflowBadgesWithData" }] : /* istanbul ignore next */ []));
4214
+ }, ...(ngDevMode ? [{ debugName: "overflowBadgesWithData" }] : []));
4216
4215
  // =================================================================================================
4217
4216
  //
4218
4217
  // EVENT HANDLERS & UTILITY METHODS
@@ -4253,10 +4252,10 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4253
4252
  uniqueSegmentsMap.set(mapKey, seg);
4254
4253
  });
4255
4254
  return Array.from(uniqueSegmentsMap.values());
4256
- }, ...(ngDevMode ? [{ debugName: "processedAppointmentsForLayout" }] : /* istanbul ignore next */ []));
4255
+ }, ...(ngDevMode ? [{ debugName: "processedAppointmentsForLayout" }] : []));
4257
4256
  this.timedGridSegments = computed(() => {
4258
4257
  return this.processedAppointmentsForLayout()?.filter((segment) => !segment.allDay) ?? [];
4259
- }, ...(ngDevMode ? [{ debugName: "timedGridSegments" }] : /* istanbul ignore next */ []));
4258
+ }, ...(ngDevMode ? [{ debugName: "timedGridSegments" }] : []));
4260
4259
  }
4261
4260
  isActive(appointmentId) {
4262
4261
  return this.selectedAppointmentId() === appointmentId;
@@ -4510,10 +4509,10 @@ class AXSchedulerWeekViewComponent extends NXComponent {
4510
4509
  }
4511
4510
  return true;
4512
4511
  }
4513
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerWeekViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4514
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerWeekViewComponent, isStandalone: true, selector: "ax-scheduler-week-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerWeekViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-week-header\">\n <div class=\"ax-scheduler-week-header-days\">\n <div class=\"ax-scheduler-week-header-table\"></div>\n <div class=\"ax-scheduler-week-header-date\" aria-hidden=\"true\">\n @for (day of daysArray(); track day.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(day.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n day.holiday.state !== 'none' ? (day.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"day.holiday?.holiday?.title ?? ''\"\n >\n {{ day.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (day.holiday.state === 'holiday' && day.holiday.holiday.title) {\n ( {{ day.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ day.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n <!-- All-day / Multi-day Spanning Appointments Header -->\n <div class=\"ax-scheduler-week-header-days ax-scheduler-week-allday-header\">\n <div class=\"ax-scheduler-week-header-table\">{{ '@acorex:dateTime.duration.all-day' | translate | async }}</div>\n <div class=\"ax-scheduler-week-allday-content\">\n <!-- Spanning Appointments Layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-week-spanning-layer\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-week-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.--spanning-row-index]=\"spanning.rowIndex\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <!-- Drop zones for each day -->\n <div class=\"ax-scheduler-week-allday-slots\">\n @for (slotData of allDayAppointmentsPerDay(); track slotData.day.date.getTime()) {\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleAllDayDrop($event, slotData.day)\"\n class=\"ax-scheduler-all-day-slot\"\n (click)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (dblclick)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (contextmenu)=\"handleAllDaySlotEvent($event, slotData.day)\"\n >\n <!-- Single-day all-day appointments only -->\n @if (slotData.appointments.length > 0) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragData]=\"slotData.appointments[0]\"\n [dragDisabled]=\"!draggable() || slotData.appointments[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (dblclick)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n [title]=\"tooltipTemplate() ? '' : slotData.appointments[0].title\"\n class=\"ax-scheduler-header-week-appointment\"\n [style.width]=\"slotData.appointments.length > 1 ? 'calc(100% - 2rem)' : '100%'\"\n [class.ax-state-active]=\"isActive(slotData.appointments[0].id)\"\n [class]=\"\n slotData.appointments[0].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"slotData.appointments[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ slotData.appointments[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, slotData.appointments[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n @if (slotData.appointments.length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-appointment-badge\"\n [style.width]=\"'1.5rem'\"\n [style.border]=\"'none'\"\n [class]=\"\n slotData.appointments[1].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[1].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ slotData.appointments.length - 1 }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of slotData.appointments; track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"\n appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-week-time-container\">\n <div class=\"ax-scheduler-week-time\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-week-table-container\">\n <!-- Current Time Line Indicator -->\n @if (\n shouldShowCurrentTimeForToday() &&\n getCurrentTimePositionWithOffset() !== null &&\n getCurrentDayColumnPosition() !== null\n ) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n [style.inset-inline-start]=\"getCurrentDayColumnPosition()\"\n [style.width]=\"getCurrentDayColumnWidth()\"\n ></div>\n }\n <div class=\"ax-scheduler-week-appointment-container\">\n @for (appt of visibleAppointmentsLayout(); track appt.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragData]=\"appt.appointment\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appt.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appt.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appt.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appt.appointment)\"\n [title]=\"tooltipTemplate() ? '' : appt.appointment.title\"\n [style.width]=\"appt.layoutWidth\"\n [style.height]=\"appt.layoutHeight\"\n class=\"ax-scheduler-week-appointment\"\n [style.inset-block-start]=\"appt.layoutTop\"\n [style.inset-inline-start]=\"appt.layoutLeft\"\n [class.ax-state-active]=\"isActive(appt.appointment.id)\"\n [class]=\"\n appt.appointment.cssClass ?? 'ax-scheduler-' + (appt.appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appt.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appt.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appt.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appt.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ appt.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n\n <!-- Overflow Badges with Popovers -->\n @for (badge of overflowBadgesWithData(); track badge.key) {\n <!-- Wrap badge and popover for targeting -->\n <div\n style=\"position: absolute\"\n class=\"ax-scheduler-badge-wrapper\"\n [style.inset-block-start]=\"badge.badgeTop\"\n [style.inset-inline-start]=\"badge.badgeLeft\"\n >\n <!-- The Badge itself -->\n <div\n #actionButton\n class=\"ax-scheduler-appointment-badge\"\n [class]=\"\n badge.hiddenAppointments[0].cssClass ??\n 'ax-scheduler-' + (badge.hiddenAppointments[0].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ badge.count }}\n </div>\n <!-- The Popover -->\n <ax-popover [target]=\"actionButton\">\n <div class=\"ax-scheduler-popover\" axDropZone>\n @for (appointment of badge.hiddenAppointments; track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n </div>\n }\n </div>\n\n <table aria-hidden=\"true\" [border]=\"1\">\n <tbody>\n @for (time of hoursArray(); track time.date.getTime()) {\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 0)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.format('HHmm')\"\n ></td>\n }\n </tr>\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 1)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.add('minute', 30).format('HHmm')\"\n ></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-week-view{min-width:var(--ax-comp-scheduler-width);background-color:inherit;display:block;position:relative}ax-scheduler-week-view .ax-scheduler-appointment-badge{width:calc(var(--spacing,.25rem) * 6);height:calc(var(--spacing,.25rem) * 6);cursor:pointer;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}ax-scheduler-week-view .ax-scheduler-week-header{z-index:10;background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;position:sticky;top:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-table{z-index:10;width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;text-align:center;flex-shrink:0;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date{width:calc(100% - var(--ax-comp-scheduler-basic-view-blocks-width));display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));text-align:center;width:100%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day{justify-content:center;align-items:center;gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 2);display:grid}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-light,300);max-width:100%;font-weight:var(--font-weight-light,300)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div:last-child{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot{gap:var(--spacing,.25rem);width:14.2857%;display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot .ax-scheduler-header-week-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);text-align:start;display:block;overflow:hidden}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot ax-popover{display:none}ax-scheduler-week-view .ax-scheduler-week-time-container{background-color:inherit;width:100%;display:flex}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time{z-index:15;background-color:var(--ax-comp-scheduler-all-day-bg,inherit);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time div{height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);text-align:center;display:block;position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container{width:100%;position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container{width:100%;position:absolute;top:0}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container .ax-scheduler-week-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table{width:100%}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr{height:var(--ax-comp-scheduler-basic-view-blocks-height);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));display:flex}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr:first-child{border-top-style:var(--tw-border-style);border-top-width:0}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));text-align:center;width:100%}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td:last-child{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-appointment,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-header-week-appointment{cursor:pointer}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){:is(ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td):hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-week-view ax-title{justify-content:space-between;display:flex}ax-scheduler-week-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-week-view .ax-scheduler-current-time-line{height:calc(var(--spacing,.25rem) * .5)}ax-scheduler-week-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4512
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerWeekViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4513
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerWeekViewComponent, isStandalone: true, selector: "ax-scheduler-week-view", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: true, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: true, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: true, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, appointments: { classPropertyName: "appointments", publicName: "appointments", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectedAppointmentId: { classPropertyName: "selectedAppointmentId", publicName: "selectedAppointmentId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slotClickedInternal: "slotClickedInternal", slotDblClickedInternal: "slotDblClickedInternal", slotRightClickedInternal: "slotRightClickedInternal", appointmentClickedInternal: "appointmentClickedInternal", appointmentDblClickedInternal: "appointmentDblClickedInternal", appointmentRightClickedInternal: "appointmentRightClickedInternal", onActionClickInternal: "onActionClickInternal", onAppointmentDropInternal: "onAppointmentDropInternal" }, host: { properties: { "class.ax-state-readonly": "readonly()" } }, providers: [{ provide: AXComponent, useExisting: AXSchedulerWeekViewComponent }], viewQueries: [{ propertyName: "currentTimeLineElement", first: true, predicate: ["currentTimeLine"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-week-header\">\n <div class=\"ax-scheduler-week-header-days\">\n <div class=\"ax-scheduler-week-header-table\"></div>\n <div class=\"ax-scheduler-week-header-date\" aria-hidden=\"true\">\n @for (day of daysArray(); track day.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(day.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n day.holiday.state !== 'none' ? (day.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"day.holiday?.holiday?.title ?? ''\"\n >\n {{ day.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (day.holiday.state === 'holiday' && day.holiday.holiday.title) {\n ( {{ day.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ day.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n <!-- All-day / Multi-day Spanning Appointments Header -->\n <div class=\"ax-scheduler-week-header-days ax-scheduler-week-allday-header\">\n <div class=\"ax-scheduler-week-header-table\">{{ '@acorex:dateTime.duration.all-day' | translate | async }}</div>\n <div class=\"ax-scheduler-week-allday-content\">\n <!-- Spanning Appointments Layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-week-spanning-layer\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-week-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.--spanning-row-index]=\"spanning.rowIndex\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <!-- Drop zones for each day -->\n <div class=\"ax-scheduler-week-allday-slots\">\n @for (slotData of allDayAppointmentsPerDay(); track slotData.day.date.getTime()) {\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleAllDayDrop($event, slotData.day)\"\n class=\"ax-scheduler-all-day-slot\"\n (click)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (dblclick)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (contextmenu)=\"handleAllDaySlotEvent($event, slotData.day)\"\n >\n <!-- Single-day all-day appointments only -->\n @if (slotData.appointments.length > 0) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragData]=\"slotData.appointments[0]\"\n [dragDisabled]=\"!draggable() || slotData.appointments[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (dblclick)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n [title]=\"tooltipTemplate() ? '' : slotData.appointments[0].title\"\n class=\"ax-scheduler-header-week-appointment\"\n [style.width]=\"slotData.appointments.length > 1 ? 'calc(100% - 2rem)' : '100%'\"\n [class.ax-state-active]=\"isActive(slotData.appointments[0].id)\"\n [class]=\"\n slotData.appointments[0].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"slotData.appointments[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ slotData.appointments[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, slotData.appointments[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n @if (slotData.appointments.length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-appointment-badge\"\n [style.width]=\"'1.5rem'\"\n [style.border]=\"'none'\"\n [class]=\"\n slotData.appointments[1].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[1].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ slotData.appointments.length - 1 }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of slotData.appointments; track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"\n appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-week-time-container\">\n <div class=\"ax-scheduler-week-time\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-week-table-container\">\n <!-- Current Time Line Indicator -->\n @if (\n shouldShowCurrentTimeForToday() &&\n getCurrentTimePositionWithOffset() !== null &&\n getCurrentDayColumnPosition() !== null\n ) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n [style.inset-inline-start]=\"getCurrentDayColumnPosition()\"\n [style.width]=\"getCurrentDayColumnWidth()\"\n ></div>\n }\n <div class=\"ax-scheduler-week-appointment-container\">\n @for (appt of visibleAppointmentsLayout(); track appt.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragData]=\"appt.appointment\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appt.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appt.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appt.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appt.appointment)\"\n [title]=\"tooltipTemplate() ? '' : appt.appointment.title\"\n [style.width]=\"appt.layoutWidth\"\n [style.height]=\"appt.layoutHeight\"\n class=\"ax-scheduler-week-appointment\"\n [style.inset-block-start]=\"appt.layoutTop\"\n [style.inset-inline-start]=\"appt.layoutLeft\"\n [class.ax-state-active]=\"isActive(appt.appointment.id)\"\n [class]=\"\n appt.appointment.cssClass ?? 'ax-scheduler-' + (appt.appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appt.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appt.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appt.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appt.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ appt.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n\n <!-- Overflow Badges with Popovers -->\n @for (badge of overflowBadgesWithData(); track badge.key) {\n <!-- Wrap badge and popover for targeting -->\n <div\n style=\"position: absolute\"\n class=\"ax-scheduler-badge-wrapper\"\n [style.inset-block-start]=\"badge.badgeTop\"\n [style.inset-inline-start]=\"badge.badgeLeft\"\n >\n <!-- The Badge itself -->\n <div\n #actionButton\n class=\"ax-scheduler-appointment-badge\"\n [class]=\"\n badge.hiddenAppointments[0].cssClass ??\n 'ax-scheduler-' + (badge.hiddenAppointments[0].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ badge.count }}\n </div>\n <!-- The Popover -->\n <ax-popover [target]=\"actionButton\">\n <div class=\"ax-scheduler-popover\" axDropZone>\n @for (appointment of badge.hiddenAppointments; track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n </div>\n }\n </div>\n\n <table aria-hidden=\"true\" [border]=\"1\">\n <tbody>\n @for (time of hoursArray(); track time.date.getTime()) {\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 0)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.format('HHmm')\"\n ></td>\n }\n </tr>\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 1)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.add('minute', 30).format('HHmm')\"\n ></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";ax-scheduler-week-view{--ax-scheduler-week-spanning-row-height: 1.5rem;--ax-scheduler-week-spanning-gap: .125rem;--ax-scheduler-week-spanning-row-gap: .25rem;display:block;position:relative;background-color:inherit;min-width:var(--ax-comp-scheduler-width)}ax-scheduler-week-view .ax-scheduler-appointment-badge{display:flex;width:1.5rem;height:1.5rem;cursor:pointer;font-size:.75rem;align-items:center;border-radius:9999px;justify-content:center}ax-scheduler-week-view .ax-scheduler-week-header{top:0;z-index:20;width:100%;position:sticky;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days{display:flex;background-color:inherit;border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-table{z-index:10;flex-shrink:0;position:sticky;text-align:center;inset-inline-start:0;width:var(--ax-comp-scheduler-basic-view-blocks-width);background-color:inherit;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date{width:calc(100% - var(--ax-comp-scheduler-basic-view-blocks-width));display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div{width:100%;text-align:center;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day{gap:.25rem;display:grid;align-items:center;padding-inline:.5rem;justify-content:center}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{font-weight:500}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{font-weight:700}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;font-weight:300}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-weight:500;font-size:1.25rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div:last-child{border-inline-end-width:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot{gap:.25rem;display:flex;width:14.2857142857%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot .ax-scheduler-header-week-appointment{display:block;overflow:hidden;text-align:start;padding-inline:.5rem;width:100%;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot ax-popover{display:none}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content{display:flex;flex-direction:column;width:calc(100% - var(--ax-comp-scheduler-basic-view-blocks-width));position:relative}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer{display:grid;grid-template-columns:repeat(7,1fr);padding-block:.25rem;row-gap:var(--ax-scheduler-week-spanning-row-gap);align-content:start;position:relative}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer:before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:linear-gradient(to right,transparent calc(14.2857142857% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(14.2857142857% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(14.2857142857% + .5px),transparent calc(14.2857142857% + .5px),transparent calc(28.5714285714% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(28.5714285714% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(28.5714285714% + .5px),transparent calc(28.5714285714% + .5px),transparent calc(42.8571428571% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(42.8571428571% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(42.8571428571% + .5px),transparent calc(42.8571428571% + .5px),transparent calc(57.1428571429% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(57.1428571429% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(57.1428571429% + .5px),transparent calc(57.1428571429% + .5px),transparent calc(71.4285714286% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(71.4285714286% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(71.4285714286% + .5px),transparent calc(71.4285714286% + .5px),transparent calc(85.7142857143% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(85.7142857143% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(85.7142857143% + .5px),transparent calc(85.7142857143% + .5px))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment{z-index:1;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .5rem;height:var(--ax-scheduler-week-spanning-row-height);margin-inline:.125rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;width:100%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0;padding-inline-start:1rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:.25rem;top:50%;transform:translateY(-50%);font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0;padding-inline-end:1rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:.25rem;top:50%;transform:translateY(-50%);font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots{display:flex;height:100%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot{gap:.25rem;display:flex;width:14.2857142857%;padding-block:.25rem;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot:last-child{border-inline-end-width:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot .ax-scheduler-header-week-appointment{display:block;overflow:hidden;text-align:start;padding-inline:.5rem;width:100%;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot ax-popover{display:none}ax-scheduler-week-view .ax-scheduler-week-time-container{width:100%;display:flex;background-color:inherit}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time{z-index:15;position:sticky;inset-inline-start:0;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time div{display:block;text-align:center;padding-inline:.5rem;width:var(--ax-comp-scheduler-basic-view-blocks-width);height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container{width:100%;position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container{top:0;width:100%;position:absolute}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container .ax-scheduler-week-appointment{display:flex;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table{width:100%}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr{display:flex;height:var(--ax-comp-scheduler-basic-view-blocks-height);border-block-start:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr:first-child{border-block-start-width:0}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td{width:100%;text-align:center;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td:last-child{border-inline-end-width:0}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-appointment,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-header-week-appointment{cursor:pointer}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot:hover,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-week-view ax-title{display:flex;justify-content:space-between}ax-scheduler-week-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-week-view .ax-scheduler-current-time-line{height:2px}ax-scheduler-week-view .ax-scheduler-current-time-line:before{top:-5px;inset-inline-start:-6px}\n"], dependencies: [{ kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "directive", type: AXDropZoneDirective, selector: "[axDropZone]", inputs: ["dropZoneGroup"], outputs: ["onElementDrop", "onElementHover"], exportAs: ["axDropZone"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXFormatPipe, name: "format" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4515
4514
  }
4516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerWeekViewComponent, decorators: [{
4515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerWeekViewComponent, decorators: [{
4517
4516
  type: Component,
4518
4517
  args: [{ selector: 'ax-scheduler-week-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
4519
4518
  '[class.ax-state-readonly]': 'readonly()',
@@ -4527,8 +4526,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
4527
4526
  AXDropZoneDirective,
4528
4527
  AXDecoratorIconComponent,
4529
4528
  AXDecoratorGenericComponent,
4530
- ], providers: [{ provide: AXComponent, useExisting: AXSchedulerWeekViewComponent }], template: "<div class=\"ax-scheduler-week-header\">\n <div class=\"ax-scheduler-week-header-days\">\n <div class=\"ax-scheduler-week-header-table\"></div>\n <div class=\"ax-scheduler-week-header-date\" aria-hidden=\"true\">\n @for (day of daysArray(); track day.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(day.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n day.holiday.state !== 'none' ? (day.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"day.holiday?.holiday?.title ?? ''\"\n >\n {{ day.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (day.holiday.state === 'holiday' && day.holiday.holiday.title) {\n ( {{ day.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ day.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n <!-- All-day / Multi-day Spanning Appointments Header -->\n <div class=\"ax-scheduler-week-header-days ax-scheduler-week-allday-header\">\n <div class=\"ax-scheduler-week-header-table\">{{ '@acorex:dateTime.duration.all-day' | translate | async }}</div>\n <div class=\"ax-scheduler-week-allday-content\">\n <!-- Spanning Appointments Layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-week-spanning-layer\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-week-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.--spanning-row-index]=\"spanning.rowIndex\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <!-- Drop zones for each day -->\n <div class=\"ax-scheduler-week-allday-slots\">\n @for (slotData of allDayAppointmentsPerDay(); track slotData.day.date.getTime()) {\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleAllDayDrop($event, slotData.day)\"\n class=\"ax-scheduler-all-day-slot\"\n (click)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (dblclick)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (contextmenu)=\"handleAllDaySlotEvent($event, slotData.day)\"\n >\n <!-- Single-day all-day appointments only -->\n @if (slotData.appointments.length > 0) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragData]=\"slotData.appointments[0]\"\n [dragDisabled]=\"!draggable() || slotData.appointments[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (dblclick)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n [title]=\"tooltipTemplate() ? '' : slotData.appointments[0].title\"\n class=\"ax-scheduler-header-week-appointment\"\n [style.width]=\"slotData.appointments.length > 1 ? 'calc(100% - 2rem)' : '100%'\"\n [class.ax-state-active]=\"isActive(slotData.appointments[0].id)\"\n [class]=\"\n slotData.appointments[0].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"slotData.appointments[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ slotData.appointments[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, slotData.appointments[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n @if (slotData.appointments.length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-appointment-badge\"\n [style.width]=\"'1.5rem'\"\n [style.border]=\"'none'\"\n [class]=\"\n slotData.appointments[1].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[1].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ slotData.appointments.length - 1 }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of slotData.appointments; track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"\n appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-week-time-container\">\n <div class=\"ax-scheduler-week-time\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-week-table-container\">\n <!-- Current Time Line Indicator -->\n @if (\n shouldShowCurrentTimeForToday() &&\n getCurrentTimePositionWithOffset() !== null &&\n getCurrentDayColumnPosition() !== null\n ) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n [style.inset-inline-start]=\"getCurrentDayColumnPosition()\"\n [style.width]=\"getCurrentDayColumnWidth()\"\n ></div>\n }\n <div class=\"ax-scheduler-week-appointment-container\">\n @for (appt of visibleAppointmentsLayout(); track appt.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragData]=\"appt.appointment\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appt.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appt.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appt.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appt.appointment)\"\n [title]=\"tooltipTemplate() ? '' : appt.appointment.title\"\n [style.width]=\"appt.layoutWidth\"\n [style.height]=\"appt.layoutHeight\"\n class=\"ax-scheduler-week-appointment\"\n [style.inset-block-start]=\"appt.layoutTop\"\n [style.inset-inline-start]=\"appt.layoutLeft\"\n [class.ax-state-active]=\"isActive(appt.appointment.id)\"\n [class]=\"\n appt.appointment.cssClass ?? 'ax-scheduler-' + (appt.appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appt.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appt.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appt.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appt.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ appt.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n\n <!-- Overflow Badges with Popovers -->\n @for (badge of overflowBadgesWithData(); track badge.key) {\n <!-- Wrap badge and popover for targeting -->\n <div\n style=\"position: absolute\"\n class=\"ax-scheduler-badge-wrapper\"\n [style.inset-block-start]=\"badge.badgeTop\"\n [style.inset-inline-start]=\"badge.badgeLeft\"\n >\n <!-- The Badge itself -->\n <div\n #actionButton\n class=\"ax-scheduler-appointment-badge\"\n [class]=\"\n badge.hiddenAppointments[0].cssClass ??\n 'ax-scheduler-' + (badge.hiddenAppointments[0].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ badge.count }}\n </div>\n <!-- The Popover -->\n <ax-popover [target]=\"actionButton\">\n <div class=\"ax-scheduler-popover\" axDropZone>\n @for (appointment of badge.hiddenAppointments; track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n </div>\n }\n </div>\n\n <table aria-hidden=\"true\" [border]=\"1\">\n <tbody>\n @for (time of hoursArray(); track time.date.getTime()) {\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 0)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.format('HHmm')\"\n ></td>\n }\n </tr>\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 1)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.add('minute', 30).format('HHmm')\"\n ></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n</div>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-content:\"\"}}}@layer components{ax-scheduler-week-view{min-width:var(--ax-comp-scheduler-width);background-color:inherit;display:block;position:relative}ax-scheduler-week-view .ax-scheduler-appointment-badge{width:calc(var(--spacing,.25rem) * 6);height:calc(var(--spacing,.25rem) * 6);cursor:pointer;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}ax-scheduler-week-view .ax-scheduler-week-header{z-index:10;background-color:var(--ax-comp-scheduler-all-day-bg,inherit);width:100%;position:sticky;top:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-table{z-index:10;width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:inherit;text-align:center;flex-shrink:0;position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date{width:calc(100% - var(--ax-comp-scheduler-basic-view-blocks-width));display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));text-align:center;width:100%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day{justify-content:center;align-items:center;gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 2);display:grid}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-600))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{--tw-font-weight:var(--font-weight-light,300);max-width:100%;font-weight:var(--font-weight-light,300)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div:last-child{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot{gap:var(--spacing,.25rem);width:14.2857%;display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot .ax-scheduler-header-week-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);width:100%;padding-inline:calc(var(--spacing,.25rem) * 2);text-align:start;display:block;overflow:hidden}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot ax-popover{display:none}ax-scheduler-week-view .ax-scheduler-week-time-container{background-color:inherit;width:100%;display:flex}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time{z-index:15;background-color:var(--ax-comp-scheduler-all-day-bg,inherit);position:sticky;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time div{height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);width:var(--ax-comp-scheduler-basic-view-blocks-width);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding-inline:calc(var(--spacing,.25rem) * 2);text-align:center;display:block;position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container{width:100%;position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container{width:100%;position:absolute;top:0}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container .ax-scheduler-week-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);flex-direction:column;display:flex;position:absolute;inset-inline-start:calc(var(--spacing,.25rem) * 0)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table{width:100%}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr{height:var(--ax-comp-scheduler-basic-view-blocks-height);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));display:flex}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr:first-child{border-top-style:var(--tw-border-style);border-top-width:0}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));text-align:center;width:100%}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td:last-child{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-appointment,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-header-week-appointment{cursor:pointer}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td{cursor:pointer;transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media(hover:hover){:is(ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td):hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg,var(--ax-sys-color-primary-surface),.1))}}ax-scheduler-week-view ax-title{justify-content:space-between;display:flex}ax-scheduler-week-view ax-title .ax-scheduler-action-icon{cursor:pointer;width:auto}ax-scheduler-week-view .ax-scheduler-current-time-line{height:calc(var(--spacing,.25rem) * .5)}ax-scheduler-week-view .ax-scheduler-current-time-line:before{content:var(--tw-content);inset-inline-start:-5px;top:calc(var(--spacing,.25rem) * -1.5)}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
4531
- }], propDecorators: { readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: true }] }], endDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "endDayHour", required: true }] }], startDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDayHour", required: true }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], appointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "appointments", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], selectedAppointmentId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedAppointmentId", required: false }] }], currentTimeLineElement: [{ type: i0.ViewChild, args: ['currentTimeLine', { isSignal: true }] }], slotClickedInternal: [{ type: i0.Output, args: ["slotClickedInternal"] }], slotDblClickedInternal: [{ type: i0.Output, args: ["slotDblClickedInternal"] }], slotRightClickedInternal: [{ type: i0.Output, args: ["slotRightClickedInternal"] }], appointmentClickedInternal: [{ type: i0.Output, args: ["appointmentClickedInternal"] }], appointmentDblClickedInternal: [{ type: i0.Output, args: ["appointmentDblClickedInternal"] }], appointmentRightClickedInternal: [{ type: i0.Output, args: ["appointmentRightClickedInternal"] }], onActionClickInternal: [{ type: i0.Output, args: ["onActionClickInternal"] }], onAppointmentDropInternal: [{ type: i0.Output, args: ["onAppointmentDropInternal"] }] } });
4529
+ ], providers: [{ provide: AXComponent, useExisting: AXSchedulerWeekViewComponent }], template: "<div class=\"ax-scheduler-week-header\">\n <div class=\"ax-scheduler-week-header-days\">\n <div class=\"ax-scheduler-week-header-table\"></div>\n <div class=\"ax-scheduler-week-header-date\" aria-hidden=\"true\">\n @for (day of daysArray(); track day.date.date.getTime()) {\n <div\n [class.ax-state-today]=\"isToday(day.date)\"\n class=\"ax-scheduler-week-header-date-day {{\n day.holiday.state !== 'none' ? (day.holiday.holiday?.cssClass ?? 'ax-state-holiday') : ''\n }}\"\n >\n <span\n class=\"ax-scheduler-week-header-date-day-char ax-scheduler-truncate\"\n [axTooltip]=\"day.holiday?.holiday?.title ?? ''\"\n >\n {{ day.date | format: 'date' : { format: 'dddd', calendar: calendar() } | async }}\n @if (day.holiday.state === 'holiday' && day.holiday.holiday.title) {\n ( {{ day.holiday.holiday.title }} )\n }\n </span>\n <span class=\"ax-scheduler-week-header-date-day-num\">\n {{ day.date | format: 'date' : { format: 'DD', calendar: calendar() } | async }}\n </span>\n </div>\n }\n </div>\n </div>\n <!-- All-day / Multi-day Spanning Appointments Header -->\n <div class=\"ax-scheduler-week-header-days ax-scheduler-week-allday-header\">\n <div class=\"ax-scheduler-week-header-table\">{{ '@acorex:dateTime.duration.all-day' | translate | async }}</div>\n <div class=\"ax-scheduler-week-allday-content\">\n <!-- Spanning Appointments Layer -->\n @if (spanningAppointments().length > 0) {\n <div class=\"ax-scheduler-week-spanning-layer\">\n @for (spanning of spanningAppointments(); track spanning.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"spanning.appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || spanning.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, spanning.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, spanning.appointment)\"\n [title]=\"\n tooltipTemplate()\n ? ''\n : spanning.appointment.title +\n ' (' +\n (spanning.appointment.startDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ' - ' +\n (spanning.appointment.endDate\n | format: 'date' : { format: 'MMM d', calendar: calendar() }\n | async) +\n ')'\n \"\n class=\"ax-scheduler-week-spanning-appointment\"\n [class.ax-spanning-start-clipped]=\"spanning.isStartClipped\"\n [class.ax-spanning-end-clipped]=\"spanning.isEndClipped\"\n [class.ax-state-active]=\"isActive(spanning.appointment.id)\"\n [class]=\"\n spanning.appointment.cssClass ??\n 'ax-scheduler-' + (spanning.appointment.priority ?? 'primary') + '-priority'\n \"\n [style.grid-column]=\"spanning.startDayIndex + 1 + ' / span ' + spanning.spanCount\"\n [style.--spanning-row-index]=\"spanning.rowIndex\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"spanning.appointment\"\n >\n <span class=\"ax-spanning-appointment-title\">\n <span class=\"ax-scheduler-truncate\">{{ spanning.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, spanning.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </span>\n </div>\n }\n </div>\n }\n <!-- Drop zones for each day -->\n <div class=\"ax-scheduler-week-allday-slots\">\n @for (slotData of allDayAppointmentsPerDay(); track slotData.day.date.getTime()) {\n <div\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleAllDayDrop($event, slotData.day)\"\n class=\"ax-scheduler-all-day-slot\"\n (click)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (dblclick)=\"handleAllDaySlotEvent($event, slotData.day)\"\n (contextmenu)=\"handleAllDaySlotEvent($event, slotData.day)\"\n >\n <!-- Single-day all-day appointments only -->\n @if (slotData.appointments.length > 0) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragData]=\"slotData.appointments[0]\"\n [dragDisabled]=\"!draggable() || slotData.appointments[0].readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (dblclick)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n (contextmenu)=\"handleAppointmentEvent($event, slotData.appointments[0])\"\n [title]=\"tooltipTemplate() ? '' : slotData.appointments[0].title\"\n class=\"ax-scheduler-header-week-appointment\"\n [style.width]=\"slotData.appointments.length > 1 ? 'calc(100% - 2rem)' : '100%'\"\n [class.ax-state-active]=\"isActive(slotData.appointments[0].id)\"\n [class]=\"\n slotData.appointments[0].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[0].priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"slotData.appointments[0]\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ slotData.appointments[0].title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, slotData.appointments[0])\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n @if (slotData.appointments.length > 1) {\n <div\n #moreAppointments\n class=\"ax-scheduler-appointment-badge\"\n [style.width]=\"'1.5rem'\"\n [style.border]=\"'none'\"\n [class]=\"\n slotData.appointments[1].cssClass ??\n 'ax-scheduler-' + (slotData.appointments[1].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ slotData.appointments.length - 1 }}\n </div>\n <ax-popover [target]=\"moreAppointments\">\n <div class=\"ax-scheduler-popover\" [class.ax-state-readonly]=\"readonly()\" axDropZone>\n @for (appointment of slotData.appointments; track appointment.id; let first = $first) {\n @if (!first) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"\n appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n </div>\n }\n }\n </div>\n </ax-popover>\n }\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"ax-scheduler-week-time-container\">\n <div class=\"ax-scheduler-week-time\" aria-hidden=\"true\">\n @for (time of hoursArray(); track time.date.getTime()) {\n <div>\n {{ time | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </div>\n }\n </div>\n\n <div class=\"ax-scheduler-week-table-container\">\n <!-- Current Time Line Indicator -->\n @if (\n shouldShowCurrentTimeForToday() &&\n getCurrentTimePositionWithOffset() !== null &&\n getCurrentDayColumnPosition() !== null\n ) {\n <div\n #currentTimeLine\n class=\"ax-scheduler-current-time-line\"\n [style.inset-block-start]=\"getCurrentTimePositionWithOffset()\"\n [style.inset-inline-start]=\"getCurrentDayColumnPosition()\"\n [style.width]=\"getCurrentDayColumnWidth()\"\n ></div>\n }\n <div class=\"ax-scheduler-week-appointment-container\">\n @for (appt of visibleAppointmentsLayout(); track appt.appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragData]=\"appt.appointment\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appt.appointment.readonly || readonly()\"\n (pointerdown)=\"getSlotId($event)\"\n (click)=\"handleAppointmentEvent($event, appt.appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appt.appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appt.appointment)\"\n [title]=\"tooltipTemplate() ? '' : appt.appointment.title\"\n [style.width]=\"appt.layoutWidth\"\n [style.height]=\"appt.layoutHeight\"\n class=\"ax-scheduler-week-appointment\"\n [style.inset-block-start]=\"appt.layoutTop\"\n [style.inset-inline-start]=\"appt.layoutLeft\"\n [class.ax-state-active]=\"isActive(appt.appointment.id)\"\n [class]=\"\n appt.appointment.cssClass ?? 'ax-scheduler-' + (appt.appointment.priority ?? 'primary') + '-priority'\n \"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appt.appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appt.appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appt.appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appt.appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{ appt.appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async }}\n </ax-subtitle>\n </div>\n }\n\n <!-- Overflow Badges with Popovers -->\n @for (badge of overflowBadgesWithData(); track badge.key) {\n <!-- Wrap badge and popover for targeting -->\n <div\n style=\"position: absolute\"\n class=\"ax-scheduler-badge-wrapper\"\n [style.inset-block-start]=\"badge.badgeTop\"\n [style.inset-inline-start]=\"badge.badgeLeft\"\n >\n <!-- The Badge itself -->\n <div\n #actionButton\n class=\"ax-scheduler-appointment-badge\"\n [class]=\"\n badge.hiddenAppointments[0].cssClass ??\n 'ax-scheduler-' + (badge.hiddenAppointments[0].priority ?? 'primary') + '-priority'\n \"\n >\n +{{ badge.count }}\n </div>\n <!-- The Popover -->\n <ax-popover [target]=\"actionButton\">\n <div class=\"ax-scheduler-popover\" axDropZone>\n @for (appointment of badge.hiddenAppointments; track appointment.id) {\n <div\n axDrag\n [dragCursor]=\"'grab'\"\n [dragData]=\"appointment\"\n [dragTransition]=\"false\"\n [dragElementClone]=\"true\"\n [dragStartDelay]=\"dragStartDelay()\"\n [dragDisabled]=\"!draggable() || appointment.readonly || readonly()\"\n (click)=\"handleAppointmentEvent($event, appointment)\"\n (dblclick)=\"handleAppointmentEvent($event, appointment)\"\n (contextmenu)=\"handleAppointmentEvent($event, appointment)\"\n [title]=\"tooltipTemplate() ? '' : appointment.title\"\n class=\"ax-scheduler-popover-appointment\"\n [class.ax-state-active]=\"isActive(appointment.id)\"\n [class]=\"appointment.cssClass ?? 'ax-scheduler-' + (appointment.priority ?? 'primary') + '-priority'\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltipContext]=\"appointment\"\n [axTooltip]=\"tooltipTemplate()\"\n >\n <ax-title>\n <span class=\"ax-scheduler-truncate\">{{ appointment.title }}</span>\n @if (hasActions()) {\n <ax-icon\n (click)=\"handleActionClick($event, appointment)\"\n class=\"ax-icon ax-icon-more-horizontal ax-scheduler-action-icon\"\n ></ax-icon>\n }\n </ax-title>\n <ax-subtitle>\n {{\n appointment.originalStartDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n -\n {{\n appointment.originalEndDate | format: 'time' : { format: 'HH:mm', calendar: calendar() } | async\n }}\n </ax-subtitle>\n </div>\n }\n </div>\n </ax-popover>\n </div>\n }\n </div>\n\n <table aria-hidden=\"true\" [border]=\"1\">\n <tbody>\n @for (time of hoursArray(); track time.date.getTime()) {\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 0)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 0)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.format('HHmm')\"\n ></td>\n }\n </tr>\n <tr>\n @for (day of daysArray(); track day.date.date.getTime()) {\n <td\n axDropZone\n #zone2=\"axDropZone\"\n [class.ax-scheduler-slot-hovered]=\"zone2.isHovered()\"\n (onElementDrop)=\"handleSingleDayDrop($event, time, day.date, 1)\"\n (click)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (dblclick)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n (contextmenu)=\"handleSingleSlotEvent($event, time, day.date, 1)\"\n [attr.data-slot-id]=\"day.date.format('YYYYMMDD') + '-' + time.add('minute', 30).format('HHmm')\"\n ></td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";ax-scheduler-week-view{--ax-scheduler-week-spanning-row-height: 1.5rem;--ax-scheduler-week-spanning-gap: .125rem;--ax-scheduler-week-spanning-row-gap: .25rem;display:block;position:relative;background-color:inherit;min-width:var(--ax-comp-scheduler-width)}ax-scheduler-week-view .ax-scheduler-appointment-badge{display:flex;width:1.5rem;height:1.5rem;cursor:pointer;font-size:.75rem;align-items:center;border-radius:9999px;justify-content:center}ax-scheduler-week-view .ax-scheduler-week-header{top:0;z-index:20;width:100%;position:sticky;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days{display:flex;background-color:inherit;border-block-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-table{z-index:10;flex-shrink:0;position:sticky;text-align:center;inset-inline-start:0;width:var(--ax-comp-scheduler-basic-view-blocks-width);background-color:inherit;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date{width:calc(100% - var(--ax-comp-scheduler-basic-view-blocks-width));display:flex}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div{width:100%;text-align:center;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day{gap:.25rem;display:grid;align-items:center;padding-inline:.5rem;justify-content:center}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-char{font-weight:500}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-today .ax-scheduler-week-header-date-day-num{font-weight:700}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday{color:rgba(var(--ax-sys-color-danger-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day.ax-state-holiday.ax-state-today{color:rgba(var(--ax-sys-color-primary-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-char{max-width:100%;font-weight:300}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div.ax-scheduler-week-header-date-day .ax-scheduler-week-header-date-day-num{font-weight:500;font-size:1.25rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date div:last-child{border-inline-end-width:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot{gap:.25rem;display:flex;width:14.2857142857%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot .ax-scheduler-header-week-appointment{display:block;overflow:hidden;text-align:start;padding-inline:.5rem;width:100%;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days .ax-scheduler-week-header-date .ax-scheduler-all-day-slot ax-popover{display:none}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content{display:flex;flex-direction:column;width:calc(100% - var(--ax-comp-scheduler-basic-view-blocks-width));position:relative}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer{display:grid;grid-template-columns:repeat(7,1fr);padding-block:.25rem;row-gap:var(--ax-scheduler-week-spanning-row-gap);align-content:start;position:relative}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer:before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:linear-gradient(to right,transparent calc(14.2857142857% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(14.2857142857% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(14.2857142857% + .5px),transparent calc(14.2857142857% + .5px),transparent calc(28.5714285714% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(28.5714285714% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(28.5714285714% + .5px),transparent calc(28.5714285714% + .5px),transparent calc(42.8571428571% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(42.8571428571% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(42.8571428571% + .5px),transparent calc(42.8571428571% + .5px),transparent calc(57.1428571429% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(57.1428571429% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(57.1428571429% + .5px),transparent calc(57.1428571429% + .5px),transparent calc(71.4285714286% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(71.4285714286% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(71.4285714286% + .5px),transparent calc(71.4285714286% + .5px),transparent calc(85.7142857143% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(85.7142857143% - .5px),rgba(var(--ax-sys-color-border-lightest-surface)) calc(85.7142857143% + .5px),transparent calc(85.7142857143% + .5px))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment{z-index:1;display:flex;align-items:center;cursor:pointer;overflow:hidden;font-size:.75rem;white-space:nowrap;border-radius:.25rem;text-overflow:ellipsis;padding:.125rem .5rem;height:var(--ax-scheduler-week-spanning-row-height);margin-inline:.125rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment .ax-spanning-appointment-title{display:flex;align-items:center;justify-content:space-between;width:100%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment .ax-spanning-appointment-title .ax-scheduler-action-icon{width:auto;cursor:pointer;flex-shrink:0;margin-inline-start:.25rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-start-clipped{position:relative;border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:0;padding-inline-start:1rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2190 \";position:absolute;inset-inline-start:.25rem;top:50%;transform:translateY(-50%);font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-start-clipped:before{content:\"\\2192 \"}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-end-clipped{position:relative;border-start-end-radius:0;border-end-end-radius:0;margin-inline-end:0;padding-inline-end:1rem}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2192\";position:absolute;inset-inline-end:.25rem;top:50%;transform:translateY(-50%);font-size:.65rem;opacity:.7}ax-scheduler.ax-rtl ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-spanning-layer .ax-scheduler-week-spanning-appointment.ax-spanning-end-clipped:after{content:\" \\2190\"}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots{display:flex;height:100%}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot{gap:.25rem;display:flex;width:14.2857142857%;padding-block:.25rem;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot:last-child{border-inline-end-width:0}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot .ax-scheduler-header-week-appointment{display:block;overflow:hidden;text-align:start;padding-inline:.5rem;width:100%;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-week-view .ax-scheduler-week-header .ax-scheduler-week-header-days.ax-scheduler-week-allday-header .ax-scheduler-week-allday-content .ax-scheduler-week-allday-slots .ax-scheduler-all-day-slot ax-popover{display:none}ax-scheduler-week-view .ax-scheduler-week-time-container{width:100%;display:flex;background-color:inherit}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time{z-index:15;position:sticky;inset-inline-start:0;background-color:var(--ax-comp-scheduler-all-day-bg, inherit)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-time div{display:block;text-align:center;padding-inline:.5rem;width:var(--ax-comp-scheduler-basic-view-blocks-width);height:calc(var(--ax-comp-scheduler-basic-view-blocks-height) * 2);border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface));position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container{width:100%;position:relative}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container{top:0;width:100%;position:absolute}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container .ax-scheduler-week-appointment-container .ax-scheduler-week-appointment{display:flex;position:absolute;inset-inline-start:0;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2)}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table{width:100%}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr{display:flex;height:var(--ax-comp-scheduler-basic-view-blocks-height);border-block-start:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr:first-child{border-block-start-width:0}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td{width:100%;text-align:center;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-scheduler-week-view .ax-scheduler-week-time-container .ax-scheduler-week-table-container table tr td:last-child{border-inline-end-width:0}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-appointment,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-header-week-appointment{cursor:pointer}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td{cursor:pointer;transition-property:background-color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-all-day-slot:hover,ax-scheduler-week-view:not(.ax-state-readonly) .ax-scheduler-week-table-container>table td:hover{background-color:rgba(var(--ax-comp-scheduler-slot-hover-bg, var(--ax-sys-color-primary-surface), .1))}ax-scheduler-week-view ax-title{display:flex;justify-content:space-between}ax-scheduler-week-view ax-title .ax-scheduler-action-icon{width:auto;cursor:pointer}ax-scheduler-week-view .ax-scheduler-current-time-line{height:2px}ax-scheduler-week-view .ax-scheduler-current-time-line:before{top:-5px;inset-inline-start:-6px}\n"] }]
4530
+ }] });
4532
4531
 
4533
4532
  class AXSchedulerComponent extends NXComponent {
4534
4533
  constructor() {
@@ -4540,12 +4539,12 @@ class AXSchedulerComponent extends NXComponent {
4540
4539
  this.schedulerService = inject(AXSchedulerService);
4541
4540
  this.translationService = inject(AXTranslationService);
4542
4541
  this.eventService = inject(AXEventService);
4543
- this.translationRevision = signal(0, ...(ngDevMode ? [{ debugName: "translationRevision" }] : /* istanbul ignore next */ []));
4544
- this.viewModeSelectbox = viewChild(AXSelectBoxComponent, ...(ngDevMode ? [{ debugName: "viewModeSelectbox" }] : /* istanbul ignore next */ []));
4545
- this.calendarPopover = viewChild('calendarPopover', ...(ngDevMode ? [{ debugName: "calendarPopover" }] : /* istanbul ignore next */ []));
4546
- this._calendarDayCellTemplate = viewChild('calendarDayCellTemplate', ...(ngDevMode ? [{ debugName: "_calendarDayCellTemplate" }] : /* istanbul ignore next */ []));
4547
- this._calendarMonthCellTemplate = viewChild('calendarMonthCellTemplate', ...(ngDevMode ? [{ debugName: "_calendarMonthCellTemplate" }] : /* istanbul ignore next */ []));
4548
- this._calendarYearCellTemplate = viewChild('calendarYearCellTemplate', ...(ngDevMode ? [{ debugName: "_calendarYearCellTemplate" }] : /* istanbul ignore next */ []));
4542
+ this.translationRevision = signal(0, ...(ngDevMode ? [{ debugName: "translationRevision" }] : []));
4543
+ this.viewModeSelectbox = viewChild(AXSelectBoxComponent, ...(ngDevMode ? [{ debugName: "viewModeSelectbox" }] : []));
4544
+ this.calendarPopover = viewChild('calendarPopover', ...(ngDevMode ? [{ debugName: "calendarPopover" }] : []));
4545
+ this._calendarDayCellTemplate = viewChild('calendarDayCellTemplate', ...(ngDevMode ? [{ debugName: "_calendarDayCellTemplate" }] : []));
4546
+ this._calendarMonthCellTemplate = viewChild('calendarMonthCellTemplate', ...(ngDevMode ? [{ debugName: "_calendarMonthCellTemplate" }] : []));
4547
+ this._calendarYearCellTemplate = viewChild('calendarYearCellTemplate', ...(ngDevMode ? [{ debugName: "_calendarYearCellTemplate" }] : []));
4549
4548
  this.displayViews = {
4550
4549
  day: 'daily',
4551
4550
  week: 'weekly',
@@ -4556,47 +4555,58 @@ class AXSchedulerComponent extends NXComponent {
4556
4555
  'timeline-year': 'yearly-timeline',
4557
4556
  agenda: 'agenda',
4558
4557
  };
4559
- this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : /* istanbul ignore next */ []));
4560
- this.calendarType = linkedSignal(() => this.localeService.activeProfile().calendar.system, ...(ngDevMode ? [{ debugName: "calendarType" }] : /* istanbul ignore next */ []));
4561
- this.startingDate = input(new Date(), ...(ngDevMode ? [{ debugName: "startingDate" }] : /* istanbul ignore next */ []));
4562
- this.currentDate = linkedSignal({ ...(ngDevMode ? { debugName: "currentDate" } : /* istanbul ignore next */ {}), source: () => ({
4563
- startingDate: this.startingDate(),
4564
- calendarType: this.calendarType(),
4565
- }),
4566
- computation: (source, previous) => {
4567
- if (previous) {
4568
- return this.calendarService.create(previous.value.date, source.calendarType);
4569
- }
4570
- return this.calendarService.create(source.startingDate, source.calendarType).startOf('day');
4571
- } });
4572
- this._appointments = signal([], ...(ngDevMode ? [{ debugName: "_appointments" }] : /* istanbul ignore next */ []));
4558
+ this.calendar = input(...(ngDevMode ? [undefined, { debugName: "calendar" }] : []));
4559
+ this.calendarType = linkedSignal(() => this.localeService.activeProfile().calendar.system, ...(ngDevMode ? [{ debugName: "calendarType" }] : []));
4560
+ this.startingDate = input(new Date(), ...(ngDevMode ? [{ debugName: "startingDate" }] : []));
4561
+ this.currentDate = linkedSignal(...(ngDevMode ? [{ debugName: "currentDate", source: () => ({
4562
+ startingDate: this.startingDate(),
4563
+ calendarType: this.calendarType(),
4564
+ }),
4565
+ computation: (source, previous) => {
4566
+ if (previous) {
4567
+ return this.calendarService.create(previous.value.date, source.calendarType);
4568
+ }
4569
+ return this.calendarService.create(source.startingDate, source.calendarType).startOf('day');
4570
+ } }] : [{
4571
+ source: () => ({
4572
+ startingDate: this.startingDate(),
4573
+ calendarType: this.calendarType(),
4574
+ }),
4575
+ computation: (source, previous) => {
4576
+ if (previous) {
4577
+ return this.calendarService.create(previous.value.date, source.calendarType);
4578
+ }
4579
+ return this.calendarService.create(source.startingDate, source.calendarType).startOf('day');
4580
+ },
4581
+ }]));
4582
+ this._appointments = signal([], ...(ngDevMode ? [{ debugName: "_appointments" }] : []));
4573
4583
  this.appointments = this._appointments.asReadonly();
4574
4584
  this.rtl = this.localeService.isRtl;
4575
- this.isFullScreen = signal(false, ...(ngDevMode ? [{ debugName: "isFullScreen" }] : /* istanbul ignore next */ []));
4576
- this.viewsDataSource = signal([], ...(ngDevMode ? [{ debugName: "viewsDataSource" }] : /* istanbul ignore next */ []));
4577
- this.prevDate = signal(this.calendarService.create(new Date(), this.calendarType()), ...(ngDevMode ? [{ debugName: "prevDate" }] : /* istanbul ignore next */ []));
4585
+ this.isFullScreen = signal(false, ...(ngDevMode ? [{ debugName: "isFullScreen" }] : []));
4586
+ this.viewsDataSource = signal([], ...(ngDevMode ? [{ debugName: "viewsDataSource" }] : []));
4587
+ this.prevDate = signal(this.calendarService.create(new Date(), this.calendarType()), ...(ngDevMode ? [{ debugName: "prevDate" }] : []));
4578
4588
  // Track the currently selected/active appointment
4579
- this.selectedAppointmentId = signal(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : /* istanbul ignore next */ []));
4580
- this.endDayHour = input(24, ...(ngDevMode ? [{ debugName: "endDayHour" }] : /* istanbul ignore next */ []));
4581
- this.startDayHour = input(8, ...(ngDevMode ? [{ debugName: "startDayHour" }] : /* istanbul ignore next */ []));
4582
- this.hasHeader = input(true, ...(ngDevMode ? [{ debugName: "hasHeader" }] : /* istanbul ignore next */ []));
4583
- this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
4584
- this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : /* istanbul ignore next */ []));
4585
- this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : /* istanbul ignore next */ []));
4586
- this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : /* istanbul ignore next */ []));
4587
- this.weekend = input([], ...(ngDevMode ? [{ debugName: "weekend" }] : /* istanbul ignore next */ []));
4588
- this.allowFullScreen = input(true, ...(ngDevMode ? [{ debugName: "allowFullScreen" }] : /* istanbul ignore next */ []));
4589
- this.multiDayViewDaysCount = input(7, ...(ngDevMode ? [{ debugName: "multiDayViewDaysCount" }] : /* istanbul ignore next */ []));
4590
- this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : /* istanbul ignore next */ []));
4591
- this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
4592
- this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : /* istanbul ignore next */ []));
4593
- this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : /* istanbul ignore next */ []));
4594
- this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : /* istanbul ignore next */ []));
4595
- this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : /* istanbul ignore next */ []));
4596
- this.firstDayOfWeek = input(...(ngDevMode ? [undefined, { debugName: "firstDayOfWeek" }] : /* istanbul ignore next */ []));
4597
- this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : /* istanbul ignore next */ []));
4598
- this.dataSource = input([], ...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
4599
- this.holidays = input(...(ngDevMode ? [undefined, { debugName: "holidays" }] : /* istanbul ignore next */ []));
4589
+ this.selectedAppointmentId = signal(null, ...(ngDevMode ? [{ debugName: "selectedAppointmentId" }] : []));
4590
+ this.endDayHour = input(24, ...(ngDevMode ? [{ debugName: "endDayHour" }] : []));
4591
+ this.startDayHour = input(8, ...(ngDevMode ? [{ debugName: "startDayHour" }] : []));
4592
+ this.hasHeader = input(true, ...(ngDevMode ? [{ debugName: "hasHeader" }] : []));
4593
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
4594
+ this.draggable = input(true, ...(ngDevMode ? [{ debugName: "draggable" }] : []));
4595
+ this.hasActions = input(false, ...(ngDevMode ? [{ debugName: "hasActions" }] : []));
4596
+ this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: "dragStartDelay" }] : []));
4597
+ this.weekend = input([], ...(ngDevMode ? [{ debugName: "weekend" }] : []));
4598
+ this.allowFullScreen = input(true, ...(ngDevMode ? [{ debugName: "allowFullScreen" }] : []));
4599
+ this.multiDayViewDaysCount = input(7, ...(ngDevMode ? [{ debugName: "multiDayViewDaysCount" }] : []));
4600
+ this.showResourceHeaders = input(true, ...(ngDevMode ? [{ debugName: "showResourceHeaders" }] : []));
4601
+ this.showCurrentTimeIndicator = input(true, ...(ngDevMode ? [{ debugName: "showCurrentTimeIndicator" }] : []));
4602
+ this.scrollToCurrentTimeIndicator = input(false, ...(ngDevMode ? [{ debugName: "scrollToCurrentTimeIndicator" }] : []));
4603
+ this.showUnassignedAppointments = input(true, ...(ngDevMode ? [{ debugName: "showUnassignedAppointments" }] : []));
4604
+ this.resources = input([], ...(ngDevMode ? [{ debugName: "resources" }] : []));
4605
+ this.resourceTemplate = input(...(ngDevMode ? [undefined, { debugName: "resourceTemplate" }] : []));
4606
+ this.firstDayOfWeek = input(...(ngDevMode ? [undefined, { debugName: "firstDayOfWeek" }] : []));
4607
+ this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: "tooltipTemplate" }] : []));
4608
+ this.dataSource = input([], ...(ngDevMode ? [{ debugName: "dataSource" }] : []));
4609
+ this.holidays = input(...(ngDevMode ? [undefined, { debugName: "holidays" }] : []));
4600
4610
  this.views = input([
4601
4611
  'day',
4602
4612
  'week',
@@ -4606,9 +4616,9 @@ class AXSchedulerComponent extends NXComponent {
4606
4616
  'timeline-month',
4607
4617
  'timeline-year',
4608
4618
  'agenda',
4609
- ], ...(ngDevMode ? [{ debugName: "views" }] : /* istanbul ignore next */ []));
4610
- this.selectedView = model(this.views()[0], ...(ngDevMode ? [{ debugName: "selectedView" }] : /* istanbul ignore next */ []));
4611
- this.prevView = signal(this.selectedView(), ...(ngDevMode ? [{ debugName: "prevView" }] : /* istanbul ignore next */ []));
4619
+ ], ...(ngDevMode ? [{ debugName: "views" }] : []));
4620
+ this.selectedView = model(this.views()[0], ...(ngDevMode ? [{ debugName: "selectedView" }] : []));
4621
+ this.prevView = signal(this.selectedView(), ...(ngDevMode ? [{ debugName: "prevView" }] : []));
4612
4622
  // --- Public Outputs ---
4613
4623
  this.onDataLoaded = output();
4614
4624
  this.onRangeChanged = output();
@@ -4627,7 +4637,7 @@ class AXSchedulerComponent extends NXComponent {
4627
4637
  if (override != null && override !== profileSystem) {
4628
4638
  untracked(() => this.calendarType.set(override));
4629
4639
  }
4630
- }, ...(ngDevMode ? [{ debugName: "#calendarOverrideEffect" }] : /* istanbul ignore next */ []));
4640
+ }, ...(ngDevMode ? [{ debugName: "#calendarOverrideEffect" }] : []));
4631
4641
  this.#appointmentEffect = effect(() => {
4632
4642
  const dataSource = this.dataSource();
4633
4643
  const range = {
@@ -4653,7 +4663,7 @@ class AXSchedulerComponent extends NXComponent {
4653
4663
  this._appointments.set(list);
4654
4664
  this.onDataLoaded.emit();
4655
4665
  }
4656
- }, ...(ngDevMode ? [{ debugName: "#appointmentEffect" }] : /* istanbul ignore next */ []));
4666
+ }, ...(ngDevMode ? [{ debugName: "#appointmentEffect" }] : []));
4657
4667
  this.#holidayEffect = effect(() => {
4658
4668
  const func = this.holidays();
4659
4669
  if (!func)
@@ -4671,11 +4681,11 @@ class AXSchedulerComponent extends NXComponent {
4671
4681
  else {
4672
4682
  this.schedulerService.internalHoliday.set(result);
4673
4683
  }
4674
- }, ...(ngDevMode ? [{ debugName: "#holidayEffect" }] : /* istanbul ignore next */ []));
4684
+ }, ...(ngDevMode ? [{ debugName: "#holidayEffect" }] : []));
4675
4685
  this.#weekendEffect = effect(() => {
4676
4686
  const weekend = this.weekend();
4677
4687
  this.schedulerService.internalWeekend.set(weekend);
4678
- }, ...(ngDevMode ? [{ debugName: "#weekendEffect" }] : /* istanbul ignore next */ []));
4688
+ }, ...(ngDevMode ? [{ debugName: "#weekendEffect" }] : []));
4679
4689
  this.currentDateText = computed(() => {
4680
4690
  this.translationRevision();
4681
4691
  this.localeService.activeProfile();
@@ -4721,7 +4731,7 @@ class AXSchedulerComponent extends NXComponent {
4721
4731
  calendar: this.calendarType(),
4722
4732
  });
4723
4733
  }
4724
- }, ...(ngDevMode ? [{ debugName: "currentDateText" }] : /* istanbul ignore next */ []));
4734
+ }, ...(ngDevMode ? [{ debugName: "currentDateText" }] : []));
4725
4735
  this.calendarDepth = computed(() => {
4726
4736
  switch (this.selectedView()) {
4727
4737
  case 'day':
@@ -4736,7 +4746,7 @@ class AXSchedulerComponent extends NXComponent {
4736
4746
  case 'timeline-year':
4737
4747
  return 'year';
4738
4748
  }
4739
- }, ...(ngDevMode ? [{ debugName: "calendarDepth" }] : /* istanbul ignore next */ []));
4749
+ }, ...(ngDevMode ? [{ debugName: "calendarDepth" }] : []));
4740
4750
  this.mappedAppointments = computed(() => {
4741
4751
  const items = this._appointments();
4742
4752
  return items
@@ -4756,7 +4766,7 @@ class AXSchedulerComponent extends NXComponent {
4756
4766
  return item;
4757
4767
  })
4758
4768
  .filter((appt) => appt !== null); // Filter out nulls from invalid dates
4759
- }, ...(ngDevMode ? [{ debugName: "mappedAppointments" }] : /* istanbul ignore next */ []));
4769
+ }, ...(ngDevMode ? [{ debugName: "mappedAppointments" }] : []));
4760
4770
  this.range = computed(() => {
4761
4771
  const view = this.selectedView();
4762
4772
  const current = this.currentDate().startOf('day');
@@ -4791,16 +4801,16 @@ class AXSchedulerComponent extends NXComponent {
4791
4801
  return range;
4792
4802
  }
4793
4803
  }
4794
- }, ...(ngDevMode ? [{ debugName: "range" }] : /* istanbul ignore next */ []));
4804
+ }, ...(ngDevMode ? [{ debugName: "range" }] : []));
4795
4805
  this.#rangeChangedEffect = effect(() => {
4796
4806
  this.onRangeChanged.emit(this.range());
4797
- }, ...(ngDevMode ? [{ debugName: "#rangeChangedEffect" }] : /* istanbul ignore next */ []));
4807
+ }, ...(ngDevMode ? [{ debugName: "#rangeChangedEffect" }] : []));
4798
4808
  this.#viewChangedEffect = effect(() => {
4799
4809
  const view = this.selectedView();
4800
4810
  untracked(() => {
4801
4811
  this.handleViewChanged(this.prevView(), view);
4802
4812
  });
4803
- }, ...(ngDevMode ? [{ debugName: "#viewChangedEffect" }] : /* istanbul ignore next */ []));
4813
+ }, ...(ngDevMode ? [{ debugName: "#viewChangedEffect" }] : []));
4804
4814
  this.viewAppointments = computed(() => {
4805
4815
  const current = this.currentDate();
4806
4816
  const mapped = this.mappedAppointments();
@@ -4810,7 +4820,7 @@ class AXSchedulerComponent extends NXComponent {
4810
4820
  return [];
4811
4821
  return mapped.filter((appt) => this.calendarService.create(appt.startDate, this.calendarType()).compare(rangeEnd, 'second') <= 0 &&
4812
4822
  this.calendarService.create(appt.endDate, this.calendarType()).compare(rangeStart, 'second') >= 0);
4813
- }, ...(ngDevMode ? [{ debugName: "viewAppointments" }] : /* istanbul ignore next */ []));
4823
+ }, ...(ngDevMode ? [{ debugName: "viewAppointments" }] : []));
4814
4824
  }
4815
4825
  /** Expose template refs for calendar bindings (signals are not callable in template type-check) */
4816
4826
  get calendarDayCellTemplateRef() {
@@ -5108,10 +5118,10 @@ class AXSchedulerComponent extends NXComponent {
5108
5118
  this._appointments.set(list);
5109
5119
  this.onDataLoaded.emit();
5110
5120
  }
5111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXSchedulerComponent, isStandalone: true, selector: "ax-scheduler", inputs: { calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, startingDate: { classPropertyName: "startingDate", publicName: "startingDate", isSignal: true, isRequired: false, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: false, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: false, transformFunction: null }, hasHeader: { classPropertyName: "hasHeader", publicName: "hasHeader", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, weekend: { classPropertyName: "weekend", publicName: "weekend", isSignal: true, isRequired: false, transformFunction: null }, allowFullScreen: { classPropertyName: "allowFullScreen", publicName: "allowFullScreen", isSignal: true, isRequired: false, transformFunction: null }, multiDayViewDaysCount: { classPropertyName: "multiDayViewDaysCount", publicName: "multiDayViewDaysCount", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, holidays: { classPropertyName: "holidays", publicName: "holidays", isSignal: true, isRequired: false, transformFunction: null }, views: { classPropertyName: "views", publicName: "views", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: "selectedView", publicName: "selectedView", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedView: "selectedViewChange", onDataLoaded: "onDataLoaded", onRangeChanged: "onRangeChanged", onSlotClicked: "onSlotClicked", onSlotDblClicked: "onSlotDblClicked", onSlotRightClick: "onSlotRightClick", onAppointmentDrop: "onAppointmentDrop", onActionClick: "onActionClick", onAppointmentClicked: "onAppointmentClicked", onAppointmentDblClicked: "onAppointmentDblClicked", onAppointmentRightClick: "onAppointmentRightClick" }, host: { properties: { "class.ax-rtl": "rtl()" } }, providers: [AXUnsubscriber, { provide: AXComponent, useExisting: AXSchedulerComponent }], viewQueries: [{ propertyName: "viewModeSelectbox", first: true, predicate: AXSelectBoxComponent, descendants: true, isSignal: true }, { propertyName: "calendarPopover", first: true, predicate: ["calendarPopover"], descendants: true, isSignal: true }, { propertyName: "_calendarDayCellTemplate", first: true, predicate: ["calendarDayCellTemplate"], descendants: true, isSignal: true }, { propertyName: "_calendarMonthCellTemplate", first: true, predicate: ["calendarMonthCellTemplate"], descendants: true, isSignal: true }, { propertyName: "_calendarYearCellTemplate", first: true, predicate: ["calendarYearCellTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-container\">\n @if (hasHeader()) {\n <div class=\"ax-scheduler-header\">\n <div class=\"ax-scheduler-date\">\n <ax-button look=\"blank\" (onClick)=\"prevClick()\">\n <ax-icon\n class=\"ax-icon text-xl\"\n [class.ax-icon-chevron-left]=\"!rtl()\"\n [class.ax-icon-chevron-right]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"nextClick()\">\n <ax-icon\n class=\"ax-icon text-xl\"\n [class.ax-icon-chevron-right]=\"!rtl()\"\n [class.ax-icon-chevron-left]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" #calendarPopover>\n <ax-calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [ngModel]=\"currentDate()\"\n [dayCellTemplate]=\"calendarDayCellTemplateRef\"\n [monthCellTemplate]=\"calendarMonthCellTemplateRef\"\n [yearCellTemplate]=\"calendarYearCellTemplateRef\"\n (onValueChanged)=\"calendarDateChanged($event)\"\n ></ax-calendar>\n </ax-popover>\n </div>\n <div class=\"ax-scheduler-actions\">\n <ax-select-box\n [dropdownWidth]=\"'200px'\"\n [ngModel]=\"selectedView()\"\n [dataSource]=\"viewsDataSource()\"\n (onValueChanged)=\"viewChanged($event)\"\n ></ax-select-box>\n\n @if (allowFullScreen()) {\n <ax-button look=\"blank\" (onClick)=\"handleFullScreen()\">\n <ax-icon>\n <i class=\"fa-solid\" [class.fa-compress]=\"isFullScreen()\" [class.fa-expand]=\"!isFullScreen()\"></i>\n </ax-icon>\n </ax-button>\n }\n </div>\n </div>\n }\n <div class=\"ax-scheduler-views-container\">\n @switch (selectedView()) {\n @case ('day') {\n <ax-scheduler-day-view\n [rtl]=\"rtl()\"\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-day-view>\n }\n @case ('week') {\n <ax-scheduler-week-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-week-view>\n }\n @case ('month') {\n <ax-scheduler-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-month-view>\n }\n @case ('timeline-day') {\n <ax-scheduler-timeline-day-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-day-view>\n }\n @case ('timeline-weekly') {\n <ax-scheduler-timeline-weekly-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-weekly-view>\n }\n @case ('timeline-month') {\n <ax-scheduler-timeline-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-month-view>\n }\n @case ('timeline-year') {\n <ax-scheduler-timeline-year-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-year-view>\n }\n @case ('agenda') {\n <ax-scheduler-agenda-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-agenda-view>\n }\n }\n </div>\n</div>\n<ng-template #calendarDayCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"flex flex-col items-center justify-between gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsOnDate(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarMonthCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"flex flex-col items-center justify-between gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInMonth(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarYearCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"flex flex-col items-center justify-between gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInYear(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-content:\"\"}}}@layer base{:root{--ax-comp-scheduler-width:57.5rem;--ax-comp-scheduler-basic-view-blocks-height:3rem;--ax-comp-scheduler-basic-view-blocks-width:3.5rem;--ax-comp-scheduler-timeline-view-blocks-width:20rem;--ax-comp-scheduler-timeline-view-blocks-height:3rem}}@layer components{ax-scheduler{width:100%;height:100%;display:block}ax-scheduler .ax-scheduler-primary-periority{background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-scheduler .ax-scheduler-highest-periority{background-color:rgba(var(--ax-sys-color-danger-dark-surface));color:rgba(var(--ax-sys-color-on-danger-dark-surface))}ax-scheduler .ax-scheduler-high-periority{background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface))}ax-scheduler .ax-scheduler-medium-periority{background-color:rgba(var(--ax-sys-color-warning-surface));color:rgba(var(--ax-sys-color-on-warning-surface))}ax-scheduler .ax-scheduler-low-periority{background-color:rgba(var(--ax-sys-color-success-light-surface));color:rgba(var(--ax-sys-color-on-success-light-surface))}ax-scheduler .ax-scheduler-lowest-periority{background-color:rgba(var(--ax-sys-color-success-lightest-surface));color:rgba(var(--ax-sys-color-on-success-lightest-surface))}ax-scheduler{background-color:inherit;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));-webkit-user-select:none;user-select:none}ax-scheduler.ax-full-screen-container{z-index:61;width:100vw;height:100vh;position:fixed;top:0;left:0}ax-scheduler .ax-scheduler-container{border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);background-color:inherit;border-width:1px;flex-direction:column;height:100%;display:flex;overflow:hidden}ax-scheduler .ax-scheduler-container .ax-scheduler-header{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 4);border-bottom-width:1px;justify-content:space-between;align-items:center;display:flex;overflow:auto hidden}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date{min-width:calc(var(--spacing,.25rem) * 82);justify-content:space-between;align-items:center;display:flex}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date p{min-width:calc(var(--spacing,.25rem) * 40);text-align:center;font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);margin:0}ax-scheduler .ax-scheduler-container .ax-scheduler-actions{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 3);display:flex}ax-scheduler .ax-scheduler-container .ax-scheduler-truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}ax-scheduler .ax-scheduler-container ax-subtitle{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}ax-scheduler .ax-scheduler-container .ax-scheduler-views-container{background-color:inherit;height:100%;overflow:auto}.ax-overlay-pane.ax-scheduler-popover{max-height:calc(var(--spacing,.25rem) * 40);gap:var(--spacing,.25rem);border-radius:var(--ax-sys-border-radius);display:grid;overflow:auto}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-primary-periority{background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-highest-periority{background-color:rgba(var(--ax-sys-color-danger-dark-surface));color:rgba(var(--ax-sys-color-on-danger-dark-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-high-periority{background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-medium-periority{background-color:rgba(var(--ax-sys-color-warning-surface));color:rgba(var(--ax-sys-color-on-warning-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-low-periority{background-color:rgba(var(--ax-sys-color-success-light-surface));color:rgba(var(--ax-sys-color-on-success-light-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-lowest-periority{background-color:rgba(var(--ax-sys-color-success-lightest-surface));color:rgba(var(--ax-sys-color-on-success-lightest-surface))}.ax-overlay-pane.ax-scheduler-popover{padding:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.ax-overlay-pane.ax-scheduler-popover.ax-scheduler-month-popover-appointment{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.ax-overlay-pane.ax-scheduler-popover:not(.ax-state-readonly) .ax-scheduler-popover-appointment{cursor:pointer}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);background-color:rgba(var(--ax-sys-color-primary-surface));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);color:rgba(var(--ax-sys-color-on-primary-surface));-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;overflow:hidden}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment ax-subtitle{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment .ax-scheduler-truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ax-overlay-pane.ax-scheduler-popover ax-title,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title{justify-content:space-between;display:flex}:is(.ax-overlay-pane.ax-scheduler-popover ax-title,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title) .ax-scheduler-action-icon{cursor:pointer;width:auto}.ax-scheduler-current-time-line{pointer-events:none;z-index:7;--tw-shadow:0 0 6px var(--tw-shadow-color,#ef4444cc);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:#ef4444;position:absolute}.ax-scheduler-current-time-line:before{width:calc(var(--spacing,.25rem) * 3);height:calc(var(--spacing,.25rem) * 3);border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-surface));--tw-shadow:0 0 8px var(--tw-shadow-color,#ef4444e6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-content:\"\";content:var(--tw-content);background-color:#ef4444;border-radius:3.40282e38px;position:absolute}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "dayCellTemplate", "monthCellTemplate", "yearCellTemplate", "cellClass", "showNavigation", "count", "id", "weekend", "weekdays", "look"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSchedulerDayViewComponent, selector: "ax-scheduler-day-view", inputs: ["rtl", "readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "endDayHour", "startDayHour", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "appointments", "tooltipTemplate", "selectedAppointmentId"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerWeekViewComponent, selector: "ax-scheduler-week-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "endDayHour", "startDayHour", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "appointments", "tooltipTemplate", "selectedAppointmentId"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerMonthViewComponent, selector: "ax-scheduler-month-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "appointments", "firstDayOfWeek", "selectedAppointmentId", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerAgendaViewComponent, selector: "ax-scheduler-agenda-view", inputs: ["daysCount", "readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "appointments", "tooltipTemplate", "selectedAppointmentId"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineDayViewComponent, selector: "ax-scheduler-timeline-day-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "endDayHour", "selectedAppointmentId", "startDayHour", "showUnassignedAppointments", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineMonthViewComponent, selector: "ax-scheduler-timeline-month-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "showUnassignedAppointments", "selectedAppointmentId", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineWeeklyViewComponent, selector: "ax-scheduler-timeline-weekly-view", inputs: ["daysCount", "readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "endDayHour", "selectedAppointmentId", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "startDayHour", "showUnassignedAppointments", "resources", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineYearViewComponent, selector: "ax-scheduler-timeline-year-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "showUnassignedAppointments", "selectedAppointmentId", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSchedulerComponent, isStandalone: true, selector: "ax-scheduler", inputs: { calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, startingDate: { classPropertyName: "startingDate", publicName: "startingDate", isSignal: true, isRequired: false, transformFunction: null }, endDayHour: { classPropertyName: "endDayHour", publicName: "endDayHour", isSignal: true, isRequired: false, transformFunction: null }, startDayHour: { classPropertyName: "startDayHour", publicName: "startDayHour", isSignal: true, isRequired: false, transformFunction: null }, hasHeader: { classPropertyName: "hasHeader", publicName: "hasHeader", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, hasActions: { classPropertyName: "hasActions", publicName: "hasActions", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "dragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, weekend: { classPropertyName: "weekend", publicName: "weekend", isSignal: true, isRequired: false, transformFunction: null }, allowFullScreen: { classPropertyName: "allowFullScreen", publicName: "allowFullScreen", isSignal: true, isRequired: false, transformFunction: null }, multiDayViewDaysCount: { classPropertyName: "multiDayViewDaysCount", publicName: "multiDayViewDaysCount", isSignal: true, isRequired: false, transformFunction: null }, showResourceHeaders: { classPropertyName: "showResourceHeaders", publicName: "showResourceHeaders", isSignal: true, isRequired: false, transformFunction: null }, showCurrentTimeIndicator: { classPropertyName: "showCurrentTimeIndicator", publicName: "showCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, scrollToCurrentTimeIndicator: { classPropertyName: "scrollToCurrentTimeIndicator", publicName: "scrollToCurrentTimeIndicator", isSignal: true, isRequired: false, transformFunction: null }, showUnassignedAppointments: { classPropertyName: "showUnassignedAppointments", publicName: "showUnassignedAppointments", isSignal: true, isRequired: false, transformFunction: null }, resources: { classPropertyName: "resources", publicName: "resources", isSignal: true, isRequired: false, transformFunction: null }, resourceTemplate: { classPropertyName: "resourceTemplate", publicName: "resourceTemplate", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: "tooltipTemplate", publicName: "tooltipTemplate", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, holidays: { classPropertyName: "holidays", publicName: "holidays", isSignal: true, isRequired: false, transformFunction: null }, views: { classPropertyName: "views", publicName: "views", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: "selectedView", publicName: "selectedView", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedView: "selectedViewChange", onDataLoaded: "onDataLoaded", onRangeChanged: "onRangeChanged", onSlotClicked: "onSlotClicked", onSlotDblClicked: "onSlotDblClicked", onSlotRightClick: "onSlotRightClick", onAppointmentDrop: "onAppointmentDrop", onActionClick: "onActionClick", onAppointmentClicked: "onAppointmentClicked", onAppointmentDblClicked: "onAppointmentDblClicked", onAppointmentRightClick: "onAppointmentRightClick" }, host: { properties: { "class.ax-rtl": "rtl()" } }, providers: [AXUnsubscriber, { provide: AXComponent, useExisting: AXSchedulerComponent }], viewQueries: [{ propertyName: "viewModeSelectbox", first: true, predicate: AXSelectBoxComponent, descendants: true, isSignal: true }, { propertyName: "calendarPopover", first: true, predicate: ["calendarPopover"], descendants: true, isSignal: true }, { propertyName: "_calendarDayCellTemplate", first: true, predicate: ["calendarDayCellTemplate"], descendants: true, isSignal: true }, { propertyName: "_calendarMonthCellTemplate", first: true, predicate: ["calendarMonthCellTemplate"], descendants: true, isSignal: true }, { propertyName: "_calendarYearCellTemplate", first: true, predicate: ["calendarYearCellTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-scheduler-container\">\n @if (hasHeader()) {\n <div class=\"ax-scheduler-header\">\n <div class=\"ax-scheduler-date\">\n <ax-button look=\"blank\" (onClick)=\"prevClick()\">\n <ax-icon\n class=\"ax-icon ax-text-xl\"\n [class.ax-icon-chevron-left]=\"!rtl()\"\n [class.ax-icon-chevron-right]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"nextClick()\">\n <ax-icon\n class=\"ax-icon ax-text-xl\"\n [class.ax-icon-chevron-right]=\"!rtl()\"\n [class.ax-icon-chevron-left]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" #calendarPopover>\n <ax-calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [ngModel]=\"currentDate()\"\n [dayCellTemplate]=\"calendarDayCellTemplateRef\"\n [monthCellTemplate]=\"calendarMonthCellTemplateRef\"\n [yearCellTemplate]=\"calendarYearCellTemplateRef\"\n (onValueChanged)=\"calendarDateChanged($event)\"\n ></ax-calendar>\n </ax-popover>\n </div>\n <div class=\"ax-scheduler-actions\">\n <ax-select-box\n [dropdownWidth]=\"'200px'\"\n [ngModel]=\"selectedView()\"\n [dataSource]=\"viewsDataSource()\"\n (onValueChanged)=\"viewChanged($event)\"\n ></ax-select-box>\n\n @if (allowFullScreen()) {\n <ax-button look=\"blank\" (onClick)=\"handleFullScreen()\">\n <ax-icon>\n <i class=\"fa-solid\" [class.fa-compress]=\"isFullScreen()\" [class.fa-expand]=\"!isFullScreen()\"></i>\n </ax-icon>\n </ax-button>\n }\n </div>\n </div>\n }\n <div class=\"ax-scheduler-views-container\">\n @switch (selectedView()) {\n @case ('day') {\n <ax-scheduler-day-view\n [rtl]=\"rtl()\"\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-day-view>\n }\n @case ('week') {\n <ax-scheduler-week-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-week-view>\n }\n @case ('month') {\n <ax-scheduler-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-month-view>\n }\n @case ('timeline-day') {\n <ax-scheduler-timeline-day-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-day-view>\n }\n @case ('timeline-weekly') {\n <ax-scheduler-timeline-weekly-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-weekly-view>\n }\n @case ('timeline-month') {\n <ax-scheduler-timeline-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-month-view>\n }\n @case ('timeline-year') {\n <ax-scheduler-timeline-year-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-year-view>\n }\n @case ('agenda') {\n <ax-scheduler-agenda-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-agenda-view>\n }\n }\n </div>\n</div>\n<ng-template #calendarDayCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-between ax-gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsOnDate(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarMonthCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-between ax-gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInMonth(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarYearCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-between ax-gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInYear(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n", styles: [":root{--ax-comp-scheduler-width: 57.5rem;--ax-comp-scheduler-basic-view-blocks-height: 3rem;--ax-comp-scheduler-basic-view-blocks-width: 3.5rem;--ax-comp-scheduler-timeline-view-blocks-width: 20rem;--ax-comp-scheduler-timeline-view-blocks-height: 3rem;--ax-comp-scheduler-primary-bg-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-scheduler-primary-text-color: var(--ax-sys-color-on-primary-lighter-surface);--ax-comp-scheduler-primary-active-border-color: var(--ax-sys-color-primary-500);--ax-comp-scheduler-highest-priority-bg-color: var(--ax-sys-color-danger-surface);--ax-comp-scheduler-highest-priority-text-color: var(--ax-sys-color-on-danger-surface);--ax-comp-scheduler-highest-priority-active-border-color: var(--ax-sys-color-danger-700);--ax-comp-scheduler-high-priority-bg-color: var(--ax-sys-color-danger-lighter-surface);--ax-comp-scheduler-high-priority-text-color: var(--ax-sys-color-on-danger-lighter-surface);--ax-comp-scheduler-high-priority-active-border-color: var(--ax-sys-color-danger-500);--ax-comp-scheduler-medium-priority-bg-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-scheduler-medium-priority-text-color: var(--ax-sys-color-on-warning-lighter-surface);--ax-comp-scheduler-medium-priority-active-border-color: var(--ax-sys-color-warning-600);--ax-comp-scheduler-low-priority-bg-color: var(--ax-sys-color-success-lighter-surface);--ax-comp-scheduler-low-priority-text-color: var(--ax-sys-color-on-success-lighter-surface);--ax-comp-scheduler-low-priority-active-border-color: var(--ax-sys-color-success-500);--ax-comp-scheduler-lowest-priority-bg-color: var(--ax-sys-color-success-lightest-surface);--ax-comp-scheduler-lowest-priority-text-color: var(--ax-sys-color-on-success-lightest-surface);--ax-comp-scheduler-lowest-priority-active-border-color: var(--ax-sys-color-success-400)}ax-scheduler{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;font-size:.875rem;background-color:inherit}ax-scheduler.ax-full-screen-container{top:0;inset-inline-start:0;z-index:61;width:100vw;height:100vh;position:fixed}ax-scheduler .ax-scheduler-container{height:100%;display:flex;overflow:hidden;border-width:1px;flex-direction:column;background-color:inherit;border-radius:var(--ax-sys-border-radius)}ax-scheduler .ax-scheduler-container .ax-scheduler-header{display:flex;padding:1rem;overflow-x:auto;overflow-y:hidden;align-items:center;border-bottom-width:1px;justify-content:space-between}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date{display:flex;min-width:20.5rem;align-items:center;justify-content:space-between}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date p{margin:0;font-size:1rem;min-width:10rem;font-weight:500;text-align:center}ax-scheduler .ax-scheduler-container .ax-scheduler-actions{gap:.75rem;display:flex;align-items:center;justify-content:center}ax-scheduler .ax-scheduler-container .ax-scheduler-truncate{display:block;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}ax-scheduler .ax-scheduler-container ax-subtitle{font-size:.75rem}ax-scheduler .ax-scheduler-container .ax-scheduler-views-container{height:100%;overflow:auto;background-color:inherit}ax-scheduler .ax-scheduler-primary-priority{color:rgba(var(--ax-comp-scheduler-primary-text-color));background-color:rgba(var(--ax-comp-scheduler-primary-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-primary-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-primary-active-border-color));z-index:10}ax-scheduler .ax-scheduler-highest-priority{color:rgba(var(--ax-comp-scheduler-highest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-highest-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-highest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-highest-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-high-priority{color:rgba(var(--ax-comp-scheduler-high-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-high-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-high-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-high-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-medium-priority{color:rgba(var(--ax-comp-scheduler-medium-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-medium-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-medium-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-medium-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-low-priority{color:rgba(var(--ax-comp-scheduler-low-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-low-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-low-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-low-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-lowest-priority{color:rgba(var(--ax-comp-scheduler-lowest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-lowest-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-lowest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-lowest-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover{gap:.25rem;display:grid;overflow:auto;padding:.25rem;max-height:10rem;font-size:.875rem;border-radius:.5rem}.ax-overlay-pane.ax-scheduler-popover.ax-scheduler-month-popover-appointment{font-size:.75rem}.ax-overlay-pane.ax-scheduler-popover:not(.ax-state-readonly) .ax-scheduler-popover-appointment{cursor:pointer}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);color:rgba(var(--ax-comp-scheduler-primary-text-color));background-color:rgba(var(--ax-comp-scheduler-primary-bg-color))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment ax-subtitle{font-size:.75rem}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment .ax-scheduler-truncate{display:block;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}.ax-overlay-pane.ax-scheduler-popover ax-title,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title{display:flex;justify-content:space-between}.ax-overlay-pane.ax-scheduler-popover ax-title .ax-scheduler-action-icon,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title .ax-scheduler-action-icon{width:auto;cursor:pointer}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-primary-priority{color:rgba(var(--ax-comp-scheduler-primary-text-color));background-color:rgba(var(--ax-comp-scheduler-primary-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-primary-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-primary-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-highest-priority{color:rgba(var(--ax-comp-scheduler-highest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-highest-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-highest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-highest-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-high-priority{color:rgba(var(--ax-comp-scheduler-high-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-high-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-high-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-high-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-medium-priority{color:rgba(var(--ax-comp-scheduler-medium-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-medium-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-medium-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-medium-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-low-priority{color:rgba(var(--ax-comp-scheduler-low-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-low-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-low-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-low-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-lowest-priority{color:rgba(var(--ax-comp-scheduler-lowest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-lowest-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-lowest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-lowest-priority-active-border-color));z-index:10}.ax-scheduler-current-time-line{z-index:7;position:absolute;pointer-events:none;background-color:#ef4444;box-shadow:0 0 6px #ef4444cc}.ax-scheduler-current-time-line:before{content:\"\";width:12px;height:12px;position:absolute;border-radius:50%;background-color:#ef4444;box-shadow:0 0 8px #ef4444e6;border:2px solid rgba(var(--ax-sys-color-surface))}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "dayCellTemplate", "monthCellTemplate", "yearCellTemplate", "cellClass", "showNavigation", "count", "id", "weekend", "weekdays", "look"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSchedulerDayViewComponent, selector: "ax-scheduler-day-view", inputs: ["rtl", "readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "endDayHour", "startDayHour", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "appointments", "tooltipTemplate", "selectedAppointmentId"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerWeekViewComponent, selector: "ax-scheduler-week-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "endDayHour", "startDayHour", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "appointments", "tooltipTemplate", "selectedAppointmentId"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerMonthViewComponent, selector: "ax-scheduler-month-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "appointments", "firstDayOfWeek", "selectedAppointmentId", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerAgendaViewComponent, selector: "ax-scheduler-agenda-view", inputs: ["daysCount", "readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "date", "appointments", "tooltipTemplate", "selectedAppointmentId"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineDayViewComponent, selector: "ax-scheduler-timeline-day-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "endDayHour", "selectedAppointmentId", "startDayHour", "showUnassignedAppointments", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineMonthViewComponent, selector: "ax-scheduler-timeline-month-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "showUnassignedAppointments", "selectedAppointmentId", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineWeeklyViewComponent, selector: "ax-scheduler-timeline-weekly-view", inputs: ["daysCount", "readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "endDayHour", "selectedAppointmentId", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "startDayHour", "showUnassignedAppointments", "resources", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }, { kind: "component", type: AXSchedulerTimelineYearViewComponent, selector: "ax-scheduler-timeline-year-view", inputs: ["readonly", "draggable", "hasActions", "dragStartDelay", "calendar", "showResourceHeaders", "date", "showUnassignedAppointments", "selectedAppointmentId", "resources", "showCurrentTimeIndicator", "scrollToCurrentTimeIndicator", "resourceTemplate", "appointments", "tooltipTemplate"], outputs: ["slotClickedInternal", "slotDblClickedInternal", "slotRightClickedInternal", "appointmentClickedInternal", "appointmentDblClickedInternal", "appointmentRightClickedInternal", "onActionClickInternal", "onAppointmentDropInternal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5113
5123
  }
5114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerComponent, decorators: [{
5124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerComponent, decorators: [{
5115
5125
  type: Component,
5116
5126
  args: [{ selector: 'ax-scheduler', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
5117
5127
  '[class.ax-rtl]': 'rtl()',
@@ -5131,8 +5141,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
5131
5141
  AXSchedulerTimelineMonthViewComponent,
5132
5142
  AXSchedulerTimelineWeeklyViewComponent,
5133
5143
  AXSchedulerTimelineYearViewComponent,
5134
- ], providers: [AXUnsubscriber, { provide: AXComponent, useExisting: AXSchedulerComponent }], template: "<div class=\"ax-scheduler-container\">\n @if (hasHeader()) {\n <div class=\"ax-scheduler-header\">\n <div class=\"ax-scheduler-date\">\n <ax-button look=\"blank\" (onClick)=\"prevClick()\">\n <ax-icon\n class=\"ax-icon text-xl\"\n [class.ax-icon-chevron-left]=\"!rtl()\"\n [class.ax-icon-chevron-right]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"nextClick()\">\n <ax-icon\n class=\"ax-icon text-xl\"\n [class.ax-icon-chevron-right]=\"!rtl()\"\n [class.ax-icon-chevron-left]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" #calendarPopover>\n <ax-calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [ngModel]=\"currentDate()\"\n [dayCellTemplate]=\"calendarDayCellTemplateRef\"\n [monthCellTemplate]=\"calendarMonthCellTemplateRef\"\n [yearCellTemplate]=\"calendarYearCellTemplateRef\"\n (onValueChanged)=\"calendarDateChanged($event)\"\n ></ax-calendar>\n </ax-popover>\n </div>\n <div class=\"ax-scheduler-actions\">\n <ax-select-box\n [dropdownWidth]=\"'200px'\"\n [ngModel]=\"selectedView()\"\n [dataSource]=\"viewsDataSource()\"\n (onValueChanged)=\"viewChanged($event)\"\n ></ax-select-box>\n\n @if (allowFullScreen()) {\n <ax-button look=\"blank\" (onClick)=\"handleFullScreen()\">\n <ax-icon>\n <i class=\"fa-solid\" [class.fa-compress]=\"isFullScreen()\" [class.fa-expand]=\"!isFullScreen()\"></i>\n </ax-icon>\n </ax-button>\n }\n </div>\n </div>\n }\n <div class=\"ax-scheduler-views-container\">\n @switch (selectedView()) {\n @case ('day') {\n <ax-scheduler-day-view\n [rtl]=\"rtl()\"\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-day-view>\n }\n @case ('week') {\n <ax-scheduler-week-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-week-view>\n }\n @case ('month') {\n <ax-scheduler-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-month-view>\n }\n @case ('timeline-day') {\n <ax-scheduler-timeline-day-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-day-view>\n }\n @case ('timeline-weekly') {\n <ax-scheduler-timeline-weekly-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-weekly-view>\n }\n @case ('timeline-month') {\n <ax-scheduler-timeline-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-month-view>\n }\n @case ('timeline-year') {\n <ax-scheduler-timeline-year-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-year-view>\n }\n @case ('agenda') {\n <ax-scheduler-agenda-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-agenda-view>\n }\n }\n </div>\n</div>\n<ng-template #calendarDayCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"flex flex-col items-center justify-between gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsOnDate(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarMonthCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"flex flex-col items-center justify-between gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInMonth(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarYearCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"flex flex-col items-center justify-between gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInYear(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-content:\"\"}}}@layer base{:root{--ax-comp-scheduler-width:57.5rem;--ax-comp-scheduler-basic-view-blocks-height:3rem;--ax-comp-scheduler-basic-view-blocks-width:3.5rem;--ax-comp-scheduler-timeline-view-blocks-width:20rem;--ax-comp-scheduler-timeline-view-blocks-height:3rem}}@layer components{ax-scheduler{width:100%;height:100%;display:block}ax-scheduler .ax-scheduler-primary-periority{background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-scheduler .ax-scheduler-highest-periority{background-color:rgba(var(--ax-sys-color-danger-dark-surface));color:rgba(var(--ax-sys-color-on-danger-dark-surface))}ax-scheduler .ax-scheduler-high-periority{background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface))}ax-scheduler .ax-scheduler-medium-periority{background-color:rgba(var(--ax-sys-color-warning-surface));color:rgba(var(--ax-sys-color-on-warning-surface))}ax-scheduler .ax-scheduler-low-periority{background-color:rgba(var(--ax-sys-color-success-light-surface));color:rgba(var(--ax-sys-color-on-success-light-surface))}ax-scheduler .ax-scheduler-lowest-periority{background-color:rgba(var(--ax-sys-color-success-lightest-surface));color:rgba(var(--ax-sys-color-on-success-lightest-surface))}ax-scheduler{background-color:inherit;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));-webkit-user-select:none;user-select:none}ax-scheduler.ax-full-screen-container{z-index:61;width:100vw;height:100vh;position:fixed;top:0;left:0}ax-scheduler .ax-scheduler-container{border-radius:var(--ax-sys-border-radius);border-style:var(--tw-border-style);background-color:inherit;border-width:1px;flex-direction:column;height:100%;display:flex;overflow:hidden}ax-scheduler .ax-scheduler-container .ax-scheduler-header{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing,.25rem) * 4);border-bottom-width:1px;justify-content:space-between;align-items:center;display:flex;overflow:auto hidden}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date{min-width:calc(var(--spacing,.25rem) * 82);justify-content:space-between;align-items:center;display:flex}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date p{min-width:calc(var(--spacing,.25rem) * 40);text-align:center;font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);margin:0}ax-scheduler .ax-scheduler-container .ax-scheduler-actions{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 3);display:flex}ax-scheduler .ax-scheduler-container .ax-scheduler-truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}ax-scheduler .ax-scheduler-container ax-subtitle{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}ax-scheduler .ax-scheduler-container .ax-scheduler-views-container{background-color:inherit;height:100%;overflow:auto}.ax-overlay-pane.ax-scheduler-popover{max-height:calc(var(--spacing,.25rem) * 40);gap:var(--spacing,.25rem);border-radius:var(--ax-sys-border-radius);display:grid;overflow:auto}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-primary-periority{background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-highest-periority{background-color:rgba(var(--ax-sys-color-danger-dark-surface));color:rgba(var(--ax-sys-color-on-danger-dark-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-high-periority{background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-medium-periority{background-color:rgba(var(--ax-sys-color-warning-surface));color:rgba(var(--ax-sys-color-on-warning-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-low-periority{background-color:rgba(var(--ax-sys-color-success-light-surface));color:rgba(var(--ax-sys-color-on-success-light-surface))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-lowest-periority{background-color:rgba(var(--ax-sys-color-success-lightest-surface));color:rgba(var(--ax-sys-color-on-success-lightest-surface))}.ax-overlay-pane.ax-scheduler-popover{padding:var(--spacing,.25rem);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.ax-overlay-pane.ax-scheduler-popover.ax-scheduler-month-popover-appointment{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.ax-overlay-pane.ax-scheduler-popover:not(.ax-state-readonly) .ax-scheduler-popover-appointment{cursor:pointer}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment{border-radius:calc(var(--ax-sys-border-radius) / 2);background-color:rgba(var(--ax-sys-color-primary-surface));padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem);color:rgba(var(--ax-sys-color-on-primary-surface));-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;overflow:hidden}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment ax-subtitle{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment .ax-scheduler-truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ax-overlay-pane.ax-scheduler-popover ax-title,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title{justify-content:space-between;display:flex}:is(.ax-overlay-pane.ax-scheduler-popover ax-title,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title) .ax-scheduler-action-icon{cursor:pointer;width:auto}.ax-scheduler-current-time-line{pointer-events:none;z-index:7;--tw-shadow:0 0 6px var(--tw-shadow-color,#ef4444cc);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:#ef4444;position:absolute}.ax-scheduler-current-time-line:before{width:calc(var(--spacing,.25rem) * 3);height:calc(var(--spacing,.25rem) * 3);border-style:var(--tw-border-style);border-width:2px;border-color:rgba(var(--ax-sys-color-surface));--tw-shadow:0 0 8px var(--tw-shadow-color,#ef4444e6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-content:\"\";content:var(--tw-content);background-color:#ef4444;border-radius:3.40282e38px;position:absolute}}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
5135
- }], propDecorators: { viewModeSelectbox: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXSelectBoxComponent), { isSignal: true }] }], calendarPopover: [{ type: i0.ViewChild, args: ['calendarPopover', { isSignal: true }] }], _calendarDayCellTemplate: [{ type: i0.ViewChild, args: ['calendarDayCellTemplate', { isSignal: true }] }], _calendarMonthCellTemplate: [{ type: i0.ViewChild, args: ['calendarMonthCellTemplate', { isSignal: true }] }], _calendarYearCellTemplate: [{ type: i0.ViewChild, args: ['calendarYearCellTemplate', { isSignal: true }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], startingDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "startingDate", required: false }] }], endDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "endDayHour", required: false }] }], startDayHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDayHour", required: false }] }], hasHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasHeader", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasActions", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragStartDelay", required: false }] }], weekend: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekend", required: false }] }], allowFullScreen: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowFullScreen", required: false }] }], multiDayViewDaysCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiDayViewDaysCount", required: false }] }], showResourceHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "showResourceHeaders", required: false }] }], showCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentTimeIndicator", required: false }] }], scrollToCurrentTimeIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollToCurrentTimeIndicator", required: false }] }], showUnassignedAppointments: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUnassignedAppointments", required: false }] }], resources: [{ type: i0.Input, args: [{ isSignal: true, alias: "resources", required: false }] }], resourceTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "resourceTemplate", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipTemplate", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: false }] }], holidays: [{ type: i0.Input, args: [{ isSignal: true, alias: "holidays", required: false }] }], views: [{ type: i0.Input, args: [{ isSignal: true, alias: "views", required: false }] }], selectedView: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedView", required: false }] }, { type: i0.Output, args: ["selectedViewChange"] }], onDataLoaded: [{ type: i0.Output, args: ["onDataLoaded"] }], onRangeChanged: [{ type: i0.Output, args: ["onRangeChanged"] }], onSlotClicked: [{ type: i0.Output, args: ["onSlotClicked"] }], onSlotDblClicked: [{ type: i0.Output, args: ["onSlotDblClicked"] }], onSlotRightClick: [{ type: i0.Output, args: ["onSlotRightClick"] }], onAppointmentDrop: [{ type: i0.Output, args: ["onAppointmentDrop"] }], onActionClick: [{ type: i0.Output, args: ["onActionClick"] }], onAppointmentClicked: [{ type: i0.Output, args: ["onAppointmentClicked"] }], onAppointmentDblClicked: [{ type: i0.Output, args: ["onAppointmentDblClicked"] }], onAppointmentRightClick: [{ type: i0.Output, args: ["onAppointmentRightClick"] }] } });
5144
+ ], providers: [AXUnsubscriber, { provide: AXComponent, useExisting: AXSchedulerComponent }], template: "<div class=\"ax-scheduler-container\">\n @if (hasHeader()) {\n <div class=\"ax-scheduler-header\">\n <div class=\"ax-scheduler-date\">\n <ax-button look=\"blank\" (onClick)=\"prevClick()\">\n <ax-icon\n class=\"ax-icon ax-text-xl\"\n [class.ax-icon-chevron-left]=\"!rtl()\"\n [class.ax-icon-chevron-right]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"currentDateText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"nextClick()\">\n <ax-icon\n class=\"ax-icon ax-text-xl\"\n [class.ax-icon-chevron-right]=\"!rtl()\"\n [class.ax-icon-chevron-left]=\"rtl()\"\n ></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" #calendarPopover>\n <ax-calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [ngModel]=\"currentDate()\"\n [dayCellTemplate]=\"calendarDayCellTemplateRef\"\n [monthCellTemplate]=\"calendarMonthCellTemplateRef\"\n [yearCellTemplate]=\"calendarYearCellTemplateRef\"\n (onValueChanged)=\"calendarDateChanged($event)\"\n ></ax-calendar>\n </ax-popover>\n </div>\n <div class=\"ax-scheduler-actions\">\n <ax-select-box\n [dropdownWidth]=\"'200px'\"\n [ngModel]=\"selectedView()\"\n [dataSource]=\"viewsDataSource()\"\n (onValueChanged)=\"viewChanged($event)\"\n ></ax-select-box>\n\n @if (allowFullScreen()) {\n <ax-button look=\"blank\" (onClick)=\"handleFullScreen()\">\n <ax-icon>\n <i class=\"fa-solid\" [class.fa-compress]=\"isFullScreen()\" [class.fa-expand]=\"!isFullScreen()\"></i>\n </ax-icon>\n </ax-button>\n }\n </div>\n </div>\n }\n <div class=\"ax-scheduler-views-container\">\n @switch (selectedView()) {\n @case ('day') {\n <ax-scheduler-day-view\n [rtl]=\"rtl()\"\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-day-view>\n }\n @case ('week') {\n <ax-scheduler-week-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-week-view>\n }\n @case ('month') {\n <ax-scheduler-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n ></ax-scheduler-month-view>\n }\n @case ('timeline-day') {\n <ax-scheduler-timeline-day-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [hasActions]=\"hasActions()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-day-view>\n }\n @case ('timeline-weekly') {\n <ax-scheduler-timeline-weekly-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [endDayHour]=\"endDayHour()\"\n [hasActions]=\"hasActions()\"\n [startDayHour]=\"startDayHour()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-weekly-view>\n }\n @case ('timeline-month') {\n <ax-scheduler-timeline-month-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-month-view>\n }\n @case ('timeline-year') {\n <ax-scheduler-timeline-year-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [resources]=\"resources()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [resourceTemplate]=\"resourceTemplate()\"\n [showResourceHeaders]=\"showResourceHeaders()\"\n [showCurrentTimeIndicator]=\"showCurrentTimeIndicator()\"\n [scrollToCurrentTimeIndicator]=\"scrollToCurrentTimeIndicator()\"\n [showUnassignedAppointments]=\"showUnassignedAppointments()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-timeline-year-view>\n }\n @case ('agenda') {\n <ax-scheduler-agenda-view\n [date]=\"currentDate()\"\n [readonly]=\"readonly()\"\n [draggable]=\"draggable()\"\n [calendar]=\"calendarType()\"\n [hasActions]=\"hasActions()\"\n [appointments]=\"viewAppointments()\"\n [dragStartDelay]=\"dragStartDelay()\"\n [daysCount]=\"multiDayViewDaysCount()\"\n [tooltipTemplate]=\"tooltipTemplate()\"\n [selectedAppointmentId]=\"selectedAppointmentId()\"\n (onActionClickInternal)=\"onActionClick.emit($event)\"\n (slotClickedInternal)=\"handleSlotClickInternal($event)\"\n (slotDblClickedInternal)=\"handleSlotDblClickInternal($event)\"\n (slotRightClickedInternal)=\"handleSlotRightClickInternal($event)\"\n (onAppointmentDropInternal)=\"handleAppointmentDropInternal($event)\"\n (appointmentClickedInternal)=\"handleAppointmentClickInternal($event)\"\n (appointmentDblClickedInternal)=\"handleAppointmentDblClickInternal($event)\"\n (appointmentRightClickedInternal)=\"handleAppointmentRightClickInternal($event)\"\n >\n </ax-scheduler-agenda-view>\n }\n }\n </div>\n</div>\n<ng-template #calendarDayCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-between ax-gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsOnDate(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarMonthCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-between ax-gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInMonth(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n<ng-template #calendarYearCellTemplate let-data>\n @let slot = data.slot;\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-between ax-gap-1\">\n <span>{{ slot.text }}</span>\n @if (hasAppointmentsInYear(slot.date?.date)) {\n <ax-badge color=\"primary\"></ax-badge>\n }\n </div>\n</ng-template>\n", styles: [":root{--ax-comp-scheduler-width: 57.5rem;--ax-comp-scheduler-basic-view-blocks-height: 3rem;--ax-comp-scheduler-basic-view-blocks-width: 3.5rem;--ax-comp-scheduler-timeline-view-blocks-width: 20rem;--ax-comp-scheduler-timeline-view-blocks-height: 3rem;--ax-comp-scheduler-primary-bg-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-scheduler-primary-text-color: var(--ax-sys-color-on-primary-lighter-surface);--ax-comp-scheduler-primary-active-border-color: var(--ax-sys-color-primary-500);--ax-comp-scheduler-highest-priority-bg-color: var(--ax-sys-color-danger-surface);--ax-comp-scheduler-highest-priority-text-color: var(--ax-sys-color-on-danger-surface);--ax-comp-scheduler-highest-priority-active-border-color: var(--ax-sys-color-danger-700);--ax-comp-scheduler-high-priority-bg-color: var(--ax-sys-color-danger-lighter-surface);--ax-comp-scheduler-high-priority-text-color: var(--ax-sys-color-on-danger-lighter-surface);--ax-comp-scheduler-high-priority-active-border-color: var(--ax-sys-color-danger-500);--ax-comp-scheduler-medium-priority-bg-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-scheduler-medium-priority-text-color: var(--ax-sys-color-on-warning-lighter-surface);--ax-comp-scheduler-medium-priority-active-border-color: var(--ax-sys-color-warning-600);--ax-comp-scheduler-low-priority-bg-color: var(--ax-sys-color-success-lighter-surface);--ax-comp-scheduler-low-priority-text-color: var(--ax-sys-color-on-success-lighter-surface);--ax-comp-scheduler-low-priority-active-border-color: var(--ax-sys-color-success-500);--ax-comp-scheduler-lowest-priority-bg-color: var(--ax-sys-color-success-lightest-surface);--ax-comp-scheduler-lowest-priority-text-color: var(--ax-sys-color-on-success-lightest-surface);--ax-comp-scheduler-lowest-priority-active-border-color: var(--ax-sys-color-success-400)}ax-scheduler{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;font-size:.875rem;background-color:inherit}ax-scheduler.ax-full-screen-container{top:0;inset-inline-start:0;z-index:61;width:100vw;height:100vh;position:fixed}ax-scheduler .ax-scheduler-container{height:100%;display:flex;overflow:hidden;border-width:1px;flex-direction:column;background-color:inherit;border-radius:var(--ax-sys-border-radius)}ax-scheduler .ax-scheduler-container .ax-scheduler-header{display:flex;padding:1rem;overflow-x:auto;overflow-y:hidden;align-items:center;border-bottom-width:1px;justify-content:space-between}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date{display:flex;min-width:20.5rem;align-items:center;justify-content:space-between}ax-scheduler .ax-scheduler-container .ax-scheduler-header .ax-scheduler-date p{margin:0;font-size:1rem;min-width:10rem;font-weight:500;text-align:center}ax-scheduler .ax-scheduler-container .ax-scheduler-actions{gap:.75rem;display:flex;align-items:center;justify-content:center}ax-scheduler .ax-scheduler-container .ax-scheduler-truncate{display:block;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}ax-scheduler .ax-scheduler-container ax-subtitle{font-size:.75rem}ax-scheduler .ax-scheduler-container .ax-scheduler-views-container{height:100%;overflow:auto;background-color:inherit}ax-scheduler .ax-scheduler-primary-priority{color:rgba(var(--ax-comp-scheduler-primary-text-color));background-color:rgba(var(--ax-comp-scheduler-primary-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-primary-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-primary-active-border-color));z-index:10}ax-scheduler .ax-scheduler-highest-priority{color:rgba(var(--ax-comp-scheduler-highest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-highest-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-highest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-highest-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-high-priority{color:rgba(var(--ax-comp-scheduler-high-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-high-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-high-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-high-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-medium-priority{color:rgba(var(--ax-comp-scheduler-medium-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-medium-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-medium-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-medium-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-low-priority{color:rgba(var(--ax-comp-scheduler-low-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-low-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-low-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-low-priority-active-border-color));z-index:10}ax-scheduler .ax-scheduler-lowest-priority{color:rgba(var(--ax-comp-scheduler-lowest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-lowest-priority-bg-color));border:2px solid transparent}ax-scheduler .ax-scheduler-lowest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-lowest-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover{gap:.25rem;display:grid;overflow:auto;padding:.25rem;max-height:10rem;font-size:.875rem;border-radius:.5rem}.ax-overlay-pane.ax-scheduler-popover.ax-scheduler-month-popover-appointment{font-size:.75rem}.ax-overlay-pane.ax-scheduler-popover:not(.ax-state-readonly) .ax-scheduler-popover-appointment{cursor:pointer}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none;flex-direction:column;padding-block:.25rem;padding-inline:.5rem;border-radius:calc(var(--ax-sys-border-radius) / 2);color:rgba(var(--ax-comp-scheduler-primary-text-color));background-color:rgba(var(--ax-comp-scheduler-primary-bg-color))}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment ax-subtitle{font-size:.75rem}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-popover-appointment .ax-scheduler-truncate{display:block;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}.ax-overlay-pane.ax-scheduler-popover ax-title,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title{display:flex;justify-content:space-between}.ax-overlay-pane.ax-scheduler-popover ax-title .ax-scheduler-action-icon,.ax-overlay-pane.ax-scheduler-popover .ax-appointment-chip-title .ax-scheduler-action-icon{width:auto;cursor:pointer}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-primary-priority{color:rgba(var(--ax-comp-scheduler-primary-text-color));background-color:rgba(var(--ax-comp-scheduler-primary-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-primary-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-primary-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-highest-priority{color:rgba(var(--ax-comp-scheduler-highest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-highest-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-highest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-highest-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-high-priority{color:rgba(var(--ax-comp-scheduler-high-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-high-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-high-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-high-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-medium-priority{color:rgba(var(--ax-comp-scheduler-medium-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-medium-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-medium-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-medium-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-low-priority{color:rgba(var(--ax-comp-scheduler-low-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-low-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-low-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-low-priority-active-border-color));z-index:10}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-lowest-priority{color:rgba(var(--ax-comp-scheduler-lowest-priority-text-color));background-color:rgba(var(--ax-comp-scheduler-lowest-priority-bg-color));border:2px solid transparent}.ax-overlay-pane.ax-scheduler-popover .ax-scheduler-lowest-priority.ax-state-active{border:2px solid rgba(var(--ax-comp-scheduler-lowest-priority-active-border-color));z-index:10}.ax-scheduler-current-time-line{z-index:7;position:absolute;pointer-events:none;background-color:#ef4444;box-shadow:0 0 6px #ef4444cc}.ax-scheduler-current-time-line:before{content:\"\";width:12px;height:12px;position:absolute;border-radius:50%;background-color:#ef4444;box-shadow:0 0 8px #ef4444e6;border:2px solid rgba(var(--ax-sys-color-surface))}\n"] }]
5145
+ }] });
5136
5146
 
5137
5147
  const COMPONENT = [
5138
5148
  AXSchedulerComponent,
@@ -5146,8 +5156,8 @@ const COMPONENT = [
5146
5156
  AXSchedulerTimelineYearViewComponent,
5147
5157
  ];
5148
5158
  class AXSchedulerModule {
5149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5150
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerModule, imports: [AXSchedulerComponent,
5159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5160
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerModule, imports: [AXSchedulerComponent,
5151
5161
  AXSchedulerDayViewComponent,
5152
5162
  AXSchedulerWeekViewComponent,
5153
5163
  AXSchedulerMonthViewComponent,
@@ -5164,9 +5174,9 @@ class AXSchedulerModule {
5164
5174
  AXSchedulerTimelineMonthViewComponent,
5165
5175
  AXSchedulerTimelineWeeklyViewComponent,
5166
5176
  AXSchedulerTimelineYearViewComponent] }); }
5167
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerModule, imports: [COMPONENT] }); }
5177
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerModule, imports: [COMPONENT] }); }
5168
5178
  }
5169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSchedulerModule, decorators: [{
5179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSchedulerModule, decorators: [{
5170
5180
  type: NgModule,
5171
5181
  args: [{
5172
5182
  imports: [...COMPONENT],