@testgorilla/tgo-ui 12.0.4 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +14 -4
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +2 -0
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +2 -0
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/mcp/catalog.json +1 -1
- package/package.json +1 -1
- package/types/testgorilla-tgo-ui-components-button.d.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-ai-feedback.mjs","names":[],"sources":["../../../components/ai-feedback/ai-feedback.model.ts","../../../components/ai-feedback/ai-feedback.component.ts","../../../components/ai-feedback/ai-feedback.component.html","../../../components/ai-feedback/ai-feedback.module.ts"],"sourcesContent":["export enum AiFeedbackPanelType {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n}\n\nexport type AiFeedbackVariant = 'default' | 'panel' | 'input-only';\n\nexport interface AiFeedbackOption {\n id: string;\n label: string;\n}\n\nexport interface AiFeedbackConfig {\n title: string;\n options?: AiFeedbackOption[]; // \"Other\" option will be automatically appended if options are provided\n otherPlaceholder?: string;\n}\n\nexport interface AiFeedbackData {\n isPositiveFeedback: boolean | null;\n selectedOptions?: string[];\n otherText?: string;\n}\n","import { trigger, transition, style, animate } from '@angular/animations';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n model,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Subject, debounceTime, distinctUntilChanged } from 'rxjs';\n\nimport { AiCaveatComponent } from '@testgorilla/tgo-ui/components/ai-caveat';\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport { CardComponent } from '@testgorilla/tgo-ui/components/card';\nimport {\n ApplicationTheme,\n IS_MOBILE_TOKEN,\n UiTranslatePipe,\n MemoizeFuncPipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TagComponent } from '@testgorilla/tgo-ui/components/tag';\n\nimport { AiFeedbackPanelType, AiFeedbackConfig, AiFeedbackData, AiFeedbackVariant } from './ai-feedback.model';\n\n@Component({\n selector: 'ui-ai-feedback',\n templateUrl: './ai-feedback.component.html',\n styleUrl: './ai-feedback.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n /* eslint-disable @typescript-eslint/no-deprecated -- the @angular/animations trigger/state/style/animate/transition DSL is deprecated in 20.2 in favor of template-level animate.enter/animate.leave; migrating every Material/component animation is out of scope for this lint pass */\n animations: [\n trigger('slideDown', [\n transition(':enter', [\n style({ height: 0, opacity: 0, overflow: 'hidden' }),\n animate('200ms ease-out', style({ height: '*', opacity: 1 })),\n ]),\n transition(':leave', [animate('200ms ease-in', style({ height: 0, opacity: 0, overflow: 'hidden' }))]),\n ]),\n ],\n imports: [\n AiCaveatComponent,\n IconComponentModule,\n ButtonComponent,\n CardComponent,\n TagComponent,\n FieldComponentModule,\n FormsModule,\n ReactiveFormsModule,\n AsyncPipe,\n UiTranslatePipe,\n MemoizeFuncPipe,\n ],\n})\nexport class AiFeedbackComponent implements OnInit {\n positiveConfig = input<AiFeedbackConfig>();\n negativeConfig = input<AiFeedbackConfig>();\n skipPanelForPositive = input<boolean>(false);\n applicationTheme = input<ApplicationTheme>('light');\n variant = input<AiFeedbackVariant>('default');\n isRatingDisabled = input<boolean>(false);\n enableAutoEmit = input<boolean>(false);\n isPositiveFeedback = model<boolean | null>(null);\n\n selectionChange = output<boolean | null>();\n feedbackSubmitted = output<AiFeedbackData>();\n feedbackCancelled = output<AiFeedbackData>();\n feedbackChanged = output<AiFeedbackData>();\n\n protected readonly isMobile$ = inject(IS_MOBILE_TOKEN);\n private readonly destroyRef = inject(DestroyRef);\n\n isMobile = toSignal(this.isMobile$, { initialValue: false });\n\n showPanel = signal<boolean>(false);\n panelType = signal<AiFeedbackPanelType | null>(null);\n selectedOptions = signal<string[]>([]);\n otherTextControl = new FormControl<string>('');\n otherTextValue = signal<string>('');\n\n private readonly selectedOptionsSubject = new Subject<string[]>();\n private readonly otherTextSubject = new Subject<string>();\n\n readonly translationContext = 'AI_FEEDBACK.';\n readonly AiFeedbackPanelType = AiFeedbackPanelType;\n private readonly defaultPositiveTitle = `${this.translationContext}POSITIVE_TITLE`;\n private readonly defaultNegativeTitle = `${this.translationContext}NEGATIVE_TITLE`;\n private readonly OTHER_OPTION_ID = 'other';\n\n shouldAutoEmit = computed(() => this.enableAutoEmit() && this.variant() !== 'default');\n\n ngOnInit(): void {\n this.otherTextControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.otherTextValue.set(value ?? '');\n\n if (this.shouldAutoEmit()) {\n this.otherTextSubject.next(value ?? '');\n }\n });\n\n this.selectedOptionsSubject\n .pipe(\n debounceTime(500),\n distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.feedbackChanged.emit({\n isPositiveFeedback: this.isPositiveFeedback(),\n selectedOptions: this.selectedOptions(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n });\n });\n\n this.otherTextSubject\n .pipe(debounceTime(500), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.feedbackChanged.emit({\n isPositiveFeedback: this.isPositiveFeedback(),\n selectedOptions: this.selectedOptions(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n });\n });\n }\n\n getDefaultPanelTitleTranslation(panelType: AiFeedbackPanelType | null): string {\n return panelType === AiFeedbackPanelType.POSITIVE ? this.defaultPositiveTitle : this.defaultNegativeTitle;\n }\n\n activeConfig = computed(() => {\n const type = this.panelType();\n\n if (type === AiFeedbackPanelType.POSITIVE) {\n const config = this.positiveConfig();\n if (this.variant() === 'panel' && config?.options?.length) {\n return this.ensureOtherOption(config);\n }\n return config;\n }\n\n if (type === AiFeedbackPanelType.NEGATIVE) {\n const config = this.negativeConfig();\n if (this.variant() === 'panel' && config?.options?.length) {\n return this.ensureOtherOption(config);\n }\n return config;\n }\n\n return null;\n });\n\n arrowPosition = computed(() => (this.panelType() === AiFeedbackPanelType.POSITIVE ? 'left' : 'right'));\n\n isSubmitDisabled = computed(() => {\n switch (this.variant()) {\n case 'input-only':\n return this.otherTextValue().trim().length === 0;\n case 'panel':\n return this.selectedOptions().length === 0;\n case 'default':\n default:\n return false;\n }\n });\n\n private ensureOtherOption(config: AiFeedbackConfig): AiFeedbackConfig {\n if (this.variant() === 'input-only') {\n return config;\n }\n const hasOther = config.options?.some(opt => opt.id === this.OTHER_OPTION_ID);\n return hasOther\n ? config\n : {\n ...config,\n options: [...(config.options ?? []), { id: this.OTHER_OPTION_ID, label: 'Other' }],\n };\n }\n\n private buildFeedbackData(): AiFeedbackData {\n if (this.variant() === 'input-only') {\n return {\n isPositiveFeedback: this.isPositiveFeedback(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n };\n }\n return {\n isPositiveFeedback: this.isPositiveFeedback(),\n selectedOptions: this.selectedOptions(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n };\n }\n\n private resetPanelState(): void {\n this.showPanel.set(false);\n this.panelType.set(null);\n this.selectedOptions.set([]);\n this.otherTextControl.setValue('');\n }\n\n private shouldShowPanelForVariant(): boolean {\n return this.variant() === 'panel' || this.variant() === 'input-only';\n }\n\n onSelectionChange(isPositive: boolean): void {\n if (this.isRatingDisabled()) {\n return;\n }\n\n const newValue = this.isPositiveFeedback() === isPositive ? null : isPositive;\n this.isPositiveFeedback.set(newValue);\n\n this.selectionChange.emit(newValue);\n\n if (newValue !== null) {\n const shouldSkipPanel = isPositive && this.skipPanelForPositive();\n\n if (this.shouldShowPanelForVariant() && !shouldSkipPanel) {\n this.panelType.set(isPositive ? AiFeedbackPanelType.POSITIVE : AiFeedbackPanelType.NEGATIVE);\n this.showPanel.set(true);\n this.selectedOptions.set([]);\n this.otherTextControl.setValue('');\n }\n } else {\n this.closePanel();\n }\n }\n\n toggleOption(optionId: string): void {\n const current = this.selectedOptions();\n const updated = current.includes(optionId) ? current.filter(id => id !== optionId) : [...current, optionId];\n this.selectedOptions.set(updated);\n\n if (this.shouldAutoEmit()) {\n this.selectedOptionsSubject.next(updated);\n }\n }\n\n isOptionSelected(optionId: string): boolean {\n return this.selectedOptions().includes(optionId);\n }\n\n showOtherField(): boolean {\n return this.variant() === 'input-only' || this.selectedOptions().includes(this.OTHER_OPTION_ID);\n }\n\n onSubmit(): void {\n this.feedbackSubmitted.emit(this.buildFeedbackData());\n this.showPanel.set(false);\n }\n\n closePanel(): void {\n this.feedbackCancelled.emit(this.buildFeedbackData());\n this.resetPanelState();\n }\n}\n","<div class=\"ai-feedback-wrapper\">\n <div class=\"ai-feedback\" [attr.aria-label]=\"translationContext + 'TITLE' | uiTranslate\" role=\"group\">\n <ui-ai-caveat [applicationTheme]=\"applicationTheme()\"></ui-ai-caveat>\n\n <div class=\"ai-feedback-buttons-section\">\n @if (isRatingDisabled()) {\n <div class=\"ai-feedback-saved\">\n <span class=\"ai-feedback-saved-text\">{{ translationContext + 'RATING_SAVED' | uiTranslate | async }}</span>\n <ui-icon\n [name]=\"isPositiveFeedback() ? 'Thumb-up-filled' : 'Thumb-down-filled'\"\n [filled]=\"true\"\n [applicationTheme]=\"applicationTheme()\"\n [color]=\"'gray'\"\n />\n </div>\n } @else {\n <span class=\"ai-feedback-label\">{{ translationContext + 'TITLE' | uiTranslate | async }}</span>\n\n <div\n class=\"ai-feedback-buttons\"\n role=\"group\"\n [attr.aria-expanded]=\"showPanel()\"\n [attr.aria-controls]=\"showPanel() ? 'feedback-panel' : null\"\n >\n <ui-button\n class=\"ai-feedback-button-positive\"\n data-testid=\"ai-feedback-button-positive\"\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-up-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"('COMMON.YES' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.YES' | uiTranslate | async)!\"\n [iconFilled]=\"isPositiveFeedback() === true\"\n (buttonClickEvent)=\"onSelectionChange(true)\"\n variant=\"icon-button\"\n role=\"button\"\n >\n </ui-button>\n\n <ui-button\n data-testid=\"ai-feedback-button-negative\"\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-down-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"('COMMON.NO' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.NO' | uiTranslate | async)!\"\n [iconFilled]=\"isPositiveFeedback() === false\"\n (buttonClickEvent)=\"onSelectionChange(false)\"\n variant=\"icon-button\"\n role=\"button\"\n >\n </ui-button>\n </div>\n }\n </div>\n </div>\n\n @if (showPanel()) {\n @let panelTitle =\n activeConfig()?.title ??\n (panelType() | memoizeFunc: getDefaultPanelTitleTranslation : this | uiTranslate | async);\n\n <ui-card\n id=\"feedback-panel\"\n class=\"feedback-panel\"\n [class.arrow-left]=\"arrowPosition() === 'left'\"\n [class.arrow-right]=\"arrowPosition() === 'right'\"\n [applicationTheme]=\"applicationTheme()\"\n [size]=\"isMobile() ? 'small' : 'medium'\"\n role=\"region\"\n [attr.aria-label]=\"panelTitle\"\n [@slideDown]\n >\n <div class=\"feedback-panel-arrow\"></div>\n\n <div class=\"feedback-panel-content\">\n <div class=\"feedback-panel-title-container\">\n <h4 class=\"feedback-panel-title\">\n {{ panelTitle }}\n </h4>\n\n <ui-button\n [justIcon]=\"true\"\n [iconName]=\"'Close-filled'\"\n [size]=\"'small'\"\n [ariaLabel]=\"'Close feedback panel'\"\n variant=\"icon-button\"\n (buttonClickEvent)=\"closePanel()\"\n >\n </ui-button>\n </div>\n\n @if (variant() === 'panel' && activeConfig()?.options && activeConfig()!.options!.length > 0) {\n <div class=\"feedback-options\">\n @for (option of activeConfig()?.options; track option.id) {\n <ui-tag\n [label]=\"option.label\"\n [isSelected]=\"isOptionSelected(option.id)\"\n [showIconWhenSelected]=\"true\"\n [applicationTheme]=\"applicationTheme()\"\n (press)=\"toggleOption(option.id)\"\n >\n </ui-tag>\n }\n </div>\n }\n\n @if (showOtherField()) {\n <ui-field\n class=\"feedback-field\"\n type=\"text\"\n [label]=\"\n activeConfig()?.otherPlaceholder ?? (translationContext + 'OTHER_PLACEHOLDER' | uiTranslate | async) ?? ''\n \"\n [formControl]=\"otherTextControl\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [showBottomContent]=\"false\"\n >\n </ui-field>\n }\n\n <div class=\"feedback-submit-container\">\n <ui-button\n [label]=\"(translationContext + 'SUBMIT' | uiTranslate | async) || ''\"\n [disabled]=\"isSubmitDisabled()\"\n [size]=\"'small'\"\n [fullWidth]=\"isMobile()\"\n (buttonClickEvent)=\"onSubmit()\"\n variant=\"primary\"\n >\n </ui-button>\n </div>\n </div>\n </ui-card>\n }\n</div>\n","import { CommonModule, AsyncPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { AiCaveatComponentModule } from '@testgorilla/tgo-ui/components/ai-caveat';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { CardComponentModule } from '@testgorilla/tgo-ui/components/card';\nimport { UiTranslatePipe, MemoizeFuncPipe } from '@testgorilla/tgo-ui/components/core';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TagComponentModule } from '@testgorilla/tgo-ui/components/tag';\n\nimport { AiFeedbackComponent } from './ai-feedback.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AsyncPipe,\n ReactiveFormsModule,\n ButtonComponentModule,\n CardComponentModule,\n TagComponentModule,\n FieldComponentModule,\n AiCaveatComponentModule,\n IconComponentModule,\n UiTranslatePipe,\n MemoizeFuncPipe,\n AiFeedbackComponent,\n ],\n exports: [AiFeedbackComponent],\n})\nexport class AiFeedbackModule {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-ai-feedback.mjs","names":[],"sources":["../../../components/ai-feedback/ai-feedback.model.ts","../../../components/ai-feedback/ai-feedback.component.ts","../../../components/ai-feedback/ai-feedback.component.html","../../../components/ai-feedback/ai-feedback.module.ts"],"sourcesContent":["export enum AiFeedbackPanelType {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n}\n\nexport type AiFeedbackVariant = 'default' | 'panel' | 'input-only';\n\nexport interface AiFeedbackOption {\n id: string;\n label: string;\n}\n\nexport interface AiFeedbackConfig {\n title: string;\n options?: AiFeedbackOption[]; // \"Other\" option will be automatically appended if options are provided\n otherPlaceholder?: string;\n}\n\nexport interface AiFeedbackData {\n isPositiveFeedback: boolean | null;\n selectedOptions?: string[];\n otherText?: string;\n}\n","import { trigger, transition, style, animate } from '@angular/animations';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n model,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Subject, debounceTime, distinctUntilChanged } from 'rxjs';\n\nimport { AiCaveatComponent } from '@testgorilla/tgo-ui/components/ai-caveat';\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport { CardComponent } from '@testgorilla/tgo-ui/components/card';\nimport {\n ApplicationTheme,\n IS_MOBILE_TOKEN,\n UiTranslatePipe,\n MemoizeFuncPipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TagComponent } from '@testgorilla/tgo-ui/components/tag';\n\nimport { AiFeedbackPanelType, AiFeedbackConfig, AiFeedbackData, AiFeedbackVariant } from './ai-feedback.model';\n\n@Component({\n selector: 'ui-ai-feedback',\n templateUrl: './ai-feedback.component.html',\n styleUrl: './ai-feedback.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n /* eslint-disable @typescript-eslint/no-deprecated -- the @angular/animations trigger/state/style/animate/transition DSL is deprecated in 20.2 in favor of template-level animate.enter/animate.leave; migrating every Material/component animation is out of scope for this lint pass */\n animations: [\n trigger('slideDown', [\n transition(':enter', [\n style({ height: 0, opacity: 0, overflow: 'hidden' }),\n animate('200ms ease-out', style({ height: '*', opacity: 1 })),\n ]),\n transition(':leave', [animate('200ms ease-in', style({ height: 0, opacity: 0, overflow: 'hidden' }))]),\n ]),\n ],\n imports: [\n AiCaveatComponent,\n IconComponentModule,\n ButtonComponent,\n CardComponent,\n TagComponent,\n FieldComponentModule,\n FormsModule,\n ReactiveFormsModule,\n AsyncPipe,\n UiTranslatePipe,\n MemoizeFuncPipe,\n ],\n})\nexport class AiFeedbackComponent implements OnInit {\n positiveConfig = input<AiFeedbackConfig>();\n negativeConfig = input<AiFeedbackConfig>();\n skipPanelForPositive = input<boolean>(false);\n applicationTheme = input<ApplicationTheme>('light');\n variant = input<AiFeedbackVariant>('default');\n isRatingDisabled = input<boolean>(false);\n enableAutoEmit = input<boolean>(false);\n isPositiveFeedback = model<boolean | null>(null);\n\n selectionChange = output<boolean | null>();\n feedbackSubmitted = output<AiFeedbackData>();\n feedbackCancelled = output<AiFeedbackData>();\n feedbackChanged = output<AiFeedbackData>();\n\n protected readonly isMobile$ = inject(IS_MOBILE_TOKEN);\n private readonly destroyRef = inject(DestroyRef);\n\n isMobile = toSignal(this.isMobile$, { initialValue: false });\n\n showPanel = signal<boolean>(false);\n panelType = signal<AiFeedbackPanelType | null>(null);\n selectedOptions = signal<string[]>([]);\n otherTextControl = new FormControl<string>('');\n otherTextValue = signal<string>('');\n\n private readonly selectedOptionsSubject = new Subject<string[]>();\n private readonly otherTextSubject = new Subject<string>();\n\n readonly translationContext = 'AI_FEEDBACK.';\n readonly AiFeedbackPanelType = AiFeedbackPanelType;\n private readonly defaultPositiveTitle = `${this.translationContext}POSITIVE_TITLE`;\n private readonly defaultNegativeTitle = `${this.translationContext}NEGATIVE_TITLE`;\n private readonly OTHER_OPTION_ID = 'other';\n\n shouldAutoEmit = computed(() => this.enableAutoEmit() && this.variant() !== 'default');\n\n ngOnInit(): void {\n this.otherTextControl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.otherTextValue.set(value ?? '');\n\n if (this.shouldAutoEmit()) {\n this.otherTextSubject.next(value ?? '');\n }\n });\n\n this.selectedOptionsSubject\n .pipe(\n debounceTime(500),\n distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.feedbackChanged.emit({\n isPositiveFeedback: this.isPositiveFeedback(),\n selectedOptions: this.selectedOptions(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n });\n });\n\n this.otherTextSubject\n .pipe(debounceTime(500), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.feedbackChanged.emit({\n isPositiveFeedback: this.isPositiveFeedback(),\n selectedOptions: this.selectedOptions(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n });\n });\n }\n\n getDefaultPanelTitleTranslation(panelType: AiFeedbackPanelType | null): string {\n return panelType === AiFeedbackPanelType.POSITIVE ? this.defaultPositiveTitle : this.defaultNegativeTitle;\n }\n\n activeConfig = computed(() => {\n const type = this.panelType();\n\n if (type === AiFeedbackPanelType.POSITIVE) {\n const config = this.positiveConfig();\n if (this.variant() === 'panel' && config?.options?.length) {\n return this.ensureOtherOption(config);\n }\n return config;\n }\n\n if (type === AiFeedbackPanelType.NEGATIVE) {\n const config = this.negativeConfig();\n if (this.variant() === 'panel' && config?.options?.length) {\n return this.ensureOtherOption(config);\n }\n return config;\n }\n\n return null;\n });\n\n arrowPosition = computed(() => (this.panelType() === AiFeedbackPanelType.POSITIVE ? 'left' : 'right'));\n\n isSubmitDisabled = computed(() => {\n switch (this.variant()) {\n case 'input-only':\n return this.otherTextValue().trim().length === 0;\n case 'panel':\n return this.selectedOptions().length === 0;\n case 'default':\n default:\n return false;\n }\n });\n\n private ensureOtherOption(config: AiFeedbackConfig): AiFeedbackConfig {\n if (this.variant() === 'input-only') {\n return config;\n }\n const hasOther = config.options?.some(opt => opt.id === this.OTHER_OPTION_ID);\n return hasOther\n ? config\n : {\n ...config,\n options: [...(config.options ?? []), { id: this.OTHER_OPTION_ID, label: 'Other' }],\n };\n }\n\n private buildFeedbackData(): AiFeedbackData {\n if (this.variant() === 'input-only') {\n return {\n isPositiveFeedback: this.isPositiveFeedback(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n };\n }\n return {\n isPositiveFeedback: this.isPositiveFeedback(),\n selectedOptions: this.selectedOptions(),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty text is reported as undefined, not an empty string\n otherText: this.otherTextControl.value || undefined,\n };\n }\n\n private resetPanelState(): void {\n this.showPanel.set(false);\n this.panelType.set(null);\n this.selectedOptions.set([]);\n this.otherTextControl.setValue('');\n }\n\n private shouldShowPanelForVariant(): boolean {\n return this.variant() === 'panel' || this.variant() === 'input-only';\n }\n\n onSelectionChange(isPositive: boolean): void {\n if (this.isRatingDisabled()) {\n return;\n }\n\n const newValue = this.isPositiveFeedback() === isPositive ? null : isPositive;\n this.isPositiveFeedback.set(newValue);\n\n this.selectionChange.emit(newValue);\n\n if (newValue !== null) {\n const shouldSkipPanel = isPositive && this.skipPanelForPositive();\n\n if (this.shouldShowPanelForVariant() && !shouldSkipPanel) {\n this.panelType.set(isPositive ? AiFeedbackPanelType.POSITIVE : AiFeedbackPanelType.NEGATIVE);\n this.showPanel.set(true);\n this.selectedOptions.set([]);\n this.otherTextControl.setValue('');\n }\n } else {\n this.closePanel();\n }\n }\n\n toggleOption(optionId: string): void {\n const current = this.selectedOptions();\n const updated = current.includes(optionId) ? current.filter(id => id !== optionId) : [...current, optionId];\n this.selectedOptions.set(updated);\n\n if (this.shouldAutoEmit()) {\n this.selectedOptionsSubject.next(updated);\n }\n }\n\n isOptionSelected(optionId: string): boolean {\n return this.selectedOptions().includes(optionId);\n }\n\n showOtherField(): boolean {\n return this.variant() === 'input-only' || this.selectedOptions().includes(this.OTHER_OPTION_ID);\n }\n\n onSubmit(): void {\n this.feedbackSubmitted.emit(this.buildFeedbackData());\n this.showPanel.set(false);\n }\n\n closePanel(): void {\n this.feedbackCancelled.emit(this.buildFeedbackData());\n this.resetPanelState();\n }\n}\n","<div class=\"ai-feedback-wrapper\">\n <div class=\"ai-feedback\" [attr.aria-label]=\"translationContext + 'TITLE' | uiTranslate\" role=\"group\">\n <ui-ai-caveat [applicationTheme]=\"applicationTheme()\"></ui-ai-caveat>\n\n <div class=\"ai-feedback-buttons-section\">\n @if (isRatingDisabled()) {\n <div class=\"ai-feedback-saved\">\n <span class=\"ai-feedback-saved-text\">{{ translationContext + 'RATING_SAVED' | uiTranslate | async }}</span>\n <ui-icon\n [name]=\"isPositiveFeedback() ? 'Thumb-up-filled' : 'Thumb-down-filled'\"\n [filled]=\"true\"\n [applicationTheme]=\"applicationTheme()\"\n [color]=\"'gray'\"\n />\n </div>\n } @else {\n <span class=\"ai-feedback-label\">{{ translationContext + 'TITLE' | uiTranslate | async }}</span>\n\n <div\n class=\"ai-feedback-buttons\"\n role=\"group\"\n [attr.aria-expanded]=\"showPanel()\"\n [attr.aria-controls]=\"showPanel() ? 'feedback-panel' : null\"\n >\n <ui-button\n class=\"ai-feedback-button-positive\"\n data-testid=\"ai-feedback-button-positive\"\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-up-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"('COMMON.YES' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.YES' | uiTranslate | async)!\"\n [iconFilled]=\"isPositiveFeedback() === true\"\n (buttonClickEvent)=\"onSelectionChange(true)\"\n variant=\"icon-button\"\n role=\"button\"\n >\n </ui-button>\n\n <ui-button\n data-testid=\"ai-feedback-button-negative\"\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-down-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"('COMMON.NO' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.NO' | uiTranslate | async)!\"\n [iconFilled]=\"isPositiveFeedback() === false\"\n (buttonClickEvent)=\"onSelectionChange(false)\"\n variant=\"icon-button\"\n role=\"button\"\n >\n </ui-button>\n </div>\n }\n </div>\n </div>\n\n @if (showPanel()) {\n @let panelTitle =\n activeConfig()?.title ??\n (panelType() | memoizeFunc: getDefaultPanelTitleTranslation : this | uiTranslate | async);\n\n <ui-card\n id=\"feedback-panel\"\n class=\"feedback-panel\"\n [class.arrow-left]=\"arrowPosition() === 'left'\"\n [class.arrow-right]=\"arrowPosition() === 'right'\"\n [applicationTheme]=\"applicationTheme()\"\n [size]=\"isMobile() ? 'small' : 'medium'\"\n role=\"region\"\n [attr.aria-label]=\"panelTitle\"\n [@slideDown]\n >\n <div class=\"feedback-panel-arrow\"></div>\n\n <div class=\"feedback-panel-content\">\n <div class=\"feedback-panel-title-container\">\n <h4 class=\"feedback-panel-title\">\n {{ panelTitle }}\n </h4>\n\n <ui-button\n [justIcon]=\"true\"\n [iconName]=\"'Close-filled'\"\n [size]=\"'small'\"\n [ariaLabel]=\"'Close feedback panel'\"\n variant=\"icon-button\"\n (buttonClickEvent)=\"closePanel()\"\n >\n </ui-button>\n </div>\n\n @if (variant() === 'panel' && activeConfig()?.options && activeConfig()!.options!.length > 0) {\n <div class=\"feedback-options\">\n @for (option of activeConfig()?.options; track option.id) {\n <ui-tag\n [label]=\"option.label\"\n [isSelected]=\"isOptionSelected(option.id)\"\n [showIconWhenSelected]=\"true\"\n [applicationTheme]=\"applicationTheme()\"\n (press)=\"toggleOption(option.id)\"\n >\n </ui-tag>\n }\n </div>\n }\n\n @if (showOtherField()) {\n <ui-field\n class=\"feedback-field\"\n type=\"text\"\n [label]=\"\n activeConfig()?.otherPlaceholder ?? (translationContext + 'OTHER_PLACEHOLDER' | uiTranslate | async) ?? ''\n \"\n [formControl]=\"otherTextControl\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [showBottomContent]=\"false\"\n >\n </ui-field>\n }\n\n <div class=\"feedback-submit-container\">\n <ui-button\n [label]=\"(translationContext + 'SUBMIT' | uiTranslate | async) || ''\"\n [disabled]=\"isSubmitDisabled()\"\n [size]=\"'small'\"\n [fullWidth]=\"isMobile()\"\n (buttonClickEvent)=\"onSubmit()\"\n variant=\"primary\"\n >\n </ui-button>\n </div>\n </div>\n </ui-card>\n }\n</div>\n","import { CommonModule, AsyncPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { AiCaveatComponentModule } from '@testgorilla/tgo-ui/components/ai-caveat';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { CardComponentModule } from '@testgorilla/tgo-ui/components/card';\nimport { UiTranslatePipe, MemoizeFuncPipe } from '@testgorilla/tgo-ui/components/core';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TagComponentModule } from '@testgorilla/tgo-ui/components/tag';\n\nimport { AiFeedbackComponent } from './ai-feedback.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AsyncPipe,\n ReactiveFormsModule,\n ButtonComponentModule,\n CardComponentModule,\n TagComponentModule,\n FieldComponentModule,\n AiCaveatComponentModule,\n IconComponentModule,\n UiTranslatePipe,\n MemoizeFuncPipe,\n AiFeedbackComponent,\n ],\n exports: [AiFeedbackComponent],\n})\nexport class AiFeedbackModule {}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-alert-banner.mjs","names":[],"sources":["../../../components/alert-banner/alert-banner.component.ts","../../../components/alert-banner/alert-banner.component.html","../../../components/alert-banner/alert-banner.component.module.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\nimport { NgClass, AsyncPipe, UpperCasePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport {\n ApplicationTheme,\n Color,\n AlertBarType,\n AlertVariant,\n alertBarsUtil,\n UiTranslatePipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { IconName, IconComponentModule, IconSize } from '@testgorilla/tgo-ui/components/icon';\nimport { SpinnerComponent } from '@testgorilla/tgo-ui/components/spinner';\n\nimport { AlertBannerAction, AlertBannerSize, LinkTargetType } from './alert-banner.model';\n\n@Component({\n selector: 'ui-alert-banner',\n templateUrl: './alert-banner.component.html',\n styleUrls: ['./alert-banner.component.scss'],\n /* eslint-disable @typescript-eslint/no-deprecated -- the @angular/animations trigger/state/style/animate/transition DSL is deprecated in 20.2 in favor of template-level animate.enter/animate.leave; migrating every Material/component animation is out of scope for this lint pass */\n animations: [\n trigger('openClose', [\n transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),\n transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),\n ]),\n ],\n /* eslint-enable @typescript-eslint/no-deprecated */\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, IconComponentModule, SpinnerComponent, ButtonComponent, AsyncPipe, UpperCasePipe, UiTranslatePipe],\n})\nexport class AlertBannerComponent implements OnInit, OnChanges {\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n /**\n * Alert Banner type\n *\n * @type {AlertBarType}\n * @default 'success'\n * @memberof AlertBannerComponent\n */\n @Input() alertType: AlertBarType = 'success';\n\n /**\n * Alert Banner variant\n *\n * @type {AlertVariant}\n * @default 'banner'\n * @memberof AlertBannerComponent\n */\n @Input() alertVariant: AlertVariant = 'banner';\n\n /**\n * Alert banner message\n *\n * @memberof AlertBannerComponent\n */\n @Input() message = '';\n\n /**\n * Include dismmiss button\n *\n * @default true\n * @memberof AlertBannerComponent\n */\n @Input() includeDismissButton = true;\n\n /**\n * Include shadow or not\n *\n * @default false\n * @memberof AlertBannerComponent\n */\n @Input() shadow = false;\n\n /**\n * Link text that will appended at the end of message\n *\n * @default ''\n * @memberof AlertBannerComponent\n */\n @Input() linkText? = '';\n\n /**\n * Link url\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkUrl?: string;\n\n /**\n * Link target\n *\n * @type {@type {LinkTargetType}}\n * @default '_blank'\n * @memberof AlertBannerComponent\n */\n @Input() linkTarget?: LinkTargetType = '_blank';\n\n /**\n * Optional action buttons displayed on the right side of the banner.\n *\n * @type {AlertBannerAction[]}\n * @default []\n * @memberof AlertBannerComponent\n */\n @Input() actions: AlertBannerAction[] = [];\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @default 'light'\n * @memberof AlertBannerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Alert density\n *\n * @type {AlertBannerSize}\n * @default 'default'\n * @memberof AlertBannerComponent\n */\n @Input() size: AlertBannerSize = 'default';\n\n /**\n * Sets the full width\n *\n * @type {boolean}\n * @memberof AlertBannerComponent\n */\n @Input() isFullWidth: boolean | undefined;\n\n /**\n * Close button tooltip\n *\n * @type {string}\n * @default ''\n * @memberof AlertBannerComponent\n */\n @Input() closeButtonTooltip = '';\n\n @Input() testId: string | null = null;\n\n get dismissButtonTestId(): string | null {\n return this.testId ? `${this.testId}-dismiss` : null;\n }\n\n /**\n * Shows icon\n *\n * @type {boolean}\n * @default true\n * @memberof AlertBannerComponent\n */\n @Input() hasIcon = true;\n\n /**\n * Controls loading state for spinner visibility.\n *\n * @type {boolean}\n * @default false\n * @memberof AlertBannerComponent\n */\n @Input() isLoading = false;\n\n /**\n * Sets the alert banner position\n *\n * @type {boolean}\n * @default false\n * @memberof AlertBannerComponent\n */\n @Input() fixed = false;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {string}\n * @memberof AlertBannerComponent\n */\n @Input() ariaDescribedby = '';\n\n @Input() secondaryAlerts: string[] = [];\n\n /**\n * Emitted when the user clicks the built-in dismiss button.\n *\n * @memberof AlertBannerComponent\n */\n @Output() dismiss = new EventEmitter<void>();\n\n @HostBinding('class.display-none') get isDismissed() {\n return this.dismissAlertBanner;\n }\n\n get iconSize(): IconSize {\n return this.size === 'small' ? '16' : '24';\n }\n\n iconName: IconName;\n iconColor: Color;\n visible = true;\n fullWidth: boolean;\n position: string;\n cssClass: string;\n dismissAlertBanner = false;\n\n ngOnInit(): void {\n this.updateBanner();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['alertType']) {\n this.updateBanner();\n }\n }\n\n private updateBanner(): void {\n this.iconName = alertBarsUtil.setIcon(this.alertType) as IconName;\n this.iconColor = alertBarsUtil.setIconColor(this.alertType);\n this.position = alertBarsUtil.setPosition(this.fixed);\n this.fullWidth = this.isFullWidth ?? this.alertVariant === 'banner';\n this.cssClass = alertBarsUtil.setCssClass(this.fullWidth, this.alertType, this.position, this.alertVariant);\n }\n\n //Hide snackbar when dismiss button is clicked\n dismissClick() {\n this.visible = false;\n this.dismiss.emit();\n setTimeout(() => {\n this.dismissAlertBanner = true;\n }, 200);\n }\n}\n","@if (visible) {\n <div\n [ngClass]=\"cssClass\"\n [@openClose]\n role=\"alert\"\n class=\"alert-container\"\n [attr.theme]=\"applicationTheme\"\n [class.shadow]=\"alertVariant === 'callout' && shadow\"\n [class.size-small]=\"size === 'small'\"\n [attr.aria-live]=\"alertType === 'error' || alertType === 'warning' ? 'assertive' : 'polite'\"\n [attr.aria-describedby]=\"'describedby'\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.data-testid]=\"testId\"\n [tabIndex]=\"0\"\n >\n <span style=\"position: absolute; left: -9999px\" id=\"labelledby\">{{\n 'ALERT_BANNER.' + (alertType | uppercase) | uiTranslate | async\n }}</span>\n <span [style.display]=\"'none'\" id=\"describedby\">{{ ariaDescribedby }}</span>\n <div class=\"primary-alert-container\">\n <div class=\"alert-text\">\n @if (hasIcon) {\n <ui-icon\n class=\"left-icon\"\n [name]=\"iconName\"\n [size]=\"iconSize\"\n [color]=\"iconColor\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n }\n @if (isLoading) {\n <ui-spinner\n class=\"loading-spinner\"\n size=\"small\"\n [isLoader]=\"false\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-spinner>\n }\n <span [innerHTML]=\"message\"></span>\n <span class=\"projected-content\"><ng-content></ng-content></span>\n @if (!!linkText) {\n <a [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n }\n </div>\n @if (actions.length > 0) {\n <div class=\"actions-container\">\n @for (action of actions; track $index) {\n <ui-button\n class=\"action-button\"\n [variant]=\"action.variant ?? 'text-inline'\"\n [label]=\"action.label\"\n [size]=\"action.size ?? 'medium'\"\n [disabled]=\"!!action.disabled\"\n [applicationTheme]=\"applicationTheme\"\n (buttonClickEvent)=\"action.onClick($event)\"\n [testId]=\"action.testId ?? null\"\n [fullWidth]=\"true\"\n ></ui-button>\n }\n </div>\n }\n @let closeLabel = (closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate | async))!;\n @if (includeDismissButton && applicationTheme === 'classic') {\n <ui-button\n variant=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n [ariaLabel]=\"closeLabel\"\n [tooltip]=\"closeLabel\"\n (buttonClickEvent)=\"dismissClick()\"\n [testId]=\"dismissButtonTestId\"\n ></ui-button>\n }\n @if (includeDismissButton && applicationTheme !== 'classic') {\n <ui-button\n class=\"right-icon\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"applicationTheme\"\n [iconName]=\"'Close'\"\n [size]=\"'small'\"\n [justIcon]=\"true\"\n [tooltip]=\"closeLabel\"\n [ariaLabel]=\"closeLabel\"\n [testId]=\"dismissButtonTestId\"\n (click)=\"dismissClick()\"\n ></ui-button>\n }\n </div>\n @if (secondaryAlerts.length > 0) {\n <div class=\"secondary-alerts-container\">\n <ul>\n @for (alert of secondaryAlerts; track alert) {\n <li class=\"secondary-alert-item\" [innerHTML]=\"alert\"></li>\n }\n </ul>\n </div>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { SpinnerComponentModule } from '@testgorilla/tgo-ui/components/spinner';\n\nimport { AlertBannerComponent } from './alert-banner.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonComponentModule,\n IconComponentModule,\n SpinnerComponentModule,\n UiTranslatePipe,\n AlertBannerComponent,\n ],\n exports: [AlertBannerComponent],\n})\nexport class AlertBannerComponentModule {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-alert-banner.mjs","names":[],"sources":["../../../components/alert-banner/alert-banner.component.ts","../../../components/alert-banner/alert-banner.component.html","../../../components/alert-banner/alert-banner.component.module.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\nimport { NgClass, AsyncPipe, UpperCasePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport {\n ApplicationTheme,\n Color,\n AlertBarType,\n AlertVariant,\n alertBarsUtil,\n UiTranslatePipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { IconName, IconComponentModule, IconSize } from '@testgorilla/tgo-ui/components/icon';\nimport { SpinnerComponent } from '@testgorilla/tgo-ui/components/spinner';\n\nimport { AlertBannerAction, AlertBannerSize, LinkTargetType } from './alert-banner.model';\n\n@Component({\n selector: 'ui-alert-banner',\n templateUrl: './alert-banner.component.html',\n styleUrls: ['./alert-banner.component.scss'],\n /* eslint-disable @typescript-eslint/no-deprecated -- the @angular/animations trigger/state/style/animate/transition DSL is deprecated in 20.2 in favor of template-level animate.enter/animate.leave; migrating every Material/component animation is out of scope for this lint pass */\n animations: [\n trigger('openClose', [\n transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),\n transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),\n ]),\n ],\n /* eslint-enable @typescript-eslint/no-deprecated */\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, IconComponentModule, SpinnerComponent, ButtonComponent, AsyncPipe, UpperCasePipe, UiTranslatePipe],\n})\nexport class AlertBannerComponent implements OnInit, OnChanges {\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n /**\n * Alert Banner type\n *\n * @type {AlertBarType}\n * @default 'success'\n * @memberof AlertBannerComponent\n */\n @Input() alertType: AlertBarType = 'success';\n\n /**\n * Alert Banner variant\n *\n * @type {AlertVariant}\n * @default 'banner'\n * @memberof AlertBannerComponent\n */\n @Input() alertVariant: AlertVariant = 'banner';\n\n /**\n * Alert banner message\n *\n * @memberof AlertBannerComponent\n */\n @Input() message = '';\n\n /**\n * Include dismmiss button\n *\n * @default true\n * @memberof AlertBannerComponent\n */\n @Input() includeDismissButton = true;\n\n /**\n * Include shadow or not\n *\n * @default false\n * @memberof AlertBannerComponent\n */\n @Input() shadow = false;\n\n /**\n * Link text that will appended at the end of message\n *\n * @default ''\n * @memberof AlertBannerComponent\n */\n @Input() linkText? = '';\n\n /**\n * Link url\n *\n * @memberof AlertBannerComponent\n */\n @Input() linkUrl?: string;\n\n /**\n * Link target\n *\n * @type {@type {LinkTargetType}}\n * @default '_blank'\n * @memberof AlertBannerComponent\n */\n @Input() linkTarget?: LinkTargetType = '_blank';\n\n /**\n * Optional action buttons displayed on the right side of the banner.\n *\n * @type {AlertBannerAction[]}\n * @default []\n * @memberof AlertBannerComponent\n */\n @Input() actions: AlertBannerAction[] = [];\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @default 'light'\n * @memberof AlertBannerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Alert density\n *\n * @type {AlertBannerSize}\n * @default 'default'\n * @memberof AlertBannerComponent\n */\n @Input() size: AlertBannerSize = 'default';\n\n /**\n * Sets the full width\n *\n * @type {boolean}\n * @memberof AlertBannerComponent\n */\n @Input() isFullWidth: boolean | undefined;\n\n /**\n * Close button tooltip\n *\n * @type {string}\n * @default ''\n * @memberof AlertBannerComponent\n */\n @Input() closeButtonTooltip = '';\n\n @Input() testId: string | null = null;\n\n get dismissButtonTestId(): string | null {\n return this.testId ? `${this.testId}-dismiss` : null;\n }\n\n /**\n * Shows icon\n *\n * @type {boolean}\n * @default true\n * @memberof AlertBannerComponent\n */\n @Input() hasIcon = true;\n\n /**\n * Controls loading state for spinner visibility.\n *\n * @type {boolean}\n * @default false\n * @memberof AlertBannerComponent\n */\n @Input() isLoading = false;\n\n /**\n * Sets the alert banner position\n *\n * @type {boolean}\n * @default false\n * @memberof AlertBannerComponent\n */\n @Input() fixed = false;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {string}\n * @memberof AlertBannerComponent\n */\n @Input() ariaDescribedby = '';\n\n @Input() secondaryAlerts: string[] = [];\n\n /**\n * Emitted when the user clicks the built-in dismiss button.\n *\n * @memberof AlertBannerComponent\n */\n @Output() dismiss = new EventEmitter<void>();\n\n @HostBinding('class.display-none') get isDismissed() {\n return this.dismissAlertBanner;\n }\n\n get iconSize(): IconSize {\n return this.size === 'small' ? '16' : '24';\n }\n\n iconName: IconName;\n iconColor: Color;\n visible = true;\n fullWidth: boolean;\n position: string;\n cssClass: string;\n dismissAlertBanner = false;\n\n ngOnInit(): void {\n this.updateBanner();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['alertType']) {\n this.updateBanner();\n }\n }\n\n private updateBanner(): void {\n this.iconName = alertBarsUtil.setIcon(this.alertType) as IconName;\n this.iconColor = alertBarsUtil.setIconColor(this.alertType);\n this.position = alertBarsUtil.setPosition(this.fixed);\n this.fullWidth = this.isFullWidth ?? this.alertVariant === 'banner';\n this.cssClass = alertBarsUtil.setCssClass(this.fullWidth, this.alertType, this.position, this.alertVariant);\n }\n\n //Hide snackbar when dismiss button is clicked\n dismissClick() {\n this.visible = false;\n this.dismiss.emit();\n setTimeout(() => {\n this.dismissAlertBanner = true;\n }, 200);\n }\n}\n","@if (visible) {\n <div\n [ngClass]=\"cssClass\"\n [@openClose]\n role=\"alert\"\n class=\"alert-container\"\n [attr.theme]=\"applicationTheme\"\n [class.shadow]=\"alertVariant === 'callout' && shadow\"\n [class.size-small]=\"size === 'small'\"\n [attr.aria-live]=\"alertType === 'error' || alertType === 'warning' ? 'assertive' : 'polite'\"\n [attr.aria-describedby]=\"'describedby'\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.data-testid]=\"testId\"\n [tabIndex]=\"0\"\n >\n <span style=\"position: absolute; left: -9999px\" id=\"labelledby\">{{\n 'ALERT_BANNER.' + (alertType | uppercase) | uiTranslate | async\n }}</span>\n <span [style.display]=\"'none'\" id=\"describedby\">{{ ariaDescribedby }}</span>\n <div class=\"primary-alert-container\">\n <div class=\"alert-text\">\n @if (hasIcon) {\n <ui-icon\n class=\"left-icon\"\n [name]=\"iconName\"\n [size]=\"iconSize\"\n [color]=\"iconColor\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n }\n @if (isLoading) {\n <ui-spinner\n class=\"loading-spinner\"\n size=\"small\"\n [isLoader]=\"false\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-spinner>\n }\n <span [innerHTML]=\"message\"></span>\n <span class=\"projected-content\"><ng-content></ng-content></span>\n @if (!!linkText) {\n <a [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n }\n </div>\n @if (actions.length > 0) {\n <div class=\"actions-container\">\n @for (action of actions; track $index) {\n <ui-button\n class=\"action-button\"\n [variant]=\"action.variant ?? 'text-inline'\"\n [label]=\"action.label\"\n [size]=\"action.size ?? 'medium'\"\n [disabled]=\"!!action.disabled\"\n [applicationTheme]=\"applicationTheme\"\n (buttonClickEvent)=\"action.onClick($event)\"\n [testId]=\"action.testId ?? null\"\n [fullWidth]=\"true\"\n ></ui-button>\n }\n </div>\n }\n @let closeLabel = (closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate | async))!;\n @if (includeDismissButton && applicationTheme === 'classic') {\n <ui-button\n variant=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n [ariaLabel]=\"closeLabel\"\n [tooltip]=\"closeLabel\"\n (buttonClickEvent)=\"dismissClick()\"\n [testId]=\"dismissButtonTestId\"\n ></ui-button>\n }\n @if (includeDismissButton && applicationTheme !== 'classic') {\n <ui-button\n class=\"right-icon\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"applicationTheme\"\n [iconName]=\"'Close'\"\n [size]=\"'small'\"\n [justIcon]=\"true\"\n [tooltip]=\"closeLabel\"\n [ariaLabel]=\"closeLabel\"\n [testId]=\"dismissButtonTestId\"\n (click)=\"dismissClick()\"\n ></ui-button>\n }\n </div>\n @if (secondaryAlerts.length > 0) {\n <div class=\"secondary-alerts-container\">\n <ul>\n @for (alert of secondaryAlerts; track alert) {\n <li class=\"secondary-alert-item\" [innerHTML]=\"alert\"></li>\n }\n </ul>\n </div>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { SpinnerComponentModule } from '@testgorilla/tgo-ui/components/spinner';\n\nimport { AlertBannerComponent } from './alert-banner.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonComponentModule,\n IconComponentModule,\n SpinnerComponentModule,\n UiTranslatePipe,\n AlertBannerComponent,\n ],\n exports: [AlertBannerComponent],\n})\nexport class AlertBannerComponentModule {}\n"],"mappings":";;;;;;;;;AA6CA,IAAa,uBAAb,MAAa,qBAAoB;CAC/B,YAC6E,iBAAiC;EAAjC,KAAA,kBAAA;EAcpE,KAAA,YAA0B;EAS1B,KAAA,eAA6B;EAO7B,KAAA,UAAU;EAQV,KAAA,uBAAuB;EAQvB,KAAA,SAAS;EAQT,KAAA,WAAY;EAgBZ,KAAA,aAA8B;EAS9B,KAAA,UAA+B,CAAA;EAU/B,KAAA,mBAAqC;EASrC,KAAA,OAAwB;EAiBxB,KAAA,qBAAqB;EAErB,KAAA,SAAwB;EAaxB,KAAA,UAAU;EASV,KAAA,YAAY;EASZ,KAAA,QAAQ;EAQR,KAAA,kBAAkB;EAElB,KAAA,kBAA4B,CAAA;EAO3B,KAAA,UAAU,IAAI,aAAY;EAYpC,KAAA,UAAU;EAIV,KAAA,qBAAqB;EAnLnB,IAAI,iBACF,KAAK,mBAAmB;CAE5B;CAkHA,IAAI,sBAAmB;EACrB,OAAO,KAAK,SAAS,GAAG,KAAK,OAAM,YAAa;CAClD;CA8CA,IAAuC,cAAW;EAChD,OAAO,KAAK;CACd;CAEA,IAAI,WAAQ;EACV,OAAO,KAAK,SAAS,UAAU,OAAO;CACxC;CAUA,WAAQ;EACN,KAAK,aAAY;CACnB;CAEA,YAAY,SAAsB;EAChC,IAAI,QAAQ,cACV,KAAK,aAAY;CAErB;CAEQ,eAAY;EAClB,KAAK,WAAW,cAAc,QAAQ,KAAK,SAAS;EACpD,KAAK,YAAY,cAAc,aAAa,KAAK,SAAS;EAC1D,KAAK,WAAW,cAAc,YAAY,KAAK,KAAK;EACpD,KAAK,YAAY,KAAK,eAAe,KAAK,iBAAiB;EAC3D,KAAK,WAAW,cAAc,YAAY,KAAK,WAAW,KAAK,WAAW,KAAK,UAAU,KAAK,YAAY;CAC5G;CAGA,eAAY;EACV,KAAK,UAAU;EACf,KAAK,QAAQ,KAAI;EACjB,iBAAgB;GACd,KAAK,qBAAqB;EAC5B,GAAG,GAAG;CACR;CAlNW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAoB,MAAA,CAAA;IAAA,OAET;IAAoC,UAAA;GAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAF/C;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAoB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,WAAA;IAAA,cAAA;IAAA,SAAA;IAAA,sBAAA;IAAA,QAAA;IAAA,UAAA;IAAA,SAAA;IAAA,YAAA;IAAA,SAAA;IAAA,kBAAA;IAAA,MAAA;IAAA,aAAA;IAAA,oBAAA;IAAA,QAAA;IAAA,SAAA;IAAA,WAAA;IAAA,OAAA;IAAA,iBAAA;IAAA,iBAAA;GAAA;GAAA,SAAA,EAAA,SAAA,UAAA;GAAA,MAAA,EAAA,YAAA,EAAA,sBAAA,mBAAA,EAAA;GAAA,eAAA;GAAA,UAAA;GAAA,UC7CjC;GAoGA,QAAA,CAAA,m1QAAA;GAAA,cAAA;IAAA;KAAA,MAAA;KAAA,MDzDY;KAAO,UAAA;KAAA,QAAA,CAAA,SAAA,SAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAE;IAAmB;IAAA;KAAA,MAAA;KAAA,MAAA,GAAA;KAAA,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAE;KAAgB,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAE;KAAe,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;KAAA,SAAA,CAAA,oBAAA,kBAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAE;KAAS,MAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAE;KAAa,MAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAE;KAAe,MAAA;IAAA;GAAA;GAAA,YARxG,CACV,QAAQ,aAAa,CACnB,WAAW,UAAU,CAAC,QAAQ,iBAAiB,MAAM,EAAE,SAAS,EAAC,CAAE,CAAC,CAAC,CAAC,GACtE,WAAW,UAAU,CAAC,QAAQ,gBAAgB,MAAM,EAAE,SAAS,EAAC,CAAE,CAAC,CAAC,CAAC,CACtE,CAAA,CACF;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAKU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAoB,YAAA,CAAA;EAfhC,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAiB,YAIf,CACV,QAAQ,aAAa,CACnB,WAAW,UAAU,CAAC,QAAQ,iBAAiB,MAAM,EAAE,SAAS,EAAC,CAAE,CAAC,CAAC,CAAC,GACtE,WAAW,UAAU,CAAC,QAAQ,gBAAgB,MAAM,EAAE,SAAS,EAAC,CAAE,CAAC,CAAC,CAAC,CACtE,CAAA,CACF;GAAA,iBAEgB,wBAAwB;GAAM,SACtC;IAAC;IAAS;IAAqB;IAAkB;IAAiB;IAAW;IAAe;GAAe;GAAC,UAAA;GAAA,QAAA,CAAA,m1QAAA;EAAA,CAAA;;;;E,eAIlH,MAAA,S;GAAY,MAAA;GAAO,MAAA,CAAA,oCAAoC;;;;E,cAczD,MAAA,M;E,iBASA,MAAA,M;E,YAOA,MAAA,M;E,yBAQA,MAAA,M;E,WAQA,MAAA,M;E,aAQA,MAAA,M;E,YAOA,MAAA,M;E,eASA,MAAA,M;E,YASA,MAAA,M;E,qBAUA,MAAA,M;E,SASA,MAAA,M;E,gBAQA,MAAA,M;E,uBASA,MAAA,M;E,WAEA,MAAA,M;E,YAaA,MAAA,M;E,cASA,MAAA,M;E,UASA,MAAA,M;E,oBAQA,MAAA,M;E,oBAEA,MAAA,M;E,YAOA,MAAA,O;;GAEA,MAAA;GAAY,MAAA,CAAA,oBAAoB;;;;AEjMnC,IAAa,6BAAb,MAAa,2BAA0B;CAA1B;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAA0B,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAA1B;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAA0B,SAAA;IATnC;IACA;IACA;IACA;IACA;IACA;GAAoB;GAAA,SAAA,CAEZ,oBAAoB;EAAA,CAAA;CAAA;CAEnB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAA0B,SAAA;IATnC;IACA;IACA;IACA;IAEA;GAAoB;EAAA,CAAA;CAAA;;AAIX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAA0B,YAAA,CAAA;EAXtC,MAAA;EAAS,MAAA,CAAA;GACR,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;GACD;GACD,SAAS,CAAC,oBAAoB;EAC/B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-avatar.mjs","names":[],"sources":["../../../components/avatar/avatar.model.ts","../../../components/avatar/name-initials.pipe.ts","../../../components/avatar/avatar.component.ts","../../../components/avatar/avatar.component.html","../../../components/avatar/avatar.component.module.ts"],"sourcesContent":["import { IconSize } from '@testgorilla/tgo-ui/components/icon';\n\nexport enum AvatarSize {\n SMALL = 'small',\n SMALL_MEDIUM = 'smallMedium',\n MEDIUM = 'medium',\n MEDIUM_LARGE = 'mediumLarge',\n LARGE = 'large',\n}\n\nexport type AvatarSizeType = `${AvatarSize}`;\n\nexport const iconSize: Record<string, IconSize> = {\n small: '16',\n medium: '24',\n large: '80',\n};\n\nexport enum AvatarBackgroundColor {\n PINK = '#FFE6FA',\n BLUE = '#D9E8FF',\n GREEN = '#D4F2C3',\n ORANGE = '#FFE1B3',\n RED = '#FFAC9A',\n}\n\nexport type BackgroundAvatarColorType = 'red' | 'blue' | 'green' | 'orange' | 'pink';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'nameInitials' })\nexport class NameInitialsPipe implements PipeTransform {\n transform(value: string): string {\n const initials = value.split(' ').filter(Boolean);\n if (initials.length > 1) {\n return initials\n .map((initial, i) => (i === 0 || i === initials.length - 1 ? initial[0].toUpperCase() : ''))\n .join('');\n } else {\n const firstLetters = value.substring(0, 2);\n return `${firstLetters[0]?.toUpperCase() ?? ''}${firstLetters[1]?.toLowerCase() ?? ''}`;\n }\n }\n}\n","import { NgClass, NgStyle, AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { ApplicationTheme, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { AvatarBackgroundColor, AvatarSize, AvatarSizeType, BackgroundAvatarColorType, iconSize } from './avatar.model';\nimport { NameInitialsPipe } from './name-initials.pipe';\n\n@Component({\n selector: 'ui-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n imports: [NgClass, NgStyle, IconComponentModule, ButtonComponentModule, AsyncPipe, UiTranslatePipe, NameInitialsPipe],\n})\nexport class AvatarComponent {\n /**\n * Input property for specifying the size of the avatar.\n * @type {AvatarSize}\n * @default AvatarSize.SMALL\n * @memberof AvatarComponent\n */\n @Input() size: AvatarSizeType = AvatarSize.SMALL;\n /**\n * Input property for specifying the URL of the image to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() imageUrl = '';\n\n /**\n * Input property for specifying the initials to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() name = '';\n\n /**\n * Input property for specifying the tooltip text for edit.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() tooltipText = '';\n\n /**\n * Input property that makes avatar editable.\n * @type {boolean}\n * @memberof AvatarComponent\n */\n @Input() allowEdit = false;\n\n /**\n *\n * Defines the application theme where\n *\n * @type {ApplicationTheme}\n * @memberof AvatarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the background color\n *\n * @type {BackgroundAvatarColorType}\n * @memberof AvatarComponent\n */\n @Input() set backgroundColor(colorName: BackgroundAvatarColorType) {\n this.backgroundAvatarColor = AvatarBackgroundColor[colorName.toUpperCase() as keyof typeof AvatarBackgroundColor];\n }\n\n /**\n * Event emitted when the edit button is clicked.\n * @type {Event}\n * @memberof AvatarComponent\n */\n @Output() editClick = new EventEmitter<Event>();\n\n protected backgroundAvatarColor: string;\n protected readonly iconSize = iconSize;\n protected readonly avatarSize = AvatarSize;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected handleImageError(): void {\n this.imageUrl = '';\n }\n\n protected onEditClick(event: Event): void {\n this.editClick.emit(event);\n }\n}\n","<div\n class=\"avatar-container\"\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\n [ngClass]=\"[size]\"\n [attr.theme]=\"applicationTheme\"\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\n>\n @if (name && !imageUrl) {\n <span class=\"initials\">\n {{ name | nameInitials }}\n </span>\n }\n @if (imageUrl) {\n <img [attr.aria-hidden]=\"true\" [attr.src]=\"imageUrl\" [alt]=\"\" (error)=\"handleImageError()\" />\n }\n @if (!imageUrl && !name) {\n <ui-icon\n [attr.aria-hidden]=\"true\"\n [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"iconSize[size]\"\n [name]=\"'User-profile'\"\n ></ui-icon>\n }\n @if (allowEdit && (size === avatarSize.LARGE || size === avatarSize.MEDIUM_LARGE)) {\n <div class=\"edit-avatar\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [companyColor]=\"'black'\"\n [size]=\"'small'\"\n [iconName]=\"'Edit'\"\n [variant]=\"'icon-button'\"\n [tooltip]=\"tooltipText\"\n [ariaLabel]=\"('AVATAR.EDIT_AVATAR' | uiTranslate | async)!\"\n (buttonClickEvent)=\"onEditClick($event)\"\n ></ui-button>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { AvatarComponent } from './avatar.component';\nimport { NameInitialsPipe } from './name-initials.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n IconComponentModule,\n MatTooltipModule,\n ButtonComponentModule,\n UiTranslatePipe,\n AvatarComponent,\n NameInitialsPipe,\n ],\n exports: [AvatarComponent],\n})\nexport class AvatarComponentModule {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-avatar.mjs","names":[],"sources":["../../../components/avatar/avatar.model.ts","../../../components/avatar/name-initials.pipe.ts","../../../components/avatar/avatar.component.ts","../../../components/avatar/avatar.component.html","../../../components/avatar/avatar.component.module.ts"],"sourcesContent":["import { IconSize } from '@testgorilla/tgo-ui/components/icon';\n\nexport enum AvatarSize {\n SMALL = 'small',\n SMALL_MEDIUM = 'smallMedium',\n MEDIUM = 'medium',\n MEDIUM_LARGE = 'mediumLarge',\n LARGE = 'large',\n}\n\nexport type AvatarSizeType = `${AvatarSize}`;\n\nexport const iconSize: Record<string, IconSize> = {\n small: '16',\n medium: '24',\n large: '80',\n};\n\nexport enum AvatarBackgroundColor {\n PINK = '#FFE6FA',\n BLUE = '#D9E8FF',\n GREEN = '#D4F2C3',\n ORANGE = '#FFE1B3',\n RED = '#FFAC9A',\n}\n\nexport type BackgroundAvatarColorType = 'red' | 'blue' | 'green' | 'orange' | 'pink';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'nameInitials' })\nexport class NameInitialsPipe implements PipeTransform {\n transform(value: string): string {\n const initials = value.split(' ').filter(Boolean);\n if (initials.length > 1) {\n return initials\n .map((initial, i) => (i === 0 || i === initials.length - 1 ? initial[0].toUpperCase() : ''))\n .join('');\n } else {\n const firstLetters = value.substring(0, 2);\n return `${firstLetters[0]?.toUpperCase() ?? ''}${firstLetters[1]?.toLowerCase() ?? ''}`;\n }\n }\n}\n","import { NgClass, NgStyle, AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { ApplicationTheme, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { AvatarBackgroundColor, AvatarSize, AvatarSizeType, BackgroundAvatarColorType, iconSize } from './avatar.model';\nimport { NameInitialsPipe } from './name-initials.pipe';\n\n@Component({\n selector: 'ui-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n imports: [NgClass, NgStyle, IconComponentModule, ButtonComponentModule, AsyncPipe, UiTranslatePipe, NameInitialsPipe],\n})\nexport class AvatarComponent {\n /**\n * Input property for specifying the size of the avatar.\n * @type {AvatarSize}\n * @default AvatarSize.SMALL\n * @memberof AvatarComponent\n */\n @Input() size: AvatarSizeType = AvatarSize.SMALL;\n /**\n * Input property for specifying the URL of the image to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() imageUrl = '';\n\n /**\n * Input property for specifying the initials to display in the avatar.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() name = '';\n\n /**\n * Input property for specifying the tooltip text for edit.\n * @type {string}\n * @memberof AvatarComponent\n */\n @Input() tooltipText = '';\n\n /**\n * Input property that makes avatar editable.\n * @type {boolean}\n * @memberof AvatarComponent\n */\n @Input() allowEdit = false;\n\n /**\n *\n * Defines the application theme where\n *\n * @type {ApplicationTheme}\n * @memberof AvatarComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the background color\n *\n * @type {BackgroundAvatarColorType}\n * @memberof AvatarComponent\n */\n @Input() set backgroundColor(colorName: BackgroundAvatarColorType) {\n this.backgroundAvatarColor = AvatarBackgroundColor[colorName.toUpperCase() as keyof typeof AvatarBackgroundColor];\n }\n\n /**\n * Event emitted when the edit button is clicked.\n * @type {Event}\n * @memberof AvatarComponent\n */\n @Output() editClick = new EventEmitter<Event>();\n\n protected backgroundAvatarColor: string;\n protected readonly iconSize = iconSize;\n protected readonly avatarSize = AvatarSize;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected handleImageError(): void {\n this.imageUrl = '';\n }\n\n protected onEditClick(event: Event): void {\n this.editClick.emit(event);\n }\n}\n","<div\n class=\"avatar-container\"\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\n [ngClass]=\"[size]\"\n [attr.theme]=\"applicationTheme\"\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\n>\n @if (name && !imageUrl) {\n <span class=\"initials\">\n {{ name | nameInitials }}\n </span>\n }\n @if (imageUrl) {\n <img [attr.aria-hidden]=\"true\" [attr.src]=\"imageUrl\" [alt]=\"\" (error)=\"handleImageError()\" />\n }\n @if (!imageUrl && !name) {\n <ui-icon\n [attr.aria-hidden]=\"true\"\n [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"iconSize[size]\"\n [name]=\"'User-profile'\"\n ></ui-icon>\n }\n @if (allowEdit && (size === avatarSize.LARGE || size === avatarSize.MEDIUM_LARGE)) {\n <div class=\"edit-avatar\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [companyColor]=\"'black'\"\n [size]=\"'small'\"\n [iconName]=\"'Edit'\"\n [variant]=\"'icon-button'\"\n [tooltip]=\"tooltipText\"\n [ariaLabel]=\"('AVATAR.EDIT_AVATAR' | uiTranslate | async)!\"\n (buttonClickEvent)=\"onEditClick($event)\"\n ></ui-button>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { AvatarComponent } from './avatar.component';\nimport { NameInitialsPipe } from './name-initials.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n IconComponentModule,\n MatTooltipModule,\n ButtonComponentModule,\n UiTranslatePipe,\n AvatarComponent,\n NameInitialsPipe,\n ],\n exports: [AvatarComponent],\n})\nexport class AvatarComponentModule {}\n"],"mappings":"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"}
|
|
@@ -205,7 +205,7 @@ var BadgeComponent = class BadgeComponent {
|
|
|
205
205
|
},
|
|
206
206
|
ngImport: i0,
|
|
207
207
|
template: "<div\n [class]=\"'badge badge-container-' + variant\"\n [class.no-label]=\"!label && !staticLabel && !trailingIcon()\"\n [attr.aria-label]=\"label + (staticLabel ? ' ' + staticLabel : '')\"\n [attr.theme]=\"applicationTheme\"\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\n [matTooltip]=\"\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4)\n ? label + (staticLabel ? ' ' + staticLabel : '')\n : ''\n \"\n [matTooltipClass]=\"applicationTheme\"\n>\n @switch (variant) {\n @case (badgeVariant.PRIMARY) {\n @if (icon) {\n <ui-icon\n [class.badge-icon]=\"!!label || !!staticLabel || !!trailingIcon\"\n [name]=\"icon\"\n [color]=\"resolvedIconColor\"\n ></ui-icon>\n }\n }\n @case (badgeVariant.PRIMARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY) {\n <div class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\n }\n @case (badgeVariant.NOTIFICATION) {\n <div class=\"number-notification\">{{ notificationsAmount }}</div>\n }\n }\n @if (variant !== badgeVariant.NOTIFICATION) {\n <div class=\"label\" [class.empty]=\"!label && !staticLabel\" [class.animated]=\"enableAnimation\">\n {{\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4) && truncateLabel\n ? (label | slice: 0 : 25 - (staticLabel.length < 4 ? staticLabel.length : 4)) + '...'\n : label\n }}\n </div>\n }\n @if (staticLabel && variant !== badgeVariant.NOTIFICATION) {\n <span class=\"static-label\">{{ staticLabel | slice: 0 : 4 }}</span>\n }\n @if (trailingIcon() && variant === badgeVariant.PRIMARY) {\n <ui-icon class=\"badge-icon-trailing\" [name]=\"trailingIcon()\" [color]=\"resolvedTrailingIconColor\"></ui-icon>\n }\n</div>\n\n<ng-template #aiIconTpl>\n <ui-icon class=\"badge-icon\" [name]=\"'Sparkle-in-line'\" [color]=\"'ai'\"></ui-icon>\n</ng-template>\n",
|
|
208
|
-
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}:host{display:block}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{width:fit-content}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai{height:24px;padding:0 8px;border-radius:21px;color:#fff;line-height:10px;transition:all .2s ease-out}:host .badge-container-primary .label,:host .badge-container-primary-ai .label,:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{font-size:12px;line-height:14px}:host .badge-container-primary .label.animated,:host .badge-container-primary-ai .label.animated,:host .badge-container-secondary .label.animated,:host .badge-container-secondary-ai .label.animated{display:inline-block;max-width:500px;opacity:1;overflow:hidden;white-space:nowrap;transition:max-width .25s ease-in-out,opacity .2s ease-in-out;will-change:max-width,opacity;contain:layout style}:host .badge-container-primary .label.empty,:host .badge-container-primary-ai .label.empty,:host .badge-container-secondary .label.empty,:host .badge-container-secondary-ai .label.empty{max-width:0;opacity:0}:host .badge-container-primary .static-label,:host .badge-container-primary-ai .static-label,:host .badge-container-secondary .static-label,:host .badge-container-secondary-ai .static-label{font-size:12px;line-height:14px;white-space:nowrap;flex-shrink:0;margin-left:2px}:host .badge-container-primary .badge-icon:not(:last-child),:host .badge-container-primary-ai .badge-icon:not(:last-child),:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:8px}:host .badge-container-primary .badge-icon-trailing,:host .badge-container-primary-ai .badge-icon-trailing,:host .badge-container-secondary .badge-icon-trailing,:host .badge-container-secondary-ai .badge-icon-trailing{margin-left:8px}:host .badge-container-primary.no-label .badge-icon,:host .badge-container-primary-ai.no-label .badge-icon,:host .badge-container-secondary.no-label .badge-icon,:host .badge-container-secondary-ai.no-label .badge-icon{margin-right:0}:host .badge-container-secondary{padding:0}:host .badge-container-primary-ai.no-label{padding:4px}:host .badge-container-secondary .point,:host .badge-container-secondary-ai .point{border-radius:50%;padding:4px;margin-right:8px}:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{color:#000!important;width:100%}:host .badge-container-secondary[theme=dark],:host .badge-container-secondary[theme=light],:host .badge-container-secondary-ai[theme=dark],:host .badge-container-secondary-ai[theme=light]{color:#242424}:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:4px}:host .badge-container-notification{min-width:20px;height:20px;border-radius:50%;color:#fff;line-height:10px}:host .badge-container-notification .label{font-size:12px}:host .badge-container-notification[theme=dark],:host .badge-container-notification[theme=light]{background:#242424!important;color:#fff!important;border-color:1px solid #ffffff}:host .badge{width:100%!important;max-width:fit-content!important}:host .badge .label{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-sizing:border-box!important}.flex-center,:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{display:flex;align-items:center;justify-content:center}.background-colors[color=red],:host [color=red].badge-container-primary,:host [color=red].badge-container-primary-ai,:host .badge-container-secondary [color=red].point,:host .badge-container-secondary-ai [color=red].point,:host [color=red].badge-container-notification{background:#cb7b7a}.background-colors[color=grey-medium],:host [color=grey-medium].badge-container-primary,:host [color=grey-medium].badge-container-primary-ai,:host .badge-container-secondary [color=grey-medium].point,:host .badge-container-secondary-ai [color=grey-medium].point,:host [color=grey-medium].badge-container-notification{background:#e0e0e0;color:#000}.background-colors[color=teal],:host [color=teal].badge-container-primary,:host [color=teal].badge-container-primary-ai,:host .badge-container-secondary [color=teal].point,:host .badge-container-secondary-ai [color=teal].point,:host [color=teal].badge-container-notification{background:#46a997}.background-colors[color=yellow],:host [color=yellow].badge-container-primary,:host [color=yellow].badge-container-primary-ai,:host .badge-container-secondary [color=yellow].point,:host .badge-container-secondary-ai [color=yellow].point,:host [color=yellow].badge-container-notification{background:#cca45f}.background-colors[color=petrol],:host [color=petrol].badge-container-primary,:host [color=petrol].badge-container-primary-ai,:host .badge-container-secondary [color=petrol].point,:host .badge-container-secondary-ai [color=petrol].point,:host [color=petrol].badge-container-notification{background:#276678}.background-colors[color=teal-60w],:host [color=teal-60w].badge-container-primary,:host [color=teal-60w].badge-container-primary-ai,:host .badge-container-secondary [color=teal-60w].point,:host .badge-container-secondary-ai [color=teal-60w].point,:host [color=teal-60w].badge-container-notification{background:#b5ddd5;color:#000}.background-colors[color=petrol-90w],:host [color=petrol-90w].badge-container-primary,:host [color=petrol-90w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-90w].point,:host .badge-container-secondary-ai [color=petrol-90w].point,:host [color=petrol-90w].badge-container-notification{background:#e9f0f1;color:#000}.background-colors[color=petrol-60w],:host [color=petrol-60w].badge-container-primary,:host [color=petrol-60w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-60w].point,:host .badge-container-secondary-ai [color=petrol-60w].point,:host [color=petrol-60w].badge-container-notification{background:#a9c2c9;color:#000}.background-colors[color=grey-dark],:host [color=grey-dark].badge-container-primary,:host [color=grey-dark].badge-container-primary-ai,:host .badge-container-secondary [color=grey-dark].point,:host .badge-container-secondary-ai [color=grey-dark].point,:host [color=grey-dark].badge-container-notification{background:#888}.background-colors[color=success],:host [color=success].badge-container-primary,:host [color=success].badge-container-primary-ai,:host .badge-container-secondary [color=success].point,:host .badge-container-secondary-ai [color=success].point,:host [color=success].badge-container-notification{background:#d4f2c3;color:#242424}.background-colors[color=warning],:host [color=warning].badge-container-primary,:host [color=warning].badge-container-primary-ai,:host .badge-container-secondary [color=warning].point,:host .badge-container-secondary-ai [color=warning].point,:host [color=warning].badge-container-notification{background:#ffe1b3;color:#242424}.background-colors[color=negative],:host [color=negative].badge-container-primary,:host [color=negative].badge-container-primary-ai,:host .badge-container-secondary [color=negative].point,:host .badge-container-secondary-ai [color=negative].point,:host [color=negative].badge-container-notification{background:#ffac9a;color:#242424}.background-colors[color=info],:host [color=info].badge-container-primary,:host [color=info].badge-container-primary-ai,:host .badge-container-secondary [color=info].point,:host .badge-container-secondary-ai [color=info].point,:host [color=info].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=brand],:host [color=brand].badge-container-primary,:host [color=brand].badge-container-primary-ai,:host .badge-container-secondary [color=brand].point,:host .badge-container-secondary-ai [color=brand].point,:host [color=brand].badge-container-notification{background:#ffe6fa;color:#242424}.background-colors[color=neutral],:host [color=neutral].badge-container-primary,:host [color=neutral].badge-container-primary-ai,:host .badge-container-secondary [color=neutral].point,:host .badge-container-secondary-ai [color=neutral].point,:host [color=neutral].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=blue-20],:host [color=blue-20].badge-container-primary,:host [color=blue-20].badge-container-primary-ai,:host .badge-container-secondary [color=blue-20].point,:host .badge-container-secondary-ai [color=blue-20].point,:host [color=blue-20].badge-container-notification{background:#99c1fe;color:#242424}.background-colors[color=blue-30],:host [color=blue-30].badge-container-primary,:host [color=blue-30].badge-container-primary-ai,:host .badge-container-secondary [color=blue-30].point,:host .badge-container-secondary-ai [color=blue-30].point,:host [color=blue-30].badge-container-notification{background:#277cfd;color:#fff}.background-colors[color=blue-40],:host [color=blue-40].badge-container-primary,:host [color=blue-40].badge-container-primary-ai,:host .badge-container-secondary [color=blue-40].point,:host .badge-container-secondary-ai [color=blue-40].point,:host [color=blue-40].badge-container-notification{background:#0165fc;color:#fff}.background-colors[color=pink-30],:host [color=pink-30].badge-container-primary,:host [color=pink-30].badge-container-primary-ai,:host .badge-container-secondary [color=pink-30].point,:host .badge-container-secondary-ai [color=pink-30].point,:host [color=pink-30].badge-container-notification{background:#ffb3ee;color:#242424}.background-colors[color=pink-50],:host [color=pink-50].badge-container-primary,:host [color=pink-50].badge-container-primary-ai,:host .badge-container-secondary [color=pink-50].point,:host .badge-container-secondary-ai [color=pink-50].point,:host [color=pink-50].badge-container-notification{background:#d410aa;color:#fff}.background-colors[color=blue-10],:host [color=blue-10].badge-container-primary,:host [color=blue-10].badge-container-primary-ai,:host .badge-container-secondary [color=blue-10].point,:host .badge-container-secondary-ai [color=blue-10].point,:host [color=blue-10].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=grey-30],:host [color=grey-30].badge-container-primary,:host [color=grey-30].badge-container-primary-ai,:host .badge-container-secondary [color=grey-30].point,:host .badge-container-secondary-ai [color=grey-30].point,:host [color=grey-30].badge-container-notification{background:#d3d3d3;color:#242424}.background-colors[color=grey-20],:host [color=grey-20].badge-container-primary,:host [color=grey-20].badge-container-primary-ai,:host .badge-container-secondary [color=grey-20].point,:host .badge-container-secondary-ai [color=grey-20].point,:host [color=grey-20].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=grey-10],:host [color=grey-10].badge-container-primary,:host [color=grey-10].badge-container-primary-ai,:host .badge-container-secondary [color=grey-10].point,:host .badge-container-secondary-ai [color=grey-10].point,:host [color=grey-10].badge-container-notification{background:#f4f4f4;color:#242424}\n"],
|
|
208
|
+
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}:host{display:block}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{width:fit-content}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai{height:24px;padding:0 8px;border-radius:21px;color:#fff;line-height:10px;transition:all .2s ease-out}:host .badge-container-primary .label,:host .badge-container-primary-ai .label,:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{font-size:12px;line-height:14px}:host .badge-container-primary .label.animated,:host .badge-container-primary-ai .label.animated,:host .badge-container-secondary .label.animated,:host .badge-container-secondary-ai .label.animated{display:inline-block;max-width:500px;opacity:1;overflow:hidden;white-space:nowrap;transition:max-width .25s ease-in-out,opacity .2s ease-in-out;will-change:max-width,opacity;contain:layout style}:host .badge-container-primary .label.empty,:host .badge-container-primary-ai .label.empty,:host .badge-container-secondary .label.empty,:host .badge-container-secondary-ai .label.empty{max-width:0;opacity:0}:host .badge-container-primary .static-label,:host .badge-container-primary-ai .static-label,:host .badge-container-secondary .static-label,:host .badge-container-secondary-ai .static-label{font-size:12px;line-height:14px;white-space:nowrap;flex-shrink:0;margin-left:2px}:host .badge-container-primary .badge-icon:not(:last-child),:host .badge-container-primary-ai .badge-icon:not(:last-child),:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:8px}:host .badge-container-primary .badge-icon-trailing,:host .badge-container-primary-ai .badge-icon-trailing,:host .badge-container-secondary .badge-icon-trailing,:host .badge-container-secondary-ai .badge-icon-trailing{margin-left:8px}:host .badge-container-primary.no-label .badge-icon,:host .badge-container-primary-ai.no-label .badge-icon,:host .badge-container-secondary.no-label .badge-icon,:host .badge-container-secondary-ai.no-label .badge-icon{margin-right:0}:host .badge-container-secondary{padding:0}:host .badge-container-primary-ai.no-label{padding:4px}:host .badge-container-secondary .point,:host .badge-container-secondary-ai .point{border-radius:50%;padding:4px;margin-right:8px}:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{color:#000!important;width:100%}:host .badge-container-secondary[theme=dark],:host .badge-container-secondary[theme=light],:host .badge-container-secondary-ai[theme=dark],:host .badge-container-secondary-ai[theme=light]{color:#242424}:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:4px}:host .badge-container-notification{min-width:20px;height:20px;border-radius:50%;color:#fff;line-height:10px}:host .badge-container-notification .label{font-size:12px}:host .badge-container-notification[theme=dark][color=brand],:host .badge-container-notification[theme=light][color=brand],:host .badge-container-notification[theme=dark]:not([color]),:host .badge-container-notification[theme=light]:not([color]){background:#242424!important;color:#fff!important;border-color:1px solid #ffffff}:host .badge{width:100%!important;max-width:fit-content!important}:host .badge .label{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-sizing:border-box!important}.flex-center,:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{display:flex;align-items:center;justify-content:center}.background-colors[color=red],:host [color=red].badge-container-primary,:host [color=red].badge-container-primary-ai,:host .badge-container-secondary [color=red].point,:host .badge-container-secondary-ai [color=red].point,:host [color=red].badge-container-notification{background:#cb7b7a}.background-colors[color=grey-medium],:host [color=grey-medium].badge-container-primary,:host [color=grey-medium].badge-container-primary-ai,:host .badge-container-secondary [color=grey-medium].point,:host .badge-container-secondary-ai [color=grey-medium].point,:host [color=grey-medium].badge-container-notification{background:#e0e0e0;color:#000}.background-colors[color=teal],:host [color=teal].badge-container-primary,:host [color=teal].badge-container-primary-ai,:host .badge-container-secondary [color=teal].point,:host .badge-container-secondary-ai [color=teal].point,:host [color=teal].badge-container-notification{background:#46a997}.background-colors[color=yellow],:host [color=yellow].badge-container-primary,:host [color=yellow].badge-container-primary-ai,:host .badge-container-secondary [color=yellow].point,:host .badge-container-secondary-ai [color=yellow].point,:host [color=yellow].badge-container-notification{background:#cca45f}.background-colors[color=petrol],:host [color=petrol].badge-container-primary,:host [color=petrol].badge-container-primary-ai,:host .badge-container-secondary [color=petrol].point,:host .badge-container-secondary-ai [color=petrol].point,:host [color=petrol].badge-container-notification{background:#276678}.background-colors[color=teal-60w],:host [color=teal-60w].badge-container-primary,:host [color=teal-60w].badge-container-primary-ai,:host .badge-container-secondary [color=teal-60w].point,:host .badge-container-secondary-ai [color=teal-60w].point,:host [color=teal-60w].badge-container-notification{background:#b5ddd5;color:#000}.background-colors[color=petrol-90w],:host [color=petrol-90w].badge-container-primary,:host [color=petrol-90w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-90w].point,:host .badge-container-secondary-ai [color=petrol-90w].point,:host [color=petrol-90w].badge-container-notification{background:#e9f0f1;color:#000}.background-colors[color=petrol-60w],:host [color=petrol-60w].badge-container-primary,:host [color=petrol-60w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-60w].point,:host .badge-container-secondary-ai [color=petrol-60w].point,:host [color=petrol-60w].badge-container-notification{background:#a9c2c9;color:#000}.background-colors[color=grey-dark],:host [color=grey-dark].badge-container-primary,:host [color=grey-dark].badge-container-primary-ai,:host .badge-container-secondary [color=grey-dark].point,:host .badge-container-secondary-ai [color=grey-dark].point,:host [color=grey-dark].badge-container-notification{background:#888}.background-colors[color=success],:host [color=success].badge-container-primary,:host [color=success].badge-container-primary-ai,:host .badge-container-secondary [color=success].point,:host .badge-container-secondary-ai [color=success].point,:host [color=success].badge-container-notification{background:#d4f2c3;color:#242424}.background-colors[color=warning],:host [color=warning].badge-container-primary,:host [color=warning].badge-container-primary-ai,:host .badge-container-secondary [color=warning].point,:host .badge-container-secondary-ai [color=warning].point,:host [color=warning].badge-container-notification{background:#ffe1b3;color:#242424}.background-colors[color=negative],:host [color=negative].badge-container-primary,:host [color=negative].badge-container-primary-ai,:host .badge-container-secondary [color=negative].point,:host .badge-container-secondary-ai [color=negative].point,:host [color=negative].badge-container-notification{background:#ffac9a;color:#242424}.background-colors[color=info],:host [color=info].badge-container-primary,:host [color=info].badge-container-primary-ai,:host .badge-container-secondary [color=info].point,:host .badge-container-secondary-ai [color=info].point,:host [color=info].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=brand],:host [color=brand].badge-container-primary,:host [color=brand].badge-container-primary-ai,:host .badge-container-secondary [color=brand].point,:host .badge-container-secondary-ai [color=brand].point,:host [color=brand].badge-container-notification{background:#ffe6fa;color:#242424}.background-colors[color=neutral],:host [color=neutral].badge-container-primary,:host [color=neutral].badge-container-primary-ai,:host .badge-container-secondary [color=neutral].point,:host .badge-container-secondary-ai [color=neutral].point,:host [color=neutral].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=blue-20],:host [color=blue-20].badge-container-primary,:host [color=blue-20].badge-container-primary-ai,:host .badge-container-secondary [color=blue-20].point,:host .badge-container-secondary-ai [color=blue-20].point,:host [color=blue-20].badge-container-notification{background:#99c1fe;color:#242424}.background-colors[color=blue-30],:host [color=blue-30].badge-container-primary,:host [color=blue-30].badge-container-primary-ai,:host .badge-container-secondary [color=blue-30].point,:host .badge-container-secondary-ai [color=blue-30].point,:host [color=blue-30].badge-container-notification{background:#277cfd;color:#fff}.background-colors[color=blue-40],:host [color=blue-40].badge-container-primary,:host [color=blue-40].badge-container-primary-ai,:host .badge-container-secondary [color=blue-40].point,:host .badge-container-secondary-ai [color=blue-40].point,:host [color=blue-40].badge-container-notification{background:#0165fc;color:#fff}.background-colors[color=pink-30],:host [color=pink-30].badge-container-primary,:host [color=pink-30].badge-container-primary-ai,:host .badge-container-secondary [color=pink-30].point,:host .badge-container-secondary-ai [color=pink-30].point,:host [color=pink-30].badge-container-notification{background:#ffb3ee;color:#242424}.background-colors[color=pink-50],:host [color=pink-50].badge-container-primary,:host [color=pink-50].badge-container-primary-ai,:host .badge-container-secondary [color=pink-50].point,:host .badge-container-secondary-ai [color=pink-50].point,:host [color=pink-50].badge-container-notification{background:#d410aa;color:#fff}.background-colors[color=blue-10],:host [color=blue-10].badge-container-primary,:host [color=blue-10].badge-container-primary-ai,:host .badge-container-secondary [color=blue-10].point,:host .badge-container-secondary-ai [color=blue-10].point,:host [color=blue-10].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=grey-30],:host [color=grey-30].badge-container-primary,:host [color=grey-30].badge-container-primary-ai,:host .badge-container-secondary [color=grey-30].point,:host .badge-container-secondary-ai [color=grey-30].point,:host [color=grey-30].badge-container-notification{background:#d3d3d3;color:#242424}.background-colors[color=grey-20],:host [color=grey-20].badge-container-primary,:host [color=grey-20].badge-container-primary-ai,:host .badge-container-secondary [color=grey-20].point,:host .badge-container-secondary-ai [color=grey-20].point,:host [color=grey-20].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=grey-10],:host [color=grey-10].badge-container-primary,:host [color=grey-10].badge-container-primary-ai,:host .badge-container-secondary [color=grey-10].point,:host .badge-container-secondary-ai [color=grey-10].point,:host [color=grey-10].badge-container-notification{background:#f4f4f4;color:#242424}\n"],
|
|
209
209
|
dependencies: [
|
|
210
210
|
{
|
|
211
211
|
kind: "directive",
|
|
@@ -279,7 +279,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
279
279
|
SlicePipe
|
|
280
280
|
],
|
|
281
281
|
template: "<div\n [class]=\"'badge badge-container-' + variant\"\n [class.no-label]=\"!label && !staticLabel && !trailingIcon()\"\n [attr.aria-label]=\"label + (staticLabel ? ' ' + staticLabel : '')\"\n [attr.theme]=\"applicationTheme\"\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\n [matTooltip]=\"\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4)\n ? label + (staticLabel ? ' ' + staticLabel : '')\n : ''\n \"\n [matTooltipClass]=\"applicationTheme\"\n>\n @switch (variant) {\n @case (badgeVariant.PRIMARY) {\n @if (icon) {\n <ui-icon\n [class.badge-icon]=\"!!label || !!staticLabel || !!trailingIcon\"\n [name]=\"icon\"\n [color]=\"resolvedIconColor\"\n ></ui-icon>\n }\n }\n @case (badgeVariant.PRIMARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY) {\n <div class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\n }\n @case (badgeVariant.NOTIFICATION) {\n <div class=\"number-notification\">{{ notificationsAmount }}</div>\n }\n }\n @if (variant !== badgeVariant.NOTIFICATION) {\n <div class=\"label\" [class.empty]=\"!label && !staticLabel\" [class.animated]=\"enableAnimation\">\n {{\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4) && truncateLabel\n ? (label | slice: 0 : 25 - (staticLabel.length < 4 ? staticLabel.length : 4)) + '...'\n : label\n }}\n </div>\n }\n @if (staticLabel && variant !== badgeVariant.NOTIFICATION) {\n <span class=\"static-label\">{{ staticLabel | slice: 0 : 4 }}</span>\n }\n @if (trailingIcon() && variant === badgeVariant.PRIMARY) {\n <ui-icon class=\"badge-icon-trailing\" [name]=\"trailingIcon()\" [color]=\"resolvedTrailingIconColor\"></ui-icon>\n }\n</div>\n\n<ng-template #aiIconTpl>\n <ui-icon class=\"badge-icon\" [name]=\"'Sparkle-in-line'\" [color]=\"'ai'\"></ui-icon>\n</ng-template>\n",
|
|
282
|
-
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}:host{display:block}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{width:fit-content}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai{height:24px;padding:0 8px;border-radius:21px;color:#fff;line-height:10px;transition:all .2s ease-out}:host .badge-container-primary .label,:host .badge-container-primary-ai .label,:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{font-size:12px;line-height:14px}:host .badge-container-primary .label.animated,:host .badge-container-primary-ai .label.animated,:host .badge-container-secondary .label.animated,:host .badge-container-secondary-ai .label.animated{display:inline-block;max-width:500px;opacity:1;overflow:hidden;white-space:nowrap;transition:max-width .25s ease-in-out,opacity .2s ease-in-out;will-change:max-width,opacity;contain:layout style}:host .badge-container-primary .label.empty,:host .badge-container-primary-ai .label.empty,:host .badge-container-secondary .label.empty,:host .badge-container-secondary-ai .label.empty{max-width:0;opacity:0}:host .badge-container-primary .static-label,:host .badge-container-primary-ai .static-label,:host .badge-container-secondary .static-label,:host .badge-container-secondary-ai .static-label{font-size:12px;line-height:14px;white-space:nowrap;flex-shrink:0;margin-left:2px}:host .badge-container-primary .badge-icon:not(:last-child),:host .badge-container-primary-ai .badge-icon:not(:last-child),:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:8px}:host .badge-container-primary .badge-icon-trailing,:host .badge-container-primary-ai .badge-icon-trailing,:host .badge-container-secondary .badge-icon-trailing,:host .badge-container-secondary-ai .badge-icon-trailing{margin-left:8px}:host .badge-container-primary.no-label .badge-icon,:host .badge-container-primary-ai.no-label .badge-icon,:host .badge-container-secondary.no-label .badge-icon,:host .badge-container-secondary-ai.no-label .badge-icon{margin-right:0}:host .badge-container-secondary{padding:0}:host .badge-container-primary-ai.no-label{padding:4px}:host .badge-container-secondary .point,:host .badge-container-secondary-ai .point{border-radius:50%;padding:4px;margin-right:8px}:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{color:#000!important;width:100%}:host .badge-container-secondary[theme=dark],:host .badge-container-secondary[theme=light],:host .badge-container-secondary-ai[theme=dark],:host .badge-container-secondary-ai[theme=light]{color:#242424}:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:4px}:host .badge-container-notification{min-width:20px;height:20px;border-radius:50%;color:#fff;line-height:10px}:host .badge-container-notification .label{font-size:12px}:host .badge-container-notification[theme=dark],:host .badge-container-notification[theme=light]{background:#242424!important;color:#fff!important;border-color:1px solid #ffffff}:host .badge{width:100%!important;max-width:fit-content!important}:host .badge .label{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-sizing:border-box!important}.flex-center,:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{display:flex;align-items:center;justify-content:center}.background-colors[color=red],:host [color=red].badge-container-primary,:host [color=red].badge-container-primary-ai,:host .badge-container-secondary [color=red].point,:host .badge-container-secondary-ai [color=red].point,:host [color=red].badge-container-notification{background:#cb7b7a}.background-colors[color=grey-medium],:host [color=grey-medium].badge-container-primary,:host [color=grey-medium].badge-container-primary-ai,:host .badge-container-secondary [color=grey-medium].point,:host .badge-container-secondary-ai [color=grey-medium].point,:host [color=grey-medium].badge-container-notification{background:#e0e0e0;color:#000}.background-colors[color=teal],:host [color=teal].badge-container-primary,:host [color=teal].badge-container-primary-ai,:host .badge-container-secondary [color=teal].point,:host .badge-container-secondary-ai [color=teal].point,:host [color=teal].badge-container-notification{background:#46a997}.background-colors[color=yellow],:host [color=yellow].badge-container-primary,:host [color=yellow].badge-container-primary-ai,:host .badge-container-secondary [color=yellow].point,:host .badge-container-secondary-ai [color=yellow].point,:host [color=yellow].badge-container-notification{background:#cca45f}.background-colors[color=petrol],:host [color=petrol].badge-container-primary,:host [color=petrol].badge-container-primary-ai,:host .badge-container-secondary [color=petrol].point,:host .badge-container-secondary-ai [color=petrol].point,:host [color=petrol].badge-container-notification{background:#276678}.background-colors[color=teal-60w],:host [color=teal-60w].badge-container-primary,:host [color=teal-60w].badge-container-primary-ai,:host .badge-container-secondary [color=teal-60w].point,:host .badge-container-secondary-ai [color=teal-60w].point,:host [color=teal-60w].badge-container-notification{background:#b5ddd5;color:#000}.background-colors[color=petrol-90w],:host [color=petrol-90w].badge-container-primary,:host [color=petrol-90w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-90w].point,:host .badge-container-secondary-ai [color=petrol-90w].point,:host [color=petrol-90w].badge-container-notification{background:#e9f0f1;color:#000}.background-colors[color=petrol-60w],:host [color=petrol-60w].badge-container-primary,:host [color=petrol-60w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-60w].point,:host .badge-container-secondary-ai [color=petrol-60w].point,:host [color=petrol-60w].badge-container-notification{background:#a9c2c9;color:#000}.background-colors[color=grey-dark],:host [color=grey-dark].badge-container-primary,:host [color=grey-dark].badge-container-primary-ai,:host .badge-container-secondary [color=grey-dark].point,:host .badge-container-secondary-ai [color=grey-dark].point,:host [color=grey-dark].badge-container-notification{background:#888}.background-colors[color=success],:host [color=success].badge-container-primary,:host [color=success].badge-container-primary-ai,:host .badge-container-secondary [color=success].point,:host .badge-container-secondary-ai [color=success].point,:host [color=success].badge-container-notification{background:#d4f2c3;color:#242424}.background-colors[color=warning],:host [color=warning].badge-container-primary,:host [color=warning].badge-container-primary-ai,:host .badge-container-secondary [color=warning].point,:host .badge-container-secondary-ai [color=warning].point,:host [color=warning].badge-container-notification{background:#ffe1b3;color:#242424}.background-colors[color=negative],:host [color=negative].badge-container-primary,:host [color=negative].badge-container-primary-ai,:host .badge-container-secondary [color=negative].point,:host .badge-container-secondary-ai [color=negative].point,:host [color=negative].badge-container-notification{background:#ffac9a;color:#242424}.background-colors[color=info],:host [color=info].badge-container-primary,:host [color=info].badge-container-primary-ai,:host .badge-container-secondary [color=info].point,:host .badge-container-secondary-ai [color=info].point,:host [color=info].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=brand],:host [color=brand].badge-container-primary,:host [color=brand].badge-container-primary-ai,:host .badge-container-secondary [color=brand].point,:host .badge-container-secondary-ai [color=brand].point,:host [color=brand].badge-container-notification{background:#ffe6fa;color:#242424}.background-colors[color=neutral],:host [color=neutral].badge-container-primary,:host [color=neutral].badge-container-primary-ai,:host .badge-container-secondary [color=neutral].point,:host .badge-container-secondary-ai [color=neutral].point,:host [color=neutral].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=blue-20],:host [color=blue-20].badge-container-primary,:host [color=blue-20].badge-container-primary-ai,:host .badge-container-secondary [color=blue-20].point,:host .badge-container-secondary-ai [color=blue-20].point,:host [color=blue-20].badge-container-notification{background:#99c1fe;color:#242424}.background-colors[color=blue-30],:host [color=blue-30].badge-container-primary,:host [color=blue-30].badge-container-primary-ai,:host .badge-container-secondary [color=blue-30].point,:host .badge-container-secondary-ai [color=blue-30].point,:host [color=blue-30].badge-container-notification{background:#277cfd;color:#fff}.background-colors[color=blue-40],:host [color=blue-40].badge-container-primary,:host [color=blue-40].badge-container-primary-ai,:host .badge-container-secondary [color=blue-40].point,:host .badge-container-secondary-ai [color=blue-40].point,:host [color=blue-40].badge-container-notification{background:#0165fc;color:#fff}.background-colors[color=pink-30],:host [color=pink-30].badge-container-primary,:host [color=pink-30].badge-container-primary-ai,:host .badge-container-secondary [color=pink-30].point,:host .badge-container-secondary-ai [color=pink-30].point,:host [color=pink-30].badge-container-notification{background:#ffb3ee;color:#242424}.background-colors[color=pink-50],:host [color=pink-50].badge-container-primary,:host [color=pink-50].badge-container-primary-ai,:host .badge-container-secondary [color=pink-50].point,:host .badge-container-secondary-ai [color=pink-50].point,:host [color=pink-50].badge-container-notification{background:#d410aa;color:#fff}.background-colors[color=blue-10],:host [color=blue-10].badge-container-primary,:host [color=blue-10].badge-container-primary-ai,:host .badge-container-secondary [color=blue-10].point,:host .badge-container-secondary-ai [color=blue-10].point,:host [color=blue-10].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=grey-30],:host [color=grey-30].badge-container-primary,:host [color=grey-30].badge-container-primary-ai,:host .badge-container-secondary [color=grey-30].point,:host .badge-container-secondary-ai [color=grey-30].point,:host [color=grey-30].badge-container-notification{background:#d3d3d3;color:#242424}.background-colors[color=grey-20],:host [color=grey-20].badge-container-primary,:host [color=grey-20].badge-container-primary-ai,:host .badge-container-secondary [color=grey-20].point,:host .badge-container-secondary-ai [color=grey-20].point,:host [color=grey-20].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=grey-10],:host [color=grey-10].badge-container-primary,:host [color=grey-10].badge-container-primary-ai,:host .badge-container-secondary [color=grey-10].point,:host .badge-container-secondary-ai [color=grey-10].point,:host [color=grey-10].badge-container-notification{background:#f4f4f4;color:#242424}\n"]
|
|
282
|
+
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}:host{display:block}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{width:fit-content}:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai{height:24px;padding:0 8px;border-radius:21px;color:#fff;line-height:10px;transition:all .2s ease-out}:host .badge-container-primary .label,:host .badge-container-primary-ai .label,:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{font-size:12px;line-height:14px}:host .badge-container-primary .label.animated,:host .badge-container-primary-ai .label.animated,:host .badge-container-secondary .label.animated,:host .badge-container-secondary-ai .label.animated{display:inline-block;max-width:500px;opacity:1;overflow:hidden;white-space:nowrap;transition:max-width .25s ease-in-out,opacity .2s ease-in-out;will-change:max-width,opacity;contain:layout style}:host .badge-container-primary .label.empty,:host .badge-container-primary-ai .label.empty,:host .badge-container-secondary .label.empty,:host .badge-container-secondary-ai .label.empty{max-width:0;opacity:0}:host .badge-container-primary .static-label,:host .badge-container-primary-ai .static-label,:host .badge-container-secondary .static-label,:host .badge-container-secondary-ai .static-label{font-size:12px;line-height:14px;white-space:nowrap;flex-shrink:0;margin-left:2px}:host .badge-container-primary .badge-icon:not(:last-child),:host .badge-container-primary-ai .badge-icon:not(:last-child),:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:8px}:host .badge-container-primary .badge-icon-trailing,:host .badge-container-primary-ai .badge-icon-trailing,:host .badge-container-secondary .badge-icon-trailing,:host .badge-container-secondary-ai .badge-icon-trailing{margin-left:8px}:host .badge-container-primary.no-label .badge-icon,:host .badge-container-primary-ai.no-label .badge-icon,:host .badge-container-secondary.no-label .badge-icon,:host .badge-container-secondary-ai.no-label .badge-icon{margin-right:0}:host .badge-container-secondary{padding:0}:host .badge-container-primary-ai.no-label{padding:4px}:host .badge-container-secondary .point,:host .badge-container-secondary-ai .point{border-radius:50%;padding:4px;margin-right:8px}:host .badge-container-secondary .label,:host .badge-container-secondary-ai .label{color:#000!important;width:100%}:host .badge-container-secondary[theme=dark],:host .badge-container-secondary[theme=light],:host .badge-container-secondary-ai[theme=dark],:host .badge-container-secondary-ai[theme=light]{color:#242424}:host .badge-container-secondary .badge-icon:not(:last-child),:host .badge-container-secondary-ai .badge-icon:not(:last-child){margin-right:4px}:host .badge-container-notification{min-width:20px;height:20px;border-radius:50%;color:#fff;line-height:10px}:host .badge-container-notification .label{font-size:12px}:host .badge-container-notification[theme=dark][color=brand],:host .badge-container-notification[theme=light][color=brand],:host .badge-container-notification[theme=dark]:not([color]),:host .badge-container-notification[theme=light]:not([color]){background:#242424!important;color:#fff!important;border-color:1px solid #ffffff}:host .badge{width:100%!important;max-width:fit-content!important}:host .badge .label{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;box-sizing:border-box!important}.flex-center,:host .badge-container-primary,:host .badge-container-primary-ai,:host .badge-container-secondary,:host .badge-container-secondary-ai,:host .badge-container-notification{display:flex;align-items:center;justify-content:center}.background-colors[color=red],:host [color=red].badge-container-primary,:host [color=red].badge-container-primary-ai,:host .badge-container-secondary [color=red].point,:host .badge-container-secondary-ai [color=red].point,:host [color=red].badge-container-notification{background:#cb7b7a}.background-colors[color=grey-medium],:host [color=grey-medium].badge-container-primary,:host [color=grey-medium].badge-container-primary-ai,:host .badge-container-secondary [color=grey-medium].point,:host .badge-container-secondary-ai [color=grey-medium].point,:host [color=grey-medium].badge-container-notification{background:#e0e0e0;color:#000}.background-colors[color=teal],:host [color=teal].badge-container-primary,:host [color=teal].badge-container-primary-ai,:host .badge-container-secondary [color=teal].point,:host .badge-container-secondary-ai [color=teal].point,:host [color=teal].badge-container-notification{background:#46a997}.background-colors[color=yellow],:host [color=yellow].badge-container-primary,:host [color=yellow].badge-container-primary-ai,:host .badge-container-secondary [color=yellow].point,:host .badge-container-secondary-ai [color=yellow].point,:host [color=yellow].badge-container-notification{background:#cca45f}.background-colors[color=petrol],:host [color=petrol].badge-container-primary,:host [color=petrol].badge-container-primary-ai,:host .badge-container-secondary [color=petrol].point,:host .badge-container-secondary-ai [color=petrol].point,:host [color=petrol].badge-container-notification{background:#276678}.background-colors[color=teal-60w],:host [color=teal-60w].badge-container-primary,:host [color=teal-60w].badge-container-primary-ai,:host .badge-container-secondary [color=teal-60w].point,:host .badge-container-secondary-ai [color=teal-60w].point,:host [color=teal-60w].badge-container-notification{background:#b5ddd5;color:#000}.background-colors[color=petrol-90w],:host [color=petrol-90w].badge-container-primary,:host [color=petrol-90w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-90w].point,:host .badge-container-secondary-ai [color=petrol-90w].point,:host [color=petrol-90w].badge-container-notification{background:#e9f0f1;color:#000}.background-colors[color=petrol-60w],:host [color=petrol-60w].badge-container-primary,:host [color=petrol-60w].badge-container-primary-ai,:host .badge-container-secondary [color=petrol-60w].point,:host .badge-container-secondary-ai [color=petrol-60w].point,:host [color=petrol-60w].badge-container-notification{background:#a9c2c9;color:#000}.background-colors[color=grey-dark],:host [color=grey-dark].badge-container-primary,:host [color=grey-dark].badge-container-primary-ai,:host .badge-container-secondary [color=grey-dark].point,:host .badge-container-secondary-ai [color=grey-dark].point,:host [color=grey-dark].badge-container-notification{background:#888}.background-colors[color=success],:host [color=success].badge-container-primary,:host [color=success].badge-container-primary-ai,:host .badge-container-secondary [color=success].point,:host .badge-container-secondary-ai [color=success].point,:host [color=success].badge-container-notification{background:#d4f2c3;color:#242424}.background-colors[color=warning],:host [color=warning].badge-container-primary,:host [color=warning].badge-container-primary-ai,:host .badge-container-secondary [color=warning].point,:host .badge-container-secondary-ai [color=warning].point,:host [color=warning].badge-container-notification{background:#ffe1b3;color:#242424}.background-colors[color=negative],:host [color=negative].badge-container-primary,:host [color=negative].badge-container-primary-ai,:host .badge-container-secondary [color=negative].point,:host .badge-container-secondary-ai [color=negative].point,:host [color=negative].badge-container-notification{background:#ffac9a;color:#242424}.background-colors[color=info],:host [color=info].badge-container-primary,:host [color=info].badge-container-primary-ai,:host .badge-container-secondary [color=info].point,:host .badge-container-secondary-ai [color=info].point,:host [color=info].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=brand],:host [color=brand].badge-container-primary,:host [color=brand].badge-container-primary-ai,:host .badge-container-secondary [color=brand].point,:host .badge-container-secondary-ai [color=brand].point,:host [color=brand].badge-container-notification{background:#ffe6fa;color:#242424}.background-colors[color=neutral],:host [color=neutral].badge-container-primary,:host [color=neutral].badge-container-primary-ai,:host .badge-container-secondary [color=neutral].point,:host .badge-container-secondary-ai [color=neutral].point,:host [color=neutral].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=blue-20],:host [color=blue-20].badge-container-primary,:host [color=blue-20].badge-container-primary-ai,:host .badge-container-secondary [color=blue-20].point,:host .badge-container-secondary-ai [color=blue-20].point,:host [color=blue-20].badge-container-notification{background:#99c1fe;color:#242424}.background-colors[color=blue-30],:host [color=blue-30].badge-container-primary,:host [color=blue-30].badge-container-primary-ai,:host .badge-container-secondary [color=blue-30].point,:host .badge-container-secondary-ai [color=blue-30].point,:host [color=blue-30].badge-container-notification{background:#277cfd;color:#fff}.background-colors[color=blue-40],:host [color=blue-40].badge-container-primary,:host [color=blue-40].badge-container-primary-ai,:host .badge-container-secondary [color=blue-40].point,:host .badge-container-secondary-ai [color=blue-40].point,:host [color=blue-40].badge-container-notification{background:#0165fc;color:#fff}.background-colors[color=pink-30],:host [color=pink-30].badge-container-primary,:host [color=pink-30].badge-container-primary-ai,:host .badge-container-secondary [color=pink-30].point,:host .badge-container-secondary-ai [color=pink-30].point,:host [color=pink-30].badge-container-notification{background:#ffb3ee;color:#242424}.background-colors[color=pink-50],:host [color=pink-50].badge-container-primary,:host [color=pink-50].badge-container-primary-ai,:host .badge-container-secondary [color=pink-50].point,:host .badge-container-secondary-ai [color=pink-50].point,:host [color=pink-50].badge-container-notification{background:#d410aa;color:#fff}.background-colors[color=blue-10],:host [color=blue-10].badge-container-primary,:host [color=blue-10].badge-container-primary-ai,:host .badge-container-secondary [color=blue-10].point,:host .badge-container-secondary-ai [color=blue-10].point,:host [color=blue-10].badge-container-notification{background:#d9e8ff;color:#242424}.background-colors[color=grey-30],:host [color=grey-30].badge-container-primary,:host [color=grey-30].badge-container-primary-ai,:host .badge-container-secondary [color=grey-30].point,:host .badge-container-secondary-ai [color=grey-30].point,:host [color=grey-30].badge-container-notification{background:#d3d3d3;color:#242424}.background-colors[color=grey-20],:host [color=grey-20].badge-container-primary,:host [color=grey-20].badge-container-primary-ai,:host .badge-container-secondary [color=grey-20].point,:host .badge-container-secondary-ai [color=grey-20].point,:host [color=grey-20].badge-container-notification{background:#e9e9e9;color:#242424}.background-colors[color=grey-10],:host [color=grey-10].badge-container-primary,:host [color=grey-10].badge-container-primary-ai,:host .badge-container-secondary [color=grey-10].point,:host .badge-container-secondary-ai [color=grey-10].point,:host [color=grey-10].badge-container-notification{background:#f4f4f4;color:#242424}\n"]
|
|
283
283
|
}]
|
|
284
284
|
}],
|
|
285
285
|
ctorParameters: () => [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-badge.mjs","names":[],"sources":["../../../components/badge/badge.model.ts","../../../components/badge/badge.component.ts","../../../components/badge/badge.component.html","../../../components/badge/badge.component.module.ts"],"sourcesContent":["export type BadgeVariant = 'primary' | 'secondary' | 'notification' | 'primary-ai' | 'secondary-ai';\nexport type BadgeColor =\n | 'red'\n | 'grey-medium'\n | 'teal'\n | 'yellow'\n | 'petrol'\n | 'teal-60w'\n | 'petrol-90w'\n | 'petrol-60w'\n | 'grey-dark'\n | 'blue-20'\n | 'blue-40'\n | 'pink-30'\n | 'blue-10';\n\nexport enum BadgeColorEnum {\n RED = 'red',\n GREY_MEDIUM = 'grey-medium',\n TEAL = 'teal',\n YELLOW = 'yellow',\n PETROL = 'petrol',\n TEAL_60W = 'teal-60w',\n PETROL_90W = 'petrol-90w',\n PETROL_60W = 'petrol-60w',\n GREY_DARK = 'grey-dark',\n BLUE_20 = 'blue-20',\n BLUE_40 = 'blue-40',\n}\n\nexport type RebrandBadgeColor =\n | 'success'\n | 'warning'\n | 'negative'\n | 'info'\n | 'brand'\n | 'neutral'\n | 'blue-20'\n | 'blue-40'\n | 'pink-30'\n | 'pink-50'\n | 'blue-10'\n | 'grey-10'\n | 'grey-20'\n | 'grey-30';\n\nexport enum RebrandBadgeColorEnum {\n SUCCESS = 'success',\n WARNING = 'warning',\n NEGATIVE = 'negative',\n INFO = 'info',\n BRAND = 'brand',\n NEUTRAL = 'neutral',\n BLUE_40 = 'blue-40',\n BLUE_20 = 'blue-20',\n PINK_30 = 'pink-30',\n PINK_50 = 'pink-50',\n BLUE_10 = 'blue-10',\n GREY_30 = 'grey-30',\n GREY_20 = 'grey-20',\n GREY_10 = 'grey-10',\n}\n\nexport enum BadgeVariantEnum {\n PRIMARY = 'primary',\n PRIMARY_AI = 'primary-ai',\n SECONDARY = 'secondary',\n SECONDARY_AI = 'secondary-ai',\n NOTIFICATION = 'notification',\n}\n","import { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Input, Optional, input } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconColor, IconName, IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport {\n BadgeColor,\n BadgeColorEnum,\n BadgeVariant,\n BadgeVariantEnum,\n RebrandBadgeColor,\n RebrandBadgeColorEnum,\n} from './badge.model';\n\n@Component({\n selector: 'ui-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n imports: [MatTooltip, IconComponentModule, NgTemplateOutlet, SlicePipe],\n})\nexport class BadgeComponent {\n /**\n * The label to be displayed on the badge.\n * @type {string}\n * @memberof BadgeComponent\n */\n @Input() label = '';\n\n /**\n * A static label always displayed after the main label, never truncated.\n * Intended for short suffixes (max 4 chars, e.g. \"100%\").\n * When the main label is truncated, the tooltip shows both labels in full.\n * @type {string}\n * @memberof BadgeComponent\n */\n @Input() staticLabel = '';\n\n /**\n * The icon name to be displayed on the badge.\n * @type {IconName}\n * @memberof BadgeComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * Override color for the leading icon. Accepts any value the `ui-icon`\n * `color` input accepts (named token, hex, or CSS custom property).\n * When unset, falls back to the auto-derived color based on the badge background.\n */\n iconColor = input<string | undefined>(undefined);\n\n /**\n * Optional trailing icon, rendered after the label/static label on the primary variant.\n */\n trailingIcon = input<IconName>('');\n\n /**\n * Override color for the trailing icon. Accepts any value the `ui-icon`\n * `color` input accepts (named token, hex, or CSS custom property).\n * When unset, falls back to the auto-derived color based on the badge background.\n */\n trailingIconColor = input<string | undefined>(undefined);\n\n /**\n * The color of the badge. Defaults to 'petrol'.\n * @type {BadgeColor}\n * @memberof BadgeComponent\n */\n @Input() color: BadgeColor = 'petrol';\n\n /**\n * The variant of the badge. Defaults to 'primary'.\n * @type {BadgeVariant}\n * @memberof BadgeComponent\n */\n @Input() variant: BadgeVariant = 'primary';\n\n /**\n * The amount of notifications to be displayed on the badge.\n * @type {number}\n * @memberof BadgeComponent\n */\n @Input() notificationsAmount = 0;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof BadgeComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The color of the badge on new theme. Defaults to 'brand'.\n * @type {RebrandBadgeColor}\n * @memberof BadgeComponent\n */\n @Input() rebrandColor: RebrandBadgeColor = 'brand';\n\n @Input() truncateLabel = true;\n\n /**\n * Whether to enable the animation when label changes from empty to having content.\n * @type {boolean}\n * @memberof BadgeComponent\n */\n @Input() enableAnimation = false;\n\n protected badgeVariant = BadgeVariantEnum;\n private readonly darkColors: string[] = [\n BadgeColorEnum.GREY_MEDIUM,\n BadgeColorEnum.PETROL_90W,\n BadgeColorEnum.TEAL_60W,\n BadgeColorEnum.PETROL_60W,\n RebrandBadgeColorEnum.SUCCESS,\n RebrandBadgeColorEnum.INFO,\n RebrandBadgeColorEnum.BRAND,\n RebrandBadgeColorEnum.NEUTRAL,\n RebrandBadgeColorEnum.NEGATIVE,\n RebrandBadgeColorEnum.WARNING,\n RebrandBadgeColorEnum.BLUE_20,\n RebrandBadgeColorEnum.PINK_30,\n RebrandBadgeColorEnum.BLUE_10,\n RebrandBadgeColorEnum.GREY_20,\n ];\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected get autoIconColor(): IconColor {\n return this.darkColors.includes(this.isClassicTheme ? this.color : this.rebrandColor) ? 'black' : 'white';\n }\n\n protected get resolvedIconColor(): IconColor {\n return this.iconColor() ?? this.autoIconColor;\n }\n\n protected get resolvedTrailingIconColor(): IconColor {\n return this.trailingIconColor() ?? this.autoIconColor;\n }\n\n protected get isClassicTheme(): boolean {\n return this.applicationTheme === 'classic';\n }\n}\n","<div\n [class]=\"'badge badge-container-' + variant\"\n [class.no-label]=\"!label && !staticLabel && !trailingIcon()\"\n [attr.aria-label]=\"label + (staticLabel ? ' ' + staticLabel : '')\"\n [attr.theme]=\"applicationTheme\"\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\n [matTooltip]=\"\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4)\n ? label + (staticLabel ? ' ' + staticLabel : '')\n : ''\n \"\n [matTooltipClass]=\"applicationTheme\"\n>\n @switch (variant) {\n @case (badgeVariant.PRIMARY) {\n @if (icon) {\n <ui-icon\n [class.badge-icon]=\"!!label || !!staticLabel || !!trailingIcon\"\n [name]=\"icon\"\n [color]=\"resolvedIconColor\"\n ></ui-icon>\n }\n }\n @case (badgeVariant.PRIMARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY) {\n <div class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\n }\n @case (badgeVariant.NOTIFICATION) {\n <div class=\"number-notification\">{{ notificationsAmount }}</div>\n }\n }\n @if (variant !== badgeVariant.NOTIFICATION) {\n <div class=\"label\" [class.empty]=\"!label && !staticLabel\" [class.animated]=\"enableAnimation\">\n {{\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4) && truncateLabel\n ? (label | slice: 0 : 25 - (staticLabel.length < 4 ? staticLabel.length : 4)) + '...'\n : label\n }}\n </div>\n }\n @if (staticLabel && variant !== badgeVariant.NOTIFICATION) {\n <span class=\"static-label\">{{ staticLabel | slice: 0 : 4 }}</span>\n }\n @if (trailingIcon() && variant === badgeVariant.PRIMARY) {\n <ui-icon class=\"badge-icon-trailing\" [name]=\"trailingIcon()\" [color]=\"resolvedTrailingIconColor\"></ui-icon>\n }\n</div>\n\n<ng-template #aiIconTpl>\n <ui-icon class=\"badge-icon\" [name]=\"'Sparkle-in-line'\" [color]=\"'ai'\"></ui-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, IconComponentModule, MatTooltipModule, BadgeComponent],\n exports: [BadgeComponent],\n})\nexport class BadgeComponentModule {}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-badge.mjs","names":[],"sources":["../../../components/badge/badge.model.ts","../../../components/badge/badge.component.ts","../../../components/badge/badge.component.html","../../../components/badge/badge.component.module.ts"],"sourcesContent":["export type BadgeVariant = 'primary' | 'secondary' | 'notification' | 'primary-ai' | 'secondary-ai';\nexport type BadgeColor =\n | 'red'\n | 'grey-medium'\n | 'teal'\n | 'yellow'\n | 'petrol'\n | 'teal-60w'\n | 'petrol-90w'\n | 'petrol-60w'\n | 'grey-dark'\n | 'blue-20'\n | 'blue-40'\n | 'pink-30'\n | 'blue-10';\n\nexport enum BadgeColorEnum {\n RED = 'red',\n GREY_MEDIUM = 'grey-medium',\n TEAL = 'teal',\n YELLOW = 'yellow',\n PETROL = 'petrol',\n TEAL_60W = 'teal-60w',\n PETROL_90W = 'petrol-90w',\n PETROL_60W = 'petrol-60w',\n GREY_DARK = 'grey-dark',\n BLUE_20 = 'blue-20',\n BLUE_40 = 'blue-40',\n}\n\nexport type RebrandBadgeColor =\n | 'success'\n | 'warning'\n | 'negative'\n | 'info'\n | 'brand'\n | 'neutral'\n | 'blue-20'\n | 'blue-40'\n | 'pink-30'\n | 'pink-50'\n | 'blue-10'\n | 'grey-10'\n | 'grey-20'\n | 'grey-30';\n\nexport enum RebrandBadgeColorEnum {\n SUCCESS = 'success',\n WARNING = 'warning',\n NEGATIVE = 'negative',\n INFO = 'info',\n BRAND = 'brand',\n NEUTRAL = 'neutral',\n BLUE_40 = 'blue-40',\n BLUE_20 = 'blue-20',\n PINK_30 = 'pink-30',\n PINK_50 = 'pink-50',\n BLUE_10 = 'blue-10',\n GREY_30 = 'grey-30',\n GREY_20 = 'grey-20',\n GREY_10 = 'grey-10',\n}\n\nexport enum BadgeVariantEnum {\n PRIMARY = 'primary',\n PRIMARY_AI = 'primary-ai',\n SECONDARY = 'secondary',\n SECONDARY_AI = 'secondary-ai',\n NOTIFICATION = 'notification',\n}\n","import { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Input, Optional, input } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconColor, IconName, IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport {\n BadgeColor,\n BadgeColorEnum,\n BadgeVariant,\n BadgeVariantEnum,\n RebrandBadgeColor,\n RebrandBadgeColorEnum,\n} from './badge.model';\n\n@Component({\n selector: 'ui-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n imports: [MatTooltip, IconComponentModule, NgTemplateOutlet, SlicePipe],\n})\nexport class BadgeComponent {\n /**\n * The label to be displayed on the badge.\n * @type {string}\n * @memberof BadgeComponent\n */\n @Input() label = '';\n\n /**\n * A static label always displayed after the main label, never truncated.\n * Intended for short suffixes (max 4 chars, e.g. \"100%\").\n * When the main label is truncated, the tooltip shows both labels in full.\n * @type {string}\n * @memberof BadgeComponent\n */\n @Input() staticLabel = '';\n\n /**\n * The icon name to be displayed on the badge.\n * @type {IconName}\n * @memberof BadgeComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * Override color for the leading icon. Accepts any value the `ui-icon`\n * `color` input accepts (named token, hex, or CSS custom property).\n * When unset, falls back to the auto-derived color based on the badge background.\n */\n iconColor = input<string | undefined>(undefined);\n\n /**\n * Optional trailing icon, rendered after the label/static label on the primary variant.\n */\n trailingIcon = input<IconName>('');\n\n /**\n * Override color for the trailing icon. Accepts any value the `ui-icon`\n * `color` input accepts (named token, hex, or CSS custom property).\n * When unset, falls back to the auto-derived color based on the badge background.\n */\n trailingIconColor = input<string | undefined>(undefined);\n\n /**\n * The color of the badge. Defaults to 'petrol'.\n * @type {BadgeColor}\n * @memberof BadgeComponent\n */\n @Input() color: BadgeColor = 'petrol';\n\n /**\n * The variant of the badge. Defaults to 'primary'.\n * @type {BadgeVariant}\n * @memberof BadgeComponent\n */\n @Input() variant: BadgeVariant = 'primary';\n\n /**\n * The amount of notifications to be displayed on the badge.\n * @type {number}\n * @memberof BadgeComponent\n */\n @Input() notificationsAmount = 0;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof BadgeComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The color of the badge on new theme. Defaults to 'brand'.\n * @type {RebrandBadgeColor}\n * @memberof BadgeComponent\n */\n @Input() rebrandColor: RebrandBadgeColor = 'brand';\n\n @Input() truncateLabel = true;\n\n /**\n * Whether to enable the animation when label changes from empty to having content.\n * @type {boolean}\n * @memberof BadgeComponent\n */\n @Input() enableAnimation = false;\n\n protected badgeVariant = BadgeVariantEnum;\n private readonly darkColors: string[] = [\n BadgeColorEnum.GREY_MEDIUM,\n BadgeColorEnum.PETROL_90W,\n BadgeColorEnum.TEAL_60W,\n BadgeColorEnum.PETROL_60W,\n RebrandBadgeColorEnum.SUCCESS,\n RebrandBadgeColorEnum.INFO,\n RebrandBadgeColorEnum.BRAND,\n RebrandBadgeColorEnum.NEUTRAL,\n RebrandBadgeColorEnum.NEGATIVE,\n RebrandBadgeColorEnum.WARNING,\n RebrandBadgeColorEnum.BLUE_20,\n RebrandBadgeColorEnum.PINK_30,\n RebrandBadgeColorEnum.BLUE_10,\n RebrandBadgeColorEnum.GREY_20,\n ];\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n protected get autoIconColor(): IconColor {\n return this.darkColors.includes(this.isClassicTheme ? this.color : this.rebrandColor) ? 'black' : 'white';\n }\n\n protected get resolvedIconColor(): IconColor {\n return this.iconColor() ?? this.autoIconColor;\n }\n\n protected get resolvedTrailingIconColor(): IconColor {\n return this.trailingIconColor() ?? this.autoIconColor;\n }\n\n protected get isClassicTheme(): boolean {\n return this.applicationTheme === 'classic';\n }\n}\n","<div\n [class]=\"'badge badge-container-' + variant\"\n [class.no-label]=\"!label && !staticLabel && !trailingIcon()\"\n [attr.aria-label]=\"label + (staticLabel ? ' ' + staticLabel : '')\"\n [attr.theme]=\"applicationTheme\"\n [attr.color]=\"isClassicTheme ? color : rebrandColor\"\n [matTooltip]=\"\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4)\n ? label + (staticLabel ? ' ' + staticLabel : '')\n : ''\n \"\n [matTooltipClass]=\"applicationTheme\"\n>\n @switch (variant) {\n @case (badgeVariant.PRIMARY) {\n @if (icon) {\n <ui-icon\n [class.badge-icon]=\"!!label || !!staticLabel || !!trailingIcon\"\n [name]=\"icon\"\n [color]=\"resolvedIconColor\"\n ></ui-icon>\n }\n }\n @case (badgeVariant.PRIMARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY_AI) {\n <ng-container [ngTemplateOutlet]=\"aiIconTpl\"></ng-container>\n }\n @case (badgeVariant.SECONDARY) {\n <div class=\"point\" [attr.color]=\"isClassicTheme ? color : rebrandColor\"></div>\n }\n @case (badgeVariant.NOTIFICATION) {\n <div class=\"number-notification\">{{ notificationsAmount }}</div>\n }\n }\n @if (variant !== badgeVariant.NOTIFICATION) {\n <div class=\"label\" [class.empty]=\"!label && !staticLabel\" [class.animated]=\"enableAnimation\">\n {{\n label.length > 25 - (staticLabel.length < 4 ? staticLabel.length : 4) && truncateLabel\n ? (label | slice: 0 : 25 - (staticLabel.length < 4 ? staticLabel.length : 4)) + '...'\n : label\n }}\n </div>\n }\n @if (staticLabel && variant !== badgeVariant.NOTIFICATION) {\n <span class=\"static-label\">{{ staticLabel | slice: 0 : 4 }}</span>\n }\n @if (trailingIcon() && variant === badgeVariant.PRIMARY) {\n <ui-icon class=\"badge-icon-trailing\" [name]=\"trailingIcon()\" [color]=\"resolvedTrailingIconColor\"></ui-icon>\n }\n</div>\n\n<ng-template #aiIconTpl>\n <ui-icon class=\"badge-icon\" [name]=\"'Sparkle-in-line'\" [color]=\"'ai'\"></ui-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, IconComponentModule, MatTooltipModule, BadgeComponent],\n exports: [BadgeComponent],\n})\nexport class BadgeComponentModule {}\n"],"mappings":"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"}
|