@acorex/components 21.0.0-next.3 → 21.0.0-next.31

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 (273) hide show
  1. package/accordion/index.d.ts +0 -1
  2. package/autocomplete/index.d.ts +23 -9
  3. package/button/index.d.ts +38 -17
  4. package/chips/index.d.ts +3 -8
  5. package/code-editor/README.md +291 -1
  6. package/code-editor/index.d.ts +260 -12
  7. package/command/index.d.ts +1 -0
  8. package/conversation2/README.md +426 -0
  9. package/conversation2/index.d.ts +6139 -0
  10. package/data-table/index.d.ts +79 -7
  11. package/dialog/index.d.ts +1 -1
  12. package/drawer/README.md +2 -2
  13. package/drawer/index.d.ts +33 -57
  14. package/drawer-legacy/README.md +3 -0
  15. package/drawer-legacy/index.d.ts +86 -0
  16. package/editor/README.md +3 -0
  17. package/editor/index.d.ts +79 -0
  18. package/fesm2022/acorex-components-accordion.mjs +19 -24
  19. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  20. package/fesm2022/acorex-components-action-sheet.mjs +12 -12
  21. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  22. package/fesm2022/acorex-components-alert.mjs +14 -14
  23. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  24. package/fesm2022/acorex-components-aspect-ratio.mjs +4 -4
  25. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  26. package/fesm2022/acorex-components-audio-wave.mjs +12 -11
  27. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  28. package/fesm2022/acorex-components-autocomplete.mjs +30 -13
  29. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  30. package/fesm2022/acorex-components-avatar.mjs +13 -13
  31. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  32. package/fesm2022/acorex-components-badge.mjs +10 -10
  33. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  34. package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
  35. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  36. package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
  37. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  38. package/fesm2022/acorex-components-button-group.mjs +17 -19
  39. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  40. package/fesm2022/acorex-components-button.mjs +78 -29
  41. package/fesm2022/acorex-components-button.mjs.map +1 -1
  42. package/fesm2022/acorex-components-calendar.mjs +18 -18
  43. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  44. package/fesm2022/acorex-components-check-box.mjs +11 -11
  45. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  46. package/fesm2022/acorex-components-chips.mjs +12 -14
  47. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  48. package/fesm2022/acorex-components-circular-progress.mjs +13 -11
  49. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  50. package/fesm2022/acorex-components-code-editor.mjs +494 -162
  51. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  52. package/fesm2022/acorex-components-collapse.mjs +13 -28
  53. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  54. package/fesm2022/acorex-components-color-box.mjs +11 -11
  55. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  56. package/fesm2022/acorex-components-color-palette.mjs +32 -32
  57. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  58. package/fesm2022/acorex-components-command.mjs +18 -11
  59. package/fesm2022/acorex-components-command.mjs.map +1 -1
  60. package/fesm2022/acorex-components-comment.mjs +34 -34
  61. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  62. package/fesm2022/acorex-components-conversation.mjs +56 -65
  63. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  64. package/fesm2022/acorex-components-conversation2.mjs +17641 -0
  65. package/fesm2022/acorex-components-conversation2.mjs.map +1 -0
  66. package/fesm2022/acorex-components-cron-job.mjs +53 -53
  67. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  68. package/fesm2022/acorex-components-data-list.mjs +5 -5
  69. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  70. package/fesm2022/acorex-components-data-pager.mjs +53 -41
  71. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  72. package/fesm2022/acorex-components-data-table.mjs +462 -105
  73. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  74. package/fesm2022/acorex-components-datetime-box.mjs +10 -10
  75. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  76. package/fesm2022/acorex-components-datetime-input.mjs +8 -8
  77. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  78. package/fesm2022/acorex-components-datetime-picker.mjs +11 -11
  79. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  80. package/fesm2022/acorex-components-decorators.mjs +96 -54
  81. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  82. package/fesm2022/acorex-components-dialog.mjs +26 -16
  83. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  84. package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
  85. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
  86. package/fesm2022/acorex-components-drawer.mjs +66 -150
  87. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  88. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  89. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  90. package/fesm2022/acorex-components-dropdown.mjs +18 -16
  91. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  92. package/fesm2022/acorex-components-editor.mjs +195 -0
  93. package/fesm2022/acorex-components-editor.mjs.map +1 -0
  94. package/fesm2022/acorex-components-file-explorer.mjs +28 -28
  95. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  96. package/fesm2022/acorex-components-flow-chart.mjs +18 -18
  97. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  98. package/fesm2022/acorex-components-form.mjs +52 -35
  99. package/fesm2022/acorex-components-form.mjs.map +1 -1
  100. package/fesm2022/acorex-components-grid-layout-builder.mjs +14 -15
  101. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  102. package/fesm2022/acorex-components-image-editor.mjs +166 -126
  103. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  104. package/fesm2022/acorex-components-image.mjs +10 -10
  105. package/fesm2022/acorex-components-image.mjs.map +1 -1
  106. package/fesm2022/acorex-components-json-viewer.mjs +9 -9
  107. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  108. package/fesm2022/acorex-components-kanban.mjs +9 -7
  109. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  110. package/fesm2022/acorex-components-kbd.mjs +8 -8
  111. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  112. package/fesm2022/acorex-components-label.mjs +9 -9
  113. package/fesm2022/acorex-components-label.mjs.map +1 -1
  114. package/fesm2022/acorex-components-list.mjs +10 -10
  115. package/fesm2022/acorex-components-list.mjs.map +1 -1
  116. package/fesm2022/acorex-components-loading-dialog.mjs +22 -13
  117. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  118. package/fesm2022/acorex-components-loading.mjs +23 -23
  119. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  120. package/fesm2022/acorex-components-map.mjs +16 -15
  121. package/fesm2022/acorex-components-map.mjs.map +1 -1
  122. package/fesm2022/acorex-components-media-viewer.mjs +78 -97
  123. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  124. package/fesm2022/acorex-components-menu.mjs +24 -24
  125. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  126. package/fesm2022/{acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs → acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs} +24 -24
  127. package/fesm2022/acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs.map +1 -0
  128. package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs +214 -0
  129. package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs.map +1 -0
  130. package/fesm2022/acorex-components-modal.mjs +1 -1
  131. package/fesm2022/acorex-components-navbar.mjs +9 -9
  132. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  133. package/fesm2022/acorex-components-notification.mjs +16 -23
  134. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  135. package/fesm2022/acorex-components-number-box-legacy.mjs +412 -0
  136. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
  137. package/fesm2022/acorex-components-number-box.mjs +98 -331
  138. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  139. package/fesm2022/acorex-components-otp.mjs +10 -10
  140. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  141. package/fesm2022/acorex-components-page.mjs +10 -10
  142. package/fesm2022/acorex-components-page.mjs.map +1 -1
  143. package/fesm2022/acorex-components-paint.mjs +35 -40
  144. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  145. package/fesm2022/acorex-components-password-box.mjs +13 -13
  146. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  147. package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
  148. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  149. package/fesm2022/acorex-components-phone-box.mjs +10 -10
  150. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  151. package/fesm2022/acorex-components-picker.mjs +17 -17
  152. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  153. package/fesm2022/acorex-components-popover.mjs +12 -12
  154. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  155. package/fesm2022/acorex-components-popup.mjs +13 -13
  156. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  157. package/fesm2022/acorex-components-progress-bar.mjs +11 -9
  158. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  159. package/fesm2022/acorex-components-qrcode.mjs +8 -8
  160. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  161. package/fesm2022/acorex-components-query-builder.mjs +9 -9
  162. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  163. package/fesm2022/acorex-components-radio.mjs +7 -7
  164. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  165. package/fesm2022/acorex-components-rail-navigation.mjs +40 -38
  166. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  167. package/fesm2022/acorex-components-range-slider.mjs +11 -11
  168. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  169. package/fesm2022/acorex-components-rate-picker.mjs +20 -35
  170. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  171. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  172. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  173. package/fesm2022/acorex-components-result.mjs +8 -8
  174. package/fesm2022/acorex-components-result.mjs.map +1 -1
  175. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  176. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  177. package/fesm2022/acorex-components-rrule.mjs +111 -16
  178. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  179. package/fesm2022/acorex-components-scheduler-picker.mjs +2339 -0
  180. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -0
  181. package/fesm2022/acorex-components-scheduler.mjs +52 -52
  182. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  183. package/fesm2022/acorex-components-scss.mjs +4 -4
  184. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  185. package/fesm2022/acorex-components-search-box.mjs +23 -12
  186. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  187. package/fesm2022/acorex-components-select-box.mjs +36 -17
  188. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  189. package/fesm2022/acorex-components-selection-list-2.mjs +10 -10
  190. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  191. package/fesm2022/acorex-components-selection-list.mjs +10 -10
  192. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  193. package/fesm2022/acorex-components-side-menu.mjs +31 -38
  194. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  195. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  196. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  197. package/fesm2022/acorex-components-slider.mjs +11 -11
  198. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  199. package/fesm2022/acorex-components-sliding-item.mjs +17 -17
  200. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  201. package/fesm2022/acorex-components-step-wizard.mjs +16 -16
  202. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  203. package/fesm2022/acorex-components-switch.mjs +14 -14
  204. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  205. package/fesm2022/acorex-components-tabs.mjs +20 -16
  206. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  207. package/fesm2022/acorex-components-tag-box.mjs +51 -21
  208. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  209. package/fesm2022/acorex-components-tag.mjs +47 -11
  210. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  211. package/fesm2022/acorex-components-text-area.mjs +9 -9
  212. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  213. package/fesm2022/acorex-components-text-box.mjs +13 -13
  214. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  215. package/fesm2022/acorex-components-time-duration.mjs +54 -14
  216. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  217. package/fesm2022/acorex-components-time-line.mjs +14 -29
  218. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  219. package/fesm2022/acorex-components-toast.mjs +14 -14
  220. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  221. package/fesm2022/acorex-components-toolbar.mjs +9 -9
  222. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  223. package/fesm2022/acorex-components-tooltip.mjs +12 -12
  224. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  225. package/fesm2022/acorex-components-tree-view.mjs +16 -45
  226. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  227. package/fesm2022/acorex-components-tree2.mjs +689 -0
  228. package/fesm2022/acorex-components-tree2.mjs.map +1 -0
  229. package/fesm2022/acorex-components-uploader.mjs +28 -641
  230. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  231. package/fesm2022/acorex-components-video-player.mjs +8 -8
  232. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  233. package/fesm2022/acorex-components-wysiwyg.mjs +213 -462
  234. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  235. package/fesm2022/acorex-components.mjs.map +1 -1
  236. package/form/index.d.ts +3 -3
  237. package/grid-layout-builder/index.d.ts +1 -2
  238. package/image-editor/index.d.ts +8 -5
  239. package/loading/index.d.ts +1 -1
  240. package/media-viewer/index.d.ts +2 -3
  241. package/notification/index.d.ts +0 -2
  242. package/number-box/README.md +2 -2
  243. package/number-box/index.d.ts +31 -171
  244. package/number-box-legacy/README.md +3 -0
  245. package/number-box-legacy/index.d.ts +191 -0
  246. package/package.json +53 -26
  247. package/paint/index.d.ts +1 -6
  248. package/phone-box/index.d.ts +4 -4
  249. package/rate-picker/index.d.ts +5 -15
  250. package/rrule/index.d.ts +96 -1
  251. package/scheduler-picker/README.md +15 -0
  252. package/scheduler-picker/index.d.ts +1360 -0
  253. package/search-box/index.d.ts +6 -1
  254. package/select-box/index.d.ts +15 -10
  255. package/side-menu/index.d.ts +3 -2
  256. package/tag/index.d.ts +8 -2
  257. package/tag-box/index.d.ts +12 -3
  258. package/time-duration/index.d.ts +19 -3
  259. package/tree2/README.md +3 -0
  260. package/tree2/index.d.ts +337 -0
  261. package/uploader/index.d.ts +4 -331
  262. package/wysiwyg/index.d.ts +57 -159
  263. package/drawer-2/README.md +0 -3
  264. package/drawer-2/index.d.ts +0 -62
  265. package/fesm2022/acorex-components-drawer-2.mjs +0 -134
  266. package/fesm2022/acorex-components-drawer-2.mjs.map +0 -1
  267. package/fesm2022/acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs.map +0 -1
  268. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs +0 -235
  269. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs.map +0 -1
  270. package/fesm2022/acorex-components-number-box-2.mjs +0 -183
  271. package/fesm2022/acorex-components-number-box-2.mjs.map +0 -1
  272. package/number-box-2/README.md +0 -3
  273. package/number-box-2/index.d.ts +0 -41
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-scheduler-picker.mjs","sources":["../../../../packages/components/scheduler-picker/src/lib/shared/interval-selector/interval-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/interval-selector/interval-selector.component.html","../../../../packages/components/scheduler-picker/src/lib/scheduler-picker.const.ts","../../../../packages/components/scheduler-picker/src/lib/panels/daily-panel/daily-panel.component.ts","../../../../packages/components/scheduler-picker/src/lib/panels/daily-panel/daily-panel.component.html","../../../../packages/components/scheduler-picker/src/lib/panels/hourly-panel/hourly-panel.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/day-selector/day-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/occurrence-selector/occurrence-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/panels/monthly-panel/monthly-panel.component.ts","../../../../packages/components/scheduler-picker/src/lib/panels/monthly-panel/monthly-panel.component.html","../../../../packages/components/scheduler-picker/src/lib/scheduler-picker.utils.ts","../../../../packages/components/scheduler-picker/src/lib/panels/weekly-panel/weekly-panel.component.ts","../../../../packages/components/scheduler-picker/src/lib/panels/weekly-panel/weekly-panel.component.html","../../../../packages/components/scheduler-picker/src/lib/shared/month-selector/month-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/panels/yearly-panel/yearly-panel.component.ts","../../../../packages/components/scheduler-picker/src/lib/panels/yearly-panel/yearly-panel.component.html","../../../../packages/components/scheduler-picker/src/lib/scheduler-picker.config.ts","../../../../packages/components/scheduler-picker/src/lib/scheduler-picker.service.ts","../../../../packages/components/scheduler-picker/src/lib/shared/start-condition-selector/start-condition-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/start-condition-selector/start-condition-selector.component.html","../../../../packages/components/scheduler-picker/src/lib/shared/end-condition-selector/end-condition-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/end-condition-selector/end-condition-selector.component.html","../../../../packages/components/scheduler-picker/src/lib/shared/exclusion-manager/exclusion-manager.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/inclusion-manager/inclusion-manager.component.ts","../../../../packages/components/scheduler-picker/src/lib/scheduler-picker.component.ts","../../../../packages/components/scheduler-picker/src/lib/scheduler-picker.component.html","../../../../packages/components/scheduler-picker/src/lib/shared/time-selector/time-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/timezone-selector/timezone-selector.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/scheduler-picker-config/scheduler-picker-config.component.ts","../../../../packages/components/scheduler-picker/src/lib/shared/scheduler-picker-config/scheduler-picker-config.component.html","../../../../packages/components/scheduler-picker/src/index.ts","../../../../packages/components/scheduler-picker/src/acorex-components-scheduler-picker.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxComponent } from '@acorex/components/number-box';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXSchedulerPickerSettings } from '../../scheduler-picker.types';\n\n/**\n * Interval selector component\n * Allows user to select \"Every X [units]\"\n */\n@Component({\n selector: 'ax-scheduler-picker-interval-selector',\n templateUrl: './interval-selector.component.html',\n styleUrls: ['./interval-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXNumberBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerIntervalSelectorComponent {\n /**\n * Current interval value\n */\n interval = input.required<number>();\n\n /**\n * Configuration\n */\n config = input.required<AXSchedulerPickerSettings>();\n\n /**\n * Emits when interval changes\n */\n intervalChange = output<number>();\n\n /**\n * Handle interval value change\n */\n protected onIntervalChange(value: number): void {\n if (value && value > 0) {\n this.intervalChange.emit(value);\n }\n }\n\n /**\n * Get unit translation key based on mode\n */\n protected getUnitKey(): string {\n const mode = this.config().mode;\n const pluralKey = this.interval() === 1 ? 'singular' : 'plural';\n\n switch (mode) {\n case 'hourly':\n return `@acorex:schedulerPicker.units.hour.${pluralKey}`;\n case 'daily':\n return `@acorex:schedulerPicker.units.day.${pluralKey}`;\n case 'weekly':\n return `@acorex:schedulerPicker.units.week.${pluralKey}`;\n case 'monthly':\n return `@acorex:schedulerPicker.units.month.${pluralKey}`;\n case 'yearly':\n return `@acorex:schedulerPicker.units.year.${pluralKey}`;\n default:\n return '@acorex:schedulerPicker.units.day.plural';\n }\n }\n}\n","<div class=\"ax-scheduler-picker-interval-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.repeatEvery' | translate | async }}\n </label>\n <div class=\"ax-scheduler-picker-interval-input-group\">\n <ax-number-box\n [value]=\"interval()\"\n [minValue]=\"config().minInterval || 1\"\n [maxValue]=\"config().maxInterval || 999\"\n [disabled]=\"false\"\n (valueChange)=\"onIntervalChange($event)\"\n />\n <span class=\"ax-scheduler-picker-interval-unit\">\n {{ getUnitKey() | translate | async }}\n </span>\n </div>\n</div>\n","/**\n * Constants for scheduler picker module\n */\n\n/**\n * Day of week interface\n */\nexport interface AXSchedulerPickerDayOfWeek {\n id: number;\n text: string;\n key: string;\n rruleKey: string;\n}\n\n/**\n * Month interface\n */\nexport interface AXSchedulerPickerMonth {\n id: number;\n text: string;\n key: string;\n}\n\n/**\n * Occurrence position interface\n */\nexport interface AXSchedulerPickerOccurrencePosition {\n value: 1 | 2 | 3 | 4 | -1;\n text: string;\n key: string;\n}\n\n/**\n * Days of the week (0-6: Sunday-Saturday)\n */\nexport const AX_SCHEDULER_PICKER_DAYS_OF_WEEK: Readonly<AXSchedulerPickerDayOfWeek[]> = Object.freeze([\n { id: 0, text: 'Sunday', key: 'sunday', rruleKey: 'SU' },\n { id: 1, text: 'Monday', key: 'monday', rruleKey: 'MO' },\n { id: 2, text: 'Tuesday', key: 'tuesday', rruleKey: 'TU' },\n { id: 3, text: 'Wednesday', key: 'wednesday', rruleKey: 'WE' },\n { id: 4, text: 'Thursday', key: 'thursday', rruleKey: 'TH' },\n { id: 5, text: 'Friday', key: 'friday', rruleKey: 'FR' },\n { id: 6, text: 'Saturday', key: 'saturday', rruleKey: 'SA' },\n]);\n\n/**\n * Months of the year (0-11: January-December)\n */\nexport const AX_SCHEDULER_PICKER_MONTHS: Readonly<AXSchedulerPickerMonth[]> = Object.freeze([\n { id: 0, text: 'January', key: 'january' },\n { id: 1, text: 'February', key: 'february' },\n { id: 2, text: 'March', key: 'march' },\n { id: 3, text: 'April', key: 'april' },\n { id: 4, text: 'May', key: 'may' },\n { id: 5, text: 'June', key: 'june' },\n { id: 6, text: 'July', key: 'july' },\n { id: 7, text: 'August', key: 'august' },\n { id: 8, text: 'September', key: 'september' },\n { id: 9, text: 'October', key: 'october' },\n { id: 10, text: 'November', key: 'november' },\n { id: 11, text: 'December', key: 'december' },\n]);\n\n/**\n * Occurrence positions (1st, 2nd, 3rd, 4th, Last)\n */\nexport const AX_SCHEDULER_PICKER_OCCURRENCE_POSITIONS: Readonly<AXSchedulerPickerOccurrencePosition[]> = Object.freeze([\n { value: 1, text: 'First', key: 'first' },\n { value: 2, text: 'Second', key: 'second' },\n { value: 3, text: 'Third', key: 'third' },\n { value: 4, text: 'Fourth', key: 'fourth' },\n { value: -1, text: 'Last', key: 'last' },\n]);\n\n/**\n * RRule day keys mapping (for RRule library)\n */\nexport const AX_SCHEDULER_PICKER_RRULE_DAY_KEYS: Readonly<string[]> = Object.freeze(\n AX_SCHEDULER_PICKER_DAYS_OF_WEEK.map((d) => d.rruleKey),\n);\n\n/**\n * Translation keys for days of week\n */\nexport const AX_SCHEDULER_PICKER_DAY_TRANSLATION_KEYS: Readonly<string[]> = Object.freeze(\n AX_SCHEDULER_PICKER_DAYS_OF_WEEK.map((d) => d.key),\n);\n\n/**\n * Translation keys for months\n */\nexport const AX_SCHEDULER_PICKER_MONTH_TRANSLATION_KEYS: Readonly<string[]> = Object.freeze(\n AX_SCHEDULER_PICKER_MONTHS.map((m) => m.key),\n);\n\n/**\n * Default first day of week (0 = Sunday)\n */\nexport const AX_SCHEDULER_PICKER_DEFAULT_FIRST_DAY_OF_WEEK = 0;\n\n/**\n * Default time format\n */\nexport const AX_SCHEDULER_PICKER_DEFAULT_TIME_FORMAT = '24h' as const;\n\n/**\n * Default time precision\n */\nexport const AX_SCHEDULER_PICKER_DEFAULT_TIME_PRECISION = 'minutes' as const;\n\n/**\n * Default locale\n */\nexport const AX_SCHEDULER_PICKER_DEFAULT_LOCALE = 'en-US';\n\n/**\n * Weekday range for daily mode (Monday-Friday)\n */\nexport const AX_SCHEDULER_PICKER_WEEKDAY_START = 1; // Monday\nexport const AX_SCHEDULER_PICKER_WEEKDAY_END = 5; // Friday\n\n/**\n * Default occurrences count for end condition\n */\nexport const AX_SCHEDULER_PICKER_DEFAULT_OCCURRENCES = 10;\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSwitchComponent } from '@acorex/components/switch';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXSchedulerPickerValue, AXSchedulerPickerDailyConfig } from '../../scheduler-picker.types';\nimport { AXSchedulerPickerIntervalSelectorComponent } from '../../shared/interval-selector/interval-selector.component';\nimport { AX_SCHEDULER_PICKER_WEEKDAY_START, AX_SCHEDULER_PICKER_WEEKDAY_END } from '../../scheduler-picker.const';\n\n@Component({\n selector: 'ax-scheduler-picker-daily-panel',\n templateUrl: './daily-panel.component.html',\n styleUrls: ['./daily-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n AXSwitchComponent,\n AXTranslatorPipe,\n AsyncPipe,\n AXSchedulerPickerIntervalSelectorComponent,\n ],\n})\nexport class AXSchedulerPickerDailyPanelComponent {\n pattern = input.required<AXSchedulerPickerValue | null>();\n config = input.required<AXSchedulerPickerDailyConfig>();\n patternChange = output<Partial<AXSchedulerPickerValue>>();\n\n protected weekdayOnly = signal<boolean>(false);\n\n constructor() {\n // Initialize weekdayOnly from pattern\n effect(() => {\n const pattern = this.pattern();\n if (pattern?.recurrence?.byDay) {\n // Check if byDay is [1,2,3,4,5] (weekdays only)\n const isWeekdaysOnly =\n pattern.recurrence.byDay.length === 5 &&\n pattern.recurrence.byDay.every((d) => d >= AX_SCHEDULER_PICKER_WEEKDAY_START && d <= AX_SCHEDULER_PICKER_WEEKDAY_END);\n this.weekdayOnly.set(isWeekdaysOnly);\n }\n });\n }\n\n protected onIntervalChange(interval: number): void {\n this.patternChange.emit({ interval });\n }\n\n protected onWeekdayOnlyChange(value: boolean): void {\n this.weekdayOnly.set(value);\n // Emit recurrence with weekday filter (Mon-Fri)\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byDay: value ? [AX_SCHEDULER_PICKER_WEEKDAY_START, 2, 3, 4, AX_SCHEDULER_PICKER_WEEKDAY_END] : undefined,\n },\n });\n }\n}\n","<div class=\"ax-scheduler-picker-daily-panel\">\n <!-- Interval selector -->\n @if (config().options?.showInterval) {\n <ax-scheduler-picker-interval-selector\n [interval]=\"pattern()?.interval || 1\"\n [config]=\"config()\"\n (intervalChange)=\"onIntervalChange($event)\"\n />\n }\n\n <!-- Weekdays only switch -->\n @if (config().options?.showWeekdaysOnly) {\n <div class=\"ax-scheduler-picker-weekdays-only\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.weekdaysOnly' | translate | async }}\n </label>\n <ax-switch [value]=\"weekdayOnly()\" (valueChange)=\"onWeekdayOnlyChange($event)\" />\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { AXSchedulerPickerValue, AXSchedulerPickerHourlyConfig } from '../../scheduler-picker.types';\nimport { AXSchedulerPickerIntervalSelectorComponent } from '../../shared/interval-selector/interval-selector.component';\n\n@Component({\n selector: 'ax-scheduler-picker-hourly-panel',\n template: `\n <div class=\"ax-scheduler-picker-hourly-panel\">\n @if (config().options?.showInterval) {\n <ax-scheduler-picker-interval-selector\n [interval]=\"pattern()?.interval || 1\"\n [config]=\"config()\"\n (intervalChange)=\"onIntervalChange($event)\"\n />\n }\n </div>\n `,\n styles: [`\n .ax-scheduler-picker-hourly-panel {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXSchedulerPickerIntervalSelectorComponent],\n})\nexport class AXSchedulerPickerHourlyPanelComponent {\n pattern = input.required<AXSchedulerPickerValue | null>();\n config = input.required<AXSchedulerPickerHourlyConfig>();\n patternChange = output<Partial<AXSchedulerPickerValue>>();\n\n protected onIntervalChange(interval: number): void {\n this.patternChange.emit({ interval });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\n\n@Component({\n selector: 'ax-scheduler-picker-day-selector',\n template: `\n <div class=\"ax-scheduler-picker-day-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.selectDays' | translate | async }}\n </label>\n <ax-select-box\n [dataSource]=\"dayItems\"\n textField=\"text\"\n valueField=\"id\"\n [multiple]=\"true\"\n [value]=\"days()\"\n (onValueChanged)=\"onDaysChange($event)\"\n />\n </div>\n `,\n styles: [`\n .ax-scheduler-picker-day-selector {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .ax-scheduler-picker-label {\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n margin: 0;\n }\n ax-select-box {\n width: 100%;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXSelectBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerDaySelectorComponent {\n /**\n * Selected day numbers (1-31)\n */\n days = input<number[]>();\n\n /**\n * Emits when day selection changes\n */\n daysChange = output<number[]>();\n\n protected dayItems = Array.from({ length: 31 }, (_, i) => ({\n id: i + 1,\n text: String(i + 1),\n }));\n\n /**\n * Handle day selection change\n */\n protected onDaysChange(event: AXValueChangedEvent<number | number[]>): void {\n const selectedDays = Array.isArray(event.value) ? event.value : [event.value];\n this.daysChange.emit(selectedDays.sort((a, b) => a - b));\n }\n}\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n AX_SCHEDULER_PICKER_DAYS_OF_WEEK,\n AX_SCHEDULER_PICKER_OCCURRENCE_POSITIONS,\n} from '../../scheduler-picker.const';\nimport { AXSchedulerPickerOccurrence } from '../../scheduler-picker.types';\n\n@Component({\n selector: 'ax-scheduler-picker-occurrence-selector',\n template: `\n <div class=\"ax-scheduler-picker-occurrence-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.occurrence' | translate | async }}\n </label>\n\n <div class=\"ax-scheduler-picker-row\">\n <ax-select-box\n [value]=\"selectedPosition()\"\n [dataSource]=\"positions\"\n textField=\"text\"\n valueField=\"value\"\n (onValueChanged)=\"onPositionChangeEvent($event)\"\n />\n <ax-select-box\n [value]=\"selectedDay()\"\n [dataSource]=\"days\"\n textField=\"text\"\n valueField=\"value\"\n (onValueChanged)=\"onDayChangeEvent($event)\"\n />\n </div>\n </div>\n `,\n styles: [\n `\n .ax-scheduler-picker-occurrence-selector {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .ax-scheduler-picker-row {\n display: flex;\n gap: 0.5rem;\n }\n .ax-scheduler-picker-row > * {\n flex: 1;\n }\n .ax-scheduler-picker-label {\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n margin: 0;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXSelectBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerOccurrenceSelectorComponent {\n /**\n * Current occurrence selection (position + day)\n */\n occurrence = input<AXSchedulerPickerOccurrence | null>();\n\n /**\n * Emits when occurrence selection changes\n */\n occurrenceChange = output<AXSchedulerPickerOccurrence>();\n\n protected selectedPosition = signal<1 | 2 | 3 | 4 | -1>(1);\n protected selectedDay = signal<number>(1);\n\n protected readonly positions = AX_SCHEDULER_PICKER_OCCURRENCE_POSITIONS.map((pos) => ({\n ...pos,\n text: `@acorex:schedulerPicker.positions.${pos.key}`,\n }));\n protected readonly days = AX_SCHEDULER_PICKER_DAYS_OF_WEEK.map((d) => ({\n value: d.id,\n text: `@acorex:schedulerPicker.days.${d.key}`,\n }));\n\n constructor() {\n // Sync input with internal state\n effect(() => {\n const occ = this.occurrence();\n if (occ) {\n this.selectedPosition.set(occ.position);\n this.selectedDay.set(occ.day);\n }\n });\n }\n\n /**\n * Handle position selection change\n */\n protected onPositionChangeEvent(event: AXValueChangedEvent<1 | 2 | 3 | 4 | -1>): void {\n this.selectedPosition.set(event.value);\n this.emitChange();\n }\n\n /**\n * Handle day selection change\n */\n protected onDayChangeEvent(event: AXValueChangedEvent<number>): void {\n const day = event.value;\n this.selectedDay.set(day);\n this.emitChange();\n }\n\n private emitChange(): void {\n this.occurrenceChange.emit({\n position: this.selectedPosition(),\n day: this.selectedDay(),\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { AXSchedulerPickerValue, AXSchedulerPickerMonthlyConfig, AXSchedulerPickerOccurrence } from '../../scheduler-picker.types';\nimport { AXSchedulerPickerIntervalSelectorComponent } from '../../shared/interval-selector/interval-selector.component';\nimport { AXSchedulerPickerDaySelectorComponent } from '../../shared/day-selector/day-selector.component';\nimport { AXSchedulerPickerOccurrenceSelectorComponent } from '../../shared/occurrence-selector/occurrence-selector.component';\n\n@Component({\n selector: 'ax-scheduler-picker-monthly-panel',\n templateUrl: './monthly-panel.component.html',\n styleUrls: ['./monthly-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXSchedulerPickerIntervalSelectorComponent,\n AXSchedulerPickerDaySelectorComponent,\n AXSchedulerPickerOccurrenceSelectorComponent,\n ],\n})\nexport class AXSchedulerPickerMonthlyPanelComponent {\n pattern = input.required<AXSchedulerPickerValue | null>();\n config = input.required<AXSchedulerPickerMonthlyConfig>();\n patternChange = output<Partial<AXSchedulerPickerValue>>();\n\n protected selectedDays = signal<number[]>([]);\n protected occurrence = signal<AXSchedulerPickerOccurrence | null>(null);\n\n constructor() {\n // Initialize state from pattern\n effect(() => {\n const pattern = this.pattern();\n if (pattern?.recurrence) {\n if (pattern.recurrence.byDay) {\n this.selectedDays.set(pattern.recurrence.byDay);\n }\n if (pattern.recurrence.byOccurrence && pattern.recurrence.byOccurrence.length > 0) {\n const occ = pattern.recurrence.byOccurrence[0];\n this.occurrence.set({ position: occ.position, day: occ.dayOfWeek });\n }\n }\n });\n }\n\n protected onIntervalChange(interval: number): void {\n this.patternChange.emit({ interval });\n }\n\n protected onDaysChange(days: number[]): void {\n this.selectedDays.set(days);\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byDay: days,\n byOccurrence: undefined, // Clear occurrence when using specific days\n },\n });\n }\n\n protected onOccurrenceChange(occurrence: AXSchedulerPickerOccurrence): void {\n this.occurrence.set(occurrence);\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byOccurrence: [{ position: occurrence.position, dayOfWeek: occurrence.day }],\n byDay: undefined, // Clear days when using occurrence\n },\n });\n }\n}\n","<div class=\"ax-scheduler-picker-monthly-panel\">\n <!-- Interval selector -->\n @if (config().options?.showInterval) {\n <ax-scheduler-picker-interval-selector\n [interval]=\"pattern()?.interval || 1\"\n [config]=\"config()\"\n (intervalChange)=\"onIntervalChange($event)\"\n />\n }\n\n <!-- Specific Days Mode: Calendar day picker -->\n @if (config().options?.recurrenceMode === 'specificDays') {\n <ax-scheduler-picker-day-selector\n [days]=\"selectedDays()\"\n (daysChange)=\"onDaysChange($event)\"\n />\n }\n\n <!-- Occurrence Mode: Position + Weekday selectors -->\n @if (config().options?.recurrenceMode === 'occurrence') {\n <ax-scheduler-picker-occurrence-selector\n [occurrence]=\"occurrence()\"\n (occurrenceChange)=\"onOccurrenceChange($event)\"\n />\n }\n</div>\n","import {\n AX_SCHEDULER_PICKER_DAYS_OF_WEEK,\n AX_SCHEDULER_PICKER_DEFAULT_FIRST_DAY_OF_WEEK,\n AX_SCHEDULER_PICKER_RRULE_DAY_KEYS,\n AX_SCHEDULER_PICKER_DAY_TRANSLATION_KEYS,\n AX_SCHEDULER_PICKER_MONTH_TRANSLATION_KEYS,\n AXSchedulerPickerDayOfWeek,\n} from './scheduler-picker.const';\n\n/**\n * Helper function to reorder days based on first day of week\n */\nexport function reorderDaysByFirstDay(firstDayOfWeek: number = AX_SCHEDULER_PICKER_DEFAULT_FIRST_DAY_OF_WEEK): AXSchedulerPickerDayOfWeek[] {\n return [...AX_SCHEDULER_PICKER_DAYS_OF_WEEK.slice(firstDayOfWeek), ...AX_SCHEDULER_PICKER_DAYS_OF_WEEK.slice(0, firstDayOfWeek)];\n}\n\n/**\n * Get RRule day key by day index\n */\nexport function getRRuleDayKey(dayIndex: number): string {\n return AX_SCHEDULER_PICKER_RRULE_DAY_KEYS[dayIndex] || 'MO';\n}\n\n/**\n * Get day translation key by index\n */\nexport function getDayTranslationKey(dayIndex: number): string {\n return AX_SCHEDULER_PICKER_DAY_TRANSLATION_KEYS[dayIndex] || 'monday';\n}\n\n/**\n * Get month translation key by index\n */\nexport function getMonthTranslationKey(monthIndex: number): string {\n return AX_SCHEDULER_PICKER_MONTH_TRANSLATION_KEYS[monthIndex] || 'january';\n}\n\n/**\n * Normalize date to midnight for consistent comparison\n */\nexport function normalizeDate(date: Date): Date {\n const normalized = new Date(date);\n normalized.setHours(0, 0, 0, 0);\n return normalized;\n}\n\n/**\n * Check if two dates are the same day (ignoring time)\n */\nexport function isSameDate(date1: Date, date2: Date): boolean {\n return normalizeDate(date1).getTime() === normalizeDate(date2).getTime();\n}\n\n/**\n * Check if date exists in array (day comparison only)\n */\nexport function dateExistsInArray(date: Date, dates: Date[]): boolean {\n const normalized = normalizeDate(date);\n return dates.some((d) => normalizeDate(d).getTime() === normalized.getTime());\n}\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSchedulerPickerValue, AXSchedulerPickerWeeklyConfig } from '../../scheduler-picker.types';\nimport { reorderDaysByFirstDay } from '../../scheduler-picker.utils';\nimport { AXSchedulerPickerIntervalSelectorComponent } from '../../shared/interval-selector/interval-selector.component';\n\n/**\n * Weekly recurrence panel\n */\n@Component({\n selector: 'ax-scheduler-picker-weekly-panel',\n templateUrl: './weekly-panel.component.html',\n styleUrls: ['./weekly-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n AXSelectionListModule,\n AXTranslatorPipe,\n AsyncPipe,\n AXSchedulerPickerIntervalSelectorComponent,\n ],\n})\nexport class AXSchedulerPickerWeeklyPanelComponent {\n pattern = input.required<AXSchedulerPickerValue | null>();\n config = input.required<AXSchedulerPickerWeeklyConfig>();\n\n patternChange = output<Partial<AXSchedulerPickerValue>>();\n\n protected selectedDays = signal<number[]>([]);\n\n protected dayItems = computed(() => {\n const firstDay = this.config().firstDayOfWeek || 0;\n const days = reorderDaysByFirstDay(firstDay);\n return days.map((day) => ({\n ...day,\n text: `@acorex:schedulerPicker.days.${day.key}`,\n }));\n });\n\n constructor() {\n // Initialize selectedDays from pattern\n effect(() => {\n const pattern = this.pattern();\n if (pattern?.recurrence?.byDay) {\n this.selectedDays.set(pattern.recurrence.byDay);\n }\n });\n }\n\n protected onIntervalChange(interval: number): void {\n this.patternChange.emit({ interval });\n }\n\n protected onDaysChange(event: AXValueChangedEvent): void {\n const days = event.value as number[];\n this.selectedDays.set(days);\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byDay: days,\n },\n });\n }\n}\n","<div class=\"ax-scheduler-picker-weekly-panel\">\n <!-- Interval selector -->\n @if (config().options?.showInterval) {\n <ax-scheduler-picker-interval-selector\n [interval]=\"pattern()?.interval || 1\"\n [config]=\"config()\"\n (intervalChange)=\"onIntervalChange($event)\"\n />\n }\n\n <!-- Day selection -->\n @if (config().options?.showWeekdaySelection) {\n <div class=\"ax-scheduler-picker-day-selection\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.onDays' | translate | async }}\n </label>\n <ax-selection-list\n [items]=\"dayItems()\"\n [multiple]=\"true\"\n [showControl]=\"true\"\n [look]=\"'solid'\"\n [direction]=\"'horizontal'\"\n [value]=\"selectedDays()\"\n (onValueChanged)=\"onDaysChange($event)\"\n />\n </div>\n }\n</div>\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AX_SCHEDULER_PICKER_MONTHS } from '../../scheduler-picker.const';\n\n@Component({\n selector: 'ax-scheduler-picker-month-selector',\n template: `\n <div class=\"ax-scheduler-picker-month-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.selectMonths' | translate | async }}\n </label>\n <ax-select-box\n [dataSource]=\"monthItems\"\n textField=\"text\"\n valueField=\"id\"\n [multiple]=\"true\"\n [value]=\"months()\"\n (onValueChanged)=\"onMonthsChange($event)\"\n />\n </div>\n `,\n styles: [\n `\n .ax-scheduler-picker-month-selector {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .ax-scheduler-picker-label {\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n margin: 0;\n }\n ax-select-box {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXSelectBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerMonthSelectorComponent {\n /**\n * Selected month indices (0-11)\n */\n months = input<number[]>();\n\n /**\n * Emits when month selection changes\n */\n monthsChange = output<number[]>();\n\n protected readonly monthItems = AX_SCHEDULER_PICKER_MONTHS.map((month) => ({\n ...month,\n text: `@acorex:schedulerPicker.months.${month.key}`,\n }));\n\n /**\n * Handle month selection change\n */\n protected onMonthsChange(event: AXValueChangedEvent<number | number[]>): void {\n const selectedMonths = Array.isArray(event.value) ? event.value : [event.value];\n this.monthsChange.emit(selectedMonths.sort((a, b) => a - b));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { AXSchedulerPickerValue, AXSchedulerPickerYearlyConfig, AXSchedulerPickerOccurrence } from '../../scheduler-picker.types';\nimport { AXSchedulerPickerIntervalSelectorComponent } from '../../shared/interval-selector/interval-selector.component';\nimport { AXSchedulerPickerMonthSelectorComponent } from '../../shared/month-selector/month-selector.component';\nimport { AXSchedulerPickerDaySelectorComponent } from '../../shared/day-selector/day-selector.component';\nimport { AXSchedulerPickerOccurrenceSelectorComponent } from '../../shared/occurrence-selector/occurrence-selector.component';\n\n@Component({\n selector: 'ax-scheduler-picker-yearly-panel',\n templateUrl: './yearly-panel.component.html',\n styleUrls: ['./yearly-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXSchedulerPickerIntervalSelectorComponent,\n AXSchedulerPickerMonthSelectorComponent,\n AXSchedulerPickerDaySelectorComponent,\n AXSchedulerPickerOccurrenceSelectorComponent,\n ],\n})\nexport class AXSchedulerPickerYearlyPanelComponent {\n pattern = input.required<AXSchedulerPickerValue | null>();\n config = input.required<AXSchedulerPickerYearlyConfig>();\n patternChange = output<Partial<AXSchedulerPickerValue>>();\n\n protected selectedMonths = signal<number[]>([]);\n protected selectedDays = signal<number[]>([]);\n protected occurrence = signal<AXSchedulerPickerOccurrence | null>(null);\n\n constructor() {\n // Initialize state from pattern\n effect(() => {\n const pattern = this.pattern();\n if (pattern?.recurrence) {\n if (pattern.recurrence.byMonth) {\n this.selectedMonths.set(pattern.recurrence.byMonth);\n }\n if (pattern.recurrence.byDay) {\n this.selectedDays.set(pattern.recurrence.byDay);\n }\n if (pattern.recurrence.byOccurrence && pattern.recurrence.byOccurrence.length > 0) {\n const occ = pattern.recurrence.byOccurrence[0];\n this.occurrence.set({ position: occ.position, day: occ.dayOfWeek });\n }\n }\n });\n }\n\n protected onIntervalChange(interval: number): void {\n this.patternChange.emit({ interval });\n }\n\n protected onMonthsChange(months: number[]): void {\n this.selectedMonths.set(months);\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byMonth: months,\n },\n });\n }\n\n protected onDaysChange(days: number[]): void {\n this.selectedDays.set(days);\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byDay: days,\n byOccurrence: undefined, // Clear occurrence when using specific date\n },\n });\n }\n\n protected onOccurrenceChange(occurrence: AXSchedulerPickerOccurrence): void {\n this.occurrence.set(occurrence);\n this.patternChange.emit({\n recurrence: {\n ...this.pattern()?.recurrence,\n byOccurrence: [{ position: occurrence.position, dayOfWeek: occurrence.day }],\n byDay: undefined, // Clear days when using occurrence\n },\n });\n }\n}\n","<div class=\"ax-scheduler-picker-yearly-panel\">\n <!-- Interval selector -->\n @if (config().options?.showInterval) {\n <ax-scheduler-picker-interval-selector\n [interval]=\"pattern()?.interval || 1\"\n [config]=\"config()\"\n (intervalChange)=\"onIntervalChange($event)\"\n />\n }\n\n <!-- Month selector (independent of recurrence mode) -->\n @if (config().options?.showMonthSelection !== false) {\n <ax-scheduler-picker-month-selector\n [months]=\"selectedMonths()\"\n (monthsChange)=\"onMonthsChange($event)\"\n />\n }\n\n <!-- Specific Date Mode: Day picker -->\n @if (config().options?.recurrenceMode === 'specificDate') {\n <ax-scheduler-picker-day-selector\n [days]=\"selectedDays()\"\n (daysChange)=\"onDaysChange($event)\"\n />\n }\n\n <!-- Occurrence Mode: Month + Position + Weekday selectors -->\n @if (config().options?.recurrenceMode === 'occurrence') {\n @if (config().options?.showMonthSelection !== false) {\n <ax-scheduler-picker-month-selector\n [months]=\"selectedMonths()\"\n (monthsChange)=\"onMonthsChange($event)\"\n />\n }\n <ax-scheduler-picker-occurrence-selector\n [occurrence]=\"occurrence()\"\n (occurrenceChange)=\"onOccurrenceChange($event)\"\n />\n }\n</div>\n","import { InjectionToken } from '@angular/core';\nimport {\n AXSchedulerPickerDailyConfig,\n AXSchedulerPickerHourlyConfig,\n AXSchedulerPickerMonthlyConfig,\n AXSchedulerPickerWeeklyConfig,\n AXSchedulerPickerYearlyConfig,\n} from './scheduler-picker.types';\n\n/**\n * Hourly mode default configuration\n */\nexport const AXSchedulerPickerHourlyDefaultConfig: AXSchedulerPickerHourlyConfig = {\n mode: 'hourly',\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n defaultInterval: 1,\n minInterval: 1,\n maxInterval: 23,\n firstDayOfWeek: 0,\n options: {\n showInterval: true,\n },\n};\n\n/**\n * Daily mode default configuration\n */\nexport const AXSchedulerPickerDailyDefaultConfig: AXSchedulerPickerDailyConfig = {\n mode: 'daily',\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n defaultInterval: 1,\n minInterval: 1,\n maxInterval: 365,\n firstDayOfWeek: 0,\n options: {\n showInterval: true,\n showWeekdaysOnly: true,\n },\n};\n\n/**\n * Weekly mode default configuration\n */\nexport const AXSchedulerPickerWeeklyDefaultConfig: AXSchedulerPickerWeeklyConfig = {\n mode: 'weekly',\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n defaultInterval: 1,\n minInterval: 1,\n maxInterval: 52,\n firstDayOfWeek: 0,\n options: {\n showInterval: true,\n showWeekdaySelection: true,\n },\n};\n\n/**\n * Monthly mode default configuration\n */\nexport const AXSchedulerPickerMonthlyDefaultConfig: AXSchedulerPickerMonthlyConfig = {\n mode: 'monthly',\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n defaultInterval: 1,\n minInterval: 1,\n maxInterval: 12,\n firstDayOfWeek: 0,\n options: {\n showInterval: true,\n recurrenceMode: 'specificDays',\n },\n};\n\n/**\n * Yearly mode default configuration\n */\nexport const AXSchedulerPickerYearlyDefaultConfig: AXSchedulerPickerYearlyConfig = {\n mode: 'yearly',\n showEndConditions: true,\n showExclusions: false,\n showInclusions: false,\n defaultInterval: 1,\n minInterval: 1,\n maxInterval: 10,\n firstDayOfWeek: 0,\n options: {\n showInterval: true,\n recurrenceMode: 'specificDate',\n },\n};\n\n/**\n * Injection tokens for each mode configuration\n */\nexport const AX_SCHEDULER_PICKER_HOURLY_CONFIG = new InjectionToken<AXSchedulerPickerHourlyConfig>(\n 'AX_SCHEDULER_PICKER_HOURLY_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXSchedulerPickerHourlyDefaultConfig,\n },\n);\n\nexport const AX_SCHEDULER_PICKER_DAILY_CONFIG = new InjectionToken<AXSchedulerPickerDailyConfig>(\n 'AX_SCHEDULER_PICKER_DAILY_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXSchedulerPickerDailyDefaultConfig,\n },\n);\n\nexport const AX_SCHEDULER_PICKER_WEEKLY_CONFIG = new InjectionToken<AXSchedulerPickerWeeklyConfig>(\n 'AX_SCHEDULER_PICKER_WEEKLY_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXSchedulerPickerWeeklyDefaultConfig,\n },\n);\n\nexport const AX_SCHEDULER_PICKER_MONTHLY_CONFIG = new InjectionToken<AXSchedulerPickerMonthlyConfig>(\n 'AX_SCHEDULER_PICKER_MONTHLY_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXSchedulerPickerMonthlyDefaultConfig,\n },\n);\n\nexport const AX_SCHEDULER_PICKER_YEARLY_CONFIG = new InjectionToken<AXSchedulerPickerYearlyConfig>(\n 'AX_SCHEDULER_PICKER_YEARLY_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXSchedulerPickerYearlyDefaultConfig,\n },\n);\n\n/**\n * Helper function to get default config by mode\n */\nexport function getDefaultSchedulerPickerConfig<T extends 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly'>(\n mode: T,\n): T extends 'hourly'\n ? AXSchedulerPickerHourlyConfig\n : T extends 'daily'\n ? AXSchedulerPickerDailyConfig\n : T extends 'weekly'\n ? AXSchedulerPickerWeeklyConfig\n : T extends 'monthly'\n ? AXSchedulerPickerMonthlyConfig\n : AXSchedulerPickerYearlyConfig {\n switch (mode) {\n case 'hourly':\n return AXSchedulerPickerHourlyDefaultConfig as any;\n case 'daily':\n return AXSchedulerPickerDailyDefaultConfig as any;\n case 'weekly':\n return AXSchedulerPickerWeeklyDefaultConfig as any;\n case 'monthly':\n return AXSchedulerPickerMonthlyDefaultConfig as any;\n case 'yearly':\n return AXSchedulerPickerYearlyDefaultConfig as any;\n default:\n throw new Error(`Unknown mode: ${mode}`);\n }\n}\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXSchedulerPickerSettings,\n AXSchedulerPickerValidationError,\n AXSchedulerPickerValue,\n} from './scheduler-picker.types';\nimport { getDayTranslationKey, getRRuleDayKey } from './scheduler-picker.utils';\n\n/**\n * Service for scheduler picker utilities\n * Handles conversions, calculations, and validation\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXSchedulerPickerService {\n private translationService = inject(AXTranslationService);\n\n /**\n * Calculate next N occurrences from pattern\n * Uses lazy-loaded rrule library for complex calculations\n */\n async calculateOccurrences(pattern: AXSchedulerPickerValue, count: number, startFrom?: Date): Promise<Date[]> {\n const { RRule } = await import('rrule');\n const rruleObj = this.toRRuleObject(pattern, RRule);\n\n if (!rruleObj) {\n return [];\n }\n\n const start = startFrom || new Date();\n return rruleObj.after(start, true) ? rruleObj.all((date, i) => i < count) : [];\n }\n\n /**\n * Convert pattern to cron expression\n * Uses lazy-loaded cron-parser library\n */\n async toCronExpression(pattern: AXSchedulerPickerValue): Promise<string> {\n // Lazy load cron-parser if needed for validation\n const { parseExpression } = await import('cron-parser');\n\n // Build cron expression based on pattern\n const parts: string[] = ['*', '*', '*', '*', '*'];\n\n switch (pattern.mode) {\n case 'hourly':\n if (pattern.recurrence.byMinute) {\n parts[0] = pattern.recurrence.byMinute.join(',');\n }\n if (pattern.recurrence.byHour) {\n parts[1] = pattern.recurrence.byHour.join(',');\n } else {\n parts[1] = `*/${pattern.interval}`;\n }\n break;\n\n case 'daily':\n parts[2] = `*/${pattern.interval}`;\n break;\n\n case 'weekly':\n if (pattern.recurrence.byDay) {\n parts[4] = pattern.recurrence.byDay.join(',');\n }\n break;\n\n case 'monthly':\n if (pattern.recurrence.byDay) {\n parts[2] = pattern.recurrence.byDay.join(',');\n }\n break;\n\n case 'yearly':\n if (pattern.recurrence.byDay) {\n parts[2] = pattern.recurrence.byDay.join(',');\n }\n if (pattern.recurrence.byMonth) {\n parts[3] = pattern.recurrence.byMonth.join(',');\n }\n break;\n }\n\n const cronExpr = parts.join(' ');\n\n // Validate the cron expression\n try {\n parseExpression(cronExpr);\n return cronExpr;\n } catch {\n // Return default cron if generation fails\n return '* * * * *';\n }\n }\n\n /**\n * Convert cron expression to pattern\n * Parses standard cron format: minute hour day month weekday\n */\n async fromCronExpression(cron: string): Promise<AXSchedulerPickerValue | null> {\n try {\n const { parseExpression } = await import('cron-parser');\n const parsed = parseExpression(cron);\n const fields = (parsed as any).fields;\n\n // Analyze cron fields to determine mode\n const minutePattern = this.analyzeCronField(fields.minute);\n const hourPattern = this.analyzeCronField(fields.hour);\n const dayPattern = this.analyzeCronField(fields.dayOfMonth);\n const monthPattern = this.analyzeCronField(fields.month);\n const weekdayPattern = this.analyzeCronField(fields.dayOfWeek);\n\n // Determine mode based on which fields have intervals/values\n let mode: AXSchedulerPickerValue['mode'] = 'daily';\n let interval = 1;\n const recurrence: AXSchedulerPickerValue['recurrence'] = {};\n\n // Hourly mode: */N in hour field or specific hours\n if (hourPattern.isInterval && !dayPattern.hasValues && !monthPattern.hasValues) {\n mode = 'hourly';\n interval = hourPattern.interval || 1;\n if (minutePattern.hasValues) {\n recurrence.byMinute = minutePattern.values;\n }\n if (hourPattern.hasValues) {\n recurrence.byHour = hourPattern.values;\n }\n }\n // Yearly mode: specific months or */N in month field\n else if (monthPattern.hasValues || monthPattern.isInterval) {\n mode = 'yearly';\n interval = monthPattern.interval || 1;\n if (monthPattern.hasValues) {\n recurrence.byMonth = monthPattern.values;\n }\n if (dayPattern.hasValues) {\n recurrence.byDay = dayPattern.values;\n }\n }\n // Monthly mode: */N in day field or specific days\n else if (dayPattern.isInterval || (dayPattern.hasValues && !weekdayPattern.hasValues)) {\n mode = 'monthly';\n interval = dayPattern.interval || 1;\n if (dayPattern.hasValues) {\n recurrence.byDay = dayPattern.values;\n }\n }\n // Weekly mode: specific weekdays\n else if (weekdayPattern.hasValues) {\n mode = 'weekly';\n interval = 1;\n recurrence.byDay = weekdayPattern.values;\n }\n // Daily mode: default fallback\n else {\n mode = 'daily';\n interval = 1;\n }\n\n return {\n mode,\n interval,\n startCondition: { type: 'now', startDate: new Date() },\n recurrence,\n endCondition: { type: 'never' },\n };\n } catch (error) {\n console.error('[SchedulerPicker] Failed to parse cron expression:', error);\n return null;\n }\n }\n\n /**\n * Analyze a cron field to extract interval and values\n */\n private analyzeCronField(field: number[]): { hasValues: boolean; values: number[]; isInterval: boolean; interval: number | null } {\n if (!field || field.length === 0) {\n return { hasValues: false, values: [], isInterval: false, interval: null };\n }\n\n // Check if it's an interval pattern (e.g., */2 produces [0,2,4,6...])\n const isInterval = field.length > 1 && field.length < 60;\n let interval: number | null = null;\n\n if (isInterval && field.length >= 2) {\n // Calculate interval from difference between consecutive values\n interval = field[1] - field[0];\n // Verify it's consistent\n const isConsistent = field.every((val, idx) => idx === 0 || val - field[idx - 1] === interval);\n if (!isConsistent) {\n interval = null;\n }\n }\n\n return {\n hasValues: field.length > 0 && field.length < 60, // Exclude wildcard (all values)\n values: field,\n isInterval: interval !== null,\n interval,\n };\n }\n\n /**\n * Convert pattern to RRule string (iCalendar format)\n */\n async toRRule(pattern: AXSchedulerPickerValue): Promise<string> {\n const { RRule } = await import('rrule');\n const rruleObj = this.toRRuleObject(pattern, RRule);\n return rruleObj ? rruleObj.toString() : '';\n }\n\n /**\n * Convert RRule string to pattern\n */\n async fromRRule(rruleStr: string): Promise<AXSchedulerPickerValue | null> {\n try {\n const { RRule, rrulestr } = await import('rrule');\n const rrule = rrulestr(rruleStr);\n\n // Convert RRule options back to our pattern\n const options = rrule.origOptions;\n\n let mode: AXSchedulerPickerValue['mode'] = 'daily';\n if (options.freq === RRule.HOURLY) mode = 'hourly';\n else if (options.freq === RRule.DAILY) mode = 'daily';\n else if (options.freq === RRule.WEEKLY) mode = 'weekly';\n else if (options.freq === RRule.MONTHLY) mode = 'monthly';\n else if (options.freq === RRule.YEARLY) mode = 'yearly';\n\n return {\n mode,\n interval: options.interval || 1,\n startCondition: { type: 'now', startDate: new Date() },\n recurrence: {\n byDay: options.byweekday as number[],\n byMonth: options.bymonth as number[],\n byHour: options.byhour as number[],\n byMinute: options.byminute as number[],\n },\n endCondition: {\n type: options.count ? 'afterOccurrences' : options.until ? 'byDate' : 'never',\n occurrences: options.count,\n endDate: options.until,\n },\n };\n } catch {\n return null;\n }\n }\n\n /**\n * Generate human-readable description\n * Uses lazy-loaded cronstrue library for i18n\n */\n async toNaturalLanguage(pattern: AXSchedulerPickerValue, locale?: string): Promise<string> {\n const lang = locale || 'en-US';\n\n // Build natural language string based on pattern\n const parts: string[] = [];\n\n // Interval part\n const intervalKey = `@acorex:schedulerPicker.naturalLanguage.every${pattern.mode.charAt(0).toUpperCase() + pattern.mode.slice(1)}`;\n const intervalText = await this.translationService.translateAsync(intervalKey, {\n params: { count: pattern.interval },\n });\n parts.push(intervalText);\n\n // Recurrence part\n if (pattern.mode === 'weekly' && pattern.recurrence.byDay) {\n const days = await this.getDayNames(pattern.recurrence.byDay);\n parts.push(\n await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.onDays', {\n params: { days: days.join(', ') },\n }),\n );\n }\n\n if (pattern.mode === 'monthly') {\n if (pattern.recurrence.byOccurrence && pattern.recurrence.byOccurrence.length > 0) {\n // e.g., \"on the 2nd Monday\"\n const occ = pattern.recurrence.byOccurrence[0];\n const positionText = await this.getOccurrencePositionText(occ.position);\n const dayName = await this.translationService.translateAsync(\n `@acorex:schedulerPicker.days.${getDayTranslationKey(occ.dayOfWeek)}`,\n );\n const onThe = await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.onThe');\n parts.push(`${onThe} ${positionText} ${dayName}`);\n } else if (pattern.recurrence.byDay && pattern.recurrence.byDay.length > 0) {\n // e.g., \"on day 15\" or \"on days 1, 15, 30\"\n const dayList = pattern.recurrence.byDay.join(', ');\n const onDayKey = pattern.recurrence.byDay.length > 1 ? '@acorex:schedulerPicker.naturalLanguage.onDaysPlural' : '@acorex:schedulerPicker.naturalLanguage.onDay';\n const onDay = await this.translationService.translateAsync(onDayKey);\n parts.push(`${onDay} ${dayList}`);\n }\n }\n\n if (pattern.mode === 'yearly') {\n const yearlyParts: string[] = [];\n\n // Month part\n if (pattern.recurrence.byMonth && pattern.recurrence.byMonth.length > 0) {\n const months = await this.getMonthNames(pattern.recurrence.byMonth);\n const inWord = await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.in');\n yearlyParts.push(`${inWord} ${months.join(', ')}`);\n }\n\n // Day/Occurrence part\n if (pattern.recurrence.byOccurrence && pattern.recurrence.byOccurrence.length > 0) {\n // e.g., \"on the 2nd Monday\"\n const occ = pattern.recurrence.byOccurrence[0];\n const positionText = await this.getOccurrencePositionText(occ.position);\n const dayName = await this.translationService.translateAsync(\n `@acorex:schedulerPicker.days.${getDayTranslationKey(occ.dayOfWeek)}`,\n );\n const onThe = await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.onThe');\n yearlyParts.push(`${onThe} ${positionText} ${dayName}`);\n } else if (pattern.recurrence.byDay && pattern.recurrence.byDay.length > 0) {\n // e.g., \"on day 15\" or \"on days 1, 15, 30\"\n const dayList = pattern.recurrence.byDay.join(', ');\n const onDayKey = pattern.recurrence.byDay.length > 1 ? '@acorex:schedulerPicker.naturalLanguage.onDaysPlural' : '@acorex:schedulerPicker.naturalLanguage.onDay';\n const onDay = await this.translationService.translateAsync(onDayKey);\n yearlyParts.push(`${onDay} ${dayList}`);\n }\n\n if (yearlyParts.length > 0) {\n parts.push(yearlyParts.join(' '));\n }\n }\n\n // Start condition part\n if (pattern.startCondition.type === 'byDate' && pattern.startCondition.startDate) {\n parts.push(\n await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.startingFrom', {\n params: { date: pattern.startCondition.startDate.toLocaleDateString(lang) },\n }),\n );\n }\n\n // End condition part\n if (pattern.endCondition.type === 'afterOccurrences') {\n parts.push(\n await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.forOccurrences', {\n params: { count: pattern.endCondition.occurrences },\n }),\n );\n } else if (pattern.endCondition.type === 'byDate' && pattern.endCondition.endDate) {\n parts.push(\n await this.translationService.translateAsync('@acorex:schedulerPicker.naturalLanguage.until', {\n params: { date: pattern.endCondition.endDate.toLocaleDateString(lang) },\n }),\n );\n }\n\n return parts.join(' ');\n }\n\n /**\n * Validate pattern against config and rules\n */\n async validatePattern(\n pattern: AXSchedulerPickerValue,\n settings: AXSchedulerPickerSettings,\n ): Promise<AXSchedulerPickerValidationError[]> {\n const errors: AXSchedulerPickerValidationError[] = [];\n\n // Required fields\n if (!pattern.mode) {\n errors.push({\n field: 'mode',\n code: 'required',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.modeRequired'),\n });\n }\n\n if (!pattern.interval || pattern.interval < 1) {\n errors.push({\n field: 'interval',\n code: 'required',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.intervalRequired'),\n });\n }\n\n // Interval constraints\n if (settings.minInterval && pattern.interval < settings.minInterval) {\n errors.push({\n field: 'interval',\n code: 'outOfRange',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.intervalTooSmall', {\n params: { min: settings.minInterval },\n }),\n params: { min: settings.minInterval },\n });\n }\n\n if (settings.maxInterval && pattern.interval > settings.maxInterval) {\n errors.push({\n field: 'interval',\n code: 'outOfRange',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.intervalTooLarge', {\n params: { max: settings.maxInterval },\n }),\n params: { max: settings.maxInterval },\n });\n }\n\n // Mode-specific recurrence validation\n if (pattern.mode === 'monthly') {\n const hasByDay = pattern.recurrence.byDay && pattern.recurrence.byDay.length > 0;\n const hasByOccurrence = pattern.recurrence.byOccurrence && pattern.recurrence.byOccurrence.length > 0;\n\n // Conflict: Cannot have both day of month and occurrence pattern\n if (hasByDay && hasByOccurrence) {\n errors.push({\n field: 'recurrence',\n code: 'conflict',\n message: await this.translationService.translateAsync(\n '@acorex:schedulerPicker.validation.cannotCombineDayAndOccurrence',\n ),\n });\n }\n }\n\n // Yearly mode: Validate occurrence conflicts\n if (pattern.mode === 'yearly') {\n const hasByDay = pattern.recurrence.byDay && pattern.recurrence.byDay.length > 0;\n const hasByOccurrence = pattern.recurrence.byOccurrence && pattern.recurrence.byOccurrence.length > 0;\n\n if (hasByDay && hasByOccurrence) {\n errors.push({\n field: 'recurrence',\n code: 'conflict',\n message: await this.translationService.translateAsync(\n '@acorex:schedulerPicker.validation.cannotCombineDayAndOccurrence',\n ),\n });\n }\n }\n\n // Validate exclusions and inclusions size for performance\n const maxDateArraySize = 1000; // Prevent excessive memory usage\n if (pattern.exclusions && pattern.exclusions.length > maxDateArraySize) {\n errors.push({\n field: 'exclusions',\n code: 'outOfRange',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.tooManyExclusions', {\n params: { max: maxDateArraySize },\n }),\n params: { max: maxDateArraySize },\n });\n }\n\n if (pattern.inclusions && pattern.inclusions.length > maxDateArraySize) {\n errors.push({\n field: 'inclusions',\n code: 'outOfRange',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.tooManyInclusions', {\n params: { max: maxDateArraySize },\n }),\n params: { max: maxDateArraySize },\n });\n }\n\n // End date validation\n if (pattern.endCondition.type === 'byDate' && pattern.endCondition.endDate) {\n if (pattern.endCondition.endDate < new Date()) {\n errors.push({\n field: 'endCondition.endDate',\n code: 'pastDate',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.endDateInPast'),\n });\n }\n\n if (settings.maxDate && pattern.endCondition.endDate > settings.maxDate) {\n errors.push({\n field: 'endCondition.endDate',\n code: 'outOfRange',\n message: await this.translationService.translateAsync('@acorex:schedulerPicker.validation.endDateTooFar', {\n params: { maxDate: settings.maxDate.toLocaleDateString() },\n }),\n params: { maxDate: settings.maxDate },\n });\n }\n }\n\n // Custom validators\n if (settings.customValidators) {\n for (const validator of settings.customValidators) {\n const error = validator(pattern, settings);\n if (error) {\n errors.push(error);\n }\n }\n }\n\n return errors;\n }\n\n /**\n * Check if a specific date matches the pattern\n */\n async isDateMatch(pattern: AXSchedulerPickerValue, date: Date): Promise<boolean> {\n const { RRule } = await import('rrule');\n const rruleObj = this.toRRuleObject(pattern, RRule);\n\n if (!rruleObj) {\n return false;\n }\n\n // Check if date is in the generated occurrences\n const occurrences = rruleObj.between(new Date(date.getTime() - 1000), new Date(date.getTime() + 1000), true);\n\n return occurrences.length > 0;\n }\n\n /**\n * Get next occurrence from a specific date\n */\n async getNextOccurrence(pattern: AXSchedulerPickerValue, from: Date): Promise<Date | null> {\n const { RRule } = await import('rrule');\n const rruleObj = this.toRRuleObject(pattern, RRule);\n\n if (!rruleObj) {\n return null;\n }\n\n return rruleObj.after(from, false) || null;\n }\n\n /**\n * Convert pattern to RRule object\n * Helper method for RRule operations\n */\n private toRRuleObject(pattern: AXSchedulerPickerValue, RRule: any): any {\n const options: any = {\n interval: pattern.interval,\n };\n\n // Set frequency\n switch (pattern.mode) {\n case 'hourly':\n options.freq = RRule.HOURLY;\n break;\n case 'daily':\n options.freq = RRule.DAILY;\n break;\n case 'weekly':\n options.freq = RRule.WEEKLY;\n break;\n case 'monthly':\n options.freq = RRule.MONTHLY;\n break;\n case 'yearly':\n options.freq = RRule.YEARLY;\n break;\n }\n\n // Set recurrence rules\n if (pattern.recurrence.byDay) {\n if (pattern.mode === 'weekly') {\n options.byweekday = pattern.recurrence.byDay;\n } else if (pattern.mode === 'monthly' || pattern.mode === 'yearly') {\n options.bymonthday = pattern.recurrence.byDay;\n }\n }\n\n if (pattern.recurrence.byMonth) {\n options.bymonth = pattern.recurrence.byMonth;\n }\n\n if (pattern.recurrence.byHour) {\n options.byhour = pattern.recurrence.byHour;\n }\n\n if (pattern.recurrence.byMinute) {\n options.byminute = pattern.recurrence.byMinute;\n }\n\n // Set occurrence rules\n if (pattern.recurrence.byOccurrence) {\n // RRule format for \"first Monday\" etc.\n options.byweekday = pattern.recurrence.byOccurrence.map((occ) => {\n return RRule[this.getDayName(occ.dayOfWeek)].nth(occ.position);\n });\n }\n\n // Set end condition\n switch (pattern.endCondition.type) {\n case 'afterOccurrences':\n options.count = pattern.endCondition.occurrences;\n break;\n case 'byDate':\n options.until = pattern.endCondition.endDate;\n break;\n }\n\n try {\n return new RRule(options);\n } catch {\n return null;\n }\n }\n\n /**\n * Get day name constant for RRule\n */\n private getDayName(dayIndex: number): string {\n return getRRuleDayKey(dayIndex);\n }\n\n /**\n * Get localized day names\n */\n private async getDayNames(dayIndices: number[]): Promise<string[]> {\n return Promise.all(\n dayIndices.map((index) =>\n this.translationService.translateAsync(`@acorex:schedulerPicker.days.${getDayTranslationKey(index)}`),\n ),\n );\n }\n\n /**\n * Get localized month names\n */\n private async getMonthNames(monthIndices: number[]): Promise<string[]> {\n const monthKeys = [\n 'january',\n 'february',\n 'march',\n 'april',\n 'may',\n 'june',\n 'july',\n 'august',\n 'september',\n 'october',\n 'november',\n 'december',\n ];\n return Promise.all(\n monthIndices.map((index) =>\n this.translationService.translateAsync(`@acorex:schedulerPicker.months.${monthKeys[index]}`),\n ),\n );\n }\n\n /**\n * Get text for occurrence position\n */\n private async getOccurrencePositionText(position: 1 | 2 | 3 | 4 | -1): Promise<string> {\n const ordinalKeys: Record<number, string> = {\n 1: '1st',\n 2: '2nd',\n 3: '3rd',\n 4: '4th',\n '-1': 'last',\n };\n const key = ordinalKeys[position] || '1st';\n return this.translationService.translateAsync(`@acorex:schedulerPicker.ordinals.${key}`);\n }\n}\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSchedulerPickerSettings } from '../../scheduler-picker.types';\n\nexport interface AXSchedulerPickerStartCondition {\n type: 'now' | 'byDate';\n startDate: Date;\n}\n\n@Component({\n selector: 'ax-scheduler-picker-start-condition-selector',\n templateUrl: './start-condition-selector.component.html',\n styleUrls: ['./start-condition-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXSelectionListModule, AXDateTimeBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerStartConditionSelectorComponent {\n startCondition = input<AXSchedulerPickerStartCondition>();\n config = input.required<AXSchedulerPickerSettings>();\n startConditionChange = output<AXSchedulerPickerStartCondition>();\n\n protected selectedType = signal<'now' | 'byDate'>('now');\n protected startDate = signal<Date | null>(null);\n\n protected readonly startTypeItems = [\n { id: 'now', text: '@acorex:schedulerPicker.startCondition.now' },\n { id: 'byDate', text: '@acorex:schedulerPicker.startCondition.byDate' },\n ];\n\n constructor() {\n // Initialize from input\n effect(() => {\n const condition = this.startCondition();\n if (condition) {\n this.selectedType.set(condition.type);\n this.startDate.set(condition.startDate);\n }\n });\n }\n\n protected onTypeChange(event: AXValueChangedEvent<'now' | 'byDate'>): void {\n this.selectedType.set(event.value);\n this.emitChange();\n }\n\n protected onDateChange(value: Date): void {\n this.startDate.set(value);\n this.emitChange();\n }\n\n private emitChange(): void {\n const type = this.selectedType();\n const condition: AXSchedulerPickerStartCondition = {\n type,\n startDate: type === 'byDate' ? this.startDate() || new Date() : new Date(),\n };\n\n this.startConditionChange.emit(condition);\n }\n}\n","<div class=\"ax-scheduler-picker-start-condition-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.startCondition' | translate | async }}\n </label>\n\n <ax-selection-list\n [items]=\"startTypeItems\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n [look]=\"'solid'\"\n [direction]=\"'horizontal'\"\n [value]=\"selectedType()\"\n (onValueChanged)=\"onTypeChange($event)\"\n />\n\n @if (selectedType() === 'byDate') {\n <div class=\"ax-scheduler-picker-input-group\">\n <label class=\"ax-scheduler-picker-sublabel\">\n {{ '@acorex:schedulerPicker.labels.startDate' | translate | async }}\n </label>\n <ax-datetime-box [value]=\"startDate()\" [picker]=\"'datetime'\" (valueChange)=\"onDateChange($event)\" />\n </div>\n }\n</div>\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXNumberBoxComponent } from '@acorex/components/number-box';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AX_SCHEDULER_PICKER_DEFAULT_OCCURRENCES } from '../../scheduler-picker.const';\nimport { AXSchedulerPickerSettings } from '../../scheduler-picker.types';\n\nexport interface AXSchedulerPickerEndCondition {\n type: 'never' | 'afterOccurrences' | 'byDate';\n occurrences?: number;\n endDate?: Date;\n}\n\n@Component({\n selector: 'ax-scheduler-picker-end-condition-selector',\n templateUrl: './end-condition-selector.component.html',\n styleUrls: ['./end-condition-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n AXSelectionListModule,\n AXNumberBoxComponent,\n AXDateTimeBoxComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ],\n})\nexport class AXSchedulerPickerEndConditionSelectorComponent {\n endCondition = input<AXSchedulerPickerEndCondition>();\n config = input.required<AXSchedulerPickerSettings>();\n endConditionChange = output<AXSchedulerPickerEndCondition>();\n\n protected selectedType = signal<'never' | 'afterOccurrences' | 'byDate'>('never');\n protected occurrences = signal<number>(AX_SCHEDULER_PICKER_DEFAULT_OCCURRENCES);\n protected endDate = signal<Date | null>(null);\n\n protected readonly endTypeItems = [\n { id: 'never', text: '@acorex:schedulerPicker.endCondition.never' },\n { id: 'afterOccurrences', text: '@acorex:schedulerPicker.endCondition.afterOccurrences' },\n { id: 'byDate', text: '@acorex:schedulerPicker.endCondition.byDate' },\n ];\n\n constructor() {\n // Sync input with internal state\n effect(() => {\n const condition = this.endCondition();\n if (condition) {\n this.selectedType.set(condition.type);\n if (condition.type === 'afterOccurrences' && condition.occurrences) {\n this.occurrences.set(condition.occurrences);\n }\n if (condition.type === 'byDate' && condition.endDate) {\n this.endDate.set(condition.endDate);\n }\n }\n });\n }\n\n protected onTypeChange(event: AXValueChangedEvent<'never' | 'afterOccurrences' | 'byDate'>): void {\n this.selectedType.set(event.value);\n this.emitChange();\n }\n\n protected onOccurrencesChange(value: number): void {\n this.occurrences.set(value);\n this.emitChange();\n }\n\n protected onDateChange(value: Date): void {\n this.endDate.set(value);\n this.emitChange();\n }\n\n private emitChange(): void {\n const type = this.selectedType();\n let condition: AXSchedulerPickerEndCondition;\n\n switch (type) {\n case 'afterOccurrences':\n condition = { type: 'afterOccurrences', occurrences: this.occurrences() };\n break;\n case 'byDate':\n condition = { type: 'byDate', endDate: this.endDate() || new Date() };\n break;\n default:\n condition = { type: 'never' };\n }\n\n this.endConditionChange.emit(condition);\n }\n}\n","<div class=\"ax-scheduler-picker-end-condition-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.endCondition' | translate | async }}\n </label>\n\n <ax-selection-list\n [items]=\"endTypeItems\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n [look]=\"'solid'\"\n [direction]=\"'horizontal'\"\n [value]=\"selectedType()\"\n (onValueChanged)=\"onTypeChange($event)\"\n />\n\n @if (selectedType() === 'afterOccurrences') {\n <div class=\"ax-scheduler-picker-input-group\">\n <label class=\"ax-scheduler-picker-sublabel\">\n {{ '@acorex:schedulerPicker.labels.numberOfOccurrences' | translate | async }}\n </label>\n <ax-number-box [value]=\"occurrences()\" (valueChange)=\"onOccurrencesChange($event)\" />\n </div>\n }\n\n @if (selectedType() === 'byDate') {\n <div class=\"ax-scheduler-picker-input-group\">\n <label class=\"ax-scheduler-picker-sublabel\">\n {{ '@acorex:schedulerPicker.labels.endDate' | translate | async }}\n </label>\n <ax-datetime-box [value]=\"endDate()\" mode=\"date\" (valueChange)=\"onDateChange($event)\" />\n </div>\n }\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXChipsModule } from '@acorex/components/chips';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSchedulerPickerSettings } from '../../scheduler-picker.types';\nimport { dateExistsInArray, normalizeDate } from '../../scheduler-picker.utils';\n\n@Component({\n selector: 'ax-scheduler-picker-exclusion-manager',\n template: `\n <div class=\"ax-scheduler-picker-exclusion-manager\">\n <div class=\"ax-scheduler-picker-section-header\">\n <label class=\"ax-scheduler-picker-label\">\n <i class=\"ax-icon ax-icon-calendar-remove\"></i>\n {{ '@acorex:schedulerPicker.labels.excludeDates' | translate | async }}\n </label>\n @if (exclusionList().length > 0) {\n <ax-badge [text]=\"exclusionList().length.toString()\"></ax-badge>\n }\n </div>\n\n <div class=\"ax-scheduler-picker-add-section\">\n <ax-datetime-box\n class=\"ax-scheduler-picker-date-input\"\n [value]=\"newExclusionDate()\"\n mode=\"date\"\n (valueChange)=\"newExclusionDate.set($event)\"\n [placeholder]=\"'@acorex:schedulerPicker.placeholders.selectExclusionDate' | translate | async\"\n />\n <ax-button\n mode=\"success\"\n [text]=\"'@acorex:common.actions.add' | translate | async\"\n (click)=\"addExclusion()\"\n [disabled]=\"!newExclusionDate()\"\n >\n <ax-prefix>\n <i class=\"ax-icon ax-icon-plus\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n\n @if (exclusionList().length > 0) {\n <div class=\"ax-scheduler-picker-chips-container\">\n @for (date of exclusionList(); track date.getTime()) {\n <ax-chips [text]=\"date | date: 'mediumDate'\" color=\"danger\" (click)=\"removeExclusion(date)\">\n <ax-prefix>\n <i class=\"ax-icon ax-icon-calendar\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"ax-icon ax-icon-close\"></i>\n </ax-suffix>\n </ax-chips>\n }\n </div>\n } @else {\n <div class=\"ax-scheduler-picker-empty-state\">\n <i class=\"ax-icon ax-icon-calendar-check\"></i>\n <span>{{ '@acorex:schedulerPicker.messages.noExcludedDates' | translate | async }}</span>\n </div>\n }\n </div>\n `,\n styles: [\n `\n .ax-scheduler-picker-exclusion-manager {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n }\n\n .ax-scheduler-picker-section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 0.375rem;\n }\n\n .ax-scheduler-picker-label {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n }\n\n .ax-scheduler-picker-label .ax-icon {\n font-size: 1.125rem;\n color: rgb(var(--ax-sys-color-danger-500));\n }\n\n .ax-scheduler-picker-add-section {\n display: flex;\n gap: 0.5rem;\n align-items: stretch;\n }\n\n .ax-scheduler-picker-date-input {\n flex: 1;\n }\n\n .ax-scheduler-picker-chips-container {\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem;\n }\n\n .ax-scheduler-picker-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n padding: 0.75rem 0.5rem;\n border: 1px dashed rgb(var(--ax-sys-color-border-light-surface));\n border-radius: var(--ax-sys-border-radius-md);\n color: rgb(var(--ax-sys-color-on-darker-surface));\n font-size: 0.875rem;\n }\n\n .ax-scheduler-picker-empty-state .ax-icon {\n font-size: 1.5rem;\n opacity: 0.4;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXDecoratorModule,\n AXBadgeModule,\n AXChipsModule,\n FormsModule,\n AXDateTimeBoxComponent,\n AXButtonComponent,\n AXTranslatorPipe,\n AsyncPipe,\n DatePipe,\n ],\n host: {\n class: 'ax-scheduler-picker-exclusion-manager-host',\n },\n})\nexport class AXSchedulerPickerExclusionManagerComponent {\n exclusions = input<Date[]>();\n config = input<AXSchedulerPickerSettings>();\n exclusionsChange = output<Date[]>();\n\n protected newExclusionDate = signal<Date | null>(null);\n protected exclusionList = signal<Date[]>([]);\n\n constructor() {\n // Sync input with internal list\n effect(() => {\n const exclusions = this.exclusions();\n this.exclusionList.set(exclusions || []);\n });\n }\n\n protected addExclusion(): void {\n const date = this.newExclusionDate();\n if (date) {\n // Normalize date to midnight\n const normalized = normalizeDate(date);\n\n // Check for duplicates\n if (!dateExistsInArray(normalized, this.exclusionList())) {\n const updated = [...this.exclusionList(), normalized];\n this.exclusionList.set(updated);\n this.exclusionsChange.emit(updated);\n }\n\n this.newExclusionDate.set(null);\n }\n }\n\n protected removeExclusion(date: Date): void {\n const normalized = normalizeDate(date);\n const updated = this.exclusionList().filter((d) => normalizeDate(d).getTime() !== normalized.getTime());\n this.exclusionList.set(updated);\n this.exclusionsChange.emit(updated);\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXChipsModule } from '@acorex/components/chips';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { dateExistsInArray, normalizeDate } from '../../scheduler-picker.utils';\n\n@Component({\n selector: 'ax-scheduler-picker-inclusion-manager',\n template: `\n <div class=\"ax-scheduler-picker-inclusion-manager\">\n <div class=\"ax-scheduler-picker-section-header\">\n <label class=\"ax-scheduler-picker-label\">\n <i class=\"ax-icon ax-icon-calendar-add\"></i>\n {{ '@acorex:schedulerPicker.labels.includeDates' | translate | async }}\n </label>\n @if (inclusionList().length > 0) {\n <ax-badge [text]=\"inclusionList().length.toString()\"></ax-badge>\n }\n </div>\n\n <div class=\"ax-scheduler-picker-add-section\">\n <ax-datetime-box\n class=\"ax-scheduler-picker-date-input\"\n [value]=\"newInclusionDate()\"\n mode=\"date\"\n (valueChange)=\"newInclusionDate.set($event)\"\n [placeholder]=\"'@acorex:schedulerPicker.placeholders.selectInclusionDate' | translate | async\"\n />\n <ax-button\n mode=\"success\"\n (click)=\"addInclusion()\"\n [disabled]=\"!newInclusionDate()\"\n [text]=\"'@acorex:common.actions.add' | translate | async\"\n >\n <ax-prefix>\n <i class=\"ax-icon ax-icon-plus\"></i>\n </ax-prefix>\n </ax-button>\n </div>\n\n @if (inclusionList().length > 0) {\n <div class=\"ax-scheduler-picker-chips-container\">\n @for (date of inclusionList(); track date.getTime()) {\n <ax-chips [text]=\"date | date: 'mediumDate'\" color=\"success\" (click)=\"removeInclusion(date)\">\n <ax-prefix>\n <i class=\"ax-icon ax-icon-calendar\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"ax-icon ax-icon-close\"></i>\n </ax-suffix>\n </ax-chips>\n }\n </div>\n } @else {\n <div class=\"ax-scheduler-picker-empty-state\">\n <i class=\"ax-icon ax-icon-calendar-check\"></i>\n <span>{{ '@acorex:schedulerPicker.messages.noIncludedDates' | translate | async }}</span>\n </div>\n }\n </div>\n `,\n styles: [\n `\n .ax-scheduler-picker-inclusion-manager {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n }\n\n .ax-scheduler-picker-section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 0.375rem;\n }\n\n .ax-scheduler-picker-label {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n }\n\n .ax-scheduler-picker-label .ax-icon {\n font-size: 1.125rem;\n color: rgb(var(--ax-sys-color-success-500));\n }\n\n .ax-scheduler-picker-add-section {\n display: flex;\n gap: 0.5rem;\n align-items: stretch;\n }\n\n .ax-scheduler-picker-date-input {\n flex: 1;\n }\n\n .ax-scheduler-picker-chips-container {\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem;\n }\n\n .ax-scheduler-picker-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n padding: 0.75rem 0.5rem;\n border: 1px dashed rgb(var(--ax-sys-color-border-light-surface));\n border-radius: var(--ax-sys-border-radius-md);\n color: rgb(var(--ax-sys-color-on-darker-surface));\n font-size: 0.875rem;\n }\n\n .ax-scheduler-picker-empty-state .ax-icon {\n font-size: 1.5rem;\n opacity: 0.4;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXDecoratorModule,\n AXBadgeModule,\n AXChipsModule,\n FormsModule,\n AXDateTimeBoxComponent,\n AXButtonComponent,\n AXTranslatorPipe,\n AsyncPipe,\n DatePipe,\n ],\n host: {\n class: 'ax-scheduler-picker-inclusion-manager-host',\n },\n})\nexport class AXSchedulerPickerInclusionManagerComponent {\n inclusions = input<Date[]>();\n inclusionsChange = output<Date[]>();\n\n protected newInclusionDate = signal<Date | null>(null);\n protected inclusionList = signal<Date[]>([]);\n\n constructor() {\n // Sync input with internal list\n effect(() => {\n const inclusions = this.inclusions();\n this.inclusionList.set(inclusions || []);\n });\n }\n\n protected addInclusion(): void {\n const date = this.newInclusionDate();\n if (date) {\n // Normalize date to midnight\n const normalized = normalizeDate(date);\n\n // Check for duplicates\n if (!dateExistsInArray(normalized, this.inclusionList())) {\n const updated = [...this.inclusionList(), normalized];\n this.inclusionList.set(updated);\n this.inclusionsChange.emit(updated);\n }\n\n this.newInclusionDate.set(null);\n }\n }\n\n protected removeInclusion(date: Date): void {\n const normalized = normalizeDate(date);\n const updated = this.inclusionList().filter((d) => normalizeDate(d).getTime() !== normalized.getTime());\n this.inclusionList.set(updated);\n this.inclusionsChange.emit(updated);\n }\n}\n","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent } from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXSchedulerPickerDailyPanelComponent } from './panels/daily-panel/daily-panel.component';\nimport { AXSchedulerPickerHourlyPanelComponent } from './panels/hourly-panel/hourly-panel.component';\nimport { AXSchedulerPickerMonthlyPanelComponent } from './panels/monthly-panel/monthly-panel.component';\nimport { AXSchedulerPickerWeeklyPanelComponent } from './panels/weekly-panel/weekly-panel.component';\nimport { AXSchedulerPickerYearlyPanelComponent } from './panels/yearly-panel/yearly-panel.component';\nimport { getDefaultSchedulerPickerConfig } from './scheduler-picker.config';\nimport { AXSchedulerPickerService } from './scheduler-picker.service';\nimport { AXSchedulerPickerSettings, AXSchedulerPickerValue } from './scheduler-picker.types';\nimport { AXSchedulerPickerStartConditionSelectorComponent } from './shared/start-condition-selector/start-condition-selector.component';\nimport { AXSchedulerPickerEndConditionSelectorComponent } from './shared/end-condition-selector/end-condition-selector.component';\nimport { AXSchedulerPickerExclusionManagerComponent } from './shared/exclusion-manager/exclusion-manager.component';\nimport { AXSchedulerPickerInclusionManagerComponent } from './shared/inclusion-manager/inclusion-manager.component';\n\n/**\n * A powerful, fully customizable scheduler picker component for creating recurrence patterns\n * \n * ## Features\n * - Supports 5 modes: hourly, daily, weekly, monthly, and yearly\n * - Flexible start and end conditions\n * - Date exclusions and inclusions\n * - Natural language summary generation\n * - Export to Cron and RRule (iCalendar) formats\n * - Full i18n support\n * - Type-safe configuration\n * \n * ## Basic Usage\n * ```typescript\n * <ax-scheduler-picker\n * [config]=\"{ mode: 'daily', showEndConditions: true }\"\n * [(value)]=\"pattern\"\n * (summaryChange)=\"onSummaryChange($event)\"\n * />\n * ```\n * \n * ## Public API\n * - `validatePattern()` - Manually trigger validation\n * - `getPreview(count)` - Get next N occurrences\n * - `toCron()` - Convert to cron expression\n * - `toRRule()` - Convert to RRule string\n * - `reset()` - Reset to default pattern\n * - `clear()` - Clear all data\n * - `validationErrors` - Signal containing current validation errors\n * \n * @category Components\n */\n@Component({\n selector: 'ax-scheduler-picker',\n templateUrl: './scheduler-picker.component.html',\n styleUrls: ['./scheduler-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled', 'readonly', 'tabIndex', 'value', 'state', 'name', 'id'],\n outputs: ['valueChange', 'stateChange', 'onValueChanged', 'onBlur', 'onFocus'],\n providers: [\n { provide: AXComponent, useExisting: AXSchedulerPickerComponent },\n { provide: AXFocusableComponent, useExisting: AXSchedulerPickerComponent },\n { provide: AXValuableComponent, useExisting: AXSchedulerPickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXSchedulerPickerComponent),\n multi: true,\n },\n ],\n imports: [\n AXSchedulerPickerHourlyPanelComponent,\n AXSchedulerPickerDailyPanelComponent,\n AXSchedulerPickerWeeklyPanelComponent,\n AXSchedulerPickerMonthlyPanelComponent,\n AXSchedulerPickerYearlyPanelComponent,\n AXSchedulerPickerStartConditionSelectorComponent,\n AXSchedulerPickerEndConditionSelectorComponent,\n AXSchedulerPickerExclusionManagerComponent,\n AXSchedulerPickerInclusionManagerComponent,\n ],\n})\nexport class AXSchedulerPickerComponent extends MXValueComponent<AXSchedulerPickerValue> {\n /**\n * Settings for the scheduler picker\n * Controls which options are visible and behavior\n */\n config = input.required<AXSchedulerPickerSettings>();\n\n /**\n * Emits when the human-readable summary changes\n */\n summaryChange = output<string>();\n\n private service = inject(AXSchedulerPickerService);\n\n /**\n * Internal pattern value\n */\n protected pattern = signal<AXSchedulerPickerValue | null>(null);\n\n /**\n * Current mode derived from config\n */\n protected mode = computed(() => this.config().mode);\n\n /**\n * Effect run counter to prevent stale async updates\n */\n private effectRunId = 0;\n\n /**\n * Merged configuration with defaults\n */\n protected mergedConfig = computed(() => {\n const defaultConfig = getDefaultSchedulerPickerConfig(this.config().mode);\n return {\n ...defaultConfig,\n ...this.config(),\n options: {\n ...defaultConfig.options,\n ...this.config().options,\n },\n };\n });\n\n /**\n * Validation errors (public for external access)\n */\n readonly validationErrors = signal<string[]>([]);\n\n /**\n * Human-readable summary of the pattern\n */\n protected summary = signal<string>('');\n\n protected override internalValueChanged(value: AXSchedulerPickerValue): void {\n if (value) {\n this.pattern.set(value);\n } else {\n this.initializeDefaultValue();\n }\n }\n\n constructor() {\n super();\n\n // Effect to update summary when pattern changes\n effect(() => {\n const currentPattern = this.pattern();\n if (currentPattern) {\n const runId = ++this.effectRunId;\n this.service.toNaturalLanguage(currentPattern, this.mergedConfig().locale).then((result) => {\n // Only update if this is still the latest run\n if (runId === this.effectRunId) {\n this.summary.set(result);\n this.summaryChange.emit(result);\n }\n });\n } else {\n this.summary.set('');\n this.summaryChange.emit('');\n }\n });\n }\n\n /**\n * Initialize with default value based on mode\n */\n protected initializeDefaultValue(): void {\n if (!this.value) {\n const defaultValue: AXSchedulerPickerValue = {\n mode: this.config().mode,\n interval: this.config().defaultInterval || 1,\n startCondition: {\n type: 'now',\n startDate: new Date(),\n },\n recurrence: {},\n endCondition: {\n type: 'never',\n },\n };\n\n this.value = defaultValue;\n }\n }\n\n /**\n * Update pattern value\n */\n protected updatePattern(updates: Partial<AXSchedulerPickerValue>): void {\n const currentPattern = this.pattern();\n if (currentPattern) {\n const newPattern = this.mergePatternUpdates(currentPattern, updates);\n this.pattern.set(newPattern);\n this.value = newPattern;\n }\n }\n\n /**\n * Deep merge pattern updates with current pattern\n * Preserves nested object properties that aren't being updated\n */\n private mergePatternUpdates(\n current: AXSchedulerPickerValue,\n updates: Partial<AXSchedulerPickerValue>\n ): AXSchedulerPickerValue {\n return {\n ...current,\n ...updates,\n // Deep merge recurrence to preserve existing properties\n recurrence: updates.recurrence\n ? {\n ...current.recurrence,\n ...updates.recurrence,\n }\n : current.recurrence,\n // Deep merge startCondition to preserve existing properties\n startCondition: updates.startCondition\n ? {\n ...current.startCondition,\n ...updates.startCondition,\n }\n : current.startCondition,\n // Deep merge endCondition to preserve existing properties\n endCondition: updates.endCondition\n ? {\n ...current.endCondition,\n ...updates.endCondition,\n }\n : current.endCondition,\n };\n }\n\n /**\n * Manually validate the current pattern\n * \n * Validates the pattern against configured rules and constraints.\n * Updates the `validationErrors` signal and component state.\n * \n * @returns Promise resolving to `true` if pattern is valid, `false` otherwise\n * \n * @example\n * ```typescript\n * const isValid = await schedulerPicker.validatePattern();\n * if (!isValid) {\n * const errors = schedulerPicker.validationErrors();\n * console.log('Validation errors:', errors);\n * }\n * ```\n */\n async validatePattern(): Promise<boolean> {\n const currentPattern = this.pattern();\n if (!currentPattern) {\n return false;\n }\n\n const errors = await this.service.validatePattern(currentPattern, this.mergedConfig());\n const errorMessages = errors.map((e) => e.message);\n this.validationErrors.set(errorMessages);\n\n if (errors.length > 0) {\n this.setState('error');\n return false;\n } else {\n this.setState('clear');\n return true;\n }\n }\n\n /**\n * Get preview of next N occurrences based on the current pattern\n * \n * @param count - Number of occurrences to return (default: 10)\n * @param startFrom - Optional starting date (default: now)\n * @returns Promise resolving to array of dates representing next occurrences\n * @returns Empty array if pattern is invalid or not set\n * \n * @example\n * ```typescript\n * const dates = await schedulerPicker.getPreview(5);\n * console.log('Next 5 occurrences:', dates);\n * ```\n */\n async getPreview(count = 10, startFrom?: Date): Promise<Date[]> {\n const currentPattern = this.pattern();\n if (!currentPattern) {\n return [];\n }\n return await this.service.calculateOccurrences(currentPattern, count, startFrom);\n }\n\n /**\n * Convert current pattern to cron expression\n * \n * @returns Promise resolving to cron expression string\n * @returns Empty string if pattern is not set or invalid\n * \n * @example\n * ```typescript\n * const cron = await schedulerPicker.toCron();\n * console.log('Cron expression:', cron); // \"0 9 * * 1-5\"\n * ```\n */\n async toCron(): Promise<string> {\n const currentPattern = this.pattern();\n if (!currentPattern) {\n return '';\n }\n return await this.service.toCronExpression(currentPattern);\n }\n\n /**\n * Convert current pattern to RRule string (iCalendar format)\n * \n * @returns Promise resolving to RRule string\n * @returns Empty string if pattern is not set or invalid\n * \n * @example\n * ```typescript\n * const rrule = await schedulerPicker.toRRule();\n * console.log('RRule:', rrule); // \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR\"\n * ```\n */\n async toRRule(): Promise<string> {\n const currentPattern = this.pattern();\n if (!currentPattern) {\n return '';\n }\n return await this.service.toRRule(currentPattern);\n }\n\n /**\n * Reset pattern to default value based on current mode\n * Clears current pattern and re-initializes with mode-specific defaults\n * \n * @param e - Optional event parameter (inherited from base class)\n * \n * @example\n * ```typescript\n * schedulerPicker.reset();\n * // Pattern is now reset to default for the configured mode\n * ```\n */\n override reset(e = false): void {\n super.reset(e);\n this.pattern.set(null);\n this.initializeDefaultValue();\n }\n\n /**\n * Clear pattern completely\n * Removes all pattern data, summary, and validation errors\n * Sets component state to 'clear'\n * \n * @example\n * ```typescript\n * schedulerPicker.clear();\n * // All data cleared, component is now empty\n * ```\n */\n clear(): void {\n this.pattern.set(null);\n this.value = null;\n this.summary.set('');\n this.validationErrors.set([]);\n this.setState('clear');\n }\n}\n","<div class=\"ax-scheduler-picker\" [class.ax-disabled]=\"disabled\" [class.ax-readonly]=\"readonly\">\n <!-- Mode-specific panel -->\n <div class=\"ax-scheduler-picker-panel\">\n @switch (mode()) {\n @case ('hourly') {\n <ax-scheduler-picker-hourly-panel\n [pattern]=\"pattern()\"\n [config]=\"$any(mergedConfig())\"\n (patternChange)=\"updatePattern($event)\"\n />\n }\n @case ('daily') {\n <ax-scheduler-picker-daily-panel\n [pattern]=\"pattern()\"\n [config]=\"$any(mergedConfig())\"\n (patternChange)=\"updatePattern($event)\"\n />\n }\n @case ('weekly') {\n <ax-scheduler-picker-weekly-panel\n [pattern]=\"pattern()\"\n [config]=\"$any(mergedConfig())\"\n (patternChange)=\"updatePattern($event)\"\n />\n }\n @case ('monthly') {\n <ax-scheduler-picker-monthly-panel\n [pattern]=\"pattern()\"\n [config]=\"$any(mergedConfig())\"\n (patternChange)=\"updatePattern($event)\"\n />\n }\n @case ('yearly') {\n <ax-scheduler-picker-yearly-panel\n [pattern]=\"pattern()\"\n [config]=\"$any(mergedConfig())\"\n (patternChange)=\"updatePattern($event)\"\n />\n }\n }\n </div>\n\n <!-- Start condition -->\n @if (mergedConfig().showStartCondition && pattern()) {\n <div class=\"ax-scheduler-picker-start-conditions\">\n <ax-scheduler-picker-start-condition-selector\n [startCondition]=\"pattern()!.startCondition\"\n [config]=\"mergedConfig()\"\n (startConditionChange)=\"updatePattern({ startCondition: $event })\"\n />\n </div>\n }\n\n <!-- End conditions -->\n @if (mergedConfig().showEndConditions && pattern()) {\n <div class=\"ax-scheduler-picker-end-conditions\">\n <ax-scheduler-picker-end-condition-selector\n [endCondition]=\"pattern()!.endCondition\"\n [config]=\"mergedConfig()\"\n (endConditionChange)=\"updatePattern({ endCondition: $event })\"\n />\n </div>\n }\n\n <!-- Exclusions -->\n @if (mergedConfig().showExclusions && pattern()) {\n <div class=\"ax-scheduler-picker-exclusions\">\n <ax-scheduler-picker-exclusion-manager\n [exclusions]=\"pattern()!.exclusions || []\"\n [config]=\"mergedConfig()\"\n (exclusionsChange)=\"updatePattern({ exclusions: $event })\"\n />\n </div>\n }\n\n <!-- Inclusions -->\n @if (mergedConfig().showInclusions && pattern()) {\n <div class=\"ax-scheduler-picker-inclusions\">\n <ax-scheduler-picker-inclusion-manager\n [inclusions]=\"pattern()!.inclusions || []\"\n (inclusionsChange)=\"updatePattern({ inclusions: $event })\"\n />\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimeBoxComponent } from '@acorex/components/datetime-box';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'ax-scheduler-picker-time-selector',\n template: `\n <div class=\"ax-scheduler-picker-time-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.time' | translate | async }}\n </label>\n <ax-datetime-box\n [value]=\"time() || '09:00'\"\n [picker]=\"'time'\"\n (valueChange)=\"timeChange.emit($event)\"\n />\n </div>\n `,\n styles: [`\n .ax-scheduler-picker-time-selector {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .ax-scheduler-picker-label {\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n margin: 0;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXDateTimeBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerTimeSelectorComponent {\n time = input<string>();\n timeChange = output<string>();\n}\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'ax-scheduler-picker-timezone-selector',\n template: `\n <div class=\"ax-scheduler-picker-timezone-selector\">\n <label class=\"ax-scheduler-picker-label\">\n {{ '@acorex:schedulerPicker.labels.timezone' | translate | async }}\n </label>\n <ax-select-box\n [value]=\"timezone() || 'UTC'\"\n [dataSource]=\"timezones\"\n textField=\"text\"\n valueField=\"value\"\n (onValueChanged)=\"onTimezoneChange($event)\"\n />\n </div>\n `,\n styles: [\n `\n .ax-scheduler-picker-timezone-selector {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .ax-scheduler-picker-label {\n color: var(--ax-comp-scheduler-picker-label-color);\n font-size: var(--ax-comp-scheduler-picker-label-font-size);\n font-weight: var(--ax-comp-scheduler-picker-label-font-weight);\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, AXSelectBoxComponent, AXTranslatorPipe, AsyncPipe],\n})\nexport class AXSchedulerPickerTimezoneSelectorComponent {\n /**\n * Current timezone value\n */\n timezone = input<string>();\n\n /**\n * Emits when timezone selection changes\n */\n timezoneChange = output<string>();\n\n /**\n * Handle timezone selection change\n */\n protected onTimezoneChange(event: AXValueChangedEvent<string>): void {\n this.timezoneChange.emit(event.value);\n }\n\n protected timezones = [\n { value: 'UTC', text: 'UTC' },\n { value: 'America/New_York', text: 'Eastern Time (ET)' },\n { value: 'America/Chicago', text: 'Central Time (CT)' },\n { value: 'America/Denver', text: 'Mountain Time (MT)' },\n { value: 'America/Los_Angeles', text: 'Pacific Time (PT)' },\n { value: 'Europe/London', text: 'London (GMT)' },\n { value: 'Europe/Paris', text: 'Paris (CET)' },\n { value: 'Asia/Dubai', text: 'Dubai (GST)' },\n { value: 'Asia/Tehran', text: 'Tehran (IRST)' },\n { value: 'Asia/Tokyo', text: 'Tokyo (JST)' },\n { value: 'Australia/Sydney', text: 'Sydney (AEDT)' },\n ];\n}\n","import { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXSwitchComponent } from '@acorex/components/switch';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, effect, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSchedulerPickerMode, AXSchedulerPickerSettings } from '../../scheduler-picker.types';\n\n/**\n * Demo configuration panel for scheduler picker\n * Provides interactive controls to customize scheduler picker settings\n */\n@Component({\n selector: 'ax-scheduler-picker-config',\n templateUrl: './scheduler-picker-config.component.html',\n styleUrls: ['./scheduler-picker-config.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXSelectBoxComponent, AXSwitchComponent, FormsModule],\n})\nexport class AXSchedulerPickerConfigComponent {\n // Outputs\n configChange = output<AXSchedulerPickerSettings>();\n modeChange = output<AXSchedulerPickerMode>();\n\n // Mode selection\n selectedMode = signal<AXSchedulerPickerMode>('daily');\n\n modeOptions = [\n { value: 'hourly', text: 'Hourly' },\n { value: 'daily', text: 'Daily' },\n { value: 'weekly', text: 'Weekly' },\n { value: 'monthly', text: 'Monthly' },\n { value: 'yearly', text: 'Yearly' },\n ];\n\n // Configuration controls - Global\n showInterval = signal(true);\n showStartCondition = signal(true);\n showEndConditions = signal(true);\n showExclusions = signal(false);\n showInclusions = signal(false);\n\n // Configuration controls - Mode specific\n showWeekdaysOnly = signal(false);\n showWeekdaySelection = signal(true);\n monthlyRecurrenceMode = signal<'none' | 'specificDays' | 'occurrence'>('specificDays');\n yearlyRecurrenceMode = signal<'none' | 'specificDate' | 'occurrence'>('specificDate');\n showMonthSelection = signal(true);\n\n // Dynamic configuration based on selected mode\n config = computed<AXSchedulerPickerSettings>(() => {\n const mode = this.selectedMode();\n const baseConfig: Partial<AXSchedulerPickerSettings> = {\n mode,\n showStartCondition: this.showStartCondition(),\n showEndConditions: this.showEndConditions(),\n showExclusions: this.showExclusions(),\n showInclusions: this.showInclusions(),\n };\n\n switch (mode) {\n case 'hourly':\n baseConfig.options = {\n showInterval: this.showInterval(),\n };\n break;\n case 'daily':\n baseConfig.options = {\n showInterval: this.showInterval(),\n showWeekdaysOnly: this.showWeekdaysOnly(),\n };\n break;\n case 'weekly':\n baseConfig.options = {\n showInterval: this.showInterval(),\n showWeekdaySelection: this.showWeekdaySelection(),\n };\n break;\n case 'monthly':\n baseConfig.options = {\n showInterval: this.showInterval(),\n recurrenceMode: this.monthlyRecurrenceMode(),\n };\n break;\n case 'yearly':\n baseConfig.options = {\n showInterval: this.showInterval(),\n recurrenceMode: this.yearlyRecurrenceMode(),\n showMonthSelection: this.showMonthSelection(),\n };\n break;\n }\n\n return baseConfig as AXSchedulerPickerSettings;\n });\n\n constructor() {\n // Emit config changes whenever any signal changes\n effect(() => {\n const currentConfig = this.config();\n this.configChange.emit(currentConfig);\n });\n }\n\n protected onModeChange(mode: AXSchedulerPickerMode): void {\n this.selectedMode.set(mode);\n this.modeChange.emit(mode);\n }\n}\n","<div class=\"ax-scheduler-picker-config\">\n <h3>Configuration</h3>\n\n <!-- Mode Selector -->\n <div class=\"control-group\">\n <label>Mode</label>\n <ax-select-box\n [dataSource]=\"modeOptions\"\n [textField]=\"'text'\"\n [valueField]=\"'value'\"\n [value]=\"selectedMode()\"\n (onValueChanged)=\"onModeChange($event.value)\"\n />\n </div>\n\n <!-- Global Options -->\n <div class=\"control-group\">\n <label>Global Options</label>\n <div class=\"switch-group\">\n <span>Show Interval</span>\n <ax-switch [(value)]=\"showInterval\" />\n </div>\n <div class=\"switch-group\">\n <span>Show Start Condition</span>\n <ax-switch [(value)]=\"showStartCondition\" />\n </div>\n <div class=\"switch-group\">\n <span>Show End Conditions</span>\n <ax-switch [(value)]=\"showEndConditions\" />\n </div>\n <div class=\"switch-group\">\n <span>Show Exclusions</span>\n <ax-switch [(value)]=\"showExclusions\" />\n </div>\n <div class=\"switch-group\">\n <span>Show Inclusions</span>\n <ax-switch [(value)]=\"showInclusions\" />\n </div>\n </div>\n\n <!-- Mode-Specific Options -->\n @if (selectedMode() === 'daily') {\n <div class=\"control-group\">\n <label>Daily Options</label>\n <div class=\"switch-group\">\n <span>Show Weekdays Only</span>\n <ax-switch [(value)]=\"showWeekdaysOnly\" />\n </div>\n </div>\n }\n \n @if (selectedMode() === 'weekly') {\n <div class=\"control-group\">\n <label>Weekly Options</label>\n <div class=\"switch-group\">\n <span>Show Weekday Selection</span>\n <ax-switch [(value)]=\"showWeekdaySelection\" />\n </div>\n </div>\n }\n \n @if (selectedMode() === 'monthly') {\n <div class=\"control-group\">\n <label>Monthly Options</label>\n <div class=\"control-subgroup\">\n <label>Recurrence Mode</label>\n <ax-select-box\n [dataSource]=\"[\n { value: 'none', text: 'None' },\n { value: 'specificDays', text: 'Specific Days' },\n { value: 'occurrence', text: 'Occurrence' }\n ]\"\n [textField]=\"'text'\"\n [valueField]=\"'value'\"\n [value]=\"monthlyRecurrenceMode()\"\n (onValueChanged)=\"monthlyRecurrenceMode.set($event.value)\"\n />\n </div>\n </div>\n }\n \n @if (selectedMode() === 'yearly') {\n <div class=\"control-group\">\n <label>Yearly Options</label>\n <div class=\"control-subgroup\">\n <label>Recurrence Mode</label>\n <ax-select-box\n [dataSource]=\"[\n { value: 'none', text: 'None' },\n { value: 'specificDate', text: 'Specific Date' },\n { value: 'occurrence', text: 'Occurrence' }\n ]\"\n [textField]=\"'text'\"\n [valueField]=\"'value'\"\n [value]=\"yearlyRecurrenceMode()\"\n (onValueChanged)=\"yearlyRecurrenceMode.set($event.value)\"\n />\n </div>\n <div class=\"switch-group\">\n <span>Show Month Selection</span>\n <ax-switch [(value)]=\"showMonthSelection\" />\n </div>\n </div>\n }\n</div>\n","// Main component\nexport * from './lib/scheduler-picker.component';\n\n// Service\nexport * from './lib/scheduler-picker.service';\n\n// Types, config, constants, and utilities\nexport * from './lib/scheduler-picker.config';\nexport * from './lib/scheduler-picker.const';\nexport * from './lib/scheduler-picker.types';\nexport * from './lib/scheduler-picker.utils';\n\n// Export condition interfaces for external use\nexport type { AXSchedulerPickerEndCondition } from './lib/shared/end-condition-selector/end-condition-selector.component';\nexport type { AXSchedulerPickerStartCondition } from './lib/shared/start-condition-selector/start-condition-selector.component';\n\n// Panels\nexport * from './lib/panels/daily-panel/daily-panel.component';\nexport * from './lib/panels/hourly-panel/hourly-panel.component';\nexport * from './lib/panels/monthly-panel/monthly-panel.component';\nexport * from './lib/panels/weekly-panel/weekly-panel.component';\nexport * from './lib/panels/yearly-panel/yearly-panel.component';\n\n// Shared components\nexport * from './lib/shared/day-selector/day-selector.component';\nexport * from './lib/shared/end-condition-selector/end-condition-selector.component';\nexport * from './lib/shared/exclusion-manager/exclusion-manager.component';\nexport * from './lib/shared/inclusion-manager/inclusion-manager.component';\nexport * from './lib/shared/interval-selector/interval-selector.component';\nexport * from './lib/shared/month-selector/month-selector.component';\nexport * from './lib/shared/occurrence-selector/occurrence-selector.component';\nexport * from './lib/shared/start-condition-selector/start-condition-selector.component';\nexport * from './lib/shared/time-selector/time-selector.component';\nexport * from './lib/shared/timezone-selector/timezone-selector.component';\n\n// Demo components\nexport * from './lib/shared/scheduler-picker-config/scheduler-picker-config.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}