@leanix/components 0.4.590 → 0.4.592

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Input, Component, signal, ChangeDetectionStrategy, HostBinding, inject, input, computed, EventEmitter, HostListener, Output, Injectable, ElementRef, ViewChild, Inject, model, Directive, Optional, Pipe, NgModule, DestroyRef, ChangeDetectorRef, effect, ContentChild, afterRenderEffect, ContentChildren, ViewChildren, forwardRef, TemplateRef, viewChild, booleanAttribute, SecurityContext, Self, Host, Injector, output, ApplicationRef, createComponent } from '@angular/core';
2
+ import { InjectionToken, Input, Component, signal, ChangeDetectionStrategy, HostBinding, inject, input, computed, EventEmitter, HostListener, Output, Injectable, ElementRef, ViewChild, Inject, model, Directive, Optional, Pipe, NgModule, output, DestroyRef, ChangeDetectorRef, effect, ContentChild, afterRenderEffect, ContentChildren, ViewChildren, forwardRef, TemplateRef, viewChild, booleanAttribute, SecurityContext, Self, Host, Injector, ApplicationRef, createComponent } from '@angular/core';
3
3
  import * as i1 from '@ngx-translate/core';
4
4
  import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
5
5
  import { NgTemplateOutlet, NgClass, AsyncPipe, UpperCasePipe, DecimalPipe, CommonModule, formatDate } from '@angular/common';
@@ -1517,6 +1517,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
1517
1517
  type: Input
1518
1518
  }] } });
1519
1519
 
1520
+ /**
1521
+ * @ignore
1522
+ * Displays Font Awesome icons.
1523
+ */
1524
+ class IconComponent {
1525
+ constructor() {
1526
+ this.NAME = 'IconComponent';
1527
+ this.color = '#000';
1528
+ this.fontAwsomeStyle = 'regular';
1529
+ this.size = '14px';
1530
+ this.iconStyleMap = {
1531
+ solid: 'fas',
1532
+ regular: 'far',
1533
+ light: 'fal'
1534
+ };
1535
+ this.iconStyle = 'far';
1536
+ }
1537
+ ngOnChanges(changes) {
1538
+ if ('fontAwsomeStyle' in changes) {
1539
+ this.iconStyle = this.iconStyleMap[this.fontAwsomeStyle];
1540
+ }
1541
+ }
1542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1543
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: IconComponent, isStandalone: true, selector: "lx-icon", inputs: { name: "name", color: "color", fontAwsomeStyle: "fontAwsomeStyle", size: "size", title: "title" }, host: { properties: { "style.height": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1544
+ }
1545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: IconComponent, decorators: [{
1546
+ type: Component,
1547
+ args: [{ selector: 'lx-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"] }]
1548
+ }], propDecorators: { name: [{
1549
+ type: Input
1550
+ }], color: [{
1551
+ type: Input
1552
+ }], fontAwsomeStyle: [{
1553
+ type: Input
1554
+ }], size: [{
1555
+ type: Input
1556
+ }, {
1557
+ type: HostBinding,
1558
+ args: ['style.height']
1559
+ }], title: [{
1560
+ type: Input
1561
+ }] } });
1562
+
1520
1563
  /**
1521
1564
  * This pipe transforms...
1522
1565
  * - "raw" http(s) links
@@ -2451,6 +2494,7 @@ const CORE_MODULE_EXPORTS = [
2451
2494
  EllipsisComponent,
2452
2495
  HighlightRangePipe,
2453
2496
  HighlightTermPipe,
2497
+ IconComponent,
2454
2498
  IconScaleComponent,
2455
2499
  LxLinkifyPipe,
2456
2500
  LxUnlinkifyPipe,
@@ -2491,6 +2535,7 @@ class LxCoreUiModule {
2491
2535
  EllipsisComponent,
2492
2536
  HighlightRangePipe,
2493
2537
  HighlightTermPipe,
2538
+ IconComponent,
2494
2539
  IconScaleComponent,
2495
2540
  LxLinkifyPipe,
2496
2541
  LxUnlinkifyPipe,
@@ -2525,6 +2570,7 @@ class LxCoreUiModule {
2525
2570
  EllipsisComponent,
2526
2571
  HighlightRangePipe,
2527
2572
  HighlightTermPipe,
2573
+ IconComponent,
2528
2574
  IconScaleComponent,
2529
2575
  LxLinkifyPipe,
2530
2576
  LxUnlinkifyPipe,
@@ -2575,6 +2621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
2575
2621
  EllipsisComponent,
2576
2622
  HighlightRangePipe,
2577
2623
  HighlightTermPipe,
2624
+ IconComponent,
2578
2625
  IconScaleComponent,
2579
2626
  LxLinkifyPipe,
2580
2627
  LxUnlinkifyPipe,
@@ -2710,9 +2757,10 @@ class AvatarGroupComponent {
2710
2757
  .sort()
2711
2758
  .join('<br>');
2712
2759
  }
2713
- constructor(cdr, zone) {
2760
+ constructor(cdr, zone, resizeObserverService) {
2714
2761
  this.cdr = cdr;
2715
2762
  this.zone = zone;
2763
+ this.resizeObserverService = resizeObserverService;
2716
2764
  this.NAME = 'AvatarGroupComponent';
2717
2765
  this.users = [];
2718
2766
  this.size = 'M';
@@ -2721,7 +2769,9 @@ class AvatarGroupComponent {
2721
2769
  this.autoScale = false;
2722
2770
  this.disabledUserIds = [];
2723
2771
  this.overlayVisible = false;
2724
- this.resizeObserver = new ResizeObserver(() => {
2772
+ }
2773
+ ngAfterViewInit() {
2774
+ this.resizeObserverService.observe(this.userGroupElement.nativeElement, () => {
2725
2775
  this.zone.runOutsideAngular(() => {
2726
2776
  this.zone.run(() => {
2727
2777
  this.cdr.detectChanges();
@@ -2729,16 +2779,13 @@ class AvatarGroupComponent {
2729
2779
  });
2730
2780
  });
2731
2781
  }
2732
- ngAfterViewInit() {
2733
- this.resizeObserver.observe(this.userGroupElement.nativeElement);
2734
- }
2735
2782
  handleClick(event) {
2736
2783
  event.stopPropagation();
2737
2784
  this.overlayVisible = true;
2738
2785
  }
2739
2786
  ngOnDestroy() {
2740
- if (this.resizeObserver && this.userGroupElement) {
2741
- this.resizeObserver.unobserve(this.userGroupElement.nativeElement);
2787
+ if (this.userGroupElement) {
2788
+ this.resizeObserverService.unobserve(this.userGroupElement.nativeElement);
2742
2789
  }
2743
2790
  }
2744
2791
  isUserDisabled(user) {
@@ -2747,13 +2794,13 @@ class AvatarGroupComponent {
2747
2794
  userTrackBy(index, user) {
2748
2795
  return user.id ?? index;
2749
2796
  }
2750
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AvatarGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2797
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AvatarGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: ResizeObserverService }], target: i0.ɵɵFactoryTarget.Component }); }
2751
2798
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: AvatarGroupComponent, isStandalone: true, selector: "lx-avatar-group", inputs: { title: "title", users: "users", size: "size", type: "type", maxLength: "maxLength", autoScale: "autoScale", disabledUserIds: "disabledUserIds" }, viewQueries: [{ propertyName: "userGroupElement", first: true, predicate: ["userGroup"], descendants: true }], ngImport: i0, template: "<div\n #userGroup\n (click)=\"handleClick($event)\"\n (keydown.enter)=\"handleClick($event)\"\n (keydown.space)=\"handleClick($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [lxTooltip]=\"!overlayVisible ? userNames : null\"\n [lxTooltipIsHtmlContent]=\"true\"\n tabindex=\"0\"\n role=\"button\"\n aria-haspopup=\"dialog\"\n>\n @let filteredUsers = users | displayAvatars: type : size : userGroup.offsetWidth : autoScale : maxLength;\n @if (filteredUsers) {\n <div class=\"group-container\">\n @for (user of filteredUsers; track userTrackBy($index, user)) {\n <lx-avatar\n [user]=\"user\"\n [size]=\"size\"\n [showMailToLink]=\"false\"\n [disabled]=\"isUserDisabled(user)\"\n [class]=\"[type === 'individual' ? 'individual' : 'group', size]\"\n />\n }\n @if (filteredUsers.length < users.length) {\n <div [class]=\"[type === 'individual' ? 'individual' : 'group', size]\" class=\"more-users-icon\">\n +{{ users.length - filteredUsers.length }}\n </div>\n }\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible\"\n (overlayOutsideClick)=\"overlayVisible = false\"\n>\n <div class=\"avatars-overlay\">\n @if (title) {\n <div class=\"avatars-overlay-title\">{{ title }}</div>\n }\n <div class=\"avatars-list\">\n @for (user of users; track userTrackBy($index, user)) {\n <div class=\"individual\">\n <lx-avatar [user]=\"user\" [size]=\"size\" [showMailToLink]=\"true\" [disabled]=\"isUserDisabled(user)\" />\n </div>\n }\n </div>\n </div>\n</ng-template>\n", styles: [".group-container{display:flex;align-items:center}.group-container lx-avatar{display:flex;align-items:center}.group-container .more-users-icon{color:#61779d;background-color:#fff;border:1px solid #c2c9d6;border-radius:50%;font-weight:700;-webkit-user-select:none;user-select:none}.individual{margin-right:2px!important}.avatars-overlay{max-width:360px;overflow:auto;margin-top:5px;border-radius:10px;background-color:#fff;border:1px solid #c2c9d6;box-shadow:0 6px 12px #0000002d}.avatars-overlay .avatars-list{display:flex;flex-wrap:wrap;padding:10px}.avatars-overlay .avatars-list lx-avatar{display:block;margin-bottom:5px}.avatars-overlay .avatars-overlay-title{border-bottom:1px solid #c2c9d6;padding:10px;font-weight:700}.XS{width:16px;height:16px;line-height:16px;font-size:8px}.XS.group:not(:first-child){margin-left:-8px}.S{width:24px;height:24px;line-height:24px;font-size:11.25px}.S.group:not(:first-child){margin-left:-12px}.M{width:32px;height:32px;line-height:32px;text-align:center;vertical-align:middle;font-size:15.5px}.M.group:not(:first-child){margin-left:-10px}.L{width:40px;height:40px;line-height:40px;text-align:center;vertical-align:middle;font-size:large}.L.group:not(:first-child){margin-left:-20px}.XL{width:64px;height:64px;line-height:64px;text-align:center;vertical-align:middle;font-size:large}.XL.group:not(:first-child){margin-left:-50px}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: TooltipDirective, selector: "[lxTooltip]", inputs: ["lxTooltip", "lxTooltipPosition", "lxTooltipDelay", "lxTooltipIsHtmlContent"] }, { kind: "component", type: AvatarComponent, selector: "lx-avatar", inputs: ["user", "size", "showMailToLink", "disabled"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "pipe", type: DisplayAvatarsPipe, name: "displayAvatars" }] }); }
2752
2799
  }
2753
2800
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AvatarGroupComponent, decorators: [{
2754
2801
  type: Component,
2755
2802
  args: [{ selector: 'lx-avatar-group', imports: [CdkOverlayOrigin, TooltipDirective, AvatarComponent, CdkConnectedOverlay, DisplayAvatarsPipe], template: "<div\n #userGroup\n (click)=\"handleClick($event)\"\n (keydown.enter)=\"handleClick($event)\"\n (keydown.space)=\"handleClick($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [lxTooltip]=\"!overlayVisible ? userNames : null\"\n [lxTooltipIsHtmlContent]=\"true\"\n tabindex=\"0\"\n role=\"button\"\n aria-haspopup=\"dialog\"\n>\n @let filteredUsers = users | displayAvatars: type : size : userGroup.offsetWidth : autoScale : maxLength;\n @if (filteredUsers) {\n <div class=\"group-container\">\n @for (user of filteredUsers; track userTrackBy($index, user)) {\n <lx-avatar\n [user]=\"user\"\n [size]=\"size\"\n [showMailToLink]=\"false\"\n [disabled]=\"isUserDisabled(user)\"\n [class]=\"[type === 'individual' ? 'individual' : 'group', size]\"\n />\n }\n @if (filteredUsers.length < users.length) {\n <div [class]=\"[type === 'individual' ? 'individual' : 'group', size]\" class=\"more-users-icon\">\n +{{ users.length - filteredUsers.length }}\n </div>\n }\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible\"\n (overlayOutsideClick)=\"overlayVisible = false\"\n>\n <div class=\"avatars-overlay\">\n @if (title) {\n <div class=\"avatars-overlay-title\">{{ title }}</div>\n }\n <div class=\"avatars-list\">\n @for (user of users; track userTrackBy($index, user)) {\n <div class=\"individual\">\n <lx-avatar [user]=\"user\" [size]=\"size\" [showMailToLink]=\"true\" [disabled]=\"isUserDisabled(user)\" />\n </div>\n }\n </div>\n </div>\n</ng-template>\n", styles: [".group-container{display:flex;align-items:center}.group-container lx-avatar{display:flex;align-items:center}.group-container .more-users-icon{color:#61779d;background-color:#fff;border:1px solid #c2c9d6;border-radius:50%;font-weight:700;-webkit-user-select:none;user-select:none}.individual{margin-right:2px!important}.avatars-overlay{max-width:360px;overflow:auto;margin-top:5px;border-radius:10px;background-color:#fff;border:1px solid #c2c9d6;box-shadow:0 6px 12px #0000002d}.avatars-overlay .avatars-list{display:flex;flex-wrap:wrap;padding:10px}.avatars-overlay .avatars-list lx-avatar{display:block;margin-bottom:5px}.avatars-overlay .avatars-overlay-title{border-bottom:1px solid #c2c9d6;padding:10px;font-weight:700}.XS{width:16px;height:16px;line-height:16px;font-size:8px}.XS.group:not(:first-child){margin-left:-8px}.S{width:24px;height:24px;line-height:24px;font-size:11.25px}.S.group:not(:first-child){margin-left:-12px}.M{width:32px;height:32px;line-height:32px;text-align:center;vertical-align:middle;font-size:15.5px}.M.group:not(:first-child){margin-left:-10px}.L{width:40px;height:40px;line-height:40px;text-align:center;vertical-align:middle;font-size:large}.L.group:not(:first-child){margin-left:-20px}.XL{width:64px;height:64px;line-height:64px;text-align:center;vertical-align:middle;font-size:large}.XL.group:not(:first-child){margin-left:-50px}\n"] }]
2756
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { title: [{
2803
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: ResizeObserverService }], propDecorators: { title: [{
2757
2804
  type: Input
2758
2805
  }], users: [{
2759
2806
  type: Input
@@ -2772,6 +2819,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
2772
2819
  args: ['userGroup']
2773
2820
  }] } });
2774
2821
 
2822
+ /**
2823
+ * The page header acts as a central navigation tool, guiding users through the application and helping them understand their current location.
2824
+ * It often includes a back arrow for easy navigation in child pages and may feature a toolbar on the right for quick access to actions or tools.
2825
+ * Additionally, it can include a breadcrumb.
2826
+ *
2827
+ * ### Projection slots
2828
+ * - `header-title`: Defines the page title content
2829
+ * - `header-content`: Defines additional content below the page title
2830
+ * - `header-buttons`: Defines the header action buttons
2831
+ */
2832
+ class PageHeaderComponent {
2833
+ constructor() {
2834
+ /**
2835
+ * Optional title to display in the header.
2836
+ * If none is passed down, the component assumes
2837
+ * you will pass down a title via the `header-title` projection slot.
2838
+ */
2839
+ this.pageTitle = input();
2840
+ /**
2841
+ * Relative URL to navigate back to
2842
+ */
2843
+ this.backUrl = input([]);
2844
+ /**
2845
+ * Query parameters to append to the `backUrl`
2846
+ */
2847
+ this.queryParams = input({});
2848
+ /**
2849
+ * Accessible name of the back link
2850
+ */
2851
+ this.backUrlLabel = input();
2852
+ /**
2853
+ * Additional navigation state for the back link
2854
+ */
2855
+ this.navigationStateOptions = input({});
2856
+ /**
2857
+ * Whether a divider should be shown below the header.
2858
+ * @default true
2859
+ */
2860
+ this.showDivider = input(true);
2861
+ /**
2862
+ * Event emitted when the back icon is clicked.
2863
+ */
2864
+ this.backIconClick = output();
2865
+ }
2866
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2867
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: PageHeaderComponent, isStandalone: true, selector: "lx-page-header", inputs: { pageTitle: { classPropertyName: "pageTitle", publicName: "pageTitle", isSignal: true, isRequired: false, transformFunction: null }, backUrl: { classPropertyName: "backUrl", publicName: "backUrl", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, backUrlLabel: { classPropertyName: "backUrlLabel", publicName: "backUrlLabel", isSignal: true, isRequired: false, transformFunction: null }, navigationStateOptions: { classPropertyName: "navigationStateOptions", publicName: "navigationStateOptions", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backIconClick: "backIconClick" }, ngImport: i0, template: "<div class=\"tw-mb-l tw-flex tw-min-h-xxl tw-items-start tw-justify-between tw-gap-xl\">\n <div class=\"tw-flex tw-flex-col tw-items-start\">\n <div class=\"tw-flex tw-items-center tw-justify-start\">\n @if (backUrl().length > 0) {\n <a\n [routerLink]=\"backUrl()\"\n [queryParams]=\"queryParams()\"\n [state]=\"navigationStateOptions()\"\n class=\"tw-mr-s\"\n data-testid=\"header-back-btn\"\n [attr.aria-label]=\"backUrlLabel()\"\n (click)=\"backIconClick.emit()\"\n (keyboard.enter)=\"backIconClick.emit()\"\n >\n <lx-icon name=\"arrow-left\" aria-hidden=\"true\" fontAwsomeStyle=\"solid\" />\n </a>\n }\n @if (pageTitle()) {\n <h1 class=\"tw-m-0 tw-text-size-h2 tw-font-bold\" data-testid=\"header-title\">{{ pageTitle() }}</h1>\n } @else {\n <div class=\"tw-m-0 tw-text-size-h2 tw-font-bold\" data-testid=\"header-title\">\n <ng-content select=\"[header-title]\" />\n </div>\n }\n </div>\n <div class=\"-tw-mb-s tw-mt-xs tw-flex tw-self-start\">\n <ng-content select=\"[header-content]\" />\n </div>\n </div>\n <div class=\"tw-flex tw-items-start tw-justify-end tw-gap-xs tw-self-center tw-text-nowrap\">\n <ng-content select=\"[header-buttons]\" />\n </div>\n</div>\n\n@if (showDivider()) {\n <div data-testid=\"header-divider\" class=\"tw-mb-l tw-h-[2px] tw-w-full tw-bg-gray-95\"></div>\n}\n", dependencies: [{ kind: "component", type: IconComponent, selector: "lx-icon", inputs: ["name", "color", "fontAwsomeStyle", "size", "title"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2868
+ }
2869
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PageHeaderComponent, decorators: [{
2870
+ type: Component,
2871
+ args: [{ selector: 'lx-page-header', changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent, RouterLink], template: "<div class=\"tw-mb-l tw-flex tw-min-h-xxl tw-items-start tw-justify-between tw-gap-xl\">\n <div class=\"tw-flex tw-flex-col tw-items-start\">\n <div class=\"tw-flex tw-items-center tw-justify-start\">\n @if (backUrl().length > 0) {\n <a\n [routerLink]=\"backUrl()\"\n [queryParams]=\"queryParams()\"\n [state]=\"navigationStateOptions()\"\n class=\"tw-mr-s\"\n data-testid=\"header-back-btn\"\n [attr.aria-label]=\"backUrlLabel()\"\n (click)=\"backIconClick.emit()\"\n (keyboard.enter)=\"backIconClick.emit()\"\n >\n <lx-icon name=\"arrow-left\" aria-hidden=\"true\" fontAwsomeStyle=\"solid\" />\n </a>\n }\n @if (pageTitle()) {\n <h1 class=\"tw-m-0 tw-text-size-h2 tw-font-bold\" data-testid=\"header-title\">{{ pageTitle() }}</h1>\n } @else {\n <div class=\"tw-m-0 tw-text-size-h2 tw-font-bold\" data-testid=\"header-title\">\n <ng-content select=\"[header-title]\" />\n </div>\n }\n </div>\n <div class=\"-tw-mb-s tw-mt-xs tw-flex tw-self-start\">\n <ng-content select=\"[header-content]\" />\n </div>\n </div>\n <div class=\"tw-flex tw-items-start tw-justify-end tw-gap-xs tw-self-center tw-text-nowrap\">\n <ng-content select=\"[header-buttons]\" />\n </div>\n</div>\n\n@if (showDivider()) {\n <div data-testid=\"header-divider\" class=\"tw-mb-l tw-h-[2px] tw-w-full tw-bg-gray-95\"></div>\n}\n" }]
2872
+ }] });
2873
+
2775
2874
  /**
2776
2875
  * Skeleton is a component that can be used to show a loading state of a component.
2777
2876
  *
@@ -6339,49 +6438,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
6339
6438
  type: Input
6340
6439
  }] } });
6341
6440
 
6342
- /**
6343
- * @ignore
6344
- * Displays Font Awesome icons.
6345
- */
6346
- class IconComponent {
6347
- constructor() {
6348
- this.NAME = 'IconComponent';
6349
- this.color = '#000';
6350
- this.fontAwsomeStyle = 'regular';
6351
- this.size = '14px';
6352
- this.iconStyleMap = {
6353
- solid: 'fas',
6354
- regular: 'far',
6355
- light: 'fal'
6356
- };
6357
- this.iconStyle = 'far';
6358
- }
6359
- ngOnChanges(changes) {
6360
- if ('fontAwsomeStyle' in changes) {
6361
- this.iconStyle = this.iconStyleMap[this.fontAwsomeStyle];
6362
- }
6363
- }
6364
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6365
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: IconComponent, isStandalone: true, selector: "lx-icon", inputs: { name: "name", color: "color", fontAwsomeStyle: "fontAwsomeStyle", size: "size", title: "title" }, host: { properties: { "style.height": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6366
- }
6367
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: IconComponent, decorators: [{
6368
- type: Component,
6369
- args: [{ selector: 'lx-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"] }]
6370
- }], propDecorators: { name: [{
6371
- type: Input
6372
- }], color: [{
6373
- type: Input
6374
- }], fontAwsomeStyle: [{
6375
- type: Input
6376
- }], size: [{
6377
- type: Input
6378
- }, {
6379
- type: HostBinding,
6380
- args: ['style.height']
6381
- }], title: [{
6382
- type: Input
6383
- }] } });
6384
-
6385
6441
  class InputComponent {
6386
6442
  constructor(ngControl) {
6387
6443
  this.ngControl = ngControl;
@@ -8859,7 +8915,6 @@ const FORMS_MODULE_EXPORTS = [
8859
8915
  FilterSelectionPipe,
8860
8916
  FilterTermPipe,
8861
8917
  FormErrorComponent,
8862
- IconComponent,
8863
8918
  KeyboardActionSourceDirective,
8864
8919
  MarkInvalidDirective,
8865
8920
  MultiSelectComponent,
@@ -8908,7 +8963,6 @@ class LxFormsModule {
8908
8963
  FilterSelectionPipe,
8909
8964
  FilterTermPipe,
8910
8965
  FormErrorComponent,
8911
- IconComponent,
8912
8966
  KeyboardActionSourceDirective,
8913
8967
  MarkInvalidDirective,
8914
8968
  MultiSelectComponent,
@@ -8946,7 +9000,6 @@ class LxFormsModule {
8946
9000
  FilterSelectionPipe,
8947
9001
  FilterTermPipe,
8948
9002
  FormErrorComponent,
8949
- IconComponent,
8950
9003
  KeyboardActionSourceDirective,
8951
9004
  MarkInvalidDirective,
8952
9005
  MultiSelectComponent,
@@ -9020,7 +9073,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
9020
9073
  FilterSelectionPipe,
9021
9074
  FilterTermPipe,
9022
9075
  FormErrorComponent,
9023
- IconComponent,
9024
9076
  KeyboardActionSourceDirective,
9025
9077
  MarkInvalidDirective,
9026
9078
  MultiSelectComponent,
@@ -11678,5 +11730,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
11678
11730
  * Generated bundle index. Do not edit.
11679
11731
  */
11680
11732
 
11681
- export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AVATAR_COLORS, AVATAR_SIZE_MAPPING, AfterViewInitDirective, AngularNodeViewComponent, AngularNodeViewRenderer, AutocloseDirective, AutocloseGroupService, AutofocusDirective, AvatarComponent, AvatarGroupComponent, BACKSPACE, BadgeComponent, BannerComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CORE_MODULE_EXPORTS, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ContenteditableDirective, ContrastColorPipe, CounterComponent, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATEPICKER_CONTROL_VALUE_ACCESSOR, DATE_FN_LOCALE, DATE_FORMATS, DEFAULT_IMAGE_ID, DateFormatter, DateInputComponent, DatePickerComponent, DatepickerConfig, DatepickerUiModule, DragAndDropListComponent, DragAndDropListItemComponent, END, ENTER, ESCAPE, EllipsisComponent, EmptyStateComponent, ErrorMessageComponent, FORMS_MODULE_EXPORTS, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FilterSelectionPipe, FilterTermPipe, FocusEditorDirective, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HOME, HighlightRangePipe, HighlightTermDirective, HighlightTermPipe, ICON_MAP, IMAGE_READER, IconComponent, IconScaleComponent, InputComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_BUTTON_USE_SAP_ICONS, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MODAL_MODULE_EXPORTS, MarkInvalidDirective, MarkdownPipe, MaxLengthCounterDirective, ModalCloseClickLocation, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, RemoveMarkdownPipe, ResizeObserverService, ResponsiveInputComponent, RichTextEditorComponent, SPACE, SelectDropdownDirective, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SkeletonComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, StepperComponent, SwitchComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TipTapEditorDirective, TokenComponent, TokenizerComponent, TokenizerOverflowPopoverComponent, TooltipComponent, TooltipDirective, TrackingDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, TruncateDirective, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getInitialsUrl, getKeyboardNavigationEvents, getTranslationParts, highlightText, isValidHexColor, isValidX, isValidY, markdownToText, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle, stopKeyboardEventPropagation };
11733
+ export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AVATAR_COLORS, AVATAR_SIZE_MAPPING, AfterViewInitDirective, AngularNodeViewComponent, AngularNodeViewRenderer, AutocloseDirective, AutocloseGroupService, AutofocusDirective, AvatarComponent, AvatarGroupComponent, BACKSPACE, BadgeComponent, BannerComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CORE_MODULE_EXPORTS, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ContenteditableDirective, ContrastColorPipe, CounterComponent, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATEPICKER_CONTROL_VALUE_ACCESSOR, DATE_FN_LOCALE, DATE_FORMATS, DEFAULT_IMAGE_ID, DateFormatter, DateInputComponent, DatePickerComponent, DatepickerConfig, DatepickerUiModule, DragAndDropListComponent, DragAndDropListItemComponent, END, ENTER, ESCAPE, EllipsisComponent, EmptyStateComponent, ErrorMessageComponent, FORMS_MODULE_EXPORTS, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FilterSelectionPipe, FilterTermPipe, FocusEditorDirective, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HOME, HighlightRangePipe, HighlightTermDirective, HighlightTermPipe, ICON_MAP, IMAGE_READER, IconComponent, IconScaleComponent, InputComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_BUTTON_USE_SAP_ICONS, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MODAL_MODULE_EXPORTS, MarkInvalidDirective, MarkdownPipe, MaxLengthCounterDirective, ModalCloseClickLocation, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PageHeaderComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, RemoveMarkdownPipe, ResizeObserverService, ResponsiveInputComponent, RichTextEditorComponent, SPACE, SelectDropdownDirective, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SkeletonComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, StepperComponent, SwitchComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TipTapEditorDirective, TokenComponent, TokenizerComponent, TokenizerOverflowPopoverComponent, TooltipComponent, TooltipDirective, TrackingDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, TruncateDirective, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getInitialsUrl, getKeyboardNavigationEvents, getTranslationParts, highlightText, isValidHexColor, isValidX, isValidY, markdownToText, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle, stopKeyboardEventPropagation };
11682
11734
  //# sourceMappingURL=leanix-components.mjs.map