@siemens/element-ng 49.12.0 → 51.0.0-rc.3

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 (233) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/siemens-element-ng-about.mjs +41 -25
  3. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  4. package/fesm2022/siemens-element-ng-accordion.mjs +56 -39
  5. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-action-modal.mjs +81 -51
  7. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-ag-grid.mjs +15 -12
  9. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-application-header.mjs +170 -143
  11. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
  13. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -33
  15. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-avatar.mjs +31 -21
  17. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-badge.mjs +9 -8
  19. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
  21. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -15
  23. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-card.mjs +71 -46
  25. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-carousel.mjs +55 -32
  27. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-chat-messages.mjs +175 -111
  29. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-circle-status.mjs +37 -24
  31. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-color-picker.mjs +24 -16
  33. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +52 -33
  35. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-common.mjs +12 -12
  37. package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
  38. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-content-action-bar.mjs +35 -26
  40. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
  42. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-dashboard.mjs +327 -213
  44. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-datatable.mjs +8 -8
  46. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-date-range-filter.mjs +119 -72
  48. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-datepicker.mjs +358 -234
  50. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +21 -16
  52. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
  54. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-file-uploader.mjs +93 -81
  56. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-filter-bar.mjs +29 -22
  58. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-filtered-search.mjs +243 -147
  60. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-footer.mjs +12 -10
  62. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-form.mjs +289 -128
  64. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
  66. package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
  67. package/fesm2022/siemens-element-ng-formly.mjs +220 -315
  68. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-header-dropdown.mjs +46 -30
  70. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
  72. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-icon.mjs +46 -47
  74. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
  76. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
  78. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-ip-input.mjs +20 -16
  80. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-landing-page.mjs +118 -72
  82. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
  84. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-link.mjs +31 -21
  86. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-list-details.mjs +73 -54
  88. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-loading-spinner.mjs +42 -33
  90. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-localization.mjs +14 -12
  92. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-main-detail-container.mjs +46 -29
  94. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +6 -5
  96. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  97. package/fesm2022/siemens-element-ng-menu.mjs +56 -48
  98. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-modal.mjs +12 -10
  100. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +133 -94
  102. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +117 -81
  104. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-navbar.mjs +67 -41
  106. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
  108. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-number-input.mjs +38 -27
  110. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
  112. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-password-strength.mjs +31 -22
  114. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-password-toggle.mjs +18 -13
  116. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-phone-number.mjs +138 -134
  118. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-photo-upload.mjs +76 -45
  120. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-pills-input.mjs +63 -58
  122. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
  124. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-popover.mjs +33 -26
  126. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
  128. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
  130. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
  132. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-search-bar.mjs +32 -24
  134. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-select.mjs +212 -154
  136. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  138. package/fesm2022/siemens-element-ng-side-panel.mjs +119 -75
  139. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-skip-links.mjs +14 -13
  141. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-slider.mjs +42 -28
  143. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-split.mjs +268 -254
  145. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-status-bar.mjs +57 -47
  147. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
  149. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-status-toggle.mjs +22 -14
  151. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
  153. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
  155. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-system-banner.mjs +11 -8
  157. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -15
  159. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-tabs.mjs +88 -47
  161. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-theme.mjs +5 -4
  163. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-threshold.mjs +59 -40
  165. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-toast-notification.mjs +45 -40
  167. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-tooltip.mjs +218 -117
  169. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-tour.mjs +28 -19
  171. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-translate.mjs +0 -1
  173. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-tree-view.mjs +93 -74
  175. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-typeahead.mjs +75 -67
  177. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-wizard.mjs +72 -48
  179. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  180. package/formly-legacy/package.json +4 -0
  181. package/package.json +20 -22
  182. package/schematics/migration.json +4 -4
  183. package/schematics/migrations/data/class-member-replacement.js +1 -19
  184. package/schematics/migrations/data/component-property-names.js +1 -25
  185. package/schematics/migrations/data/element-class-changes.js +1 -28
  186. package/schematics/migrations/data/element-migration-data.js +2 -0
  187. package/schematics/migrations/data/element-selectors.js +1 -11
  188. package/schematics/migrations/data/index.js +0 -4
  189. package/schematics/migrations/data/migration-test-data.js +9 -6
  190. package/schematics/migrations/data/provider-function-removals.js +7 -0
  191. package/schematics/migrations/data/symbol-removals.js +7 -7
  192. package/schematics/migrations/data/symbol-renaming.js +1 -48
  193. package/schematics/migrations/element-migration/element-migration.js +3 -6
  194. package/schematics/migrations/utilities/import-removal.js +39 -0
  195. package/schematics/migrations/utilities/index.js +2 -0
  196. package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
  197. package/schematics/ng-update/index.js +1 -1
  198. package/schematics/ng-update/{migrate-to-v49.js → migrate-to-v51.js} +2 -2
  199. package/template-i18n.json +3 -6
  200. package/types/siemens-element-ng-application-header.d.ts +13 -25
  201. package/types/siemens-element-ng-autocomplete.d.ts +19 -19
  202. package/types/siemens-element-ng-chat-messages.d.ts +6 -4
  203. package/types/siemens-element-ng-circle-status.d.ts +1 -1
  204. package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
  205. package/types/siemens-element-ng-datepicker.d.ts +1 -12
  206. package/types/siemens-element-ng-file-uploader.d.ts +5 -23
  207. package/types/siemens-element-ng-filtered-search.d.ts +1 -1
  208. package/types/siemens-element-ng-form.d.ts +135 -40
  209. package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
  210. package/types/siemens-element-ng-formly.d.ts +34 -167
  211. package/types/siemens-element-ng-header-dropdown.d.ts +5 -0
  212. package/types/siemens-element-ng-icon.d.ts +2 -19
  213. package/types/siemens-element-ng-navbar-vertical-next.d.ts +6 -1
  214. package/types/siemens-element-ng-notification-item.d.ts +12 -0
  215. package/types/siemens-element-ng-phone-number.d.ts +6 -9
  216. package/types/siemens-element-ng-resize-observer.d.ts +0 -17
  217. package/types/siemens-element-ng-split.d.ts +95 -63
  218. package/types/siemens-element-ng-status-bar.d.ts +5 -13
  219. package/types/siemens-element-ng-status-counter.d.ts +1 -1
  220. package/types/siemens-element-ng-tabs.d.ts +4 -0
  221. package/types/siemens-element-ng-toast-notification.d.ts +0 -1
  222. package/types/siemens-element-ng-tooltip.d.ts +10 -26
  223. package/types/siemens-element-ng-translate.d.ts +1 -5
  224. package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
  225. package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
  226. package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
  227. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
  228. package/icon-status/package.json +0 -4
  229. package/schematics/vitest-setup.js +0 -5
  230. package/sort-bar/package.json +0 -4
  231. package/types/siemens-element-ng-icon-status.d.ts +0 -25
  232. package/types/siemens-element-ng-sort-bar.d.ts +0 -59
  233. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Overlay, OverlayOutsideClickDispatcher, FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';
2
2
  import { ComponentPortal } from '@angular/cdk/portal';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, signal, ChangeDetectionStrategy, Component, ElementRef, viewChild, DOCUMENT, HostListener, Injector, Injectable } from '@angular/core';
4
+ import { InjectionToken, inject, signal, Component, ElementRef, viewChild, DOCUMENT, HostListener, Injector, Injectable } from '@angular/core';
5
5
  import { isRTL, calculateOverlayArrowPosition } from '@siemens/element-ng/common';
6
6
  import { ResizeObserverService } from '@siemens/element-ng/resize-observer';
7
7
  import { Subject, map, merge, throttleTime, tap } from 'rxjs';
@@ -21,7 +21,8 @@ const SI_TOUR_TOKEN = new InjectionToken('SI_TOUR_TOKEN');
21
21
  class SiTourHighlightComponent {
22
22
  tourToken = inject(SI_TOUR_TOKEN);
23
23
  anchor;
24
- dim = signal({ top: 0, left: 0, width: 0, height: 0 }, ...(ngDevMode ? [{ debugName: "dim" }] : []));
24
+ dim = signal({ top: 0, left: 0, width: 0, height: 0 }, /* @ts-ignore */
25
+ ...(ngDevMode ? [{ debugName: "dim" }] : /* istanbul ignore next */ []));
25
26
  constructor() {
26
27
  this.tourToken.currentStep.pipe(takeUntilDestroyed()).subscribe(step => {
27
28
  this.anchor = step.anchor;
@@ -37,12 +38,12 @@ class SiTourHighlightComponent {
37
38
  const rect = this.anchor.nativeElement.getBoundingClientRect();
38
39
  this.dim.set({ top: rect.top, left: rect.left, width: rect.width, height: rect.height });
39
40
  }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourHighlightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiTourHighlightComponent, isStandalone: true, selector: "si-tour-highlight", ngImport: i0, template: "@let rect = dim();\n<div\n class=\"highlighter\"\n [style.top.px]=\"rect.top\"\n [style.left.px]=\"rect.left\"\n [style.inline-size.px]=\"rect.width\"\n [style.block-size.px]=\"rect.height\"\n></div>\n", styles: [".highlighter{position:fixed;box-shadow:var(--element-base-translucent-1) 0 0 0 1000vmax;pointer-events:none}::ng-deep .cdk-global-overlay-wrapper:has(si-tour-highlight){z-index:2000}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourHighlightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: SiTourHighlightComponent, isStandalone: true, selector: "si-tour-highlight", ngImport: i0, template: "@let rect = dim();\n<div\n class=\"highlighter\"\n [style.top.px]=\"rect.top\"\n [style.left.px]=\"rect.left\"\n [style.inline-size.px]=\"rect.width\"\n [style.block-size.px]=\"rect.height\"\n></div>\n", styles: [".highlighter{position:fixed;box-shadow:var(--element-base-translucent-1) 0 0 0 1000vmax;pointer-events:none}::ng-deep .cdk-global-overlay-wrapper:has(si-tour-highlight){z-index:2000}\n"] });
42
43
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourHighlightComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourHighlightComponent, decorators: [{
44
45
  type: Component,
45
- args: [{ selector: 'si-tour-highlight', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let rect = dim();\n<div\n class=\"highlighter\"\n [style.top.px]=\"rect.top\"\n [style.left.px]=\"rect.left\"\n [style.inline-size.px]=\"rect.width\"\n [style.block-size.px]=\"rect.height\"\n></div>\n", styles: [".highlighter{position:fixed;box-shadow:var(--element-base-translucent-1) 0 0 0 1000vmax;pointer-events:none}::ng-deep .cdk-global-overlay-wrapper:has(si-tour-highlight){z-index:2000}\n"] }]
46
+ args: [{ selector: 'si-tour-highlight', template: "@let rect = dim();\n<div\n class=\"highlighter\"\n [style.top.px]=\"rect.top\"\n [style.left.px]=\"rect.left\"\n [style.inline-size.px]=\"rect.width\"\n [style.block-size.px]=\"rect.height\"\n></div>\n", styles: [".highlighter{position:fixed;box-shadow:var(--element-base-translucent-1) 0 0 0 1000vmax;pointer-events:none}::ng-deep .cdk-global-overlay-wrapper:has(si-tour-highlight){z-index:2000}\n"] }]
46
47
  }], ctorParameters: () => [] });
47
48
 
48
49
  /**
@@ -50,10 +51,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
50
51
  * SPDX-License-Identifier: MIT
51
52
  */
52
53
  class SiTourComponent {
53
- positionClass = signal('', ...(ngDevMode ? [{ debugName: "positionClass" }] : []));
54
- arrowPos = signal(undefined, ...(ngDevMode ? [{ debugName: "arrowPos" }] : []));
55
- step = signal(undefined, ...(ngDevMode ? [{ debugName: "step" }] : []));
56
- show = signal(false, ...(ngDevMode ? [{ debugName: "show" }] : []));
54
+ positionClass = signal('', /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "positionClass" }] : /* istanbul ignore next */ []));
56
+ arrowPos = signal(undefined, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "arrowPos" }] : /* istanbul ignore next */ []));
58
+ step = signal(undefined, /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
60
+ show = signal(false, /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "show" }] : /* istanbul ignore next */ []));
57
62
  icons = addIcons({ elementCancel });
58
63
  tourToken = inject(SI_TOUR_TOKEN);
59
64
  backText = t(() => $localize `:@@SI_TOUR.BACK:Back`);
@@ -65,7 +70,9 @@ class SiTourComponent {
65
70
  elementRef = inject(ElementRef);
66
71
  subscription;
67
72
  prevFocus = null;
68
- focusTrap = viewChild('focusTrap', ...(ngDevMode ? [{ debugName: "focusTrap" }] : []));
73
+ lastPositionChange;
74
+ focusTrap = viewChild('focusTrap', /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "focusTrap" }] : /* istanbul ignore next */ []));
69
76
  document = inject(DOCUMENT);
70
77
  constructor() {
71
78
  this.subscription = this.tourToken.currentStep.subscribe(step => {
@@ -78,6 +85,7 @@ class SiTourComponent {
78
85
  }, 50);
79
86
  });
80
87
  this.subscription.add(this.tourToken.positionChange.subscribe(update => this.updatePosition(update)));
88
+ this.subscription.add(this.tourToken.sizeChange.subscribe(() => this.updatePosition(this.lastPositionChange)));
81
89
  }
82
90
  ngOnDestroy() {
83
91
  this.subscription?.unsubscribe();
@@ -112,6 +120,7 @@ class SiTourComponent {
112
120
  }
113
121
  }
114
122
  updatePosition(update) {
123
+ this.lastPositionChange = update;
115
124
  if (!update) {
116
125
  this.positionClass.set('');
117
126
  this.arrowPos.set(undefined);
@@ -121,12 +130,12 @@ class SiTourComponent {
121
130
  this.positionClass.set(`popover-${connPair.overlayX}-${connPair.overlayY}`);
122
131
  setTimeout(() => this.arrowPos.set(calculateOverlayArrowPosition(update.change, this.elementRef, update.anchor)));
123
132
  }
124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiTourComponent, isStandalone: true, selector: "si-tour", host: { listeners: { "window:keydown": "keyListener($event)" }, properties: { "attr.data-step-id": "step()?.step?.id" } }, viewQueries: [{ propertyName: "focusTrap", first: true, predicate: ["focusTrap"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vi;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
134
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SiTourComponent, isStandalone: true, selector: "si-tour", host: { listeners: { "window:keydown": "keyListener($event)" }, properties: { "attr.data-step-id": "step()?.step?.id" } }, viewQueries: [{ propertyName: "focusTrap", first: true, predicate: ["focusTrap"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vi;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
126
135
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourComponent, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourComponent, decorators: [{
128
137
  type: Component,
129
- args: [{ selector: 'si-tour', imports: [A11yModule, SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
138
+ args: [{ selector: 'si-tour', imports: [A11yModule, SiIconComponent, SiTranslatePipe], host: {
130
139
  '[attr.data-step-id]': 'step()?.step?.id'
131
140
  }, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vi;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"] }]
132
141
  }], ctorParameters: () => [], propDecorators: { focusTrap: [{ type: i0.ViewChild, args: ['focusTrap', { isSignal: true }] }], keyListener: [{
@@ -316,11 +325,11 @@ class SiTourService {
316
325
  { originX: 'start', overlayX: 'end', originY: 'center', overlayY: 'center' },
317
326
  { originX: 'end', overlayX: 'start', originY: 'center', overlayY: 'center' }
318
327
  ]);
319
- this.overlayRef.updatePositionStrategy(positionStrategy);
320
328
  this.positionChangeSub = positionStrategy.positionChanges
321
329
  .pipe(map(change => ({ change, anchor })))
322
330
  // We only want to forward the next channel, as the positionChanges completes when setting a new origin.
323
331
  .subscribe(value => this.tourToken.positionChange.next(value));
332
+ this.overlayRef.updatePositionStrategy(positionStrategy);
324
333
  }
325
334
  createOrUpdateOverlays() {
326
335
  if (this.overlayRef) {
@@ -399,10 +408,10 @@ class SiTourService {
399
408
  this.overlayRefHighlight?.dispose();
400
409
  this.overlayRefHighlight = undefined;
401
410
  }
402
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
403
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourService, providedIn: 'root' });
411
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
412
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourService, providedIn: 'root' });
404
413
  }
405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourService, decorators: [{
414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiTourService, decorators: [{
406
415
  type: Injectable,
407
416
  args: [{ providedIn: 'root' }]
408
417
  }], ctorParameters: () => [] });
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-tour.mjs","sources":["../../../../projects/element-ng/tour/si-tour-token.model.ts","../../../../projects/element-ng/tour/si-tour-highlight.component.ts","../../../../projects/element-ng/tour/si-tour-highlight.component.html","../../../../projects/element-ng/tour/si-tour.component.ts","../../../../projects/element-ng/tour/si-tour.component.html","../../../../projects/element-ng/tour/si-tour.service.ts","../../../../projects/element-ng/tour/index.ts","../../../../projects/element-ng/tour/siemens-element-ng-tour.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, WritableSignal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { TourStep } from './si-tour.model';\n\nexport interface TourStepInternal {\n step: TourStep;\n stepNumber: number;\n totalSteps: number;\n anchor?: ElementRef<HTMLElement>;\n}\n\nexport type TourAction = 'next' | 'back' | 'cancel' | 'complete';\n\nexport interface PositionChange {\n change: ConnectedOverlayPositionChange;\n anchor: ElementRef;\n}\nexport interface TourToken {\n currentStep: Subject<TourStepInternal>;\n blocked: WritableSignal<boolean>;\n positionChange: Subject<PositionChange | undefined>;\n sizeChange: Subject<void>;\n control: Subject<TourAction>;\n}\n\nexport const SI_TOUR_TOKEN = new InjectionToken<TourToken>('SI_TOUR_TOKEN');\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SI_TOUR_TOKEN } from './si-tour-token.model';\n\n@Component({\n selector: 'si-tour-highlight',\n templateUrl: './si-tour-highlight.component.html',\n styleUrl: './si-tour-highlight.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiTourHighlightComponent {\n private tourToken = inject(SI_TOUR_TOKEN);\n private anchor?: ElementRef;\n protected readonly dim = signal({ top: 0, left: 0, width: 0, height: 0 });\n\n constructor() {\n this.tourToken.currentStep.pipe(takeUntilDestroyed()).subscribe(step => {\n this.anchor = step.anchor;\n this.updateHighlight();\n });\n this.tourToken.sizeChange.pipe(takeUntilDestroyed()).subscribe(() => this.updateHighlight());\n }\n\n private updateHighlight(): void {\n if (!this.anchor) {\n this.dim.set({ top: 0, left: 0, width: 0, height: 0 });\n return;\n }\n const rect = this.anchor.nativeElement.getBoundingClientRect();\n this.dim.set({ top: rect.top, left: rect.left, width: rect.width, height: rect.height });\n }\n}\n","@let rect = dim();\n<div\n class=\"highlighter\"\n [style.top.px]=\"rect.top\"\n [style.left.px]=\"rect.left\"\n [style.inline-size.px]=\"rect.width\"\n [style.block-size.px]=\"rect.height\"\n></div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n ElementRef,\n HostListener,\n inject,\n OnDestroy,\n signal,\n viewChild\n} from '@angular/core';\nimport { elementCancel } from '@siemens/element-icons';\nimport {\n calculateOverlayArrowPosition,\n isRTL,\n OverlayArrowPosition\n} from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\nimport { Subscription } from 'rxjs';\n\nimport { PositionChange, SI_TOUR_TOKEN, TourAction, TourStepInternal } from './si-tour-token.model';\n\n@Component({\n selector: 'si-tour',\n imports: [A11yModule, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-tour.component.html',\n styleUrl: './si-tour.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-step-id]': 'step()?.step?.id'\n }\n})\nexport class SiTourComponent implements OnDestroy {\n protected readonly positionClass = signal('');\n protected readonly arrowPos = signal<OverlayArrowPosition | undefined>(undefined);\n protected readonly step = signal<TourStepInternal | undefined>(undefined);\n protected readonly show = signal(false);\n protected readonly icons = addIcons({ elementCancel });\n protected tourToken = inject(SI_TOUR_TOKEN);\n\n protected backText = t(() => $localize`:@@SI_TOUR.BACK:Back`);\n protected nextText = t(() => $localize`:@@SI_TOUR.NEXT:Next`);\n protected skipText = t(() => $localize`:@@SI_TOUR.SKIP:Skip tour`);\n protected doneText = t(() => $localize`:@@SI_TOUR.DONE:Done`);\n protected ariaLabelClose = t(() => $localize`:@@SI_TOUR.CLOSE:Close`);\n protected progressText = t(() => $localize`:@@SI_TOUR.PROGRESS: {{step}} of {{total}}`);\n\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n private subscription?: Subscription;\n private prevFocus: Element | null = null;\n\n private readonly focusTrap = viewChild<CdkTrapFocus>('focusTrap');\n private document = inject(DOCUMENT);\n\n constructor() {\n this.subscription = this.tourToken.currentStep.subscribe(step => {\n this.step.set(step);\n this.show.set(false);\n // prevents flickering during overlay reposition and arrow direction change\n setTimeout(() => {\n this.show.set(true);\n this.ensureFocused();\n }, 50);\n });\n this.subscription.add(\n this.tourToken.positionChange.subscribe(update => this.updatePosition(update))\n );\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n protected action(action: TourAction): void {\n this.prevFocus = this.document.activeElement;\n this.tourToken.control.next(action);\n }\n\n protected ensureFocused(): void {\n // ensure focus is inside si-tour as other element might steal it, e.g. opening a menu\n const element = this.elementRef.nativeElement;\n if (!this.document.activeElement || !element.contains(this.document.activeElement)) {\n if (element.contains(this.prevFocus)) {\n (this.prevFocus as HTMLElement)?.focus?.();\n } else {\n this.focusTrap()?.focusTrap.focusInitialElement();\n }\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n protected keyListener(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Escape':\n this.action('cancel');\n break;\n case 'ArrowLeft':\n this.action(isRTL() ? 'next' : 'back');\n break;\n case 'ArrowRight':\n this.action(isRTL() ? 'back' : 'next');\n break;\n }\n }\n\n private updatePosition(update: PositionChange | undefined): void {\n if (!update) {\n this.positionClass.set('');\n this.arrowPos.set(undefined);\n return;\n }\n\n const connPair = update.change.connectionPair;\n this.positionClass.set(`popover-${connPair.overlayX}-${connPair.overlayY}`);\n setTimeout(() =>\n this.arrowPos.set(\n calculateOverlayArrowPosition(update.change, this.elementRef, update.anchor)\n )\n );\n }\n}\n","<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayOutsideClickDispatcher,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT, ElementRef, inject, Injectable, Injector, signal } from '@angular/core';\nimport { isRTL } from '@siemens/element-ng/common';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { map, merge, Subject, Subscription, tap, throttleTime } from 'rxjs';\n\nimport { SiTourHighlightComponent } from './si-tour-highlight.component';\nimport { SI_TOUR_TOKEN, TourAction, TourToken } from './si-tour-token.model';\nimport { SiTourComponent } from './si-tour.component';\nimport { TourOptions, TourStep } from './si-tour.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SiTourService {\n private injector = inject(Injector);\n private resizeObserver = inject(ResizeObserverService);\n private overlay = inject(Overlay);\n private outsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private overlayRefHighlight?: OverlayRef;\n private overlayRef?: OverlayRef;\n private portal?: ComponentPortal<SiTourComponent>;\n\n private options: TourOptions = {};\n private steps: TourStep[] = [];\n private currentStepIndex = -1;\n private currentStep?: TourStep;\n private active = false;\n private tourToken: TourToken = {\n currentStep: new Subject(),\n blocked: signal(false),\n positionChange: new Subject(),\n sizeChange: new Subject(),\n control: new Subject()\n };\n private positionChangeSub?: Subscription;\n private resizeSub?: Subscription;\n private document = inject(DOCUMENT);\n\n constructor() {\n this.tourToken.control.subscribe(action => this.controlAction(action));\n }\n\n /**\n * Event triggered after the tour is completed.\n */\n readonly onTourComplete = new Subject<void>();\n\n /**\n * Event triggered after the tour is cancelled, either through skip button or closing the tour dialog.\n */\n readonly onTourCancel = new Subject<void>();\n\n /**\n * Sets options for the whole tour.\n */\n setOptions(options: TourOptions): void {\n Object.assign(this.options, options);\n }\n\n /**\n * Add steps to the tour\n */\n addSteps(steps: TourStep[]): void {\n this.steps.push(...steps);\n }\n\n /**\n * Clear all steps\n */\n clearSteps(): void {\n this.steps = [];\n this.currentStepIndex = -1;\n }\n\n /**\n * Start the tour\n */\n start(): void {\n this.makeStep(0);\n }\n\n /**\n * Finish the tour\n */\n complete(): void {\n this.controlAction('complete');\n }\n\n private async controlAction(action: TourAction): Promise<void> {\n switch (action) {\n case 'next':\n this.makeStep(this.currentStepIndex + 1);\n break;\n case 'back':\n this.makeStep(this.currentStepIndex - 1);\n break;\n case 'cancel':\n this.hide();\n this.onTourCancel.next();\n break;\n case 'complete':\n this.hide();\n this.onTourComplete.next();\n break;\n }\n }\n\n private async makeStep(index: number): Promise<void> {\n if (index < 0 || index >= this.steps.length) {\n return;\n }\n\n this.active = true;\n\n await this.handleBeforeNextPromise();\n\n this.currentStepIndex = index;\n const step = this.steps[this.currentStepIndex];\n this.currentStep = Object.assign({}, this.options?.defaultStepOptions ?? {}, step);\n\n if (this.currentStep.beforeShowPromise) {\n this.tourToken.blocked.set(true);\n await this.currentStep.beforeShowPromise();\n }\n\n if (!this.active) {\n // tour could have been cancelled before beforeShowPromise completes\n return;\n }\n\n const anchorElement = this.getElement(step.attachTo?.element);\n this.scrollIntoView(this.currentStep, anchorElement);\n\n const anchorElementRef = this.isElementVisible(anchorElement)\n ? new ElementRef(anchorElement!)\n : undefined;\n\n if (anchorElementRef) {\n this.attachOverlay(anchorElementRef);\n } else {\n this.centerOverlay();\n }\n this.handleResizeSubscription(anchorElementRef);\n\n this.tourToken.currentStep.next({\n step,\n stepNumber: this.currentStepIndex + 1,\n totalSteps: this.steps.length,\n anchor: anchorElementRef\n });\n this.tourToken.blocked.set(false);\n }\n\n private scrollIntoView(step: TourStep, element?: HTMLElement): void {\n if (!element || !(step.scrollTo || step.scrollToHandler)) {\n return;\n }\n if (step.scrollToHandler) {\n step.scrollToHandler(element);\n } else {\n element?.scrollIntoView(step.scrollTo);\n }\n }\n\n private async handleBeforeNextPromise(): Promise<void> {\n if (!this.active) {\n return;\n }\n if (this.currentStep?.beforeNextPromise) {\n this.tourToken.blocked.set(true);\n await this.currentStep.beforeNextPromise();\n this.tourToken.blocked.set(false);\n }\n }\n\n private centerOverlay(): void {\n this.positionChangeSub?.unsubscribe();\n this.createOrUpdateOverlays();\n\n const positionStrategy = this.overlayRef!.getConfig().positionStrategy;\n if (!positionStrategy || positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n this.overlayRef!.updatePositionStrategy(\n this.overlay.position().global().centerHorizontally().centerVertically()\n );\n }\n this.tourToken.positionChange.next(undefined);\n }\n\n private attachOverlay(anchor: ElementRef<HTMLElement>): void {\n this.createOrUpdateOverlays();\n\n const positionStrategy = this.overlayRef!.getConfig().positionStrategy;\n if (positionStrategy && positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n positionStrategy.setOrigin(anchor);\n } else {\n this.createFlexiblePositionStrategy(anchor);\n }\n }\n\n private createFlexiblePositionStrategy(anchor: ElementRef<HTMLElement>): void {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(anchor)\n .withGrowAfterOpen(true)\n .withPositions([\n // On top\n { originX: 'center', overlayX: 'center', originY: 'top', overlayY: 'bottom' },\n { originX: 'start', overlayX: 'start', originY: 'top', overlayY: 'bottom' },\n { originX: 'end', overlayX: 'end', originY: 'top', overlayY: 'bottom' },\n // On bottom\n { originX: 'center', overlayX: 'center', originY: 'bottom', overlayY: 'top' },\n { originX: 'start', overlayX: 'start', originY: 'bottom', overlayY: 'top' },\n { originX: 'end', overlayX: 'end', originY: 'bottom', overlayY: 'top' },\n // Left and right\n { originX: 'start', overlayX: 'end', originY: 'center', overlayY: 'center' },\n { originX: 'end', overlayX: 'start', originY: 'center', overlayY: 'center' }\n ]);\n this.overlayRef!.updatePositionStrategy(positionStrategy);\n this.positionChangeSub = positionStrategy.positionChanges\n .pipe(map(change => ({ change, anchor })))\n // We only want to forward the next channel, as the positionChanges completes when setting a new origin.\n .subscribe(value => this.tourToken.positionChange.next(value));\n }\n\n private createOrUpdateOverlays(): void {\n if (this.overlayRef) {\n // This moves the dispatcher to the top, allowing it to catch other open overlays.\n // Much lighter than to detach and re-attach the portal, not re-creating the si-tour\n // component for each step\n this.outsideClickDispatcher.remove(this.overlayRef);\n this.outsideClickDispatcher.add(this.overlayRef);\n return;\n }\n\n const componentInjector = Injector.create({\n providers: [{ provide: SI_TOUR_TOKEN, useValue: this.tourToken }],\n parent: this.injector\n });\n\n // first the highlighter,\n const hlPortal = new ComponentPortal(SiTourHighlightComponent, undefined, componentInjector);\n this.overlayRefHighlight = this.overlay.create({\n positionStrategy: this.overlay.position().global()\n });\n this.overlayRefHighlight.attach(hlPortal);\n\n // then the dialog\n this.portal = new ComponentPortal(SiTourComponent, undefined, componentInjector);\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n direction: isRTL() ? 'rtl' : 'ltr'\n });\n this.overlayRef.attach(this.portal);\n // needs a subscriber, otherwise events will be ignored and the .backdrop CSS hack doesn't help\n this.overlayRef.outsidePointerEvents().subscribe();\n }\n\n private handleResizeSubscription(anchorElement: ElementRef<HTMLElement> | undefined): void {\n this.resizeSub?.unsubscribe();\n this.resizeSub = undefined;\n if (anchorElement) {\n this.resizeSub = merge(\n // this catches edge cases e.g. with side-panel\n this.resizeObserver.observe(this.document.body, 20, false),\n this.resizeObserver.observe(anchorElement.nativeElement, 20, false)\n )\n .pipe(\n throttleTime(20, undefined, { trailing: true }),\n map((): undefined => undefined),\n tap(() => {\n if (!this.isElementVisible(anchorElement?.nativeElement)) {\n // repositions to center if anchor disappears\n this.centerOverlay();\n } else {\n this.overlayRef?.updatePosition();\n }\n })\n )\n .subscribe(this.tourToken.sizeChange);\n }\n }\n\n private isElementVisible(element: HTMLElement | undefined): boolean {\n const rect = element?.getBoundingClientRect();\n return !!rect?.width && !!rect.height;\n }\n\n private getElement(\n selectorOrElement?: string | HTMLElement | (() => string | HTMLElement)\n ): HTMLElement | undefined {\n if (typeof selectorOrElement === 'function') {\n selectorOrElement = selectorOrElement();\n }\n if (!selectorOrElement) {\n return undefined;\n }\n if (typeof selectorOrElement === 'string') {\n const element = this.document.querySelector<HTMLElement>(selectorOrElement);\n return element ?? undefined;\n }\n return selectorOrElement;\n }\n\n private async hide(): Promise<void> {\n await this.handleBeforeNextPromise();\n this.currentStepIndex = -1;\n this.currentStep = undefined;\n this.active = false;\n this.resizeSub?.unsubscribe();\n this.positionChangeSub?.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.overlayRefHighlight?.dispose();\n this.overlayRefHighlight = undefined;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-tour.service';\nexport * from './si-tour.model';\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-tour.mjs","sources":["../../../../projects/element-ng/tour/si-tour-token.model.ts","../../../../projects/element-ng/tour/si-tour-highlight.component.ts","../../../../projects/element-ng/tour/si-tour-highlight.component.html","../../../../projects/element-ng/tour/si-tour.component.ts","../../../../projects/element-ng/tour/si-tour.component.html","../../../../projects/element-ng/tour/si-tour.service.ts","../../../../projects/element-ng/tour/index.ts","../../../../projects/element-ng/tour/siemens-element-ng-tour.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken, WritableSignal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { TourStep } from './si-tour.model';\n\nexport interface TourStepInternal {\n step: TourStep;\n stepNumber: number;\n totalSteps: number;\n anchor?: ElementRef<HTMLElement>;\n}\n\nexport type TourAction = 'next' | 'back' | 'cancel' | 'complete';\n\nexport interface PositionChange {\n change: ConnectedOverlayPositionChange;\n anchor: ElementRef;\n}\nexport interface TourToken {\n currentStep: Subject<TourStepInternal>;\n blocked: WritableSignal<boolean>;\n positionChange: Subject<PositionChange | undefined>;\n sizeChange: Subject<void>;\n control: Subject<TourAction>;\n}\n\nexport const SI_TOUR_TOKEN = new InjectionToken<TourToken>('SI_TOUR_TOKEN');\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, ElementRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SI_TOUR_TOKEN } from './si-tour-token.model';\n\n@Component({\n selector: 'si-tour-highlight',\n templateUrl: './si-tour-highlight.component.html',\n styleUrl: './si-tour-highlight.component.scss'\n})\nexport class SiTourHighlightComponent {\n private tourToken = inject(SI_TOUR_TOKEN);\n private anchor?: ElementRef;\n protected readonly dim = signal({ top: 0, left: 0, width: 0, height: 0 });\n\n constructor() {\n this.tourToken.currentStep.pipe(takeUntilDestroyed()).subscribe(step => {\n this.anchor = step.anchor;\n this.updateHighlight();\n });\n this.tourToken.sizeChange.pipe(takeUntilDestroyed()).subscribe(() => this.updateHighlight());\n }\n\n private updateHighlight(): void {\n if (!this.anchor) {\n this.dim.set({ top: 0, left: 0, width: 0, height: 0 });\n return;\n }\n const rect = this.anchor.nativeElement.getBoundingClientRect();\n this.dim.set({ top: rect.top, left: rect.left, width: rect.width, height: rect.height });\n }\n}\n","@let rect = dim();\n<div\n class=\"highlighter\"\n [style.top.px]=\"rect.top\"\n [style.left.px]=\"rect.left\"\n [style.inline-size.px]=\"rect.width\"\n [style.block-size.px]=\"rect.height\"\n></div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport {\n Component,\n DOCUMENT,\n ElementRef,\n HostListener,\n inject,\n OnDestroy,\n signal,\n viewChild\n} from '@angular/core';\nimport { elementCancel } from '@siemens/element-icons';\nimport {\n calculateOverlayArrowPosition,\n isRTL,\n OverlayArrowPosition\n} from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\nimport { Subscription } from 'rxjs';\n\nimport { PositionChange, SI_TOUR_TOKEN, TourAction, TourStepInternal } from './si-tour-token.model';\n\n@Component({\n selector: 'si-tour',\n imports: [A11yModule, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-tour.component.html',\n styleUrl: './si-tour.component.scss',\n host: {\n '[attr.data-step-id]': 'step()?.step?.id'\n }\n})\nexport class SiTourComponent implements OnDestroy {\n protected readonly positionClass = signal('');\n protected readonly arrowPos = signal<OverlayArrowPosition | undefined>(undefined);\n protected readonly step = signal<TourStepInternal | undefined>(undefined);\n protected readonly show = signal(false);\n protected readonly icons = addIcons({ elementCancel });\n protected tourToken = inject(SI_TOUR_TOKEN);\n\n protected backText = t(() => $localize`:@@SI_TOUR.BACK:Back`);\n protected nextText = t(() => $localize`:@@SI_TOUR.NEXT:Next`);\n protected skipText = t(() => $localize`:@@SI_TOUR.SKIP:Skip tour`);\n protected doneText = t(() => $localize`:@@SI_TOUR.DONE:Done`);\n protected ariaLabelClose = t(() => $localize`:@@SI_TOUR.CLOSE:Close`);\n protected progressText = t(() => $localize`:@@SI_TOUR.PROGRESS: {{step}} of {{total}}`);\n\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n private subscription?: Subscription;\n private prevFocus: Element | null = null;\n private lastPositionChange: PositionChange | undefined;\n\n private readonly focusTrap = viewChild<CdkTrapFocus>('focusTrap');\n private document = inject(DOCUMENT);\n\n constructor() {\n this.subscription = this.tourToken.currentStep.subscribe(step => {\n this.step.set(step);\n this.show.set(false);\n // prevents flickering during overlay reposition and arrow direction change\n setTimeout(() => {\n this.show.set(true);\n this.ensureFocused();\n }, 50);\n });\n this.subscription.add(\n this.tourToken.positionChange.subscribe(update => this.updatePosition(update))\n );\n this.subscription.add(\n this.tourToken.sizeChange.subscribe(() => this.updatePosition(this.lastPositionChange))\n );\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n protected action(action: TourAction): void {\n this.prevFocus = this.document.activeElement;\n this.tourToken.control.next(action);\n }\n\n protected ensureFocused(): void {\n // ensure focus is inside si-tour as other element might steal it, e.g. opening a menu\n const element = this.elementRef.nativeElement;\n if (!this.document.activeElement || !element.contains(this.document.activeElement)) {\n if (element.contains(this.prevFocus)) {\n (this.prevFocus as HTMLElement)?.focus?.();\n } else {\n this.focusTrap()?.focusTrap.focusInitialElement();\n }\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n protected keyListener(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Escape':\n this.action('cancel');\n break;\n case 'ArrowLeft':\n this.action(isRTL() ? 'next' : 'back');\n break;\n case 'ArrowRight':\n this.action(isRTL() ? 'back' : 'next');\n break;\n }\n }\n\n private updatePosition(update: PositionChange | undefined): void {\n this.lastPositionChange = update;\n if (!update) {\n this.positionClass.set('');\n this.arrowPos.set(undefined);\n return;\n }\n\n const connPair = update.change.connectionPair;\n this.positionClass.set(`popover-${connPair.overlayX}-${connPair.overlayY}`);\n setTimeout(() =>\n this.arrowPos.set(\n calculateOverlayArrowPosition(update.change, this.elementRef, update.anchor)\n )\n );\n }\n}\n","<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayOutsideClickDispatcher,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT, ElementRef, inject, Injectable, Injector, signal } from '@angular/core';\nimport { isRTL } from '@siemens/element-ng/common';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { map, merge, Subject, Subscription, tap, throttleTime } from 'rxjs';\n\nimport { SiTourHighlightComponent } from './si-tour-highlight.component';\nimport { SI_TOUR_TOKEN, TourAction, TourToken } from './si-tour-token.model';\nimport { SiTourComponent } from './si-tour.component';\nimport { TourOptions, TourStep } from './si-tour.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SiTourService {\n private injector = inject(Injector);\n private resizeObserver = inject(ResizeObserverService);\n private overlay = inject(Overlay);\n private outsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private overlayRefHighlight?: OverlayRef;\n private overlayRef?: OverlayRef;\n private portal?: ComponentPortal<SiTourComponent>;\n\n private options: TourOptions = {};\n private steps: TourStep[] = [];\n private currentStepIndex = -1;\n private currentStep?: TourStep;\n private active = false;\n private tourToken: TourToken = {\n currentStep: new Subject(),\n blocked: signal(false),\n positionChange: new Subject(),\n sizeChange: new Subject(),\n control: new Subject()\n };\n private positionChangeSub?: Subscription;\n private resizeSub?: Subscription;\n private document = inject(DOCUMENT);\n\n constructor() {\n this.tourToken.control.subscribe(action => this.controlAction(action));\n }\n\n /**\n * Event triggered after the tour is completed.\n */\n readonly onTourComplete = new Subject<void>();\n\n /**\n * Event triggered after the tour is cancelled, either through skip button or closing the tour dialog.\n */\n readonly onTourCancel = new Subject<void>();\n\n /**\n * Sets options for the whole tour.\n */\n setOptions(options: TourOptions): void {\n Object.assign(this.options, options);\n }\n\n /**\n * Add steps to the tour\n */\n addSteps(steps: TourStep[]): void {\n this.steps.push(...steps);\n }\n\n /**\n * Clear all steps\n */\n clearSteps(): void {\n this.steps = [];\n this.currentStepIndex = -1;\n }\n\n /**\n * Start the tour\n */\n start(): void {\n this.makeStep(0);\n }\n\n /**\n * Finish the tour\n */\n complete(): void {\n this.controlAction('complete');\n }\n\n private async controlAction(action: TourAction): Promise<void> {\n switch (action) {\n case 'next':\n this.makeStep(this.currentStepIndex + 1);\n break;\n case 'back':\n this.makeStep(this.currentStepIndex - 1);\n break;\n case 'cancel':\n this.hide();\n this.onTourCancel.next();\n break;\n case 'complete':\n this.hide();\n this.onTourComplete.next();\n break;\n }\n }\n\n private async makeStep(index: number): Promise<void> {\n if (index < 0 || index >= this.steps.length) {\n return;\n }\n\n this.active = true;\n\n await this.handleBeforeNextPromise();\n\n this.currentStepIndex = index;\n const step = this.steps[this.currentStepIndex];\n this.currentStep = Object.assign({}, this.options?.defaultStepOptions ?? {}, step);\n\n if (this.currentStep.beforeShowPromise) {\n this.tourToken.blocked.set(true);\n await this.currentStep.beforeShowPromise();\n }\n\n if (!this.active) {\n // tour could have been cancelled before beforeShowPromise completes\n return;\n }\n\n const anchorElement = this.getElement(step.attachTo?.element);\n this.scrollIntoView(this.currentStep, anchorElement);\n\n const anchorElementRef = this.isElementVisible(anchorElement)\n ? new ElementRef(anchorElement!)\n : undefined;\n\n if (anchorElementRef) {\n this.attachOverlay(anchorElementRef);\n } else {\n this.centerOverlay();\n }\n this.handleResizeSubscription(anchorElementRef);\n\n this.tourToken.currentStep.next({\n step,\n stepNumber: this.currentStepIndex + 1,\n totalSteps: this.steps.length,\n anchor: anchorElementRef\n });\n this.tourToken.blocked.set(false);\n }\n\n private scrollIntoView(step: TourStep, element?: HTMLElement): void {\n if (!element || !(step.scrollTo || step.scrollToHandler)) {\n return;\n }\n if (step.scrollToHandler) {\n step.scrollToHandler(element);\n } else {\n element?.scrollIntoView(step.scrollTo);\n }\n }\n\n private async handleBeforeNextPromise(): Promise<void> {\n if (!this.active) {\n return;\n }\n if (this.currentStep?.beforeNextPromise) {\n this.tourToken.blocked.set(true);\n await this.currentStep.beforeNextPromise();\n this.tourToken.blocked.set(false);\n }\n }\n\n private centerOverlay(): void {\n this.positionChangeSub?.unsubscribe();\n this.createOrUpdateOverlays();\n\n const positionStrategy = this.overlayRef!.getConfig().positionStrategy;\n if (!positionStrategy || positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n this.overlayRef!.updatePositionStrategy(\n this.overlay.position().global().centerHorizontally().centerVertically()\n );\n }\n this.tourToken.positionChange.next(undefined);\n }\n\n private attachOverlay(anchor: ElementRef<HTMLElement>): void {\n this.createOrUpdateOverlays();\n\n const positionStrategy = this.overlayRef!.getConfig().positionStrategy;\n if (positionStrategy && positionStrategy instanceof FlexibleConnectedPositionStrategy) {\n positionStrategy.setOrigin(anchor);\n } else {\n this.createFlexiblePositionStrategy(anchor);\n }\n }\n\n private createFlexiblePositionStrategy(anchor: ElementRef<HTMLElement>): void {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(anchor)\n .withGrowAfterOpen(true)\n .withPositions([\n // On top\n { originX: 'center', overlayX: 'center', originY: 'top', overlayY: 'bottom' },\n { originX: 'start', overlayX: 'start', originY: 'top', overlayY: 'bottom' },\n { originX: 'end', overlayX: 'end', originY: 'top', overlayY: 'bottom' },\n // On bottom\n { originX: 'center', overlayX: 'center', originY: 'bottom', overlayY: 'top' },\n { originX: 'start', overlayX: 'start', originY: 'bottom', overlayY: 'top' },\n { originX: 'end', overlayX: 'end', originY: 'bottom', overlayY: 'top' },\n // Left and right\n { originX: 'start', overlayX: 'end', originY: 'center', overlayY: 'center' },\n { originX: 'end', overlayX: 'start', originY: 'center', overlayY: 'center' }\n ]);\n this.positionChangeSub = positionStrategy.positionChanges\n .pipe(map(change => ({ change, anchor })))\n // We only want to forward the next channel, as the positionChanges completes when setting a new origin.\n .subscribe(value => this.tourToken.positionChange.next(value));\n this.overlayRef!.updatePositionStrategy(positionStrategy);\n }\n\n private createOrUpdateOverlays(): void {\n if (this.overlayRef) {\n // This moves the dispatcher to the top, allowing it to catch other open overlays.\n // Much lighter than to detach and re-attach the portal, not re-creating the si-tour\n // component for each step\n this.outsideClickDispatcher.remove(this.overlayRef);\n this.outsideClickDispatcher.add(this.overlayRef);\n return;\n }\n\n const componentInjector = Injector.create({\n providers: [{ provide: SI_TOUR_TOKEN, useValue: this.tourToken }],\n parent: this.injector\n });\n\n // first the highlighter,\n const hlPortal = new ComponentPortal(SiTourHighlightComponent, undefined, componentInjector);\n this.overlayRefHighlight = this.overlay.create({\n positionStrategy: this.overlay.position().global()\n });\n this.overlayRefHighlight.attach(hlPortal);\n\n // then the dialog\n this.portal = new ComponentPortal(SiTourComponent, undefined, componentInjector);\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n direction: isRTL() ? 'rtl' : 'ltr'\n });\n this.overlayRef.attach(this.portal);\n // needs a subscriber, otherwise events will be ignored and the .backdrop CSS hack doesn't help\n this.overlayRef.outsidePointerEvents().subscribe();\n }\n\n private handleResizeSubscription(anchorElement: ElementRef<HTMLElement> | undefined): void {\n this.resizeSub?.unsubscribe();\n this.resizeSub = undefined;\n if (anchorElement) {\n this.resizeSub = merge(\n // this catches edge cases e.g. with side-panel\n this.resizeObserver.observe(this.document.body, 20, false),\n this.resizeObserver.observe(anchorElement.nativeElement, 20, false)\n )\n .pipe(\n throttleTime(20, undefined, { trailing: true }),\n map((): undefined => undefined),\n tap(() => {\n if (!this.isElementVisible(anchorElement?.nativeElement)) {\n // repositions to center if anchor disappears\n this.centerOverlay();\n } else {\n this.overlayRef?.updatePosition();\n }\n })\n )\n .subscribe(this.tourToken.sizeChange);\n }\n }\n\n private isElementVisible(element: HTMLElement | undefined): boolean {\n const rect = element?.getBoundingClientRect();\n return !!rect?.width && !!rect.height;\n }\n\n private getElement(\n selectorOrElement?: string | HTMLElement | (() => string | HTMLElement)\n ): HTMLElement | undefined {\n if (typeof selectorOrElement === 'function') {\n selectorOrElement = selectorOrElement();\n }\n if (!selectorOrElement) {\n return undefined;\n }\n if (typeof selectorOrElement === 'string') {\n const element = this.document.querySelector<HTMLElement>(selectorOrElement);\n return element ?? undefined;\n }\n return selectorOrElement;\n }\n\n private async hide(): Promise<void> {\n await this.handleBeforeNextPromise();\n this.currentStepIndex = -1;\n this.currentStep = undefined;\n this.active = false;\n this.resizeSub?.unsubscribe();\n this.positionChangeSub?.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.overlayRefHighlight?.dispose();\n this.overlayRefHighlight = undefined;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-tour.service';\nexport * from './si-tour.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { SI_TRANSLATABLE_VALUES } from '@siemens/element-translate-ng/translate';
2
- export * from '@siemens/element-translate-ng/translate';
3
2
 
4
3
  /* eslint-disable */
5
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-translate.mjs","sources":["../../../../projects/element-ng/translate/si-translatable-keys.interface.ts","../../../../projects/element-ng/translate/si-translatable-overrides.provider.ts","../../../../projects/element-ng/translate/index.ts","../../../../projects/element-ng/translate/siemens-element-ng-translate.ts"],"sourcesContent":["/* eslint-disable */\n\n// Auto-generated file. Run 'npx update-translatable-keys' to update.\n\nexport interface SiTranslatableKeys {\n 'SI_ABOUT.LOGO_ALT'?: string;\n 'SI_AI_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_ALERT_DIALOG.OK'?: string;\n 'SI_APPLICATION_HEADER.LAUNCHPAD'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_ACTIONS'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_NAVIGATION'?: string;\n 'SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT'?: string;\n 'SI_BREADCRUMB'?: string;\n 'SI_BREADCRUMB_ROUTER_LABEL'?: string;\n 'SI_CAROUSEL.NEXT'?: string;\n 'SI_CAROUSEL.PAUSE'?: string;\n 'SI_CAROUSEL.PLAY'?: string;\n 'SI_CAROUSEL.PREVIOUS'?: string;\n 'SI_CAROUSEL.ROLE_DESCRIPTION'?: string;\n 'SI_CAROUSEL.SLIDE_PAGE'?: string;\n 'SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION'?: string;\n 'SI_CHANGE_PASSWORD.BACK'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CONFIRM_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.NEW_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.PASSWORD_POLICY'?: string;\n 'SI_CHAT_INPUT.ATTACH_FILE'?: string;\n 'SI_CHAT_INPUT.INTERRUPT'?: string;\n 'SI_CHAT_INPUT.LABEL'?: string;\n 'SI_CHAT_INPUT.PLACEHOLDER'?: string;\n 'SI_CHAT_INPUT.SECONDARY_ACTIONS'?: string;\n 'SI_CHAT_INPUT.SEND'?: string;\n 'SI_COLOR_PICKER.SELECTED_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.CANCEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.HIDDEN'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.SUBMIT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.VISIBLE'?: string;\n 'SI_CONFIRMATION_DIALOG.NO'?: string;\n 'SI_CONFIRMATION_DIALOG.YES'?: string;\n 'SI_CONTENT_ACTION_BAR.TOGGLE'?: string;\n 'SI_DASHBOARD.EXPAND'?: string;\n 'SI_DASHBOARD.EXPAND_WIDGET_ACTIONS'?: string;\n 'SI_DASHBOARD.RESTORE'?: string;\n 'SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON'?: string;\n 'SI_DATEPICKER.CALENDAR_WEEK_LABEL'?: string;\n 'SI_DATEPICKER.DISABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.ENABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.END_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.END_TIME_LABEL'?: string;\n 'SI_DATEPICKER.HOURS'?: string;\n 'SI_DATEPICKER.MILLISECONDS'?: string;\n 'SI_DATEPICKER.MINUTES'?: string;\n 'SI_DATEPICKER.NEXT'?: string;\n 'SI_DATEPICKER.PERIOD'?: string;\n 'SI_DATEPICKER.PREVIOUS'?: string;\n 'SI_DATEPICKER.SECONDS'?: string;\n 'SI_DATEPICKER.START_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.START_TIME_LABEL'?: string;\n 'SI_DATEPICKER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.ADVANCED'?: string;\n 'SI_DATE_RANGE_FILTER.AFTER'?: string;\n 'SI_DATE_RANGE_FILTER.APPLY'?: string;\n 'SI_DATE_RANGE_FILTER.BEFORE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER'?: string;\n 'SI_DATE_RANGE_FILTER.DAYS'?: string;\n 'SI_DATE_RANGE_FILTER.FROM'?: string;\n 'SI_DATE_RANGE_FILTER.HOURS'?: string;\n 'SI_DATE_RANGE_FILTER.MINUTES'?: string;\n 'SI_DATE_RANGE_FILTER.MONTHS'?: string;\n 'SI_DATE_RANGE_FILTER.NOW'?: string;\n 'SI_DATE_RANGE_FILTER.PRESETS'?: string;\n 'SI_DATE_RANGE_FILTER.PREVIEW'?: string;\n 'SI_DATE_RANGE_FILTER.RANGE'?: string;\n 'SI_DATE_RANGE_FILTER.REF_POINT'?: string;\n 'SI_DATE_RANGE_FILTER.SEARCH'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_END'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL'?: string;\n 'SI_DATE_RANGE_FILTER.TO'?: string;\n 'SI_DATE_RANGE_FILTER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.UNIT'?: string;\n 'SI_DATE_RANGE_FILTER.VALUE'?: string;\n 'SI_DATE_RANGE_FILTER.WEEKS'?: string;\n 'SI_DATE_RANGE_FILTER.WITHIN'?: string;\n 'SI_DATE_RANGE_FILTER.YEARS'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.CANCEL_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.SAVE_BTN'?: string;\n 'SI_ELECTRON_TITLEBAR.BACK'?: string;\n 'SI_ELECTRON_TITLEBAR.FORWARD'?: string;\n 'SI_ELECTRON_TITLEBAR.MENU'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK'?: string;\n 'SI_FILE_UPLOADER.ACCEPTED_FILE_TYPES'?: string;\n 'SI_FILE_UPLOADER.CANCEL'?: string;\n 'SI_FILE_UPLOADER.CLEAR'?: string;\n 'SI_FILE_UPLOADER.DROP'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_TYPE'?: string;\n 'SI_FILE_UPLOADER.FILE_SELECT'?: string;\n 'SI_FILE_UPLOADER.MAX_FILE_REACHED'?: string;\n 'SI_FILE_UPLOADER.MAX_SIZE'?: string;\n 'SI_FILE_UPLOADER.REMOVE'?: string;\n 'SI_FILE_UPLOADER.UPLOAD'?: string;\n 'SI_FILE_UPLOADER.UPLOADING'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_COMPLETED'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_FAILED'?: string;\n 'SI_FILTERED_SEARCH.CLEAR'?: string;\n 'SI_FILTERED_SEARCH.ITEM_COUNT'?: string;\n 'SI_FILTERED_SEARCH.SEARCH'?: string;\n 'SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT'?: string;\n 'SI_FILTERED_SEARCH.SUBMIT_BUTTON'?: string;\n 'SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION'?: string;\n 'SI_FILTER_BAR.NO_FILTERS'?: string;\n 'SI_FILTER_BAR.RESET_FILTERS'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_END'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.EMAIL'?: string;\n 'SI_FORM_CONTAINER.ERROR.END_BEFORE_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.HOURS'?: string;\n 'SI_FORM_CONTAINER.ERROR.INVALID_PHONE'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV4'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV6'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.MILLISECONDS'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN'?: string;\n 'SI_FORM_CONTAINER.ERROR.MINUTES'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.PATTERN'?: string;\n 'SI_FORM_CONTAINER.ERROR.PHONE_COUNTRY'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE'?: string;\n 'SI_FORM_CONTAINER.ERROR.SECONDS'?: string;\n 'SI_ICON_STATUS.CAUTION'?: string;\n 'SI_ICON_STATUS.CRITICAL'?: string;\n 'SI_ICON_STATUS.DANGER'?: string;\n 'SI_ICON_STATUS.INFO'?: string;\n 'SI_ICON_STATUS.PENDING'?: string;\n 'SI_ICON_STATUS.PROGRESS'?: string;\n 'SI_ICON_STATUS.SUCCESS'?: string;\n 'SI_ICON_STATUS.UNKNOWN'?: string;\n 'SI_ICON_STATUS.WARNING'?: string;\n 'SI_LANGUAGE_SWITCHER.LABEL'?: string;\n 'SI_LAUNCHPAD.CLOSE'?: string;\n 'SI_LAUNCHPAD.DEFAULT_CATEGORY_TITLE'?: string;\n 'SI_LAUNCHPAD.EXTERNAL_LINK'?: string;\n 'SI_LAUNCHPAD.FAVORITE_APPS'?: string;\n 'SI_LAUNCHPAD.SHOW_LESS'?: string;\n 'SI_LAUNCHPAD.SHOW_MORE'?: string;\n 'SI_LAUNCHPAD.SUB_TITLE'?: string;\n 'SI_LAUNCHPAD.TITLE'?: string;\n 'SI_LIST_DETAILS.BACK'?: string;\n 'SI_LIST_WIDGET.SEARCH_PLACEHOLDER'?: string;\n 'SI_LIST_WIDGET.SORT_ASCENDING'?: string;\n 'SI_LIST_WIDGET.SORT_DESCENDING'?: string;\n 'SI_LOADING_SPINNER.LABEL'?: string;\n 'SI_LOGIN_BASIC.BACK'?: string;\n 'SI_LOGIN_BASIC.FORGOT_PASSWORD'?: string;\n 'SI_LOGIN_BASIC.LOGIN'?: string;\n 'SI_LOGIN_BASIC.NEXT'?: string;\n 'SI_LOGIN_BASIC.PASSWORD'?: string;\n 'SI_LOGIN_BASIC.REGISTER_NOW'?: string;\n 'SI_LOGIN_BASIC.USERNAME'?: string;\n 'SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP'?: string;\n 'SI_MAIN_DETAIL_CONTAINER.BACK'?: string;\n 'SI_NAVBAR.OPEN_LAUNCHPAD'?: string;\n 'SI_NAVBAR.TOGGLE_NAVIGATION'?: string;\n 'SI_NAVBAR_VERTICAL.COLLAPSE'?: string;\n 'SI_NAVBAR_VERTICAL.EXPAND'?: string;\n 'SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.TOGGLE'?: string;\n 'SI_PAGINATION.BACK'?: string;\n 'SI_PAGINATION.FORWARD'?: string;\n 'SI_PAGINATION.NAV_LABEL'?: string;\n 'SI_PASSWORD_TOGGLE.HIDE'?: string;\n 'SI_PASSWORD_TOGGLE.SHOW'?: string;\n 'SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER'?: string;\n 'SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY'?: string;\n 'SI_PHOTO_UPLOAD.APPLY_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CANCEL'?: string;\n 'SI_PHOTO_UPLOAD.CHANGE_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_TYPE'?: string;\n 'SI_PHOTO_UPLOAD.MODAL_TITLE'?: string;\n 'SI_PHOTO_UPLOAD.REMOVE'?: string;\n 'SI_PHOTO_UPLOAD.UPLOAD_PHOTO'?: string;\n 'SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL'?: string;\n 'SI_PROGRESSBAR.LABEL'?: string;\n 'SI_SEARCH_BAR.CLEAR_BUTTON'?: string;\n 'SI_SELECT.NO-RESULTS-FOUND'?: string;\n 'SI_SELECT.SEARCH-PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.CLOSE'?: string;\n 'SI_SIDE_PANEL.ENTER_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.EXIT_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.SEARCH_PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.TOGGLE'?: string;\n 'SI_SKIP_LINKS.JUMP_TO'?: string;\n 'SI_SLIDER.DECREMENT'?: string;\n 'SI_SLIDER.INCREMENT'?: string;\n 'SI_SLIDER.LABEL'?: string;\n 'SI_SORT_BAR.TITLE'?: string;\n 'SI_STATUS_BAR.ALL_OK'?: string;\n 'SI_STATUS_BAR.COLLAPSE'?: string;\n 'SI_STATUS_BAR.EXPAND'?: string;\n 'SI_STATUS_BAR.MUTE'?: string;\n 'SI_THRESHOLD.ADD'?: string;\n 'SI_THRESHOLD.DELETE'?: string;\n 'SI_THRESHOLD.INPUT_LABEL'?: string;\n 'SI_THRESHOLD.STATUS'?: string;\n 'SI_TOAST.CLOSE'?: string;\n 'SI_TOUR.BACK'?: string;\n 'SI_TOUR.CLOSE'?: string;\n 'SI_TOUR.DONE'?: string;\n 'SI_TOUR.NEXT'?: string;\n 'SI_TOUR.PROGRESS'?: string;\n 'SI_TOUR.SKIP'?: string;\n 'SI_TREE_VIEW.COLLAPSE_ALL'?: string;\n 'SI_TREE_VIEW.EXPAND_ALL'?: string;\n 'SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL'?: string;\n 'SI_USER_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_WEATHER_WIDGET.FORECAST_LABEL'?: string;\n 'SI_WEATHER_WIDGET.ILLUSTRATION_ALT'?: string;\n 'SI_WEATHER_WIDGET.METRICS_LABEL'?: string;\n 'SI_WIZARD.BACK'?: string;\n 'SI_WIZARD.CANCEL'?: string;\n 'SI_WIZARD.COMPLETED'?: string;\n 'SI_WIZARD.NEXT'?: string;\n 'SI_WIZARD.SAVE'?: string;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Provider } from '@angular/core';\nimport { SI_TRANSLATABLE_VALUES } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslatableKeys } from './si-translatable-keys.interface';\n\nexport const provideSiTranslatableOverrides: (values: SiTranslatableKeys) => Provider = values => ({\n useValue: values,\n multi: true,\n provide: SI_TRANSLATABLE_VALUES\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translatable-keys.interface';\nexport * from './si-translatable-overrides.provider';\n// @deprecated use @simpl-labs/element-translate-ng/translate directly\nexport * from '@siemens/element-translate-ng/translate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;MCSa,8BAA8B,GAA6C,MAAM,KAAK;AACjG,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE;AACV,CAAA;;ACbD;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-ng-translate.mjs","sources":["../../../../projects/element-ng/translate/si-translatable-keys.interface.ts","../../../../projects/element-ng/translate/si-translatable-overrides.provider.ts","../../../../projects/element-ng/translate/index.ts","../../../../projects/element-ng/translate/siemens-element-ng-translate.ts"],"sourcesContent":["/* eslint-disable */\n\n// Auto-generated file. Run 'npx update-translatable-keys' to update.\n\nexport interface SiTranslatableKeys {\n 'SI_ABOUT.LOGO_ALT'?: string;\n 'SI_AI_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_ALERT_DIALOG.OK'?: string;\n 'SI_APPLICATION_HEADER.LAUNCHPAD'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_ACTIONS'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_NAVIGATION'?: string;\n 'SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT'?: string;\n 'SI_BREADCRUMB'?: string;\n 'SI_BREADCRUMB_ROUTER_LABEL'?: string;\n 'SI_CAROUSEL.NEXT'?: string;\n 'SI_CAROUSEL.PAUSE'?: string;\n 'SI_CAROUSEL.PLAY'?: string;\n 'SI_CAROUSEL.PREVIOUS'?: string;\n 'SI_CAROUSEL.ROLE_DESCRIPTION'?: string;\n 'SI_CAROUSEL.SLIDE_PAGE'?: string;\n 'SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION'?: string;\n 'SI_CHANGE_PASSWORD.BACK'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CONFIRM_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.NEW_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.PASSWORD_POLICY'?: string;\n 'SI_CHAT_INPUT.ATTACH_FILE'?: string;\n 'SI_CHAT_INPUT.INTERRUPT'?: string;\n 'SI_CHAT_INPUT.LABEL'?: string;\n 'SI_CHAT_INPUT.PLACEHOLDER'?: string;\n 'SI_CHAT_INPUT.SECONDARY_ACTIONS'?: string;\n 'SI_CHAT_INPUT.SEND'?: string;\n 'SI_COLOR_PICKER.SELECTED_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.CANCEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.HIDDEN'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.SUBMIT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.VISIBLE'?: string;\n 'SI_CONFIRMATION_DIALOG.NO'?: string;\n 'SI_CONFIRMATION_DIALOG.YES'?: string;\n 'SI_CONTENT_ACTION_BAR.TOGGLE'?: string;\n 'SI_DASHBOARD.EXPAND'?: string;\n 'SI_DASHBOARD.EXPAND_WIDGET_ACTIONS'?: string;\n 'SI_DASHBOARD.RESTORE'?: string;\n 'SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON'?: string;\n 'SI_DATEPICKER.CALENDAR_WEEK_LABEL'?: string;\n 'SI_DATEPICKER.DISABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.ENABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.END_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.END_TIME_LABEL'?: string;\n 'SI_DATEPICKER.HOURS'?: string;\n 'SI_DATEPICKER.MILLISECONDS'?: string;\n 'SI_DATEPICKER.MINUTES'?: string;\n 'SI_DATEPICKER.NEXT'?: string;\n 'SI_DATEPICKER.PERIOD'?: string;\n 'SI_DATEPICKER.PREVIOUS'?: string;\n 'SI_DATEPICKER.SECONDS'?: string;\n 'SI_DATEPICKER.START_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.START_TIME_LABEL'?: string;\n 'SI_DATEPICKER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.ADVANCED'?: string;\n 'SI_DATE_RANGE_FILTER.AFTER'?: string;\n 'SI_DATE_RANGE_FILTER.APPLY'?: string;\n 'SI_DATE_RANGE_FILTER.BEFORE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER'?: string;\n 'SI_DATE_RANGE_FILTER.DAYS'?: string;\n 'SI_DATE_RANGE_FILTER.FROM'?: string;\n 'SI_DATE_RANGE_FILTER.HOURS'?: string;\n 'SI_DATE_RANGE_FILTER.MINUTES'?: string;\n 'SI_DATE_RANGE_FILTER.MONTHS'?: string;\n 'SI_DATE_RANGE_FILTER.NOW'?: string;\n 'SI_DATE_RANGE_FILTER.PRESETS'?: string;\n 'SI_DATE_RANGE_FILTER.PREVIEW'?: string;\n 'SI_DATE_RANGE_FILTER.RANGE'?: string;\n 'SI_DATE_RANGE_FILTER.REF_POINT'?: string;\n 'SI_DATE_RANGE_FILTER.SEARCH'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_END'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL'?: string;\n 'SI_DATE_RANGE_FILTER.TO'?: string;\n 'SI_DATE_RANGE_FILTER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.UNIT'?: string;\n 'SI_DATE_RANGE_FILTER.VALUE'?: string;\n 'SI_DATE_RANGE_FILTER.WEEKS'?: string;\n 'SI_DATE_RANGE_FILTER.WITHIN'?: string;\n 'SI_DATE_RANGE_FILTER.YEARS'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.CANCEL_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.SAVE_BTN'?: string;\n 'SI_ELECTRON_TITLEBAR.BACK'?: string;\n 'SI_ELECTRON_TITLEBAR.FORWARD'?: string;\n 'SI_ELECTRON_TITLEBAR.MENU'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK'?: string;\n 'SI_FILE_UPLOADER.ACCEPTED_FILE_TYPES'?: string;\n 'SI_FILE_UPLOADER.CANCEL'?: string;\n 'SI_FILE_UPLOADER.CLEAR'?: string;\n 'SI_FILE_UPLOADER.DROP'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_TYPE'?: string;\n 'SI_FILE_UPLOADER.MAX_FILE_REACHED'?: string;\n 'SI_FILE_UPLOADER.MAX_SIZE'?: string;\n 'SI_FILE_UPLOADER.REMOVE'?: string;\n 'SI_FILE_UPLOADER.UPLOAD'?: string;\n 'SI_FILE_UPLOADER.UPLOADING'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_COMPLETED'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_FAILED'?: string;\n 'SI_FILTERED_SEARCH.CLEAR'?: string;\n 'SI_FILTERED_SEARCH.ITEM_COUNT'?: string;\n 'SI_FILTERED_SEARCH.SEARCH'?: string;\n 'SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT'?: string;\n 'SI_FILTERED_SEARCH.SUBMIT_BUTTON'?: string;\n 'SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION'?: string;\n 'SI_FILTER_BAR.NO_FILTERS'?: string;\n 'SI_FILTER_BAR.RESET_FILTERS'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_END'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.EMAIL'?: string;\n 'SI_FORM_CONTAINER.ERROR.END_BEFORE_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.HOURS'?: string;\n 'SI_FORM_CONTAINER.ERROR.INVALID_PHONE'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV4'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV6'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.MILLISECONDS'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN'?: string;\n 'SI_FORM_CONTAINER.ERROR.MINUTES'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.PATTERN'?: string;\n 'SI_FORM_CONTAINER.ERROR.PHONE_COUNTRY'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE'?: string;\n 'SI_FORM_CONTAINER.ERROR.SECONDS'?: string;\n 'SI_ICON_STATUS.CAUTION'?: string;\n 'SI_ICON_STATUS.CRITICAL'?: string;\n 'SI_ICON_STATUS.DANGER'?: string;\n 'SI_ICON_STATUS.INFO'?: string;\n 'SI_ICON_STATUS.PENDING'?: string;\n 'SI_ICON_STATUS.PROGRESS'?: string;\n 'SI_ICON_STATUS.SUCCESS'?: string;\n 'SI_ICON_STATUS.UNKNOWN'?: string;\n 'SI_ICON_STATUS.WARNING'?: string;\n 'SI_LANGUAGE_SWITCHER.LABEL'?: string;\n 'SI_LAUNCHPAD.CLOSE'?: string;\n 'SI_LAUNCHPAD.DEFAULT_CATEGORY_TITLE'?: string;\n 'SI_LAUNCHPAD.EXTERNAL_LINK'?: string;\n 'SI_LAUNCHPAD.FAVORITE_APPS'?: string;\n 'SI_LAUNCHPAD.SHOW_LESS'?: string;\n 'SI_LAUNCHPAD.SHOW_MORE'?: string;\n 'SI_LAUNCHPAD.SUB_TITLE'?: string;\n 'SI_LAUNCHPAD.TITLE'?: string;\n 'SI_LIST_DETAILS.BACK'?: string;\n 'SI_LIST_WIDGET.SEARCH_PLACEHOLDER'?: string;\n 'SI_LIST_WIDGET.SORT_ASCENDING'?: string;\n 'SI_LIST_WIDGET.SORT_DESCENDING'?: string;\n 'SI_LOADING_SPINNER.LABEL'?: string;\n 'SI_LOGIN_BASIC.BACK'?: string;\n 'SI_LOGIN_BASIC.FORGOT_PASSWORD'?: string;\n 'SI_LOGIN_BASIC.LOGIN'?: string;\n 'SI_LOGIN_BASIC.NEXT'?: string;\n 'SI_LOGIN_BASIC.PASSWORD'?: string;\n 'SI_LOGIN_BASIC.REGISTER_NOW'?: string;\n 'SI_LOGIN_BASIC.USERNAME'?: string;\n 'SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP'?: string;\n 'SI_MAIN_DETAIL_CONTAINER.BACK'?: string;\n 'SI_NAVBAR.OPEN_LAUNCHPAD'?: string;\n 'SI_NAVBAR.TOGGLE_NAVIGATION'?: string;\n 'SI_NAVBAR_VERTICAL.COLLAPSE'?: string;\n 'SI_NAVBAR_VERTICAL.EXPAND'?: string;\n 'SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.TOGGLE'?: string;\n 'SI_PAGINATION.BACK'?: string;\n 'SI_PAGINATION.FORWARD'?: string;\n 'SI_PAGINATION.NAV_LABEL'?: string;\n 'SI_PASSWORD_TOGGLE.HIDE'?: string;\n 'SI_PASSWORD_TOGGLE.SHOW'?: string;\n 'SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER'?: string;\n 'SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY'?: string;\n 'SI_PHOTO_UPLOAD.APPLY_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CANCEL'?: string;\n 'SI_PHOTO_UPLOAD.CHANGE_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_TYPE'?: string;\n 'SI_PHOTO_UPLOAD.MODAL_TITLE'?: string;\n 'SI_PHOTO_UPLOAD.REMOVE'?: string;\n 'SI_PHOTO_UPLOAD.UPLOAD_PHOTO'?: string;\n 'SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL'?: string;\n 'SI_PROGRESSBAR.LABEL'?: string;\n 'SI_SEARCH_BAR.CLEAR_BUTTON'?: string;\n 'SI_SELECT.NO-RESULTS-FOUND'?: string;\n 'SI_SELECT.SEARCH-PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.CLOSE'?: string;\n 'SI_SIDE_PANEL.ENTER_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.EXIT_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.SEARCH_PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.TOGGLE'?: string;\n 'SI_SKIP_LINKS.JUMP_TO'?: string;\n 'SI_SLIDER.DECREMENT'?: string;\n 'SI_SLIDER.INCREMENT'?: string;\n 'SI_SLIDER.LABEL'?: string;\n 'SI_STATUS_BAR.ALL_OK'?: string;\n 'SI_STATUS_BAR.MUTE'?: string;\n 'SI_STATUS_BAR.TOGGLE'?: string;\n 'SI_THRESHOLD.ADD'?: string;\n 'SI_THRESHOLD.DELETE'?: string;\n 'SI_THRESHOLD.INPUT_LABEL'?: string;\n 'SI_THRESHOLD.STATUS'?: string;\n 'SI_TOAST.CLOSE'?: string;\n 'SI_TOUR.BACK'?: string;\n 'SI_TOUR.CLOSE'?: string;\n 'SI_TOUR.DONE'?: string;\n 'SI_TOUR.NEXT'?: string;\n 'SI_TOUR.PROGRESS'?: string;\n 'SI_TOUR.SKIP'?: string;\n 'SI_TREE_VIEW.COLLAPSE_ALL'?: string;\n 'SI_TREE_VIEW.EXPAND_ALL'?: string;\n 'SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL'?: string;\n 'SI_USER_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_WEATHER_WIDGET.FORECAST_LABEL'?: string;\n 'SI_WEATHER_WIDGET.ILLUSTRATION_ALT'?: string;\n 'SI_WEATHER_WIDGET.METRICS_LABEL'?: string;\n 'SI_WIZARD.BACK'?: string;\n 'SI_WIZARD.CANCEL'?: string;\n 'SI_WIZARD.COMPLETED'?: string;\n 'SI_WIZARD.NEXT'?: string;\n 'SI_WIZARD.SAVE'?: string;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Provider } from '@angular/core';\nimport { SI_TRANSLATABLE_VALUES } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslatableKeys } from './si-translatable-keys.interface';\n\nexport const provideSiTranslatableOverrides: (values: SiTranslatableKeys) => Provider = values => ({\n useValue: values,\n multi: true,\n provide: SI_TRANSLATABLE_VALUES\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translatable-keys.interface';\nexport * from './si-translatable-overrides.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;MCSa,8BAA8B,GAA6C,MAAM,KAAK;AACjG,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE;AACV,CAAA;;ACbD;;;AAGG;;ACHH;;AAEG;;;;"}