@testgorilla/tgo-ui 3.11.1 → 3.11.3
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.
- package/components/breadcrumb/breadcrumb.component.d.ts +36 -0
- package/components/breadcrumb/breadcrumb.component.module.d.ts +15 -0
- package/components/breadcrumb/breadcrumb.model.d.ts +5 -0
- package/components/donut-chart/donut-chart.component.d.ts +2 -2
- package/components/inline-field/inline-field.component.d.ts +2 -2
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +182 -0
- package/esm2022/components/breadcrumb/breadcrumb.component.module.mjs +45 -0
- package/esm2022/components/breadcrumb/breadcrumb.model.mjs +2 -0
- package/esm2022/components/field/field.component.mjs +8 -2
- package/esm2022/pipes/truncate.pipe.mjs +34 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +246 -2
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/pipes/truncate.pipe.d.ts +7 -0
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AfterViewInit, OnDestroy, EventEmitter } from '@angular/core';
|
|
2
|
+
import { BreadcrumbItem, BreadcrumbSize } from './breadcrumb.model';
|
|
3
|
+
import { ElementRef } from '@angular/core';
|
|
4
|
+
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
5
|
+
import { OverflowMenuButtonsType } from '../overflow-menu/overflow-menu.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class BreadcrumbComponent implements AfterViewInit, OnDestroy {
|
|
8
|
+
size: import("@angular/core").InputSignal<BreadcrumbSize>;
|
|
9
|
+
items: import("@angular/core").InputSignal<BreadcrumbItem[]>;
|
|
10
|
+
applicationTheme: import("@angular/core").InputSignal<ApplicationTheme>;
|
|
11
|
+
includeBackButton: import("@angular/core").InputSignal<boolean>;
|
|
12
|
+
isLoading: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
numberOfLoadingItems: import("@angular/core").InputSignal<number>;
|
|
14
|
+
selectItem: EventEmitter<string>;
|
|
15
|
+
backButtonClickEvent: EventEmitter<Event>;
|
|
16
|
+
loadingItems: import("@angular/core").Signal<any[]>;
|
|
17
|
+
isOverflowing: import("@angular/core").WritableSignal<boolean>;
|
|
18
|
+
visibleItems: import("@angular/core").WritableSignal<BreadcrumbItem[]>;
|
|
19
|
+
overflowItems: import("@angular/core").WritableSignal<BreadcrumbItem[]>;
|
|
20
|
+
overflowButtonItems: import("@angular/core").Signal<OverflowMenuButtonsType[]>;
|
|
21
|
+
shouldTruncateLastItem: import("@angular/core").WritableSignal<boolean>;
|
|
22
|
+
breadcrumbContainer: ElementRef<HTMLElement>;
|
|
23
|
+
private resizeObserver?;
|
|
24
|
+
private itemsInOverflow;
|
|
25
|
+
constructor();
|
|
26
|
+
ngAfterViewInit(): void;
|
|
27
|
+
ngOnDestroy(): void;
|
|
28
|
+
private calculateItemDistribution;
|
|
29
|
+
private handleOverflow;
|
|
30
|
+
private tryReduceOverflow;
|
|
31
|
+
private updateItemArrays;
|
|
32
|
+
private resetToAllVisible;
|
|
33
|
+
private setupResizeObserver;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "ui-breadcrumb", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; "isSignal": true; }; "includeBackButton": { "alias": "includeBackButton"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "numberOfLoadingItems": { "alias": "numberOfLoadingItems"; "required": false; "isSignal": true; }; }, { "selectItem": "selectItem"; "backButtonClickEvent": "backButtonClickEvent"; }, never, never, false, never>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./breadcrumb.component";
|
|
3
|
+
import * as i2 from "../../pipes/truncate.pipe";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
import * as i4 from "../icon/icon.component.module";
|
|
6
|
+
import * as i5 from "@angular/material/tooltip";
|
|
7
|
+
import * as i6 from "../overflow-menu/overflow-menu.component.module";
|
|
8
|
+
import * as i7 from "../button/button.component.module";
|
|
9
|
+
import * as i8 from "../skeleton/skeleton.component";
|
|
10
|
+
import * as i9 from "../../pipes/ui-translate.pipe";
|
|
11
|
+
export declare class BreadcrumbComponentModule {
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponentModule, never>;
|
|
13
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BreadcrumbComponentModule, [typeof i1.BreadcrumbComponent, typeof i2.TruncatePipe], [typeof i3.CommonModule, typeof i4.IconComponentModule, typeof i5.MatTooltipModule, typeof i6.OverflowMenuComponentModule, typeof i7.ButtonComponentModule, typeof i8.SkeletonComponent, typeof i9.UiTranslatePipe], [typeof i1.BreadcrumbComponent]>;
|
|
14
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<BreadcrumbComponentModule>;
|
|
15
|
+
}
|
|
@@ -21,13 +21,13 @@ export declare class DonutChartComponent {
|
|
|
21
21
|
id: string;
|
|
22
22
|
afterDatasetDraw: (chart: any) => void;
|
|
23
23
|
};
|
|
24
|
-
donutChartPlugins: (
|
|
24
|
+
donutChartPlugins: ({
|
|
25
25
|
id: string;
|
|
26
26
|
beforeDraw: (chart: any) => void;
|
|
27
27
|
} | {
|
|
28
28
|
id: string;
|
|
29
29
|
afterDatasetDraw: (chart: any) => void;
|
|
30
|
-
})[];
|
|
30
|
+
} | import("chart.js").Plugin<keyof import("chart.js").ChartTypeRegistry, import("chart.js/dist/types/basic").AnyObject>)[];
|
|
31
31
|
donutChartOptions: ChartOptions<'doughnut'>;
|
|
32
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<DonutChartComponent, never>;
|
|
33
33
|
static ɵcmp: i0.ɵɵComponentDeclaration<DonutChartComponent, "ui-donut-chart", never, { "donutChartData": { "alias": "donutChartData"; "required": false; "isSignal": true; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
@@ -109,14 +109,14 @@ export declare class InlineFieldComponent implements OnInit, ControlValueAccesso
|
|
|
109
109
|
state: import("@angular/core").Signal<InlineFieldState>;
|
|
110
110
|
saveButtonConfig: import("@angular/core").Signal<{
|
|
111
111
|
label: string;
|
|
112
|
-
iconName: "
|
|
112
|
+
iconName: "Device-rotate-in-line" | "Archive-filled" | "Archive-in-line" | "Add-in-line" | "Add-filled" | "Arrow-chevron-down-filled" | "Arrow-chevron-down-in-line" | "Arrow-chevron-left-filled" | "Arrow-chevron-left-in-line" | "Arrow-chevron-right-filled" | "Arrow-chevron-right-in-line" | "Arrow-chevron-up-filled" | "Arrow-chevron-up-in-line" | "Arrow-down-filled" | "Arrow-down-in-line" | "Arrow-up-filled" | "Arrow-up-in-line" | "Assessment-filled" | "Assessment-in-line" | "Attach-filled" | "Attach-in-line" | "Attempts-filled" | "Attempts-in-line" | "Book-filled" | "Book-in-line" | "Calendar-filled" | "Calendar-in-line" | "Candidates-filled" | "Candidates-in-line" | "Chat-filled" | "Chat-in-line" | "Check-filled" | "Check-in-line" | "Check-round-filled" | "Check-round-in-line" | "Circle-filled" | "Circle-in-line" | "Clone-filled" | "Clone-in-line" | "Close-filled" | "Close-in-line" | "Code-filled" | "Code-in-line" | "Company-filled" | "Company-in-line" | "Copy-filled" | "Copy-in-line" | "Credit-filled" | "Credit-in-line" | "Credit-card-filled" | "Credit-card-in-line" | "Delete-filled" | "Delete-in-line" | "Devices-filled" | "Devices-in-line" | "Document-filled" | "Document-in-line" | "Dot-filled" | "Dot-in-line" | "Download-filled" | "Download-in-line" | "Edit-filled" | "Edit-in-line" | "Edit-text-filled" | "Edit-text-in-line" | "Employee-filled" | "Employee-in-line" | "Error-filled" | "Error-in-line" | "Essay-filled" | "Essay-in-line" | "Experience-filled" | "Experience-in-line" | "Facebook-filled" | "Facebook-in-line" | "Fast-forward-filled" | "Fast-forward-in-line" | "Fast-rewind-filled" | "Fast-rewind-in-line" | "Filter-filled" | "Filter-in-line" | "Fire-filled" | "Fire-in-line" | "Folder-filled" | "Folder-in-line" | "Full-screen-filled" | "Full-screen-in-line" | "Gender-male-filled" | "Gender-male-in-line" | "Gender-female-filled" | "Gender-female-in-line" | "Gift-filled" | "Gift-in-line" | "Google-filled" | "Google-in-line" | "Grab-filled" | "Grab-in-line" | "Help-filled" | "Help-in-line" | "Hide-filled" | "Hide-in-line" | "Image-filled" | "Image-in-line" | "Info-filled" | "Info-in-line" | "Instagram-filled" | "Instagram-in-line" | "Integration-filled" | "Integration-in-line" | "Invite-filled" | "Invite-in-line" | "Language-filled" | "Language-in-line" | "Layout-filled" | "Layout-in-line" | "Learn-filled" | "Learn-in-line" | "Level-filled" | "Level-in-line" | "Light-bulb-filled" | "Light-bulb-in-line" | "Link-filled" | "Link-in-line" | "Linkedin-filled" | "Linkedin-in-line" | "Localization-filled" | "Localization-in-line" | "Location-filled" | "Location-in-line" | "Lock-filled" | "Lock-in-line" | "Logout-filled" | "Logout-in-line" | "Medal-filled" | "Medal-in-line" | "Menu-burger-filled" | "Menu-burger-in-line" | "Menu-close-filled" | "Menu-close-in-line" | "Menu-ellipsis-filled" | "Menu-ellipsis-in-line" | "Menu-open-filled" | "Menu-open-in-line" | "Mic-filled" | "Mic-in-line" | "Microsoft-filled" | "Microsoft-in-line" | "Minimize-filled" | "Minimize-in-line" | "Minus-filled" | "Minus-in-line" | "Mouse-filled" | "Mouse-in-line" | "Multi-choice-filled" | "Multi-choice-in-line" | "Notification-bell-filled" | "Notification-bell-in-line" | "Open-lock-filled" | "Open-lock-in-line" | "Open-in-new-filled" | "Open-in-new-in-line" | "Password-filled" | "Password-in-line" | "Path-filled" | "Path-in-line" | "Pause-filled" | "Pause-in-line" | "Pin-marker-filled" | "Pin-marker-in-line" | "Plan-billing-filled" | "Plan-billing-in-line" | "Play-filled" | "Play-in-line" | "Plus-filled" | "Plus-in-line" | "Premium-filled" | "Premium-in-line" | "Premium-circle-in-line" | "Question-count-filled" | "Question-count-in-line" | "Question-filled" | "Question-in-line" | "Record-filled" | "Record-in-line" | "Reject-filled" | "Refer-in-line" | "Refer-filled" | "Reject-in-line" | "Reset-filled" | "Reset-in-line" | "Review-emoji-1-filled" | "Review-emoji-1-in-line" | "Review-emoji-2-filled" | "Review-emoji-2-in-line" | "Review-emoji-3-filled" | "Review-emoji-3-in-line" | "Review-emoji-4-filled" | "Review-emoji-4-in-line" | "Review-emoji-5-filled" | "Review-emoji-5-in-line" | "Review-filled" | "Review-half-star-filled" | "Review-half-star-in-line" | "Review-in-line" | "Review-star-filled" | "Review-star-in-line" | "Search-filled" | "Search-in-line" | "Secure-filled" | "Secure-in-line" | "Send-filled" | "Send-in-line" | "Settings-filled" | "Settings-in-line" | "Share-filled" | "Share-in-line" | "Skip-next-filled" | "Skip-next-in-line" | "Skip-previous-filled" | "Skip-previous-in-line" | "Sparkle-filled" | "Sparkle-in-line" | "Speedometer-filled" | "Speedometer-in-line" | "Star-filled" | "Star-in-line" | "Stop-filled" | "Stop-in-line" | "Switch-filled" | "Switch-in-line" | "Sync-filled" | "Sync-in-line" | "Tag-filled" | "Tag-in-line" | "Team-filled" | "Team-in-line" | "Test-filled" | "Test-in-line" | "Thumb-down-in-line" | "Thumb-down-filled" | "Thumb-up-in-line" | "Thumb-up-filled" | "Timer-filled" | "Timer-in-line" | "Trophy-filled" | "Trophy-in-line" | "Type-filled" | "Type-in-line" | "Unarchive-filled" | "Unarchive-in-line" | "Unlock-filled" | "Unlock-in-line" | "Upgrade-filled" | "Upgrade-in-line" | "Upload-filled" | "Upload-in-line" | "User-access-filled" | "User-access-in-line" | "User-add-filled" | "User-add-in-line" | "User-profile-filled" | "User-profile-in-line" | "Video-filled" | "Video-in-line" | "View-filled" | "View-in-line" | "Volume-filled" | "Volume-in-line" | "Warning-filled" | "Warning-in-line" | "Validated-filled" | "Validated-in-line" | "Verified-badge-filled" | "Verified-badge-in-line" | "Zoom-in-filled" | "Zoom-in-in-line" | "Zoom-out-filled" | "Zoom-out-in-line" | "Analytics-filled" | "Analytics-in-line" | "Failed-to-load-filled" | "Failed-to-load-in-line" | "History-filled" | "History-in-line" | "TestGorilla-filled" | "TestGorilla-in-line" | "TestGorilla-Pink-filled" | "TestGorilla-Pink-in-line" | "Pencil-to-gorilla-in-line" | "Pencil-to-gorilla-filled" | "Switch-tab-in-line" | "Switch-tab-filled" | "Add" | "Archive" | "Arrow_down" | "Arrow_left" | "Arrow_right" | "Arrow_up" | "Assessment" | "Attempts" | "Book" | "Calendar" | "Candidates" | "Chat-notifications" | "Chat" | "Check" | "Clone" | "Close" | "Code" | "Company" | "Copy" | "Custom-questions" | "Delete" | "Devices" | "Document" | "Dot" | "Download" | "Edit" | "Email-message" | "Empty-placeholder" | "Error" | "Essay" | "Eye-hide" | "Eye-view" | "Feedback-1" | "Feedback-2" | "Feedback-3" | "Feedback-4" | "Feedback-5" | "File-attach" | "File-upload" | "Filter" | "Folder" | "Format-add-file" | "Format-add-table" | "Format-align-L" | "Format-align-R" | "Format-align-center" | "Format-align-justify" | "Format-bold" | "Format-code-active" | "Format-code-block" | "Format-edit-table" | "Format-format" | "Format-function" | "Format-italics" | "Format-list-bulleted" | "Format-list-numbered" | "Format-picker" | "Format-quote" | "Format-subscript" | "Format-superscript" | "Format-text-direction-L" | "Format-text-direction-R" | "Format-text-size" | "Format-underline" | "Format-variable" | "Full-screen" | "Gender-female" | "Gender-male" | "Help-2" | "Help" | "Image" | "Info" | "Integration" | "Language" | "Layout" | "Learn" | "Level" | "Light-bulb" | "Link" | "Loading-spinner" | "Localisation" | "Location" | "Lock" | "Log-out" | "Menu-burger" | "Menu-close" | "Menu-ellipsis" | "Menu-open" | "Microphone" | "Microsoft" | "Minus" | "Mouse-cursor" | "Mouse-grab-cursor" | "Mouse" | "Multi-choice" | "Notifications" | "Password" | "Path" | "Pin-marker" | "Plan-billing" | "Plus" | "Premium" | "Promotion" | "Question-count" | "Refer" | "Reset" | "Review" | "Round-check-filled" | "Round-check" | "Search" | "Secure-checkout" | "Send" | "Settings" | "Social-facebook" | "Social-instagram" | "Social-linkedin" | "Sorting-down-1" | "Sorting-down" | "Speedometer" | "Star-half" | "Star-outline" | "Support" | "Sync" | "Team" | "Test" | "Thunder" | "Timer" | "Trophy" | "Type" | "Unarchive" | "Unlock" | "Upgrade" | "Upload" | "User-access" | "User-add" | "User-invite" | "User-profile" | "User-reject" | "User-switch" | "Video-pause" | "Video-play" | "Video-record" | "Video" | "Volume" | "Warning" | "Zoom-in" | "Zoom-out" | "Fire" | "Gift" | "Grab" | "Share" | "Sparkles" | "Video-stop" | "Minimize" | "Employee" | "Money-bag" | "Suitcase" | "Google" | "Fast-forward" | "Fast-rewind" | "Skip-next" | "Skip-previous" | "TestGorilla" | "Switch-tab";
|
|
113
113
|
variant: "secondary-inverted";
|
|
114
114
|
size: "small";
|
|
115
115
|
disabled: boolean;
|
|
116
116
|
}>;
|
|
117
117
|
cancelButtonConfig: import("@angular/core").Signal<{
|
|
118
118
|
label: string;
|
|
119
|
-
iconName: "
|
|
119
|
+
iconName: "Device-rotate-in-line" | "Archive-filled" | "Archive-in-line" | "Add-in-line" | "Add-filled" | "Arrow-chevron-down-filled" | "Arrow-chevron-down-in-line" | "Arrow-chevron-left-filled" | "Arrow-chevron-left-in-line" | "Arrow-chevron-right-filled" | "Arrow-chevron-right-in-line" | "Arrow-chevron-up-filled" | "Arrow-chevron-up-in-line" | "Arrow-down-filled" | "Arrow-down-in-line" | "Arrow-up-filled" | "Arrow-up-in-line" | "Assessment-filled" | "Assessment-in-line" | "Attach-filled" | "Attach-in-line" | "Attempts-filled" | "Attempts-in-line" | "Book-filled" | "Book-in-line" | "Calendar-filled" | "Calendar-in-line" | "Candidates-filled" | "Candidates-in-line" | "Chat-filled" | "Chat-in-line" | "Check-filled" | "Check-in-line" | "Check-round-filled" | "Check-round-in-line" | "Circle-filled" | "Circle-in-line" | "Clone-filled" | "Clone-in-line" | "Close-filled" | "Close-in-line" | "Code-filled" | "Code-in-line" | "Company-filled" | "Company-in-line" | "Copy-filled" | "Copy-in-line" | "Credit-filled" | "Credit-in-line" | "Credit-card-filled" | "Credit-card-in-line" | "Delete-filled" | "Delete-in-line" | "Devices-filled" | "Devices-in-line" | "Document-filled" | "Document-in-line" | "Dot-filled" | "Dot-in-line" | "Download-filled" | "Download-in-line" | "Edit-filled" | "Edit-in-line" | "Edit-text-filled" | "Edit-text-in-line" | "Employee-filled" | "Employee-in-line" | "Error-filled" | "Error-in-line" | "Essay-filled" | "Essay-in-line" | "Experience-filled" | "Experience-in-line" | "Facebook-filled" | "Facebook-in-line" | "Fast-forward-filled" | "Fast-forward-in-line" | "Fast-rewind-filled" | "Fast-rewind-in-line" | "Filter-filled" | "Filter-in-line" | "Fire-filled" | "Fire-in-line" | "Folder-filled" | "Folder-in-line" | "Full-screen-filled" | "Full-screen-in-line" | "Gender-male-filled" | "Gender-male-in-line" | "Gender-female-filled" | "Gender-female-in-line" | "Gift-filled" | "Gift-in-line" | "Google-filled" | "Google-in-line" | "Grab-filled" | "Grab-in-line" | "Help-filled" | "Help-in-line" | "Hide-filled" | "Hide-in-line" | "Image-filled" | "Image-in-line" | "Info-filled" | "Info-in-line" | "Instagram-filled" | "Instagram-in-line" | "Integration-filled" | "Integration-in-line" | "Invite-filled" | "Invite-in-line" | "Language-filled" | "Language-in-line" | "Layout-filled" | "Layout-in-line" | "Learn-filled" | "Learn-in-line" | "Level-filled" | "Level-in-line" | "Light-bulb-filled" | "Light-bulb-in-line" | "Link-filled" | "Link-in-line" | "Linkedin-filled" | "Linkedin-in-line" | "Localization-filled" | "Localization-in-line" | "Location-filled" | "Location-in-line" | "Lock-filled" | "Lock-in-line" | "Logout-filled" | "Logout-in-line" | "Medal-filled" | "Medal-in-line" | "Menu-burger-filled" | "Menu-burger-in-line" | "Menu-close-filled" | "Menu-close-in-line" | "Menu-ellipsis-filled" | "Menu-ellipsis-in-line" | "Menu-open-filled" | "Menu-open-in-line" | "Mic-filled" | "Mic-in-line" | "Microsoft-filled" | "Microsoft-in-line" | "Minimize-filled" | "Minimize-in-line" | "Minus-filled" | "Minus-in-line" | "Mouse-filled" | "Mouse-in-line" | "Multi-choice-filled" | "Multi-choice-in-line" | "Notification-bell-filled" | "Notification-bell-in-line" | "Open-lock-filled" | "Open-lock-in-line" | "Open-in-new-filled" | "Open-in-new-in-line" | "Password-filled" | "Password-in-line" | "Path-filled" | "Path-in-line" | "Pause-filled" | "Pause-in-line" | "Pin-marker-filled" | "Pin-marker-in-line" | "Plan-billing-filled" | "Plan-billing-in-line" | "Play-filled" | "Play-in-line" | "Plus-filled" | "Plus-in-line" | "Premium-filled" | "Premium-in-line" | "Premium-circle-in-line" | "Question-count-filled" | "Question-count-in-line" | "Question-filled" | "Question-in-line" | "Record-filled" | "Record-in-line" | "Reject-filled" | "Refer-in-line" | "Refer-filled" | "Reject-in-line" | "Reset-filled" | "Reset-in-line" | "Review-emoji-1-filled" | "Review-emoji-1-in-line" | "Review-emoji-2-filled" | "Review-emoji-2-in-line" | "Review-emoji-3-filled" | "Review-emoji-3-in-line" | "Review-emoji-4-filled" | "Review-emoji-4-in-line" | "Review-emoji-5-filled" | "Review-emoji-5-in-line" | "Review-filled" | "Review-half-star-filled" | "Review-half-star-in-line" | "Review-in-line" | "Review-star-filled" | "Review-star-in-line" | "Search-filled" | "Search-in-line" | "Secure-filled" | "Secure-in-line" | "Send-filled" | "Send-in-line" | "Settings-filled" | "Settings-in-line" | "Share-filled" | "Share-in-line" | "Skip-next-filled" | "Skip-next-in-line" | "Skip-previous-filled" | "Skip-previous-in-line" | "Sparkle-filled" | "Sparkle-in-line" | "Speedometer-filled" | "Speedometer-in-line" | "Star-filled" | "Star-in-line" | "Stop-filled" | "Stop-in-line" | "Switch-filled" | "Switch-in-line" | "Sync-filled" | "Sync-in-line" | "Tag-filled" | "Tag-in-line" | "Team-filled" | "Team-in-line" | "Test-filled" | "Test-in-line" | "Thumb-down-in-line" | "Thumb-down-filled" | "Thumb-up-in-line" | "Thumb-up-filled" | "Timer-filled" | "Timer-in-line" | "Trophy-filled" | "Trophy-in-line" | "Type-filled" | "Type-in-line" | "Unarchive-filled" | "Unarchive-in-line" | "Unlock-filled" | "Unlock-in-line" | "Upgrade-filled" | "Upgrade-in-line" | "Upload-filled" | "Upload-in-line" | "User-access-filled" | "User-access-in-line" | "User-add-filled" | "User-add-in-line" | "User-profile-filled" | "User-profile-in-line" | "Video-filled" | "Video-in-line" | "View-filled" | "View-in-line" | "Volume-filled" | "Volume-in-line" | "Warning-filled" | "Warning-in-line" | "Validated-filled" | "Validated-in-line" | "Verified-badge-filled" | "Verified-badge-in-line" | "Zoom-in-filled" | "Zoom-in-in-line" | "Zoom-out-filled" | "Zoom-out-in-line" | "Analytics-filled" | "Analytics-in-line" | "Failed-to-load-filled" | "Failed-to-load-in-line" | "History-filled" | "History-in-line" | "TestGorilla-filled" | "TestGorilla-in-line" | "TestGorilla-Pink-filled" | "TestGorilla-Pink-in-line" | "Pencil-to-gorilla-in-line" | "Pencil-to-gorilla-filled" | "Switch-tab-in-line" | "Switch-tab-filled" | "Add" | "Archive" | "Arrow_down" | "Arrow_left" | "Arrow_right" | "Arrow_up" | "Assessment" | "Attempts" | "Book" | "Calendar" | "Candidates" | "Chat-notifications" | "Chat" | "Check" | "Clone" | "Close" | "Code" | "Company" | "Copy" | "Custom-questions" | "Delete" | "Devices" | "Document" | "Dot" | "Download" | "Edit" | "Email-message" | "Empty-placeholder" | "Error" | "Essay" | "Eye-hide" | "Eye-view" | "Feedback-1" | "Feedback-2" | "Feedback-3" | "Feedback-4" | "Feedback-5" | "File-attach" | "File-upload" | "Filter" | "Folder" | "Format-add-file" | "Format-add-table" | "Format-align-L" | "Format-align-R" | "Format-align-center" | "Format-align-justify" | "Format-bold" | "Format-code-active" | "Format-code-block" | "Format-edit-table" | "Format-format" | "Format-function" | "Format-italics" | "Format-list-bulleted" | "Format-list-numbered" | "Format-picker" | "Format-quote" | "Format-subscript" | "Format-superscript" | "Format-text-direction-L" | "Format-text-direction-R" | "Format-text-size" | "Format-underline" | "Format-variable" | "Full-screen" | "Gender-female" | "Gender-male" | "Help-2" | "Help" | "Image" | "Info" | "Integration" | "Language" | "Layout" | "Learn" | "Level" | "Light-bulb" | "Link" | "Loading-spinner" | "Localisation" | "Location" | "Lock" | "Log-out" | "Menu-burger" | "Menu-close" | "Menu-ellipsis" | "Menu-open" | "Microphone" | "Microsoft" | "Minus" | "Mouse-cursor" | "Mouse-grab-cursor" | "Mouse" | "Multi-choice" | "Notifications" | "Password" | "Path" | "Pin-marker" | "Plan-billing" | "Plus" | "Premium" | "Promotion" | "Question-count" | "Refer" | "Reset" | "Review" | "Round-check-filled" | "Round-check" | "Search" | "Secure-checkout" | "Send" | "Settings" | "Social-facebook" | "Social-instagram" | "Social-linkedin" | "Sorting-down-1" | "Sorting-down" | "Speedometer" | "Star-half" | "Star-outline" | "Support" | "Sync" | "Team" | "Test" | "Thunder" | "Timer" | "Trophy" | "Type" | "Unarchive" | "Unlock" | "Upgrade" | "Upload" | "User-access" | "User-add" | "User-invite" | "User-profile" | "User-reject" | "User-switch" | "Video-pause" | "Video-play" | "Video-record" | "Video" | "Volume" | "Warning" | "Zoom-in" | "Zoom-out" | "Fire" | "Gift" | "Grab" | "Share" | "Sparkles" | "Video-stop" | "Minimize" | "Employee" | "Money-bag" | "Suitcase" | "Google" | "Fast-forward" | "Fast-rewind" | "Skip-next" | "Skip-previous" | "TestGorilla" | "Switch-tab";
|
|
120
120
|
variant: "secondary-inverted";
|
|
121
121
|
size: "small";
|
|
122
122
|
disabled: boolean;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Component, input, signal, ViewChild, computed, EventEmitter, Output, effect, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../icon/icon.component";
|
|
4
|
+
import * as i2 from "@angular/material/tooltip";
|
|
5
|
+
import * as i3 from "../overflow-menu/overflow-menu.component";
|
|
6
|
+
import * as i4 from "../button/button.component";
|
|
7
|
+
import * as i5 from "../skeleton/skeleton.component";
|
|
8
|
+
import * as i6 from "@angular/common";
|
|
9
|
+
import * as i7 from "../../pipes/ui-translate.pipe";
|
|
10
|
+
import * as i8 from "../../pipes/truncate.pipe";
|
|
11
|
+
export class BreadcrumbComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.size = input('large');
|
|
14
|
+
this.items = input([]);
|
|
15
|
+
this.applicationTheme = input('light');
|
|
16
|
+
this.includeBackButton = input(false);
|
|
17
|
+
this.isLoading = input(false);
|
|
18
|
+
this.numberOfLoadingItems = input(3);
|
|
19
|
+
this.selectItem = new EventEmitter();
|
|
20
|
+
this.backButtonClickEvent = new EventEmitter();
|
|
21
|
+
this.loadingItems = computed(() => Array(this.numberOfLoadingItems()));
|
|
22
|
+
this.isOverflowing = signal(false);
|
|
23
|
+
this.visibleItems = signal([]);
|
|
24
|
+
this.overflowItems = signal([]);
|
|
25
|
+
this.overflowButtonItems = computed(() => this.overflowItems().map(item => ({
|
|
26
|
+
label: item.label,
|
|
27
|
+
value: item.value,
|
|
28
|
+
})));
|
|
29
|
+
this.shouldTruncateLastItem = signal(false);
|
|
30
|
+
this.itemsInOverflow = 0;
|
|
31
|
+
// React to items changes and recalculate overflow
|
|
32
|
+
effect(() => {
|
|
33
|
+
this.items();
|
|
34
|
+
this.itemsInOverflow = 0;
|
|
35
|
+
if (this.breadcrumbContainer?.nativeElement) {
|
|
36
|
+
// Wait for DOM to render new items before calculating overflow
|
|
37
|
+
setTimeout(() => this.calculateItemDistribution(), 0);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
this.calculateItemDistribution();
|
|
43
|
+
this.setupResizeObserver();
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
this.resizeObserver?.disconnect();
|
|
47
|
+
}
|
|
48
|
+
calculateItemDistribution() {
|
|
49
|
+
if (!this.breadcrumbContainer?.nativeElement || this.items().length === 0) {
|
|
50
|
+
this.resetToAllVisible();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const element = this.breadcrumbContainer.nativeElement;
|
|
54
|
+
const hasHorizontalOverflow = element.scrollWidth > element.clientWidth;
|
|
55
|
+
if (hasHorizontalOverflow) {
|
|
56
|
+
this.handleOverflow();
|
|
57
|
+
}
|
|
58
|
+
else if (this.itemsInOverflow > 0) {
|
|
59
|
+
// Check if we can bring items back from overflow
|
|
60
|
+
this.tryReduceOverflow();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.resetToAllVisible();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
handleOverflow() {
|
|
67
|
+
this.itemsInOverflow = Math.min(this.itemsInOverflow + 1, this.items().length - 1);
|
|
68
|
+
this.updateItemArrays();
|
|
69
|
+
this.isOverflowing.set(true);
|
|
70
|
+
// Wait for DOM to render the updated template after hiding items
|
|
71
|
+
// We need to measure dimensions AFTER the DOM has been updated with the new visible items
|
|
72
|
+
setTimeout(() => {
|
|
73
|
+
if (this.breadcrumbContainer?.nativeElement) {
|
|
74
|
+
const element = this.breadcrumbContainer.nativeElement;
|
|
75
|
+
const stillOverflowing = element.scrollWidth > element.clientWidth;
|
|
76
|
+
if (stillOverflowing && this.itemsInOverflow < this.items().length - 1) {
|
|
77
|
+
this.handleOverflow();
|
|
78
|
+
}
|
|
79
|
+
else if (stillOverflowing && this.itemsInOverflow === this.items().length - 1) {
|
|
80
|
+
this.shouldTruncateLastItem.set(true);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}, 0);
|
|
84
|
+
}
|
|
85
|
+
tryReduceOverflow() {
|
|
86
|
+
const testItemsInOverflow = this.itemsInOverflow - 1;
|
|
87
|
+
if (testItemsInOverflow >= 0) {
|
|
88
|
+
const testVisibleItems = this.items().slice(testItemsInOverflow);
|
|
89
|
+
const testOverflowItems = testItemsInOverflow > 0 ? this.items().slice(0, testItemsInOverflow) : [];
|
|
90
|
+
this.visibleItems.set(testVisibleItems);
|
|
91
|
+
this.overflowItems.set(testOverflowItems);
|
|
92
|
+
// Always reset truncation when trying to reduce overflow
|
|
93
|
+
this.shouldTruncateLastItem.set(false);
|
|
94
|
+
// Wait for DOM to render with test configuration before measuring
|
|
95
|
+
setTimeout(() => {
|
|
96
|
+
if (this.breadcrumbContainer?.nativeElement) {
|
|
97
|
+
const element = this.breadcrumbContainer.nativeElement;
|
|
98
|
+
const hasOverflow = element.scrollWidth > element.clientWidth;
|
|
99
|
+
if (!hasOverflow) {
|
|
100
|
+
// It fits! Update the counter
|
|
101
|
+
this.itemsInOverflow = testItemsInOverflow;
|
|
102
|
+
this.isOverflowing.set(this.itemsInOverflow > 0);
|
|
103
|
+
// Try to reduce more if there are still items in overflow
|
|
104
|
+
if (this.itemsInOverflow > 0) {
|
|
105
|
+
// Schedule next reduction attempt after current render cycle
|
|
106
|
+
setTimeout(() => this.tryReduceOverflow(), 0);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// Doesn't fit, revert to previous state
|
|
111
|
+
this.updateItemArrays();
|
|
112
|
+
// Wait for DOM to render reverted state before checking truncation
|
|
113
|
+
setTimeout(() => {
|
|
114
|
+
if (this.breadcrumbContainer?.nativeElement) {
|
|
115
|
+
const containerElement = this.breadcrumbContainer.nativeElement;
|
|
116
|
+
const stillOverflowing = containerElement.scrollWidth > containerElement.clientWidth;
|
|
117
|
+
if (stillOverflowing && this.itemsInOverflow === this.items().length - 1) {
|
|
118
|
+
this.shouldTruncateLastItem.set(true);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}, 0);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}, 0);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// testItemsInOverflow < 0, means we're trying to show all items
|
|
128
|
+
this.resetToAllVisible();
|
|
129
|
+
// Wait for DOM to render all items before measuring overflow
|
|
130
|
+
setTimeout(() => {
|
|
131
|
+
if (this.breadcrumbContainer?.nativeElement) {
|
|
132
|
+
const element = this.breadcrumbContainer.nativeElement;
|
|
133
|
+
const hasOverflow = element.scrollWidth > element.clientWidth;
|
|
134
|
+
if (hasOverflow) {
|
|
135
|
+
// Still overflows with all items, need to go back to overflow state
|
|
136
|
+
this.itemsInOverflow = 1; // Start with minimal overflow
|
|
137
|
+
this.handleOverflow();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}, 0);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
updateItemArrays() {
|
|
144
|
+
if (this.itemsInOverflow > 0) {
|
|
145
|
+
this.overflowItems.set(this.items().slice(0, this.itemsInOverflow));
|
|
146
|
+
this.visibleItems.set(this.items().slice(this.itemsInOverflow));
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.resetToAllVisible();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
resetToAllVisible() {
|
|
153
|
+
this.visibleItems.set(this.items());
|
|
154
|
+
this.overflowItems.set([]);
|
|
155
|
+
this.isOverflowing.set(false);
|
|
156
|
+
this.shouldTruncateLastItem.set(false);
|
|
157
|
+
this.itemsInOverflow = 0;
|
|
158
|
+
}
|
|
159
|
+
setupResizeObserver() {
|
|
160
|
+
if (!this.breadcrumbContainer?.nativeElement) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
164
|
+
this.calculateItemDistribution();
|
|
165
|
+
});
|
|
166
|
+
this.resizeObserver.observe(this.breadcrumbContainer.nativeElement);
|
|
167
|
+
}
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BreadcrumbComponent, selector: "ui-breadcrumb", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null }, includeBackButton: { classPropertyName: "includeBackButton", publicName: "includeBackButton", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, numberOfLoadingItems: { classPropertyName: "numberOfLoadingItems", publicName: "numberOfLoadingItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectItem: "selectItem", backButtonClickEvent: "backButtonClickEvent" }, viewQueries: [{ propertyName: "breadcrumbContainer", first: true, predicate: ["breadcrumbContainer"], descendants: true }], ngImport: i0, template: "@if (!isLoading()) {\n <div class=\"breadcrumb\" [attr.theme]=\"applicationTheme()\" #breadcrumbContainer [class]=\"'breadcrumb-' + size()\">\n @if (includeBackButton()) {\n <ui-button\n [variant]=\"'icon-button'\"\n [tooltip]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [iconName]=\"'Arrow-chevron-left-filled'\"\n (buttonClickEvent)=\"backButtonClickEvent.emit($event)\"\n ></ui-button>\n }\n @if (isOverflowing()) {\n <ui-overflow-menu\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"overflowMenu\"\n [buttons]=\"overflowButtonItems()\"\n [matTooltip]=\"('COMMON.OPTIONS' | uiTranslate | async)!\"\n [matTooltipClass]=\"applicationTheme()\"\n [isDynamicMenu]=\"true\"\n (selectItem)=\"selectItem.emit($event)\"\n class=\"breadcrumb-overflow-menu\"\n ></ui-overflow-menu>\n <ui-icon name=\"Arrow-chevron-right-filled\" [applicationTheme]=\"applicationTheme()\" color=\"gray\"></ui-icon>\n }\n @for (item of visibleItems(); track item.value) {\n @if (!$last) {\n <span\n class=\"breadcrumb-item\"\n tabindex=\"0\"\n [matTooltip]=\"item.label.length > 10 ? item.label : ''\"\n [matTooltipClass]=\"applicationTheme()\"\n [attr.aria-label]=\"item.label\"\n (click)=\"selectItem.emit(item.value)\"\n (keydown.enter)=\"selectItem.emit(item.value)\"\n >\n {{ item.label | truncate: 12 : '...' }}\n </span>\n <ui-icon name=\"Arrow-chevron-right-filled\" [applicationTheme]=\"applicationTheme()\" color=\"gray\"></ui-icon>\n } @else {\n <strong\n class=\"breadcrumb-item-active\"\n tabindex=\"0\"\n [matTooltip]=\"shouldTruncateLastItem() ? item.label : ''\"\n [matTooltipClass]=\"applicationTheme()\"\n [class.breadcrumb-item-active-truncated]=\"shouldTruncateLastItem()\"\n [attr.aria-label]=\"item.label\"\n [attr.aria-current]=\"'page'\"\n (click)=\"selectItem.emit(item.value)\"\n (keydown.enter)=\"selectItem.emit(item.value)\"\n >\n {{ item.label }}\n </strong>\n }\n }\n </div>\n} @else {\n <div class=\"breadcrumb\">\n @for (i of loadingItems(); track $index) {\n <ui-skeleton count=\"1\" [theme]=\"{ width: '160px', margin: '10px 0 0' }\"></ui-skeleton>\n @if ($index !== numberOfLoadingItems() - 1) {\n <ui-icon name=\"Arrow-chevron-right-filled\" [applicationTheme]=\"applicationTheme()\" color=\"gray\"></ui-icon>\n }\n }\n </div>\n}\n<ng-template #overflowMenu>\n <div class=\"breadcrumb-item breadcrumb-overflow\" [class]=\"'breadcrumb-' + size()\">...</div>\n</ng-template>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.breadcrumb{display:flex;align-items:center;gap:4px;color:#666}.breadcrumb .breadcrumb-item{text-decoration:underline;cursor:pointer;transition:color .15s ease,transform .1s ease;white-space:nowrap}.breadcrumb .breadcrumb-item:hover{color:#919191}.breadcrumb .breadcrumb-item:active{transform:scale(.98);color:#919191}.breadcrumb .breadcrumb-item:focus-visible{outline:2px solid #242424;outline-offset:4px;border-radius:1px}.breadcrumb.breadcrumb-small{font-size:14px;line-height:22px}.breadcrumb.breadcrumb-medium{font-size:20px;line-height:26px}.breadcrumb.breadcrumb-large{font-size:32px;line-height:48px}.breadcrumb.breadcrumb-large .breadcrumb-item:focus-visible{outline-offset:8px}.breadcrumb.breadcrumb-large .breadcrumb-item-active:focus-visible{outline-offset:8px}.breadcrumb .breadcrumb-item-active{color:#242424;white-space:nowrap}.breadcrumb .breadcrumb-item-active.breadcrumb-item-active-truncated{text-overflow:ellipsis;overflow:hidden}.breadcrumb .breadcrumb-item-active:focus-visible{outline:2px solid #242424;outline-offset:4px;border-radius:1px}.breadcrumb .breadcrumb-overflow-menu ::ng-deep .overflow-menu-container .mat-mdc-menu-trigger{min-width:0}.breadcrumb-overflow{cursor:pointer;color:#666}.breadcrumb-overflow:active{transform:scale(.98);color:#919191}.breadcrumb-overflow.breadcrumb-small{font-size:14px;line-height:22px}.breadcrumb-overflow.breadcrumb-medium{font-size:20px;line-height:26px}.breadcrumb-overflow.breadcrumb-large{font-size:32px;line-height:48px}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.OverflowMenuComponent, selector: "ui-overflow-menu", inputs: ["buttons", "iconTrigger", "menuLabel", "applicationTheme", "ariaLabel", "ariaRequired", "describedby", "contentTemplateRef", "buttonVariant", "buttonSize", "menuConfig", "isDynamicMenu"], outputs: ["selectItem", "menuOpened", "menuClosed"] }, { kind: "component", type: i4.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i5.SkeletonComponent, selector: "ui-skeleton", inputs: ["count", "theme", "appearance", "isAiTheme", "applicationTheme"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i8.TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
170
|
+
}
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
172
|
+
type: Component,
|
|
173
|
+
args: [{ selector: 'ui-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!isLoading()) {\n <div class=\"breadcrumb\" [attr.theme]=\"applicationTheme()\" #breadcrumbContainer [class]=\"'breadcrumb-' + size()\">\n @if (includeBackButton()) {\n <ui-button\n [variant]=\"'icon-button'\"\n [tooltip]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [iconName]=\"'Arrow-chevron-left-filled'\"\n (buttonClickEvent)=\"backButtonClickEvent.emit($event)\"\n ></ui-button>\n }\n @if (isOverflowing()) {\n <ui-overflow-menu\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"overflowMenu\"\n [buttons]=\"overflowButtonItems()\"\n [matTooltip]=\"('COMMON.OPTIONS' | uiTranslate | async)!\"\n [matTooltipClass]=\"applicationTheme()\"\n [isDynamicMenu]=\"true\"\n (selectItem)=\"selectItem.emit($event)\"\n class=\"breadcrumb-overflow-menu\"\n ></ui-overflow-menu>\n <ui-icon name=\"Arrow-chevron-right-filled\" [applicationTheme]=\"applicationTheme()\" color=\"gray\"></ui-icon>\n }\n @for (item of visibleItems(); track item.value) {\n @if (!$last) {\n <span\n class=\"breadcrumb-item\"\n tabindex=\"0\"\n [matTooltip]=\"item.label.length > 10 ? item.label : ''\"\n [matTooltipClass]=\"applicationTheme()\"\n [attr.aria-label]=\"item.label\"\n (click)=\"selectItem.emit(item.value)\"\n (keydown.enter)=\"selectItem.emit(item.value)\"\n >\n {{ item.label | truncate: 12 : '...' }}\n </span>\n <ui-icon name=\"Arrow-chevron-right-filled\" [applicationTheme]=\"applicationTheme()\" color=\"gray\"></ui-icon>\n } @else {\n <strong\n class=\"breadcrumb-item-active\"\n tabindex=\"0\"\n [matTooltip]=\"shouldTruncateLastItem() ? item.label : ''\"\n [matTooltipClass]=\"applicationTheme()\"\n [class.breadcrumb-item-active-truncated]=\"shouldTruncateLastItem()\"\n [attr.aria-label]=\"item.label\"\n [attr.aria-current]=\"'page'\"\n (click)=\"selectItem.emit(item.value)\"\n (keydown.enter)=\"selectItem.emit(item.value)\"\n >\n {{ item.label }}\n </strong>\n }\n }\n </div>\n} @else {\n <div class=\"breadcrumb\">\n @for (i of loadingItems(); track $index) {\n <ui-skeleton count=\"1\" [theme]=\"{ width: '160px', margin: '10px 0 0' }\"></ui-skeleton>\n @if ($index !== numberOfLoadingItems() - 1) {\n <ui-icon name=\"Arrow-chevron-right-filled\" [applicationTheme]=\"applicationTheme()\" color=\"gray\"></ui-icon>\n }\n }\n </div>\n}\n<ng-template #overflowMenu>\n <div class=\"breadcrumb-item breadcrumb-overflow\" [class]=\"'breadcrumb-' + size()\">...</div>\n</ng-template>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.breadcrumb{display:flex;align-items:center;gap:4px;color:#666}.breadcrumb .breadcrumb-item{text-decoration:underline;cursor:pointer;transition:color .15s ease,transform .1s ease;white-space:nowrap}.breadcrumb .breadcrumb-item:hover{color:#919191}.breadcrumb .breadcrumb-item:active{transform:scale(.98);color:#919191}.breadcrumb .breadcrumb-item:focus-visible{outline:2px solid #242424;outline-offset:4px;border-radius:1px}.breadcrumb.breadcrumb-small{font-size:14px;line-height:22px}.breadcrumb.breadcrumb-medium{font-size:20px;line-height:26px}.breadcrumb.breadcrumb-large{font-size:32px;line-height:48px}.breadcrumb.breadcrumb-large .breadcrumb-item:focus-visible{outline-offset:8px}.breadcrumb.breadcrumb-large .breadcrumb-item-active:focus-visible{outline-offset:8px}.breadcrumb .breadcrumb-item-active{color:#242424;white-space:nowrap}.breadcrumb .breadcrumb-item-active.breadcrumb-item-active-truncated{text-overflow:ellipsis;overflow:hidden}.breadcrumb .breadcrumb-item-active:focus-visible{outline:2px solid #242424;outline-offset:4px;border-radius:1px}.breadcrumb .breadcrumb-overflow-menu ::ng-deep .overflow-menu-container .mat-mdc-menu-trigger{min-width:0}.breadcrumb-overflow{cursor:pointer;color:#666}.breadcrumb-overflow:active{transform:scale(.98);color:#919191}.breadcrumb-overflow.breadcrumb-small{font-size:14px;line-height:22px}.breadcrumb-overflow.breadcrumb-medium{font-size:20px;line-height:26px}.breadcrumb-overflow.breadcrumb-large{font-size:32px;line-height:48px}\n"] }]
|
|
174
|
+
}], ctorParameters: () => [], propDecorators: { selectItem: [{
|
|
175
|
+
type: Output
|
|
176
|
+
}], backButtonClickEvent: [{
|
|
177
|
+
type: Output
|
|
178
|
+
}], breadcrumbContainer: [{
|
|
179
|
+
type: ViewChild,
|
|
180
|
+
args: ['breadcrumbContainer']
|
|
181
|
+
}] } });
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sdUJBQXVCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBWXZCLE1BQU0sT0FBTyxtQkFBbUI7SUEyQjlCO1FBMUJBLFNBQUksR0FBRyxLQUFLLENBQWlCLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLFVBQUssR0FBRyxLQUFLLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLHFCQUFnQixHQUFHLEtBQUssQ0FBbUIsT0FBTyxDQUFDLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzlCLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5RCx5QkFBb0IsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUVoRixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLGtCQUFhLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZD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Q3BDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0F2TFUsbUJBQW1CO21HQUFuQixtQkFBbUIsNmxDQ3hCaEMsMHVGQW1FQTs7NEZEM0NhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07d0RBU3JDLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQWMyQixtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxuICBWaWV3Q2hpbGQsXG4gIE9uRGVzdHJveSxcbiAgY29tcHV0ZWQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBlZmZlY3QsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFkY3J1bWJJdGVtLCBCcmVhZGNydW1iU2l6ZSB9IGZyb20gJy4vYnJlYWRjcnVtYi5tb2RlbCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcbmltcG9ydCB7IE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlIH0gZnJvbSAnLi4vb3ZlcmZsb3ctbWVudS9vdmVyZmxvdy1tZW51Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHNpemUgPSBpbnB1dDxCcmVhZGNydW1iU2l6ZT4oJ2xhcmdlJyk7XG4gIGl0ZW1zID0gaW5wdXQ8QnJlYWRjcnVtYkl0ZW1bXT4oW10pO1xuICBhcHBsaWNhdGlvblRoZW1lID0gaW5wdXQ8QXBwbGljYXRpb25UaGVtZT4oJ2xpZ2h0Jyk7XG4gIGluY2x1ZGVCYWNrQnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIG51bWJlck9mTG9hZGluZ0l0ZW1zID0gaW5wdXQ8bnVtYmVyPigzKTtcbiAgQE91dHB1dCgpIHNlbGVjdEl0ZW06IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBiYWNrQnV0dG9uQ2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgbG9hZGluZ0l0ZW1zID0gY29tcHV0ZWQoKCkgPT4gQXJyYXkodGhpcy5udW1iZXJPZkxvYWRpbmdJdGVtcygpKSk7XG4gIGlzT3ZlcmZsb3dpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICB2aXNpYmxlSXRlbXMgPSBzaWduYWw8QnJlYWRjcnVtYkl0ZW1bXT4oW10pO1xuICBvdmVyZmxvd0l0ZW1zID0gc2lnbmFsPEJyZWFkY3J1bWJJdGVtW10+KFtdKTtcbiAgb3ZlcmZsb3dCdXR0b25JdGVtcyA9IGNvbXB1dGVkPE92ZXJmbG93TWVudUJ1dHRvbnNUeXBlW10+KCgpID0+XG4gICAgdGhpcy5vdmVyZmxvd0l0ZW1zKCkubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxuICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgfSkpXG4gICk7XG4gIHNob3VsZFRydW5jYXRlTGFzdEl0ZW0gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBWaWV3Q2hpbGQoJ2JyZWFkY3J1bWJDb250YWluZXInKSBicmVhZGNydW1iQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIGl0ZW1zSW5PdmVyZmxvdyA9IDA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVhY3QgdG8gaXRlbXMgY2hhbmdlcyBhbmQgcmVjYWxjdWxhdGUgb3ZlcmZsb3dcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcygpO1xuICAgICAgdGhpcy5pdGVtc0luT3ZlcmZsb3cgPSAwO1xuICAgICAgaWYgKHRoaXMuYnJlYWRjcnVtYkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAvLyBXYWl0IGZvciBET00gdG8gcmVuZGVyIG5ldyBpdGVtcyBiZWZvcmUgY2FsY3VsYXRpbmcgb3ZlcmZsb3dcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNhbGN1bGF0ZUl0ZW1EaXN0cmlidXRpb24oKSwgMCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVJdGVtRGlzdHJpYnV0aW9uKCk7XG4gICAgdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUl0ZW1EaXN0cmlidXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmJyZWFkY3J1bWJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQgfHwgdGhpcy5pdGVtcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5yZXNldFRvQWxsVmlzaWJsZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmJyZWFkY3J1bWJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBoYXNIb3Jpem9udGFsT3ZlcmZsb3cgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgIGlmIChoYXNIb3Jpem9udGFsT3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuaGFuZGxlT3ZlcmZsb3coKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXRlbXNJbk92ZXJmbG93ID4gMCkge1xuICAgICAgLy8gQ2hlY2sgaWYgd2UgY2FuIGJyaW5nIGl0ZW1zIGJhY2sgZnJvbSBvdmVyZmxvd1xuICAgICAgdGhpcy50cnlSZWR1Y2VPdmVyZmxvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc2V0VG9BbGxWaXNpYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPdmVyZmxvdygpIHtcbiAgICB0aGlzLml0ZW1zSW5PdmVyZmxvdyA9IE1hdGgubWluKHRoaXMuaXRlbXNJbk92ZXJmbG93ICsgMSwgdGhpcy5pdGVtcygpLmxlbmd0aCAtIDEpO1xuXG4gICAgdGhpcy51cGRhdGVJdGVtQXJyYXlzKCk7XG4gICAgdGhpcy5pc092ZXJmbG93aW5nLnNldCh0cnVlKTtcblxuICAgIC8vIFdhaXQgZm9yIERPTSB0byByZW5kZXIgdGhlIHVwZGF0ZWQgdGVtcGxhdGUgYWZ0ZXIgaGlkaW5nIGl0ZW1zXG4gICAgLy8gV2UgbmVlZCB0byBtZWFzdXJlIGRpbWVuc2lvbnMgQUZURVIgdGhlIERPTSBoYXMgYmVlbiB1cGRhdGVkIHdpdGggdGhlIG5ldyB2aXNpYmxlIGl0ZW1zXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5icmVhZGNydW1iQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmJyZWFkY3J1bWJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc3RpbGxPdmVyZmxvd2luZyA9IGVsZW1lbnQuc2Nyb2xsV2lkdGggPiBlbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGlmIChzdGlsbE92ZXJmbG93aW5nICYmIHRoaXMuaXRlbXNJbk92ZXJmbG93IDwgdGhpcy5pdGVtcygpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZU92ZXJmbG93KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RpbGxPdmVyZmxvd2luZyAmJiB0aGlzLml0ZW1zSW5PdmVyZmxvdyA9PT0gdGhpcy5pdGVtcygpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnNob3VsZFRydW5jYXRlTGFzdEl0ZW0uc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHRyeVJlZHVjZU92ZXJmbG93KCkge1xuICAgIGNvbnN0IHRlc3RJdGVtc0luT3ZlcmZsb3cgPSB0aGlzLml0ZW1zSW5PdmVyZmxvdyAtIDE7XG5cbiAgICBpZiAodGVzdEl0ZW1zSW5PdmVyZmxvdyA+PSAwKSB7XG4gICAgICBjb25zdCB0ZXN0VmlzaWJsZUl0ZW1zID0gdGhpcy5pdGVtcygpLnNsaWNlKHRlc3RJdGVtc0luT3ZlcmZsb3cpO1xuICAgICAgY29uc3QgdGVzdE92ZXJmbG93SXRlbXMgPSB0ZXN0SXRlbXNJbk92ZXJmbG93ID4gMCA/IHRoaXMuaXRlbXMoKS5zbGljZSgwLCB0ZXN0SXRlbXNJbk92ZXJmbG93KSA6IFtdO1xuXG4gICAgICB0aGlzLnZpc2libGVJdGVtcy5zZXQodGVzdFZpc2libGVJdGVtcyk7XG4gICAgICB0aGlzLm92ZXJmbG93SXRlbXMuc2V0KHRlc3RPdmVyZmxvd0l0ZW1zKTtcblxuICAgICAgLy8gQWx3YXlzIHJlc2V0IHRydW5jYXRpb24gd2hlbiB0cnlpbmcgdG8gcmVkdWNlIG92ZXJmbG93XG4gICAgICB0aGlzLnNob3VsZFRydW5jYXRlTGFzdEl0ZW0uc2V0KGZhbHNlKTtcblxuICAgICAgLy8gV2FpdCBmb3IgRE9NIHRvIHJlbmRlciB3aXRoIHRlc3QgY29uZmlndXJhdGlvbiBiZWZvcmUgbWVhc3VyaW5nXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYnJlYWRjcnVtYkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmJyZWFkY3J1bWJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICBjb25zdCBoYXNPdmVyZmxvdyA9IGVsZW1lbnQuc2Nyb2xsV2lkdGggPiBlbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgaWYgKCFoYXNPdmVyZmxvdykge1xuICAgICAgICAgICAgLy8gSXQgZml0cyEgVXBkYXRlIHRoZSBjb3VudGVyXG4gICAgICAgICAgICB0aGlzLml0ZW1zSW5PdmVyZmxvdyA9IHRlc3RJdGVtc0luT3ZlcmZsb3c7XG4gICAgICAgICAgICB0aGlzLmlzT3ZlcmZsb3dpbmcuc2V0KHRoaXMuaXRlbXNJbk92ZXJmbG93ID4gMCk7XG5cbiAgICAgICAgICAgIC8vIFRyeSB0byByZWR1Y2UgbW9yZSBpZiB0aGVyZSBhcmUgc3RpbGwgaXRlbXMgaW4gb3ZlcmZsb3dcbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW1zSW5PdmVyZmxvdyA+IDApIHtcbiAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgbmV4dCByZWR1Y3Rpb24gYXR0ZW1wdCBhZnRlciBjdXJyZW50IHJlbmRlciBjeWNsZVxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudHJ5UmVkdWNlT3ZlcmZsb3coKSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIERvZXNuJ3QgZml0LCByZXZlcnQgdG8gcHJldmlvdXMgc3RhdGVcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbUFycmF5cygpO1xuXG4gICAgICAgICAgICAvLyBXYWl0IGZvciBET00gdG8gcmVuZGVyIHJldmVydGVkIHN0YXRlIGJlZm9yZSBjaGVja2luZyB0cnVuY2F0aW9uXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYnJlYWRjcnVtYkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmJyZWFkY3J1bWJDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGlsbE92ZXJmbG93aW5nID0gY29udGFpbmVyRWxlbWVudC5zY3JvbGxXaWR0aCA+IGNvbnRhaW5lckVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAoc3RpbGxPdmVyZmxvd2luZyAmJiB0aGlzLml0ZW1zSW5PdmVyZmxvdyA9PT0gdGhpcy5pdGVtcygpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkVHJ1bmNhdGVMYXN0SXRlbS5zZXQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0ZXN0SXRlbXNJbk92ZXJmbG93IDwgMCwgbWVhbnMgd2UncmUgdHJ5aW5nIHRvIHNob3cgYWxsIGl0ZW1zXG4gICAgICB0aGlzLnJlc2V0VG9BbGxWaXNpYmxlKCk7XG5cbiAgICAgIC8vIFdhaXQgZm9yIERPTSB0byByZW5kZXIgYWxsIGl0ZW1zIGJlZm9yZSBtZWFzdXJpbmcgb3ZlcmZsb3dcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5icmVhZGNydW1iQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYnJlYWRjcnVtYkNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IGhhc092ZXJmbG93ID0gZWxlbWVudC5zY3JvbGxXaWR0aCA+IGVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgICBpZiAoaGFzT3ZlcmZsb3cpIHtcbiAgICAgICAgICAgIC8vIFN0aWxsIG92ZXJmbG93cyB3aXRoIGFsbCBpdGVtcywgbmVlZCB0byBnbyBiYWNrIHRvIG92ZXJmbG93IHN0YXRlXG4gICAgICAgICAgICB0aGlzLml0ZW1zSW5PdmVyZmxvdyA9IDE7IC8vIFN0YXJ0IHdpdGggbWluaW1hbCBvdmVyZmxvd1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVPdmVyZmxvdygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJdGVtQXJyYXlzKCkge1xuICAgIGlmICh0aGlzLml0ZW1zSW5PdmVyZmxvdyA+IDApIHtcbiAgICAgIHRoaXMub3ZlcmZsb3dJdGVtcy5zZXQodGhpcy5pdGVtcygpLnNsaWNlKDAsIHRoaXMuaXRlbXNJbk92ZXJmbG93KSk7XG4gICAgICB0aGlzLnZpc2libGVJdGVtcy5zZXQodGhpcy5pdGVtcygpLnNsaWNlKHRoaXMuaXRlbXNJbk92ZXJmbG93KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRUb0FsbFZpc2libGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VG9BbGxWaXNpYmxlKCkge1xuICAgIHRoaXMudmlzaWJsZUl0ZW1zLnNldCh0aGlzLml0ZW1zKCkpO1xuICAgIHRoaXMub3ZlcmZsb3dJdGVtcy5zZXQoW10pO1xuICAgIHRoaXMuaXNPdmVyZmxvd2luZy5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvdWxkVHJ1bmNhdGVMYXN0SXRlbS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuaXRlbXNJbk92ZXJmbG93ID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBSZXNpemVPYnNlcnZlcigpIHtcbiAgICBpZiAoIXRoaXMuYnJlYWRjcnVtYkNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5jYWxjdWxhdGVJdGVtRGlzdHJpYnV0aW9uKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5icmVhZGNydW1iQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG59XG4iLCJAaWYgKCFpc0xvYWRpbmcoKSkge1xuICA8ZGl2IGNsYXNzPVwiYnJlYWRjcnVtYlwiIFthdHRyLnRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWUoKVwiICNicmVhZGNydW1iQ29udGFpbmVyIFtjbGFzc109XCInYnJlYWRjcnVtYi0nICsgc2l6ZSgpXCI+XG4gICAgQGlmIChpbmNsdWRlQmFja0J1dHRvbigpKSB7XG4gICAgICA8dWktYnV0dG9uXG4gICAgICAgIFt2YXJpYW50XT1cIidpY29uLWJ1dHRvbidcIlxuICAgICAgICBbdG9vbHRpcF09XCIoJ0NPTU1PTi5CQUNLJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpIVwiXG4gICAgICAgIFtpY29uTmFtZV09XCInQXJyb3ctY2hldnJvbi1sZWZ0LWZpbGxlZCdcIlxuICAgICAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJiYWNrQnV0dG9uQ2xpY2tFdmVudC5lbWl0KCRldmVudClcIlxuICAgICAgPjwvdWktYnV0dG9uPlxuICAgIH1cbiAgICBAaWYgKGlzT3ZlcmZsb3dpbmcoKSkge1xuICAgICAgPHVpLW92ZXJmbG93LW1lbnVcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZSgpXCJcbiAgICAgICAgW2NvbnRlbnRUZW1wbGF0ZVJlZl09XCJvdmVyZmxvd01lbnVcIlxuICAgICAgICBbYnV0dG9uc109XCJvdmVyZmxvd0J1dHRvbkl0ZW1zKClcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCIoJ0NPTU1PTi5PUFRJT05TJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpIVwiXG4gICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiYXBwbGljYXRpb25UaGVtZSgpXCJcbiAgICAgICAgW2lzRHluYW1pY01lbnVdPVwidHJ1ZVwiXG4gICAgICAgIChzZWxlY3RJdGVtKT1cInNlbGVjdEl0ZW0uZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJicmVhZGNydW1iLW92ZXJmbG93LW1lbnVcIlxuICAgICAgPjwvdWktb3ZlcmZsb3ctbWVudT5cbiAgICAgIDx1aS1pY29uIG5hbWU9XCJBcnJvdy1jaGV2cm9uLXJpZ2h0LWZpbGxlZFwiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWUoKVwiIGNvbG9yPVwiZ3JheVwiPjwvdWktaWNvbj5cbiAgICB9XG4gICAgQGZvciAoaXRlbSBvZiB2aXNpYmxlSXRlbXMoKTsgdHJhY2sgaXRlbS52YWx1ZSkge1xuICAgICAgQGlmICghJGxhc3QpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJyZWFkY3J1bWItaXRlbVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJpdGVtLmxhYmVsLmxlbmd0aCA+IDEwID8gaXRlbS5sYWJlbCA6ICcnXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cImFwcGxpY2F0aW9uVGhlbWUoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbS5lbWl0KGl0ZW0udmFsdWUpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZWxlY3RJdGVtLmVtaXQoaXRlbS52YWx1ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbS5sYWJlbCB8IHRydW5jYXRlOiAxMiA6ICcuLi4nIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHVpLWljb24gbmFtZT1cIkFycm93LWNoZXZyb24tcmlnaHQtZmlsbGVkXCIgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZSgpXCIgY29sb3I9XCJncmF5XCI+PC91aS1pY29uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzdHJvbmdcbiAgICAgICAgICBjbGFzcz1cImJyZWFkY3J1bWItaXRlbS1hY3RpdmVcIlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwic2hvdWxkVHJ1bmNhdGVMYXN0SXRlbSgpID8gaXRlbS5sYWJlbCA6ICcnXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cImFwcGxpY2F0aW9uVGhlbWUoKVwiXG4gICAgICAgICAgW2NsYXNzLmJyZWFkY3J1bWItaXRlbS1hY3RpdmUtdHJ1bmNhdGVkXT1cInNob3VsZFRydW5jYXRlTGFzdEl0ZW0oKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiJ3BhZ2UnXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbS5lbWl0KGl0ZW0udmFsdWUpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZWxlY3RJdGVtLmVtaXQoaXRlbS52YWx1ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICA8L3N0cm9uZz5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJicmVhZGNydW1iXCI+XG4gICAgQGZvciAoaSBvZiBsb2FkaW5nSXRlbXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8dWktc2tlbGV0b24gY291bnQ9XCIxXCIgW3RoZW1lXT1cInsgd2lkdGg6ICcxNjBweCcsIG1hcmdpbjogJzEwcHggMCAwJyB9XCI+PC91aS1za2VsZXRvbj5cbiAgICAgIEBpZiAoJGluZGV4ICE9PSBudW1iZXJPZkxvYWRpbmdJdGVtcygpIC0gMSkge1xuICAgICAgICA8dWktaWNvbiBuYW1lPVwiQXJyb3ctY2hldnJvbi1yaWdodC1maWxsZWRcIiBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lKClcIiBjb2xvcj1cImdyYXlcIj48L3VpLWljb24+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbn1cbjxuZy10ZW1wbGF0ZSAjb3ZlcmZsb3dNZW51PlxuICA8ZGl2IGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIGJyZWFkY3J1bWItb3ZlcmZsb3dcIiBbY2xhc3NdPVwiJ2JyZWFkY3J1bWItJyArIHNpemUoKVwiPi4uLjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
4
|
+
import { BreadcrumbComponent } from './breadcrumb.component';
|
|
5
|
+
import { IconComponentModule } from '../icon/icon.component.module';
|
|
6
|
+
import { OverflowMenuComponentModule } from '../overflow-menu/overflow-menu.component.module';
|
|
7
|
+
import { ButtonComponentModule } from '../button/button.component.module';
|
|
8
|
+
import { UiTranslatePipe } from '../../pipes/ui-translate.pipe';
|
|
9
|
+
import { SkeletonComponent } from '../skeleton/skeleton.component';
|
|
10
|
+
import { TruncatePipe } from '../../pipes/truncate.pipe';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class BreadcrumbComponentModule {
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbComponentModule, declarations: [BreadcrumbComponent, TruncatePipe], imports: [CommonModule,
|
|
15
|
+
IconComponentModule,
|
|
16
|
+
MatTooltipModule,
|
|
17
|
+
OverflowMenuComponentModule,
|
|
18
|
+
ButtonComponentModule,
|
|
19
|
+
SkeletonComponent,
|
|
20
|
+
UiTranslatePipe], exports: [BreadcrumbComponent] }); }
|
|
21
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbComponentModule, providers: [TruncatePipe], imports: [CommonModule,
|
|
22
|
+
IconComponentModule,
|
|
23
|
+
MatTooltipModule,
|
|
24
|
+
OverflowMenuComponentModule,
|
|
25
|
+
ButtonComponentModule,
|
|
26
|
+
SkeletonComponent] }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BreadcrumbComponentModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: [BreadcrumbComponent, TruncatePipe],
|
|
32
|
+
imports: [
|
|
33
|
+
CommonModule,
|
|
34
|
+
IconComponentModule,
|
|
35
|
+
MatTooltipModule,
|
|
36
|
+
OverflowMenuComponentModule,
|
|
37
|
+
ButtonComponentModule,
|
|
38
|
+
SkeletonComponent,
|
|
39
|
+
UiTranslatePipe,
|
|
40
|
+
],
|
|
41
|
+
providers: [TruncatePipe],
|
|
42
|
+
exports: [BreadcrumbComponent],
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBZ0J6RCxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFickIsbUJBQW1CLEVBQUUsWUFBWSxhQUU5QyxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQiwyQkFBMkI7WUFDM0IscUJBQXFCO1lBQ3JCLGlCQUFpQjtZQUNqQixlQUFlLGFBR1AsbUJBQW1CO2dIQUVsQix5QkFBeUIsYUFIekIsQ0FBQyxZQUFZLENBQUMsWUFSdkIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsMkJBQTJCO1lBQzNCLHFCQUFxQjtZQUNyQixpQkFBaUI7OzRGQU1SLHlCQUF5QjtrQkFkckMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUM7b0JBQ2pELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixlQUFlO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IE92ZXJmbG93TWVudUNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL292ZXJmbG93LW1lbnUvb3ZlcmZsb3ctbWVudS5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91aS10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcnVuY2F0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cnVuY2F0ZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQnJlYWRjcnVtYkNvbXBvbmVudCwgVHJ1bmNhdGVQaXBlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50TW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgT3ZlcmZsb3dNZW51Q29tcG9uZW50TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBTa2VsZXRvbkNvbXBvbmVudCxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1RydW5jYXRlUGlwZV0sXG4gIGV4cG9ydHM6IFtCcmVhZGNydW1iQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudE1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEJyZWFkY3J1bWJTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcblxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG4iXX0=
|