@siemens/element-ng 49.2.0 → 49.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) 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-application-header.mjs +3 -3
  4. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
  9. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-datepicker.mjs +22 -24
  13. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-header-dropdown.mjs +2 -2
  18. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-main-detail-container.mjs +21 -25
  21. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-menu.mjs +6 -6
  23. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +8 -4
  25. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-photo-upload.mjs +1 -1
  30. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-search-bar.mjs +7 -2
  32. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-side-panel.mjs +164 -10
  34. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-status-toggle.mjs +1 -1
  38. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-tree-view.mjs +11 -3
  40. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  42. package/package.json +3 -3
  43. package/schematics/vitest-setup.js +5 -0
  44. package/types/siemens-element-ng-application-header.d.ts +1 -1
  45. package/types/siemens-element-ng-auto-collapsable-list.d.ts +1 -1
  46. package/types/siemens-element-ng-avatar.d.ts +1 -1
  47. package/types/siemens-element-ng-circle-status.d.ts +1 -1
  48. package/types/siemens-element-ng-dashboard.d.ts +2 -2
  49. package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
  50. package/types/siemens-element-ng-datepicker.d.ts +7 -7
  51. package/types/siemens-element-ng-file-uploader.d.ts +1 -1
  52. package/types/siemens-element-ng-filtered-search.d.ts +1 -1
  53. package/types/siemens-element-ng-form.d.ts +1 -1
  54. package/types/siemens-element-ng-list-details.d.ts +1 -1
  55. package/types/siemens-element-ng-main-detail-container.d.ts +10 -11
  56. package/types/siemens-element-ng-navbar-vertical.d.ts +7 -3
  57. package/types/siemens-element-ng-navbar.d.ts +1 -1
  58. package/types/siemens-element-ng-number-input.d.ts +1 -1
  59. package/types/siemens-element-ng-phone-number.d.ts +1 -1
  60. package/types/siemens-element-ng-photo-upload.d.ts +1 -1
  61. package/types/siemens-element-ng-search-bar.d.ts +1 -1
  62. package/types/siemens-element-ng-side-panel.d.ts +115 -5
  63. package/types/siemens-element-ng-split.d.ts +2 -2
  64. package/types/siemens-element-ng-status-bar.d.ts +1 -1
  65. package/types/siemens-element-ng-status-toggle.d.ts +1 -1
  66. package/types/siemens-element-ng-tree-view.d.ts +1 -1
  67. package/types/siemens-element-ng-typeahead.d.ts +1 -1
@@ -182,7 +182,7 @@ class SiCollapsiblePanelComponent {
182
182
  }
183
183
  }
184
184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiCollapsiblePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiCollapsiblePanelComponent, isStandalone: true, selector: "si-collapsible-panel", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, headerCssClasses: { classPropertyName: "headerCssClasses", publicName: "headerCssClasses", isSignal: true, isRequired: false, transformFunction: null }, contentBgClasses: { classPropertyName: "contentBgClasses", publicName: "contentBgClasses", isSignal: true, isRequired: false, transformFunction: null }, contentCssClasses: { classPropertyName: "contentCssClasses", publicName: "contentCssClasses", isSignal: true, isRequired: false, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "openedChange", panelToggle: "panelToggle" }, host: { properties: { "class": "colorVariant()", "class.opened": "opened()", "class.hcollapsed": "hcollapsed()", "class.full-height": "fullHeight()", "style.--element-animations-enabled": "disableAnimation() ? \"0\" : undefined" } }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside px-6 ${headerCssClasses()}`\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon class=\"icon ms-n2 me-2\" [icon]=\"headerIcon\" [class.collapsed-icon]=\"isHCollapsible\" />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto overflow-hidden\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--element-base-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--element-base-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--element-base-1-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--element-base-1);color:var(--element-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--element-text-disabled);cursor:default}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--element-base-1-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--element-ui-1)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;background:var(--element-base-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}.content-motion{display:grid;grid-template-rows:1fr;transition:grid-template-rows calc(.5s * var(--element-animations-enabled, 1))}@starting-style{.content-motion{grid-template-rows:0fr}}.content-motion.content-leave{grid-template-rows:0fr}:host(.full-height) .content-motion{display:flex}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiTooltipDirective, selector: "[siTooltip]", inputs: ["siTooltip", "placement", "isDisabled", "tooltipContext"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiCollapsiblePanelComponent, isStandalone: true, selector: "si-collapsible-panel", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, headerCssClasses: { classPropertyName: "headerCssClasses", publicName: "headerCssClasses", isSignal: true, isRequired: false, transformFunction: null }, contentBgClasses: { classPropertyName: "contentBgClasses", publicName: "contentBgClasses", isSignal: true, isRequired: false, transformFunction: null }, contentCssClasses: { classPropertyName: "contentCssClasses", publicName: "contentCssClasses", isSignal: true, isRequired: false, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, colorVariant: { classPropertyName: "colorVariant", publicName: "colorVariant", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "openedChange", panelToggle: "panelToggle" }, host: { properties: { "class": "colorVariant()", "class.opened": "opened()", "class.hcollapsed": "hcollapsed()", "class.full-height": "fullHeight()", "style.--element-animations-enabled": "disableAnimation() ? \"0\" : undefined" } }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--element-base-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--element-base-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--element-base-1-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--element-base-1);color:var(--element-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--element-text-disabled);cursor:default}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--element-base-1-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--element-ui-1)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;background:var(--element-base-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}.content-motion{display:grid;grid-template-rows:1fr;transition:grid-template-rows calc(.5s * var(--element-animations-enabled, 1))}@starting-style{.content-motion{grid-template-rows:0fr}}.content-motion.content-leave{grid-template-rows:0fr}:host(.full-height) .content-motion{display:flex}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiTooltipDirective, selector: "[siTooltip]", inputs: ["siTooltip", "placement", "isDisabled", "tooltipContext"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
186
186
  }
187
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiCollapsiblePanelComponent, decorators: [{
188
188
  type: Component,
@@ -192,7 +192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
192
192
  '[class.hcollapsed]': 'hcollapsed()',
193
193
  '[class.full-height]': 'fullHeight()',
194
194
  '[style.--element-animations-enabled]': 'disableAnimation() ? "0" : undefined'
195
- }, template: "<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside px-6 ${headerCssClasses()}`\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon class=\"icon ms-n2 me-2\" [icon]=\"headerIcon\" [class.collapsed-icon]=\"isHCollapsible\" />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto overflow-hidden\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--element-base-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--element-base-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--element-base-1-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--element-base-1);color:var(--element-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--element-text-disabled);cursor:default}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--element-base-1-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--element-ui-1)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;background:var(--element-base-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}.content-motion{display:grid;grid-template-rows:1fr;transition:grid-template-rows calc(.5s * var(--element-animations-enabled, 1))}@starting-style{.content-motion{grid-template-rows:0fr}}.content-motion.content-leave{grid-template-rows:0fr}:host(.full-height) .content-motion{display:flex}\n"] }]
195
+ }, template: "<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [":host{--__radius: var(--si-accordion-radius, var(--element-button-radius));display:flex;flex-direction:column;background:var(--element-base-0);padding-block-end:2px}:host:not(.hcollapsed) .collapsed-icon,:host:not(.hcollapsed) .badge-text{display:none}:host.hcollapsed{background:var(--element-base-1)}:host.hcollapsed .collapsible-header .autohide,:host.hcollapsed .collapsible-content{display:none}:host.hcollapsed .collapsible-header{padding-block:8px}:host.hcollapsed .collapsible-header:hover{background:var(--element-base-1-hover)}:host.full-height{transition:flex-grow calc(.5s * var(--element-animations-enabled, 1))}:host.full-height.opened,:host.full-height .collapsible-content{flex:1 1 0}:host.full-height .collapsible-content>div{flex:1 0 0}.collapsible-header{display:flex;align-items:center;background:var(--element-base-1);color:var(--element-text-primary);padding-block:12px;border-radius:var(--__radius)}.collapsible-header.disabled{color:var(--element-text-disabled);cursor:default}.collapsible-header.open{border-end-start-radius:0;border-end-end-radius:0}.collapsible-header:not(.disabled){cursor:pointer}.collapsible-header:not(.disabled):hover{text-decoration:none;background:var(--element-base-1-hover)}.dropdown-caret{transition:transform calc(.5s * var(--element-animations-enabled, 1));color:var(--element-ui-1)}.open .dropdown-caret{transform:rotate(180deg)}.collapsible-content{overflow:hidden;background:var(--element-base-1);border-end-start-radius:var(--__radius);border-end-end-radius:var(--__radius)}.collapsible-content.full-height{overflow:auto}.content-motion{display:grid;grid-template-rows:1fr;transition:grid-template-rows calc(.5s * var(--element-animations-enabled, 1))}@starting-style{.content-motion{grid-template-rows:0fr}}.content-motion.content-leave{grid-template-rows:0fr}:host(.full-height) .content-motion{display:flex}\n"] }]
196
196
  }], ctorParameters: () => [], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], headerCssClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerCssClasses", required: false }] }], contentBgClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentBgClasses", required: false }] }], contentCssClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentCssClasses", required: false }] }], opened: [{ type: i0.Input, args: [{ isSignal: true, alias: "opened", required: false }] }, { type: i0.Output, args: ["openedChange"] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], colorVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorVariant", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], badgeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeColor", required: false }] }], panelToggle: [{ type: i0.Output, args: ["panelToggle"] }], contentRef: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }] } });
197
197
 
198
198
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-accordion.mjs","sources":["../../../../projects/element-ng/accordion/si-accordion-hcollapse.service.ts","../../../../projects/element-ng/accordion/si-accordion.service.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.html","../../../../projects/element-ng/accordion/si-accordion.component.ts","../../../../projects/element-ng/accordion/si-accordion.module.ts","../../../../projects/element-ng/accordion/index.ts","../../../../projects/element-ng/accordion/siemens-element-ng-accordion.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionHCollapseService {\n /**\n * Emitting the current horizontal collapsed state.\n *\n * @defaultValue undefined\n */\n readonly hcollapsed = signal<boolean | undefined>(undefined);\n /**\n * Subject to emit to open the accordion.\n */\n readonly open$ = new Subject();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionService {\n /**\n * Emit an item in the accordion which should be toggled.\n */\n readonly toggle$ = new Subject<any>();\n /**\n * Subject to emit when the items should be expanded to their full height or restored to normal height.\n *\n * @defaultValue null\n */\n readonly fullHeight = signal<boolean | null>(null);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { filter } from 'rxjs';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\n\nlet controlIdCounter = 1;\n\n@Component({\n selector: 'si-collapsible-panel',\n imports: [SiIconComponent, SiTranslatePipe, SiTooltipDirective],\n templateUrl: './si-collapsible-panel.component.html',\n styleUrl: './si-collapsible-panel.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'colorVariant()',\n '[class.opened]': 'opened()',\n '[class.hcollapsed]': 'hcollapsed()',\n '[class.full-height]': 'fullHeight()',\n '[style.--element-animations-enabled]': 'disableAnimation() ? \"0\" : undefined'\n }\n})\nexport class SiCollapsiblePanelComponent {\n /**\n * Heading for the collapsible panel.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Additional CSS classes for the top element.\n *\n * @defaultValue ''\n */\n readonly headerCssClasses = input('');\n /**\n * Additional CSS classes for the collapsible content region.\n *\n * @defaultValue ''\n */\n readonly contentBgClasses = input('');\n /**\n * Additional CSS classes for the wrapping content element.\n *\n * @defaultValue ''\n */\n readonly contentCssClasses = input('');\n /**\n * Expand/collapse the panel.\n *\n * @defaultValue false\n */\n readonly opened = model(false);\n /**\n * The icon to be displayed besides the heading.\n */\n readonly icon = input<string>();\n /**\n * Whether the si-collapsible-panel is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Color variant for component background.\n *\n * @deprecated This input has no effect on the component styling.\n */\n readonly colorVariant = input<BackgroundColorVariant>();\n /**\n * Defines the content of the optional badge. Should be a number or something like \"100+\".\n * if undefined or empty string, no badge is displayed\n */\n readonly badge = input<string | number>();\n /**\n * Defines the background color of the badge. Default is specific to Element flavour.\n */\n readonly badgeColor = input<string>();\n\n /**\n * An event emitted when the user triggered expand/collapse and emit with the new open state.\n * The event is emitted before the animation happens.\n */\n readonly panelToggle = output<boolean>();\n\n protected readonly hcollapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? false\n );\n protected readonly fullHeight = computed(() => this.accordionService?.fullHeight() ?? false);\n protected controlId = '__si-collapsible-' + controlIdCounter++;\n protected headerId = this.controlId + '-header';\n protected isHCollapsible = false;\n protected readonly icons = addIcons({ elementDown2 });\n protected readonly disableAnimation = signal(false);\n\n private readonly accordionService = inject(SiAccordionService, { optional: true });\n private readonly accordionHCollapseService = inject(SiAccordionHCollapseService, {\n optional: true\n });\n /** Restore the content scroll position between open/close of the panel. */\n private lastScrollPos = 0;\n private readonly contentRef = viewChild.required<ElementRef<HTMLElement>>('content');\n\n constructor() {\n this.isHCollapsible = !!this.accordionHCollapseService;\n this.accordionService?.toggle$\n .pipe(\n takeUntilDestroyed(),\n filter(item => item !== this)\n )\n .subscribe(() => this.openClose(false));\n }\n\n /**\n * Expand/collapse panel.\n * @param open - indicate the panel shall open or close\n * @param enableAnimation - with animation\n */\n openClose(open: boolean, enableAnimation = true): void {\n this.opened.set(open);\n this.disableAnimation.set(!enableAnimation);\n\n if (open) {\n // Restore scroll position after opening\n setTimeout(() => {\n this.contentRef().nativeElement.scrollTop = this.lastScrollPos;\n });\n } else {\n // Save scroll position before closing\n this.lastScrollPos = this.contentRef().nativeElement.scrollTop;\n }\n }\n\n protected doToggle(event?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n event?.preventDefault();\n const opened = this.opened();\n this.panelToggle.emit(!opened);\n this.openClose(this.hcollapsed() || !opened);\n this.accordionService?.toggle$.next(this);\n if (this.hcollapsed()) {\n this.accordionHCollapseService?.open$.next(this);\n }\n }\n\n protected keydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === 'Space' || event.key === ' ') {\n this.doToggle(undefined);\n }\n }\n}\n","<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside px-6 ${headerCssClasses()}`\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon class=\"icon ms-n2 me-2\" [icon]=\"headerIcon\" [class.collapsed-icon]=\"isHCollapsible\" />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto overflow-hidden\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnChanges\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\nconst PANEL_MIN_HEIGHT = 100;\n\n@Component({\n selector: 'si-accordion',\n template: '<div><ng-content /></div>',\n styleUrl: './si-accordion.component.scss',\n providers: [SiAccordionService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.full-height]': 'fullHeight()',\n '[class.hcollapsed]': 'collapsed()'\n }\n})\nexport class SiAccordionComponent implements AfterContentInit, OnChanges {\n /** @defaultValue true */\n readonly expandFirstPanel = input(true, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly fullHeight = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly hcollapsed = input(false);\n /**\n * Indicate whether the accordion is collapsed.\n * @internal\n */\n readonly collapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? this.hcollapsed()\n );\n\n private readonly panels = contentChildren(SiCollapsiblePanelComponent);\n private responsive = false;\n private destroyer = inject(DestroyRef);\n private service = inject(SiAccordionService);\n private resizeObserver = inject(ResizeObserverService);\n private element = inject(ElementRef);\n private accordionHCollapseService = inject(SiAccordionHCollapseService, { optional: true });\n\n ngOnChanges(): void {\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n\n ngAfterContentInit(): void {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true, true)\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() => this.calcFullHeight());\n\n this.panels().at(0)?.openClose(this.expandFirstPanel(), false);\n }\n\n private calcFullHeight(): void {\n if (this.panels()?.length) {\n const height = (this.element.nativeElement as HTMLElement).offsetHeight;\n this.responsive = !this.hcollapsed() && height < this.panels().length * PANEL_MIN_HEIGHT;\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAccordionComponent } from './si-accordion.component';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\n@NgModule({\n imports: [SiAccordionComponent, SiCollapsiblePanelComponent],\n exports: [SiAccordionComponent, SiCollapsiblePanelComponent]\n})\nexport class SiAccordionModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-collapsible-panel.component';\nexport * from './si-accordion.component';\nexport * from './si-accordion.service';\nexport * from './si-accordion-hcollapse.service';\nexport * from './si-accordion.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-accordion.mjs","sources":["../../../../projects/element-ng/accordion/si-accordion-hcollapse.service.ts","../../../../projects/element-ng/accordion/si-accordion.service.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.ts","../../../../projects/element-ng/accordion/si-collapsible-panel.component.html","../../../../projects/element-ng/accordion/si-accordion.component.ts","../../../../projects/element-ng/accordion/si-accordion.module.ts","../../../../projects/element-ng/accordion/index.ts","../../../../projects/element-ng/accordion/siemens-element-ng-accordion.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionHCollapseService {\n /**\n * Emitting the current horizontal collapsed state.\n *\n * @defaultValue undefined\n */\n readonly hcollapsed = signal<boolean | undefined>(undefined);\n /**\n * Subject to emit to open the accordion.\n */\n readonly open$ = new Subject();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/** @internal */\n@Injectable({\n providedIn: null\n})\nexport class SiAccordionService {\n /**\n * Emit an item in the accordion which should be toggled.\n */\n readonly toggle$ = new Subject<any>();\n /**\n * Subject to emit when the items should be expanded to their full height or restored to normal height.\n *\n * @defaultValue null\n */\n readonly fullHeight = signal<boolean | null>(null);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { BackgroundColorVariant } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { filter } from 'rxjs';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\n\nlet controlIdCounter = 1;\n\n@Component({\n selector: 'si-collapsible-panel',\n imports: [SiIconComponent, SiTranslatePipe, SiTooltipDirective],\n templateUrl: './si-collapsible-panel.component.html',\n styleUrl: './si-collapsible-panel.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'colorVariant()',\n '[class.opened]': 'opened()',\n '[class.hcollapsed]': 'hcollapsed()',\n '[class.full-height]': 'fullHeight()',\n '[style.--element-animations-enabled]': 'disableAnimation() ? \"0\" : undefined'\n }\n})\nexport class SiCollapsiblePanelComponent {\n /**\n * Heading for the collapsible panel.\n */\n readonly heading = input<TranslatableString>();\n /**\n * Additional CSS classes for the top element.\n *\n * @defaultValue ''\n */\n readonly headerCssClasses = input('');\n /**\n * Additional CSS classes for the collapsible content region.\n *\n * @defaultValue ''\n */\n readonly contentBgClasses = input('');\n /**\n * Additional CSS classes for the wrapping content element.\n *\n * @defaultValue ''\n */\n readonly contentCssClasses = input('');\n /**\n * Expand/collapse the panel.\n *\n * @defaultValue false\n */\n readonly opened = model(false);\n /**\n * The icon to be displayed besides the heading.\n */\n readonly icon = input<string>();\n /**\n * Whether the si-collapsible-panel is disabled.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Color variant for component background.\n *\n * @deprecated This input has no effect on the component styling.\n */\n readonly colorVariant = input<BackgroundColorVariant>();\n /**\n * Defines the content of the optional badge. Should be a number or something like \"100+\".\n * if undefined or empty string, no badge is displayed\n */\n readonly badge = input<string | number>();\n /**\n * Defines the background color of the badge. Default is specific to Element flavour.\n */\n readonly badgeColor = input<string>();\n\n /**\n * An event emitted when the user triggered expand/collapse and emit with the new open state.\n * The event is emitted before the animation happens.\n */\n readonly panelToggle = output<boolean>();\n\n protected readonly hcollapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? false\n );\n protected readonly fullHeight = computed(() => this.accordionService?.fullHeight() ?? false);\n protected controlId = '__si-collapsible-' + controlIdCounter++;\n protected headerId = this.controlId + '-header';\n protected isHCollapsible = false;\n protected readonly icons = addIcons({ elementDown2 });\n protected readonly disableAnimation = signal(false);\n\n private readonly accordionService = inject(SiAccordionService, { optional: true });\n private readonly accordionHCollapseService = inject(SiAccordionHCollapseService, {\n optional: true\n });\n /** Restore the content scroll position between open/close of the panel. */\n private lastScrollPos = 0;\n private readonly contentRef = viewChild.required<ElementRef<HTMLElement>>('content');\n\n constructor() {\n this.isHCollapsible = !!this.accordionHCollapseService;\n this.accordionService?.toggle$\n .pipe(\n takeUntilDestroyed(),\n filter(item => item !== this)\n )\n .subscribe(() => this.openClose(false));\n }\n\n /**\n * Expand/collapse panel.\n * @param open - indicate the panel shall open or close\n * @param enableAnimation - with animation\n */\n openClose(open: boolean, enableAnimation = true): void {\n this.opened.set(open);\n this.disableAnimation.set(!enableAnimation);\n\n if (open) {\n // Restore scroll position after opening\n setTimeout(() => {\n this.contentRef().nativeElement.scrollTop = this.lastScrollPos;\n });\n } else {\n // Save scroll position before closing\n this.lastScrollPos = this.contentRef().nativeElement.scrollTop;\n }\n }\n\n protected doToggle(event?: Event): void {\n if (this.disabled()) {\n return;\n }\n\n event?.preventDefault();\n const opened = this.opened();\n this.panelToggle.emit(!opened);\n this.openClose(this.hcollapsed() || !opened);\n this.accordionService?.toggle$.next(this);\n if (this.hcollapsed()) {\n this.accordionHCollapseService?.open$.next(this);\n }\n }\n\n protected keydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === 'Space' || event.key === ' ') {\n this.doToggle(undefined);\n }\n }\n}\n","<div\n role=\"button\"\n placement=\"start\"\n [siTooltip]=\"hcollapsed() && heading() ? (heading()! | translate) : ''\"\n [class]=\"`collapsible-header focus-inside ${headerCssClasses()}`\"\n [class.px-5]=\"hcollapsed()\"\n [class.px-6]=\"!hcollapsed()\"\n [attr.tabindex]=\"disabled() ? '' : '0'\"\n [id]=\"headerId\"\n [class.open]=\"opened()\"\n [class.disabled]=\"disabled()\"\n [attr.aria-expanded]=\"opened() && !hcollapsed()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-controls]=\"controlId\"\n [attr.aria-label]=\"hcollapsed() ? (heading() | translate) : ''\"\n (keydown)=\"keydown($event)\"\n (click)=\"doToggle($event)\"\n>\n @let headerIcon = icon();\n @if (headerIcon) {\n <si-icon\n class=\"icon\"\n [class.p-1]=\"hcollapsed()\"\n [class.pe-2]=\"!hcollapsed()\"\n [icon]=\"headerIcon\"\n [class.collapsed-icon]=\"isHCollapsible\"\n />\n }\n @if (icon() && badge() !== undefined && badge() !== '') {\n <span class=\"badge-text\">\n {{ badge() }}\n </span>\n }\n <div class=\"si-h5 autohide\">\n {{ heading() | translate }}\n <ng-content select=\"[si-panel-heading]\" />\n </div>\n\n @if (badge() !== undefined && badge() !== '') {\n <span [class]=\"'badge autohide' + (badgeColor() ? ' bg-' + badgeColor() : '')\">\n {{ badge() }}\n </span>\n }\n <span class=\"ms-auto autohide\">\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </span>\n</div>\n<div\n #content\n role=\"region\"\n [id]=\"controlId\"\n [class]=\"`collapsible-content ${contentBgClasses()}`\"\n [attr.aria-labelledby]=\"headerId\"\n [class.full-height]=\"fullHeight()\"\n>\n @if (opened()) {\n <div class=\"content-motion\" animate.leave=\"content-leave\">\n <div class=\"overflow-hidden\">\n <div [class]=\"contentCssClasses()\">\n <ng-content />\n </div>\n </div>\n </div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnChanges\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\n\nimport { SiAccordionHCollapseService } from './si-accordion-hcollapse.service';\nimport { SiAccordionService } from './si-accordion.service';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\nconst PANEL_MIN_HEIGHT = 100;\n\n@Component({\n selector: 'si-accordion',\n template: '<div><ng-content /></div>',\n styleUrl: './si-accordion.component.scss',\n providers: [SiAccordionService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.full-height]': 'fullHeight()',\n '[class.hcollapsed]': 'collapsed()'\n }\n})\nexport class SiAccordionComponent implements AfterContentInit, OnChanges {\n /** @defaultValue true */\n readonly expandFirstPanel = input(true, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly fullHeight = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly hcollapsed = input(false);\n /**\n * Indicate whether the accordion is collapsed.\n * @internal\n */\n readonly collapsed = computed(\n () => this.accordionHCollapseService?.hcollapsed() ?? this.hcollapsed()\n );\n\n private readonly panels = contentChildren(SiCollapsiblePanelComponent);\n private responsive = false;\n private destroyer = inject(DestroyRef);\n private service = inject(SiAccordionService);\n private resizeObserver = inject(ResizeObserverService);\n private element = inject(ElementRef);\n private accordionHCollapseService = inject(SiAccordionHCollapseService, { optional: true });\n\n ngOnChanges(): void {\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n\n ngAfterContentInit(): void {\n this.resizeObserver\n .observe(this.element.nativeElement, 100, true, true)\n .pipe(takeUntilDestroyed(this.destroyer))\n .subscribe(() => this.calcFullHeight());\n\n this.panels().at(0)?.openClose(this.expandFirstPanel(), false);\n }\n\n private calcFullHeight(): void {\n if (this.panels()?.length) {\n const height = (this.element.nativeElement as HTMLElement).offsetHeight;\n this.responsive = !this.hcollapsed() && height < this.panels().length * PANEL_MIN_HEIGHT;\n this.service.fullHeight.set(this.fullHeight() && !this.responsive);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAccordionComponent } from './si-accordion.component';\nimport { SiCollapsiblePanelComponent } from './si-collapsible-panel.component';\n\n@NgModule({\n imports: [SiAccordionComponent, SiCollapsiblePanelComponent],\n exports: [SiAccordionComponent, SiCollapsiblePanelComponent]\n})\nexport class SiAccordionModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-collapsible-panel.component';\nexport * from './si-accordion.component';\nexport * from './si-accordion.service';\nexport * from './si-accordion-hcollapse.service';\nexport * from './si-accordion.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -403,7 +403,7 @@ class SiHeaderActionIconItemBase extends SiHeaderActionItemBase {
403
403
  : undefined;
404
404
  }, ...(ngDevMode ? [{ debugName: "badgeValue" }] : []));
405
405
  ngOnChanges(changes) {
406
- if ('badge' in changes) {
406
+ if (changes.badge) {
407
407
  if (changes.badge.currentValue && !changes.badge.previousValue) {
408
408
  this.collapsibleActions?.badgeCount.update(count => count + 1);
409
409
  }
@@ -776,7 +776,7 @@ class SiLaunchpadFactoryComponent {
776
776
  }
777
777
  }
778
778
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadFactoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
779
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiLaunchpadFactoryComponent, isStandalone: true, selector: "si-launchpad-factory", inputs: { closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, subtitleText: { classPropertyName: "subtitleText", publicName: "subtitleText", isSignal: true, isRequired: false, transformFunction: null }, apps: { classPropertyName: "apps", publicName: "apps", isSignal: true, isRequired: true, transformFunction: null }, enableFavorites: { classPropertyName: "enableFavorites", publicName: "enableFavorites", isSignal: true, isRequired: false, transformFunction: null }, favoriteAppsText: { classPropertyName: "favoriteAppsText", publicName: "favoriteAppsText", isSignal: true, isRequired: false, transformFunction: null }, showMoreAppsText: { classPropertyName: "showMoreAppsText", publicName: "showMoreAppsText", isSignal: true, isRequired: false, transformFunction: null }, showLessAppsText: { classPropertyName: "showLessAppsText", publicName: "showLessAppsText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favoriteChange: "favoriteChange" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-any -->\n<!-- temporary until old primary-navbar is removed -->\n<div\n class=\"app-switcher gap-6 g-5 g-sm-9 container-fluid\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (keydown.escape)=\"escape()\"\n>\n @if (titleText()) {\n <div class=\"apps-header\">\n <span>\n <p class=\"si-h4 lh-1 m-0\">{{ titleText() | translate }}</p>\n @if (subtitleText()) {\n <p class=\"si-body text-secondary mt-4 mb-0\">{{ subtitleText() | translate }}</p>\n }\n </span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-ghost\"\n [attr.aria-label]=\"closeText() | translate\"\n (click)=\"closeLaunchpad()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n <div class=\"apps-scroll ms-n2 ps-2\">\n @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\n {{ category.name | translate }}\n </div>\n }\n <div class=\"d-flex flex-wrap gap-4\">\n @for (app of category.apps; track app) {\n @switch (app.type) {\n @case ('router-link') {\n <a\n si-launchpad-app\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"app.activeMatchOptions ?? { exact: false }\"\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n [favorite]=\"!!app.favorite\"\n [routerLink]=\"app.routerLink\"\n [queryParams]=\"app.extras?.queryParams\"\n [queryParamsHandling]=\"app.extras?.queryParamsHandling\"\n [fragment]=\"app.extras?.fragment\"\n [state]=\"app.extras?.state\"\n [relativeTo]=\"app.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"app.extras?.preserveFragment\"\n [skipLocationChange]=\"app.extras?.skipLocationChange\"\n [replaceUrl]=\"app.extras?.replaceUrl\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n @default {\n <!--fallback for existing apps that do not have a type defined -->\n <a\n si-launchpad-app\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [favorite]=\"!!app.favorite\"\n [href]=\"app.href\"\n [target]=\"app.target ?? ''\"\n [active]=\"app.active\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n }\n }\n </div>\n </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\n </div>\n</div>\n", styles: [".app-switcher{position:fixed;inset-block-start:calc(49px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vh - 48px - var(--element-titlebar-spacing, 0px) - var(--element-system-banner-spacing, 0px));padding:16px;display:flex;flex-direction:column;z-index:1033;background-color:var(--element-base-1)}@media(min-width:992px){.app-switcher{padding-block:16px;padding-inline:24px}}.apps-header{display:flex;align-items:center;justify-content:space-between}.apps-scroll{overflow-y:auto;padding-inline-end:16px;margin-inline-end:-16px}.btn-show-all{margin-block-start:16px;margin-block-end:8px}.btn-show-all.show{margin-block-end:24px}.btn-show-all.show:has(+div .launchpad-category-title){margin-block-end:0}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: SiLinkModule }, { kind: "component", type: SiLaunchpadAppComponent, selector: "a[si-launchpad-app]", inputs: ["external", "active", "enableFavoriteToggle", "favorite", "action", "iconUrl", "iconClass", "externalLinkText"], outputs: ["favoriteChange"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
779
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiLaunchpadFactoryComponent, isStandalone: true, selector: "si-launchpad-factory", inputs: { closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, subtitleText: { classPropertyName: "subtitleText", publicName: "subtitleText", isSignal: true, isRequired: false, transformFunction: null }, apps: { classPropertyName: "apps", publicName: "apps", isSignal: true, isRequired: true, transformFunction: null }, enableFavorites: { classPropertyName: "enableFavorites", publicName: "enableFavorites", isSignal: true, isRequired: false, transformFunction: null }, favoriteAppsText: { classPropertyName: "favoriteAppsText", publicName: "favoriteAppsText", isSignal: true, isRequired: false, transformFunction: null }, showMoreAppsText: { classPropertyName: "showMoreAppsText", publicName: "showMoreAppsText", isSignal: true, isRequired: false, transformFunction: null }, showLessAppsText: { classPropertyName: "showLessAppsText", publicName: "showLessAppsText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favoriteChange: "favoriteChange" }, ngImport: i0, template: "<!-- temporary until old primary-navbar is removed -->\n<div\n class=\"app-switcher gap-6 g-5 g-sm-9 container-fluid\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (keydown.escape)=\"escape()\"\n>\n @if (titleText()) {\n <div class=\"apps-header\">\n <span>\n <p class=\"si-h4 lh-1 m-0\">{{ titleText() | translate }}</p>\n @if (subtitleText()) {\n <p class=\"si-body text-secondary mt-4 mb-0\">{{ subtitleText() | translate }}</p>\n }\n </span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-ghost\"\n [attr.aria-label]=\"closeText() | translate\"\n (click)=\"closeLaunchpad()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n <div class=\"apps-scroll ms-n2 ps-2\">\n @for (category of categories(); track category.name; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\n {{ category.name | translate }}\n </div>\n }\n <div class=\"d-flex flex-wrap gap-4\">\n @for (app of category.apps; track app) {\n @switch (app.type) {\n @case ('router-link') {\n <a\n si-launchpad-app\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"app.activeMatchOptions ?? { exact: false }\"\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n [favorite]=\"!!app.favorite\"\n [routerLink]=\"app.routerLink\"\n [queryParams]=\"app.extras?.queryParams\"\n [queryParamsHandling]=\"app.extras?.queryParamsHandling\"\n [fragment]=\"app.extras?.fragment\"\n [state]=\"app.extras?.state\"\n [relativeTo]=\"app.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"app.extras?.preserveFragment\"\n [skipLocationChange]=\"app.extras?.skipLocationChange\"\n [replaceUrl]=\"app.extras?.replaceUrl\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n @default {\n <!--fallback for existing apps that do not have a type defined -->\n <a\n si-launchpad-app\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [favorite]=\"!!app.favorite\"\n [href]=\"app.href\"\n [target]=\"app.target ?? ''\"\n [active]=\"app.active\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n }\n }\n </div>\n </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\n </div>\n</div>\n", styles: [".app-switcher{position:fixed;inset-block-start:calc(49px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vh - 48px - var(--element-titlebar-spacing, 0px) - var(--element-system-banner-spacing, 0px));padding:16px;display:flex;flex-direction:column;z-index:1033;background-color:var(--element-base-1)}@media(min-width:992px){.app-switcher{padding-block:16px;padding-inline:24px}}.apps-header{display:flex;align-items:center;justify-content:space-between}.apps-scroll{overflow-y:auto;padding-inline-end:16px;margin-inline-end:-16px}.btn-show-all{margin-block-start:16px;margin-block-end:8px}.btn-show-all.show{margin-block-end:24px}.btn-show-all.show:has(+div .launchpad-category-title){margin-block-end:0}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: SiLinkModule }, { kind: "component", type: SiLaunchpadAppComponent, selector: "a[si-launchpad-app]", inputs: ["external", "active", "enableFavoriteToggle", "favorite", "action", "iconUrl", "iconClass", "externalLinkText"], outputs: ["favoriteChange"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
780
780
  }
781
781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadFactoryComponent, decorators: [{
782
782
  type: Component,
@@ -788,7 +788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
788
788
  SiIconComponent,
789
789
  RouterLinkActive,
790
790
  RouterLink
791
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- eslint-disable @angular-eslint/template/no-any -->\n<!-- temporary until old primary-navbar is removed -->\n<div\n class=\"app-switcher gap-6 g-5 g-sm-9 container-fluid\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (keydown.escape)=\"escape()\"\n>\n @if (titleText()) {\n <div class=\"apps-header\">\n <span>\n <p class=\"si-h4 lh-1 m-0\">{{ titleText() | translate }}</p>\n @if (subtitleText()) {\n <p class=\"si-body text-secondary mt-4 mb-0\">{{ subtitleText() | translate }}</p>\n }\n </span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-ghost\"\n [attr.aria-label]=\"closeText() | translate\"\n (click)=\"closeLaunchpad()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n <div class=\"apps-scroll ms-n2 ps-2\">\n @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\n {{ category.name | translate }}\n </div>\n }\n <div class=\"d-flex flex-wrap gap-4\">\n @for (app of category.apps; track app) {\n @switch (app.type) {\n @case ('router-link') {\n <a\n si-launchpad-app\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"app.activeMatchOptions ?? { exact: false }\"\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n [favorite]=\"!!app.favorite\"\n [routerLink]=\"app.routerLink\"\n [queryParams]=\"app.extras?.queryParams\"\n [queryParamsHandling]=\"app.extras?.queryParamsHandling\"\n [fragment]=\"app.extras?.fragment\"\n [state]=\"app.extras?.state\"\n [relativeTo]=\"app.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"app.extras?.preserveFragment\"\n [skipLocationChange]=\"app.extras?.skipLocationChange\"\n [replaceUrl]=\"app.extras?.replaceUrl\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n @default {\n <!--fallback for existing apps that do not have a type defined -->\n <a\n si-launchpad-app\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [favorite]=\"!!app.favorite\"\n [href]=\"app.href\"\n [target]=\"app.target ?? ''\"\n [active]=\"app.active\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n }\n }\n </div>\n </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\n </div>\n</div>\n", styles: [".app-switcher{position:fixed;inset-block-start:calc(49px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vh - 48px - var(--element-titlebar-spacing, 0px) - var(--element-system-banner-spacing, 0px));padding:16px;display:flex;flex-direction:column;z-index:1033;background-color:var(--element-base-1)}@media(min-width:992px){.app-switcher{padding-block:16px;padding-inline:24px}}.apps-header{display:flex;align-items:center;justify-content:space-between}.apps-scroll{overflow-y:auto;padding-inline-end:16px;margin-inline-end:-16px}.btn-show-all{margin-block-start:16px;margin-block-end:8px}.btn-show-all.show{margin-block-end:24px}.btn-show-all.show:has(+div .launchpad-category-title){margin-block-end:0}\n"] }]
791
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- temporary until old primary-navbar is removed -->\n<div\n class=\"app-switcher gap-6 g-5 g-sm-9 container-fluid\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (keydown.escape)=\"escape()\"\n>\n @if (titleText()) {\n <div class=\"apps-header\">\n <span>\n <p class=\"si-h4 lh-1 m-0\">{{ titleText() | translate }}</p>\n @if (subtitleText()) {\n <p class=\"si-body text-secondary mt-4 mb-0\">{{ subtitleText() | translate }}</p>\n }\n </span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-ghost\"\n [attr.aria-label]=\"closeText() | translate\"\n (click)=\"closeLaunchpad()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n <div class=\"apps-scroll ms-n2 ps-2\">\n @for (category of categories(); track category.name; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\n {{ category.name | translate }}\n </div>\n }\n <div class=\"d-flex flex-wrap gap-4\">\n @for (app of category.apps; track app) {\n @switch (app.type) {\n @case ('router-link') {\n <a\n si-launchpad-app\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"app.activeMatchOptions ?? { exact: false }\"\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n [favorite]=\"!!app.favorite\"\n [routerLink]=\"app.routerLink\"\n [queryParams]=\"app.extras?.queryParams\"\n [queryParamsHandling]=\"app.extras?.queryParamsHandling\"\n [fragment]=\"app.extras?.fragment\"\n [state]=\"app.extras?.state\"\n [relativeTo]=\"app.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"app.extras?.preserveFragment\"\n [skipLocationChange]=\"app.extras?.skipLocationChange\"\n [replaceUrl]=\"app.extras?.replaceUrl\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n @default {\n <!--fallback for existing apps that do not have a type defined -->\n <a\n si-launchpad-app\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [favorite]=\"!!app.favorite\"\n [href]=\"app.href\"\n [target]=\"app.target ?? ''\"\n [active]=\"app.active\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n }\n }\n </div>\n </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\n </div>\n</div>\n", styles: [".app-switcher{position:fixed;inset-block-start:calc(49px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vh - 48px - var(--element-titlebar-spacing, 0px) - var(--element-system-banner-spacing, 0px));padding:16px;display:flex;flex-direction:column;z-index:1033;background-color:var(--element-base-1)}@media(min-width:992px){.app-switcher{padding-block:16px;padding-inline:24px}}.apps-header{display:flex;align-items:center;justify-content:space-between}.apps-scroll{overflow-y:auto;padding-inline-end:16px;margin-inline-end:-16px}.btn-show-all{margin-block-start:16px;margin-block-end:8px}.btn-show-all.show{margin-block-end:24px}.btn-show-all.show:has(+div .launchpad-category-title){margin-block-end:0}\n"] }]
792
792
  }], propDecorators: { closeText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeText", required: false }] }], titleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleText", required: false }] }], subtitleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitleText", required: false }] }], apps: [{ type: i0.Input, args: [{ isSignal: true, alias: "apps", required: true }] }], enableFavorites: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableFavorites", required: false }] }], favoriteAppsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "favoriteAppsText", required: false }] }], showMoreAppsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMoreAppsText", required: false }] }], showLessAppsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLessAppsText", required: false }] }], favoriteChange: [{ type: i0.Output, args: ["favoriteChange"] }] } });
793
793
 
794
794
  /**