@siemens/element-ng 49.14.0 → 49.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/fesm2022/siemens-element-ng-about.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-accordion.mjs +12 -3
  4. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-action-modal.mjs +64 -11
  6. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-ag-grid.mjs +7 -0
  8. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-application-header.mjs +76 -32
  10. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +6 -1
  12. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-autocomplete.mjs +17 -3
  14. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
  16. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-card.mjs +21 -4
  18. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-color-picker.mjs +11 -5
  20. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +29 -2
  22. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-common.mjs +20 -2
  24. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-content-action-bar.mjs +1 -0
  26. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-dashboard.mjs +20 -2
  28. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-date-range-filter.mjs +36 -12
  30. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-datepicker.mjs +80 -15
  32. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
  34. package/fesm2022/siemens-element-ng-filter-bar.mjs +11 -4
  35. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-filtered-search.mjs +95 -38
  37. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  38. package/fesm2022/siemens-element-ng-form.mjs +2 -0
  39. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  40. package/fesm2022/siemens-element-ng-formly.mjs +10 -7
  41. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  42. package/fesm2022/siemens-element-ng-header-dropdown.mjs +5 -3
  43. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  44. package/fesm2022/siemens-element-ng-icon.mjs +1 -0
  45. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  46. package/fesm2022/siemens-element-ng-ip-input.mjs +7 -11
  47. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  48. package/fesm2022/siemens-element-ng-link.mjs +10 -1
  49. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  50. package/fesm2022/siemens-element-ng-menu.mjs +30 -4
  51. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  52. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +3 -0
  53. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  54. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +11 -0
  55. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  56. package/fesm2022/siemens-element-ng-navbar.mjs +1 -0
  57. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  58. package/fesm2022/siemens-element-ng-number-input.mjs +11 -2
  59. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  60. package/fesm2022/siemens-element-ng-phone-number.mjs +14 -14
  61. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  62. package/fesm2022/siemens-element-ng-pills-input.mjs +14 -19
  63. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  64. package/fesm2022/siemens-element-ng-popover-legacy.mjs +13 -2
  65. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  66. package/fesm2022/siemens-element-ng-popover.mjs +35 -26
  67. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  68. package/fesm2022/siemens-element-ng-resize-observer.mjs +21 -3
  69. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  70. package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
  71. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  72. package/fesm2022/siemens-element-ng-search-bar.mjs +14 -8
  73. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  74. package/fesm2022/siemens-element-ng-select.mjs +80 -8
  75. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  76. package/fesm2022/siemens-element-ng-shadow-root.mjs +31 -4
  77. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  78. package/fesm2022/siemens-element-ng-skip-links.mjs +5 -1
  79. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  80. package/fesm2022/siemens-element-ng-split.mjs +10 -8
  81. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  82. package/fesm2022/siemens-element-ng-status-bar.mjs +30 -3
  83. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  84. package/fesm2022/siemens-element-ng-tabs.mjs +6 -0
  85. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  86. package/fesm2022/siemens-element-ng-threshold.mjs +12 -3
  87. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  88. package/fesm2022/siemens-element-ng-toast-notification.mjs +6 -2
  89. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  90. package/fesm2022/siemens-element-ng-tooltip.mjs +9 -4
  91. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  92. package/fesm2022/siemens-element-ng-tree-view.mjs +5 -1
  93. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  94. package/fesm2022/siemens-element-ng-typeahead.mjs +15 -27
  95. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  96. package/fesm2022/siemens-element-ng-wizard.mjs +45 -5
  97. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  98. package/package.json +3 -3
  99. package/template-i18n.json +1 -1
  100. package/types/siemens-element-ng-accordion.d.ts +12 -3
  101. package/types/siemens-element-ng-application-header.d.ts +10 -9
  102. package/types/siemens-element-ng-auto-collapsable-list.d.ts +6 -1
  103. package/types/siemens-element-ng-autocomplete.d.ts +17 -3
  104. package/types/siemens-element-ng-card.d.ts +21 -4
  105. package/types/siemens-element-ng-color-picker.d.ts +8 -1
  106. package/types/siemens-element-ng-common.d.ts +12 -2
  107. package/types/siemens-element-ng-dashboard.d.ts +5 -0
  108. package/types/siemens-element-ng-date-range-filter.d.ts +13 -1
  109. package/types/siemens-element-ng-datepicker.d.ts +62 -9
  110. package/types/siemens-element-ng-filter-bar.d.ts +11 -4
  111. package/types/siemens-element-ng-filtered-search.d.ts +8 -1
  112. package/types/siemens-element-ng-form.d.ts +2 -0
  113. package/types/siemens-element-ng-formly.d.ts +3 -1
  114. package/types/siemens-element-ng-header-dropdown.d.ts +5 -3
  115. package/types/siemens-element-ng-icon.d.ts +1 -0
  116. package/types/siemens-element-ng-ip-input.d.ts +1 -1
  117. package/types/siemens-element-ng-link.d.ts +10 -1
  118. package/types/siemens-element-ng-menu.d.ts +17 -2
  119. package/types/siemens-element-ng-navbar-vertical-next.d.ts +2 -0
  120. package/types/siemens-element-ng-navbar.d.ts +1 -0
  121. package/types/siemens-element-ng-number-input.d.ts +11 -2
  122. package/types/siemens-element-ng-phone-number.d.ts +1 -2
  123. package/types/siemens-element-ng-popover.d.ts +8 -5
  124. package/types/siemens-element-ng-resize-observer.d.ts +21 -3
  125. package/types/siemens-element-ng-search-bar.d.ts +10 -2
  126. package/types/siemens-element-ng-select.d.ts +34 -2
  127. package/types/siemens-element-ng-shadow-root.d.ts +1 -0
  128. package/types/siemens-element-ng-split.d.ts +11 -8
  129. package/types/siemens-element-ng-status-bar.d.ts +30 -3
  130. package/types/siemens-element-ng-threshold.d.ts +8 -1
  131. package/types/siemens-element-ng-toast-notification.d.ts +3 -1
  132. package/types/siemens-element-ng-tooltip.d.ts +6 -4
  133. package/types/siemens-element-ng-tree-view.d.ts +5 -1
  134. package/types/siemens-element-ng-typeahead.d.ts +6 -4
  135. package/types/siemens-element-ng-wizard.d.ts +13 -1
@@ -3,7 +3,7 @@ import { CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
3
3
  import { BreakpointObserver } from '@angular/cdk/layout';
4
4
  import { NgTemplateOutlet } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
- import { input, signal, inject, Injector, viewChild, effect, untracked, ChangeDetectionStrategy, Component, HostListener, Directive, ElementRef, computed, afterNextRender, booleanAttribute, model, output } from '@angular/core';
6
+ import { input, signal, inject, Injector, viewChild, effect, untracked, ChangeDetectionStrategy, Component, Directive, ElementRef, computed, afterNextRender, HostListener, booleanAttribute, model, output } from '@angular/core';
7
7
  import { toSignal, toObservable } from '@angular/core/rxjs-interop';
8
8
  import { elementMenu, elementThumbnails, elementDown2, elementOptionsVertical, elementFavoritesFilled, elementFavorites, elementExport, elementCancel } from '@siemens/element-icons';
9
9
  import { SI_HEADER_WITH_DROPDOWNS, SiHeaderDropdownTriggerDirective, SI_HEADER_DROPDOWN_OPTIONS } from '@siemens/element-ng/header-dropdown';
@@ -14,8 +14,8 @@ import { Subject, of } from 'rxjs';
14
14
  import { switchMap, map } from 'rxjs/operators';
15
15
  import { SiTooltipService, SiTooltipDirective } from '@siemens/element-ng/tooltip';
16
16
  import { SiAvatarComponent } from '@siemens/element-ng/avatar';
17
- import { ActivatedRoute, RouterLinkActive, RouterLink } from '@angular/router';
18
17
  import { SiLinkModule } from '@siemens/element-ng/link';
18
+ import { ActivatedRoute, RouterLinkActive, RouterLink } from '@angular/router';
19
19
 
20
20
  /**
21
21
  * Copyright (c) Siemens 2016 - 2026
@@ -30,8 +30,11 @@ class SiApplicationHeaderComponent {
30
30
  * @defaultValue 'sm'
31
31
  */
32
32
  expandBreakpoint = input('sm', ...(ngDevMode ? [{ debugName: "expandBreakpoint" }] : []));
33
+ /** Template reference for the launchpad content rendered inside the header. */
33
34
  launchpad = input(...(ngDevMode ? [undefined, { debugName: "launchpad" }] : []));
34
35
  /**
36
+ * Accessible label for the launchpad toggle button.
37
+ *
35
38
  * @defaultValue
36
39
  * ```
37
40
  * t(() => $localize`:@@SI_APPLICATION_HEADER.LAUNCHPAD:Launchpad`)
@@ -348,7 +351,9 @@ class SiHeaderActionItemBase {
348
351
  self: true,
349
352
  optional: true
350
353
  });
351
- collapsibleActions = inject(SiHeaderCollapsibleActionsComponent, { optional: true });
354
+ collapsibleActions = inject(SiHeaderCollapsibleActionsComponent, {
355
+ optional: true
356
+ });
352
357
  icons = addIcons({ elementDown2 });
353
358
  header = inject(SiApplicationHeaderComponent);
354
359
  ngOnInit() {
@@ -371,11 +376,12 @@ class SiHeaderActionItemBase {
371
376
  }
372
377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiHeaderActionItemBase, decorators: [{
373
378
  type: Directive,
374
- args: [{}]
375
- }], propDecorators: { click: [{
376
- type: HostListener,
377
- args: ['click']
378
- }] } });
379
+ args: [{
380
+ host: {
381
+ '(click)': 'click()'
382
+ }
383
+ }]
384
+ }] });
379
385
 
380
386
  /**
381
387
  * Copyright (c) Siemens 2016 - 2026
@@ -635,17 +641,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
635
641
  * SPDX-License-Identifier: MIT
636
642
  */
637
643
  class SiLaunchpadAppComponent {
638
- /** @defaultValue false */
644
+ /**
645
+ * When `true`, an external link icon is shown to indicate the app opens in a new tab.
646
+ *
647
+ * @defaultValue false
648
+ */
639
649
  external = input(false, { ...(ngDevMode ? { debugName: "external" } : {}), transform: booleanAttribute });
640
- /** @defaultValue false */
650
+ /**
651
+ * When `true`, the app item is highlighted as the currently active application.
652
+ *
653
+ * @defaultValue false
654
+ */
641
655
  active = input(false, { ...(ngDevMode ? { debugName: "active" } : {}), transform: booleanAttribute });
642
- /** @defaultValue false */
656
+ /**
657
+ * When `true`, a toggle button is shown to allow the user to mark or unmark this app as a favorite.
658
+ *
659
+ * @defaultValue false
660
+ */
643
661
  enableFavoriteToggle = input(false, { ...(ngDevMode ? { debugName: "enableFavoriteToggle" } : {}), transform: booleanAttribute });
644
- /** @defaultValue false */
662
+ /**
663
+ * Whether this app is currently marked as a favorite by the user.
664
+ *
665
+ * @defaultValue false
666
+ */
645
667
  favorite = model(false, ...(ngDevMode ? [{ debugName: "favorite" }] : []));
646
- /** @defaultValue false */
668
+ /**
669
+ * When `true`, the item is styled as an action entry rather than a regular app link.
670
+ *
671
+ * @defaultValue false
672
+ */
647
673
  action = input(false, { ...(ngDevMode ? { debugName: "action" } : {}), transform: booleanAttribute });
674
+ /** URL of the app icon. */
648
675
  iconUrl = input(...(ngDevMode ? [undefined, { debugName: "iconUrl" }] : []));
676
+ /** CSS class applied to the app icon element. */
649
677
  iconClass = input(...(ngDevMode ? [undefined, { debugName: "iconClass" }] : []));
650
678
  /**
651
679
  * Aria-label for the external link icon.
@@ -684,6 +712,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
684
712
  args: ['click']
685
713
  }] } });
686
714
 
715
+ /**
716
+ * Copyright (c) Siemens 2016 - 2026
717
+ * SPDX-License-Identifier: MIT
718
+ */
719
+ class SiLaunchpadCategoryComponent {
720
+ category = input.required(...(ngDevMode ? [{ debugName: "category" }] : []));
721
+ /** @defaultValue false */
722
+ enableFavorites = input(false, ...(ngDevMode ? [{ debugName: "enableFavorites" }] : []));
723
+ favoriteChange = output();
724
+ activatedRoute = inject(ActivatedRoute, { optional: true });
725
+ toggleFavorite(app, favorite) {
726
+ this.favoriteChange.emit({ app, favorite });
727
+ }
728
+ isFavoriteToggleDisabled(app) {
729
+ return '_noFavorite' in app && !!app._noFavorite;
730
+ }
731
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadCategoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
732
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiLaunchpadCategoryComponent, isStandalone: true, selector: "si-launchpad-category", inputs: { category: { classPropertyName: "category", publicName: "category", isSignal: true, isRequired: true, transformFunction: null }, enableFavorites: { classPropertyName: "enableFavorites", publicName: "enableFavorites", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favoriteChange: "favoriteChange" }, host: { properties: { "class.has-title": "!!category().name" }, classAttribute: "d-block" }, ngImport: i0, template: "@if (category().name) {\n <div class=\"si-h4 launchpad-category-title mt-4 mb-6\">\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", dependencies: [{ kind: "component", type: SiLaunchpadAppComponent, selector: "a[si-launchpad-app]", inputs: ["external", "active", "enableFavoriteToggle", "favorite", "action", "iconUrl", "iconClass", "externalLinkText"], outputs: ["favoriteChange"] }, { 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" }] });
733
+ }
734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadCategoryComponent, decorators: [{
735
+ type: Component,
736
+ args: [{ selector: 'si-launchpad-category', imports: [SiLaunchpadAppComponent, SiTranslatePipe, RouterLinkActive, RouterLink], host: {
737
+ class: 'd-block',
738
+ '[class.has-title]': '!!category().name'
739
+ }, template: "@if (category().name) {\n <div class=\"si-h4 launchpad-category-title mt-4 mb-6\">\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" }]
740
+ }], propDecorators: { category: [{ type: i0.Input, args: [{ isSignal: true, alias: "category", required: true }] }], enableFavorites: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableFavorites", required: false }] }], favoriteChange: [{ type: i0.Output, args: ["favoriteChange"] }] } });
741
+
687
742
  /**
688
743
  * Copyright (c) Siemens 2016 - 2026
689
744
  * SPDX-License-Identifier: MIT
@@ -703,10 +758,10 @@ class SiLaunchpadFactoryComponent {
703
758
  *
704
759
  * @defaultValue
705
760
  * ```
706
- * t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch applications`)
761
+ * t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch app`)
707
762
  * ```
708
763
  */
709
- titleText = input(t(() => $localize `:@@SI_LAUNCHPAD.TITLE:Switch applications`), ...(ngDevMode ? [{ debugName: "titleText" }] : []));
764
+ titleText = input(t(() => $localize `:@@SI_LAUNCHPAD.TITLE:Switch app`), ...(ngDevMode ? [{ debugName: "titleText" }] : []));
710
765
  /**
711
766
  * Subtitle of the launchpad.
712
767
  * When not provided, no subtitle is displayed.
@@ -772,13 +827,12 @@ class SiLaunchpadFactoryComponent {
772
827
  .filter(app => app.favorite), ...(ngDevMode ? [{ debugName: "favorites" }] : []));
773
828
  hasFavorites = computed(() => this.favorites().length > 0, ...(ngDevMode ? [{ debugName: "hasFavorites" }] : []));
774
829
  icons = addIcons({ elementDown2, elementCancel });
775
- activatedRoute = inject(ActivatedRoute, { optional: true });
776
830
  header = inject(SiApplicationHeaderComponent);
777
831
  closeLaunchpad() {
778
832
  this.header.closeLaunchpad();
779
833
  }
780
- toggleFavorite(app, favorite) {
781
- this.favoriteChange.emit({ app, favorite });
834
+ toggleFavorite(event) {
835
+ this.favoriteChange.emit(event);
782
836
  }
783
837
  escape() {
784
838
  this.closeLaunchpad();
@@ -786,16 +840,8 @@ class SiLaunchpadFactoryComponent {
786
840
  isCategories(items) {
787
841
  return items.some(item => 'apps' in item);
788
842
  }
789
- isFavoriteToggleDisabled(app) {
790
- if ('_noFavorite' in app) {
791
- return !!app._noFavorite;
792
- }
793
- else {
794
- return false;
795
- }
796
- }
797
843
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadFactoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
798
- 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-tertiary-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(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vb - (1.5rem + 25px) - 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 });
844
+ 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-tertiary-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) {\n @if (!enableFavorites() || !hasFavorites() || $first || showAllApps) {\n <si-launchpad-category\n [class.pt-6]=\"!$first && !!category.name\"\n [category]=\"category\"\n [enableFavorites]=\"enableFavorites()\"\n (favoriteChange)=\"toggleFavorite($event)\"\n />\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(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vb - (1.5rem + 25px) - 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(+si-launchpad-category.has-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: SiLaunchpadCategoryComponent, selector: "si-launchpad-category", inputs: ["category", "enableFavorites"], outputs: ["favoriteChange"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
799
845
  }
800
846
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadFactoryComponent, decorators: [{
801
847
  type: Component,
@@ -803,11 +849,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
803
849
  A11yModule,
804
850
  SiLinkModule,
805
851
  SiTranslatePipe,
806
- SiLaunchpadAppComponent,
807
- SiIconComponent,
808
- RouterLinkActive,
809
- RouterLink
810
- ], 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-tertiary-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(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vb - (1.5rem + 25px) - 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"] }]
852
+ SiLaunchpadCategoryComponent,
853
+ SiIconComponent
854
+ ], 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-tertiary-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) {\n @if (!enableFavorites() || !hasFavorites() || $first || showAllApps) {\n <si-launchpad-category\n [class.pt-6]=\"!$first && !!category.name\"\n [category]=\"category\"\n [enableFavorites]=\"enableFavorites()\"\n (favoriteChange)=\"toggleFavorite($event)\"\n />\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(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vb - (1.5rem + 25px) - 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(+si-launchpad-category.has-title){margin-block-end:0}\n"] }]
811
855
  }], 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"] }] } });
812
856
 
813
857
  /**