@siemens/element-ng 47.1.0 → 47.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +18 -6
  2. package/accordion/index.d.ts +9 -0
  3. package/accordion/package.json +3 -0
  4. package/accordion/si-accordion-hcollapse.service.d.ts +17 -0
  5. package/accordion/si-accordion.component.d.ts +37 -0
  6. package/accordion/si-accordion.module.d.ts +8 -0
  7. package/accordion/si-accordion.service.d.ts +17 -0
  8. package/accordion/si-collapsible-panel.component.d.ts +89 -0
  9. package/action-modal/index.d.ts +6 -0
  10. package/action-modal/package.json +3 -0
  11. package/action-modal/si-action-dialog.service.d.ts +49 -0
  12. package/action-modal/si-action-dialog.types.d.ts +92 -0
  13. package/action-modal/si-alert-dialog/si-alert-dialog.component.d.ts +32 -0
  14. package/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.d.ts +40 -0
  15. package/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.d.ts +45 -0
  16. package/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.d.ts +68 -0
  17. package/auto-collapsable-list/index.d.ts +10 -0
  18. package/auto-collapsable-list/package.json +3 -0
  19. package/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.d.ts +6 -0
  20. package/auto-collapsable-list/si-auto-collapsable-list-item.directive.d.ts +29 -0
  21. package/auto-collapsable-list/si-auto-collapsable-list-measurable.class.d.ts +16 -0
  22. package/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.d.ts +12 -0
  23. package/auto-collapsable-list/si-auto-collapsable-list.directive.d.ts +47 -0
  24. package/auto-collapsable-list/si-auto-collapsable-list.module.d.ts +10 -0
  25. package/autocomplete/index.d.ts +8 -0
  26. package/autocomplete/package.json +3 -0
  27. package/autocomplete/si-autocomplete-listbox.directive.d.ts +31 -0
  28. package/autocomplete/si-autocomplete-option.directive.d.ts +31 -0
  29. package/autocomplete/si-autocomplete.directive.d.ts +14 -0
  30. package/autocomplete/si-autocomplete.model.d.ts +7 -0
  31. package/autocomplete/si-autocomplete.module.d.ts +9 -0
  32. package/badge/index.d.ts +5 -0
  33. package/badge/package.json +3 -0
  34. package/badge/si-badge.component.d.ts +17 -0
  35. package/color-picker/index.d.ts +5 -0
  36. package/color-picker/package.json +3 -0
  37. package/color-picker/si-color-picker.component.d.ts +61 -0
  38. package/common/models/menu.model.d.ts +2 -2
  39. package/connection-strength/index.d.ts +6 -0
  40. package/connection-strength/package.json +3 -0
  41. package/connection-strength/si-connection-strength.component.d.ts +19 -0
  42. package/connection-strength/si-connection-strength.module.d.ts +7 -0
  43. package/content-action-bar/index.d.ts +7 -0
  44. package/content-action-bar/package.json +3 -0
  45. package/content-action-bar/si-content-action-bar-toggle.component.d.ts +6 -0
  46. package/content-action-bar/si-content-action-bar.component.d.ts +72 -0
  47. package/content-action-bar/si-content-action-bar.model.d.ts +9 -0
  48. package/content-action-bar/si-content-action-bar.module.d.ts +7 -0
  49. package/copyright-notice/index.d.ts +7 -0
  50. package/copyright-notice/package.json +3 -0
  51. package/copyright-notice/si-copyright-notice.component.d.ts +18 -0
  52. package/copyright-notice/si-copyright-notice.d.ts +23 -0
  53. package/copyright-notice/si-copyright-notice.module.d.ts +7 -0
  54. package/empty-state/index.d.ts +6 -0
  55. package/empty-state/package.json +3 -0
  56. package/empty-state/si-empty-state.component.d.ts +18 -0
  57. package/empty-state/si-empty-state.module.d.ts +7 -0
  58. package/fesm2022/siemens-element-ng-accordion.mjs +314 -0
  59. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -0
  60. package/fesm2022/siemens-element-ng-action-modal.mjs +363 -0
  61. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -0
  62. package/fesm2022/siemens-element-ng-application-header.mjs +2 -2
  63. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  64. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +312 -0
  65. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -0
  66. package/fesm2022/siemens-element-ng-autocomplete.mjs +235 -0
  67. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -0
  68. package/fesm2022/siemens-element-ng-badge.mjs +59 -0
  69. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -0
  70. package/fesm2022/siemens-element-ng-color-picker.mjs +176 -0
  71. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -0
  72. package/fesm2022/siemens-element-ng-common.mjs +1 -1
  73. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-connection-strength.mjs +58 -0
  75. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -0
  76. package/fesm2022/siemens-element-ng-content-action-bar.mjs +200 -0
  77. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -0
  78. package/fesm2022/siemens-element-ng-copyright-notice.mjs +71 -0
  79. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -0
  80. package/fesm2022/siemens-element-ng-empty-state.mjs +59 -0
  81. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -0
  82. package/fesm2022/siemens-element-ng-footer.mjs +55 -0
  83. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -0
  84. package/fesm2022/siemens-element-ng-form.mjs +827 -0
  85. package/fesm2022/siemens-element-ng-form.mjs.map +1 -0
  86. package/fesm2022/siemens-element-ng-icon-status.mjs +65 -0
  87. package/fesm2022/siemens-element-ng-icon-status.mjs.map +1 -0
  88. package/fesm2022/siemens-element-ng-icon.mjs +19 -2
  89. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  90. package/fesm2022/siemens-element-ng-inline-notification.mjs +82 -0
  91. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -0
  92. package/fesm2022/siemens-element-ng-language-switcher.mjs +90 -0
  93. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -0
  94. package/fesm2022/siemens-element-ng-loading-spinner.mjs +248 -0
  95. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -0
  96. package/fesm2022/siemens-element-ng-menu.mjs +350 -0
  97. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -0
  98. package/fesm2022/siemens-element-ng-modal.mjs +345 -0
  99. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -0
  100. package/fesm2022/siemens-element-ng-number-input.mjs +267 -0
  101. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -0
  102. package/fesm2022/siemens-element-ng-pagination.mjs +145 -0
  103. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -0
  104. package/fesm2022/siemens-element-ng-password-strength.mjs +177 -0
  105. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -0
  106. package/fesm2022/siemens-element-ng-password-toggle.mjs +88 -0
  107. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -0
  108. package/fesm2022/siemens-element-ng-pills-input.mjs +397 -0
  109. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -0
  110. package/fesm2022/siemens-element-ng-popover-next.mjs +259 -0
  111. package/fesm2022/siemens-element-ng-popover-next.mjs.map +1 -0
  112. package/fesm2022/siemens-element-ng-popover.mjs +256 -0
  113. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -0
  114. package/fesm2022/siemens-element-ng-progressbar.mjs +83 -0
  115. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -0
  116. package/fesm2022/siemens-element-ng-select.mjs +1166 -0
  117. package/fesm2022/siemens-element-ng-select.mjs.map +1 -0
  118. package/fesm2022/siemens-element-ng-skip-links.mjs +117 -0
  119. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -0
  120. package/fesm2022/siemens-element-ng-summary-chip.mjs +77 -0
  121. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -0
  122. package/fesm2022/siemens-element-ng-summary-widget.mjs +77 -0
  123. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -0
  124. package/fesm2022/siemens-element-ng-toast-notification.mjs +227 -0
  125. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -0
  126. package/fesm2022/siemens-element-ng-tooltip.mjs +233 -0
  127. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -0
  128. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-typeahead.mjs +746 -0
  130. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -0
  131. package/fesm2022/siemens-element-ng-wizard.mjs +465 -0
  132. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -0
  133. package/footer/index.d.ts +6 -0
  134. package/footer/package.json +3 -0
  135. package/footer/si-footer.component.d.ts +14 -0
  136. package/footer/si-footer.module.d.ts +7 -0
  137. package/form/form-fieldset/si-form-fieldset.component.d.ts +40 -0
  138. package/form/index.d.ts +14 -0
  139. package/form/package.json +3 -0
  140. package/form/si-form-container/si-form-container.component.d.ts +155 -0
  141. package/form/si-form-item/si-form-field-native.control.d.ts +22 -0
  142. package/form/si-form-item/si-form-item.component.d.ts +90 -0
  143. package/form/si-form-item-control-input.directive.d.ts +18 -0
  144. package/form/si-form-item.control.d.ts +35 -0
  145. package/form/si-form-validation-error.model.d.ts +55 -0
  146. package/form/si-form-validation-error.provider.d.ts +11 -0
  147. package/form/si-form-validation-error.service.d.ts +42 -0
  148. package/form/si-form-validation-tooltip/si-form-validation-tooltip.component.d.ts +13 -0
  149. package/form/si-form-validation-tooltip/si-form-validation-tooltip.directive.d.ts +42 -0
  150. package/form/si-form.module.d.ts +25 -0
  151. package/icon/element-icons.d.ts +17 -0
  152. package/icon-status/index.d.ts +6 -0
  153. package/icon-status/package.json +3 -0
  154. package/icon-status/si-icon-status.component.d.ts +24 -0
  155. package/icon-status/si-icon-status.module.d.ts +7 -0
  156. package/inline-notification/index.d.ts +6 -0
  157. package/inline-notification/package.json +3 -0
  158. package/inline-notification/si-inline-notification.component.d.ts +42 -0
  159. package/inline-notification/si-inline-notification.module.d.ts +7 -0
  160. package/language-switcher/index.d.ts +7 -0
  161. package/language-switcher/iso-language-value.d.ts +14 -0
  162. package/language-switcher/package.json +3 -0
  163. package/language-switcher/si-language-switcher.component.d.ts +32 -0
  164. package/language-switcher/si-language-switcher.module.d.ts +7 -0
  165. package/loading-spinner/index.d.ts +9 -0
  166. package/loading-spinner/package.json +3 -0
  167. package/loading-spinner/si-loading-button.component.d.ts +31 -0
  168. package/loading-spinner/si-loading-spinner.component.d.ts +32 -0
  169. package/loading-spinner/si-loading-spinner.directive.d.ts +36 -0
  170. package/loading-spinner/si-loading-spinner.module.d.ts +8 -0
  171. package/loading-spinner/si-loading-spinner.service.d.ts +18 -0
  172. package/menu/index.d.ts +15 -0
  173. package/menu/package.json +3 -0
  174. package/menu/si-menu-action.service.d.ts +13 -0
  175. package/menu/si-menu-bar.directive.d.ts +12 -0
  176. package/menu/si-menu-divider.directive.d.ts +5 -0
  177. package/menu/si-menu-factory-item-guard.directive.d.ts +11 -0
  178. package/menu/si-menu-factory.component.d.ts +15 -0
  179. package/menu/si-menu-header.directive.d.ts +5 -0
  180. package/menu/si-menu-item-base.directive.d.ts +16 -0
  181. package/menu/si-menu-item-checkbox.component.d.ts +10 -0
  182. package/menu/si-menu-item-radio.component.d.ts +10 -0
  183. package/menu/si-menu-item.component.d.ts +10 -0
  184. package/menu/si-menu-model.d.ts +91 -0
  185. package/menu/si-menu.directive.d.ts +6 -0
  186. package/menu/si-menu.module.d.ts +14 -0
  187. package/modal/index.d.ts +7 -0
  188. package/modal/modal.helpers.d.ts +8 -0
  189. package/modal/modalref.d.ts +64 -0
  190. package/modal/package.json +3 -0
  191. package/modal/si-modal.component.d.ts +32 -0
  192. package/modal/si-modal.service.d.ts +57 -0
  193. package/number-input/index.d.ts +6 -0
  194. package/number-input/package.json +3 -0
  195. package/number-input/si-number-input.component.d.ts +106 -0
  196. package/number-input/si-number-input.module.d.ts +7 -0
  197. package/package.json +139 -3
  198. package/pagination/index.d.ts +6 -0
  199. package/pagination/package.json +3 -0
  200. package/pagination/si-pagination.component.d.ts +65 -0
  201. package/pagination/si-pagination.module.d.ts +7 -0
  202. package/password-strength/index.d.ts +7 -0
  203. package/password-strength/package.json +3 -0
  204. package/password-strength/si-password-strength.component.d.ts +25 -0
  205. package/password-strength/si-password-strength.directive.d.ts +54 -0
  206. package/password-strength/si-password-strength.module.d.ts +8 -0
  207. package/password-toggle/index.d.ts +6 -0
  208. package/password-toggle/package.json +3 -0
  209. package/password-toggle/si-password-toggle.component.d.ts +39 -0
  210. package/password-toggle/si-password-toggle.module.d.ts +7 -0
  211. package/pills-input/index.d.ts +9 -0
  212. package/pills-input/package.json +3 -0
  213. package/pills-input/si-input-pill.component.d.ts +9 -0
  214. package/pills-input/si-pills-input-csv.directive.d.ts +8 -0
  215. package/pills-input/si-pills-input-email.directive.d.ts +10 -0
  216. package/pills-input/si-pills-input-pattern-base.d.ts +19 -0
  217. package/pills-input/si-pills-input-value-handler.d.ts +12 -0
  218. package/pills-input/si-pills-input.component.d.ts +87 -0
  219. package/pills-input/si-pills-input.module.d.ts +9 -0
  220. package/popover/index.d.ts +6 -0
  221. package/popover/package.json +3 -0
  222. package/popover/si-popover.component.d.ts +26 -0
  223. package/popover/si-popover.directive.d.ts +89 -0
  224. package/popover/si-popover.module.d.ts +7 -0
  225. package/popover-next/index.d.ts +7 -0
  226. package/popover-next/package.json +3 -0
  227. package/popover-next/si-popover-description.directive.d.ts +7 -0
  228. package/popover-next/si-popover-next.directive.d.ts +61 -0
  229. package/popover-next/si-popover-title.directive.d.ts +7 -0
  230. package/popover-next/si-popover.component.d.ts +27 -0
  231. package/progressbar/index.d.ts +6 -0
  232. package/progressbar/package.json +3 -0
  233. package/progressbar/si-progressbar.component.d.ts +43 -0
  234. package/progressbar/si-progressbar.module.d.ts +7 -0
  235. package/select/index.d.ts +18 -0
  236. package/select/options/si-select-complex-options.directive.d.ts +69 -0
  237. package/select/options/si-select-lazy-options.directive.d.ts +38 -0
  238. package/select/options/si-select-option.source.d.ts +49 -0
  239. package/select/options/si-select-options-strategy.base.d.ts +35 -0
  240. package/select/options/si-select-options-strategy.d.ts +37 -0
  241. package/select/options/si-select-simple-options.directive.d.ts +34 -0
  242. package/select/package.json +3 -0
  243. package/select/select-input/si-select-input.component.d.ts +43 -0
  244. package/select/select-list/si-select-list-has-filter.component.d.ts +20 -0
  245. package/select/select-list/si-select-list.base.d.ts +37 -0
  246. package/select/select-list/si-select-list.component.d.ts +15 -0
  247. package/select/select-option/si-select-option-row.component.d.ts +16 -0
  248. package/select/select-option/si-select-option.component.d.ts +9 -0
  249. package/select/selection/si-select-multi-value.directive.d.ts +26 -0
  250. package/select/selection/si-select-selection-strategy.d.ts +58 -0
  251. package/select/selection/si-select-single-value.directive.d.ts +26 -0
  252. package/select/si-select-action.directive.d.ts +12 -0
  253. package/select/si-select-actions.directive.d.ts +5 -0
  254. package/select/si-select-group-template.directive.d.ts +20 -0
  255. package/select/si-select-option-row-template.directive.d.ts +9 -0
  256. package/select/si-select-option-template.directive.d.ts +21 -0
  257. package/select/si-select.component.d.ts +96 -0
  258. package/select/si-select.module.d.ts +15 -0
  259. package/select/si-select.types.d.ts +65 -0
  260. package/skip-links/index.d.ts +5 -0
  261. package/skip-links/package.json +3 -0
  262. package/skip-links/si-skip-link-target.directive.d.ts +27 -0
  263. package/skip-links/si-skip-links.component.d.ts +9 -0
  264. package/skip-links/skip-link.service.d.ts +14 -0
  265. package/summary-chip/index.d.ts +5 -0
  266. package/summary-chip/package.json +3 -0
  267. package/summary-chip/si-summary-chip.component.d.ts +44 -0
  268. package/summary-widget/index.d.ts +5 -0
  269. package/summary-widget/package.json +3 -0
  270. package/summary-widget/si-summary-widget.component.d.ts +44 -0
  271. package/template-i18n.json +47 -1
  272. package/toast-notification/index.d.ts +6 -0
  273. package/toast-notification/package.json +3 -0
  274. package/toast-notification/si-toast-notification/si-toast-notification.component.d.ts +17 -0
  275. package/toast-notification/si-toast-notification-drawer/si-toast-notification-drawer.component.d.ts +9 -0
  276. package/toast-notification/si-toast-notification.service.d.ts +41 -0
  277. package/toast-notification/si-toast.model.d.ts +25 -0
  278. package/tooltip/index.d.ts +7 -0
  279. package/tooltip/package.json +3 -0
  280. package/tooltip/si-tooltip.component.d.ts +25 -0
  281. package/tooltip/si-tooltip.directive.d.ts +45 -0
  282. package/tooltip/si-tooltip.module.d.ts +7 -0
  283. package/tooltip/si-tooltip.service.d.ts +44 -0
  284. package/translate/si-translatable-keys.interface.d.ts +46 -0
  285. package/typeahead/index.d.ts +8 -0
  286. package/typeahead/package.json +3 -0
  287. package/typeahead/si-typeahead-item-template.directive.d.ts +7 -0
  288. package/typeahead/si-typeahead.component.d.ts +22 -0
  289. package/typeahead/si-typeahead.directive.d.ts +196 -0
  290. package/typeahead/si-typeahead.model.d.ts +60 -0
  291. package/typeahead/si-typeahead.module.d.ts +8 -0
  292. package/typeahead/si-typeahead.sorting.d.ts +10 -0
  293. package/wizard/index.d.ts +7 -0
  294. package/wizard/package.json +3 -0
  295. package/wizard/si-wizard-step.component.d.ts +21 -0
  296. package/wizard/si-wizard.component.d.ts +196 -0
  297. package/wizard/si-wizard.module.d.ts +8 -0
@@ -0,0 +1,363 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, inject, ChangeDetectionStrategy, Component, booleanAttribute, Injectable } from '@angular/core';
3
+ import { ModalRef, SiModalService, createModalConfig } from '@siemens/element-ng/modal';
4
+ import { take, Observable, switchMap } from 'rxjs';
5
+ import { AsyncPipe } from '@angular/common';
6
+ import { SiIconNextComponent } from '@siemens/element-ng/icon';
7
+ import { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';
8
+ import * as i1 from '@siemens/element-translate-ng/translate';
9
+ import { SiTranslateModule } from '@siemens/element-translate-ng/translate';
10
+
11
+ /**
12
+ * Copyright Siemens 2016 - 2025.
13
+ * SPDX-License-Identifier: MIT
14
+ */
15
+ class SiAlertDialogComponent {
16
+ titleId = input();
17
+ /** @defaultValue '' */
18
+ heading = input('');
19
+ /** @defaultValue '' */
20
+ message = input('');
21
+ /**
22
+ * @defaultValue
23
+ * ```
24
+ * $localize`:@@SI_ALERT_DIALOG.OK:OK`
25
+ * ```
26
+ */
27
+ confirmBtnName = input($localize `:@@SI_ALERT_DIALOG.OK:OK`);
28
+ /**
29
+ * @defaultValue
30
+ * ```
31
+ * {}
32
+ * ```
33
+ */
34
+ translationParams = input({});
35
+ /** @defaultValue '' */
36
+ icon = input('');
37
+ modalRef = inject((ModalRef));
38
+ loading$ = this.modalRef.message.pipe(take(1));
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiAlertDialogComponent, isStandalone: true, selector: "si-alert-dialog", inputs: { titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, confirmBtnName: { classPropertyName: "confirmBtnName", publicName: "confirmBtnName", isSignal: true, isRequired: false, transformFunction: null }, translationParams: { classPropertyName: "translationParams", publicName: "translationParams", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"confirmBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'confirm'\"\n [loading]=\"loading === 'confirm'\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n {{ confirmBtnName() | translate }}\n </si-loading-button>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "component", type: SiLoadingButtonComponent, selector: "si-loading-button", inputs: ["disabled", "loading", "type", "ariaLabel", "ariaLabelledBy", "buttonClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiAlertDialogComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'si-alert-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent], template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"confirmBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'confirm'\"\n [loading]=\"loading === 'confirm'\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n {{ confirmBtnName() | translate }}\n </si-loading-button>\n</div>\n" }]
45
+ }] });
46
+
47
+ /**
48
+ * Copyright Siemens 2016 - 2025.
49
+ * SPDX-License-Identifier: MIT
50
+ */
51
+ class SiConfirmationDialogComponent {
52
+ titleId = input();
53
+ /** @defaultValue '' */
54
+ heading = input('');
55
+ /** @defaultValue '' */
56
+ message = input('');
57
+ /**
58
+ * @defaultValue
59
+ * ```
60
+ * $localize`:@@SI_CONFIRMATION_DIALOG.YES:Yes`
61
+ * ```
62
+ */
63
+ confirmBtnName = input($localize `:@@SI_CONFIRMATION_DIALOG.YES:Yes`);
64
+ /**
65
+ * @defaultValue
66
+ * ```
67
+ * $localize`:@@SI_CONFIRMATION_DIALOG.NO:No`
68
+ * ```
69
+ */
70
+ declineBtnName = input($localize `:@@SI_CONFIRMATION_DIALOG.NO:No`);
71
+ /**
72
+ * @defaultValue
73
+ * ```
74
+ * {}
75
+ * ```
76
+ */
77
+ translationParams = input({});
78
+ /** @defaultValue '' */
79
+ icon = input('');
80
+ modalRef = inject((ModalRef));
81
+ loading$ = this.modalRef.message.pipe(take(1));
82
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiConfirmationDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiConfirmationDialogComponent, isStandalone: true, selector: "si-confirmation-dialog", inputs: { titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, confirmBtnName: { classPropertyName: "confirmBtnName", publicName: "confirmBtnName", isSignal: true, isRequired: false, transformFunction: null }, declineBtnName: { classPropertyName: "declineBtnName", publicName: "declineBtnName", isSignal: true, isRequired: false, transformFunction: null }, translationParams: { classPropertyName: "translationParams", publicName: "translationParams", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"declineBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('decline')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'decline'\"\n [loading]=\"loading === 'decline'\"\n (click)=\"modalRef.messageOrHide('decline')\"\n >\n {{ declineBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'confirm'\"\n [loading]=\"loading === 'confirm'\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n {{ confirmBtnName() | translate }}\n </si-loading-button>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "component", type: SiLoadingButtonComponent, selector: "si-loading-button", inputs: ["disabled", "loading", "type", "ariaLabel", "ariaLabelledBy", "buttonClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiConfirmationDialogComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'si-confirmation-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent], template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"declineBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('decline')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'decline'\"\n [loading]=\"loading === 'decline'\"\n (click)=\"modalRef.messageOrHide('decline')\"\n >\n {{ declineBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'confirm'\"\n [loading]=\"loading === 'confirm'\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n {{ confirmBtnName() | translate }}\n </si-loading-button>\n</div>\n" }]
88
+ }] });
89
+
90
+ /**
91
+ * Copyright Siemens 2016 - 2025.
92
+ * SPDX-License-Identifier: MIT
93
+ */
94
+ class SiDeleteConfirmationDialogComponent {
95
+ titleId = input();
96
+ /** @defaultValue '' */
97
+ heading = input('');
98
+ /**
99
+ * @defaultValue
100
+ * ```
101
+ * $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.MESSAGE:Do you really want to delete the selected elements?`
102
+ * ```
103
+ */
104
+ message = input($localize `:@@SI_DELETE_CONFIRMATION_DIALOG.MESSAGE:Do you really want to delete the selected elements?`);
105
+ /**
106
+ * @defaultValue
107
+ * ```
108
+ * $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN:Delete`
109
+ * ```
110
+ */
111
+ deleteBtnName = input($localize `:@@SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN:Delete`);
112
+ /**
113
+ * @defaultValue
114
+ * ```
115
+ * $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN:Cancel`
116
+ * ```
117
+ */
118
+ cancelBtnName = input($localize `:@@SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN:Cancel`);
119
+ /**
120
+ * @defaultValue
121
+ * ```
122
+ * {}
123
+ * ```
124
+ */
125
+ translationParams = input({});
126
+ /** @defaultValue '' */
127
+ icon = input('');
128
+ modalRef = inject((ModalRef));
129
+ loading$ = this.modalRef.message.pipe(take(1));
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiDeleteConfirmationDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiDeleteConfirmationDialogComponent, isStandalone: true, selector: "si-delete-confirmation-dialog", inputs: { titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, deleteBtnName: { classPropertyName: "deleteBtnName", publicName: "deleteBtnName", isSignal: true, isRequired: false, transformFunction: null }, cancelBtnName: { classPropertyName: "cancelBtnName", publicName: "cancelBtnName", isSignal: true, isRequired: false, transformFunction: null }, translationParams: { classPropertyName: "translationParams", publicName: "translationParams", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'cancel'\"\n [loading]=\"loading === 'cancel'\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n {{ cancelBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-danger\"\n [disabled]=\"!!loading && loading !== 'delete'\"\n [loading]=\"loading === 'delete'\"\n (click)=\"modalRef.messageOrHide('delete')\"\n >\n {{ deleteBtnName() | translate }}\n </si-loading-button>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "component", type: SiLoadingButtonComponent, selector: "si-loading-button", inputs: ["disabled", "loading", "type", "ariaLabel", "ariaLabelledBy", "buttonClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiDeleteConfirmationDialogComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'si-delete-confirmation-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent], template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'cancel'\"\n [loading]=\"loading === 'cancel'\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n {{ cancelBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-danger\"\n [disabled]=\"!!loading && loading !== 'delete'\"\n [loading]=\"loading === 'delete'\"\n (click)=\"modalRef.messageOrHide('delete')\"\n >\n {{ deleteBtnName() | translate }}\n </si-loading-button>\n</div>\n" }]
136
+ }] });
137
+
138
+ /**
139
+ * Copyright Siemens 2016 - 2025.
140
+ * SPDX-License-Identifier: MIT
141
+ */
142
+ class SiEditDiscardDialogComponent {
143
+ titleId = input();
144
+ /** @defaultValue '' */
145
+ heading = input('');
146
+ /**
147
+ * @defaultValue
148
+ * ```
149
+ * $localize`:@@SI_EDIT_DISCARD_DIALOG.MESSAGE:Do you want to save changes to the modified element?`
150
+ * ```
151
+ */
152
+ message = input($localize `:@@SI_EDIT_DISCARD_DIALOG.MESSAGE:Do you want to save changes to the modified element?`);
153
+ /**
154
+ * @defaultValue
155
+ * ```
156
+ * $localize`:@@SI_EDIT_DISCARD_DIALOG.SAVE_BTN:Save`
157
+ * ```
158
+ */
159
+ saveBtnName = input($localize `:@@SI_EDIT_DISCARD_DIALOG.SAVE_BTN:Save`);
160
+ /**
161
+ * @defaultValue
162
+ * ```
163
+ * $localize`:@@SI_EDIT_DISCARD_DIALOG.DISCARD_BTN:Don't save`
164
+ * ```
165
+ */
166
+ discardBtnName = input($localize `:@@SI_EDIT_DISCARD_DIALOG.DISCARD_BTN:Don't save`);
167
+ /**
168
+ * @defaultValue
169
+ * ```
170
+ * $localize`:@@SI_EDIT_DISCARD_DIALOG.CANCEL_BTN:Cancel`
171
+ * ```
172
+ */
173
+ cancelBtnName = input($localize `:@@SI_EDIT_DISCARD_DIALOG.CANCEL_BTN:Cancel`);
174
+ /** @defaultValue false */
175
+ disableSave = input(false, { transform: booleanAttribute });
176
+ /**
177
+ * @defaultValue
178
+ * ```
179
+ * $localize`:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE:Do you want to discard the changes`
180
+ * ```
181
+ */
182
+ disableSaveMessage = input($localize `:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE:Do you want to discard the changes`);
183
+ /**
184
+ * @defaultValue
185
+ * ```
186
+ * $localize`:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN:Discard`
187
+ * ```
188
+ */
189
+ disableSaveDiscardBtnName = input($localize `:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN:Discard`);
190
+ /**
191
+ * @defaultValue
192
+ * ```
193
+ * {}
194
+ * ```
195
+ */
196
+ translationParams = input({});
197
+ /** @defaultValue '' */
198
+ icon = input('');
199
+ modalRef = inject((ModalRef));
200
+ loading$ = this.modalRef.message.pipe(take(1));
201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiEditDiscardDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
202
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiEditDiscardDialogComponent, isStandalone: true, selector: "si-edit-discard-dialog", inputs: { titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, saveBtnName: { classPropertyName: "saveBtnName", publicName: "saveBtnName", isSignal: true, isRequired: false, transformFunction: null }, discardBtnName: { classPropertyName: "discardBtnName", publicName: "discardBtnName", isSignal: true, isRequired: false, transformFunction: null }, cancelBtnName: { classPropertyName: "cancelBtnName", publicName: "cancelBtnName", isSignal: true, isRequired: false, transformFunction: null }, disableSave: { classPropertyName: "disableSave", publicName: "disableSave", isSignal: true, isRequired: false, transformFunction: null }, disableSaveMessage: { classPropertyName: "disableSaveMessage", publicName: "disableSaveMessage", isSignal: true, isRequired: false, transformFunction: null }, disableSaveDiscardBtnName: { classPropertyName: "disableSaveDiscardBtnName", publicName: "disableSaveDiscardBtnName", isSignal: true, isRequired: false, transformFunction: null }, translationParams: { classPropertyName: "translationParams", publicName: "translationParams", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n (!disableSave() ? message() : disableSaveMessage()) | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'cancel'\"\n [loading]=\"loading === 'cancel'\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n {{ cancelBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-danger\"\n [disabled]=\"!!loading && loading !== 'discard'\"\n [loading]=\"loading === 'discard'\"\n (click)=\"modalRef.messageOrHide('discard')\"\n >\n {{ (!disableSave() ? discardBtnName() : disableSaveDiscardBtnName()) | translate }}\n </si-loading-button>\n @if (!disableSave()) {\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'save'\"\n [loading]=\"loading === 'save'\"\n (click)=\"modalRef.messageOrHide('save')\"\n >\n {{ saveBtnName() | translate }}\n </si-loading-button>\n }\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1.SiTranslatePipe, name: "translate" }, { kind: "component", type: SiLoadingButtonComponent, selector: "si-loading-button", inputs: ["disabled", "loading", "type", "ariaLabel", "ariaLabelledBy", "buttonClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiEditDiscardDialogComponent, decorators: [{
205
+ type: Component,
206
+ args: [{ selector: 'si-edit-discard-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent], template: "@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n (!disableSave() ? message() : disableSaveMessage()) | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'cancel'\"\n [loading]=\"loading === 'cancel'\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n {{ cancelBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-danger\"\n [disabled]=\"!!loading && loading !== 'discard'\"\n [loading]=\"loading === 'discard'\"\n (click)=\"modalRef.messageOrHide('discard')\"\n >\n {{ (!disableSave() ? discardBtnName() : disableSaveDiscardBtnName()) | translate }}\n </si-loading-button>\n @if (!disableSave()) {\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'save'\"\n [loading]=\"loading === 'save'\"\n (click)=\"modalRef.messageOrHide('save')\"\n >\n {{ saveBtnName() | translate }}\n </si-loading-button>\n }\n</div>\n" }]
207
+ }] });
208
+
209
+ /**
210
+ * Copyright Siemens 2016 - 2025.
211
+ * SPDX-License-Identifier: MIT
212
+ */
213
+ const ACTION_DIALOG_COMPONENT = {
214
+ 'alert': SiAlertDialogComponent,
215
+ 'confirmation': SiConfirmationDialogComponent,
216
+ 'delete-confirm': SiDeleteConfirmationDialogComponent,
217
+ 'edit-discard': SiEditDiscardDialogComponent
218
+ };
219
+ const ACTION_DIALOG_DEFAULT_CLOSE_VALUE = {
220
+ 'alert': 'confirm',
221
+ 'confirmation': 'decline',
222
+ 'delete-confirm': 'cancel',
223
+ 'edit-discard': 'cancel'
224
+ };
225
+ /**
226
+ * The service provides convenient methods to show common modal dialogs.
227
+ * All return an observable, which emit the dialog results. After emitting,
228
+ * the observables complete. Therefore, clients do not need to unsubscribe.
229
+ */
230
+ class SiActionDialogService {
231
+ modalService = inject(SiModalService);
232
+ /**
233
+ * Show an alert dialog.
234
+ * @deprecated use `showActionDialog({ type: 'alert', ... })` instead
235
+ */
236
+ showAlertDialog(message, heading, confirmBtnName, translationParams, icon, diOptions) {
237
+ return this.showActionDialog({
238
+ type: 'alert',
239
+ icon,
240
+ message,
241
+ heading,
242
+ confirmBtnName,
243
+ translationParams
244
+ }, diOptions);
245
+ }
246
+ /**
247
+ * Show a confirmation dialog.
248
+ * @deprecated use `showActionDialog({ type: 'confirmation', ... })` instead
249
+ */
250
+ showConfirmationDialog(message, heading, confirmBtnName, declineBtnName, translationParams, icon, diOptions) {
251
+ return this.showActionDialog({
252
+ type: 'confirmation',
253
+ icon,
254
+ message,
255
+ heading,
256
+ confirmBtnName,
257
+ declineBtnName,
258
+ translationParams
259
+ }, diOptions);
260
+ }
261
+ /**
262
+ * Show an edit dialog with the option to discard.
263
+ * @deprecated use `showActionDialog({ type: 'edit-discard', ... })` instead
264
+ */
265
+ showEditDiscardDialog(disableSave, message, heading, saveBtnName, discardBtnName, cancelBtnName, disableSaveMessage, disableSaveDiscardBtnName, translationParams, icon, diOptions) {
266
+ return this.showActionDialog({
267
+ type: 'edit-discard',
268
+ message,
269
+ heading,
270
+ icon,
271
+ disableSave,
272
+ saveBtnName,
273
+ cancelBtnName,
274
+ discardBtnName,
275
+ disableSaveMessage,
276
+ disableSaveDiscardBtnName,
277
+ translationParams
278
+ }, diOptions);
279
+ }
280
+ /**
281
+ * Show a dialog confirming a deletion.
282
+ * @deprecated use `showActionDialog({ type: 'delete-confirm', ... })` instead
283
+ */
284
+ showDeleteConfirmationDialog(message, heading, deleteBtnName, cancelBtnName, translationParams, icon, diOptions) {
285
+ return this.showActionDialog({
286
+ type: 'delete-confirm',
287
+ icon,
288
+ message,
289
+ heading,
290
+ deleteBtnName,
291
+ cancelBtnName,
292
+ translationParams
293
+ }, diOptions);
294
+ }
295
+ /**
296
+ * Shows an action dialog
297
+ * @param dialog - The dialog configuration
298
+ * @param diOptions - Optional DI configuration.
299
+ * @returns Observable for the result of the dialog. Need to `subscribe()` to show the dialog
300
+ */
301
+ showActionDialog(dialog, diOptions) {
302
+ return new Observable(subscriber => {
303
+ const { type, delayDismiss, ...inputs } = dialog;
304
+ const config = createModalConfig(inputs);
305
+ config.keyboard = true;
306
+ config.messageInsteadOfAutoHide = !!delayDismiss;
307
+ Object.assign(config, diOptions);
308
+ const modalRef = this.modalService.show(ACTION_DIALOG_COMPONENT[type], config, ACTION_DIALOG_DEFAULT_CLOSE_VALUE[type]);
309
+ let subscription;
310
+ if (delayDismiss) {
311
+ // `any`because TS cannot infer types correctly
312
+ subscription = modalRef.message
313
+ .pipe(take(1), switchMap(delayDismiss))
314
+ .subscribe(modalRef.hide);
315
+ }
316
+ // ModalRef always allows emitting undefined. But we know that we don't emit undefined here, so do typecast.
317
+ modalRef.hidden.subscribe(subscriber);
318
+ return () => {
319
+ subscription?.unsubscribe();
320
+ modalRef.detach();
321
+ };
322
+ });
323
+ }
324
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiActionDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
325
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiActionDialogService, providedIn: 'root' });
326
+ }
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiActionDialogService, decorators: [{
328
+ type: Injectable,
329
+ args: [{ providedIn: 'root' }]
330
+ }] });
331
+
332
+ /** @deprecated Will be removed in a future release. Use the string values directly. */
333
+ const AlertDialogResult = {
334
+ Confirm: 'confirm'
335
+ };
336
+ /** @deprecated Will be removed in a future release. Use the string values directly. */
337
+ const EditDiscardDialogResult = {
338
+ Save: 'save',
339
+ Discard: 'discard',
340
+ Cancel: 'cancel'
341
+ };
342
+ /** @deprecated Will be removed in a future release. Use the string values directly. */
343
+ const ConfirmationDialogResult = {
344
+ Confirm: 'confirm',
345
+ Decline: 'decline'
346
+ };
347
+ /** @deprecated Will be removed in a future release. Use the string values directly. */
348
+ const DeleteConfirmationDialogResult = {
349
+ Delete: 'delete',
350
+ Cancel: 'cancel'
351
+ };
352
+
353
+ /**
354
+ * Copyright Siemens 2016 - 2025.
355
+ * SPDX-License-Identifier: MIT
356
+ */
357
+
358
+ /**
359
+ * Generated bundle index. Do not edit.
360
+ */
361
+
362
+ export { AlertDialogResult, ConfirmationDialogResult, DeleteConfirmationDialogResult, EditDiscardDialogResult, SiActionDialogService };
363
+ //# sourceMappingURL=siemens-element-ng-action-modal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siemens-element-ng-action-modal.mjs","sources":["../../../../projects/element-ng/action-modal/si-alert-dialog/si-alert-dialog.component.ts","../../../../projects/element-ng/action-modal/si-alert-dialog/si-alert-dialog.component.html","../../../../projects/element-ng/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.ts","../../../../projects/element-ng/action-modal/si-confirmation-dialog/si-confirmation-dialog.component.html","../../../../projects/element-ng/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.ts","../../../../projects/element-ng/action-modal/si-delete-confirmation-dialog/si-delete-confirmation-dialog.component.html","../../../../projects/element-ng/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.ts","../../../../projects/element-ng/action-modal/si-edit-discard-dialog/si-edit-discard-dialog.component.html","../../../../projects/element-ng/action-modal/si-action-dialog.service.ts","../../../../projects/element-ng/action-modal/si-action-dialog.types.ts","../../../../projects/element-ng/action-modal/index.ts","../../../../projects/element-ng/action-modal/siemens-element-ng-action-modal.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { take } from 'rxjs';\n\nimport { AlertDialogResult } from '../si-action-dialog.types';\n\n@Component({\n selector: 'si-alert-dialog',\n templateUrl: './si-alert-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent]\n})\nexport class SiAlertDialogComponent {\n readonly titleId = input<string>();\n /** @defaultValue '' */\n readonly heading = input<TranslatableString>('');\n /** @defaultValue '' */\n readonly message = input<TranslatableString>('');\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_ALERT_DIALOG.OK:OK`\n * ```\n */\n readonly confirmBtnName = input($localize`:@@SI_ALERT_DIALOG.OK:OK`);\n /**\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<{ [key: string]: any }>({});\n /** @defaultValue '' */\n readonly icon = input('');\n\n protected modalRef = inject(ModalRef<SiAlertDialogComponent, AlertDialogResult>);\n protected loading$ = this.modalRef.message.pipe(take(1));\n}\n","@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"confirmBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'confirm'\"\n [loading]=\"loading === 'confirm'\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n {{ confirmBtnName() | translate }}\n </si-loading-button>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { take } from 'rxjs';\n\nimport { ConfirmationDialogResult } from '../si-action-dialog.types';\n\n@Component({\n selector: 'si-confirmation-dialog',\n templateUrl: './si-confirmation-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent]\n})\nexport class SiConfirmationDialogComponent {\n readonly titleId = input<string>();\n /** @defaultValue '' */\n readonly heading = input<TranslatableString>('');\n /** @defaultValue '' */\n readonly message = input<TranslatableString>('');\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_CONFIRMATION_DIALOG.YES:Yes`\n * ```\n */\n readonly confirmBtnName = input($localize`:@@SI_CONFIRMATION_DIALOG.YES:Yes`);\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_CONFIRMATION_DIALOG.NO:No`\n * ```\n */\n readonly declineBtnName = input($localize`:@@SI_CONFIRMATION_DIALOG.NO:No`);\n /**\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<{ [key: string]: any }>({});\n /** @defaultValue '' */\n readonly icon = input('');\n\n protected modalRef = inject(ModalRef<SiConfirmationDialogComponent, ConfirmationDialogResult>);\n protected loading$ = this.modalRef.message.pipe(take(1));\n}\n","@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"declineBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('decline')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'decline'\"\n [loading]=\"loading === 'decline'\"\n (click)=\"modalRef.messageOrHide('decline')\"\n >\n {{ declineBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'confirm'\"\n [loading]=\"loading === 'confirm'\"\n (click)=\"modalRef.messageOrHide('confirm')\"\n >\n {{ confirmBtnName() | translate }}\n </si-loading-button>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { take } from 'rxjs';\n\nimport { DeleteConfirmationDialogResult } from '../si-action-dialog.types';\n\n@Component({\n selector: 'si-delete-confirmation-dialog',\n templateUrl: './si-delete-confirmation-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent]\n})\nexport class SiDeleteConfirmationDialogComponent {\n readonly titleId = input<string>();\n /** @defaultValue '' */\n readonly heading = input<TranslatableString>('');\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.MESSAGE:Do you really want to delete the selected elements?`\n * ```\n */\n readonly message = input(\n $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.MESSAGE:Do you really want to delete the selected elements?`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN:Delete`\n * ```\n */\n readonly deleteBtnName = input($localize`:@@SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN:Delete`);\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN:Cancel`\n * ```\n */\n readonly cancelBtnName = input($localize`:@@SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN:Cancel`);\n /**\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<{ [key: string]: any }>({});\n /** @defaultValue '' */\n readonly icon = input('');\n\n protected modalRef = inject(\n ModalRef<SiDeleteConfirmationDialogComponent, DeleteConfirmationDialogResult>\n );\n protected loading$ = this.modalRef.message.pipe(take(1));\n}\n","@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n message() | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'cancel'\"\n [loading]=\"loading === 'cancel'\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n {{ cancelBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-danger\"\n [disabled]=\"!!loading && loading !== 'delete'\"\n [loading]=\"loading === 'delete'\"\n (click)=\"modalRef.messageOrHide('delete')\"\n >\n {{ deleteBtnName() | translate }}\n </si-loading-button>\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { AsyncPipe } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingButtonComponent } from '@siemens/element-ng/loading-spinner';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport { SiTranslateModule, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { take } from 'rxjs';\n\nimport { EditDiscardDialogResult } from '../si-action-dialog.types';\n\n@Component({\n selector: 'si-edit-discard-dialog',\n templateUrl: './si-edit-discard-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, SiIconNextComponent, SiTranslateModule, SiLoadingButtonComponent]\n})\nexport class SiEditDiscardDialogComponent {\n readonly titleId = input<string>();\n /** @defaultValue '' */\n readonly heading = input<TranslatableString>('');\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_EDIT_DISCARD_DIALOG.MESSAGE:Do you want to save changes to the modified element?`\n * ```\n */\n readonly message = input(\n $localize`:@@SI_EDIT_DISCARD_DIALOG.MESSAGE:Do you want to save changes to the modified element?`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_EDIT_DISCARD_DIALOG.SAVE_BTN:Save`\n * ```\n */\n readonly saveBtnName = input($localize`:@@SI_EDIT_DISCARD_DIALOG.SAVE_BTN:Save`);\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_EDIT_DISCARD_DIALOG.DISCARD_BTN:Don't save`\n * ```\n */\n readonly discardBtnName = input($localize`:@@SI_EDIT_DISCARD_DIALOG.DISCARD_BTN:Don't save`);\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_EDIT_DISCARD_DIALOG.CANCEL_BTN:Cancel`\n * ```\n */\n readonly cancelBtnName = input($localize`:@@SI_EDIT_DISCARD_DIALOG.CANCEL_BTN:Cancel`);\n /** @defaultValue false */\n readonly disableSave = input(false, { transform: booleanAttribute });\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE:Do you want to discard the changes`\n * ```\n */\n readonly disableSaveMessage = input<TranslatableString>(\n $localize`:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE:Do you want to discard the changes`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN:Discard`\n * ```\n */\n readonly disableSaveDiscardBtnName = input<TranslatableString>(\n $localize`:@@SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN:Discard`\n );\n /**\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<{ [key: string]: any }>({});\n /** @defaultValue '' */\n readonly icon = input('');\n\n protected modalRef = inject(ModalRef<SiEditDiscardDialogComponent, EditDiscardDialogResult>);\n protected loading$ = this.modalRef.message.pipe(take(1));\n}\n","@let loading = loading$ | async;\n<div class=\"modal-header\">\n @if (icon()) {\n <si-icon-next class=\"icon\" [icon]=\"icon()\" />\n }\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-ghost element-cancel\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n [disabled]=\"!!loading\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n </button>\n</div>\n<div class=\"modal-body text-pre-wrap text-break\">{{\n (!disableSave() ? message() : disableSaveMessage()) | translate: translationParams()\n}}</div>\n<div class=\"modal-footer\">\n <si-loading-button\n buttonClass=\"btn btn-secondary\"\n [disabled]=\"!!loading && loading !== 'cancel'\"\n [loading]=\"loading === 'cancel'\"\n (click)=\"modalRef.messageOrHide('cancel')\"\n >\n {{ cancelBtnName() | translate }}\n </si-loading-button>\n <si-loading-button\n buttonClass=\"btn btn-danger\"\n [disabled]=\"!!loading && loading !== 'discard'\"\n [loading]=\"loading === 'discard'\"\n (click)=\"modalRef.messageOrHide('discard')\"\n >\n {{ (!disableSave() ? discardBtnName() : disableSaveDiscardBtnName()) | translate }}\n </si-loading-button>\n @if (!disableSave()) {\n <si-loading-button\n buttonClass=\"btn btn-primary\"\n [disabled]=\"!!loading && loading !== 'save'\"\n [loading]=\"loading === 'save'\"\n (click)=\"modalRef.messageOrHide('save')\"\n >\n {{ saveBtnName() | translate }}\n </si-loading-button>\n }\n</div>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport {\n createModalConfig,\n ModalDependencyInjectionOptions,\n SiModalService\n} from '@siemens/element-ng/modal';\nimport { Observable, Subscriber, Subscription, switchMap, take } from 'rxjs';\n\nimport {\n ActionDialog,\n ActionDialogReturnType,\n AlertDialogResult,\n ConfirmationDialogResult,\n DeleteConfirmationDialogResult,\n EditDiscardDialogResult\n} from './si-action-dialog.types';\nimport { SiAlertDialogComponent } from './si-alert-dialog/si-alert-dialog.component';\nimport { SiConfirmationDialogComponent } from './si-confirmation-dialog/si-confirmation-dialog.component';\nimport { SiDeleteConfirmationDialogComponent } from './si-delete-confirmation-dialog/si-delete-confirmation-dialog.component';\nimport { SiEditDiscardDialogComponent } from './si-edit-discard-dialog/si-edit-discard-dialog.component';\n\nconst ACTION_DIALOG_COMPONENT: Record<ActionDialog['type'], new (...args: any[]) => any> = {\n 'alert': SiAlertDialogComponent,\n 'confirmation': SiConfirmationDialogComponent,\n 'delete-confirm': SiDeleteConfirmationDialogComponent,\n 'edit-discard': SiEditDiscardDialogComponent\n};\n\nconst ACTION_DIALOG_DEFAULT_CLOSE_VALUE: Record<ActionDialog['type'], string> = {\n 'alert': 'confirm',\n 'confirmation': 'decline',\n 'delete-confirm': 'cancel',\n 'edit-discard': 'cancel'\n};\n\n/**\n * The service provides convenient methods to show common modal dialogs.\n * All return an observable, which emit the dialog results. After emitting,\n * the observables complete. Therefore, clients do not need to unsubscribe.\n */\n@Injectable({ providedIn: 'root' })\nexport class SiActionDialogService {\n private modalService = inject(SiModalService);\n\n /**\n * Show an alert dialog.\n * @deprecated use `showActionDialog({ type: 'alert', ... })` instead\n */\n showAlertDialog(\n message: string,\n heading?: string,\n confirmBtnName?: string,\n translationParams?: { [key: string]: any },\n icon?: string,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<AlertDialogResult> {\n return this.showActionDialog(\n {\n type: 'alert',\n icon,\n message,\n heading,\n confirmBtnName,\n translationParams\n },\n diOptions\n );\n }\n\n /**\n * Show a confirmation dialog.\n * @deprecated use `showActionDialog({ type: 'confirmation', ... })` instead\n */\n showConfirmationDialog(\n message: string,\n heading?: string,\n confirmBtnName?: string,\n declineBtnName?: string,\n translationParams?: { [key: string]: any },\n icon?: string,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<ConfirmationDialogResult> {\n return this.showActionDialog(\n {\n type: 'confirmation',\n icon,\n message,\n heading,\n confirmBtnName,\n declineBtnName,\n translationParams\n },\n diOptions\n );\n }\n\n /**\n * Show an edit dialog with the option to discard.\n * @deprecated use `showActionDialog({ type: 'edit-discard', ... })` instead\n */\n showEditDiscardDialog(\n disableSave?: boolean,\n message?: string,\n heading?: string,\n saveBtnName?: string,\n discardBtnName?: string,\n cancelBtnName?: string,\n disableSaveMessage?: string,\n disableSaveDiscardBtnName?: string,\n translationParams?: { [key: string]: any },\n icon?: string,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<EditDiscardDialogResult> {\n return this.showActionDialog(\n {\n type: 'edit-discard',\n message,\n heading,\n icon,\n disableSave,\n saveBtnName,\n cancelBtnName,\n discardBtnName,\n disableSaveMessage,\n disableSaveDiscardBtnName,\n translationParams\n },\n diOptions\n );\n }\n\n /**\n * Show a dialog confirming a deletion.\n * @deprecated use `showActionDialog({ type: 'delete-confirm', ... })` instead\n */\n showDeleteConfirmationDialog(\n message?: string,\n heading?: string,\n deleteBtnName?: string,\n cancelBtnName?: string,\n translationParams?: { [key: string]: any },\n icon?: string,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<DeleteConfirmationDialogResult> {\n return this.showActionDialog(\n {\n type: 'delete-confirm',\n icon,\n message,\n heading,\n deleteBtnName,\n cancelBtnName,\n translationParams\n },\n diOptions\n );\n }\n\n /**\n * Shows an action dialog\n * @param dialog - The dialog configuration\n * @param diOptions - Optional DI configuration.\n * @returns Observable for the result of the dialog. Need to `subscribe()` to show the dialog\n */\n showActionDialog<T extends ActionDialog>(\n dialog: T,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<ActionDialogReturnType<T>> {\n return new Observable<ActionDialogReturnType<T>>(subscriber => {\n const { type, delayDismiss, ...inputs } = dialog;\n const config = createModalConfig(inputs);\n\n config.keyboard = true;\n config.messageInsteadOfAutoHide = !!delayDismiss;\n Object.assign(config, diOptions);\n\n const modalRef = this.modalService.show(\n ACTION_DIALOG_COMPONENT[type],\n config,\n ACTION_DIALOG_DEFAULT_CLOSE_VALUE[type] as ActionDialogReturnType<T>\n );\n\n let subscription: Subscription | undefined;\n if (delayDismiss) {\n // `any`because TS cannot infer types correctly\n subscription = modalRef.message\n .pipe(take(1), switchMap(delayDismiss as any))\n .subscribe(modalRef.hide);\n }\n // ModalRef always allows emitting undefined. But we know that we don't emit undefined here, so do typecast.\n modalRef.hidden.subscribe(subscriber as Subscriber<ActionDialogReturnType<T> | undefined>);\n\n return () => {\n subscription?.unsubscribe();\n modalRef.detach();\n };\n });\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { Observable } from 'rxjs';\n\n/** @deprecated Will be removed in a future release. Use the string values directly. */\n\nexport const AlertDialogResult = {\n Confirm: 'confirm'\n} as const;\n\nexport type AlertDialogResult = (typeof AlertDialogResult)[keyof typeof AlertDialogResult];\n\n/** @deprecated Will be removed in a future release. Use the string values directly. */\nexport const EditDiscardDialogResult = {\n Save: 'save',\n Discard: 'discard',\n Cancel: 'cancel'\n} as const;\n\nexport type EditDiscardDialogResult =\n (typeof EditDiscardDialogResult)[keyof typeof EditDiscardDialogResult];\n\n/** @deprecated Will be removed in a future release. Use the string values directly. */\nexport const ConfirmationDialogResult = {\n Confirm: 'confirm',\n Decline: 'decline'\n} as const;\n\nexport type ConfirmationDialogResult =\n (typeof ConfirmationDialogResult)[keyof typeof ConfirmationDialogResult];\n\n/** @deprecated Will be removed in a future release. Use the string values directly. */\nexport const DeleteConfirmationDialogResult = {\n Delete: 'delete',\n Cancel: 'cancel'\n} as const;\n\nexport type DeleteConfirmationDialogResult =\n (typeof DeleteConfirmationDialogResult)[keyof typeof DeleteConfirmationDialogResult];\n\n/**\n * Base type for all action dialogs\n * @typeParam TResult - Type of the dialog result.\n */\ninterface ActionDialogBase<TResult> {\n /** The message. */\n message?: TranslatableString;\n /** The heading. */\n heading?: TranslatableString;\n /** Icon displayed in the heading. */\n icon?: string;\n /** Parameters for the translate pipe. */\n translationParams?: Record<string, any>;\n /**\n * Callback for delaying dismiss with a progress indicator until the\n * returned {@link Observable} emits.\n */\n delayDismiss?: (result: TResult) => Observable<TResult>;\n}\n\n/** An action dialog showing an alert */\nexport interface AlertDialog extends ActionDialogBase<AlertDialogResult> {\n type: 'alert';\n /** Label of the confirmation button. */\n confirmBtnName?: TranslatableString;\n}\n\n/** An action dialog for a confirmation. */\nexport interface ConfirmationDialog extends ActionDialogBase<ConfirmationDialogResult> {\n type: 'confirmation';\n /** Label of the confirmation button. */\n confirmBtnName?: TranslatableString;\n /** Label of the decline button. */\n declineBtnName?: TranslatableString;\n}\n\n/** An action dialog for an edit/discard prompt. */\nexport interface EditDiscardDialog extends ActionDialogBase<EditDiscardDialogResult> {\n type: 'edit-discard';\n /** Whether to disable the save button. */\n disableSave?: boolean;\n /** Label of the save button. */\n saveBtnName?: TranslatableString;\n /** Label of the discard button. */\n discardBtnName?: TranslatableString;\n /** Label of the cancel button. */\n cancelBtnName?: TranslatableString;\n /** Message when {@link disableSave} is set. */\n disableSaveMessage?: TranslatableString;\n /** Label of the discard button when {@link disableSave} is set. */\n disableSaveDiscardBtnName?: TranslatableString;\n}\n\n/** An action dialog for a delete confirmation. */\nexport interface DeleteConfirmationDialog extends ActionDialogBase<DeleteConfirmationDialogResult> {\n type: 'delete-confirm';\n /** Label of the delete button. */\n deleteBtnName?: TranslatableString;\n /** Label of the cancel button. */\n cancelBtnName?: TranslatableString;\n}\n\n/** All possible action dialogs. */\nexport type ActionDialog =\n | AlertDialog\n | ConfirmationDialog\n | EditDiscardDialog\n | DeleteConfirmationDialog\n | never;\n\n/** Returns the return value type for the given action dialog type */\nexport type ActionDialogReturnType<T extends ActionDialogBase<any>> = T extends AlertDialog\n ? AlertDialogResult\n : T extends ConfirmationDialog\n ? ConfirmationDialogResult\n : T extends EditDiscardDialog\n ? EditDiscardDialogResult\n : T extends DeleteConfirmationDialog\n ? DeleteConfirmationDialogResult\n : never;\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-action-dialog.service';\nexport * from './si-action-dialog.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -612,7 +612,7 @@ class SiLaunchpadAppComponent {
612
612
  this.header.closeLaunchpad();
613
613
  }
614
614
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLaunchpadAppComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
615
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiLaunchpadAppComponent, isStandalone: true, selector: "a[si-launchpad-app]", inputs: { external: { classPropertyName: "external", publicName: "external", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, enableFavoriteToggle: { classPropertyName: "enableFavoriteToggle", publicName: "enableFavoriteToggle", isSignal: true, isRequired: false, transformFunction: null }, favorite: { classPropertyName: "favorite", publicName: "favorite", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, iconUrl: { classPropertyName: "iconUrl", publicName: "iconUrl", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favorite: "favoriteChange" }, host: { listeners: { "keydown.space": "favoriteClicked($event)", "click": "click()" }, properties: { "class.active": "active()", "class.action": "action()" }, classAttribute: "focus-inside" }, ngImport: i0, template: "@if (iconUrl()) {\n <img alt=\"\" width=\"64\" height=\"64\" class=\"app-icon\" [src]=\"iconUrl()\" />\n} @else if (iconClass()) {\n <si-icon-next class=\"app-icon\" [icon]=\"iconClass()!\" />\n}\n<div class=\"si-title-2 text-truncate mw-100\">\n <ng-content select=\"[app-name]\" />\n @if (external()) {\n <si-icon-next class=\"icon mt-n2\" [icon]=\"icons.elementExport\" />\n }\n</div>\n<div class=\"si-body-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n</div>\n@if (enableFavoriteToggle()) {\n <si-icon-next\n class=\"favorite-icon\"\n [class.is-favorite]=\"favorite()\"\n [icon]=\"favorite() ? icons.elementFavoritesFilled : icons.elementFavorites\"\n (click)=\"favoriteClicked($event)\"\n />\n}\n", styles: [":host{display:flex;align-items:center;flex-flow:column nowrap;position:relative;padding-block:20px;inline-size:152px;max-inline-size:152px;padding-inline:4px;color:var(--element-text-primary);border-radius:var(--element-radius-2)}:host.active{border:1px solid var(--element-ui-0);background-color:var(--element-base-1-hover)}:host.action{color:var(--element-action-primary)}:host:hover{color:var(--element-text-primary);text-decoration:none;background-color:var(--element-base-1-hover)}.app-icon{display:flex;align-items:center;justify-content:center;inline-size:48px;block-size:48px;margin-block-end:8px;border-radius:var(--element-radius-2)}.favorite-icon{font-size:20px;position:absolute;inset-inline-end:22px;inset-block-start:10px;padding:2px;color:var(--element-text-primary)}.is-favorite{color:var(--element-status-caution)}\n"], dependencies: [{ kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
615
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiLaunchpadAppComponent, isStandalone: true, selector: "a[si-launchpad-app]", inputs: { external: { classPropertyName: "external", publicName: "external", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, enableFavoriteToggle: { classPropertyName: "enableFavoriteToggle", publicName: "enableFavoriteToggle", isSignal: true, isRequired: false, transformFunction: null }, favorite: { classPropertyName: "favorite", publicName: "favorite", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, iconUrl: { classPropertyName: "iconUrl", publicName: "iconUrl", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: "iconClass", publicName: "iconClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favorite: "favoriteChange" }, host: { listeners: { "keydown.space": "favoriteClicked($event)", "click": "click()" }, properties: { "class.active": "active()", "class.action": "action()" }, classAttribute: "focus-inside" }, ngImport: i0, template: "@if (iconUrl()) {\n <img alt=\"\" width=\"64\" height=\"64\" class=\"app-icon\" [src]=\"iconUrl()\" />\n} @else if (iconClass()) {\n <si-icon-next class=\"app-icon\" [icon]=\"iconClass()!\" />\n}\n<div class=\"si-title-2 text-truncate mw-100\">\n <ng-content select=\"[app-name]\" />\n @if (external()) {\n <si-icon-next class=\"icon mt-n2\" [icon]=\"icons.elementExport\" />\n }\n</div>\n<div class=\"si-body-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n</div>\n@if (enableFavoriteToggle()) {\n <si-icon-next\n class=\"favorite-icon\"\n [class.is-favorite]=\"favorite()\"\n [icon]=\"favorite() ? icons.elementFavoritesFilled : icons.elementFavorites\"\n (click)=\"favoriteClicked($event)\"\n />\n}\n", styles: [":host{display:flex;align-items:center;flex-flow:column nowrap;position:relative;padding-block:20px;inline-size:152px;max-inline-size:152px;padding-inline:4px;color:var(--element-text-primary);border-radius:var(--element-radius-2)}:host.active{border:1px solid var(--element-ui-0);background-color:var(--element-base-1-hover)}:host.action{color:var(--element-action-primary)}:host:hover{color:var(--element-text-primary);text-decoration:none;background-color:var(--element-base-1-hover)}.app-icon{display:flex;align-items:center;justify-content:center;inline-size:48px;block-size:48px;margin-block-end:8px;border-radius:var(--element-radius-2)}.app-icon:is(si-icon-next){background:var(--element-launchpad-app-background);font-size:40px;padding:4px;color:var(--element-launchpad-app-color)}.favorite-icon{font-size:20px;position:absolute;inset-inline-end:22px;inset-block-start:10px;padding:2px;color:var(--element-text-primary)}.is-favorite{color:var(--element-status-caution)}\n"], dependencies: [{ kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
616
616
  }
617
617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiLaunchpadAppComponent, decorators: [{
618
618
  type: Component,
@@ -620,7 +620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
620
620
  class: 'focus-inside',
621
621
  '[class.active]': 'active()',
622
622
  '[class.action]': 'action()'
623
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (iconUrl()) {\n <img alt=\"\" width=\"64\" height=\"64\" class=\"app-icon\" [src]=\"iconUrl()\" />\n} @else if (iconClass()) {\n <si-icon-next class=\"app-icon\" [icon]=\"iconClass()!\" />\n}\n<div class=\"si-title-2 text-truncate mw-100\">\n <ng-content select=\"[app-name]\" />\n @if (external()) {\n <si-icon-next class=\"icon mt-n2\" [icon]=\"icons.elementExport\" />\n }\n</div>\n<div class=\"si-body-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n</div>\n@if (enableFavoriteToggle()) {\n <si-icon-next\n class=\"favorite-icon\"\n [class.is-favorite]=\"favorite()\"\n [icon]=\"favorite() ? icons.elementFavoritesFilled : icons.elementFavorites\"\n (click)=\"favoriteClicked($event)\"\n />\n}\n", styles: [":host{display:flex;align-items:center;flex-flow:column nowrap;position:relative;padding-block:20px;inline-size:152px;max-inline-size:152px;padding-inline:4px;color:var(--element-text-primary);border-radius:var(--element-radius-2)}:host.active{border:1px solid var(--element-ui-0);background-color:var(--element-base-1-hover)}:host.action{color:var(--element-action-primary)}:host:hover{color:var(--element-text-primary);text-decoration:none;background-color:var(--element-base-1-hover)}.app-icon{display:flex;align-items:center;justify-content:center;inline-size:48px;block-size:48px;margin-block-end:8px;border-radius:var(--element-radius-2)}.favorite-icon{font-size:20px;position:absolute;inset-inline-end:22px;inset-block-start:10px;padding:2px;color:var(--element-text-primary)}.is-favorite{color:var(--element-status-caution)}\n"] }]
623
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (iconUrl()) {\n <img alt=\"\" width=\"64\" height=\"64\" class=\"app-icon\" [src]=\"iconUrl()\" />\n} @else if (iconClass()) {\n <si-icon-next class=\"app-icon\" [icon]=\"iconClass()!\" />\n}\n<div class=\"si-title-2 text-truncate mw-100\">\n <ng-content select=\"[app-name]\" />\n @if (external()) {\n <si-icon-next class=\"icon mt-n2\" [icon]=\"icons.elementExport\" />\n }\n</div>\n<div class=\"si-body-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n</div>\n@if (enableFavoriteToggle()) {\n <si-icon-next\n class=\"favorite-icon\"\n [class.is-favorite]=\"favorite()\"\n [icon]=\"favorite() ? icons.elementFavoritesFilled : icons.elementFavorites\"\n (click)=\"favoriteClicked($event)\"\n />\n}\n", styles: [":host{display:flex;align-items:center;flex-flow:column nowrap;position:relative;padding-block:20px;inline-size:152px;max-inline-size:152px;padding-inline:4px;color:var(--element-text-primary);border-radius:var(--element-radius-2)}:host.active{border:1px solid var(--element-ui-0);background-color:var(--element-base-1-hover)}:host.action{color:var(--element-action-primary)}:host:hover{color:var(--element-text-primary);text-decoration:none;background-color:var(--element-base-1-hover)}.app-icon{display:flex;align-items:center;justify-content:center;inline-size:48px;block-size:48px;margin-block-end:8px;border-radius:var(--element-radius-2)}.app-icon:is(si-icon-next){background:var(--element-launchpad-app-background);font-size:40px;padding:4px;color:var(--element-launchpad-app-color)}.favorite-icon{font-size:20px;position:absolute;inset-inline-end:22px;inset-block-start:10px;padding:2px;color:var(--element-text-primary)}.is-favorite{color:var(--element-status-caution)}\n"] }]
624
624
  }], propDecorators: { favoriteClicked: [{
625
625
  type: HostListener,
626
626
  args: ['keydown.space', ['$event']]