@siemens/element-ng 49.14.0 → 49.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/fesm2022/siemens-element-ng-about.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-accordion.mjs +12 -3
  4. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-action-modal.mjs +64 -11
  6. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-ag-grid.mjs +7 -0
  8. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-application-header.mjs +76 -32
  10. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +6 -1
  12. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-autocomplete.mjs +17 -3
  14. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
  16. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-card.mjs +21 -4
  18. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-color-picker.mjs +11 -5
  20. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +29 -2
  22. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-common.mjs +20 -2
  24. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-content-action-bar.mjs +1 -0
  26. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-dashboard.mjs +20 -2
  28. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-date-range-filter.mjs +36 -12
  30. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-datepicker.mjs +80 -15
  32. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
  34. package/fesm2022/siemens-element-ng-filter-bar.mjs +11 -4
  35. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-filtered-search.mjs +95 -38
  37. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  38. package/fesm2022/siemens-element-ng-form.mjs +2 -0
  39. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  40. package/fesm2022/siemens-element-ng-formly.mjs +10 -7
  41. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  42. package/fesm2022/siemens-element-ng-header-dropdown.mjs +5 -3
  43. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  44. package/fesm2022/siemens-element-ng-icon.mjs +1 -0
  45. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  46. package/fesm2022/siemens-element-ng-ip-input.mjs +7 -11
  47. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  48. package/fesm2022/siemens-element-ng-link.mjs +10 -1
  49. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  50. package/fesm2022/siemens-element-ng-menu.mjs +30 -4
  51. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  52. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +3 -0
  53. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  54. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +11 -0
  55. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  56. package/fesm2022/siemens-element-ng-navbar.mjs +1 -0
  57. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  58. package/fesm2022/siemens-element-ng-number-input.mjs +11 -2
  59. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  60. package/fesm2022/siemens-element-ng-phone-number.mjs +14 -14
  61. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  62. package/fesm2022/siemens-element-ng-pills-input.mjs +14 -19
  63. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  64. package/fesm2022/siemens-element-ng-popover-legacy.mjs +13 -2
  65. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  66. package/fesm2022/siemens-element-ng-popover.mjs +35 -26
  67. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  68. package/fesm2022/siemens-element-ng-resize-observer.mjs +21 -3
  69. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  70. package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
  71. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  72. package/fesm2022/siemens-element-ng-search-bar.mjs +14 -8
  73. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-select.mjs +80 -8
  75. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  76. package/fesm2022/siemens-element-ng-shadow-root.mjs +31 -4
  77. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  78. package/fesm2022/siemens-element-ng-skip-links.mjs +5 -1
  79. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  80. package/fesm2022/siemens-element-ng-split.mjs +10 -8
  81. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  82. package/fesm2022/siemens-element-ng-status-bar.mjs +30 -3
  83. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  84. package/fesm2022/siemens-element-ng-tabs.mjs +6 -0
  85. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  86. package/fesm2022/siemens-element-ng-threshold.mjs +12 -3
  87. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  88. package/fesm2022/siemens-element-ng-toast-notification.mjs +6 -2
  89. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  90. package/fesm2022/siemens-element-ng-tooltip.mjs +9 -4
  91. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  92. package/fesm2022/siemens-element-ng-tree-view.mjs +5 -1
  93. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  94. package/fesm2022/siemens-element-ng-typeahead.mjs +15 -27
  95. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  96. package/fesm2022/siemens-element-ng-wizard.mjs +45 -5
  97. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  98. package/package.json +3 -3
  99. package/template-i18n.json +1 -1
  100. package/types/siemens-element-ng-accordion.d.ts +12 -3
  101. package/types/siemens-element-ng-application-header.d.ts +10 -9
  102. package/types/siemens-element-ng-auto-collapsable-list.d.ts +6 -1
  103. package/types/siemens-element-ng-autocomplete.d.ts +17 -3
  104. package/types/siemens-element-ng-card.d.ts +21 -4
  105. package/types/siemens-element-ng-color-picker.d.ts +8 -1
  106. package/types/siemens-element-ng-common.d.ts +12 -2
  107. package/types/siemens-element-ng-dashboard.d.ts +5 -0
  108. package/types/siemens-element-ng-date-range-filter.d.ts +13 -1
  109. package/types/siemens-element-ng-datepicker.d.ts +62 -9
  110. package/types/siemens-element-ng-filter-bar.d.ts +11 -4
  111. package/types/siemens-element-ng-filtered-search.d.ts +8 -1
  112. package/types/siemens-element-ng-form.d.ts +2 -0
  113. package/types/siemens-element-ng-formly.d.ts +3 -1
  114. package/types/siemens-element-ng-header-dropdown.d.ts +5 -3
  115. package/types/siemens-element-ng-icon.d.ts +1 -0
  116. package/types/siemens-element-ng-ip-input.d.ts +1 -1
  117. package/types/siemens-element-ng-link.d.ts +10 -1
  118. package/types/siemens-element-ng-menu.d.ts +17 -2
  119. package/types/siemens-element-ng-navbar-vertical-next.d.ts +2 -0
  120. package/types/siemens-element-ng-navbar.d.ts +1 -0
  121. package/types/siemens-element-ng-number-input.d.ts +11 -2
  122. package/types/siemens-element-ng-phone-number.d.ts +1 -2
  123. package/types/siemens-element-ng-popover.d.ts +8 -5
  124. package/types/siemens-element-ng-resize-observer.d.ts +21 -3
  125. package/types/siemens-element-ng-search-bar.d.ts +10 -2
  126. package/types/siemens-element-ng-select.d.ts +34 -2
  127. package/types/siemens-element-ng-shadow-root.d.ts +1 -0
  128. package/types/siemens-element-ng-split.d.ts +11 -8
  129. package/types/siemens-element-ng-status-bar.d.ts +30 -3
  130. package/types/siemens-element-ng-threshold.d.ts +8 -1
  131. package/types/siemens-element-ng-toast-notification.d.ts +3 -1
  132. package/types/siemens-element-ng-tooltip.d.ts +6 -4
  133. package/types/siemens-element-ng-tree-view.d.ts +5 -1
  134. package/types/siemens-element-ng-typeahead.d.ts +6 -4
  135. package/types/siemens-element-ng-wizard.d.ts +13 -1
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-link.mjs","sources":["../../../../projects/element-ng/link/si-link-action.service.ts","../../../../projects/element-ng/link/si-link.directive.ts","../../../../projects/element-ng/link/si-link.module.ts","../../../../projects/element-ng/link/index.ts","../../../../projects/element-ng/link/siemens-element-ng-link.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Link, LinkAction } from './link.model';\n\n@Injectable()\nexport class SiLinkActionService {\n private actionSubject = new Subject<LinkAction>();\n\n /**\n * Observable which emits the link and param to run the action on.\n *\n * @defaultValue this.actionSubject.asObservable()\n */\n readonly action$ = this.actionSubject.asObservable();\n\n /**\n * Emit a new link and param pair to run the action on.\n */\n emit(link: Link, param: any): void {\n this.actionSubject.next({ link, param });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { LocationStrategy } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n Directive,\n DoCheck,\n HostListener,\n inject,\n InjectionToken,\n input,\n OnChanges,\n OnDestroy,\n output,\n signal\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, Router, UrlTree } from '@angular/router';\nimport { injectSiTranslateService } from '@siemens/element-translate-ng/translate';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { AriaCurrentType } from './aria-current.model';\nimport { Link } from './link.model';\nimport { SiLinkActionService } from './si-link-action.service';\n\nexport const SI_LINK_DEFAULT_NAVIGATION_EXTRA = new InjectionToken<NavigationExtras>(\n 'SI_LINK_DEFAULT_NAVIGATION_EXTRA'\n);\n\n@Directive({\n selector: '[siLink]',\n host: {\n '[attr.href]': 'href()',\n '[attr.target]': 'target()',\n '[attr.title]': 'title()',\n '[attr.aria-current]': 'isAriaCurrent()',\n '[class]': 'active() ? activeClass() : null'\n },\n exportAs: 'siLink'\n})\nexport class SiLinkDirective implements DoCheck, OnChanges, OnDestroy {\n readonly siLink = input<Link>();\n readonly siLinkDefaultTarget = input<string>();\n readonly actionParam = input<any>();\n readonly activeClass = input<string>();\n /** @defaultValue false */\n readonly exactMatch = input(false, { transform: booleanAttribute });\n /**\n * Type for `aria-current` to set if routerLink is active.\n */\n readonly ariaCurrent = input<AriaCurrentType>();\n\n readonly activeChange = output<boolean>();\n\n protected readonly href = signal<string | undefined>(undefined);\n protected readonly target = signal<string | undefined>(undefined);\n protected readonly title = signal<string | undefined>(undefined);\n protected readonly isAriaCurrent = computed(() =>\n this.active() ? (this.ariaCurrent() ?? 'true') : undefined\n );\n\n /** @defaultValue false */\n readonly active = signal(false);\n\n private readonly destroyer = new Subject<void>();\n\n private router = inject(Router, { optional: true });\n private activatedRoute = inject(ActivatedRoute, { optional: true });\n private locationStrategy = inject(LocationStrategy, { optional: true });\n private translateService = injectSiTranslateService();\n private actionService = inject(SiLinkActionService, { optional: true });\n private defaultNavigationExtra = inject(SI_LINK_DEFAULT_NAVIGATION_EXTRA, { optional: true });\n\n private get urlTree(): UrlTree {\n const link = this.siLink()!.link;\n return this.router!.createUrlTree(\n Array.isArray(link!) ? link! : [link!],\n this.navigationExtras\n );\n }\n\n private get navigationExtras(): NavigationExtras {\n return {\n relativeTo: this.activatedRoute,\n preserveFragment: true,\n queryParamsHandling: 'merge',\n ...this.defaultNavigationExtra,\n ...this.siLink()!.navigationExtras\n };\n }\n\n ngOnDestroy(): void {\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n ngOnChanges(): void {\n const siLink = this.siLink();\n if (!siLink) {\n this.href.set(undefined);\n return;\n }\n this.destroyer.next();\n\n if (siLink.tooltip) {\n this.translateService\n .translateAsync(siLink.tooltip)\n .pipe(takeUntil(this.destroyer))\n .subscribe(text => this.title.set(text));\n }\n\n if (siLink.action) {\n this.href.set('');\n } else if (siLink.link) {\n this.subscribeRouter();\n } else if (siLink.href) {\n this.href.set(siLink.href);\n this.target.set(siLink.target ?? this.siLinkDefaultTarget());\n } else {\n // In case the siLink has no link, href or action,\n // we remove the href to avoid the mouse pointer.\n this.href.set(undefined);\n }\n }\n\n ngDoCheck(): void {\n // this deep-checks if isActive has changed. It then updates the internal state and emits the event\n // to be symmetric with the router-link case. queueMicroTask avoids \"Expression has changed after it was checked\" errors\n const siLink = this.siLink();\n if (\n siLink &&\n !siLink.link &&\n siLink.isActive !== undefined &&\n this.active() !== siLink.isActive\n ) {\n this.active.set(siLink.isActive);\n queueMicrotask(() => {\n this.activeChange.emit(this.active());\n });\n }\n }\n\n private subscribeRouter(): void {\n if (!this.router || !this.activatedRoute) {\n return;\n }\n\n // Initial check\n this.updateActiveByRouter();\n this.router.events\n .pipe(\n takeUntil(this.destroyer),\n filter(e => e instanceof NavigationEnd)\n )\n .subscribe(() => this.updateActiveByRouter());\n }\n\n private updateActiveByRouter(): void {\n const urlTree = this.urlTree;\n this.active.set(\n this.siLink()!.isActive ??\n this.router!.isActive(\n urlTree,\n this.exactMatch()\n ? {\n queryParams: 'exact',\n matrixParams: 'exact',\n paths: 'exact',\n fragment: 'exact'\n }\n : {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n )\n );\n this.href.set(this.locationStrategy!.prepareExternalUrl(this.router!.serializeUrl(urlTree)));\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n const siLink = this.siLink();\n if (siLink?.action) {\n event.preventDefault();\n\n const actionParam = this.actionParam();\n if (typeof siLink.action === 'string') {\n this.actionService?.emit(siLink, this.actionParam());\n } else if (actionParam === undefined) {\n siLink.action();\n } else {\n siLink.action(actionParam);\n }\n return;\n }\n\n // ignore regular links, allow user to open links in new tab or window\n if (\n !siLink ||\n siLink.href ||\n event.button > 0 ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n // We have links without any action, href or link. For example grouping navbar items that hold a\n // dropdown with links. That is why we need to check if the link property is set.\n if (siLink.link && this.router) {\n this.router.navigateByUrl(this.urlTree, this.navigationExtras);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLinkDirective } from './si-link.directive';\n\n@NgModule({\n imports: [SiLinkDirective],\n exports: [SiLinkDirective]\n})\nexport class SiLinkModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './link.model';\nexport * from './si-link-action.service';\nexport * from './si-link.directive';\nexport * from './si-link.module';\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-link.mjs","sources":["../../../../projects/element-ng/link/si-link-action.service.ts","../../../../projects/element-ng/link/si-link.directive.ts","../../../../projects/element-ng/link/si-link.module.ts","../../../../projects/element-ng/link/index.ts","../../../../projects/element-ng/link/siemens-element-ng-link.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { Link, LinkAction } from './link.model';\n\n@Injectable()\nexport class SiLinkActionService {\n private actionSubject = new Subject<LinkAction>();\n\n /**\n * Observable which emits the link and param to run the action on.\n *\n * @defaultValue this.actionSubject.asObservable()\n */\n readonly action$ = this.actionSubject.asObservable();\n\n /**\n * Emit a new link and param pair to run the action on.\n */\n emit(link: Link, param: any): void {\n this.actionSubject.next({ link, param });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { LocationStrategy } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n Directive,\n DoCheck,\n HostListener,\n inject,\n InjectionToken,\n input,\n OnChanges,\n OnDestroy,\n output,\n signal\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, NavigationExtras, Router, UrlTree } from '@angular/router';\nimport { injectSiTranslateService } from '@siemens/element-translate-ng/translate';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { AriaCurrentType } from './aria-current.model';\nimport { Link } from './link.model';\nimport { SiLinkActionService } from './si-link-action.service';\n\nexport const SI_LINK_DEFAULT_NAVIGATION_EXTRA = new InjectionToken<NavigationExtras>(\n 'SI_LINK_DEFAULT_NAVIGATION_EXTRA'\n);\n\n@Directive({\n selector: '[siLink]',\n host: {\n '[attr.href]': 'href()',\n '[attr.target]': 'target()',\n '[attr.title]': 'title()',\n '[attr.aria-current]': 'isAriaCurrent()',\n '[class]': 'active() ? activeClass() : null'\n },\n exportAs: 'siLink'\n})\nexport class SiLinkDirective implements DoCheck, OnChanges, OnDestroy {\n /** Link configuration, including the destination, action, and tooltip. */\n readonly siLink = input<Link>();\n /** Default target for links configured with an `href` but no explicit target. */\n readonly siLinkDefaultTarget = input<string>();\n /** Parameter passed to the configured link action. */\n readonly actionParam = input<any>();\n /** CSS class applied while the link is active. */\n readonly activeClass = input<string>();\n /**\n * Whether router links must match the complete URL to be considered active.\n *\n * @defaultValue false\n */\n readonly exactMatch = input(false, { transform: booleanAttribute });\n /**\n * Type for `aria-current` to set if routerLink is active.\n */\n readonly ariaCurrent = input<AriaCurrentType>();\n\n /** Emits when the active state of the link changes. */\n readonly activeChange = output<boolean>();\n\n protected readonly href = signal<string | undefined>(undefined);\n protected readonly target = signal<string | undefined>(undefined);\n protected readonly title = signal<string | undefined>(undefined);\n protected readonly isAriaCurrent = computed(() =>\n this.active() ? (this.ariaCurrent() ?? 'true') : undefined\n );\n\n /** @defaultValue false */\n readonly active = signal(false);\n\n private readonly destroyer = new Subject<void>();\n\n private router = inject(Router, { optional: true });\n private activatedRoute = inject(ActivatedRoute, { optional: true });\n private locationStrategy = inject(LocationStrategy, { optional: true });\n private translateService = injectSiTranslateService();\n private actionService = inject(SiLinkActionService, { optional: true });\n private defaultNavigationExtra = inject(SI_LINK_DEFAULT_NAVIGATION_EXTRA, { optional: true });\n\n private get urlTree(): UrlTree {\n const link = this.siLink()!.link;\n return this.router!.createUrlTree(\n Array.isArray(link!) ? link! : [link!],\n this.navigationExtras\n );\n }\n\n private get navigationExtras(): NavigationExtras {\n return {\n relativeTo: this.activatedRoute,\n preserveFragment: true,\n queryParamsHandling: 'merge',\n ...this.defaultNavigationExtra,\n ...this.siLink()!.navigationExtras\n };\n }\n\n ngOnDestroy(): void {\n this.destroyer.next();\n this.destroyer.complete();\n }\n\n ngOnChanges(): void {\n const siLink = this.siLink();\n if (!siLink) {\n this.href.set(undefined);\n return;\n }\n this.destroyer.next();\n\n if (siLink.tooltip) {\n this.translateService\n .translateAsync(siLink.tooltip)\n .pipe(takeUntil(this.destroyer))\n .subscribe(text => this.title.set(text));\n }\n\n if (siLink.action) {\n this.href.set('');\n } else if (siLink.link) {\n this.subscribeRouter();\n } else if (siLink.href) {\n this.href.set(siLink.href);\n this.target.set(siLink.target ?? this.siLinkDefaultTarget());\n } else {\n // In case the siLink has no link, href or action,\n // we remove the href to avoid the mouse pointer.\n this.href.set(undefined);\n }\n }\n\n ngDoCheck(): void {\n // this deep-checks if isActive has changed. It then updates the internal state and emits the event\n // to be symmetric with the router-link case. queueMicroTask avoids \"Expression has changed after it was checked\" errors\n const siLink = this.siLink();\n if (\n siLink &&\n !siLink.link &&\n siLink.isActive !== undefined &&\n this.active() !== siLink.isActive\n ) {\n this.active.set(siLink.isActive);\n queueMicrotask(() => {\n this.activeChange.emit(this.active());\n });\n }\n }\n\n private subscribeRouter(): void {\n if (!this.router || !this.activatedRoute) {\n return;\n }\n\n // Initial check\n this.updateActiveByRouter();\n this.router.events\n .pipe(\n takeUntil(this.destroyer),\n filter(e => e instanceof NavigationEnd)\n )\n .subscribe(() => this.updateActiveByRouter());\n }\n\n private updateActiveByRouter(): void {\n const urlTree = this.urlTree;\n this.active.set(\n this.siLink()!.isActive ??\n this.router!.isActive(\n urlTree,\n this.exactMatch()\n ? {\n queryParams: 'exact',\n matrixParams: 'exact',\n paths: 'exact',\n fragment: 'exact'\n }\n : {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n )\n );\n this.href.set(this.locationStrategy!.prepareExternalUrl(this.router!.serializeUrl(urlTree)));\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n const siLink = this.siLink();\n if (siLink?.action) {\n event.preventDefault();\n\n const actionParam = this.actionParam();\n if (typeof siLink.action === 'string') {\n this.actionService?.emit(siLink, this.actionParam());\n } else if (actionParam === undefined) {\n siLink.action();\n } else {\n siLink.action(actionParam);\n }\n return;\n }\n\n // ignore regular links, allow user to open links in new tab or window\n if (\n !siLink ||\n siLink.href ||\n event.button > 0 ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n // We have links without any action, href or link. For example grouping navbar items that hold a\n // dropdown with links. That is why we need to check if the link property is set.\n if (siLink.link && this.router) {\n this.router.navigateByUrl(this.urlTree, this.navigationExtras);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiLinkDirective } from './si-link.directive';\n\n@NgModule({\n imports: [SiLinkDirective],\n exports: [SiLinkDirective]\n})\nexport class SiLinkModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './link.model';\nexport * from './si-link-action.service';\nexport * from './si-link.directive';\nexport * from './si-link.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -109,15 +109,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
109
109
  * SPDX-License-Identifier: MIT
110
110
  */
111
111
  class SiMenuItemBase {
112
+ /** Content displayed in the menu item's badge. */
112
113
  badge = input(...(ngDevMode ? [undefined, { debugName: "badge" }] : []));
113
114
  /**
115
+ * Color variant of the menu item's badge.
116
+ *
114
117
  * @defaultValue 'secondary'
115
118
  */
116
119
  badgeColor = input('secondary', ...(ngDevMode ? [{ debugName: "badgeColor" }] : []));
120
+ /** Icon displayed before the menu item label. */
117
121
  icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
118
- /** @defaultValue false */
122
+ /**
123
+ * Whether to show a dot badge on the icon. A string or number is shown as dot content.
124
+ *
125
+ * @defaultValue false
126
+ */
119
127
  iconBadgeDot = input(false, ...(ngDevMode ? [{ debugName: "iconBadgeDot" }] : []));
120
- /** @defaultValue false */
128
+ /**
129
+ * Whether the menu item is disabled.
130
+ *
131
+ * @defaultValue false
132
+ */
121
133
  disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
122
134
  badgeDotHasContent = computed(() => {
123
135
  return typeof this.iconBadgeDot() === 'string' || typeof this.iconBadgeDot() === 'number';
@@ -236,10 +248,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
236
248
  * SPDX-License-Identifier: MIT
237
249
  */
238
250
  class SiMenuFactoryComponent {
251
+ /** Menu items to render. Supports legacy and current menu item models. */
239
252
  items = input(...(ngDevMode ? [undefined, { debugName: "items" }] : []));
253
+ /** Parameter passed to triggered menu item actions. */
240
254
  actionParam = input(...(ngDevMode ? [undefined, { debugName: "actionParam" }] : []));
241
255
  linkActionService = inject(SiLinkActionService, { optional: true });
242
256
  menuActionService = inject(SiMenuActionService, { optional: true });
257
+ trackItem(index, item) {
258
+ if ('id' in item && item.id) {
259
+ return item.id;
260
+ }
261
+ if ('label' in item && item.label) {
262
+ return item.label;
263
+ }
264
+ if ('title' in item && item.title) {
265
+ return item.title;
266
+ }
267
+ return index;
268
+ }
243
269
  isNewItemStyle(item) {
244
270
  return 'label' in item || item.type === 'divider' || item.type === 'radio-group';
245
271
  }
@@ -263,7 +289,7 @@ class SiMenuFactoryComponent {
263
289
  }
264
290
  }
265
291
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiMenuFactoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
266
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiMenuFactoryComponent, isStandalone: true, selector: "si-menu-factory", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, actionParam: { classPropertyName: "actionParam", publicName: "actionParam", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<si-menu>\n @for (item of items(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\" />\n }\n <ng-template #itemTemplate let-item siMenuFactoryItemGuard>\n @if (isNewItemStyle(item)) {\n @switch (item.type) {\n @case ('group') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [cdkMenuTriggerFor]=\"submenu\"\n [cdkMenuTriggerData]=\"{ $implicit: item.children }\"\n >{{ item.label | translate }}\n </si-menu-item>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.children\" [actionParam]=\"actionParam()\" />\n </ng-template>\n }\n @case ('action') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('radio-group') {\n <div cdkMenuGroup>\n @for (radioItem of item.children; track radioItem) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: radioItem }\" />\n }\n </div>\n }\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-radio>\n }\n @case ('checkbox') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-checkbox>\n }\n @case ('header') {\n <si-menu-header>{{ item.label | translate }}</si-menu-header>\n }\n @case ('divider') {\n <si-menu-divider />\n }\n }\n } @else if (isLegacyItemStyle(item)) {\n @switch (item.type) {\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'radio'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-radio>\n }\n @case ('check') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'check'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-checkbox>\n }\n @default {\n @if (item.isHeading) {\n <div class=\"dropdown-item-text dropdown-header\">\n {{ item.title | translate }}\n </div>\n } @else {\n @if (item.title !== '-') {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [siLink]=\"item\"\n [iconBadgeDot]=\"item.badgeDot\"\n [actionParam]=\"actionParam()\"\n [cdkMenuTriggerFor]=\"item.items ? submenu : null\"\n [cdkMenuTriggerData]=\"item\"\n >\n {{ item.title | translate }}\n </a>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.items!\" [actionParam]=\"actionParam()\" />\n </ng-template>\n } @else {\n <div class=\"dropdown-divider\"></div>\n }\n }\n }\n }\n }\n </ng-template>\n</si-menu>\n", dependencies: [{ kind: "component", type: SiMenuFactoryComponent, selector: "si-menu-factory", inputs: ["items", "actionParam"] }, { kind: "directive", type: SiMenuDirective, selector: "si-menu" }, { kind: "component", type: SiMenuItemComponent, selector: "si-menu-item, a[si-menu-item], button[si-menu-item]" }, { kind: "component", type: SiMenuItemRadioComponent, selector: "si-menu-item-radio" }, { kind: "component", type: SiMenuItemCheckboxComponent, selector: "si-menu-item-checkbox, button[si-menu-item-checkbox]" }, { kind: "directive", type: SiMenuHeaderDirective, selector: "si-menu-header" }, { kind: "directive", type: SiMenuDividerDirective, selector: "si-menu-divider" }, { kind: "ngmodule", type: SiLinkModule }, { kind: "directive", type: i1$1.SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: CdkMenuGroup, selector: "[cdkMenuGroup]", exportAs: ["cdkMenuGroup"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SiMenuFactoryItemGuardDirective, selector: "[siMenuFactoryItemGuard]" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default });
292
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiMenuFactoryComponent, isStandalone: true, selector: "si-menu-factory", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, actionParam: { classPropertyName: "actionParam", publicName: "actionParam", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<si-menu>\n @for (item of items(); track trackItem($index, item)) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\" />\n }\n <ng-template #itemTemplate let-item siMenuFactoryItemGuard>\n @if (isNewItemStyle(item)) {\n @switch (item.type) {\n @case ('group') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [cdkMenuTriggerFor]=\"submenu\"\n [cdkMenuTriggerData]=\"{ $implicit: item.children }\"\n >{{ item.label | translate }}\n </si-menu-item>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.children\" [actionParam]=\"actionParam()\" />\n </ng-template>\n }\n @case ('action') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('radio-group') {\n <div cdkMenuGroup>\n @for (radioItem of item.children; track radioItem) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: radioItem }\" />\n }\n </div>\n }\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-radio>\n }\n @case ('checkbox') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-checkbox>\n }\n @case ('header') {\n <si-menu-header>{{ item.label | translate }}</si-menu-header>\n }\n @case ('divider') {\n <si-menu-divider />\n }\n }\n } @else if (isLegacyItemStyle(item)) {\n @switch (item.type) {\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'radio'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-radio>\n }\n @case ('check') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'check'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-checkbox>\n }\n @default {\n @if (item.isHeading) {\n <div class=\"dropdown-item-text dropdown-header\">\n {{ item.title | translate }}\n </div>\n } @else {\n @if (item.title !== '-') {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [siLink]=\"item\"\n [iconBadgeDot]=\"item.badgeDot\"\n [actionParam]=\"actionParam()\"\n [cdkMenuTriggerFor]=\"item.items ? submenu : null\"\n [cdkMenuTriggerData]=\"item\"\n >\n {{ item.title | translate }}\n </a>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.items!\" [actionParam]=\"actionParam()\" />\n </ng-template>\n } @else {\n <div class=\"dropdown-divider\"></div>\n }\n }\n }\n }\n }\n </ng-template>\n</si-menu>\n", dependencies: [{ kind: "component", type: SiMenuFactoryComponent, selector: "si-menu-factory", inputs: ["items", "actionParam"] }, { kind: "directive", type: SiMenuDirective, selector: "si-menu" }, { kind: "component", type: SiMenuItemComponent, selector: "si-menu-item, a[si-menu-item], button[si-menu-item]" }, { kind: "component", type: SiMenuItemRadioComponent, selector: "si-menu-item-radio" }, { kind: "component", type: SiMenuItemCheckboxComponent, selector: "si-menu-item-checkbox, button[si-menu-item-checkbox]" }, { kind: "directive", type: SiMenuHeaderDirective, selector: "si-menu-header" }, { kind: "directive", type: SiMenuDividerDirective, selector: "si-menu-divider" }, { kind: "ngmodule", type: SiLinkModule }, { kind: "directive", type: i1$1.SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: CdkMenuGroup, selector: "[cdkMenuGroup]", exportAs: ["cdkMenuGroup"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SiMenuFactoryItemGuardDirective, selector: "[siMenuFactoryItemGuard]" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default });
267
293
  }
268
294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiMenuFactoryComponent, decorators: [{
269
295
  type: Component,
@@ -281,7 +307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
281
307
  NgTemplateOutlet,
282
308
  RouterLink,
283
309
  SiMenuFactoryItemGuardDirective
284
- ], changeDetection: ChangeDetectionStrategy.Default, template: "<si-menu>\n @for (item of items(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\" />\n }\n <ng-template #itemTemplate let-item siMenuFactoryItemGuard>\n @if (isNewItemStyle(item)) {\n @switch (item.type) {\n @case ('group') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [cdkMenuTriggerFor]=\"submenu\"\n [cdkMenuTriggerData]=\"{ $implicit: item.children }\"\n >{{ item.label | translate }}\n </si-menu-item>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.children\" [actionParam]=\"actionParam()\" />\n </ng-template>\n }\n @case ('action') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('radio-group') {\n <div cdkMenuGroup>\n @for (radioItem of item.children; track radioItem) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: radioItem }\" />\n }\n </div>\n }\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-radio>\n }\n @case ('checkbox') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-checkbox>\n }\n @case ('header') {\n <si-menu-header>{{ item.label | translate }}</si-menu-header>\n }\n @case ('divider') {\n <si-menu-divider />\n }\n }\n } @else if (isLegacyItemStyle(item)) {\n @switch (item.type) {\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'radio'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-radio>\n }\n @case ('check') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'check'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-checkbox>\n }\n @default {\n @if (item.isHeading) {\n <div class=\"dropdown-item-text dropdown-header\">\n {{ item.title | translate }}\n </div>\n } @else {\n @if (item.title !== '-') {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [siLink]=\"item\"\n [iconBadgeDot]=\"item.badgeDot\"\n [actionParam]=\"actionParam()\"\n [cdkMenuTriggerFor]=\"item.items ? submenu : null\"\n [cdkMenuTriggerData]=\"item\"\n >\n {{ item.title | translate }}\n </a>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.items!\" [actionParam]=\"actionParam()\" />\n </ng-template>\n } @else {\n <div class=\"dropdown-divider\"></div>\n }\n }\n }\n }\n }\n </ng-template>\n</si-menu>\n" }]
310
+ ], changeDetection: ChangeDetectionStrategy.Default, template: "<si-menu>\n @for (item of items(); track trackItem($index, item)) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\" />\n }\n <ng-template #itemTemplate let-item siMenuFactoryItemGuard>\n @if (isNewItemStyle(item)) {\n @switch (item.type) {\n @case ('group') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [cdkMenuTriggerFor]=\"submenu\"\n [cdkMenuTriggerData]=\"{ $implicit: item.children }\"\n >{{ item.label | translate }}\n </si-menu-item>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.children\" [actionParam]=\"actionParam()\" />\n </ng-template>\n }\n @case ('action') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('radio-group') {\n <div cdkMenuGroup>\n @for (radioItem of item.children; track radioItem) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: radioItem }\" />\n }\n </div>\n }\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-radio>\n }\n @case ('checkbox') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-checkbox>\n }\n @case ('header') {\n <si-menu-header>{{ item.label | translate }}</si-menu-header>\n }\n @case ('divider') {\n <si-menu-divider />\n }\n }\n } @else if (isLegacyItemStyle(item)) {\n @switch (item.type) {\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'radio'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-radio>\n }\n @case ('check') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'check'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-checkbox>\n }\n @default {\n @if (item.isHeading) {\n <div class=\"dropdown-item-text dropdown-header\">\n {{ item.title | translate }}\n </div>\n } @else {\n @if (item.title !== '-') {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [siLink]=\"item\"\n [iconBadgeDot]=\"item.badgeDot\"\n [actionParam]=\"actionParam()\"\n [cdkMenuTriggerFor]=\"item.items ? submenu : null\"\n [cdkMenuTriggerData]=\"item\"\n >\n {{ item.title | translate }}\n </a>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.items!\" [actionParam]=\"actionParam()\" />\n </ng-template>\n } @else {\n <div class=\"dropdown-divider\"></div>\n }\n }\n }\n }\n }\n </ng-template>\n</si-menu>\n" }]
285
311
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], actionParam: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionParam", required: false }] }] } });
286
312
 
287
313
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-menu.mjs","sources":["../../../../projects/element-ng/menu/si-menu-bar.directive.ts","../../../../projects/element-ng/menu/si-menu-divider.directive.ts","../../../../projects/element-ng/menu/si-menu-action.service.ts","../../../../projects/element-ng/menu/si-menu-factory-item-guard.directive.ts","../../../../projects/element-ng/menu/si-menu-header.directive.ts","../../../../projects/element-ng/menu/si-menu-item-base.directive.ts","../../../../projects/element-ng/menu/si-menu-item-checkbox.component.ts","../../../../projects/element-ng/menu/si-menu-item-checkbox.component.html","../../../../projects/element-ng/menu/si-menu-item-radio.component.ts","../../../../projects/element-ng/menu/si-menu-item-radio.component.html","../../../../projects/element-ng/menu/si-menu-item.component.ts","../../../../projects/element-ng/menu/si-menu-item.component.html","../../../../projects/element-ng/menu/si-menu.directive.ts","../../../../projects/element-ng/menu/si-menu-factory.component.ts","../../../../projects/element-ng/menu/si-menu-factory.component.html","../../../../projects/element-ng/menu/si-menu.module.ts","../../../../projects/element-ng/menu/index.ts","../../../../projects/element-ng/menu/siemens-element-ng-menu.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuBar, CdkTargetMenuAim } from '@angular/cdk/menu';\nimport { Directive, inject, input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu-bar',\n host: {\n class: 'd-inline-flex',\n style: 'gap: 1px',\n '[tabindex]': 'tabIndex'\n },\n hostDirectives: [CdkMenuBar, CdkTargetMenuAim]\n})\nexport class SiMenuBarDirective {\n private menuBar = inject(CdkMenuBar, { self: true });\n\n protected get tabIndex(): 0 | -1 | null {\n return this.disabled() ? -1 : this.menuBar._getTabIndex();\n }\n\n /**\n * Sets the menu-bar disabled, i.e. sets tabindex=\"-1\"\n */\n readonly disabled = input<boolean>();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // violating eslint rule, to a have clean API\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu-divider',\n host: {\n class: 'd-block dropdown-divider'\n }\n})\nexport class SiMenuDividerDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { MenuItemAction, MenuItemCheckbox, MenuItemRadio } from './si-menu-model';\n\n/**\n * Implement and provide this to an {@link SiMenuFactoryComponent}\n * to receive trigger events.\n */\nexport abstract class SiMenuActionService {\n /** Will be called by {@link SiMenuFactoryComponent} if an action is defined with a string instead of a function. */\n abstract actionTriggered(\n item: MenuItemAction | MenuItemRadio | MenuItemCheckbox,\n actionParam?: any\n ): void;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport { MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\n\nimport { MenuItem } from './si-menu-model';\n\n/** Required to have compiler checks on the factory template */\n@Directive({ selector: '[siMenuFactoryItemGuard]' })\nexport class SiMenuFactoryItemGuardDirective {\n static ngTemplateContextGuard(\n dir: SiMenuFactoryItemGuardDirective,\n ctx: any\n ): ctx is { $implicit: MenuItemLegacy | MenuItem } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // violating eslint rule, to a have clean API\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu-header',\n host: {\n class: 'dropdown-item-text dropdown-header'\n }\n})\nexport class SiMenuHeaderDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\n\n@Directive({\n host: {\n class: 'dropdown-item d-flex focus-inside',\n '[class.disabled]': 'disabled()'\n }\n})\nexport abstract class SiMenuItemBase {\n readonly badge = input<string | number>();\n /**\n * @defaultValue 'secondary'\n */\n readonly badgeColor = input('secondary');\n readonly icon = input<string>();\n\n /** @defaultValue false */\n readonly iconBadgeDot = input<boolean | string | number | undefined>(false);\n\n /** @defaultValue false */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly badgeDotHasContent = computed(() => {\n return typeof this.iconBadgeDot() === 'string' || typeof this.iconBadgeDot() === 'number';\n });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CDK_MENU, CdkMenuItemCheckbox, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementOk } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiMenuItemBase } from './si-menu-item-base.directive';\n\n@Component({\n selector: 'si-menu-item-checkbox, button[si-menu-item-checkbox]',\n imports: [SiIconComponent],\n templateUrl: './si-menu-item-checkbox.component.html',\n styleUrl: './si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItemCheckbox,\n inputs: ['cdkMenuItemChecked: checked', 'cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered']\n },\n CdkMenuTrigger\n ]\n})\nexport class SiMenuItemCheckboxComponent extends SiMenuItemBase {\n private cdkMenuItemCheckbox = inject(CdkMenuItemCheckbox);\n protected readonly icons = addIcons({ elementOk });\n protected readonly hideCheckmark = inject(CDK_MENU).orientation === 'horizontal';\n\n protected get checked(): boolean {\n return this.cdkMenuItemCheckbox.checked;\n }\n}\n","<div class=\"item-wrapper\">\n @let iconValue = icon();\n @if (iconValue && !badgeDotHasContent()) {\n <si-icon class=\"icon\" [class.badge-dot]=\"iconBadgeDot()\" [icon]=\"iconValue\" />\n } @else if (iconValue && badgeDotHasContent()) {\n <si-icon class=\"icon badge-dot\" [icon]=\"iconValue\" />\n <span class=\"badge-text\">{{ iconBadgeDot() }}</span>\n }\n <span class=\"item-title\">\n <ng-content />\n </span>\n <div class=\"item-end ms-2 d-flex me-n3 gap-1\">\n @if (badge()) {\n <span class=\"mx-0 badge\" [class]=\"`bg-${badgeColor()}`\">{{ badge() }}</span>\n }\n @if (checked && !hideCheckmark) {\n <si-icon class=\"icon\" [icon]=\"icons.elementOk\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuItemRadio, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementRecordFilled } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiMenuItemBase } from './si-menu-item-base.directive';\n\n@Component({\n selector: 'si-menu-item-radio',\n imports: [SiIconComponent],\n templateUrl: './si-menu-item-radio.component.html',\n styleUrl: './si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItemRadio,\n inputs: ['cdkMenuItemChecked: checked', 'cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered']\n },\n CdkMenuTrigger\n ]\n})\nexport class SiMenuItemRadioComponent extends SiMenuItemBase {\n private cdkMenuItemRadio = inject(CdkMenuItemRadio);\n protected readonly icons = addIcons({ elementRecordFilled });\n protected get checked(): boolean {\n return this.cdkMenuItemRadio.checked;\n }\n}\n","<div class=\"item-wrapper\">\n @let iconValue = icon();\n @if (iconValue && !badgeDotHasContent()) {\n <si-icon class=\"icon\" [class.badge-dot]=\"iconBadgeDot()\" [icon]=\"iconValue\" />\n } @else if (iconValue && badgeDotHasContent()) {\n <si-icon class=\"icon badge-dot\" [icon]=\"iconValue\" />\n <span class=\"badge-text\">{{ iconBadgeDot() }}</span>\n }\n <span class=\"item-title\">\n <ng-content />\n </span>\n <div class=\"item-end ms-2 d-flex me-n3 gap-1\">\n @if (badge()) {\n <span class=\"mx-0 badge\" [class]=\"`bg-${badgeColor()}`\">{{ badge() }}</span>\n }\n @if (checked) {\n <si-icon class=\"icon-sm me-1\" [icon]=\"icons.elementRecordFilled\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiMenuItemBase } from './si-menu-item-base.directive';\n\n@Component({\n selector: 'si-menu-item, a[si-menu-item], button[si-menu-item]',\n imports: [SiIconComponent],\n templateUrl: './si-menu-item.component.html',\n styleUrl: './si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItem,\n inputs: ['cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered']\n }\n ]\n})\nexport class SiMenuItemComponent extends SiMenuItemBase {\n private menuTrigger = inject(CdkMenuTrigger, { optional: true, self: true });\n protected readonly icons = addIcons({ elementRight2 });\n protected get hasSubmenu(): boolean {\n return !!this.menuTrigger?.menuTemplateRef;\n }\n}\n","<div class=\"item-wrapper\">\n @let iconValue = icon();\n @if (iconValue && !badgeDotHasContent()) {\n <si-icon class=\"icon\" [class.badge-dot]=\"iconBadgeDot()\" [icon]=\"iconValue\" />\n } @else if (iconValue && badgeDotHasContent()) {\n <si-icon class=\"icon badge-dot\" [icon]=\"iconValue\" />\n <span class=\"badge-text\">{{ iconBadgeDot() }}</span>\n }\n <span class=\"item-title\">\n <ng-content />\n </span>\n <div class=\"item-end ms-2 d-flex me-n3 gap-1\">\n @if (badge()) {\n <span class=\"mx-0 badge\" [class]=\"`bg-${badgeColor()}`\">{{ badge() }}</span>\n }\n <ng-content select=\".end\" />\n @if (hasSubmenu) {\n <si-icon class=\"icon submenu\" [icon]=\"icons.elementRight2\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenu, CdkTargetMenuAim } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n // violating eslint rule, to a have clean API\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu',\n host: {\n class: 'd-block dropdown-menu position-static'\n },\n hostDirectives: [CdkMenu, CdkTargetMenuAim]\n})\nexport class SiMenuDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuGroup, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\nimport { SiLinkActionService, SiLinkModule } from '@siemens/element-ng/link';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiMenuActionService } from './si-menu-action.service';\nimport { SiMenuDividerDirective } from './si-menu-divider.directive';\nimport { SiMenuFactoryItemGuardDirective } from './si-menu-factory-item-guard.directive';\nimport { SiMenuHeaderDirective } from './si-menu-header.directive';\nimport { SiMenuItemCheckboxComponent } from './si-menu-item-checkbox.component';\nimport { SiMenuItemRadioComponent } from './si-menu-item-radio.component';\nimport { SiMenuItemComponent } from './si-menu-item.component';\nimport { MenuItem, MenuItemAction, MenuItemCheckbox, MenuItemRadio } from './si-menu-model';\nimport { SiMenuDirective } from './si-menu.directive';\n\n@Component({\n selector: 'si-menu-factory',\n imports: [\n SiMenuDirective,\n SiMenuItemComponent,\n SiMenuItemRadioComponent,\n SiMenuItemCheckboxComponent,\n SiMenuHeaderDirective,\n SiMenuDividerDirective,\n SiLinkModule,\n CdkMenuTrigger,\n SiTranslatePipe,\n CdkMenuGroup,\n NgTemplateOutlet,\n RouterLink,\n SiMenuFactoryItemGuardDirective\n ],\n templateUrl: './si-menu-factory.component.html',\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class SiMenuFactoryComponent {\n readonly items = input<readonly (MenuItemLegacy | MenuItem)[]>();\n readonly actionParam = input();\n\n private linkActionService = inject(SiLinkActionService, { optional: true });\n private menuActionService = inject(SiMenuActionService, { optional: true });\n\n protected isNewItemStyle(item: MenuItemLegacy | MenuItem): item is MenuItem {\n return 'label' in item || item.type === 'divider' || item.type === 'radio-group';\n }\n\n protected isLegacyItemStyle(item: MenuItemLegacy | MenuItem): item is MenuItemLegacy {\n return !this.isNewItemStyle(item);\n }\n\n protected radioOrCheckboxTriggered(item: MenuItemLegacy): void {\n if (typeof item.action === 'function') {\n item.action(this.actionParam());\n } else {\n this.linkActionService?.emit(item, this.actionParam());\n }\n }\n\n protected runAction(item: MenuItemAction | MenuItemRadio | MenuItemCheckbox): void {\n if (typeof item.action === 'function') {\n item.action(this.actionParam(), item as any); // typescript cannot level down the item type properly\n }\n\n if (typeof item.action === 'string') {\n this.menuActionService?.actionTriggered(item, this.actionParam());\n }\n }\n}\n","<si-menu>\n @for (item of items(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\" />\n }\n <ng-template #itemTemplate let-item siMenuFactoryItemGuard>\n @if (isNewItemStyle(item)) {\n @switch (item.type) {\n @case ('group') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [cdkMenuTriggerFor]=\"submenu\"\n [cdkMenuTriggerData]=\"{ $implicit: item.children }\"\n >{{ item.label | translate }}\n </si-menu-item>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.children\" [actionParam]=\"actionParam()\" />\n </ng-template>\n }\n @case ('action') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('radio-group') {\n <div cdkMenuGroup>\n @for (radioItem of item.children; track radioItem) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: radioItem }\" />\n }\n </div>\n }\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-radio>\n }\n @case ('checkbox') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-checkbox>\n }\n @case ('header') {\n <si-menu-header>{{ item.label | translate }}</si-menu-header>\n }\n @case ('divider') {\n <si-menu-divider />\n }\n }\n } @else if (isLegacyItemStyle(item)) {\n @switch (item.type) {\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'radio'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-radio>\n }\n @case ('check') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'check'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-checkbox>\n }\n @default {\n @if (item.isHeading) {\n <div class=\"dropdown-item-text dropdown-header\">\n {{ item.title | translate }}\n </div>\n } @else {\n @if (item.title !== '-') {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [siLink]=\"item\"\n [iconBadgeDot]=\"item.badgeDot\"\n [actionParam]=\"actionParam()\"\n [cdkMenuTriggerFor]=\"item.items ? submenu : null\"\n [cdkMenuTriggerData]=\"item\"\n >\n {{ item.title | translate }}\n </a>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.items!\" [actionParam]=\"actionParam()\" />\n </ng-template>\n } @else {\n <div class=\"dropdown-divider\"></div>\n }\n }\n }\n }\n }\n </ng-template>\n</si-menu>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMenuBarDirective } from './si-menu-bar.directive';\nimport { SiMenuDividerDirective } from './si-menu-divider.directive';\nimport { SiMenuFactoryComponent } from './si-menu-factory.component';\nimport { SiMenuHeaderDirective } from './si-menu-header.directive';\nimport { SiMenuItemCheckboxComponent } from './si-menu-item-checkbox.component';\nimport { SiMenuItemRadioComponent } from './si-menu-item-radio.component';\nimport { SiMenuItemComponent } from './si-menu-item.component';\nimport { SiMenuDirective } from './si-menu.directive';\n\n@NgModule({\n imports: [\n SiMenuBarDirective,\n SiMenuDirective,\n SiMenuDividerDirective,\n SiMenuFactoryComponent,\n SiMenuHeaderDirective,\n SiMenuItemCheckboxComponent,\n SiMenuItemComponent,\n SiMenuItemRadioComponent\n ],\n exports: [\n SiMenuBarDirective,\n SiMenuDirective,\n SiMenuDividerDirective,\n SiMenuFactoryComponent,\n SiMenuHeaderDirective,\n SiMenuItemCheckboxComponent,\n SiMenuItemComponent,\n SiMenuItemRadioComponent\n ]\n})\nexport class SiMenuModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-menu.module';\nexport * from './si-menu-item.component';\nexport * from './si-menu-item-checkbox.component';\nexport * from './si-menu-item-radio.component';\nexport * from './si-menu.directive';\nexport * from './si-menu-bar.directive';\nexport * from './si-menu-header.directive';\nexport * from './si-menu-divider.directive';\nexport * from './si-menu-factory.component';\nexport * from './si-menu-model';\nexport * from './si-menu-action.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-menu.mjs","sources":["../../../../projects/element-ng/menu/si-menu-bar.directive.ts","../../../../projects/element-ng/menu/si-menu-divider.directive.ts","../../../../projects/element-ng/menu/si-menu-action.service.ts","../../../../projects/element-ng/menu/si-menu-factory-item-guard.directive.ts","../../../../projects/element-ng/menu/si-menu-header.directive.ts","../../../../projects/element-ng/menu/si-menu-item-base.directive.ts","../../../../projects/element-ng/menu/si-menu-item-checkbox.component.ts","../../../../projects/element-ng/menu/si-menu-item-checkbox.component.html","../../../../projects/element-ng/menu/si-menu-item-radio.component.ts","../../../../projects/element-ng/menu/si-menu-item-radio.component.html","../../../../projects/element-ng/menu/si-menu-item.component.ts","../../../../projects/element-ng/menu/si-menu-item.component.html","../../../../projects/element-ng/menu/si-menu.directive.ts","../../../../projects/element-ng/menu/si-menu-factory.component.ts","../../../../projects/element-ng/menu/si-menu-factory.component.html","../../../../projects/element-ng/menu/si-menu.module.ts","../../../../projects/element-ng/menu/index.ts","../../../../projects/element-ng/menu/siemens-element-ng-menu.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuBar, CdkTargetMenuAim } from '@angular/cdk/menu';\nimport { Directive, inject, input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu-bar',\n host: {\n class: 'd-inline-flex',\n style: 'gap: 1px',\n '[tabindex]': 'tabIndex'\n },\n hostDirectives: [CdkMenuBar, CdkTargetMenuAim]\n})\nexport class SiMenuBarDirective {\n private menuBar = inject(CdkMenuBar, { self: true });\n\n protected get tabIndex(): 0 | -1 | null {\n return this.disabled() ? -1 : this.menuBar._getTabIndex();\n }\n\n /**\n * Sets the menu-bar disabled, i.e. sets tabindex=\"-1\"\n */\n readonly disabled = input<boolean>();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // violating eslint rule, to a have clean API\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu-divider',\n host: {\n class: 'd-block dropdown-divider'\n }\n})\nexport class SiMenuDividerDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { MenuItemAction, MenuItemCheckbox, MenuItemRadio } from './si-menu-model';\n\n/**\n * Implement and provide this to an {@link SiMenuFactoryComponent}\n * to receive trigger events.\n */\nexport abstract class SiMenuActionService {\n /** Will be called by {@link SiMenuFactoryComponent} if an action is defined with a string instead of a function. */\n abstract actionTriggered(\n item: MenuItemAction | MenuItemRadio | MenuItemCheckbox,\n actionParam?: any\n ): void;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport { MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\n\nimport { MenuItem } from './si-menu-model';\n\n/** Required to have compiler checks on the factory template */\n@Directive({ selector: '[siMenuFactoryItemGuard]' })\nexport class SiMenuFactoryItemGuardDirective {\n static ngTemplateContextGuard(\n dir: SiMenuFactoryItemGuardDirective,\n ctx: any\n ): ctx is { $implicit: MenuItemLegacy | MenuItem } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // violating eslint rule, to a have clean API\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu-header',\n host: {\n class: 'dropdown-item-text dropdown-header'\n }\n})\nexport class SiMenuHeaderDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\n\n@Directive({\n host: {\n class: 'dropdown-item d-flex focus-inside',\n '[class.disabled]': 'disabled()'\n }\n})\nexport abstract class SiMenuItemBase {\n /** Content displayed in the menu item's badge. */\n readonly badge = input<string | number>();\n /**\n * Color variant of the menu item's badge.\n *\n * @defaultValue 'secondary'\n */\n readonly badgeColor = input('secondary');\n /** Icon displayed before the menu item label. */\n readonly icon = input<string>();\n\n /**\n * Whether to show a dot badge on the icon. A string or number is shown as dot content.\n *\n * @defaultValue false\n */\n readonly iconBadgeDot = input<boolean | string | number | undefined>(false);\n\n /**\n * Whether the menu item is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly badgeDotHasContent = computed(() => {\n return typeof this.iconBadgeDot() === 'string' || typeof this.iconBadgeDot() === 'number';\n });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CDK_MENU, CdkMenuItemCheckbox, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementOk } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiMenuItemBase } from './si-menu-item-base.directive';\n\n@Component({\n selector: 'si-menu-item-checkbox, button[si-menu-item-checkbox]',\n imports: [SiIconComponent],\n templateUrl: './si-menu-item-checkbox.component.html',\n styleUrl: './si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItemCheckbox,\n inputs: ['cdkMenuItemChecked: checked', 'cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered']\n },\n CdkMenuTrigger\n ]\n})\nexport class SiMenuItemCheckboxComponent extends SiMenuItemBase {\n private cdkMenuItemCheckbox = inject(CdkMenuItemCheckbox);\n protected readonly icons = addIcons({ elementOk });\n protected readonly hideCheckmark = inject(CDK_MENU).orientation === 'horizontal';\n\n protected get checked(): boolean {\n return this.cdkMenuItemCheckbox.checked;\n }\n}\n","<div class=\"item-wrapper\">\n @let iconValue = icon();\n @if (iconValue && !badgeDotHasContent()) {\n <si-icon class=\"icon\" [class.badge-dot]=\"iconBadgeDot()\" [icon]=\"iconValue\" />\n } @else if (iconValue && badgeDotHasContent()) {\n <si-icon class=\"icon badge-dot\" [icon]=\"iconValue\" />\n <span class=\"badge-text\">{{ iconBadgeDot() }}</span>\n }\n <span class=\"item-title\">\n <ng-content />\n </span>\n <div class=\"item-end ms-2 d-flex me-n3 gap-1\">\n @if (badge()) {\n <span class=\"mx-0 badge\" [class]=\"`bg-${badgeColor()}`\">{{ badge() }}</span>\n }\n @if (checked && !hideCheckmark) {\n <si-icon class=\"icon\" [icon]=\"icons.elementOk\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuItemRadio, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementRecordFilled } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiMenuItemBase } from './si-menu-item-base.directive';\n\n@Component({\n selector: 'si-menu-item-radio',\n imports: [SiIconComponent],\n templateUrl: './si-menu-item-radio.component.html',\n styleUrl: './si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItemRadio,\n inputs: ['cdkMenuItemChecked: checked', 'cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered']\n },\n CdkMenuTrigger\n ]\n})\nexport class SiMenuItemRadioComponent extends SiMenuItemBase {\n private cdkMenuItemRadio = inject(CdkMenuItemRadio);\n protected readonly icons = addIcons({ elementRecordFilled });\n protected get checked(): boolean {\n return this.cdkMenuItemRadio.checked;\n }\n}\n","<div class=\"item-wrapper\">\n @let iconValue = icon();\n @if (iconValue && !badgeDotHasContent()) {\n <si-icon class=\"icon\" [class.badge-dot]=\"iconBadgeDot()\" [icon]=\"iconValue\" />\n } @else if (iconValue && badgeDotHasContent()) {\n <si-icon class=\"icon badge-dot\" [icon]=\"iconValue\" />\n <span class=\"badge-text\">{{ iconBadgeDot() }}</span>\n }\n <span class=\"item-title\">\n <ng-content />\n </span>\n <div class=\"item-end ms-2 d-flex me-n3 gap-1\">\n @if (badge()) {\n <span class=\"mx-0 badge\" [class]=\"`bg-${badgeColor()}`\">{{ badge() }}</span>\n }\n @if (checked) {\n <si-icon class=\"icon-sm me-1\" [icon]=\"icons.elementRecordFilled\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementRight2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiMenuItemBase } from './si-menu-item-base.directive';\n\n@Component({\n selector: 'si-menu-item, a[si-menu-item], button[si-menu-item]',\n imports: [SiIconComponent],\n templateUrl: './si-menu-item.component.html',\n styleUrl: './si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: CdkMenuItem,\n inputs: ['cdkMenuItemDisabled: disabled'],\n outputs: ['cdkMenuItemTriggered: triggered']\n }\n ]\n})\nexport class SiMenuItemComponent extends SiMenuItemBase {\n private menuTrigger = inject(CdkMenuTrigger, { optional: true, self: true });\n protected readonly icons = addIcons({ elementRight2 });\n protected get hasSubmenu(): boolean {\n return !!this.menuTrigger?.menuTemplateRef;\n }\n}\n","<div class=\"item-wrapper\">\n @let iconValue = icon();\n @if (iconValue && !badgeDotHasContent()) {\n <si-icon class=\"icon\" [class.badge-dot]=\"iconBadgeDot()\" [icon]=\"iconValue\" />\n } @else if (iconValue && badgeDotHasContent()) {\n <si-icon class=\"icon badge-dot\" [icon]=\"iconValue\" />\n <span class=\"badge-text\">{{ iconBadgeDot() }}</span>\n }\n <span class=\"item-title\">\n <ng-content />\n </span>\n <div class=\"item-end ms-2 d-flex me-n3 gap-1\">\n @if (badge()) {\n <span class=\"mx-0 badge\" [class]=\"`bg-${badgeColor()}`\">{{ badge() }}</span>\n }\n <ng-content select=\".end\" />\n @if (hasSubmenu) {\n <si-icon class=\"icon submenu\" [icon]=\"icons.elementRight2\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenu, CdkTargetMenuAim } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n // violating eslint rule, to a have clean API\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-menu',\n host: {\n class: 'd-block dropdown-menu position-static'\n },\n hostDirectives: [CdkMenu, CdkTargetMenuAim]\n})\nexport class SiMenuDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuGroup, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\nimport { SiLinkActionService, SiLinkModule } from '@siemens/element-ng/link';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiMenuActionService } from './si-menu-action.service';\nimport { SiMenuDividerDirective } from './si-menu-divider.directive';\nimport { SiMenuFactoryItemGuardDirective } from './si-menu-factory-item-guard.directive';\nimport { SiMenuHeaderDirective } from './si-menu-header.directive';\nimport { SiMenuItemCheckboxComponent } from './si-menu-item-checkbox.component';\nimport { SiMenuItemRadioComponent } from './si-menu-item-radio.component';\nimport { SiMenuItemComponent } from './si-menu-item.component';\nimport { MenuItem, MenuItemAction, MenuItemCheckbox, MenuItemRadio } from './si-menu-model';\nimport { SiMenuDirective } from './si-menu.directive';\n\n@Component({\n selector: 'si-menu-factory',\n imports: [\n SiMenuDirective,\n SiMenuItemComponent,\n SiMenuItemRadioComponent,\n SiMenuItemCheckboxComponent,\n SiMenuHeaderDirective,\n SiMenuDividerDirective,\n SiLinkModule,\n CdkMenuTrigger,\n SiTranslatePipe,\n CdkMenuGroup,\n NgTemplateOutlet,\n RouterLink,\n SiMenuFactoryItemGuardDirective\n ],\n templateUrl: './si-menu-factory.component.html',\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class SiMenuFactoryComponent {\n /** Menu items to render. Supports legacy and current menu item models. */\n readonly items = input<readonly (MenuItemLegacy | MenuItem)[]>();\n /** Parameter passed to triggered menu item actions. */\n readonly actionParam = input();\n\n private linkActionService = inject(SiLinkActionService, { optional: true });\n private menuActionService = inject(SiMenuActionService, { optional: true });\n\n protected trackItem(index: number, item: MenuItemLegacy | MenuItem): string | number {\n if ('id' in item && item.id) {\n return item.id;\n }\n if ('label' in item && item.label) {\n return item.label;\n }\n if ('title' in item && item.title) {\n return item.title;\n }\n return index;\n }\n\n protected isNewItemStyle(item: MenuItemLegacy | MenuItem): item is MenuItem {\n return 'label' in item || item.type === 'divider' || item.type === 'radio-group';\n }\n\n protected isLegacyItemStyle(item: MenuItemLegacy | MenuItem): item is MenuItemLegacy {\n return !this.isNewItemStyle(item);\n }\n\n protected radioOrCheckboxTriggered(item: MenuItemLegacy): void {\n if (typeof item.action === 'function') {\n item.action(this.actionParam());\n } else {\n this.linkActionService?.emit(item, this.actionParam());\n }\n }\n\n protected runAction(item: MenuItemAction | MenuItemRadio | MenuItemCheckbox): void {\n if (typeof item.action === 'function') {\n item.action(this.actionParam(), item as any); // typescript cannot level down the item type properly\n }\n\n if (typeof item.action === 'string') {\n this.menuActionService?.actionTriggered(item, this.actionParam());\n }\n }\n}\n","<si-menu>\n @for (item of items(); track trackItem($index, item)) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\" />\n }\n <ng-template #itemTemplate let-item siMenuFactoryItemGuard>\n @if (isNewItemStyle(item)) {\n @switch (item.type) {\n @case ('group') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [cdkMenuTriggerFor]=\"submenu\"\n [cdkMenuTriggerData]=\"{ $implicit: item.children }\"\n >{{ item.label | translate }}\n </si-menu-item>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.children\" [actionParam]=\"actionParam()\" />\n </ng-template>\n }\n @case ('action') {\n <si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n >{{ item.label | translate }}\n </a>\n }\n @case ('radio-group') {\n <div cdkMenuGroup>\n @for (radioItem of item.children; track radioItem) {\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: radioItem }\" />\n }\n </div>\n }\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-radio>\n }\n @case ('checkbox') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [disabled]=\"item.disabled\"\n [icon]=\"item.icon\"\n [iconBadgeDot]=\"item.iconBadge\"\n [checked]=\"item.checked\"\n (triggered)=\"runAction(item)\"\n >{{ item.label | translate }}\n </si-menu-item-checkbox>\n }\n @case ('header') {\n <si-menu-header>{{ item.label | translate }}</si-menu-header>\n }\n @case ('divider') {\n <si-menu-divider />\n }\n }\n } @else if (isLegacyItemStyle(item)) {\n @switch (item.type) {\n @case ('radio') {\n <si-menu-item-radio\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'radio'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-radio>\n }\n @case ('check') {\n <si-menu-item-checkbox\n [attr.data-id]=\"item.id\"\n [checked]=\"item.selectionState === 'check'\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [iconBadgeDot]=\"item.badgeDot\"\n (triggered)=\"radioOrCheckboxTriggered(item)\"\n >\n {{ item.title | translate }}\n </si-menu-item-checkbox>\n }\n @default {\n @if (item.isHeading) {\n <div class=\"dropdown-item-text dropdown-header\">\n {{ item.title | translate }}\n </div>\n } @else {\n @if (item.title !== '-') {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"item.id\"\n [badge]=\"item.badge\"\n [badgeColor]=\"item.badgeColor ?? 'secondary'\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled\"\n [siLink]=\"item\"\n [iconBadgeDot]=\"item.badgeDot\"\n [actionParam]=\"actionParam()\"\n [cdkMenuTriggerFor]=\"item.items ? submenu : null\"\n [cdkMenuTriggerData]=\"item\"\n >\n {{ item.title | translate }}\n </a>\n <ng-template #submenu>\n <si-menu-factory [items]=\"item.items!\" [actionParam]=\"actionParam()\" />\n </ng-template>\n } @else {\n <div class=\"dropdown-divider\"></div>\n }\n }\n }\n }\n }\n </ng-template>\n</si-menu>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMenuBarDirective } from './si-menu-bar.directive';\nimport { SiMenuDividerDirective } from './si-menu-divider.directive';\nimport { SiMenuFactoryComponent } from './si-menu-factory.component';\nimport { SiMenuHeaderDirective } from './si-menu-header.directive';\nimport { SiMenuItemCheckboxComponent } from './si-menu-item-checkbox.component';\nimport { SiMenuItemRadioComponent } from './si-menu-item-radio.component';\nimport { SiMenuItemComponent } from './si-menu-item.component';\nimport { SiMenuDirective } from './si-menu.directive';\n\n@NgModule({\n imports: [\n SiMenuBarDirective,\n SiMenuDirective,\n SiMenuDividerDirective,\n SiMenuFactoryComponent,\n SiMenuHeaderDirective,\n SiMenuItemCheckboxComponent,\n SiMenuItemComponent,\n SiMenuItemRadioComponent\n ],\n exports: [\n SiMenuBarDirective,\n SiMenuDirective,\n SiMenuDividerDirective,\n SiMenuFactoryComponent,\n SiMenuHeaderDirective,\n SiMenuItemCheckboxComponent,\n SiMenuItemComponent,\n SiMenuItemRadioComponent\n ]\n})\nexport class SiMenuModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-menu.module';\nexport * from './si-menu-item.component';\nexport * from './si-menu-item-checkbox.component';\nexport * from './si-menu-item-radio.component';\nexport * from './si-menu.directive';\nexport * from './si-menu-bar.directive';\nexport * from './si-menu-header.directive';\nexport * from './si-menu-divider.directive';\nexport * from './si-menu-factory.component';\nexport * from './si-menu-model';\nexport * from './si-menu-action.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -53,6 +53,7 @@ const SI_NAVBAR_VERTICAL_NEXT = new InjectionToken('SI_NAVBAR_VERTICAL_NEXT');
53
53
  * @experimental
54
54
  */
55
55
  class SiNavbarFlyoutAnchorComponent {
56
+ /** ID of the flyout group owned by this accessibility anchor. */
56
57
  groupId = input(...(ngDevMode ? [undefined, { debugName: "groupId" }] : []));
57
58
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarFlyoutAnchorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
59
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type: SiNavbarFlyoutAnchorComponent, isStandalone: true, selector: "si-navbar-flyout-anchor", inputs: { groupId: { classPropertyName: "groupId", publicName: "groupId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-owns": "groupId()" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -72,7 +73,9 @@ class SiNavbarVerticalNextGroupTriggerDirective {
72
73
  /** @internal */
73
74
  groupId = `si-navbar-vertical-next-group-${SiNavbarVerticalNextGroupTriggerDirective.idCounter++}`;
74
75
  id = `${this.groupId}-trigger`;
76
+ /** Template rendered for the expandable group. */
75
77
  groupTemplate = input.required({ ...(ngDevMode ? { debugName: "groupTemplate" } : {}), alias: 'siNavbarVerticalNextGroupTriggerFor' });
78
+ /** Key used to persist the expanded state of this group. */
76
79
  stateId = input(...(ngDevMode ? [undefined, { debugName: "stateId" }] : []));
77
80
  /** @defaultValue false */
78
81
  expanded = linkedSignal({ ...(ngDevMode ? { debugName: "expanded" } : {}), source: () => {