@siemens/element-ng 48.10.0 → 49.0.0-rc.2

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 (396) hide show
  1. package/about/package.json +2 -1
  2. package/accordion/package.json +2 -1
  3. package/action-modal/package.json +2 -1
  4. package/ag-grid/package.json +2 -1
  5. package/application-header/package.json +2 -1
  6. package/auto-collapsable-list/package.json +2 -1
  7. package/autocomplete/package.json +2 -1
  8. package/avatar/package.json +2 -1
  9. package/badge/package.json +2 -1
  10. package/breadcrumb/package.json +2 -1
  11. package/breadcrumb-router/package.json +2 -1
  12. package/card/package.json +2 -1
  13. package/chat-messages/package.json +2 -1
  14. package/circle-status/package.json +2 -1
  15. package/color-picker/package.json +2 -1
  16. package/column-selection-dialog/package.json +2 -1
  17. package/common/package.json +2 -1
  18. package/connection-strength/package.json +2 -1
  19. package/content-action-bar/package.json +2 -1
  20. package/copyright-notice/package.json +2 -1
  21. package/dashboard/package.json +2 -1
  22. package/datatable/package.json +2 -1
  23. package/date-range-filter/package.json +2 -1
  24. package/datepicker/package.json +2 -1
  25. package/electron-titlebar/package.json +2 -1
  26. package/empty-state/package.json +2 -1
  27. package/fesm2022/siemens-element-ng-about.mjs +25 -24
  28. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-accordion.mjs +49 -75
  30. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-action-modal.mjs +59 -55
  32. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-ag-grid.mjs +33 -37
  34. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-application-header.mjs +122 -150
  36. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +30 -32
  38. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -48
  40. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-avatar.mjs +23 -24
  42. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-badge.mjs +6 -6
  44. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +16 -16
  46. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -17
  48. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-card.mjs +32 -34
  50. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-chat-messages.mjs +204 -109
  52. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-circle-status.mjs +26 -26
  54. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -17
  56. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +36 -35
  58. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-common.mjs +13 -38
  60. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-connection-strength.mjs +11 -11
  62. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-content-action-bar.mjs +33 -30
  64. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-copyright-notice.mjs +13 -13
  66. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-dashboard.mjs +161 -169
  68. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-datatable.mjs +9 -9
  70. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-date-range-filter.mjs +128 -149
  72. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-datepicker.mjs +260 -271
  74. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +19 -18
  76. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-empty-state.mjs +11 -11
  78. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-file-uploader.mjs +66 -69
  80. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-filter-bar.mjs +23 -23
  82. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-filtered-search.mjs +141 -159
  84. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-footer.mjs +10 -10
  86. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-form.mjs +99 -85
  88. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-formly.mjs +96 -94
  90. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-header-dropdown.mjs +33 -33
  92. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-help-button.mjs +7 -6
  94. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-icon-status.mjs +4 -4
  96. package/fesm2022/siemens-element-ng-icon.mjs +53 -135
  97. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  98. package/fesm2022/siemens-element-ng-info-page.mjs +11 -12
  99. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  100. package/fesm2022/siemens-element-ng-inline-notification.mjs +15 -16
  101. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  102. package/fesm2022/siemens-element-ng-ip-input.mjs +16 -16
  103. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  104. package/fesm2022/siemens-element-ng-landing-page.mjs +71 -71
  105. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  106. package/fesm2022/siemens-element-ng-language-switcher.mjs +13 -13
  107. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  108. package/fesm2022/siemens-element-ng-link.mjs +22 -23
  109. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  110. package/fesm2022/siemens-element-ng-list-details.mjs +68 -86
  111. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  112. package/fesm2022/siemens-element-ng-loading-spinner.mjs +38 -52
  113. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  114. package/fesm2022/siemens-element-ng-localization.mjs +14 -11
  115. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  116. package/fesm2022/siemens-element-ng-main-detail-container.mjs +30 -30
  117. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  118. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +5 -5
  119. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-menu.mjs +55 -54
  121. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-modal.mjs +10 -13
  123. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  124. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +183 -298
  125. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  126. package/fesm2022/siemens-element-ng-navbar.mjs +43 -43
  127. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  128. package/fesm2022/siemens-element-ng-notification-item.mjs +14 -13
  129. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  130. package/fesm2022/siemens-element-ng-number-input.mjs +32 -32
  131. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  132. package/fesm2022/siemens-element-ng-pagination.mjs +21 -20
  133. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  134. package/fesm2022/siemens-element-ng-password-strength.mjs +21 -21
  135. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  136. package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -15
  137. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  138. package/fesm2022/siemens-element-ng-phone-number.mjs +56 -50
  139. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-photo-upload.mjs +48 -47
  141. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-pills-input.mjs +45 -44
  143. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-popover-legacy.mjs +31 -31
  145. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-popover.mjs +29 -29
  147. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-progressbar.mjs +15 -15
  149. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-resize-observer.mjs +25 -61
  151. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-result-details-list.mjs +13 -12
  153. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-search-bar.mjs +25 -24
  155. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-select.mjs +204 -347
  157. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  159. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-side-panel.mjs +144 -69
  161. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-skip-links.mjs +13 -13
  163. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-slider.mjs +30 -29
  165. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-sort-bar.mjs +14 -13
  167. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-split.mjs +26 -28
  169. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-status-bar.mjs +42 -43
  171. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-status-counter.mjs +11 -12
  173. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-status-toggle.mjs +15 -16
  175. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-summary-chip.mjs +16 -17
  177. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-summary-widget.mjs +16 -16
  179. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-system-banner.mjs +7 -7
  181. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  182. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -16
  183. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tabs.mjs +44 -47
  185. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-theme.mjs +4 -4
  187. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  188. package/fesm2022/siemens-element-ng-threshold.mjs +51 -71
  189. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  190. package/fesm2022/siemens-element-ng-toast-notification.mjs +26 -52
  191. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  192. package/fesm2022/siemens-element-ng-tooltip.mjs +60 -68
  193. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  194. package/fesm2022/siemens-element-ng-tour.mjs +20 -20
  195. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  196. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-tree-view.mjs +92 -117
  198. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-typeahead.mjs +46 -62
  200. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-wizard.mjs +49 -48
  202. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  203. package/file-uploader/package.json +2 -1
  204. package/filter-bar/package.json +2 -1
  205. package/filtered-search/package.json +2 -1
  206. package/footer/package.json +2 -1
  207. package/form/package.json +2 -1
  208. package/formly/package.json +2 -1
  209. package/header-dropdown/package.json +2 -1
  210. package/help-button/package.json +2 -1
  211. package/icon/package.json +2 -1
  212. package/icon-status/package.json +2 -1
  213. package/info-page/package.json +2 -1
  214. package/inline-notification/package.json +2 -1
  215. package/ip-input/package.json +2 -1
  216. package/landing-page/package.json +2 -1
  217. package/language-switcher/package.json +2 -1
  218. package/link/package.json +2 -1
  219. package/list-details/package.json +2 -1
  220. package/loading-spinner/package.json +2 -1
  221. package/localization/package.json +2 -1
  222. package/main-detail-container/package.json +2 -1
  223. package/markdown-renderer/package.json +2 -1
  224. package/menu/package.json +2 -1
  225. package/modal/package.json +2 -1
  226. package/navbar/package.json +2 -1
  227. package/navbar-vertical/package.json +2 -1
  228. package/notification-item/package.json +2 -1
  229. package/number-input/package.json +2 -1
  230. package/package.json +115 -107
  231. package/pagination/package.json +2 -1
  232. package/password-strength/package.json +2 -1
  233. package/password-toggle/package.json +2 -1
  234. package/phone-number/package.json +2 -1
  235. package/photo-upload/package.json +2 -1
  236. package/pills-input/package.json +2 -1
  237. package/popover/package.json +2 -1
  238. package/popover-legacy/package.json +2 -1
  239. package/progressbar/package.json +2 -1
  240. package/resize-observer/package.json +2 -1
  241. package/result-details-list/package.json +2 -1
  242. package/schematics/collection.json +0 -12
  243. package/schematics/migration.json +15 -0
  244. package/schematics/migrations/data/attribute-selectors.js +1 -6
  245. package/schematics/migrations/data/component-names.js +9 -68
  246. package/schematics/migrations/data/element-selectors.js +9 -8
  247. package/schematics/migrations/data/index.js +0 -1
  248. package/schematics/migrations/data/migration-test-data.js +167 -0
  249. package/schematics/migrations/data/output-names.js +1 -7
  250. package/schematics/migrations/data/symbol-removals.js +4 -45
  251. package/schematics/migrations/element-migration/element-migration.js +1 -3
  252. package/schematics/migrations/index.js +15 -5
  253. package/schematics/migrations/ngx-translate/index.js +93 -0
  254. package/schematics/ng-update/index.js +17 -0
  255. package/schematics/ng-update/schema.json +15 -0
  256. package/schematics/simpl-siemens-migration/index.js +1 -5
  257. package/schematics/utils/ts-utils.js +135 -0
  258. package/search-bar/package.json +2 -1
  259. package/select/package.json +2 -1
  260. package/shadow-root/package.json +2 -1
  261. package/side-panel/package.json +2 -1
  262. package/skip-links/package.json +2 -1
  263. package/slider/package.json +2 -1
  264. package/sort-bar/package.json +2 -1
  265. package/split/package.json +2 -1
  266. package/status-bar/package.json +2 -1
  267. package/status-counter/package.json +2 -1
  268. package/status-toggle/package.json +2 -1
  269. package/summary-chip/package.json +2 -1
  270. package/summary-widget/package.json +2 -1
  271. package/system-banner/package.json +2 -1
  272. package/tabs/package.json +2 -1
  273. package/tabs-legacy/package.json +2 -1
  274. package/template-i18n.json +32 -25
  275. package/test-styles.scss +5 -0
  276. package/theme/package.json +2 -1
  277. package/threshold/package.json +2 -1
  278. package/toast-notification/package.json +2 -1
  279. package/tooltip/package.json +2 -1
  280. package/tour/package.json +2 -1
  281. package/translate/package.json +2 -1
  282. package/tree-view/package.json +2 -1
  283. package/typeahead/package.json +2 -1
  284. package/{accordion/index.d.ts → types/siemens-element-ng-accordion.d.ts} +2 -3
  285. package/{application-header/index.d.ts → types/siemens-element-ng-application-header.d.ts} +19 -18
  286. package/{autocomplete/index.d.ts → types/siemens-element-ng-autocomplete.d.ts} +1 -3
  287. package/{breadcrumb/index.d.ts → types/siemens-element-ng-breadcrumb.d.ts} +2 -2
  288. package/{chat-messages/index.d.ts → types/siemens-element-ng-chat-messages.d.ts} +72 -10
  289. package/{common/index.d.ts → types/siemens-element-ng-common.d.ts} +2 -30
  290. package/{content-action-bar/index.d.ts → types/siemens-element-ng-content-action-bar.d.ts} +2 -2
  291. package/{dashboard/index.d.ts → types/siemens-element-ng-dashboard.d.ts} +6 -6
  292. package/{date-range-filter/index.d.ts → types/siemens-element-ng-date-range-filter.d.ts} +28 -27
  293. package/{datepicker/index.d.ts → types/siemens-element-ng-datepicker.d.ts} +5 -6
  294. package/{electron-titlebar/index.d.ts → types/siemens-element-ng-electron-titlebar.d.ts} +4 -4
  295. package/{file-uploader/index.d.ts → types/siemens-element-ng-file-uploader.d.ts} +26 -26
  296. package/{filter-bar/index.d.ts → types/siemens-element-ng-filter-bar.d.ts} +4 -4
  297. package/{filtered-search/index.d.ts → types/siemens-element-ng-filtered-search.d.ts} +6 -21
  298. package/{form/index.d.ts → types/siemens-element-ng-form.d.ts} +4 -6
  299. package/{formly/index.d.ts → types/siemens-element-ng-formly.d.ts} +1 -1
  300. package/types/siemens-element-ng-icon.d.ts +203 -0
  301. package/{landing-page/index.d.ts → types/siemens-element-ng-landing-page.d.ts} +15 -15
  302. package/{language-switcher/index.d.ts → types/siemens-element-ng-language-switcher.d.ts} +1 -2
  303. package/{list-details/index.d.ts → types/siemens-element-ng-list-details.d.ts} +4 -11
  304. package/{loading-spinner/index.d.ts → types/siemens-element-ng-loading-spinner.d.ts} +2 -3
  305. package/{modal/index.d.ts → types/siemens-element-ng-modal.d.ts} +0 -6
  306. package/{navbar-vertical/index.d.ts → types/siemens-element-ng-navbar-vertical.d.ts} +12 -7
  307. package/{navbar/index.d.ts → types/siemens-element-ng-navbar.d.ts} +11 -11
  308. package/{notification-item/index.d.ts → types/siemens-element-ng-notification-item.d.ts} +15 -3
  309. package/{pagination/index.d.ts → types/siemens-element-ng-pagination.d.ts} +4 -4
  310. package/{password-toggle/index.d.ts → types/siemens-element-ng-password-toggle.d.ts} +6 -4
  311. package/{phone-number/index.d.ts → types/siemens-element-ng-phone-number.d.ts} +8 -11
  312. package/{pills-input/index.d.ts → types/siemens-element-ng-pills-input.d.ts} +3 -3
  313. package/{popover/index.d.ts → types/siemens-element-ng-popover.d.ts} +2 -2
  314. package/{resize-observer/index.d.ts → types/siemens-element-ng-resize-observer.d.ts} +0 -30
  315. package/{search-bar/index.d.ts → types/siemens-element-ng-search-bar.d.ts} +2 -2
  316. package/{select/index.d.ts → types/siemens-element-ng-select.d.ts} +18 -97
  317. package/{side-panel/index.d.ts → types/siemens-element-ng-side-panel.d.ts} +26 -5
  318. package/{slider/index.d.ts → types/siemens-element-ng-slider.d.ts} +4 -4
  319. package/{split/index.d.ts → types/siemens-element-ng-split.d.ts} +1 -3
  320. package/{status-bar/index.d.ts → types/siemens-element-ng-status-bar.d.ts} +6 -6
  321. package/{tabs-legacy/index.d.ts → types/siemens-element-ng-tabs-legacy.d.ts} +5 -0
  322. package/{threshold/index.d.ts → types/siemens-element-ng-threshold.d.ts} +7 -7
  323. package/{toast-notification/index.d.ts → types/siemens-element-ng-toast-notification.d.ts} +3 -4
  324. package/{tooltip/index.d.ts → types/siemens-element-ng-tooltip.d.ts} +3 -6
  325. package/{tour/index.d.ts → types/siemens-element-ng-tour.d.ts} +1 -10
  326. package/{translate/index.d.ts → types/siemens-element-ng-translate.d.ts} +8 -1
  327. package/{tree-view/index.d.ts → types/siemens-element-ng-tree-view.d.ts} +0 -1
  328. package/{typeahead/index.d.ts → types/siemens-element-ng-typeahead.d.ts} +0 -2
  329. package/{wizard/index.d.ts → types/siemens-element-ng-wizard.d.ts} +6 -6
  330. package/wizard/package.json +2 -1
  331. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +0 -75
  332. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +0 -1
  333. package/icon/index.d.ts +0 -285
  334. package/schematics/migrations/action-modal-migration/action-modal-migration.js +0 -162
  335. package/schematics/migrations/action-modal-migration/action-modal.mappings.js +0 -98
  336. package/schematics/migrations/action-modal-migration/index.js +0 -5
  337. package/schematics/migrations/wizard-migration/index.js +0 -80
  338. package/schematics/scss-import-to-siemens-migration/index.js +0 -101
  339. package/schematics/scss-import-to-siemens-migration/schema.json +0 -16
  340. package/schematics/scss-import-to-siemens-migration/style-mappings.js +0 -62
  341. package/schematics/ts-import-to-siemens-migration/index.js +0 -230
  342. package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +0 -71
  343. package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +0 -54
  344. package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +0 -705
  345. package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +0 -21
  346. package/schematics/ts-import-to-siemens-migration/mappings/index.js +0 -10
  347. package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +0 -47
  348. package/schematics/ts-import-to-siemens-migration/mappings/native-charts-ng-mappings.js +0 -33
  349. package/schematics/ts-import-to-siemens-migration/model.js +0 -4
  350. package/schematics/ts-import-to-siemens-migration/schema.json +0 -16
  351. package/unauthorized-page/index.d.ts +0 -44
  352. package/unauthorized-page/package.json +0 -3
  353. /package/{about/index.d.ts → types/siemens-element-ng-about.d.ts} +0 -0
  354. /package/{action-modal/index.d.ts → types/siemens-element-ng-action-modal.d.ts} +0 -0
  355. /package/{ag-grid/index.d.ts → types/siemens-element-ng-ag-grid.d.ts} +0 -0
  356. /package/{auto-collapsable-list/index.d.ts → types/siemens-element-ng-auto-collapsable-list.d.ts} +0 -0
  357. /package/{avatar/index.d.ts → types/siemens-element-ng-avatar.d.ts} +0 -0
  358. /package/{badge/index.d.ts → types/siemens-element-ng-badge.d.ts} +0 -0
  359. /package/{breadcrumb-router/index.d.ts → types/siemens-element-ng-breadcrumb-router.d.ts} +0 -0
  360. /package/{card/index.d.ts → types/siemens-element-ng-card.d.ts} +0 -0
  361. /package/{circle-status/index.d.ts → types/siemens-element-ng-circle-status.d.ts} +0 -0
  362. /package/{color-picker/index.d.ts → types/siemens-element-ng-color-picker.d.ts} +0 -0
  363. /package/{column-selection-dialog/index.d.ts → types/siemens-element-ng-column-selection-dialog.d.ts} +0 -0
  364. /package/{connection-strength/index.d.ts → types/siemens-element-ng-connection-strength.d.ts} +0 -0
  365. /package/{copyright-notice/index.d.ts → types/siemens-element-ng-copyright-notice.d.ts} +0 -0
  366. /package/{datatable/index.d.ts → types/siemens-element-ng-datatable.d.ts} +0 -0
  367. /package/{empty-state/index.d.ts → types/siemens-element-ng-empty-state.d.ts} +0 -0
  368. /package/{footer/index.d.ts → types/siemens-element-ng-footer.d.ts} +0 -0
  369. /package/{header-dropdown/index.d.ts → types/siemens-element-ng-header-dropdown.d.ts} +0 -0
  370. /package/{help-button/index.d.ts → types/siemens-element-ng-help-button.d.ts} +0 -0
  371. /package/{icon-status/index.d.ts → types/siemens-element-ng-icon-status.d.ts} +0 -0
  372. /package/{info-page/index.d.ts → types/siemens-element-ng-info-page.d.ts} +0 -0
  373. /package/{inline-notification/index.d.ts → types/siemens-element-ng-inline-notification.d.ts} +0 -0
  374. /package/{ip-input/index.d.ts → types/siemens-element-ng-ip-input.d.ts} +0 -0
  375. /package/{link/index.d.ts → types/siemens-element-ng-link.d.ts} +0 -0
  376. /package/{localization/index.d.ts → types/siemens-element-ng-localization.d.ts} +0 -0
  377. /package/{main-detail-container/index.d.ts → types/siemens-element-ng-main-detail-container.d.ts} +0 -0
  378. /package/{markdown-renderer/index.d.ts → types/siemens-element-ng-markdown-renderer.d.ts} +0 -0
  379. /package/{menu/index.d.ts → types/siemens-element-ng-menu.d.ts} +0 -0
  380. /package/{number-input/index.d.ts → types/siemens-element-ng-number-input.d.ts} +0 -0
  381. /package/{password-strength/index.d.ts → types/siemens-element-ng-password-strength.d.ts} +0 -0
  382. /package/{photo-upload/index.d.ts → types/siemens-element-ng-photo-upload.d.ts} +0 -0
  383. /package/{popover-legacy/index.d.ts → types/siemens-element-ng-popover-legacy.d.ts} +0 -0
  384. /package/{progressbar/index.d.ts → types/siemens-element-ng-progressbar.d.ts} +0 -0
  385. /package/{result-details-list/index.d.ts → types/siemens-element-ng-result-details-list.d.ts} +0 -0
  386. /package/{shadow-root/index.d.ts → types/siemens-element-ng-shadow-root.d.ts} +0 -0
  387. /package/{skip-links/index.d.ts → types/siemens-element-ng-skip-links.d.ts} +0 -0
  388. /package/{sort-bar/index.d.ts → types/siemens-element-ng-sort-bar.d.ts} +0 -0
  389. /package/{status-counter/index.d.ts → types/siemens-element-ng-status-counter.d.ts} +0 -0
  390. /package/{status-toggle/index.d.ts → types/siemens-element-ng-status-toggle.d.ts} +0 -0
  391. /package/{summary-chip/index.d.ts → types/siemens-element-ng-summary-chip.d.ts} +0 -0
  392. /package/{summary-widget/index.d.ts → types/siemens-element-ng-summary-widget.d.ts} +0 -0
  393. /package/{system-banner/index.d.ts → types/siemens-element-ng-system-banner.d.ts} +0 -0
  394. /package/{tabs/index.d.ts → types/siemens-element-ng-tabs.d.ts} +0 -0
  395. /package/{theme/index.d.ts → types/siemens-element-ng-theme.d.ts} +0 -0
  396. /package/{index.d.ts → types/siemens-element-ng.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-date-range-filter.mjs","sources":["../../../../projects/element-ng/date-range-filter/si-date-range-calculation.service.ts","../../../../projects/element-ng/date-range-filter/si-date-range-filter.types.ts","../../../../projects/element-ng/date-range-filter/si-relative-date.component.ts","../../../../projects/element-ng/date-range-filter/si-relative-date.component.html","../../../../projects/element-ng/date-range-filter/si-date-range-filter.component.ts","../../../../projects/element-ng/date-range-filter/si-date-range-filter.component.html","../../../../projects/element-ng/date-range-filter/si-date-range-filter.module.ts","../../../../projects/element-ng/date-range-filter/index.ts","../../../../projects/element-ng/date-range-filter/siemens-element-ng-date-range-filter.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\n\nimport { DateRangeFilter, ResolvedDateRange } from './si-date-range-filter.types';\n\nexport interface ResolveDateRangeOptions {\n /**\n * Resolve time? When set to false, hours/minutes/seconds/ms are set to zero\n * @defaultValue true\n **/\n withTime?: boolean;\n /**\n * Skip normalization? When skipped, `point1` will always be `start`, `point2` will be `end`\n */\n skipNormalization?: boolean;\n}\n\n/**\n * Service to transform and calculate with DateRangeFilter objects.\n */\n@Injectable({ providedIn: 'root' })\nexport class SiDateRangeCalculationService {\n /**\n * Calculates the start and end dates of a DateRangeFilter.\n * @param filter - The date range filter object to be resolved.\n * @param options - Options for time handling\n * @returns The resolved result in form of a ResolvedDateRange object.\n */\n resolveDateRangeFilter(\n filter: DateRangeFilter,\n options?: ResolveDateRangeOptions\n ): ResolvedDateRange {\n const ref = filter.point1 === 'now' ? new Date() : new Date(filter.point1);\n const withTime = options?.withTime ?? true;\n\n if (!withTime) {\n this.removeTime(ref);\n }\n\n if (filter.point2 instanceof Date) {\n const point2 = withTime ? filter.point2 : this.removeTime(new Date(filter.point2));\n return this.normalize(ref, point2, options?.skipNormalization);\n }\n\n const offset = filter.point2;\n\n switch (filter.range) {\n case undefined:\n case 'before':\n return this.normalize(ref, this.datePlusOffset(ref, -offset), options?.skipNormalization);\n case 'after':\n return this.normalize(ref, this.datePlusOffset(ref, offset), options?.skipNormalization);\n case 'within':\n return this.normalize(\n this.datePlusOffset(ref, -offset),\n this.datePlusOffset(ref, offset),\n options?.skipNormalization\n );\n }\n }\n\n private datePlusOffset(date: Date, offset: number): Date {\n return new Date(date.getTime() + offset);\n }\n\n private normalize(date1: Date, date2: Date, skip?: boolean): ResolvedDateRange {\n const valid = !isNaN(date1.getTime()) && !isNaN(date2.getTime());\n return skip\n ? { start: date1, end: date2, valid }\n : date1 < date2\n ? { start: date1, end: date2, valid }\n : { start: date2, end: date1, valid };\n }\n\n /**\n * Utility to reset the time attributes to 0 (hours/minutes/seconds/milliseconds).\n */\n removeTime(date: Date): Date {\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n return date;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/**\n * Simple DateRangeFilter preset based on offset from now\n */\nexport interface DateRangePresetOffset {\n type?: 'offset';\n /** translation key for label */\n label: TranslatableString;\n /** offset from current in milliseconds */\n offset: number;\n}\n\n/**\n * Advanced DateRageFilter preset with custom calculation\n */\nexport interface DateRangePresetCustom {\n type: 'custom';\n /** translation key for label */\n label: TranslatableString;\n /** calculation custom calculation function */\n calculate: (self: DateRangePresetCustom, currentRange: DateRangeFilter) => DateRangeFilter;\n /** Whether this should show only when time support is enabled */\n timeOnly?: boolean;\n}\n\nexport type DateRangePreset = DateRangePresetOffset | DateRangePresetCustom;\n\nexport interface DateRangeFilter {\n point1: Date | 'now';\n point2: number | Date;\n range?: 'before' | 'after' | 'within';\n}\n\nexport interface ResolvedDateRange {\n start: Date;\n end: Date;\n valid: boolean;\n}\n\nexport const ONE_MINUTE = 60 * 1000;\nexport const ONE_DAY = ONE_MINUTE * 60 * 24;\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n OnChanges,\n output,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SiNumberInputComponent } from '@siemens/element-ng/number-input';\nimport {\n SelectOption,\n SiSelectComponent,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n} from '@siemens/element-ng/select';\nimport { t } from '@siemens/element-translate-ng/translate';\n\nimport { ONE_DAY, ONE_MINUTE } from './si-date-range-filter.types';\n\ninterface OffsetOption extends SelectOption<string> {\n offset: number;\n}\n\n@Component({\n selector: 'si-relative-date',\n imports: [\n FormsModule,\n SiNumberInputComponent,\n SiSelectComponent,\n SiSelectSingleValueDirective,\n SiSelectSimpleOptionsDirective\n ],\n templateUrl: './si-relative-date.component.html',\n styleUrl: './si-relative-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiRelativeDateComponent implements OnChanges {\n /** @defaultValue 0 */\n readonly value = input(0);\n /** @defaultValue false */\n readonly enableTimeSelection = input(false, { transform: booleanAttribute });\n readonly valueLabel = input.required<string>();\n readonly unitLabel = input.required<string>();\n readonly valueChange = output<number>();\n\n protected readonly internalValue = signal(0);\n protected readonly offset = signal(0);\n protected readonly unit = signal('days');\n private readonly fullOffsetList: OffsetOption[] = [\n {\n type: 'option',\n value: 'minutes',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.MINUTES:Minutes`),\n offset: ONE_MINUTE\n },\n {\n type: 'option',\n value: 'hours',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.HOURS:Hours`),\n offset: 60 * ONE_MINUTE\n },\n {\n type: 'option',\n value: 'days',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.DAYS:Days`),\n offset: ONE_DAY\n },\n {\n type: 'option',\n value: 'weeks',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.WEEKS:Weeks`),\n offset: 7 * ONE_DAY\n },\n {\n type: 'option',\n value: 'months',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.MONTHS:Months`),\n offset: 30 * ONE_DAY\n },\n {\n type: 'option',\n value: 'years',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.YEARS:Years`),\n offset: 365 * ONE_DAY\n }\n ];\n\n protected readonly offsetList = computed(() =>\n this.enableTimeSelection()\n ? this.fullOffsetList\n : this.fullOffsetList.filter(item => item.offset >= ONE_DAY)\n );\n\n ngOnChanges(changes: SimpleChanges): void {\n const value = this.value();\n if (changes.value && value !== this.internalValue()) {\n this.internalValue.set(value);\n this.calculateOffset();\n }\n }\n\n private calculateOffset(): void {\n const offsetList = this.offsetList();\n let unit = '';\n if (offsetList.length) {\n this.offset.set(0);\n unit = offsetList[0].value;\n }\n\n for (let i = offsetList.length - 1; i >= 0; i--) {\n const item = offsetList[i];\n const raw = this.internalValue() / item.offset;\n const rounded = Math.round(raw);\n if (rounded > 0 && Math.abs(raw - rounded) < 0.001) {\n this.offset.set(rounded);\n unit = item.value;\n break;\n }\n }\n\n this.changeUnit(unit);\n }\n\n protected updateValue(offset: number): void {\n this.offset.set(offset);\n const item = this.offsetList().find(x => x.value === this.unit())!;\n this.internalValue.set(offset * item.offset);\n this.valueChange.emit(this.internalValue());\n }\n\n protected changeUnit(newUnit: string): void {\n this.unit.set(newUnit);\n const item = this.offsetList().find(x => x.value === this.unit())!;\n this.offset.set(Math.max(1, Math.round(this.internalValue() / item.offset)));\n this.internalValue.set(this.offset() * item.offset);\n this.valueChange.emit(this.internalValue());\n }\n}\n","<si-number-input\n class=\"form-control mb-4\"\n [aria-label]=\"valueLabel()\"\n [ngModel]=\"offset()\"\n (ngModelChange)=\"updateValue($event)\"\n/>\n<si-select\n class=\"form-control\"\n min=\"0\"\n [ariaLabel]=\"unitLabel()\"\n [options]=\"offsetList()\"\n [ngModel]=\"unit()\"\n (ngModelChange)=\"changeUnit($event)\"\n/>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { CdkListbox, CdkOption } from '@angular/cdk/listbox';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n OnChanges,\n output,\n Pipe,\n PipeTransform,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n DatepickerConfig,\n DatepickerInputConfig,\n DateRange,\n isValid,\n SiCalendarButtonComponent,\n SiDatepickerComponent,\n SiDatepickerDirective\n} from '@siemens/element-ng/datepicker';\nimport { addIcons, elementDown2, SiIconComponent } from '@siemens/element-ng/icon';\nimport { BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';\nimport { SiSearchBarComponent } from '@siemens/element-ng/search-bar';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiDateRangeCalculationService } from './si-date-range-calculation.service';\nimport {\n DateRangeFilter,\n DateRangePreset,\n ONE_DAY,\n ResolvedDateRange\n} from './si-date-range-filter.types';\nimport { SiRelativeDateComponent } from './si-relative-date.component';\n\n@Pipe({ name: 'presetMatchFilter', pure: true })\nexport class PresetMatchFilterPipe implements PipeTransform {\n transform(value: string, term: string): boolean {\n return !term ? true : value.toLowerCase().includes(term.toLowerCase());\n }\n}\n\n@Component({\n selector: 'si-date-range-filter',\n imports: [\n CdkOption,\n CdkListbox,\n CdkTrapFocus,\n DatePipe,\n FormsModule,\n NgTemplateOutlet,\n OverlayModule,\n PresetMatchFilterPipe,\n SiCalendarButtonComponent,\n SiDatepickerComponent,\n SiDatepickerDirective,\n SiIconComponent,\n SiRelativeDateComponent,\n SiSearchBarComponent,\n SiTranslatePipe\n ],\n templateUrl: './si-date-range-filter.component.html',\n styleUrl: './si-date-range-filter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.mobile]': 'smallScreen'\n }\n})\nexport class SiDateRangeFilterComponent implements OnChanges {\n private readonly service = inject(SiDateRangeCalculationService);\n private readonly mediaMatcher = inject(MediaMatcher);\n protected readonly smallScreen = this.mediaMatcher.matchMedia(\n `(max-width: ${BOOTSTRAP_BREAKPOINTS.mdMinimum}px)`\n ).matches;\n\n /** The filter range object */\n readonly range = model.required<DateRangeFilter>();\n /** List of preset time ranges. When not present or empty, the preset section won't show */\n readonly presetList = input<DateRangePreset[]>();\n /**\n * Determines if there's a search field for the preset list\n *\n * @defaultValue true\n */\n readonly presetSearch = input(true, { transform: booleanAttribute });\n /**\n * Determines if time is selectable or only dates\n *\n * @defaultValue false\n */\n readonly enableTimeSelection = input(false, { transform: booleanAttribute });\n /**\n * Determines whether to show input fields or a date-range calendar in basic mode.\n * When time selection is enabled, this has no effect and input fields are always shown.\n *\n * @defaultValue 'calendar'\n */\n readonly basicMode = input<'input' | 'calendar'>('calendar');\n /**\n * Reverses the order of the from/to fields\n *\n * @defaultValue false\n */\n readonly reverseInputFields = input(false, { transform: booleanAttribute });\n\n /**\n * Determines whether to show the 'Apply' button\n *\n * @defaultValue false\n */\n readonly showApplyButton = input(false, { transform: booleanAttribute });\n /**\n * Hides the advanced mode if input allows\n *\n * @defaultValue false\n */\n readonly hideAdvancedMode = input(false, { transform: booleanAttribute });\n\n /**\n * label for the \"Reference point\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.REF_POINT:Reference point`)\n * ```\n */\n readonly refLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.REF_POINT:Reference point`));\n /**\n * label for the \"Reference point\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.FROM:From`)\n * ```\n */\n readonly fromLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.FROM:From`));\n /**\n * label for the \"Reference point\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.TO:To`)\n * ```\n */\n readonly toLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.TO:To`));\n /**\n * label for the \"Range\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.RANGE:Range`)\n * ```\n */\n readonly rangeLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.RANGE:Range`));\n /**\n * label for the \"Today\" checkbox\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.TODAY:Today`)\n * ```\n */\n readonly todayLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.TODAY:Today`));\n /**\n * label for the \"Now\" checkbox\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.NOW:Now`)\n * ```\n */\n readonly nowLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.NOW:Now`));\n /**\n * label for \"Date\" field / radio button\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE:Date`)\n * ```\n */\n readonly dateLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE:Date`));\n /**\n * label for the \"Preview\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.PREVIEW:Preview`)\n * ```\n */\n readonly previewLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.PREVIEW:Preview`));\n /**\n * Placeholder for date fields\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER:Select date`)\n * ```\n */\n readonly datePlaceholder = input(\n t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER:Select date`)\n );\n /**\n * label for the \"Before\" toggle\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.BEFORE:Before`)\n * ```\n */\n readonly beforeLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.BEFORE:Before`));\n /**\n * label for the \"After\" toggle\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.AFTER:After`)\n * ```\n */\n readonly afterLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.AFTER:After`));\n /**\n * label for the \"Within\" toggle\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.WITHIN:Within`)\n * ```\n */\n readonly withinLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.WITHIN:Within`));\n /**\n * label for the \"value\" number input\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.VALUE:Value`)\n * ```\n */\n readonly valueLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.VALUE:Value`));\n /**\n * label for the \"Unit\" select\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.UNIT:Unit`)\n * ```\n */\n readonly unitLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.UNIT:Unit`));\n /**\n * label for the \"search\" input\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.SEARCH:Search`)\n * ```\n */\n readonly searchLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.SEARCH:Search`));\n /**\n * label for the \"search\" input\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.PRESETS:Presets`)\n * ```\n */\n readonly presetLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.PRESETS:Presets`));\n /**\n * label for the \"advanced\" switch\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.ADVANCED:Advanced`)\n * ```\n */\n readonly advancedLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.ADVANCED:Advanced`));\n /**\n * label for the \"apply\" switch\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.APPLY:Apply`)\n * ```\n */\n readonly applyLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.APPLY:Apply`));\n\n /** Event fired when the apply button has been clicked */\n readonly applyClicked = output<void>();\n\n /** Base configuration on how the dates should be displayed, parts of it may be overwritten internally. */\n readonly datepickerConfig = input<DatepickerInputConfig>();\n\n protected readonly icons = addIcons({ elementDown2 });\n protected advancedMode = false;\n protected readonly dateRange = signal<DateRange>({ start: undefined, end: undefined });\n\n protected point1Now = true;\n protected point2Mode: 'duration' | 'date' = 'duration';\n\n protected point1date = this.getDateNow();\n protected point2date = this.getDateNow();\n protected point2offset = 0;\n protected point2range: 'before' | 'after' | 'within' = 'before';\n protected readonly calculatedRange = computed<ResolvedDateRange>(() =>\n this.resolve(this.range())\n );\n protected readonly pipeFormat = computed<string>(() =>\n this.enableTimeSelection()\n ? (this.datepickerConfig()?.dateTimeFormat ?? 'short')\n : (this.datepickerConfig()?.dateFormat ?? 'shortDate')\n );\n\n protected readonly datepickerConfigInternal = computed<DatepickerConfig>(() => ({\n ...(this.datepickerConfig() ?? {}),\n enableDateRange: false,\n showTime: this.enableTimeSelection(),\n mandatoryTime: this.enableTimeSelection()\n }));\n\n protected readonly dateRangeConfig = computed<DatepickerConfig>(() => ({\n ...(this.datepickerConfig() ?? {}),\n enableDateRange: true\n }));\n\n protected readonly filteredPresetList = computed<DateRangePreset[]>(() => {\n const timeFilter = (item: DateRangePreset): boolean => {\n const timeOnly = item.type === 'custom' ? item.timeOnly : item.offset < ONE_DAY;\n return this.enableTimeSelection() || !timeOnly;\n };\n return (this.presetList() ?? []).filter(timeFilter);\n });\n\n protected readonly focusedDate = computed(() => {\n const range = this.dateRange();\n const date = range.end ?? range.start;\n return isValid(date) ? date : undefined;\n });\n protected readonly presetFilter = signal('');\n protected readonly presetOpen = signal(false);\n protected readonly inputMode = computed(\n () => this.basicMode() === 'input' || this.enableTimeSelection()\n );\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.enableTimeSelection ||\n changes.datepickerConfig ||\n (changes.range && this.rangeChanged(changes.range.previousValue, changes.range.currentValue))\n ) {\n this.updateFromRange();\n }\n if (\n (changes.basicMode || changes.enableTimeSelection) &&\n this.inputMode() &&\n !this.advancedMode\n ) {\n this.point2Mode = 'date';\n this.point2Changed();\n }\n }\n\n private getDateNow(): Date {\n const now = new Date();\n if (!this.enableTimeSelection()) {\n this.service.removeTime(now);\n }\n return now;\n }\n\n private rangeChanged(oldRange: DateRangeFilter | undefined, newRange: DateRangeFilter): boolean {\n return (\n !oldRange ||\n oldRange.point1 !== newRange.point1 ||\n oldRange.point2 !== newRange.point2 ||\n oldRange.range !== newRange.range\n );\n }\n\n private updateFromRange(): void {\n const rangeVal = this.range();\n this.point1Now = rangeVal.point1 === 'now';\n this.point1date = rangeVal.point1 === 'now' ? this.getDateNow() : rangeVal.point1;\n if (rangeVal.point2) {\n this.point2Mode = rangeVal.point2 instanceof Date ? 'date' : 'duration';\n this.point2date = rangeVal.point2 instanceof Date ? rangeVal.point2 : this.getDateNow();\n this.point2range = rangeVal.range ?? 'before';\n this.point2offset =\n rangeVal.point2 instanceof Date\n ? Math.round(this.point1date.getTime() - rangeVal.point2.getTime())\n : rangeVal.point2;\n }\n if ((this.point1Now && this.basicMode() !== 'input') || this.point2Mode !== 'date') {\n this.advancedMode = true;\n } else {\n this.advancedMode = false;\n this.updateDateRange();\n }\n }\n\n private resolve(range: DateRangeFilter, skipNormalization?: boolean): ResolvedDateRange {\n return this.service.resolveDateRangeFilter(range, {\n withTime: this.enableTimeSelection(),\n skipNormalization\n });\n }\n\n protected updateDateRange(range = this.range()): void {\n const calculatedRange = this.resolve(range);\n this.dateRange.set({ start: calculatedRange.start, end: calculatedRange.end });\n }\n\n protected updateOnModeChange(): void {\n if (this.advancedMode) {\n const calculatedRange = this.resolve(this.range());\n this.point2Mode = 'duration';\n this.point2range = 'after';\n this.point2offset = Math.abs(calculatedRange.end.getTime() - calculatedRange.start.getTime());\n } else {\n this.updateSimpleMode(this.range());\n }\n }\n\n private updateSimpleMode(newRange: DateRangeFilter): void {\n if (this.inputMode()) {\n this.range.update(oldRange => ({\n ...oldRange,\n point1: newRange.point1\n }));\n // input mode supports `now`, so point1 needs to remain unchanged\n if (newRange.point1 === 'now') {\n this.point1Now = true;\n this.point1date = this.getDateNow();\n } else {\n this.point1Now = false;\n this.point1date = newRange.point1;\n }\n const calculatedRange = this.resolve(newRange, true);\n this.point2Mode = 'date';\n this.point2date = calculatedRange.end;\n this.range.update(oldRange => ({\n ...oldRange,\n range: undefined,\n point2: calculatedRange.end\n }));\n } else {\n this.point1Now = false;\n this.updateDateRange(newRange);\n this.updateFromDateRange();\n }\n }\n\n protected updateFromDateRange(dateRange?: DateRange): void {\n if (dateRange) {\n this.dateRange.set(dateRange);\n }\n const range = this.dateRange();\n const startDate = range.start ?? this.getDateNow();\n const endDate = range.end ?? this.getDateNow();\n this.point1date = startDate;\n this.point2date = startDate;\n this.range.set({\n point1: startDate,\n point2: endDate,\n range: undefined\n });\n this.point2Mode = 'date';\n this.point2offset = 0;\n }\n\n protected point1Changed(): void {\n if (this.point1Now) {\n this.range.update(oldRange => ({ ...oldRange, point1: 'now' }));\n this.point1date = this.getDateNow();\n if (this.point2Mode !== 'date') {\n this.point2range ??= 'before';\n }\n } else {\n this.range.update(oldRange => ({ ...oldRange, point1: this.point1date ?? new Date(NaN) }));\n }\n }\n\n protected point2Changed(): void {\n if (this.point2Mode === 'date') {\n if (!(this.range().point2 instanceof Date)) {\n const calculatedRange = this.resolve(this.range());\n if (calculatedRange.valid) {\n this.point2date =\n this.point1date < calculatedRange.end ? calculatedRange.start : calculatedRange.end;\n }\n }\n this.range.update(oldRange => ({\n ...oldRange,\n range: undefined,\n point2: this.point2date\n }));\n } else {\n this.range.update(oldRange => ({\n ...oldRange,\n range: this.point2range\n }));\n if (this.range().point2 instanceof Date) {\n const calculatedRange = this.resolve(this.range());\n this.point2offset = Math.round(\n calculatedRange.end.getTime() - calculatedRange.start.getTime()\n );\n }\n this.range.update(oldRange => ({\n ...oldRange,\n point2: this.point2offset\n }));\n }\n }\n\n protected selectPresetItem(event: Event, item: DateRangePreset): void {\n const newRange: DateRangeFilter =\n item.type === 'custom'\n ? item.calculate(item, this.range())\n : { point1: 'now', range: 'before', point2: item.offset };\n if (this.advancedMode) {\n Object.assign(this.range(), newRange);\n this.updateFromRange();\n } else {\n this.updateSimpleMode(newRange);\n }\n if (this.smallScreen) {\n // Prevent re-opening the dropdown when pressing enter on the selected item\n event.preventDefault();\n this.presetOpen.set(false);\n }\n }\n}\n","@if (presetList()?.length) {\n @if (this.smallScreen) {\n <div class=\"presets d-flex\">\n <button\n #presetTrigger=\"cdkOverlayOrigin\"\n type=\"button\"\n class=\"btn btn-tertiary dropdown-toggle m-5 flex-grow-1\"\n cdkOverlayOrigin\n [class.show]=\"presetOpen()\"\n [attr.aria-expanded]=\"presetOpen()\"\n (click)=\"presetOpen.set(true)\"\n >\n {{ presetLabel() | translate }}\n <si-icon class=\"dropdown-caret icon\" [icon]=\"icons.elementDown2\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayHasBackdrop\n [cdkConnectedOverlayOpen]=\"presetOpen()\"\n [cdkConnectedOverlayOrigin]=\"presetTrigger\"\n [cdkConnectedOverlayMinWidth]=\"\n presetTrigger.elementRef.nativeElement?.getBoundingClientRect().width\n \"\n (backdropClick)=\"presetOpen.set(false)\"\n (detach)=\"presetOpen.set(false)\"\n >\n <div\n cdkTrapFocus\n class=\"preset-select mobile elevation-2 rounded-2 w-100\"\n cdkTrapFocusAutoCapture\n >\n <ng-container *ngTemplateOutlet=\"presets\" />\n </div>\n </ng-template>\n </div>\n } @else {\n <div class=\"preset-select border-end\">\n <ng-container *ngTemplateOutlet=\"presets\" />\n </div>\n }\n}\n<form class=\"main-form d-flex flex-column flex-fill\">\n @if (advancedMode || inputMode()) {\n <div class=\"advanced-form px-6 py-4\">\n @if (!reverseInputFields()) {\n <ng-container *ngTemplateOutlet=\"formReferencePoint\" />\n }\n\n <div class=\"mb-8\">\n @if (point2Mode === 'date') {\n <ng-container *ngTemplateOutlet=\"formPoint2Date\" />\n }\n @if (point2Mode === 'duration') {\n <ng-container *ngTemplateOutlet=\"formPoint2Duration\" />\n }\n </div>\n\n @if (reverseInputFields()) {\n <ng-container *ngTemplateOutlet=\"formReferencePoint\" />\n }\n </div>\n } @else {\n <si-datepicker\n [config]=\"dateRangeConfig()\"\n [focusedDate]=\"focusedDate()\"\n [dateRange]=\"dateRange()\"\n (dateRangeChange)=\"updateFromDateRange($event)\"\n />\n }\n\n @if (advancedMode || !hideAdvancedMode()) {\n <label class=\"form-switch form-check ms-6\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n name=\"advancedMode\"\n role=\"switch\"\n [(ngModel)]=\"advancedMode\"\n (ngModelChange)=\"updateOnModeChange()\"\n />\n <span class=\"form-check-label\">{{ advancedLabel() | translate }}</span>\n </label>\n }\n\n <div class=\"mt-4 mb-6 ms-6\">\n {{ previewLabel() | translate }}:\n <span class=\"preview\">\n @if (calculatedRange().valid) {\n {{ calculatedRange().start | date: pipeFormat() }} -\n {{ calculatedRange().end | date: pipeFormat() }}\n } @else {\n ?\n }\n </span>\n </div>\n</form>\n\n@if (showApplyButton()) {\n <div class=\"footer border-top px-6 py-5 d-flex\">\n <button type=\"button\" class=\"btn btn-primary ms-auto\" (click)=\"applyClicked.emit()\">\n {{ applyLabel() | translate }}\n </button>\n </div>\n}\n<ng-template #presets>\n @if (presetSearch()) {\n <si-search-bar\n colorVariant=\"base-0\"\n class=\"mx-6 mt-5 mb-6\"\n [placeholder]=\"searchLabel() | translate\"\n [showIcon]=\"true\"\n [(ngModel)]=\"presetFilter\"\n />\n }\n <ul class=\"overflow-auto\" cdkListbox [attr.aria-label]=\"presetLabel() | translate\">\n @for (item of filteredPresetList(); track $index) {\n @if (item.label | translate | presetMatchFilter: presetFilter()) {\n <li\n class=\"preset-item focus-inside px-8 py-5\"\n [cdkOption]=\"item.label\"\n (click)=\"selectPresetItem($event, item)\"\n (keydown.enter)=\"selectPresetItem($event, item)\"\n >\n {{ item.label | translate }}\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template #formReferencePoint>\n <div class=\"mb-8\">\n <label class=\"d-block\">\n <span class=\"form-label\">{{\n (advancedMode ? refLabel() : reverseInputFields() ? toLabel() : fromLabel()) | translate\n }}</span>\n <si-calendar-button class=\"w-100\">\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"point1\"\n required\n siDatepicker\n [siDatepickerConfig]=\"datepickerConfigInternal()\"\n [disabled]=\"point1Now\"\n [placeholder]=\"datePlaceholder() | translate\"\n [(ngModel)]=\"point1date\"\n (ngModelChange)=\"point1Changed()\"\n />\n </si-calendar-button>\n </label>\n <label class=\"ms-4 mt-4 text-nowrap form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n name=\"point1now\"\n [(ngModel)]=\"point1Now\"\n (ngModelChange)=\"point1Changed()\"\n />\n <span class=\"form-check-label\">{{\n (enableTimeSelection() ? nowLabel() : todayLabel()) | translate\n }}</span>\n </label>\n </div>\n</ng-template>\n\n<ng-template #formPoint2Date>\n <label class=\"d-block mb-4 bp-9\">\n <span class=\"form-label\">{{\n (reverseInputFields() ? fromLabel() : toLabel()) | translate\n }}</span>\n <si-calendar-button class=\"w-100\">\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"point2\"\n required\n siDatepicker\n [siDatepickerConfig]=\"datepickerConfigInternal()\"\n [attr.aria-label]=\"dateLabel() | translate\"\n [placeholder]=\"datePlaceholder() | translate\"\n [(ngModel)]=\"point2date\"\n (ngModelChange)=\"point2Changed()\"\n />\n </si-calendar-button>\n </label>\n</ng-template>\n\n<ng-template #formPoint2Duration>\n <div>\n <span class=\"form-label\">{{ rangeLabel() | translate }}</span>\n <si-relative-date\n class=\"d-block mb-4\"\n [unitLabel]=\"unitLabel() | translate\"\n [valueLabel]=\"valueLabel() | translate\"\n [enableTimeSelection]=\"enableTimeSelection()\"\n [(value)]=\"point2offset\"\n (valueChange)=\"point2Changed()\"\n />\n <div class=\"range-type ms-4\">\n <label class=\"form-check form-check-inline\">\n <input\n type=\"radio\"\n class=\"form-check-input\"\n value=\"before\"\n name=\"point2range\"\n [(ngModel)]=\"point2range\"\n (ngModelChange)=\"point2Changed()\"\n />\n <span class=\"form-check-label\">\n {{ beforeLabel() | translate }}\n </span>\n </label>\n <label class=\"form-check form-check-inline\">\n <input\n type=\"radio\"\n class=\"form-check-input\"\n value=\"after\"\n name=\"point2range\"\n [(ngModel)]=\"point2range\"\n (ngModelChange)=\"point2Changed()\"\n />\n <span class=\"form-check-label\">\n {{ afterLabel() | translate }}\n </span>\n </label>\n <label class=\"form-check form-check-inline\">\n <input\n type=\"radio\"\n class=\"form-check-input\"\n value=\"within\"\n name=\"point2range\"\n [(ngModel)]=\"point2range\"\n (ngModelChange)=\"point2Changed()\"\n />\n <span class=\"form-check-label\">\n {{ withinLabel() | translate }}\n </span>\n </label>\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiDateRangeFilterComponent } from './si-date-range-filter.component';\n\n@NgModule({\n imports: [SiDateRangeFilterComponent],\n exports: [SiDateRangeFilterComponent]\n})\nexport class SiDateRangeFilterModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-date-range-filter.component';\nexport * from './si-date-range-filter.module';\nexport * from './si-date-range-filter.types';\nexport * from './si-date-range-calculation.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-date-range-filter.mjs","sources":["../../../../projects/element-ng/date-range-filter/si-date-range-calculation.service.ts","../../../../projects/element-ng/date-range-filter/si-date-range-filter.types.ts","../../../../projects/element-ng/date-range-filter/si-relative-date.component.ts","../../../../projects/element-ng/date-range-filter/si-relative-date.component.html","../../../../projects/element-ng/date-range-filter/si-date-range-filter.component.ts","../../../../projects/element-ng/date-range-filter/si-date-range-filter.component.html","../../../../projects/element-ng/date-range-filter/si-date-range-filter.module.ts","../../../../projects/element-ng/date-range-filter/index.ts","../../../../projects/element-ng/date-range-filter/siemens-element-ng-date-range-filter.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\n\nimport { DateRangeFilter, ResolvedDateRange } from './si-date-range-filter.types';\n\nexport interface ResolveDateRangeOptions {\n /**\n * Resolve time? When set to false, hours/minutes/seconds/ms are set to zero\n * @defaultValue true\n **/\n withTime?: boolean;\n /**\n * Skip normalization? When skipped, `point1` will always be `start`, `point2` will be `end`\n */\n skipNormalization?: boolean;\n}\n\n/**\n * Service to transform and calculate with DateRangeFilter objects.\n */\n@Injectable({ providedIn: 'root' })\nexport class SiDateRangeCalculationService {\n /**\n * Calculates the start and end dates of a DateRangeFilter.\n * @param filter - The date range filter object to be resolved.\n * @param options - Options for time handling\n * @returns The resolved result in form of a ResolvedDateRange object.\n */\n resolveDateRangeFilter(\n filter: DateRangeFilter,\n options?: ResolveDateRangeOptions\n ): ResolvedDateRange {\n const ref = filter.point1 === 'now' ? new Date() : new Date(filter.point1);\n const withTime = options?.withTime ?? true;\n\n if (!withTime) {\n this.removeTime(ref);\n }\n\n if (filter.point2 instanceof Date) {\n const point2 = withTime ? filter.point2 : this.removeTime(new Date(filter.point2));\n return this.normalize(ref, point2, options?.skipNormalization);\n }\n\n const offset = filter.point2;\n\n switch (filter.range) {\n case undefined:\n case 'before':\n return this.normalize(ref, this.datePlusOffset(ref, -offset), options?.skipNormalization);\n case 'after':\n return this.normalize(ref, this.datePlusOffset(ref, offset), options?.skipNormalization);\n case 'within':\n return this.normalize(\n this.datePlusOffset(ref, -offset),\n this.datePlusOffset(ref, offset),\n options?.skipNormalization\n );\n }\n }\n\n private datePlusOffset(date: Date, offset: number): Date {\n return new Date(date.getTime() + offset);\n }\n\n private normalize(date1: Date, date2: Date, skip?: boolean): ResolvedDateRange {\n const valid = !isNaN(date1.getTime()) && !isNaN(date2.getTime());\n return skip\n ? { start: date1, end: date2, valid }\n : date1 < date2\n ? { start: date1, end: date2, valid }\n : { start: date2, end: date1, valid };\n }\n\n /**\n * Utility to reset the time attributes to 0 (hours/minutes/seconds/milliseconds).\n */\n removeTime(date: Date): Date {\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n return date;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/**\n * Simple DateRangeFilter preset based on offset from now\n */\nexport interface DateRangePresetOffset {\n type?: 'offset';\n /** translation key for label */\n label: TranslatableString;\n /** offset from current in milliseconds */\n offset: number;\n}\n\n/**\n * Advanced DateRageFilter preset with custom calculation\n */\nexport interface DateRangePresetCustom {\n type: 'custom';\n /** translation key for label */\n label: TranslatableString;\n /** calculation custom calculation function */\n calculate: (self: DateRangePresetCustom, currentRange: DateRangeFilter) => DateRangeFilter;\n /** Whether this should show only when time support is enabled */\n timeOnly?: boolean;\n}\n\nexport type DateRangePreset = DateRangePresetOffset | DateRangePresetCustom;\n\nexport interface DateRangeFilter {\n point1: Date | 'now';\n point2: number | Date;\n range?: 'before' | 'after' | 'within';\n}\n\nexport interface ResolvedDateRange {\n start: Date;\n end: Date;\n valid: boolean;\n}\n\nexport const ONE_MINUTE = 60 * 1000;\nexport const ONE_DAY = ONE_MINUTE * 60 * 24;\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n OnChanges,\n output,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SiNumberInputComponent } from '@siemens/element-ng/number-input';\nimport {\n SelectOption,\n SiSelectComponent,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n} from '@siemens/element-ng/select';\nimport { t } from '@siemens/element-translate-ng/translate';\n\nimport { ONE_DAY, ONE_MINUTE } from './si-date-range-filter.types';\n\ninterface OffsetOption extends SelectOption<string> {\n offset: number;\n}\n\n@Component({\n selector: 'si-relative-date',\n imports: [\n FormsModule,\n SiNumberInputComponent,\n SiSelectComponent,\n SiSelectSingleValueDirective,\n SiSelectSimpleOptionsDirective\n ],\n templateUrl: './si-relative-date.component.html',\n styleUrl: './si-relative-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiRelativeDateComponent implements OnChanges {\n /** @defaultValue 0 */\n // eslint-disable-next-line @angular-eslint/prefer-signal-model\n readonly value = input(0);\n /** @defaultValue false */\n readonly enableTimeSelection = input(false, { transform: booleanAttribute });\n readonly valueLabel = input.required<string>();\n readonly unitLabel = input.required<string>();\n readonly valueChange = output<number>();\n\n protected readonly internalValue = signal(0);\n protected readonly offset = signal(0);\n protected readonly unit = signal('days');\n private readonly fullOffsetList: OffsetOption[] = [\n {\n type: 'option',\n value: 'minutes',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.MINUTES:Minutes`),\n offset: ONE_MINUTE\n },\n {\n type: 'option',\n value: 'hours',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.HOURS:Hours`),\n offset: 60 * ONE_MINUTE\n },\n {\n type: 'option',\n value: 'days',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.DAYS:Days`),\n offset: ONE_DAY\n },\n {\n type: 'option',\n value: 'weeks',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.WEEKS:Weeks`),\n offset: 7 * ONE_DAY\n },\n {\n type: 'option',\n value: 'months',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.MONTHS:Months`),\n offset: 30 * ONE_DAY\n },\n {\n type: 'option',\n value: 'years',\n label: t(() => $localize`:@@SI_DATE_RANGE_FILTER.YEARS:Years`),\n offset: 365 * ONE_DAY\n }\n ];\n\n protected readonly offsetList = computed(() =>\n this.enableTimeSelection()\n ? this.fullOffsetList\n : this.fullOffsetList.filter(item => item.offset >= ONE_DAY)\n );\n\n ngOnChanges(changes: SimpleChanges): void {\n const value = this.value();\n if (changes.value && value !== this.internalValue()) {\n this.internalValue.set(value);\n this.calculateOffset();\n }\n }\n\n private calculateOffset(): void {\n const offsetList = this.offsetList();\n let unit = '';\n if (offsetList.length) {\n this.offset.set(0);\n unit = offsetList[0].value;\n }\n\n for (let i = offsetList.length - 1; i >= 0; i--) {\n const item = offsetList[i];\n const raw = this.internalValue() / item.offset;\n const rounded = Math.round(raw);\n if (rounded > 0 && Math.abs(raw - rounded) < 0.001) {\n this.offset.set(rounded);\n unit = item.value;\n break;\n }\n }\n\n this.changeUnit(unit);\n }\n\n protected updateValue(offset: number): void {\n this.offset.set(offset);\n const item = this.offsetList().find(x => x.value === this.unit())!;\n this.internalValue.set(offset * item.offset);\n this.valueChange.emit(this.internalValue());\n }\n\n protected changeUnit(newUnit: string): void {\n this.unit.set(newUnit);\n const item = this.offsetList().find(x => x.value === this.unit())!;\n this.offset.set(Math.max(1, Math.round(this.internalValue() / item.offset)));\n this.internalValue.set(this.offset() * item.offset);\n this.valueChange.emit(this.internalValue());\n }\n}\n","<si-number-input\n class=\"form-control mb-4\"\n [aria-label]=\"valueLabel()\"\n [ngModel]=\"offset()\"\n (ngModelChange)=\"updateValue($event)\"\n/>\n<si-select\n class=\"form-control\"\n min=\"0\"\n [ariaLabel]=\"unitLabel()\"\n [options]=\"offsetList()\"\n [ngModel]=\"unit()\"\n (ngModelChange)=\"changeUnit($event)\"\n/>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { CdkListbox, CdkOption } from '@angular/cdk/listbox';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n OnChanges,\n output,\n Pipe,\n PipeTransform,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { elementDown2 } from '@siemens/element-icons';\nimport {\n DatepickerConfig,\n DatepickerInputConfig,\n DateRange,\n isValid,\n SiCalendarButtonComponent,\n SiDatepickerComponent,\n SiDatepickerDirective\n} from '@siemens/element-ng/datepicker';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';\nimport { SiSearchBarComponent } from '@siemens/element-ng/search-bar';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiDateRangeCalculationService } from './si-date-range-calculation.service';\nimport {\n DateRangeFilter,\n DateRangePreset,\n ONE_DAY,\n ResolvedDateRange\n} from './si-date-range-filter.types';\nimport { SiRelativeDateComponent } from './si-relative-date.component';\n\n@Pipe({ name: 'presetMatchFilter', pure: true })\nexport class PresetMatchFilterPipe implements PipeTransform {\n transform(value: string, term: string): boolean {\n return !term ? true : value.toLowerCase().includes(term.toLowerCase());\n }\n}\n\n@Component({\n selector: 'si-date-range-filter',\n imports: [\n CdkOption,\n CdkListbox,\n CdkTrapFocus,\n DatePipe,\n FormsModule,\n NgTemplateOutlet,\n OverlayModule,\n PresetMatchFilterPipe,\n SiCalendarButtonComponent,\n SiDatepickerComponent,\n SiDatepickerDirective,\n SiIconComponent,\n SiRelativeDateComponent,\n SiSearchBarComponent,\n SiTranslatePipe\n ],\n templateUrl: './si-date-range-filter.component.html',\n styleUrl: './si-date-range-filter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.mobile]': 'smallScreen'\n }\n})\nexport class SiDateRangeFilterComponent implements OnChanges {\n private readonly service = inject(SiDateRangeCalculationService);\n private readonly mediaMatcher = inject(MediaMatcher);\n protected readonly smallScreen = this.mediaMatcher.matchMedia(\n `(max-width: ${BOOTSTRAP_BREAKPOINTS.mdMinimum}px)`\n ).matches;\n\n /** The filter range object */\n readonly range = model.required<DateRangeFilter>();\n /** List of preset time ranges. When not present or empty, the preset section won't show */\n readonly presetList = input<DateRangePreset[]>();\n /**\n * Determines if there's a search field for the preset list\n *\n * @defaultValue true\n */\n readonly presetSearch = input(true, { transform: booleanAttribute });\n /**\n * Determines if time is selectable or only dates\n *\n * @defaultValue false\n */\n readonly enableTimeSelection = input(false, { transform: booleanAttribute });\n /**\n * Determines whether to show input fields or a date-range calendar in basic mode.\n * When time selection is enabled, this has no effect and input fields are always shown.\n *\n * @defaultValue 'calendar'\n */\n readonly basicMode = input<'input' | 'calendar'>('calendar');\n /**\n * Reverses the order of the from/to fields\n *\n * @defaultValue false\n */\n readonly reverseInputFields = input(false, { transform: booleanAttribute });\n\n /**\n * Determines whether to show the 'Apply' button\n *\n * @defaultValue false\n */\n readonly showApplyButton = input(false, { transform: booleanAttribute });\n /**\n * Hides the advanced mode if input allows\n *\n * @defaultValue false\n */\n readonly hideAdvancedMode = input(false, { transform: booleanAttribute });\n\n /**\n * label for the \"Reference point\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.REF_POINT:Reference point`)\n * ```\n */\n readonly refLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.REF_POINT:Reference point`));\n /**\n * label for the \"Reference point\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.FROM:From`)\n * ```\n */\n readonly fromLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.FROM:From`));\n /**\n * label for the \"Reference point\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.TO:To`)\n * ```\n */\n readonly toLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.TO:To`));\n /**\n * label for the \"Range\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.RANGE:Range`)\n * ```\n */\n readonly rangeLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.RANGE:Range`));\n /**\n * label for the \"Today\" checkbox\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.TODAY:Today`)\n * ```\n */\n readonly todayLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.TODAY:Today`));\n /**\n * label for the \"Now\" checkbox\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.NOW:Now`)\n * ```\n */\n readonly nowLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.NOW:Now`));\n /**\n * label for \"Date\" field / radio button\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE:Date`)\n * ```\n */\n readonly dateLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE:Date`));\n /**\n * label for the \"Preview\" title\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.PREVIEW:Preview`)\n * ```\n */\n readonly previewLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.PREVIEW:Preview`));\n /**\n * Placeholder for date fields\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER:Select date`)\n * ```\n */\n readonly datePlaceholder = input(\n t(() => $localize`:@@SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER:Select date`)\n );\n /**\n * label for the \"Before\" toggle\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.BEFORE:Before`)\n * ```\n */\n readonly beforeLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.BEFORE:Before`));\n /**\n * label for the \"After\" toggle\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.AFTER:After`)\n * ```\n */\n readonly afterLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.AFTER:After`));\n /**\n * label for the \"Within\" toggle\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.WITHIN:Within`)\n * ```\n */\n readonly withinLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.WITHIN:Within`));\n /**\n * label for the \"value\" number input\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.VALUE:Value`)\n * ```\n */\n readonly valueLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.VALUE:Value`));\n /**\n * label for the \"Unit\" select\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.UNIT:Unit`)\n * ```\n */\n readonly unitLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.UNIT:Unit`));\n /**\n * label for the \"search\" input\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.SEARCH:Search`)\n * ```\n */\n readonly searchLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.SEARCH:Search`));\n /**\n * label for the \"search\" input\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.PRESETS:Presets`)\n * ```\n */\n readonly presetLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.PRESETS:Presets`));\n /**\n * label for the \"advanced\" switch\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.ADVANCED:Advanced`)\n * ```\n */\n readonly advancedLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.ADVANCED:Advanced`));\n /**\n * label for the \"apply\" switch\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_DATE_RANGE_FILTER.APPLY:Apply`)\n * ```\n */\n readonly applyLabel = input(t(() => $localize`:@@SI_DATE_RANGE_FILTER.APPLY:Apply`));\n\n /** Event fired when the apply button has been clicked */\n readonly applyClicked = output<void>();\n\n /** Base configuration on how the dates should be displayed, parts of it may be overwritten internally. */\n readonly datepickerConfig = input<DatepickerInputConfig>();\n\n protected readonly icons = addIcons({ elementDown2 });\n protected readonly advancedMode = signal(false);\n protected readonly dateRange = signal<DateRange>({ start: undefined, end: undefined });\n\n protected readonly point1Now = signal(true);\n protected readonly point2Mode = signal<'duration' | 'date'>('duration');\n\n protected readonly point1date = signal(this.getDateNow());\n protected readonly point2date = signal(this.getDateNow());\n protected readonly point2offset = signal(0);\n protected readonly point2range = signal<'before' | 'after' | 'within'>('before');\n protected readonly calculatedRange = computed<ResolvedDateRange>(() =>\n this.resolve(this.range())\n );\n protected readonly pipeFormat = computed<string>(() =>\n this.enableTimeSelection()\n ? (this.datepickerConfig()?.dateTimeFormat ?? 'short')\n : (this.datepickerConfig()?.dateFormat ?? 'shortDate')\n );\n\n protected readonly datepickerConfigInternal = computed<DatepickerConfig>(() => ({\n ...(this.datepickerConfig() ?? {}),\n enableDateRange: false,\n showTime: this.enableTimeSelection(),\n mandatoryTime: this.enableTimeSelection()\n }));\n\n protected readonly dateRangeConfig = computed<DatepickerConfig>(() => ({\n ...(this.datepickerConfig() ?? {}),\n enableDateRange: true\n }));\n\n protected readonly filteredPresetList = computed<DateRangePreset[]>(() => {\n const timeFilter = (item: DateRangePreset): boolean => {\n const timeOnly = item.type === 'custom' ? item.timeOnly : item.offset < ONE_DAY;\n return this.enableTimeSelection() || !timeOnly;\n };\n return (this.presetList() ?? []).filter(timeFilter);\n });\n\n protected readonly focusedDate = computed(() => {\n const range = this.dateRange();\n const date = range.end ?? range.start;\n return isValid(date) ? date : undefined;\n });\n protected readonly presetFilter = signal('');\n protected readonly presetOpen = signal(false);\n protected readonly inputMode = computed(\n () => this.basicMode() === 'input' || this.enableTimeSelection()\n );\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.enableTimeSelection ||\n changes.datepickerConfig ||\n (changes.range && this.rangeChanged(changes.range.previousValue, changes.range.currentValue))\n ) {\n this.updateFromRange(this.range());\n }\n if (\n (changes.basicMode || changes.enableTimeSelection) &&\n this.inputMode() &&\n !this.advancedMode()\n ) {\n this.point2Mode.set('date');\n this.point2Changed();\n }\n }\n\n private getDateNow(): Date {\n const now = new Date();\n if (!this.enableTimeSelection()) {\n this.service.removeTime(now);\n }\n return now;\n }\n\n private rangeChanged(oldRange: DateRangeFilter | undefined, newRange: DateRangeFilter): boolean {\n return (\n !oldRange || // eslint-disable-line @typescript-eslint/prefer-optional-chain\n oldRange.point1 !== newRange.point1 ||\n oldRange.point2 !== newRange.point2 ||\n oldRange.range !== newRange.range\n );\n }\n\n private updateFromRange(rangeVal: DateRangeFilter): void {\n this.point1Now.set(rangeVal.point1 === 'now');\n this.point1date.set(rangeVal.point1 === 'now' ? this.getDateNow() : rangeVal.point1);\n if (rangeVal.point2) {\n this.point2Mode.set(rangeVal.point2 instanceof Date ? 'date' : 'duration');\n this.point2date.set(rangeVal.point2 instanceof Date ? rangeVal.point2 : this.getDateNow());\n this.point2range.set(rangeVal.range ?? 'before');\n this.point2offset.set(\n rangeVal.point2 instanceof Date\n ? Math.abs(Math.round(this.point1date().getTime() - rangeVal.point2.getTime()))\n : rangeVal.point2\n );\n }\n if ((this.point1Now() && this.basicMode() !== 'input') || this.point2Mode() !== 'date') {\n this.advancedMode.set(true);\n } else {\n this.advancedMode.set(false);\n this.updateDateRange();\n }\n }\n\n private resolve(range: DateRangeFilter, skipNormalization?: boolean): ResolvedDateRange {\n return this.service.resolveDateRangeFilter(range, {\n withTime: this.enableTimeSelection(),\n skipNormalization\n });\n }\n\n protected updateDateRange(range = this.range()): void {\n const calculatedRange = this.resolve(range);\n this.dateRange.set({ start: calculatedRange.start, end: calculatedRange.end });\n }\n\n protected updateOnModeChange(): void {\n if (this.advancedMode()) {\n const calculatedRange = this.resolve(this.range());\n this.point1date.set(calculatedRange.start);\n this.point2Mode.set('duration');\n this.point2range.set('after');\n this.point2offset.set(\n Math.abs(calculatedRange.end.getTime() - calculatedRange.start.getTime())\n );\n this.updateRange();\n } else {\n this.updateSimpleMode(this.range());\n }\n }\n\n private updateSimpleMode(newRange: DateRangeFilter): void {\n if (this.inputMode()) {\n // input mode supports `now`, so point1 needs to remain unchanged\n if (newRange.point1 === 'now') {\n this.point1Now.set(true);\n this.point1date.set(this.getDateNow());\n } else {\n this.point1Now.set(false);\n this.point1date.set(newRange.point1);\n }\n const calculatedRange = this.resolve(newRange, true);\n this.point2Mode.set('date');\n this.point2date.set(calculatedRange.end);\n this.updateRange();\n } else {\n this.point1Now.set(false);\n this.updateDateRange(newRange);\n this.updateFromDateRange();\n }\n }\n\n private updateRange(): void {\n const point2isDate = this.point2Mode() === 'date';\n const newRange: DateRangeFilter = {\n point1: this.point1Now() ? 'now' : this.point1date(),\n point2: point2isDate ? this.point2date() : this.point2offset(),\n range: point2isDate ? undefined : this.point2range()\n };\n this.range.update(old => ({ ...old, ...newRange }));\n }\n\n protected updateFromDateRange(dateRange?: DateRange): void {\n if (dateRange) {\n this.dateRange.set(dateRange);\n }\n const range = this.dateRange();\n const startDate = range.start ?? this.getDateNow();\n const endDate = range.end ?? this.getDateNow();\n this.point1date.set(startDate);\n this.point2date.set(endDate);\n this.point2Mode.set('date');\n this.point2offset.set(0);\n this.updateRange();\n }\n\n protected point1Changed(): void {\n if (this.point1Now()) {\n this.point1date.set(this.getDateNow());\n }\n this.updateRange();\n }\n\n protected point2Changed(): void {\n if (this.point2Mode() === 'date') {\n if (!(this.range().point2 instanceof Date)) {\n const calculatedRange = this.resolve(this.range());\n if (calculatedRange.valid) {\n this.point2date.set(\n this.point1date() < calculatedRange.end ? calculatedRange.start : calculatedRange.end\n );\n }\n }\n } else {\n if (this.range().point2 instanceof Date) {\n const calculatedRange = this.resolve(this.range());\n this.point2offset.set(\n Math.round(calculatedRange.end.getTime() - calculatedRange.start.getTime())\n );\n }\n }\n this.updateRange();\n }\n\n protected selectPresetItem(event: Event, item: DateRangePreset): void {\n const newRange: DateRangeFilter =\n item.type === 'custom'\n ? item.calculate(item, this.range())\n : { point1: 'now', range: 'before', point2: item.offset };\n if (this.advancedMode()) {\n this.updateFromRange(newRange);\n } else {\n this.updateSimpleMode(newRange);\n }\n if (this.smallScreen) {\n // Prevent re-opening the dropdown when pressing enter on the selected item\n event.preventDefault();\n this.presetOpen.set(false);\n }\n }\n}\n","@if (presetList()?.length) {\n @if (this.smallScreen) {\n <div class=\"presets d-flex\">\n <button\n #presetTrigger=\"cdkOverlayOrigin\"\n type=\"button\"\n class=\"btn btn-tertiary dropdown-toggle m-5 flex-grow-1\"\n cdkOverlayOrigin\n [class.show]=\"presetOpen()\"\n [attr.aria-expanded]=\"presetOpen()\"\n (click)=\"presetOpen.set(true)\"\n >\n {{ presetLabel() | translate }}\n <si-icon class=\"dropdown-caret icon\" [icon]=\"icons.elementDown2\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayHasBackdrop\n [cdkConnectedOverlayOpen]=\"presetOpen()\"\n [cdkConnectedOverlayOrigin]=\"presetTrigger\"\n [cdkConnectedOverlayMinWidth]=\"\n presetTrigger.elementRef.nativeElement?.getBoundingClientRect().width\n \"\n (backdropClick)=\"presetOpen.set(false)\"\n (detach)=\"presetOpen.set(false)\"\n >\n <div\n cdkTrapFocus\n class=\"preset-select mobile elevation-2 rounded-2 w-100\"\n cdkTrapFocusAutoCapture\n >\n <ng-container *ngTemplateOutlet=\"presets\" />\n </div>\n </ng-template>\n </div>\n } @else {\n <div class=\"preset-select border-end\">\n <ng-container *ngTemplateOutlet=\"presets\" />\n </div>\n }\n}\n<form class=\"main-form d-flex flex-column flex-fill\">\n @if (advancedMode() || inputMode()) {\n <div class=\"advanced-form px-6 py-4\">\n @if (!reverseInputFields()) {\n <ng-container *ngTemplateOutlet=\"formReferencePoint\" />\n }\n\n <div class=\"mb-8\">\n @if (point2Mode() === 'date') {\n <ng-container *ngTemplateOutlet=\"formPoint2Date\" />\n } @else if (point2Mode() === 'duration') {\n <ng-container *ngTemplateOutlet=\"formPoint2Duration\" />\n }\n </div>\n\n @if (reverseInputFields()) {\n <ng-container *ngTemplateOutlet=\"formReferencePoint\" />\n }\n </div>\n } @else {\n <si-datepicker\n [config]=\"dateRangeConfig()\"\n [focusedDate]=\"focusedDate()\"\n [dateRange]=\"dateRange()\"\n (dateRangeChange)=\"updateFromDateRange($event)\"\n />\n }\n\n @if (advancedMode() || !hideAdvancedMode()) {\n <label class=\"form-switch form-check ms-6\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n name=\"advancedMode\"\n role=\"switch\"\n [(ngModel)]=\"advancedMode\"\n (ngModelChange)=\"updateOnModeChange()\"\n />\n <span class=\"form-check-label\">{{ advancedLabel() | translate }}</span>\n </label>\n }\n\n <div class=\"mt-4 mb-6 ms-6\">\n {{ previewLabel() | translate }}:\n <span class=\"preview\">\n @if (calculatedRange().valid) {\n {{ calculatedRange().start | date: pipeFormat() }} -\n {{ calculatedRange().end | date: pipeFormat() }}\n } @else {\n ?\n }\n </span>\n </div>\n</form>\n\n@if (showApplyButton()) {\n <div class=\"footer border-top px-6 py-5 d-flex\">\n <button type=\"button\" class=\"btn btn-primary ms-auto\" (click)=\"applyClicked.emit()\">\n {{ applyLabel() | translate }}\n </button>\n </div>\n}\n<ng-template #presets>\n @if (presetSearch()) {\n <si-search-bar\n colorVariant=\"base-0\"\n class=\"mx-6 mt-5 mb-6\"\n [placeholder]=\"searchLabel() | translate\"\n [showIcon]=\"true\"\n [(ngModel)]=\"presetFilter\"\n />\n }\n <ul class=\"overflow-auto\" cdkListbox [attr.aria-label]=\"presetLabel() | translate\">\n @for (item of filteredPresetList(); track $index) {\n @if (item.label | translate | presetMatchFilter: presetFilter()) {\n <li\n class=\"preset-item focus-inside px-8 py-5\"\n [cdkOption]=\"item.label\"\n (click)=\"selectPresetItem($event, item)\"\n (keydown.enter)=\"selectPresetItem($event, item)\"\n >\n {{ item.label | translate }}\n </li>\n }\n }\n </ul>\n</ng-template>\n<ng-template #formReferencePoint>\n <div class=\"mb-8\">\n <label class=\"d-block\">\n <span class=\"form-label\">{{\n (advancedMode() ? refLabel() : reverseInputFields() ? toLabel() : fromLabel()) | translate\n }}</span>\n <si-calendar-button class=\"w-100\">\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"point1\"\n required\n siDatepicker\n [siDatepickerConfig]=\"datepickerConfigInternal()\"\n [disabled]=\"point1Now()\"\n [placeholder]=\"datePlaceholder() | translate\"\n [(ngModel)]=\"point1date\"\n (ngModelChange)=\"point1Changed()\"\n />\n </si-calendar-button>\n </label>\n <label class=\"ms-4 mt-4 text-nowrap form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n name=\"point1now\"\n [(ngModel)]=\"point1Now\"\n (ngModelChange)=\"point1Changed()\"\n />\n <span class=\"form-check-label\">{{\n (enableTimeSelection() ? nowLabel() : todayLabel()) | translate\n }}</span>\n </label>\n </div>\n</ng-template>\n\n<ng-template #formPoint2Date>\n <label class=\"d-block mb-4 bp-9\">\n <span class=\"form-label\">{{\n (reverseInputFields() ? fromLabel() : toLabel()) | translate\n }}</span>\n <si-calendar-button class=\"w-100\">\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"point2\"\n required\n siDatepicker\n [siDatepickerConfig]=\"datepickerConfigInternal()\"\n [attr.aria-label]=\"dateLabel() | translate\"\n [placeholder]=\"datePlaceholder() | translate\"\n [(ngModel)]=\"point2date\"\n (ngModelChange)=\"point2Changed()\"\n />\n </si-calendar-button>\n </label>\n</ng-template>\n\n<ng-template #formPoint2Duration>\n <div>\n <span class=\"form-label\">{{ rangeLabel() | translate }}</span>\n <si-relative-date\n class=\"d-block mb-4\"\n [unitLabel]=\"unitLabel() | translate\"\n [valueLabel]=\"valueLabel() | translate\"\n [enableTimeSelection]=\"enableTimeSelection()\"\n [(value)]=\"point2offset\"\n (valueChange)=\"point2Changed()\"\n />\n <div class=\"range-type ms-4\">\n <label class=\"form-check form-check-inline\">\n <input\n type=\"radio\"\n class=\"form-check-input\"\n value=\"before\"\n name=\"point2range\"\n [(ngModel)]=\"point2range\"\n (ngModelChange)=\"point2Changed()\"\n />\n <span class=\"form-check-label\">\n {{ beforeLabel() | translate }}\n </span>\n </label>\n <label class=\"form-check form-check-inline\">\n <input\n type=\"radio\"\n class=\"form-check-input\"\n value=\"after\"\n name=\"point2range\"\n [(ngModel)]=\"point2range\"\n (ngModelChange)=\"point2Changed()\"\n />\n <span class=\"form-check-label\">\n {{ afterLabel() | translate }}\n </span>\n </label>\n <label class=\"form-check form-check-inline\">\n <input\n type=\"radio\"\n class=\"form-check-input\"\n value=\"within\"\n name=\"point2range\"\n [(ngModel)]=\"point2range\"\n (ngModelChange)=\"point2Changed()\"\n />\n <span class=\"form-check-label\">\n {{ withinLabel() | translate }}\n </span>\n </label>\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiDateRangeFilterComponent } from './si-date-range-filter.component';\n\n@NgModule({\n imports: [SiDateRangeFilterComponent],\n exports: [SiDateRangeFilterComponent]\n})\nexport class SiDateRangeFilterModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-date-range-filter.component';\nexport * from './si-date-range-filter.module';\nexport * from './si-date-range-filter.types';\nexport * from './si-date-range-calculation.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}