@siemens/element-ng 51.0.0 → 51.0.1

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 (129) hide show
  1. package/fesm2022/siemens-element-ng-accordion.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-ag-grid.mjs +125 -125
  4. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-application-header.mjs +4 -4
  6. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-avatar.mjs +5 -5
  8. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
  10. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-card.mjs +2 -2
  12. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-carousel.mjs +2 -2
  14. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-chat-messages.mjs +18 -18
  16. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-circle-status.mjs +2 -2
  18. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -18
  20. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-connection-strength.mjs +2 -2
  22. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
  24. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-dashboard.mjs +8 -8
  26. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-date-range-filter.mjs +2 -2
  28. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-datepicker.mjs +8 -8
  30. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +2 -2
  32. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
  34. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-file-uploader.mjs +2 -2
  36. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-filter-bar.mjs +4 -4
  38. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-filtered-search.mjs +4 -4
  40. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-footer.mjs +2 -2
  42. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-help-button.mjs +2 -2
  44. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-landing-page.mjs +2 -2
  46. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-language-switcher.mjs +2 -2
  48. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-list-details.mjs +2 -2
  50. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-loading-spinner.mjs +4 -4
  52. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-maplibre.mjs +21 -21
  54. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +2 -2
  56. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +2 -2
  58. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-menu.mjs +6 -6
  60. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +6 -6
  62. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +6 -6
  64. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-notification-item.mjs +2 -4
  66. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-number-input.mjs +2 -2
  68. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-password-strength.mjs +2 -2
  70. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-phone-number.mjs +2 -2
  72. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-photo-upload.mjs +4 -4
  74. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-pills-input.mjs +2 -2
  76. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
  78. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-search-bar.mjs +2 -2
  80. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-select.mjs +4 -4
  82. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-side-panel.mjs +6 -6
  84. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-skip-links.mjs +2 -2
  86. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-slider.mjs +2 -2
  88. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-source-chip.mjs +2 -2
  90. package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-split.mjs +4 -4
  92. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-status-bar.mjs +4 -4
  94. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-status-counter.mjs +2 -2
  96. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  97. package/fesm2022/siemens-element-ng-status-toggle.mjs +2 -2
  98. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-summary-chip.mjs +2 -2
  100. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-summary-widget.mjs +2 -2
  102. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-system-banner.mjs +2 -2
  104. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +2 -2
  106. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-tabs.mjs +2 -2
  108. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-threshold.mjs +2 -2
  110. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-toast-notification.mjs +2 -2
  112. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-tour.mjs +4 -4
  114. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-tree-view.mjs +4 -4
  116. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-wizard.mjs +2 -2
  118. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  119. package/maplibre/styles/maplibre-gl.scss +22 -22
  120. package/package.json +4 -4
  121. package/schematics/migration.json +5 -0
  122. package/schematics/migrations/data/css-custom-properties.js +204 -12
  123. package/schematics/migrations/data/element-migration-data.js +13 -1
  124. package/schematics/migrations/data/index.js +1 -1
  125. package/schematics/ng-update/index.js +1 -0
  126. package/schematics/ng-update/migrate-to-v51-0-1.js +12 -0
  127. package/schematics/utils/testing.js +13 -1
  128. package/types/siemens-element-ng-avatar.d.ts +1 -1
  129. package/types/siemens-element-ng-notification-item.d.ts +0 -12
@@ -16,11 +16,11 @@ class SiSkipLinksComponent {
16
16
  ...(ngDevMode ? [{ debugName: "skipLinks" }] : /* istanbul ignore next */ []));
17
17
  jumpToLabel = t(() => $localize `:@@SI_SKIP_LINKS.JUMP_TO:Jump to {{link}}`);
18
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSkipLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSkipLinksComponent, isStandalone: true, selector: "si-skip-links", inputs: { skipLinks: { classPropertyName: "skipLinks", publicName: "skipLinks", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (link of skipLinks(); track link) {\n <div class=\"skip-link-wrapper\">\n <button\n type=\"button\"\n role=\"link\"\n class=\"skip-link btn btn-secondary\"\n (click)=\"link.jumpToThisTarget()\"\n >\n <span class=\"text-nowrap\">\n {{ jumpToLabel | translate: { link: link.name() | translate } }}\n </span>\n </button>\n </div>\n}\n", styles: [".skip-link-wrapper:focus-within{position:absolute;z-index:1060;inset-block-start:var(--si-sys-sizing-spacing-y-40);inset-inline-start:50%;transform:translate(-50%)}.skip-link-wrapper:not(:focus-within){inline-size:1px;block-size:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{background:var(--si-sys-background-0);border-color:var(--si-sys-background-1)}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSkipLinksComponent, isStandalone: true, selector: "si-skip-links", inputs: { skipLinks: { classPropertyName: "skipLinks", publicName: "skipLinks", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (link of skipLinks(); track link) {\n <div class=\"skip-link-wrapper\">\n <button\n type=\"button\"\n role=\"link\"\n class=\"skip-link btn btn-secondary\"\n (click)=\"link.jumpToThisTarget()\"\n >\n <span class=\"text-nowrap\">\n {{ jumpToLabel | translate: { link: link.name() | translate } }}\n </span>\n </button>\n </div>\n}\n", styles: [".skip-link-wrapper:focus-within{position:absolute;z-index:1060;inset-block-start:var(--si-sys-sizing-spacing-y-40);inset-inline-start:50%;transform:translate(-50%)}.skip-link-wrapper:not(:focus-within){inline-size:1px;block-size:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{background:var(--si-sys-color-background-0);border-color:var(--si-sys-color-background-1)}\n"], dependencies: [{ kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSkipLinksComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: 'si-skip-links', imports: [SiTranslatePipe], template: "@for (link of skipLinks(); track link) {\n <div class=\"skip-link-wrapper\">\n <button\n type=\"button\"\n role=\"link\"\n class=\"skip-link btn btn-secondary\"\n (click)=\"link.jumpToThisTarget()\"\n >\n <span class=\"text-nowrap\">\n {{ jumpToLabel | translate: { link: link.name() | translate } }}\n </span>\n </button>\n </div>\n}\n", styles: [".skip-link-wrapper:focus-within{position:absolute;z-index:1060;inset-block-start:var(--si-sys-sizing-spacing-y-40);inset-inline-start:50%;transform:translate(-50%)}.skip-link-wrapper:not(:focus-within){inline-size:1px;block-size:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{background:var(--si-sys-background-0);border-color:var(--si-sys-background-1)}\n"] }]
23
+ args: [{ selector: 'si-skip-links', imports: [SiTranslatePipe], template: "@for (link of skipLinks(); track link) {\n <div class=\"skip-link-wrapper\">\n <button\n type=\"button\"\n role=\"link\"\n class=\"skip-link btn btn-secondary\"\n (click)=\"link.jumpToThisTarget()\"\n >\n <span class=\"text-nowrap\">\n {{ jumpToLabel | translate: { link: link.name() | translate } }}\n </span>\n </button>\n </div>\n}\n", styles: [".skip-link-wrapper:focus-within{position:absolute;z-index:1060;inset-block-start:var(--si-sys-sizing-spacing-y-40);inset-inline-start:50%;transform:translate(-50%)}.skip-link-wrapper:not(:focus-within){inline-size:1px;block-size:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{background:var(--si-sys-color-background-0);border-color:var(--si-sys-color-background-1)}\n"] }]
24
24
  }], propDecorators: { skipLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipLinks", required: false }] }] } });
25
25
 
26
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-skip-links.mjs","sources":["../../../../projects/element-ng/skip-links/si-skip-links.component.ts","../../../../projects/element-ng/skip-links/si-skip-links.component.html","../../../../projects/element-ng/skip-links/skip-link.service.ts","../../../../projects/element-ng/skip-links/si-skip-link-target.directive.ts","../../../../projects/element-ng/skip-links/index.ts","../../../../projects/element-ng/skip-links/siemens-element-ng-skip-links.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiSkipLinkTargetDirective } from './si-skip-link-target.directive';\n\n@Component({\n selector: 'si-skip-links',\n imports: [SiTranslatePipe],\n templateUrl: './si-skip-links.component.html',\n styleUrl: './si-skip-links.component.scss'\n})\nexport class SiSkipLinksComponent {\n /**\n * Targets displayed as skip links.\n *\n * @defaultValue []\n */\n readonly skipLinks = input<readonly SiSkipLinkTargetDirective[]>([]);\n\n protected jumpToLabel = t(() => $localize`:@@SI_SKIP_LINKS.JUMP_TO:Jump to {{link}}`);\n}\n","@for (link of skipLinks(); track link) {\n <div class=\"skip-link-wrapper\">\n <button\n type=\"button\"\n role=\"link\"\n class=\"skip-link btn btn-secondary\"\n (click)=\"link.jumpToThisTarget()\"\n >\n <span class=\"text-nowrap\">\n {{ jumpToLabel | translate: { link: link.name() | translate } }}\n </span>\n </button>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n DOCUMENT,\n signal,\n inputBinding\n} from '@angular/core';\n\nimport { SiSkipLinkTargetDirective } from './si-skip-link-target.directive';\nimport { SiSkipLinksComponent } from './si-skip-links.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkipLinkService {\n private skipLinksComponentRef?: ComponentRef<SiSkipLinksComponent>;\n private appRef = inject(ApplicationRef);\n private environmentInjector = inject(EnvironmentInjector);\n private document = inject(DOCUMENT);\n private readonly registeredTargets = signal<SiSkipLinkTargetDirective[]>([]);\n\n registerLink(skipLink: SiSkipLinkTargetDirective): void {\n if (!this.skipLinksComponentRef) {\n this.createSkipLinksComponent();\n }\n this.registeredTargets.update(targets => [...targets, skipLink]);\n }\n\n unregisterLink(skipLink: SiSkipLinkTargetDirective): void {\n this.registeredTargets.update(targets => targets.filter(t => t !== skipLink));\n\n if (!this.registeredTargets().length && this.skipLinksComponentRef) {\n this.skipLinksComponentRef?.destroy();\n this.skipLinksComponentRef = undefined;\n }\n }\n\n private createSkipLinksComponent(): void {\n this.skipLinksComponentRef = createComponent(SiSkipLinksComponent, {\n environmentInjector: this.environmentInjector,\n bindings: [inputBinding('skipLinks', this.registeredTargets)]\n });\n\n this.appRef.attachView(this.skipLinksComponentRef.hostView);\n this.document.body.insertBefore(\n this.skipLinksComponentRef.location.nativeElement,\n this.document.body.children.item(0)\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SkipLinkService } from './skip-link.service';\n\n/**\n * Directive to mark an element as a target for a skip link.\n * If this directive is applied to a none interactive element, a tabindex of -1 must be added manually.\n */\n@Directive({\n selector: '[siSkipLinkTarget]'\n})\nexport class SiSkipLinkTargetDirective implements OnInit, OnDestroy {\n /**\n * The name of the skip link target which will be shown in the skip link.\n */\n readonly name = input.required<TranslatableString>({ alias: 'siSkipLinkTarget' });\n\n private skipLinkService = inject(SkipLinkService);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n ngOnInit(): void {\n this.skipLinkService.registerLink(this);\n }\n\n ngOnDestroy(): void {\n this.skipLinkService.unregisterLink(this);\n }\n\n /**\n * Call this methode to \"activate\" a skip link target. It will focus this element and scroll it into the view.\n */\n jumpToThisTarget(): void {\n this.elementRef.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n this.elementRef.nativeElement.focus();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-skip-link-target.directive';\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-skip-links.mjs","sources":["../../../../projects/element-ng/skip-links/si-skip-links.component.ts","../../../../projects/element-ng/skip-links/si-skip-links.component.html","../../../../projects/element-ng/skip-links/skip-link.service.ts","../../../../projects/element-ng/skip-links/si-skip-link-target.directive.ts","../../../../projects/element-ng/skip-links/index.ts","../../../../projects/element-ng/skip-links/siemens-element-ng-skip-links.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiSkipLinkTargetDirective } from './si-skip-link-target.directive';\n\n@Component({\n selector: 'si-skip-links',\n imports: [SiTranslatePipe],\n templateUrl: './si-skip-links.component.html',\n styleUrl: './si-skip-links.component.scss'\n})\nexport class SiSkipLinksComponent {\n /**\n * Targets displayed as skip links.\n *\n * @defaultValue []\n */\n readonly skipLinks = input<readonly SiSkipLinkTargetDirective[]>([]);\n\n protected jumpToLabel = t(() => $localize`:@@SI_SKIP_LINKS.JUMP_TO:Jump to {{link}}`);\n}\n","@for (link of skipLinks(); track link) {\n <div class=\"skip-link-wrapper\">\n <button\n type=\"button\"\n role=\"link\"\n class=\"skip-link btn btn-secondary\"\n (click)=\"link.jumpToThisTarget()\"\n >\n <span class=\"text-nowrap\">\n {{ jumpToLabel | translate: { link: link.name() | translate } }}\n </span>\n </button>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n DOCUMENT,\n signal,\n inputBinding\n} from '@angular/core';\n\nimport { SiSkipLinkTargetDirective } from './si-skip-link-target.directive';\nimport { SiSkipLinksComponent } from './si-skip-links.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkipLinkService {\n private skipLinksComponentRef?: ComponentRef<SiSkipLinksComponent>;\n private appRef = inject(ApplicationRef);\n private environmentInjector = inject(EnvironmentInjector);\n private document = inject(DOCUMENT);\n private readonly registeredTargets = signal<SiSkipLinkTargetDirective[]>([]);\n\n registerLink(skipLink: SiSkipLinkTargetDirective): void {\n if (!this.skipLinksComponentRef) {\n this.createSkipLinksComponent();\n }\n this.registeredTargets.update(targets => [...targets, skipLink]);\n }\n\n unregisterLink(skipLink: SiSkipLinkTargetDirective): void {\n this.registeredTargets.update(targets => targets.filter(t => t !== skipLink));\n\n if (!this.registeredTargets().length && this.skipLinksComponentRef) {\n this.skipLinksComponentRef?.destroy();\n this.skipLinksComponentRef = undefined;\n }\n }\n\n private createSkipLinksComponent(): void {\n this.skipLinksComponentRef = createComponent(SiSkipLinksComponent, {\n environmentInjector: this.environmentInjector,\n bindings: [inputBinding('skipLinks', this.registeredTargets)]\n });\n\n this.appRef.attachView(this.skipLinksComponentRef.hostView);\n this.document.body.insertBefore(\n this.skipLinksComponentRef.location.nativeElement,\n this.document.body.children.item(0)\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SkipLinkService } from './skip-link.service';\n\n/**\n * Directive to mark an element as a target for a skip link.\n * If this directive is applied to a none interactive element, a tabindex of -1 must be added manually.\n */\n@Directive({\n selector: '[siSkipLinkTarget]'\n})\nexport class SiSkipLinkTargetDirective implements OnInit, OnDestroy {\n /**\n * The name of the skip link target which will be shown in the skip link.\n */\n readonly name = input.required<TranslatableString>({ alias: 'siSkipLinkTarget' });\n\n private skipLinkService = inject(SkipLinkService);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n ngOnInit(): void {\n this.skipLinkService.registerLink(this);\n }\n\n ngOnDestroy(): void {\n this.skipLinkService.unregisterLink(this);\n }\n\n /**\n * Call this methode to \"activate\" a skip link target. It will focus this element and scroll it into the view.\n */\n jumpToThisTarget(): void {\n this.elementRef.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n this.elementRef.nativeElement.focus();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-skip-link-target.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -277,7 +277,7 @@ class SiSliderComponent {
277
277
  provide: SI_FORM_ITEM_CONTROL,
278
278
  useExisting: SiSliderComponent
279
279
  }
280
- ], viewQueries: [{ propertyName: "handleRef", first: true, predicate: ["handle"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"slider-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary decrement-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"decrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (keydown.enter)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n\n <div class=\"slider-wrapper\">\n <div class=\"value-indicator-wrapper\">\n <span class=\"value-indicator\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <span>\n <ng-content />\n </span>\n </span>\n </div>\n\n <div class=\"slider\" [class.dragging]=\"isDragging\">\n <div class=\"track\"></div>\n <div\n class=\"thumb-handle-wrapper\"\n [class.dragging]=\"isDragging\"\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchStart($event)\"\n >\n <div #handle class=\"thumb-handle\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <div\n class=\"thumb\"\n tabindex=\"0\"\n role=\"slider\"\n [attr.aria-label]=\"sliderLabel() | translate\"\n [attr.aria-valuenow]=\"sliderValue()\"\n [attr.aria-describedby]=\"errormessageId()\"\n [class.dragging]=\"isDragging\"\n (keydown)=\"autoUpdateKeydown($event)\"\n (keyup)=\"autoUpdateStop()\"\n >\n @let iconValue = thumbIcon();\n @if (iconValue) {\n <si-icon [icon]=\"iconValue\" />\n } @else {\n <div class=\"hover-circle\"></div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary increment-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"incrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (keydown.enter)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n</div>\n\n@if (minLabel() && maxLabel()) {\n <div class=\"range-indicator-wrapper\">\n <div class=\"range-indicator\">\n <span>{{ minLabel() }}</span>\n <span class=\"ms-auto\">{{ maxLabel() }}</span>\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}.slider-container{display:grid;grid-template:auto calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))/auto 1fr auto;column-gap:4px}.decrement-button{grid-column:1;grid-row:2;align-self:center}.increment-button{grid-column:3;grid-row:2;align-self:center}.slider-wrapper{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column}.value-indicator-wrapper{position:relative;margin-inline:.75rem;text-align:start}.value-indicator{position:relative;display:inline-block;white-space:nowrap;color:var(--si-sys-text-secondary)}.value-indicator>span{display:inline-block;margin-inline-start:-50%}.range-indicator-wrapper{margin-block:0;margin-inline:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40) + 4px)}.range-indicator-wrapper .range-indicator{display:inline-flex;white-space:nowrap;inline-size:100%;color:var(--si-sys-text-secondary)}.range-indicator-wrapper .range-indicator>span{display:inline-block}.slider{position:relative;inline-size:100%;block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40));cursor:pointer}.slider.dragging{cursor:grabbing}:host.disabled .slider{cursor:default}.slider .track{position:absolute;inset-block-start:50%;border-radius:var(--element-radius-1);margin-block-start:-2px;block-size:4px;inline-size:100%;background:var(--si-sys-border-4);pointer-events:none}.slider .thumb-handle-wrapper{position:absolute;inset-block:0;inset-inline:.75rem}:host.disabled .slider .thumb-handle-wrapper{pointer-events:none}.slider .thumb-handle{display:flex;align-items:center;justify-content:center;position:absolute;inset-block-start:50%;margin-block-start:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);margin-inline:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40));block-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40))}:host.disabled .slider .thumb-handle{pointer-events:none}.slider .thumb{--thumb-state-color: var(--si-sys-text-accent);display:flex;align-items:center;justify-content:center;block-size:1.5rem;min-block-size:1.5rem;inline-size:1.5rem;min-inline-size:1.5rem;border-radius:50%;border:1px solid var(--thumb-state-color);box-shadow:var(--si-sys-effects-shadow-1);background:var(--si-sys-background-1)}.slider .thumb:hover:not(.dragging){--thumb-state-color: var(--si-sys-text-accent-hover);background:var(--si-sys-background-accent-secondary-hover)}:host.disabled .slider .thumb{--thumb-state-color: var(--si-sys-text-disabled)}.slider .thumb si-icon{font-size:var(--si-sys-sizing-icon-md);color:var(--thumb-state-color)}.slider .thumb:hover .hover-circle,.slider .thumb:focus .hover-circle,.slider .thumb.dragging .hover-circle{display:block}.slider .hover-circle{display:none;block-size:.75rem;inline-size:.75rem;border-radius:50%;background:var(--thumb-state-color)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
280
+ ], viewQueries: [{ propertyName: "handleRef", first: true, predicate: ["handle"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"slider-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary decrement-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"decrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (keydown.enter)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n\n <div class=\"slider-wrapper\">\n <div class=\"value-indicator-wrapper\">\n <span class=\"value-indicator\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <span>\n <ng-content />\n </span>\n </span>\n </div>\n\n <div class=\"slider\" [class.dragging]=\"isDragging\">\n <div class=\"track\"></div>\n <div\n class=\"thumb-handle-wrapper\"\n [class.dragging]=\"isDragging\"\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchStart($event)\"\n >\n <div #handle class=\"thumb-handle\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <div\n class=\"thumb\"\n tabindex=\"0\"\n role=\"slider\"\n [attr.aria-label]=\"sliderLabel() | translate\"\n [attr.aria-valuenow]=\"sliderValue()\"\n [attr.aria-describedby]=\"errormessageId()\"\n [class.dragging]=\"isDragging\"\n (keydown)=\"autoUpdateKeydown($event)\"\n (keyup)=\"autoUpdateStop()\"\n >\n @let iconValue = thumbIcon();\n @if (iconValue) {\n <si-icon [icon]=\"iconValue\" />\n } @else {\n <div class=\"hover-circle\"></div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary increment-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"incrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (keydown.enter)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n</div>\n\n@if (minLabel() && maxLabel()) {\n <div class=\"range-indicator-wrapper\">\n <div class=\"range-indicator\">\n <span>{{ minLabel() }}</span>\n <span class=\"ms-auto\">{{ maxLabel() }}</span>\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}.slider-container{display:grid;grid-template:auto calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))/auto 1fr auto;column-gap:4px}.decrement-button{grid-column:1;grid-row:2;align-self:center}.increment-button{grid-column:3;grid-row:2;align-self:center}.slider-wrapper{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column}.value-indicator-wrapper{position:relative;margin-inline:.75rem;text-align:start}.value-indicator{position:relative;display:inline-block;white-space:nowrap;color:var(--si-sys-color-text-secondary)}.value-indicator>span{display:inline-block;margin-inline-start:-50%}.range-indicator-wrapper{margin-block:0;margin-inline:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40) + 4px)}.range-indicator-wrapper .range-indicator{display:inline-flex;white-space:nowrap;inline-size:100%;color:var(--si-sys-color-text-secondary)}.range-indicator-wrapper .range-indicator>span{display:inline-block}.slider{position:relative;inline-size:100%;block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40));cursor:pointer}.slider.dragging{cursor:grabbing}:host.disabled .slider{cursor:default}.slider .track{position:absolute;inset-block-start:50%;border-radius:var(--element-radius-1);margin-block-start:-2px;block-size:4px;inline-size:100%;background:var(--si-sys-color-border-4);pointer-events:none}.slider .thumb-handle-wrapper{position:absolute;inset-block:0;inset-inline:.75rem}:host.disabled .slider .thumb-handle-wrapper{pointer-events:none}.slider .thumb-handle{display:flex;align-items:center;justify-content:center;position:absolute;inset-block-start:50%;margin-block-start:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);margin-inline:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40));block-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40))}:host.disabled .slider .thumb-handle{pointer-events:none}.slider .thumb{--thumb-state-color: var(--si-sys-color-text-accent);display:flex;align-items:center;justify-content:center;block-size:1.5rem;min-block-size:1.5rem;inline-size:1.5rem;min-inline-size:1.5rem;border-radius:50%;border:1px solid var(--thumb-state-color);box-shadow:var(--si-sys-color-effects-shadow-1);background:var(--si-sys-color-background-1)}.slider .thumb:hover:not(.dragging){--thumb-state-color: var(--si-sys-color-text-accent-hover);background:var(--si-sys-color-background-accent-secondary-hover)}:host.disabled .slider .thumb{--thumb-state-color: var(--si-sys-color-text-disabled)}.slider .thumb si-icon{font-size:var(--si-sys-sizing-icon-md);color:var(--thumb-state-color)}.slider .thumb:hover .hover-circle,.slider .thumb:focus .hover-circle,.slider .thumb.dragging .hover-circle{display:block}.slider .hover-circle{display:none;block-size:.75rem;inline-size:.75rem;border-radius:50%;background:var(--thumb-state-color)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
281
281
  }
282
282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSliderComponent, decorators: [{
283
283
  type: Component,
@@ -295,7 +295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
295
295
  role: 'group',
296
296
  '[class.disabled]': 'disabled()',
297
297
  '[attr.aria-labelledby]': 'labelledby()'
298
- }, template: "<div class=\"slider-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary decrement-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"decrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (keydown.enter)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n\n <div class=\"slider-wrapper\">\n <div class=\"value-indicator-wrapper\">\n <span class=\"value-indicator\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <span>\n <ng-content />\n </span>\n </span>\n </div>\n\n <div class=\"slider\" [class.dragging]=\"isDragging\">\n <div class=\"track\"></div>\n <div\n class=\"thumb-handle-wrapper\"\n [class.dragging]=\"isDragging\"\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchStart($event)\"\n >\n <div #handle class=\"thumb-handle\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <div\n class=\"thumb\"\n tabindex=\"0\"\n role=\"slider\"\n [attr.aria-label]=\"sliderLabel() | translate\"\n [attr.aria-valuenow]=\"sliderValue()\"\n [attr.aria-describedby]=\"errormessageId()\"\n [class.dragging]=\"isDragging\"\n (keydown)=\"autoUpdateKeydown($event)\"\n (keyup)=\"autoUpdateStop()\"\n >\n @let iconValue = thumbIcon();\n @if (iconValue) {\n <si-icon [icon]=\"iconValue\" />\n } @else {\n <div class=\"hover-circle\"></div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary increment-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"incrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (keydown.enter)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n</div>\n\n@if (minLabel() && maxLabel()) {\n <div class=\"range-indicator-wrapper\">\n <div class=\"range-indicator\">\n <span>{{ minLabel() }}</span>\n <span class=\"ms-auto\">{{ maxLabel() }}</span>\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}.slider-container{display:grid;grid-template:auto calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))/auto 1fr auto;column-gap:4px}.decrement-button{grid-column:1;grid-row:2;align-self:center}.increment-button{grid-column:3;grid-row:2;align-self:center}.slider-wrapper{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column}.value-indicator-wrapper{position:relative;margin-inline:.75rem;text-align:start}.value-indicator{position:relative;display:inline-block;white-space:nowrap;color:var(--si-sys-text-secondary)}.value-indicator>span{display:inline-block;margin-inline-start:-50%}.range-indicator-wrapper{margin-block:0;margin-inline:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40) + 4px)}.range-indicator-wrapper .range-indicator{display:inline-flex;white-space:nowrap;inline-size:100%;color:var(--si-sys-text-secondary)}.range-indicator-wrapper .range-indicator>span{display:inline-block}.slider{position:relative;inline-size:100%;block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40));cursor:pointer}.slider.dragging{cursor:grabbing}:host.disabled .slider{cursor:default}.slider .track{position:absolute;inset-block-start:50%;border-radius:var(--element-radius-1);margin-block-start:-2px;block-size:4px;inline-size:100%;background:var(--si-sys-border-4);pointer-events:none}.slider .thumb-handle-wrapper{position:absolute;inset-block:0;inset-inline:.75rem}:host.disabled .slider .thumb-handle-wrapper{pointer-events:none}.slider .thumb-handle{display:flex;align-items:center;justify-content:center;position:absolute;inset-block-start:50%;margin-block-start:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);margin-inline:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40));block-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40))}:host.disabled .slider .thumb-handle{pointer-events:none}.slider .thumb{--thumb-state-color: var(--si-sys-text-accent);display:flex;align-items:center;justify-content:center;block-size:1.5rem;min-block-size:1.5rem;inline-size:1.5rem;min-inline-size:1.5rem;border-radius:50%;border:1px solid var(--thumb-state-color);box-shadow:var(--si-sys-effects-shadow-1);background:var(--si-sys-background-1)}.slider .thumb:hover:not(.dragging){--thumb-state-color: var(--si-sys-text-accent-hover);background:var(--si-sys-background-accent-secondary-hover)}:host.disabled .slider .thumb{--thumb-state-color: var(--si-sys-text-disabled)}.slider .thumb si-icon{font-size:var(--si-sys-sizing-icon-md);color:var(--thumb-state-color)}.slider .thumb:hover .hover-circle,.slider .thumb:focus .hover-circle,.slider .thumb.dragging .hover-circle{display:block}.slider .hover-circle{display:none;block-size:.75rem;inline-size:.75rem;border-radius:50%;background:var(--thumb-state-color)}\n"] }]
298
+ }, template: "<div class=\"slider-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary decrement-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"decrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (keydown.enter)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n\n <div class=\"slider-wrapper\">\n <div class=\"value-indicator-wrapper\">\n <span class=\"value-indicator\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <span>\n <ng-content />\n </span>\n </span>\n </div>\n\n <div class=\"slider\" [class.dragging]=\"isDragging\">\n <div class=\"track\"></div>\n <div\n class=\"thumb-handle-wrapper\"\n [class.dragging]=\"isDragging\"\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchStart($event)\"\n >\n <div #handle class=\"thumb-handle\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <div\n class=\"thumb\"\n tabindex=\"0\"\n role=\"slider\"\n [attr.aria-label]=\"sliderLabel() | translate\"\n [attr.aria-valuenow]=\"sliderValue()\"\n [attr.aria-describedby]=\"errormessageId()\"\n [class.dragging]=\"isDragging\"\n (keydown)=\"autoUpdateKeydown($event)\"\n (keyup)=\"autoUpdateStop()\"\n >\n @let iconValue = thumbIcon();\n @if (iconValue) {\n <si-icon [icon]=\"iconValue\" />\n } @else {\n <div class=\"hover-circle\"></div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary increment-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"incrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (keydown.enter)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n</div>\n\n@if (minLabel() && maxLabel()) {\n <div class=\"range-indicator-wrapper\">\n <div class=\"range-indicator\">\n <span>{{ minLabel() }}</span>\n <span class=\"ms-auto\">{{ maxLabel() }}</span>\n </div>\n </div>\n}\n", styles: [":host{display:flex;flex-direction:column}.slider-container{display:grid;grid-template:auto calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))/auto 1fr auto;column-gap:4px}.decrement-button{grid-column:1;grid-row:2;align-self:center}.increment-button{grid-column:3;grid-row:2;align-self:center}.slider-wrapper{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column}.value-indicator-wrapper{position:relative;margin-inline:.75rem;text-align:start}.value-indicator{position:relative;display:inline-block;white-space:nowrap;color:var(--si-sys-color-text-secondary)}.value-indicator>span{display:inline-block;margin-inline-start:-50%}.range-indicator-wrapper{margin-block:0;margin-inline:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40) + 4px)}.range-indicator-wrapper .range-indicator{display:inline-flex;white-space:nowrap;inline-size:100%;color:var(--si-sys-color-text-secondary)}.range-indicator-wrapper .range-indicator>span{display:inline-block}.slider{position:relative;inline-size:100%;block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40));cursor:pointer}.slider.dragging{cursor:grabbing}:host.disabled .slider{cursor:default}.slider .track{position:absolute;inset-block-start:50%;border-radius:var(--element-radius-1);margin-block-start:-2px;block-size:4px;inline-size:100%;background:var(--si-sys-color-border-4);pointer-events:none}.slider .thumb-handle-wrapper{position:absolute;inset-block:0;inset-inline:.75rem}:host.disabled .slider .thumb-handle-wrapper{pointer-events:none}.slider .thumb-handle{display:flex;align-items:center;justify-content:center;position:absolute;inset-block-start:50%;margin-block-start:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);margin-inline:calc((1.5rem + 2 * var(--si-sys-sizing-spacing-y-40)) / -2);inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40));block-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-y-40))}:host.disabled .slider .thumb-handle{pointer-events:none}.slider .thumb{--thumb-state-color: var(--si-sys-color-text-accent);display:flex;align-items:center;justify-content:center;block-size:1.5rem;min-block-size:1.5rem;inline-size:1.5rem;min-inline-size:1.5rem;border-radius:50%;border:1px solid var(--thumb-state-color);box-shadow:var(--si-sys-color-effects-shadow-1);background:var(--si-sys-color-background-1)}.slider .thumb:hover:not(.dragging){--thumb-state-color: var(--si-sys-color-text-accent-hover);background:var(--si-sys-color-background-accent-secondary-hover)}:host.disabled .slider .thumb{--thumb-state-color: var(--si-sys-color-text-disabled)}.slider .thumb si-icon{font-size:var(--si-sys-sizing-icon-md);color:var(--thumb-state-color)}.slider .thumb:hover .hover-circle,.slider .thumb:focus .hover-circle,.slider .thumb.dragging .hover-circle{display:block}.slider .hover-circle{display:none;block-size:.75rem;inline-size:.75rem;border-radius:50%;background:var(--thumb-state-color)}\n"] }]
299
299
  }], propDecorators: { handleRef: [{ type: i0.ViewChild, args: ['handle', { isSignal: true }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], minLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLabel", required: false }] }], maxLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLabel", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], thumbIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbIcon", required: false }] }], incrementLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "incrementLabel", required: false }] }], decrementLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "decrementLabel", required: false }] }], sliderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sliderLabel", required: false }] }], labelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelledby", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], errormessageId: [{ type: i0.Input, args: [{ isSignal: true, alias: "errormessageId", required: false }] }], handlePointerDown: [{
300
300
  type: HostListener,
301
301
  args: ['pointerdown', ['$event']]
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-slider.mjs","sources":["../../../../projects/element-ng/slider/si-slider.component.ts","../../../../projects/element-ng/slider/si-slider.component.html","../../../../projects/element-ng/slider/si-slider.module.ts","../../../../projects/element-ng/slider/index.ts","../../../../projects/element-ng/slider/siemens-element-ng-slider.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n NgZone,\n numberAttribute,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { elementMinus, elementPlus } from '@siemens/element-icons';\nimport { correctKeyRTL, isRTL, listenGlobal } from '@siemens/element-ng/common';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\nimport { Subscription, timer } from 'rxjs';\n\n@Component({\n selector: 'si-slider',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-slider.component.html',\n styleUrl: './si-slider.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSliderComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiSliderComponent\n }\n ],\n host: {\n role: 'group',\n '[class.disabled]': 'disabled()',\n '[attr.aria-labelledby]': 'labelledby()'\n }\n})\nexport class SiSliderComponent implements ControlValueAccessor, SiFormItemControl {\n private static idCounter = 0;\n\n private readonly handleRef = viewChild.required<ElementRef>('handle');\n\n private readonly disabledNgControl = signal(false);\n\n /**\n * @defaultValue\n * ```\n * `__si-slider-${SiSliderComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-slider-${SiSliderComponent.idCounter++}`);\n\n /**\n * Current value of slider.\n */\n readonly value = model<number>();\n /**\n * Minimum of slider range.\n *\n * @defaultValue 0\n */\n readonly min = input(0, { transform: numberAttribute });\n /**\n * Maximum of slider range.\n *\n * @defaultValue 100\n */\n readonly max = input(100, { transform: numberAttribute });\n /**\n * Label to describe minimum of slider range.\n *\n * @defaultValue ''\n */\n readonly minLabel = input('');\n /**\n * Label to describe maximum of slider range.\n *\n * @defaultValue ''\n */\n readonly maxLabel = input('');\n /**\n * Interval to step through the slider.\n *\n * @defaultValue 1\n */\n readonly step = input(1, { transform: numberAttribute });\n /**\n * Icon to use as the slider thumb.\n */\n readonly thumbIcon = input<string>();\n /**\n * Text for aria-label of increment. Needed for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SLIDER.INCREMENT:Increment`)\n * ```\n */\n readonly incrementLabel = input(t(() => $localize`:@@SI_SLIDER.INCREMENT:Increment`));\n /**\n * Text for aria-label of decrement. Needed for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SLIDER.DECREMENT:Decrement`)\n * ```\n */\n readonly decrementLabel = input(t(() => $localize`:@@SI_SLIDER.DECREMENT:Decrement`));\n /**\n * Text for aria-label of slider. Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SLIDER.LABEL:Value`)\n * ```\n */\n readonly sliderLabel = input(t(() => $localize`:@@SI_SLIDER.LABEL:Value`));\n\n /**\n * @defaultValue\n * ```\n * `${this.id()}-label`\n * ```\n */\n readonly labelledby = input(`${this.id()}-label`);\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n protected readonly disabled = computed(\n () => this.disabledInput() || this.disabledNgControl() || this.min() === this.max()\n );\n\n protected readonly sliderValue = computed<number>(() => {\n const value = this.value();\n if (typeof value !== 'number') {\n return this.roundToStepPrecision((this.min() + this.max()) / 2);\n }\n return value;\n });\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the slider.\n * Use this to reference the element containing the error message(s) for the slider.\n * It will be picked by the {@link SiFormItemComponent} if the slider is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected readonly indicatorPos = computed(() => {\n const range = this.max() - this.min();\n if (range === 0) {\n return 50;\n }\n const indicatorPos = ((this.sliderValue()! - this.min()) * 100) / range;\n return Math.max(Math.min(indicatorPos, 100), 0);\n });\n\n protected readonly icons = addIcons({ elementMinus, elementPlus });\n protected isDragging = false;\n\n private autoUpdate$ = timer(400, 80); // 250\n private autoUpdateSubs?: Subscription;\n private rtl = false;\n\n private unlistenDragEvents: (() => void)[] = [];\n\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (val: any) => void = () => {};\n\n private zone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private incrementValue(): void {\n this.value.set(this.normalizeValue(this.sliderValue()! + this.step()));\n this.valueChanged();\n }\n\n private decrementValue(): void {\n this.value.set(this.normalizeValue(this.sliderValue()! - this.step()));\n this.valueChanged();\n }\n\n private roundToStepPrecision(value: number): number {\n const factor = 1 / this.step();\n if (factor > 1) {\n return Math.round(value * factor) / factor;\n }\n return Math.round(value / this.step()) * this.step();\n }\n\n private normalizeValue(value: number): number {\n return Math.min(Math.max(this.roundToStepPrecision(value), this.min()), this.max());\n }\n\n private handleTouchMove(event: TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.handleDragMove(event.touches[0]);\n }\n\n private handleMouseMove(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.handleDragMove(event);\n }\n\n private handleDragMove(event: MouseEvent | Touch): void {\n const pointerPosX = event.clientX;\n const handleRect = this.handleRef().nativeElement.getBoundingClientRect();\n const handleWrapperWidth = this.handleRef().nativeElement.parentElement.clientWidth;\n\n const direction = this.rtl ? -1 : 1;\n const pointerPosDelta =\n Math.round(pointerPosX - (handleRect.x + handleRect.width / 2)) * direction;\n const valueDelta = (pointerPosDelta / handleWrapperWidth) * (this.max() - this.min());\n\n const newValue = this.normalizeValue(this.sliderValue()! + valueDelta);\n\n if (\n (pointerPosDelta > 0 && newValue > this.sliderValue()!) ||\n (pointerPosDelta < 0 && newValue < this.sliderValue()!)\n ) {\n // the zone is required to work around a problem on native device where CD doesn't trigger\n this.zone.run(() => {\n this.changeDetectorRef.markForCheck();\n this.value.set(newValue);\n this.valueChanged();\n });\n }\n window.getSelection()?.removeAllRanges();\n }\n\n private handleDragEnd(): void {\n this.isDragging = false;\n\n this.unlistenDragEvents.forEach(handler => handler());\n this.unlistenDragEvents.length = 0;\n }\n\n private valueChanged(): void {\n this.onTouchedCallback();\n this.onChangeCallback(this.sliderValue());\n }\n\n @HostListener('pointerdown', ['$event'])\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n protected handlePointerDown(event: Event): void {\n event.stopPropagation();\n }\n\n protected autoUpdateKeydown(event: KeyboardEvent): void {\n const rtlCorrectedKey = correctKeyRTL(event.key);\n\n if (rtlCorrectedKey === 'ArrowLeft') {\n this.autoUpdateStart(event, false);\n } else if (rtlCorrectedKey === 'ArrowRight') {\n this.autoUpdateStart(event, true);\n }\n }\n\n protected autoUpdateStart(event: Event, isIncrement: boolean): void {\n event.preventDefault();\n\n const trigger = isIncrement ? () => this.incrementValue() : () => this.decrementValue();\n\n this.autoUpdateSubs?.unsubscribe();\n this.autoUpdateSubs = this.autoUpdate$.subscribe(trigger);\n trigger();\n }\n\n protected autoUpdateStop(): void {\n if (this.autoUpdateSubs) {\n this.autoUpdateSubs.unsubscribe();\n this.autoUpdateSubs = undefined;\n }\n }\n\n protected handleMouseDown(event: MouseEvent): void {\n this.unlistenDragEvents.push(\n listenGlobal('mousemove', moveEvent => this.handleMouseMove(moveEvent))\n );\n this.unlistenDragEvents.push(listenGlobal('mouseup', () => this.handleDragEnd()));\n\n this.isDragging = true;\n\n this.rtl = isRTL();\n this.handleMouseMove(event);\n }\n\n protected handleTouchStart(event: TouchEvent): void {\n if (event.touches.length !== 1) {\n return;\n }\n\n this.unlistenDragEvents.push(listenGlobal('touchmove', e => this.handleTouchMove(e), true));\n this.unlistenDragEvents.push(listenGlobal('touchend', () => this.handleDragEnd()));\n\n this.isDragging = true;\n\n this.rtl = isRTL();\n this.handleTouchMove(event);\n }\n\n /** @internal */\n writeValue(val: any): void {\n this.value.set(val);\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n}\n","<div class=\"slider-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary decrement-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"decrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (keydown.enter)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n\n <div class=\"slider-wrapper\">\n <div class=\"value-indicator-wrapper\">\n <span class=\"value-indicator\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <span>\n <ng-content />\n </span>\n </span>\n </div>\n\n <div class=\"slider\" [class.dragging]=\"isDragging\">\n <div class=\"track\"></div>\n <div\n class=\"thumb-handle-wrapper\"\n [class.dragging]=\"isDragging\"\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchStart($event)\"\n >\n <div #handle class=\"thumb-handle\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <div\n class=\"thumb\"\n tabindex=\"0\"\n role=\"slider\"\n [attr.aria-label]=\"sliderLabel() | translate\"\n [attr.aria-valuenow]=\"sliderValue()\"\n [attr.aria-describedby]=\"errormessageId()\"\n [class.dragging]=\"isDragging\"\n (keydown)=\"autoUpdateKeydown($event)\"\n (keyup)=\"autoUpdateStop()\"\n >\n @let iconValue = thumbIcon();\n @if (iconValue) {\n <si-icon [icon]=\"iconValue\" />\n } @else {\n <div class=\"hover-circle\"></div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary increment-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"incrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (keydown.enter)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n</div>\n\n@if (minLabel() && maxLabel()) {\n <div class=\"range-indicator-wrapper\">\n <div class=\"range-indicator\">\n <span>{{ minLabel() }}</span>\n <span class=\"ms-auto\">{{ maxLabel() }}</span>\n </div>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSliderComponent } from './si-slider.component';\n\n@NgModule({\n imports: [SiSliderComponent],\n exports: [SiSliderComponent]\n})\nexport class SiSliderModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-slider.component';\nexport * from './si-slider.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-slider.mjs","sources":["../../../../projects/element-ng/slider/si-slider.component.ts","../../../../projects/element-ng/slider/si-slider.component.html","../../../../projects/element-ng/slider/si-slider.module.ts","../../../../projects/element-ng/slider/index.ts","../../../../projects/element-ng/slider/siemens-element-ng-slider.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n NgZone,\n numberAttribute,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { elementMinus, elementPlus } from '@siemens/element-icons';\nimport { correctKeyRTL, isRTL, listenGlobal } from '@siemens/element-ng/common';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\nimport { Subscription, timer } from 'rxjs';\n\n@Component({\n selector: 'si-slider',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-slider.component.html',\n styleUrl: './si-slider.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSliderComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiSliderComponent\n }\n ],\n host: {\n role: 'group',\n '[class.disabled]': 'disabled()',\n '[attr.aria-labelledby]': 'labelledby()'\n }\n})\nexport class SiSliderComponent implements ControlValueAccessor, SiFormItemControl {\n private static idCounter = 0;\n\n private readonly handleRef = viewChild.required<ElementRef>('handle');\n\n private readonly disabledNgControl = signal(false);\n\n /**\n * @defaultValue\n * ```\n * `__si-slider-${SiSliderComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-slider-${SiSliderComponent.idCounter++}`);\n\n /**\n * Current value of slider.\n */\n readonly value = model<number>();\n /**\n * Minimum of slider range.\n *\n * @defaultValue 0\n */\n readonly min = input(0, { transform: numberAttribute });\n /**\n * Maximum of slider range.\n *\n * @defaultValue 100\n */\n readonly max = input(100, { transform: numberAttribute });\n /**\n * Label to describe minimum of slider range.\n *\n * @defaultValue ''\n */\n readonly minLabel = input('');\n /**\n * Label to describe maximum of slider range.\n *\n * @defaultValue ''\n */\n readonly maxLabel = input('');\n /**\n * Interval to step through the slider.\n *\n * @defaultValue 1\n */\n readonly step = input(1, { transform: numberAttribute });\n /**\n * Icon to use as the slider thumb.\n */\n readonly thumbIcon = input<string>();\n /**\n * Text for aria-label of increment. Needed for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SLIDER.INCREMENT:Increment`)\n * ```\n */\n readonly incrementLabel = input(t(() => $localize`:@@SI_SLIDER.INCREMENT:Increment`));\n /**\n * Text for aria-label of decrement. Needed for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SLIDER.DECREMENT:Decrement`)\n * ```\n */\n readonly decrementLabel = input(t(() => $localize`:@@SI_SLIDER.DECREMENT:Decrement`));\n /**\n * Text for aria-label of slider. Needed for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SLIDER.LABEL:Value`)\n * ```\n */\n readonly sliderLabel = input(t(() => $localize`:@@SI_SLIDER.LABEL:Value`));\n\n /**\n * @defaultValue\n * ```\n * `${this.id()}-label`\n * ```\n */\n readonly labelledby = input(`${this.id()}-label`);\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n protected readonly disabled = computed(\n () => this.disabledInput() || this.disabledNgControl() || this.min() === this.max()\n );\n\n protected readonly sliderValue = computed<number>(() => {\n const value = this.value();\n if (typeof value !== 'number') {\n return this.roundToStepPrecision((this.min() + this.max()) / 2);\n }\n return value;\n });\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the slider.\n * Use this to reference the element containing the error message(s) for the slider.\n * It will be picked by the {@link SiFormItemComponent} if the slider is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected readonly indicatorPos = computed(() => {\n const range = this.max() - this.min();\n if (range === 0) {\n return 50;\n }\n const indicatorPos = ((this.sliderValue()! - this.min()) * 100) / range;\n return Math.max(Math.min(indicatorPos, 100), 0);\n });\n\n protected readonly icons = addIcons({ elementMinus, elementPlus });\n protected isDragging = false;\n\n private autoUpdate$ = timer(400, 80); // 250\n private autoUpdateSubs?: Subscription;\n private rtl = false;\n\n private unlistenDragEvents: (() => void)[] = [];\n\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (val: any) => void = () => {};\n\n private zone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private incrementValue(): void {\n this.value.set(this.normalizeValue(this.sliderValue()! + this.step()));\n this.valueChanged();\n }\n\n private decrementValue(): void {\n this.value.set(this.normalizeValue(this.sliderValue()! - this.step()));\n this.valueChanged();\n }\n\n private roundToStepPrecision(value: number): number {\n const factor = 1 / this.step();\n if (factor > 1) {\n return Math.round(value * factor) / factor;\n }\n return Math.round(value / this.step()) * this.step();\n }\n\n private normalizeValue(value: number): number {\n return Math.min(Math.max(this.roundToStepPrecision(value), this.min()), this.max());\n }\n\n private handleTouchMove(event: TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.handleDragMove(event.touches[0]);\n }\n\n private handleMouseMove(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.handleDragMove(event);\n }\n\n private handleDragMove(event: MouseEvent | Touch): void {\n const pointerPosX = event.clientX;\n const handleRect = this.handleRef().nativeElement.getBoundingClientRect();\n const handleWrapperWidth = this.handleRef().nativeElement.parentElement.clientWidth;\n\n const direction = this.rtl ? -1 : 1;\n const pointerPosDelta =\n Math.round(pointerPosX - (handleRect.x + handleRect.width / 2)) * direction;\n const valueDelta = (pointerPosDelta / handleWrapperWidth) * (this.max() - this.min());\n\n const newValue = this.normalizeValue(this.sliderValue()! + valueDelta);\n\n if (\n (pointerPosDelta > 0 && newValue > this.sliderValue()!) ||\n (pointerPosDelta < 0 && newValue < this.sliderValue()!)\n ) {\n // the zone is required to work around a problem on native device where CD doesn't trigger\n this.zone.run(() => {\n this.changeDetectorRef.markForCheck();\n this.value.set(newValue);\n this.valueChanged();\n });\n }\n window.getSelection()?.removeAllRanges();\n }\n\n private handleDragEnd(): void {\n this.isDragging = false;\n\n this.unlistenDragEvents.forEach(handler => handler());\n this.unlistenDragEvents.length = 0;\n }\n\n private valueChanged(): void {\n this.onTouchedCallback();\n this.onChangeCallback(this.sliderValue());\n }\n\n @HostListener('pointerdown', ['$event'])\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n protected handlePointerDown(event: Event): void {\n event.stopPropagation();\n }\n\n protected autoUpdateKeydown(event: KeyboardEvent): void {\n const rtlCorrectedKey = correctKeyRTL(event.key);\n\n if (rtlCorrectedKey === 'ArrowLeft') {\n this.autoUpdateStart(event, false);\n } else if (rtlCorrectedKey === 'ArrowRight') {\n this.autoUpdateStart(event, true);\n }\n }\n\n protected autoUpdateStart(event: Event, isIncrement: boolean): void {\n event.preventDefault();\n\n const trigger = isIncrement ? () => this.incrementValue() : () => this.decrementValue();\n\n this.autoUpdateSubs?.unsubscribe();\n this.autoUpdateSubs = this.autoUpdate$.subscribe(trigger);\n trigger();\n }\n\n protected autoUpdateStop(): void {\n if (this.autoUpdateSubs) {\n this.autoUpdateSubs.unsubscribe();\n this.autoUpdateSubs = undefined;\n }\n }\n\n protected handleMouseDown(event: MouseEvent): void {\n this.unlistenDragEvents.push(\n listenGlobal('mousemove', moveEvent => this.handleMouseMove(moveEvent))\n );\n this.unlistenDragEvents.push(listenGlobal('mouseup', () => this.handleDragEnd()));\n\n this.isDragging = true;\n\n this.rtl = isRTL();\n this.handleMouseMove(event);\n }\n\n protected handleTouchStart(event: TouchEvent): void {\n if (event.touches.length !== 1) {\n return;\n }\n\n this.unlistenDragEvents.push(listenGlobal('touchmove', e => this.handleTouchMove(e), true));\n this.unlistenDragEvents.push(listenGlobal('touchend', () => this.handleDragEnd()));\n\n this.isDragging = true;\n\n this.rtl = isRTL();\n this.handleTouchMove(event);\n }\n\n /** @internal */\n writeValue(val: any): void {\n this.value.set(val);\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n}\n","<div class=\"slider-container\">\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary decrement-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"decrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (keydown.enter)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n\n <div class=\"slider-wrapper\">\n <div class=\"value-indicator-wrapper\">\n <span class=\"value-indicator\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <span>\n <ng-content />\n </span>\n </span>\n </div>\n\n <div class=\"slider\" [class.dragging]=\"isDragging\">\n <div class=\"track\"></div>\n <div\n class=\"thumb-handle-wrapper\"\n [class.dragging]=\"isDragging\"\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchStart($event)\"\n >\n <div #handle class=\"thumb-handle\" [style.inset-inline-start.%]=\"indicatorPos()\">\n <div\n class=\"thumb\"\n tabindex=\"0\"\n role=\"slider\"\n [attr.aria-label]=\"sliderLabel() | translate\"\n [attr.aria-valuenow]=\"sliderValue()\"\n [attr.aria-describedby]=\"errormessageId()\"\n [class.dragging]=\"isDragging\"\n (keydown)=\"autoUpdateKeydown($event)\"\n (keyup)=\"autoUpdateStop()\"\n >\n @let iconValue = thumbIcon();\n @if (iconValue) {\n <si-icon [icon]=\"iconValue\" />\n } @else {\n <div class=\"hover-circle\"></div>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <button\n type=\"button\"\n class=\"btn btn-circle btn-secondary increment-button\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"incrementLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (keydown.enter)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (keyup.enter)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n</div>\n\n@if (minLabel() && maxLabel()) {\n <div class=\"range-indicator-wrapper\">\n <div class=\"range-indicator\">\n <span>{{ minLabel() }}</span>\n <span class=\"ms-auto\">{{ maxLabel() }}</span>\n </div>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSliderComponent } from './si-slider.component';\n\n@NgModule({\n imports: [SiSliderComponent],\n exports: [SiSliderComponent]\n})\nexport class SiSliderModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-slider.component';\nexport * from './si-slider.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ class SiSourceChipComponent {
45
45
  addIcons({ elementGlobal });
46
46
  }
47
47
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSourceChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSourceChipComponent, isStandalone: true, selector: "si-source-chip", inputs: { showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, sources: { classPropertyName: "sources", publicName: "sources", isSignal: true, isRequired: true, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourceClicked: "sourceClicked" }, host: { properties: { "class.lh-1": "compact()" }, classAttribute: "px-2" }, ngImport: i0, template: "@let dis = disabled();\n@let src = sources();\n<button\n type=\"button\"\n class=\"chip\"\n siPopoverContainerClass=\"si-source-chip-popover\"\n [attr.tabindex]=\"dis ? '' : '0'\"\n [attr.aria-disabled]=\"dis\"\n [class.disabled]=\"dis\"\n [class.compact]=\"compact()\"\n [class.full-size]=\"!compact()\"\n [siPopover]=\"sourcePopover\"\n>\n @if (showIcon()) {\n <si-icon icon=\"element-global\" />\n }\n @if (showLabel() || !src.length) {\n {{ labelSources | translate }}\n } @else {\n {{ label() }}\n\n @if (src.length > 2) {\n +{{ src.length - 1 }}\n }\n }\n</button>\n\n<ng-template #sourcePopover>\n <si-popover-title class=\"visually-hidden\">\n {{ labelSources | translate }}\n </si-popover-title>\n <si-popover-body class=\"p-2 sources\">\n <ul class=\"list-unstyled mb-0\">\n @for (source of src; track $index) {\n <li>\n <button\n type=\"button\"\n class=\"list-item list-item-action p-4\"\n (click)=\"sourceClicked.emit(source)\"\n >\n <div class=\"list-item-title pt-0\">{{ source.name }}</div>\n @if (source.quote ?? source.description; as description) {\n <p class=\"list-item-description mb-0\">{{ description }}</p>\n }\n </button>\n </li>\n }\n </ul>\n </si-popover-body>\n</ng-template>\n", styles: [".chip{display:inline-flex;align-items:center;justify-content:center;min-inline-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-x-40));border:1px solid var(--si-sys-border-neutral);border-radius:1lh;padding-block:0;padding-inline:var(--si-sys-sizing-spacing-x-40);gap:var(--si-sys-sizing-spacing-y-20) var(--si-sys-sizing-spacing-x-20);background:var(--si-sys-background-0)}.chip:not(.disabled){cursor:pointer}.chip:not(.disabled):not(.selected):hover{background:var(--si-sys-background-hover)}.chip[aria-expanded=true]{background:var(--si-sys-background-active)}.compact{font-size:var(--si-sys-typography-font-size-body-sm);block-size:1rem}.full-size{block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))}.disabled{opacity:var(--element-action-disabled-opacity)}.sources{max-block-size:400px;overflow-y:auto}.sources li:first-child .list-item{border-start-start-radius:var(--element-radius-1);border-start-end-radius:var(--element-radius-1)}.sources li:last-child .list-item{border-end-start-radius:var(--element-radius-1);border-end-end-radius:var(--element-radius-1)}.sources li:not(:first-child){margin-block-start:var(--si-sys-sizing-spacing-y-40)}::ng-deep .si-source-chip-popover{min-inline-size:230px;max-inline-size:400px}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiPopoverTitleDirective, selector: "si-popover-title" }, { kind: "directive", type: SiPopoverBodyDirective, selector: "si-popover-body" }, { kind: "directive", type: SiPopoverDirective, selector: "[siPopover]", inputs: ["siPopover", "siPopoverPlacement", "siPopoverTitle", "siPopoverContainerClass", "siPopoverIcon", "siPopoverContext", "siPopoverScrollStrategy"], outputs: ["siPopoverVisibilityChange"], exportAs: ["si-popover"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSourceChipComponent, isStandalone: true, selector: "si-source-chip", inputs: { showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, sources: { classPropertyName: "sources", publicName: "sources", isSignal: true, isRequired: true, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourceClicked: "sourceClicked" }, host: { properties: { "class.lh-1": "compact()" }, classAttribute: "px-2" }, ngImport: i0, template: "@let dis = disabled();\n@let src = sources();\n<button\n type=\"button\"\n class=\"chip\"\n siPopoverContainerClass=\"si-source-chip-popover\"\n [attr.tabindex]=\"dis ? '' : '0'\"\n [attr.aria-disabled]=\"dis\"\n [class.disabled]=\"dis\"\n [class.compact]=\"compact()\"\n [class.full-size]=\"!compact()\"\n [siPopover]=\"sourcePopover\"\n>\n @if (showIcon()) {\n <si-icon icon=\"element-global\" />\n }\n @if (showLabel() || !src.length) {\n {{ labelSources | translate }}\n } @else {\n {{ label() }}\n\n @if (src.length > 2) {\n +{{ src.length - 1 }}\n }\n }\n</button>\n\n<ng-template #sourcePopover>\n <si-popover-title class=\"visually-hidden\">\n {{ labelSources | translate }}\n </si-popover-title>\n <si-popover-body class=\"p-2 sources\">\n <ul class=\"list-unstyled mb-0\">\n @for (source of src; track $index) {\n <li>\n <button\n type=\"button\"\n class=\"list-item list-item-action p-4\"\n (click)=\"sourceClicked.emit(source)\"\n >\n <div class=\"list-item-title pt-0\">{{ source.name }}</div>\n @if (source.quote ?? source.description; as description) {\n <p class=\"list-item-description mb-0\">{{ description }}</p>\n }\n </button>\n </li>\n }\n </ul>\n </si-popover-body>\n</ng-template>\n", styles: [".chip{display:inline-flex;align-items:center;justify-content:center;min-inline-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-x-40));border:1px solid var(--si-sys-color-border-neutral);border-radius:1lh;padding-block:0;padding-inline:var(--si-sys-sizing-spacing-x-40);gap:var(--si-sys-sizing-spacing-y-20) var(--si-sys-sizing-spacing-x-20);background:var(--si-sys-color-background-0)}.chip:not(.disabled){cursor:pointer}.chip:not(.disabled):not(.selected):hover{background:var(--si-sys-color-background-hover)}.chip[aria-expanded=true]{background:var(--si-sys-color-background-active)}.compact{font-size:var(--si-sys-typography-font-size-body-sm);block-size:1rem}.full-size{block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))}.disabled{opacity:var(--element-action-disabled-opacity)}.sources{max-block-size:400px;overflow-y:auto}.sources li:first-child .list-item{border-start-start-radius:var(--element-radius-1);border-start-end-radius:var(--element-radius-1)}.sources li:last-child .list-item{border-end-start-radius:var(--element-radius-1);border-end-end-radius:var(--element-radius-1)}.sources li:not(:first-child){margin-block-start:var(--si-sys-sizing-spacing-y-40)}::ng-deep .si-source-chip-popover{min-inline-size:230px;max-inline-size:400px}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiPopoverTitleDirective, selector: "si-popover-title" }, { kind: "directive", type: SiPopoverBodyDirective, selector: "si-popover-body" }, { kind: "directive", type: SiPopoverDirective, selector: "[siPopover]", inputs: ["siPopover", "siPopoverPlacement", "siPopoverTitle", "siPopoverContainerClass", "siPopoverIcon", "siPopoverContext", "siPopoverScrollStrategy"], outputs: ["siPopoverVisibilityChange"], exportAs: ["si-popover"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSourceChipComponent, decorators: [{
51
51
  type: Component,
@@ -58,7 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
58
58
  ], host: {
59
59
  class: 'px-2',
60
60
  '[class.lh-1]': 'compact()'
61
- }, template: "@let dis = disabled();\n@let src = sources();\n<button\n type=\"button\"\n class=\"chip\"\n siPopoverContainerClass=\"si-source-chip-popover\"\n [attr.tabindex]=\"dis ? '' : '0'\"\n [attr.aria-disabled]=\"dis\"\n [class.disabled]=\"dis\"\n [class.compact]=\"compact()\"\n [class.full-size]=\"!compact()\"\n [siPopover]=\"sourcePopover\"\n>\n @if (showIcon()) {\n <si-icon icon=\"element-global\" />\n }\n @if (showLabel() || !src.length) {\n {{ labelSources | translate }}\n } @else {\n {{ label() }}\n\n @if (src.length > 2) {\n +{{ src.length - 1 }}\n }\n }\n</button>\n\n<ng-template #sourcePopover>\n <si-popover-title class=\"visually-hidden\">\n {{ labelSources | translate }}\n </si-popover-title>\n <si-popover-body class=\"p-2 sources\">\n <ul class=\"list-unstyled mb-0\">\n @for (source of src; track $index) {\n <li>\n <button\n type=\"button\"\n class=\"list-item list-item-action p-4\"\n (click)=\"sourceClicked.emit(source)\"\n >\n <div class=\"list-item-title pt-0\">{{ source.name }}</div>\n @if (source.quote ?? source.description; as description) {\n <p class=\"list-item-description mb-0\">{{ description }}</p>\n }\n </button>\n </li>\n }\n </ul>\n </si-popover-body>\n</ng-template>\n", styles: [".chip{display:inline-flex;align-items:center;justify-content:center;min-inline-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-x-40));border:1px solid var(--si-sys-border-neutral);border-radius:1lh;padding-block:0;padding-inline:var(--si-sys-sizing-spacing-x-40);gap:var(--si-sys-sizing-spacing-y-20) var(--si-sys-sizing-spacing-x-20);background:var(--si-sys-background-0)}.chip:not(.disabled){cursor:pointer}.chip:not(.disabled):not(.selected):hover{background:var(--si-sys-background-hover)}.chip[aria-expanded=true]{background:var(--si-sys-background-active)}.compact{font-size:var(--si-sys-typography-font-size-body-sm);block-size:1rem}.full-size{block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))}.disabled{opacity:var(--element-action-disabled-opacity)}.sources{max-block-size:400px;overflow-y:auto}.sources li:first-child .list-item{border-start-start-radius:var(--element-radius-1);border-start-end-radius:var(--element-radius-1)}.sources li:last-child .list-item{border-end-start-radius:var(--element-radius-1);border-end-end-radius:var(--element-radius-1)}.sources li:not(:first-child){margin-block-start:var(--si-sys-sizing-spacing-y-40)}::ng-deep .si-source-chip-popover{min-inline-size:230px;max-inline-size:400px}\n"] }]
61
+ }, template: "@let dis = disabled();\n@let src = sources();\n<button\n type=\"button\"\n class=\"chip\"\n siPopoverContainerClass=\"si-source-chip-popover\"\n [attr.tabindex]=\"dis ? '' : '0'\"\n [attr.aria-disabled]=\"dis\"\n [class.disabled]=\"dis\"\n [class.compact]=\"compact()\"\n [class.full-size]=\"!compact()\"\n [siPopover]=\"sourcePopover\"\n>\n @if (showIcon()) {\n <si-icon icon=\"element-global\" />\n }\n @if (showLabel() || !src.length) {\n {{ labelSources | translate }}\n } @else {\n {{ label() }}\n\n @if (src.length > 2) {\n +{{ src.length - 1 }}\n }\n }\n</button>\n\n<ng-template #sourcePopover>\n <si-popover-title class=\"visually-hidden\">\n {{ labelSources | translate }}\n </si-popover-title>\n <si-popover-body class=\"p-2 sources\">\n <ul class=\"list-unstyled mb-0\">\n @for (source of src; track $index) {\n <li>\n <button\n type=\"button\"\n class=\"list-item list-item-action p-4\"\n (click)=\"sourceClicked.emit(source)\"\n >\n <div class=\"list-item-title pt-0\">{{ source.name }}</div>\n @if (source.quote ?? source.description; as description) {\n <p class=\"list-item-description mb-0\">{{ description }}</p>\n }\n </button>\n </li>\n }\n </ul>\n </si-popover-body>\n</ng-template>\n", styles: [".chip{display:inline-flex;align-items:center;justify-content:center;min-inline-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-x-40));border:1px solid var(--si-sys-color-border-neutral);border-radius:1lh;padding-block:0;padding-inline:var(--si-sys-sizing-spacing-x-40);gap:var(--si-sys-sizing-spacing-y-20) var(--si-sys-sizing-spacing-x-20);background:var(--si-sys-color-background-0)}.chip:not(.disabled){cursor:pointer}.chip:not(.disabled):not(.selected):hover{background:var(--si-sys-color-background-hover)}.chip[aria-expanded=true]{background:var(--si-sys-color-background-active)}.compact{font-size:var(--si-sys-typography-font-size-body-sm);block-size:1rem}.full-size{block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40))}.disabled{opacity:var(--element-action-disabled-opacity)}.sources{max-block-size:400px;overflow-y:auto}.sources li:first-child .list-item{border-start-start-radius:var(--element-radius-1);border-start-end-radius:var(--element-radius-1)}.sources li:last-child .list-item{border-end-start-radius:var(--element-radius-1);border-end-end-radius:var(--element-radius-1)}.sources li:not(:first-child){margin-block-start:var(--si-sys-sizing-spacing-y-40)}::ng-deep .si-source-chip-popover{min-inline-size:230px;max-inline-size:400px}\n"] }]
62
62
  }], ctorParameters: () => [], propDecorators: { showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], sources: [{ type: i0.Input, args: [{ isSignal: true, alias: "sources", required: true }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], sourceClicked: [{ type: i0.Output, args: ["sourceClicked"] }] } });
63
63
 
64
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-source-chip.mjs","sources":["../../../../projects/element-ng/source-chip/si-source-chip.component.ts","../../../../projects/element-ng/source-chip/si-source-chip.component.html","../../../../projects/element-ng/source-chip/si-source-chip.model.ts","../../../../projects/element-ng/source-chip/index.ts","../../../../projects/element-ng/source-chip/siemens-element-ng-source-chip.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input, output } from '@angular/core';\nimport { elementGlobal } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport {\n SiPopoverTitleDirective,\n SiPopoverBodyDirective,\n SiPopoverDirective\n} from '@siemens/element-ng/popover';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SourceReference } from './si-source-chip.model';\n\n@Component({\n selector: 'si-source-chip',\n imports: [\n SiIconComponent,\n SiTranslatePipe,\n SiPopoverTitleDirective,\n SiPopoverBodyDirective,\n SiPopoverDirective\n ],\n templateUrl: './si-source-chip.component.html',\n styleUrl: './si-source-chip.component.scss',\n host: {\n class: 'px-2',\n '[class.lh-1]': 'compact()'\n }\n})\nexport class SiSourceChipComponent {\n /**\n * Wether to show the glob icon.\n * @defaultValue false\n */\n readonly showIcon = input(false, { transform: booleanAttribute });\n /**\n * Wether to show a 'sources' label\n * @defaultValue false\n */\n readonly showLabel = input(false, { transform: booleanAttribute });\n /** The sources. */\n readonly sources = input.required<SourceReference[]>();\n /**\n * Compact mode for inline use.\n * @defaultValue false\n */\n readonly compact = input(false, { transform: booleanAttribute });\n /**\n * Disabled state.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Emitted when a source has been clicked. */\n readonly sourceClicked = output<SourceReference>();\n\n protected readonly labelSources = t(() => $localize`:@@SI_SOURCE_CHIP.SOURCES:Sources`);\n\n protected readonly label = computed(() => {\n const name = this.sources()[0].name;\n return name.length > 24 ? name.slice(0, 24) + '…' : name;\n });\n\n constructor() {\n addIcons({ elementGlobal });\n }\n}\n","@let dis = disabled();\n@let src = sources();\n<button\n type=\"button\"\n class=\"chip\"\n siPopoverContainerClass=\"si-source-chip-popover\"\n [attr.tabindex]=\"dis ? '' : '0'\"\n [attr.aria-disabled]=\"dis\"\n [class.disabled]=\"dis\"\n [class.compact]=\"compact()\"\n [class.full-size]=\"!compact()\"\n [siPopover]=\"sourcePopover\"\n>\n @if (showIcon()) {\n <si-icon icon=\"element-global\" />\n }\n @if (showLabel() || !src.length) {\n {{ labelSources | translate }}\n } @else {\n {{ label() }}\n\n @if (src.length > 2) {\n +{{ src.length - 1 }}\n }\n }\n</button>\n\n<ng-template #sourcePopover>\n <si-popover-title class=\"visually-hidden\">\n {{ labelSources | translate }}\n </si-popover-title>\n <si-popover-body class=\"p-2 sources\">\n <ul class=\"list-unstyled mb-0\">\n @for (source of src; track $index) {\n <li>\n <button\n type=\"button\"\n class=\"list-item list-item-action p-4\"\n (click)=\"sourceClicked.emit(source)\"\n >\n <div class=\"list-item-title pt-0\">{{ source.name }}</div>\n @if (source.quote ?? source.description; as description) {\n <p class=\"list-item-description mb-0\">{{ description }}</p>\n }\n </button>\n </li>\n }\n </ul>\n </si-popover-body>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\n/** Definition of a single source */\nexport interface SourceReference {\n /** Source name displayed to the user. */\n name: string;\n /** Source URL. */\n url: string;\n /** Optional source description. */\n description?: string;\n /** Optional source quote. Takes precedence over {@link description}. */\n quote?: string;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-source-chip.component';\nexport * from './si-source-chip.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-source-chip.mjs","sources":["../../../../projects/element-ng/source-chip/si-source-chip.component.ts","../../../../projects/element-ng/source-chip/si-source-chip.component.html","../../../../projects/element-ng/source-chip/si-source-chip.model.ts","../../../../projects/element-ng/source-chip/index.ts","../../../../projects/element-ng/source-chip/siemens-element-ng-source-chip.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, computed, input, output } from '@angular/core';\nimport { elementGlobal } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport {\n SiPopoverTitleDirective,\n SiPopoverBodyDirective,\n SiPopoverDirective\n} from '@siemens/element-ng/popover';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SourceReference } from './si-source-chip.model';\n\n@Component({\n selector: 'si-source-chip',\n imports: [\n SiIconComponent,\n SiTranslatePipe,\n SiPopoverTitleDirective,\n SiPopoverBodyDirective,\n SiPopoverDirective\n ],\n templateUrl: './si-source-chip.component.html',\n styleUrl: './si-source-chip.component.scss',\n host: {\n class: 'px-2',\n '[class.lh-1]': 'compact()'\n }\n})\nexport class SiSourceChipComponent {\n /**\n * Wether to show the glob icon.\n * @defaultValue false\n */\n readonly showIcon = input(false, { transform: booleanAttribute });\n /**\n * Wether to show a 'sources' label\n * @defaultValue false\n */\n readonly showLabel = input(false, { transform: booleanAttribute });\n /** The sources. */\n readonly sources = input.required<SourceReference[]>();\n /**\n * Compact mode for inline use.\n * @defaultValue false\n */\n readonly compact = input(false, { transform: booleanAttribute });\n /**\n * Disabled state.\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Emitted when a source has been clicked. */\n readonly sourceClicked = output<SourceReference>();\n\n protected readonly labelSources = t(() => $localize`:@@SI_SOURCE_CHIP.SOURCES:Sources`);\n\n protected readonly label = computed(() => {\n const name = this.sources()[0].name;\n return name.length > 24 ? name.slice(0, 24) + '…' : name;\n });\n\n constructor() {\n addIcons({ elementGlobal });\n }\n}\n","@let dis = disabled();\n@let src = sources();\n<button\n type=\"button\"\n class=\"chip\"\n siPopoverContainerClass=\"si-source-chip-popover\"\n [attr.tabindex]=\"dis ? '' : '0'\"\n [attr.aria-disabled]=\"dis\"\n [class.disabled]=\"dis\"\n [class.compact]=\"compact()\"\n [class.full-size]=\"!compact()\"\n [siPopover]=\"sourcePopover\"\n>\n @if (showIcon()) {\n <si-icon icon=\"element-global\" />\n }\n @if (showLabel() || !src.length) {\n {{ labelSources | translate }}\n } @else {\n {{ label() }}\n\n @if (src.length > 2) {\n +{{ src.length - 1 }}\n }\n }\n</button>\n\n<ng-template #sourcePopover>\n <si-popover-title class=\"visually-hidden\">\n {{ labelSources | translate }}\n </si-popover-title>\n <si-popover-body class=\"p-2 sources\">\n <ul class=\"list-unstyled mb-0\">\n @for (source of src; track $index) {\n <li>\n <button\n type=\"button\"\n class=\"list-item list-item-action p-4\"\n (click)=\"sourceClicked.emit(source)\"\n >\n <div class=\"list-item-title pt-0\">{{ source.name }}</div>\n @if (source.quote ?? source.description; as description) {\n <p class=\"list-item-description mb-0\">{{ description }}</p>\n }\n </button>\n </li>\n }\n </ul>\n </si-popover-body>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\n/** Definition of a single source */\nexport interface SourceReference {\n /** Source name displayed to the user. */\n name: string;\n /** Source URL. */\n url: string;\n /** Optional source description. */\n description?: string;\n /** Optional source quote. Takes precedence over {@link description}. */\n quote?: string;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-source-chip.component';\nexport * from './si-source-chip.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -236,7 +236,7 @@ class SiSplitPartComponent {
236
236
  }
237
237
  }
238
238
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSplitPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
239
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSplitPartComponent, isStandalone: true, selector: "si-split-part", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapseIconClass: { classPropertyName: "collapseIconClass", publicName: "collapseIconClass", isSignal: true, isRequired: false, transformFunction: null }, collapseToMinSize: { classPropertyName: "collapseToMinSize", publicName: "collapseToMinSize", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null }, removeContentOnCollapse: { classPropertyName: "removeContentOnCollapse", publicName: "removeContentOnCollapse", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, collapseLabel: { classPropertyName: "collapseLabel", publicName: "collapseLabel", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: true, transformFunction: null }, collapseOthers: { classPropertyName: "collapseOthers", publicName: "collapseOthers", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapseChanged: "collapseChanged", stateChange: "stateChange" }, host: { properties: { "class.is-collapsed": "collapsedState()", "class.collapse-start": "collapseDirectionState() === \"to-start\"", "style.grid-area": "\"p-\" + this.index" } }, ngImport: i0, template: "@if (!headerTemplate() && showHeader()) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading() | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (collapsible()) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [attr.aria-label]=\"collapseLabel() | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass() ?? icons.elementDoubleRight\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate(); as headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse() && collapsedState() && !collapseToMinSize()\"\n>\n @if (!removeContentOnCollapse() || !collapsedState()) {\n <ng-content />\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}.si-split-part-content{flex:1 1 auto;display:flex;overflow:hidden;flex-direction:column}.si-split-part-header{display:flex;flex-direction:row;flex:none;align-items:center;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);background:var(--si-sys-background-0);block-size:40px}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header{flex:auto;flex-direction:column;max-block-size:100%;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-title{inline-size:100%;writing-mode:vertical-rl;transform:rotate(180deg)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-collapse-button{order:-1}.si-split-part-title{font-weight:600;flex:1}.si-split-part-actions{padding-inline:var(--si-sys-sizing-spacing-x-40);flex:0 0 auto}:host-context(.vertical)>:host .si-split-button{--orientation-rotate: rotate(90deg)}[dir=rtl] :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:dir(rtl) :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:host(.is-collapsed) .si-split-button{--collapse-rotate: rotate(180deg)}:host(.collapse-start) .si-split-button{--collapse-direction: rotate(180deg)}.si-split-button .collapse-icon{transform:var(--orientation-rotate, rotate(0)) var(--collapse-rotate, rotate(0)) var(--collapse-direction, rotate(0)) var(--orientation-rtl, scaleX(1))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
239
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSplitPartComponent, isStandalone: true, selector: "si-split-part", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapseIconClass: { classPropertyName: "collapseIconClass", publicName: "collapseIconClass", isSignal: true, isRequired: false, transformFunction: null }, collapseToMinSize: { classPropertyName: "collapseToMinSize", publicName: "collapseToMinSize", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null }, removeContentOnCollapse: { classPropertyName: "removeContentOnCollapse", publicName: "removeContentOnCollapse", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, collapseLabel: { classPropertyName: "collapseLabel", publicName: "collapseLabel", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: true, transformFunction: null }, collapseOthers: { classPropertyName: "collapseOthers", publicName: "collapseOthers", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapseChanged: "collapseChanged", stateChange: "stateChange" }, host: { properties: { "class.is-collapsed": "collapsedState()", "class.collapse-start": "collapseDirectionState() === \"to-start\"", "style.grid-area": "\"p-\" + this.index" } }, ngImport: i0, template: "@if (!headerTemplate() && showHeader()) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading() | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (collapsible()) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [attr.aria-label]=\"collapseLabel() | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass() ?? icons.elementDoubleRight\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate(); as headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse() && collapsedState() && !collapseToMinSize()\"\n>\n @if (!removeContentOnCollapse() || !collapsedState()) {\n <ng-content />\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}.si-split-part-content{flex:1 1 auto;display:flex;overflow:hidden;flex-direction:column}.si-split-part-header{display:flex;flex-direction:row;flex:none;align-items:center;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);background:var(--si-sys-color-background-0);block-size:40px}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header{flex:auto;flex-direction:column;max-block-size:100%;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-title{inline-size:100%;writing-mode:vertical-rl;transform:rotate(180deg)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-collapse-button{order:-1}.si-split-part-title{font-weight:600;flex:1}.si-split-part-actions{padding-inline:var(--si-sys-sizing-spacing-x-40);flex:0 0 auto}:host-context(.vertical)>:host .si-split-button{--orientation-rotate: rotate(90deg)}[dir=rtl] :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:dir(rtl) :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:host(.is-collapsed) .si-split-button{--collapse-rotate: rotate(180deg)}:host(.collapse-start) .si-split-button{--collapse-direction: rotate(180deg)}.si-split-button .collapse-icon{transform:var(--orientation-rotate, rotate(0)) var(--collapse-rotate, rotate(0)) var(--collapse-direction, rotate(0)) var(--orientation-rtl, scaleX(1))}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
240
240
  }
241
241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSplitPartComponent, decorators: [{
242
242
  type: Component,
@@ -244,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
244
244
  '[class.is-collapsed]': 'collapsedState()',
245
245
  '[class.collapse-start]': 'collapseDirectionState() === "to-start"',
246
246
  '[style.grid-area]': '"p-" + this.index'
247
- }, template: "@if (!headerTemplate() && showHeader()) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading() | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (collapsible()) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [attr.aria-label]=\"collapseLabel() | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass() ?? icons.elementDoubleRight\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate(); as headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse() && collapsedState() && !collapseToMinSize()\"\n>\n @if (!removeContentOnCollapse() || !collapsedState()) {\n <ng-content />\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}.si-split-part-content{flex:1 1 auto;display:flex;overflow:hidden;flex-direction:column}.si-split-part-header{display:flex;flex-direction:row;flex:none;align-items:center;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);background:var(--si-sys-background-0);block-size:40px}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header{flex:auto;flex-direction:column;max-block-size:100%;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-title{inline-size:100%;writing-mode:vertical-rl;transform:rotate(180deg)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-collapse-button{order:-1}.si-split-part-title{font-weight:600;flex:1}.si-split-part-actions{padding-inline:var(--si-sys-sizing-spacing-x-40);flex:0 0 auto}:host-context(.vertical)>:host .si-split-button{--orientation-rotate: rotate(90deg)}[dir=rtl] :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:dir(rtl) :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:host(.is-collapsed) .si-split-button{--collapse-rotate: rotate(180deg)}:host(.collapse-start) .si-split-button{--collapse-direction: rotate(180deg)}.si-split-button .collapse-icon{transform:var(--orientation-rotate, rotate(0)) var(--collapse-rotate, rotate(0)) var(--collapse-direction, rotate(0)) var(--orientation-rtl, scaleX(1))}\n"] }]
247
+ }, template: "@if (!headerTemplate() && showHeader()) {\n <div class=\"si-split-part-header\" [class.is-collapsed]=\"collapsedState()\">\n <div class=\"si-split-part-title text-truncate\">\n {{ heading() | translate }}\n </div>\n @if (!collapsedState()) {\n <div class=\"si-split-part-actions\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [title]=\"action.tooltip || ''\"\n [attr.aria-label]=\"action.tooltip\"\n (click)=\"action.click($event)\"\n >\n <si-icon [icon]=\"action.iconClass\" />\n </button>\n }\n </div>\n }\n @if (collapsible()) {\n <div class=\"si-split-part-collapse-button\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost si-split-button\"\n [attr.aria-label]=\"collapseLabel() | translate\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"collapse-icon\" [icon]=\"collapseIconClass() ?? icons.elementDoubleRight\" />\n </button>\n </div>\n }\n </div>\n}\n\n@if (headerTemplate(); as headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: headerContext\" />\n}\n\n<div\n class=\"si-split-part-content\"\n [class.d-none]=\"!removeContentOnCollapse() && collapsedState() && !collapseToMinSize()\"\n>\n @if (!removeContentOnCollapse() || !collapsedState()) {\n <ng-content />\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}.si-split-part-content{flex:1 1 auto;display:flex;overflow:hidden;flex-direction:column}.si-split-part-header{display:flex;flex-direction:row;flex:none;align-items:center;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30);background:var(--si-sys-color-background-0);block-size:40px}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header{flex:auto;flex-direction:column;max-block-size:100%;padding:var(--si-sys-sizing-spacing-y-30) var(--si-sys-sizing-spacing-x-30)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-title{inline-size:100%;writing-mode:vertical-rl;transform:rotate(180deg)}:host-context(.horizontal)>:host(.is-collapsed) .si-split-part-header .si-split-part-collapse-button{order:-1}.si-split-part-title{font-weight:600;flex:1}.si-split-part-actions{padding-inline:var(--si-sys-sizing-spacing-x-40);flex:0 0 auto}:host-context(.vertical)>:host .si-split-button{--orientation-rotate: rotate(90deg)}[dir=rtl] :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:dir(rtl) :host-context(.horizontal)>:host .si-split-button{--orientation-rtl: scaleX(-1)}:host(.is-collapsed) .si-split-button{--collapse-rotate: rotate(180deg)}:host(.collapse-start) .si-split-button{--collapse-direction: rotate(180deg)}.si-split-button .collapse-icon{transform:var(--orientation-rotate, rotate(0)) var(--collapse-rotate, rotate(0)) var(--collapse-direction, rotate(0)) var(--orientation-rtl, scaleX(1))}\n"] }]
248
248
  }], ctorParameters: () => [], propDecorators: { actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], collapseIconClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseIconClass", required: false }] }], collapseToMinSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseToMinSize", required: false }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTemplate", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }], removeContentOnCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "removeContentOnCollapse", required: false }] }], showHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHeader", required: false }] }], collapseLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseLabel", required: false }] }], stateId: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateId", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: true }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: true }] }], collapseOthers: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseOthers", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], collapseChanged: [{ type: i0.Output, args: ["collapseChanged"] }], stateChange: [{ type: i0.Output, args: ["stateChange"] }] } });
249
249
 
250
250
  class SiSplitComponent {
@@ -497,7 +497,7 @@ class SiSplitComponent {
497
497
  });
498
498
  }
499
499
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSplitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
500
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSplitComponent, isStandalone: true, selector: "si-split", inputs: { gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sizesChange: "sizesChange" }, host: { properties: { "class": "orientation()", "style.grid-template-rows": "gridTemplateRows()", "style.grid-template-columns": "gridTemplateColumns()", "style.grid-template-areas": "gridTemplateAreas()" } }, queries: [{ propertyName: "parts", predicate: SiSplitPartComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n\n@for (gutter of gutters(); track $index) {\n @if ($index < parts().length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation() === 'horizontal' ? gutterSize() : null\"\n [style.height.px]=\"orientation() === 'vertical' ? gutterSize() : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n", styles: [":host{display:grid;inline-size:100%;block-size:100%}.si-split-gutter{flex:0 0 auto;background:var(--si-sys-background-0);cursor:col-resize}.si-split-gutter:before{display:block;content:\"\";position:relative;inset-block-start:50%;margin-block-start:-20px;inset-inline-start:50%;margin-inline-start:-1px;inline-size:2px;block-size:40px;background:var(--si-sys-border-2)}:host(.vertical)>.si-split-gutter{inline-size:auto;cursor:row-resize}:host(.vertical)>.si-split-gutter:before{transform:rotate(90deg)}.si-split-gutter:hover:before{background:var(--si-sys-border-accent-hover)}.si-split-gutter:active:before{background:var(--si-sys-border-accent-active)}\n"] });
500
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSplitComponent, isStandalone: true, selector: "si-split", inputs: { gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sizesChange: "sizesChange" }, host: { properties: { "class": "orientation()", "style.grid-template-rows": "gridTemplateRows()", "style.grid-template-columns": "gridTemplateColumns()", "style.grid-template-areas": "gridTemplateAreas()" } }, queries: [{ propertyName: "parts", predicate: SiSplitPartComponent, isSignal: true }], ngImport: i0, template: "<ng-content />\n\n@for (gutter of gutters(); track $index) {\n @if ($index < parts().length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation() === 'horizontal' ? gutterSize() : null\"\n [style.height.px]=\"orientation() === 'vertical' ? gutterSize() : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n", styles: [":host{display:grid;inline-size:100%;block-size:100%}.si-split-gutter{flex:0 0 auto;background:var(--si-sys-color-background-0);cursor:col-resize}.si-split-gutter:before{display:block;content:\"\";position:relative;inset-block-start:50%;margin-block-start:-20px;inset-inline-start:50%;margin-inline-start:-1px;inline-size:2px;block-size:40px;background:var(--si-sys-color-border-2)}:host(.vertical)>.si-split-gutter{inline-size:auto;cursor:row-resize}:host(.vertical)>.si-split-gutter:before{transform:rotate(90deg)}.si-split-gutter:hover:before{background:var(--si-sys-color-border-accent-hover)}.si-split-gutter:active:before{background:var(--si-sys-color-border-accent-active)}\n"] });
501
501
  }
502
502
  __decorate([
503
503
  WebComponentContentChildren(SiSplitPartComponent)
@@ -509,7 +509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
509
509
  '[style.grid-template-rows]': 'gridTemplateRows()',
510
510
  '[style.grid-template-columns]': 'gridTemplateColumns()',
511
511
  '[style.grid-template-areas]': 'gridTemplateAreas()'
512
- }, template: "<ng-content />\n\n@for (gutter of gutters(); track $index) {\n @if ($index < parts().length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation() === 'horizontal' ? gutterSize() : null\"\n [style.height.px]=\"orientation() === 'vertical' ? gutterSize() : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n", styles: [":host{display:grid;inline-size:100%;block-size:100%}.si-split-gutter{flex:0 0 auto;background:var(--si-sys-background-0);cursor:col-resize}.si-split-gutter:before{display:block;content:\"\";position:relative;inset-block-start:50%;margin-block-start:-20px;inset-inline-start:50%;margin-inline-start:-1px;inline-size:2px;block-size:40px;background:var(--si-sys-border-2)}:host(.vertical)>.si-split-gutter{inline-size:auto;cursor:row-resize}:host(.vertical)>.si-split-gutter:before{transform:rotate(90deg)}.si-split-gutter:hover:before{background:var(--si-sys-border-accent-hover)}.si-split-gutter:active:before{background:var(--si-sys-border-accent-active)}\n"] }]
512
+ }, template: "<ng-content />\n\n@for (gutter of gutters(); track $index) {\n @if ($index < parts().length - 1) {\n <div\n class=\"si-split-gutter\"\n [class.d-none]=\"!gutter.visible()\"\n [style.grid-area]=\"'g-' + $index\"\n [style.width.px]=\"orientation() === 'horizontal' ? gutterSize() : null\"\n [style.height.px]=\"orientation() === 'vertical' ? gutterSize() : null\"\n (mousedown)=\"resizeStart(gutter, $event)\"\n (touchstart)=\"resizeStart(gutter, $event)\"\n ></div>\n }\n}\n", styles: [":host{display:grid;inline-size:100%;block-size:100%}.si-split-gutter{flex:0 0 auto;background:var(--si-sys-color-background-0);cursor:col-resize}.si-split-gutter:before{display:block;content:\"\";position:relative;inset-block-start:50%;margin-block-start:-20px;inset-inline-start:50%;margin-inline-start:-1px;inline-size:2px;block-size:40px;background:var(--si-sys-color-border-2)}:host(.vertical)>.si-split-gutter{inline-size:auto;cursor:row-resize}:host(.vertical)>.si-split-gutter:before{transform:rotate(90deg)}.si-split-gutter:hover:before{background:var(--si-sys-color-border-accent-hover)}.si-split-gutter:active:before{background:var(--si-sys-color-border-accent-active)}\n"] }]
513
513
  }], ctorParameters: () => [], propDecorators: { gutterSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "gutterSize", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], stateId: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateId", required: false }] }], sizesChange: [{ type: i0.Output, args: ["sizesChange"] }], parts: [] } });
514
514
 
515
515
  /**