@testgorilla/tgo-ui 6.2.2 → 6.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/autocomplete/autocomplete.component.d.ts +2 -2
- package/components/badge/badge.component.d.ts +6 -6
- package/components/button/button.component.d.ts +4 -4
- package/components/checklist/checklist.component.d.ts +4 -5
- package/components/deprecated-paginator/deprecated-paginator.component.d.ts +2 -6
- package/components/dialog/dialog.component.d.ts +1 -1
- package/components/dialog/dialog.model.d.ts +2 -2
- package/components/dropdown/dropdown.component.d.ts +2 -2
- package/components/empty-state/empty-state.component.d.ts +2 -2
- package/components/file-upload/file-upload.component.d.ts +1 -1
- package/components/icon/icon.component.d.ts +2 -2
- package/components/icon/icon.model.d.ts +3 -3
- package/components/icon-label/icon-label.component.d.ts +1 -3
- package/components/logo/logo.component.d.ts +1 -1
- package/components/multi-input/multi-input.component.d.ts +1 -1
- package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +3 -3
- package/components/password-criteria/password.component.d.ts +1 -1
- package/components/radial-progress/radial-progress.component.d.ts +2 -2
- package/components/radio-button/radio-button.component.d.ts +3 -3
- package/components/segmented-bar/segmented-bar.component.d.ts +1 -1
- package/components/segmented-button/segmented-button.component.d.ts +1 -1
- package/components/side-panel/side-panel.model.d.ts +1 -1
- package/components/side-sheet/side-sheet.component.d.ts +1 -1
- package/components/spider-chart/spider-chart.component.d.ts +2 -2
- package/components/spider-chart/spider-chart.model.d.ts +2 -2
- package/components/stepper/step-line-element.directive.d.ts +1 -1
- package/components/stepper/step.component.d.ts +1 -1
- package/components/stepper/stepper.component.d.ts +2 -2
- package/components/table/table.component.d.ts +2 -2
- package/components/tabs/tabs.component.d.ts +2 -2
- package/components/universal-skills/universal-skills-report.component.d.ts +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +7 -25
- package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +0 -1
- package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +31 -18
- package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +6 -6
- package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs +39 -19
- package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +38 -10
- package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs +22 -16
- package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +6 -6
- package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +8 -8
- package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +18 -5
- package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs +2 -3
- package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +5 -5
- package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +2 -3
- package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +8 -7
- package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +0 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +2 -7
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +1 -3
- package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +5 -5
- package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +25 -4
- package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +4 -4
- package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +6 -6
- package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +5 -3
- package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +42 -10
- package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +4 -4
- package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +4 -4
- package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +21 -5
- package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +14 -11
- package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs +5 -5
- package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +3 -3
- package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +25 -7
- package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +25 -9
- package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +14 -15
- package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +6 -6
- package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui.mjs +2 -7
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +34 -28
- package/projects/tgo-canopy-ui/theme/_alert-bars.scss +2 -1
- package/projects/tgo-canopy-ui/theme/_breakpoints-mixin.scss +6 -6
- package/projects/tgo-canopy-ui/theme/_core.scss +1 -1
- package/projects/tgo-canopy-ui/theme/_icon.scss +1 -1
- package/projects/tgo-canopy-ui/theme/_input.scss +108 -65
- package/projects/tgo-canopy-ui/theme/_lib-styles.scss +8 -7
- package/projects/tgo-canopy-ui/theme/_mat-paginator.scss +11 -10
- package/projects/tgo-canopy-ui/theme/_palette.scss +41 -29
- package/projects/tgo-canopy-ui/theme/_tooltip.scss +30 -30
- package/projects/tgo-canopy-ui/theme/_typography.scss +24 -14
- package/projects/tgo-canopy-ui/theme/_variables.scss +56 -56
- package/projects/tgo-canopy-ui/theme/theme.scss +19 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-dialog.mjs","sources":["../../../components/dialog/dialog.component.ts","../../../components/dialog/dialog.component.html","../../../components/dialog/dialog.service.ts","../../../components/dialog/dialog.component.module.ts","../../../components/dialog/confirm-dialog/confirm-dialog.component.ts","../../../components/dialog/confirm-dialog/confirm-dialog.component.html","../../../components/dialog/confirm-dialog/confirm-dialog.component.module.ts","../../../components/dialog/dialog-custom/dialog-custom.component.ts","../../../components/dialog/dialog-custom/dialog-custom.component.html","../../../components/dialog/dialog-custom/dialog-custom.component.module.ts","../../../components/dialog/testgorilla-tgo-ui-components-dialog.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport { ButtonColor, ButtonIconPosition } from '@testgorilla/tgo-ui/components/button';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\n\n@Component({\n selector: 'ui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DialogComponent implements OnInit, OnChanges, AfterViewInit {\n /**\n * Dialog title\n *\n * @memberof DialogComponent\n */\n @Input() title? = '';\n\n /**\n * Show close button\n *\n * @memberof DialogComponent\n */\n @Input() showCloseButton = true;\n\n /**\n * Fuction called before dialgo is closed\n *\n * @memberof DialogComponent\n */\n @Input() canCloseFn: () => boolean = () => true;\n\n /**\n * Secondary button label\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonLabel? = '';\n\n /**\n * Footer dialog message\n *\n * @memberof DialogComponent\n */\n @Input() footerMessage? = '';\n\n /**\n * Primary button label\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonLabel? = '';\n\n /**\n * Primary button icon name\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonIconName?: IconName | '' = '';\n\n /**\n * Secondary button type\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonType: ButtonColor = 'ghost';\n\n /**\n * Primary button type\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonType: ButtonColor = 'primary';\n\n /**\n * Primary button test id\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonDataTestId: string | null = null;\n\n /**\n * Secondary button test id\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonDataTestId: string | null = null;\n\n /**\n * Color of the dialog.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DialogComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n /**\n *\n * Disable primary button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disablePrimaryButton = false;\n /**\n *\n * Disable close button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disableClose = false;\n\n /**\n *\n * Disable button when canCloseFn is used\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() shouldDisableButtons = true;\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 DialogComponent\n */\n @Input() ariaLabelledby = '';\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 DialogComponent\n */\n @Input() ariaDescribedby = '';\n\n /**\n * Defines how modal was opened (with keyboard or not)\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() keyboardOpen = false;\n\n primaryButtonIconPosition = input<ButtonIconPosition>('left');\n\n @Output() closeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() secondaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() primaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('closeButton') closeButton: ButtonComponent;\n\n modalClosed = false;\n\n @HostListener('keydown.esc', ['$event'])\n onEsc(_: KeyboardEvent) {\n this.dismiss();\n }\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<DialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: { applicationTheme: ApplicationTheme }\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n disableButtons = false;\n protected readonly translationContext = 'DIALOG.';\n\n @ContentChild('dialogHeader')\n customHeader?: any;\n\n get hasCustomHeader(): boolean {\n return !!this.customHeader;\n }\n\n ngOnInit(): void {\n this.areButtonsDisabled();\n if (this.data?.applicationTheme) {\n this.applicationTheme = this.data.applicationTheme;\n }\n if (this.applicationTheme !== 'classic') {\n this.companyColor = this.companyColor || '#D410AA';\n } else {\n this.companyColor = this.companyColor || '#46A997';\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['canCloseFn']) {\n this.dialogRef.disableClose = !this.canCloseFn();\n this.areButtonsDisabled();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.keyboardOpen) {\n setTimeout(() => {\n this.closeButton.buttonElement.focus('keyboard');\n }, 100);\n }\n }\n\n //Disable primary button when canClose is false\n areButtonsDisabled() {\n this.disableButtons = !this.canCloseFn() && this.shouldDisableButtons;\n }\n\n //Close modal\n dismiss(): void {\n if (this.canCloseFn()) {\n this.dialogRef.disableClose = false;\n this.dialogRef.close();\n this.modalClosed = true;\n }\n }\n\n onClose(event: Event): void {\n this.closeEvent.emit(event);\n this.modalClosed = true;\n }\n\n onSecondaryButtonClick(event: Event): void {\n this.secondaryButtonClickEvent.emit(event);\n }\n\n onPrimaryButtonClick(event: Event): void {\n this.primaryButtonClickEvent.emit(event);\n }\n}\n","<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div\n mat-dialog-title\n class=\"dialog-title\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n >\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n\n <!-- Default header content -->\n <ng-container *ngIf=\"!hasCustomHeader\">\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n #closeButton\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </ng-container>\n\n <!-- Custom header content projection -->\n <ng-content select=\"[dialogHeader]\"></ng-content>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div\n mat-dialog-actions\n *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\"\n [class.dialog-action-w-message]=\"!!footerMessage\"\n >\n @if (footerMessage) {\n <div class=\"actions-footer-message\">{{ footerMessage }}</div>\n }\n <ui-button\n *ngIf=\"!!secondaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n *ngIf=\"!!primaryButtonLabel\"\n [iconPosition]=\"primaryButtonIconPosition()\"\n [iconName]=\"primaryButtonIconName ? primaryButtonIconName : undefined\"\n [variant]=\"primaryButtonType\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n\n <!-- This is announcement for screen reader that dialog was closed-->\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px\">\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate | async }}</span>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { DialogConfig } from './dialog.model';\n\nexport type DialogSize = 'small' | 'large' | 'x-large';\n@Injectable()\nexport class DialogService {\n constructor(\n private matDialog: MatDialog,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {}\n\n open<K = any, R = any, T = any>(\n dialogComponent: ComponentType<T>,\n dialogConfig?: DialogConfig<K>\n ): MatDialogRef<T, R> {\n const {\n applicationTheme = 'light',\n size = 'small',\n panelClass = '',\n extraData = {},\n backdropClass = '',\n keyboardOpen = false,\n config = {},\n } = dialogConfig || {};\n // Open the dialog using UI custom styles\n return this.matDialog.open(dialogComponent, {\n ...config,\n data: {\n applicationTheme: this.defaultAppTheme ?? applicationTheme,\n ...extraData,\n keyboardOpen,\n },\n backdropClass: backdropClass || '',\n panelClass:\n applicationTheme === 'classic'\n ? ['ui-dialog-wrapper', panelClass, size]\n : ['ui-dialog-wrapper', panelClass, applicationTheme, size],\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [DialogComponent],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, UiTranslatePipe],\n exports: [DialogComponent],\n providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }, { provide: MatDialogRef, useValue: {} }, DialogService],\n})\nexport class DialogComponentModule {}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { LanguageService } from '@testgorilla/tgo-ui/components/core';\nimport { ButtonColor, ButtonIconPosition } from '@testgorilla/tgo-ui/components/button';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\nimport { ConfirmDialogData } from './confirm-dialog.model';\n\n@Component({\n selector: 'ui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n standalone: false,\n})\nexport class ConfirmDialogComponent {\n confirmMessage: string | undefined;\n confirmButtonText: string | undefined;\n cancelButtonText: string | undefined;\n title: string | undefined;\n lang = LanguageService.defaultLanguage;\n confirmMessageHtml: string | undefined;\n showCloseButton = false;\n showSecondaryButton = true;\n color: string | null;\n primaryButtonType: ButtonColor;\n secondaryButtonType: ButtonColor;\n primaryButtonIconName: IconName | undefined;\n primaryButtonDataTestId = 'confirm-dialog.confirm-button';\n secondaryButtonDataTestId = 'confirm-dialog.cancel-button';\n primaryButtonIconPosition: ButtonIconPosition;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: ConfirmDialogData\n ) {\n this.confirmMessage = data.message;\n this.confirmButtonText = data.confirmButtonText;\n this.cancelButtonText = data.cancelButtonText;\n this.title = data.title;\n this.lang = data.language ?? LanguageService.defaultLanguage;\n this.confirmMessageHtml = data.messageHtml ?? undefined;\n this.showCloseButton = data.showCloseButton ?? false;\n this.showSecondaryButton = data.showSecondaryButton ?? true;\n this.color = data.color ?? null;\n this.primaryButtonType = data.primaryButtonType ?? 'primary';\n this.secondaryButtonType = data.secondaryButtonType ?? 'ghost';\n this.primaryButtonIconName = data.primaryButtonIconName ?? undefined;\n this.primaryButtonDataTestId = data.primaryButtonDataTestId ?? 'confirm-dialog.confirm-button';\n this.secondaryButtonDataTestId = data.secondaryButtonDataTestId ?? 'confirm-dialog.cancel-button';\n this.primaryButtonIconPosition = data.primaryButtonIconPosition ?? 'left';\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n onConfirm(): void {\n if (this.data.onConfirm) {\n this.data.onConfirm();\n }\n this.dialogRef.close(true);\n }\n}\n","<ng-container>\n <ui-dialog\n [title]=\"title ?? ('COMMON.CONFIRM' | uiTranslate | async)!\"\n [primaryButtonLabel]=\"confirmButtonText ?? ('COMMON.YES' | uiTranslate | async)!\"\n [secondaryButtonLabel]=\"\n showSecondaryButton ? cancelButtonText ?? ('COMMON.CANCEL' | uiTranslate | async)! : undefined\n \"\n (primaryButtonClickEvent)=\"onConfirm()\"\n (secondaryButtonClickEvent)=\"dialogRef.close(false)\"\n (closeEvent)=\"dialogRef.close(null)\"\n [primaryButtonType]=\"primaryButtonType\"\n [primaryButtonIconName]=\"primaryButtonIconName\"\n [secondaryButtonType]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n [showCloseButton]=\"showCloseButton\"\n [companyColor]=\"color\"\n [primaryButtonDataTestId]=\"primaryButtonDataTestId\"\n [secondaryButtonDataTestId]=\"secondaryButtonDataTestId\"\n [primaryButtonIconPosition]=\"primaryButtonIconPosition\"\n >\n <div class=\"message\">{{ confirmMessage }}</div>\n @if (confirmMessageHtml) {\n <div class=\"message\" [innerHTML]=\"confirmMessageHtml\"></div>\n }\n </ui-dialog>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { DialogComponentModule } from '../dialog.component.module';\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: {} },\n { provide: MatDialogRef, useValue: {} },\n ],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, UiTranslatePipe]\n})\nexport class ConfirmDialogComponentModule {}\n","import { Component, Inject, Input, OnInit, Optional, ViewEncapsulation } from '@angular/core';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'ui-dialog-custom',\n templateUrl: './dialog-custom.component.html',\n styleUrls: ['./dialog-custom.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class DialogCustomComponent implements OnInit {\n canClose: () => boolean;\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(MAT_DIALOG_DATA) protected data: any\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {\n this.canClose = this.canCloseFalse.bind(this);\n setTimeout(() => {\n this.canClose = this.canCloseTrue.bind(this);\n }, 2000);\n }\n\n //canCloseFn @input demo with false value\n canCloseFalse(): boolean {\n return false;\n }\n\n //canCloseFn @input demo with true value\n canCloseTrue(): boolean {\n return true;\n }\n}\n","<ui-dialog\n [title]=\"data.title\"\n [showCloseButton]=\"data.showCloseButton\"\n [applicationTheme]=\"applicationTheme\"\n [primaryButtonLabel]=\"'OK'\"\n [secondaryButtonLabel]=\"'Cancel'\"\n [canCloseFn]=\"canClose\"\n [keyboardOpen]=\"data.keyboardOpen\"\n [footerMessage]=\"data.footerMessage\"\n>\n <!-- Custom header content -->\n <div *ngIf=\"data.type === 'custom-header'\" dialogHeader class=\"custom-header\">\n <div class=\"button-group\">\n <ui-button\n label=\"Action 1\"\n [variant]=\"'ghost'\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-button>\n <ui-button\n label=\"Action 2\"\n [variant]=\"'primary'\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-button>\n </div>\n </div>\n\n <!-- Dialog content -->\n <div class=\"dialog-content\">\n <p *ngIf=\"data.type === 'default'\" class=\"dialog-message\">\n This is a default dialog example with a standard header.\n </p>\n <p *ngIf=\"data.type === 'custom-header'\" class=\"dialog-message\">\n This dialog uses a custom header with content projection.\n </p>\n <p class=\"dialog-message\">\n The dialog will be closeable in 2 seconds (demonstrating canCloseFn).\n </p>\n </div>\n</ui-dialog>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DialogComponentModule } from '../dialog.component.module';\nimport { DialogCustomComponent } from './dialog-custom.component';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\n\n@NgModule({\n declarations: [DialogCustomComponent],\n imports: [CommonModule, DialogComponentModule, ButtonComponentModule],\n exports: [DialogCustomComponent],\n})\nexport class DialogCustomComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DialogComponent","i3","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-dialog.mjs","sources":["../../../components/dialog/dialog.component.ts","../../../components/dialog/dialog.component.html","../../../components/dialog/dialog.service.ts","../../../components/dialog/dialog.component.module.ts","../../../components/dialog/confirm-dialog/confirm-dialog.component.ts","../../../components/dialog/confirm-dialog/confirm-dialog.component.html","../../../components/dialog/confirm-dialog/confirm-dialog.component.module.ts","../../../components/dialog/dialog-custom/dialog-custom.component.ts","../../../components/dialog/dialog-custom/dialog-custom.component.html","../../../components/dialog/dialog-custom/dialog-custom.component.module.ts","../../../components/dialog/testgorilla-tgo-ui-components-dialog.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport { ButtonColor, ButtonIconPosition } from '@testgorilla/tgo-ui/components/button';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\n\n@Component({\n selector: 'ui-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class DialogComponent implements OnInit, OnChanges, AfterViewInit {\n /**\n * Dialog title\n *\n * @memberof DialogComponent\n */\n @Input() title? = '';\n\n /**\n * Show close button\n *\n * @memberof DialogComponent\n */\n @Input() showCloseButton = true;\n\n /**\n * Fuction called before dialgo is closed\n *\n * @memberof DialogComponent\n */\n @Input() canCloseFn: () => boolean = () => true;\n\n /**\n * Secondary button label\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonLabel? = '';\n\n /**\n * Footer dialog message\n *\n * @memberof DialogComponent\n */\n @Input() footerMessage? = '';\n\n /**\n * Primary button label\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonLabel? = '';\n\n /**\n * Primary button icon name\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonIconName?: IconName | '' = '';\n\n /**\n * Secondary button type\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonType: ButtonColor = 'ghost';\n\n /**\n * Primary button type\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonType: ButtonColor = 'primary';\n\n /**\n * Primary button test id\n *\n * @memberof DialogComponent\n */\n @Input() primaryButtonDataTestId: string | null = null;\n\n /**\n * Secondary button test id\n *\n * @memberof DialogComponent\n */\n @Input() secondaryButtonDataTestId: string | null = null;\n\n /**\n * Color of the dialog.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DialogComponent\n */\n @HostBinding('style.--color')\n @Input()\n companyColor: string | null = '';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n /**\n *\n * Disable primary button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disablePrimaryButton = false;\n /**\n *\n * Disable close button\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() disableClose = false;\n\n /**\n *\n * Disable button when canCloseFn is used\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() shouldDisableButtons = true;\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 DialogComponent\n */\n @Input() ariaLabelledby = '';\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 DialogComponent\n */\n @Input() ariaDescribedby = '';\n\n /**\n * Defines how modal was opened (with keyboard or not)\n *\n * @type {boolean}\n * @memberof DialogComponent\n */\n @Input() keyboardOpen = false;\n\n primaryButtonIconPosition = input<ButtonIconPosition>('left');\n\n @Output() closeEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() secondaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n @Output() primaryButtonClickEvent: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('closeButton') closeButton: ButtonComponent;\n\n modalClosed = false;\n\n @HostListener('keydown.esc')\n onEsc() {\n this.dismiss();\n }\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<DialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: { applicationTheme: ApplicationTheme }\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n disableButtons = false;\n protected readonly translationContext = 'DIALOG.';\n\n @ContentChild('dialogHeader')\n customHeader?: any;\n\n get hasCustomHeader(): boolean {\n return !!this.customHeader;\n }\n\n ngOnInit(): void {\n this.areButtonsDisabled();\n if (this.data?.applicationTheme) {\n this.applicationTheme = this.data.applicationTheme;\n }\n if (this.applicationTheme !== 'classic') {\n this.companyColor = this.companyColor || '#D410AA';\n } else {\n this.companyColor = this.companyColor || '#46A997';\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['canCloseFn']) {\n this.dialogRef.disableClose = !this.canCloseFn();\n this.areButtonsDisabled();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.keyboardOpen) {\n setTimeout(() => {\n this.closeButton.buttonElement.focus('keyboard');\n }, 100);\n }\n }\n\n //Disable primary button when canClose is false\n areButtonsDisabled() {\n this.disableButtons = !this.canCloseFn() && this.shouldDisableButtons;\n }\n\n //Close modal\n dismiss(): void {\n if (this.canCloseFn()) {\n this.dialogRef.disableClose = false;\n this.dialogRef.close();\n this.modalClosed = true;\n }\n }\n\n onClose(event: Event): void {\n this.closeEvent.emit(event);\n this.modalClosed = true;\n }\n\n onSecondaryButtonClick(event: Event): void {\n this.secondaryButtonClickEvent.emit(event);\n }\n\n onPrimaryButtonClick(event: Event): void {\n this.primaryButtonClickEvent.emit(event);\n }\n}\n","<div class=\"dialog-container\" [attr.theme]=\"applicationTheme\">\n <div\n mat-dialog-title\n class=\"dialog-title\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"'labelledby'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n >\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n\n <!-- Default header content -->\n <ng-container *ngIf=\"!hasCustomHeader\">\n <h3 class=\"bold\" id=\"labelledby\">{{ title }}</h3>\n <div *ngIf=\"showCloseButton\">\n <ui-button\n #closeButton\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [companyColor]=\"applicationTheme === 'classic' ? '#000' : '#242424'\"\n [applicationTheme]=\"applicationTheme\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n (click)=\"onClose($event)\"\n (buttonClickEvent)=\"dismiss()\"\n id=\"dialog-close-button\"\n ></ui-button>\n </div>\n </ng-container>\n\n <!-- Custom header content projection -->\n <ng-content select=\"[dialogHeader]\"></ng-content>\n </div>\n <mat-dialog-content>\n <ng-content></ng-content>\n </mat-dialog-content>\n <div\n mat-dialog-actions\n *ngIf=\"secondaryButtonLabel !== '' || primaryButtonLabel !== ''\"\n [class.dialog-action-w-message]=\"!!footerMessage\"\n >\n @if (footerMessage) {\n <div class=\"actions-footer-message\">{{ footerMessage }}</div>\n }\n <ui-button\n *ngIf=\"!!secondaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [variant]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick($event)\"\n ></ui-button>\n <ui-button\n *ngIf=\"!!primaryButtonLabel\"\n [iconPosition]=\"primaryButtonIconPosition()\"\n [iconName]=\"primaryButtonIconName ? primaryButtonIconName : undefined\"\n [variant]=\"primaryButtonType\"\n [disabled]=\"disableButtons || disablePrimaryButton\"\n [applicationTheme]=\"applicationTheme\"\n (click)=\"onPrimaryButtonClick($event)\"\n [label]=\"primaryButtonLabel\"\n [companyColor]=\"companyColor\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (buttonClickEvent)=\"dismiss()\"\n ></ui-button>\n </div>\n\n <!-- This is announcement for screen reader that dialog was closed-->\n <div aria-live=\"assertive\" role=\"alert\" style=\"position: absolute; left: -9999px\">\n <span *ngIf=\"modalClosed\">{{ 'DIALOG.CLOSED' | uiTranslate | async }}</span>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { DialogConfig } from './dialog.model';\n\nexport type DialogSize = 'small' | 'large' | 'x-large';\n@Injectable()\nexport class DialogService {\n constructor(\n private matDialog: MatDialog,\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {}\n\n open<K = any, R = any, T = any>(\n dialogComponent: ComponentType<T>,\n dialogConfig?: DialogConfig<K>\n ): MatDialogRef<T, R> {\n const {\n applicationTheme = 'light',\n size = 'small',\n panelClass = '',\n extraData = {},\n backdropClass = '',\n keyboardOpen = false,\n config = {},\n } = dialogConfig || {};\n // Open the dialog using UI custom styles\n return this.matDialog.open(dialogComponent, {\n ...config,\n data: {\n applicationTheme: this.defaultAppTheme ?? applicationTheme,\n ...extraData,\n keyboardOpen,\n },\n backdropClass: backdropClass || '',\n panelClass:\n applicationTheme === 'classic'\n ? ['ui-dialog-wrapper', panelClass, size]\n : ['ui-dialog-wrapper', panelClass, applicationTheme, size],\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './dialog.service';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [DialogComponent],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, UiTranslatePipe],\n exports: [DialogComponent],\n providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }, { provide: MatDialogRef, useValue: {} }, DialogService],\n})\nexport class DialogComponentModule {}\n","import { Component, Inject, Input, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { LanguageService } from '@testgorilla/tgo-ui/components/core';\nimport { ButtonColor, ButtonIconPosition } from '@testgorilla/tgo-ui/components/button';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\nimport { ConfirmDialogData } from './confirm-dialog.model';\n\n@Component({\n selector: 'ui-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n standalone: false,\n})\nexport class ConfirmDialogComponent {\n confirmMessage: string | undefined;\n confirmButtonText: string | undefined;\n cancelButtonText: string | undefined;\n title: string | undefined;\n lang = LanguageService.defaultLanguage;\n confirmMessageHtml: string | undefined;\n showCloseButton = false;\n showSecondaryButton = true;\n color: string | null;\n primaryButtonType: ButtonColor;\n secondaryButtonType: ButtonColor;\n primaryButtonIconName: IconName | undefined;\n primaryButtonDataTestId = 'confirm-dialog.confirm-button';\n secondaryButtonDataTestId = 'confirm-dialog.cancel-button';\n primaryButtonIconPosition: ButtonIconPosition;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: ConfirmDialogData\n ) {\n this.confirmMessage = data.message;\n this.confirmButtonText = data.confirmButtonText;\n this.cancelButtonText = data.cancelButtonText;\n this.title = data.title;\n this.lang = data.language ?? LanguageService.defaultLanguage;\n this.confirmMessageHtml = data.messageHtml ?? undefined;\n this.showCloseButton = data.showCloseButton ?? false;\n this.showSecondaryButton = data.showSecondaryButton ?? true;\n this.color = data.color ?? null;\n this.primaryButtonType = data.primaryButtonType ?? 'primary';\n this.secondaryButtonType = data.secondaryButtonType ?? 'ghost';\n this.primaryButtonIconName = data.primaryButtonIconName ?? undefined;\n this.primaryButtonDataTestId = data.primaryButtonDataTestId ?? 'confirm-dialog.confirm-button';\n this.secondaryButtonDataTestId = data.secondaryButtonDataTestId ?? 'confirm-dialog.cancel-button';\n this.primaryButtonIconPosition = data.primaryButtonIconPosition ?? 'left';\n\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n onConfirm(): void {\n if (this.data.onConfirm) {\n this.data.onConfirm();\n }\n this.dialogRef.close(true);\n }\n}\n","<ng-container>\n <ui-dialog\n [title]=\"title ?? ('COMMON.CONFIRM' | uiTranslate | async)!\"\n [primaryButtonLabel]=\"confirmButtonText ?? ('COMMON.YES' | uiTranslate | async)!\"\n [secondaryButtonLabel]=\"\n showSecondaryButton ? (cancelButtonText ?? ('COMMON.CANCEL' | uiTranslate | async)!) : undefined\n \"\n (primaryButtonClickEvent)=\"onConfirm()\"\n (secondaryButtonClickEvent)=\"dialogRef.close(false)\"\n (closeEvent)=\"dialogRef.close(null)\"\n [primaryButtonType]=\"primaryButtonType\"\n [primaryButtonIconName]=\"primaryButtonIconName\"\n [secondaryButtonType]=\"secondaryButtonType\"\n [applicationTheme]=\"applicationTheme\"\n [showCloseButton]=\"showCloseButton\"\n [companyColor]=\"color\"\n [primaryButtonDataTestId]=\"primaryButtonDataTestId\"\n [secondaryButtonDataTestId]=\"secondaryButtonDataTestId\"\n [primaryButtonIconPosition]=\"primaryButtonIconPosition\"\n >\n <div class=\"message\">{{ confirmMessage }}</div>\n @if (confirmMessageHtml) {\n <div class=\"message\" [innerHTML]=\"confirmMessageHtml\"></div>\n }\n </ui-dialog>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { DialogComponentModule } from '../dialog.component.module';\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [\n { provide: MAT_DIALOG_DATA, useValue: {} },\n { provide: MatDialogRef, useValue: {} },\n ],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, UiTranslatePipe],\n})\nexport class ConfirmDialogComponentModule {}\n","import { Component, Inject, Input, OnInit, Optional, ViewEncapsulation } from '@angular/core';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'ui-dialog-custom',\n templateUrl: './dialog-custom.component.html',\n styleUrls: ['./dialog-custom.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class DialogCustomComponent implements OnInit {\n canClose: () => boolean;\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DialogComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(MAT_DIALOG_DATA) protected data: any\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {\n this.canClose = this.canCloseFalse.bind(this);\n setTimeout(() => {\n this.canClose = this.canCloseTrue.bind(this);\n }, 2000);\n }\n\n //canCloseFn @input demo with false value\n canCloseFalse(): boolean {\n return false;\n }\n\n //canCloseFn @input demo with true value\n canCloseTrue(): boolean {\n return true;\n }\n}\n","<ui-dialog\n [title]=\"data.title\"\n [showCloseButton]=\"data.showCloseButton\"\n [applicationTheme]=\"applicationTheme\"\n [primaryButtonLabel]=\"'OK'\"\n [secondaryButtonLabel]=\"'Cancel'\"\n [canCloseFn]=\"canClose\"\n [keyboardOpen]=\"data.keyboardOpen\"\n [footerMessage]=\"data.footerMessage\"\n>\n <!-- Custom header content -->\n <div *ngIf=\"data.type === 'custom-header'\" dialogHeader class=\"custom-header\">\n <div class=\"button-group\">\n <ui-button label=\"Action 1\" [variant]=\"'ghost'\" [applicationTheme]=\"applicationTheme\"></ui-button>\n <ui-button label=\"Action 2\" [variant]=\"'primary'\" [applicationTheme]=\"applicationTheme\"></ui-button>\n </div>\n </div>\n\n <!-- Dialog content -->\n <div class=\"dialog-content\">\n <p *ngIf=\"data.type === 'default'\" class=\"dialog-message\">\n This is a default dialog example with a standard header.\n </p>\n <p *ngIf=\"data.type === 'custom-header'\" class=\"dialog-message\">\n This dialog uses a custom header with content projection.\n </p>\n <p class=\"dialog-message\">The dialog will be closeable in 2 seconds (demonstrating canCloseFn).</p>\n </div>\n</ui-dialog>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DialogComponentModule } from '../dialog.component.module';\nimport { DialogCustomComponent } from './dialog-custom.component';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\n\n@NgModule({\n declarations: [DialogCustomComponent],\n imports: [CommonModule, DialogComponentModule, ButtonComponentModule],\n exports: [DialogCustomComponent],\n})\nexport class DialogCustomComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DialogComponent","i3","i1"],"mappings":"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"}
|
|
@@ -43,11 +43,11 @@ class DividerComponent {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DividerComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.19", type: DividerComponent, isStandalone: false, selector: "ui-divider", inputs: { size: "size", companyColor: "companyColor", applicationTheme: "applicationTheme", label: "label" }, host: { properties: { "style.--companyColor": "this.companyColor" } }, ngImport: i0, template: "<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}mat-divider.classic.small{--mat-divider-width: 1px;--mat-divider-color: #
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.19", type: DividerComponent, isStandalone: false, selector: "ui-divider", inputs: { size: "size", companyColor: "companyColor", applicationTheme: "applicationTheme", label: "label" }, host: { properties: { "style.--companyColor": "this.companyColor" } }, ngImport: i0, template: "<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}mat-divider.classic.small{--mat-divider-width: 1px;--mat-divider-color: #e0e0e0}mat-divider.classic.large{--mat-divider-width: 2px;--mat-divider-color: var(--companyColor)}mat-divider.light.small,mat-divider.dark.small{--mat-divider-width: 1px;--mat-divider-color: #d3d3d3}mat-divider.light.large,mat-divider.dark.large{--mat-divider-width: 2px;--mat-divider-color: #242424}.ui-divider-wrapper .container{width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.ui-divider-wrapper .line{flex:1}.ui-divider-wrapper .label{font-size:14px;padding:0 8px}.ui-divider-wrapper .label.large{color:#242424}.ui-divider-wrapper .label.small{color:#666}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] }); }
|
|
47
47
|
}
|
|
48
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DividerComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
50
|
-
args: [{ selector: 'ui-divider', standalone: false, template: "<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}mat-divider.classic.small{--mat-divider-width: 1px;--mat-divider-color: #
|
|
50
|
+
args: [{ selector: 'ui-divider', standalone: false, template: "<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}mat-divider.classic.small{--mat-divider-width: 1px;--mat-divider-color: #e0e0e0}mat-divider.classic.large{--mat-divider-width: 2px;--mat-divider-color: var(--companyColor)}mat-divider.light.small,mat-divider.dark.small{--mat-divider-width: 1px;--mat-divider-color: #d3d3d3}mat-divider.light.large,mat-divider.dark.large{--mat-divider-width: 2px;--mat-divider-color: #242424}.ui-divider-wrapper .container{width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center}.ui-divider-wrapper .line{flex:1}.ui-divider-wrapper .label{font-size:14px;padding:0 8px}.ui-divider-wrapper .label.large{color:#242424}.ui-divider-wrapper .label.small{color:#666}\n"] }]
|
|
51
51
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
52
52
|
type: Optional
|
|
53
53
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-divider.mjs","sources":["../../../components/divider/divider.component.ts","../../../components/divider/divider.component.html","../../../components/divider/divider.component.module.ts","../../../components/divider/testgorilla-tgo-ui-components-divider.ts"],"sourcesContent":["import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport { DividerSize } from './divider.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-divider.mjs","sources":["../../../components/divider/divider.component.ts","../../../components/divider/divider.component.html","../../../components/divider/divider.component.module.ts","../../../components/divider/testgorilla-tgo-ui-components-divider.ts"],"sourcesContent":["import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport { DividerSize } from './divider.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n standalone: false,\n})\nexport class DividerComponent {\n /**\n * Divider size\n *\n * @type {DividerSize}\n * @memberof DividerComponent\n */\n @Input() size: DividerSize = 'large';\n\n /**\n * Determines whether the checkbox color.\n * Default: Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @HostBinding('style.--companyColor')\n @Input()\n companyColor: string | null = '#46A997';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DividerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Text content in the center of the divider\n *\n * @type {string}\n * @memberof DividerComponent\n */\n @Input() label = '';\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","<div class=\"ui-divider-wrapper\">\n <ng-container *ngIf=\"!label; else withLabel\">\n <mat-divider aria-hidden=\"true\" [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider>\n </ng-container>\n\n <ng-template #withLabel>\n <div class=\"container\">\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n <div [class]=\"'label' + ' ' + size\">{{ label }}</div>\n <div class=\"line\" aria-hidden=\"true\"><mat-divider [class]=\"applicationTheme\" [ngClass]=\"size\"></mat-divider></div>\n </div>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DividerComponent } from './divider.component';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@NgModule({\n declarations: [DividerComponent],\n exports: [DividerComponent],\n imports: [CommonModule, MatDividerModule],\n})\nexport class DividerComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -116,11 +116,11 @@ class DonutChartComponent {
|
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
118
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DonutChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.19", type: DonutChartComponent, isStandalone: false, selector: "ui-donut-chart", inputs: { donutChartData: { classPropertyName: "donutChartData", publicName: "donutChartData", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div style=\"height: 200px
|
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.19", type: DonutChartComponent, isStandalone: false, selector: "ui-donut-chart", inputs: { donutChartData: { classPropertyName: "donutChartData", publicName: "donutChartData", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.BaseChartDirective, selector: "canvas[baseChart]", inputs: ["type", "legend", "data", "options", "plugins", "labels", "datasets"], outputs: ["chartClick", "chartHover"], exportAs: ["base-chart"] }] }); }
|
|
120
120
|
}
|
|
121
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DonutChartComponent, decorators: [{
|
|
122
122
|
type: Component,
|
|
123
|
-
args: [{ selector: 'ui-donut-chart', standalone: false, template: "<div style=\"height: 200px
|
|
123
|
+
args: [{ selector: 'ui-donut-chart', standalone: false, template: "<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n" }]
|
|
124
124
|
}] });
|
|
125
125
|
|
|
126
126
|
Chart.register(...registerables);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-donut-chart.mjs","sources":["../../../components/donut-chart/donut-chart.component.ts","../../../components/donut-chart/donut-chart.component.html","../../../components/donut-chart/donut-chart.component.module.ts","../../../components/donut-chart/testgorilla-tgo-ui-components-donut-chart.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { DonutChartData } from './donut-chart.component.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { ChartOptions, Plugin } from 'chart.js';\nimport DataLabelsPlugin from 'chartjs-plugin-datalabels';\n\n@Component({\n selector: 'ui-donut-chart',\n templateUrl: './donut-chart.component.html',\n styleUrls: ['./donut-chart.component.scss'],\n standalone: false\n})\nexport class DonutChartComponent {\n donutChartData = input<DonutChartData>();\n applicationTheme = input<ApplicationTheme>('light');\n\n readonly chartData = computed(() => {\n const data = this.donutChartData();\n return data\n ? {\n labels: data.labels,\n datasets: [\n {\n data: data.data,\n backgroundColor: data.backgroundColor,\n borderWidth: 0,\n },\n ],\n }\n : { labels: [], datasets: [] };\n });\n\n // Plugin to display the total in the center\n centerTextPlugin: Plugin<'doughnut'> = {\n id: 'centerText',\n beforeDraw: (chart: any) => {\n const {\n ctx,\n chartArea: { width, height },\n } = chart;\n const total = chart.data.datasets[0].data.reduce((a: number, b: number) => a + b, 0);\n const padding = 32;\n ctx.save();\n ctx.font = 'bold 14px ModernGothic';\n ctx.fillStyle = '#242424';\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillText(total.toString(), (width + padding) / 2, (height + padding) / 2);\n ctx.restore();\n },\n };\n\n // Plugin to draw lines from the donut segments to the labels\n labelLinePlugin: Plugin<'doughnut'> = {\n id: 'labelLinePlugin',\n afterDatasetDraw: (chart: any) => {\n const { ctx, data } = chart;\n const meta = chart.getDatasetMeta(0);\n const radialOffset = 10; // length of the radial segment (elbow)\n const horizontalLength = 20; // new length of the horizontal segment\n const fontSize = 14;\n\n ctx.save();\n ctx.strokeStyle = '#666';\n ctx.lineWidth = 1;\n ctx.font = `${fontSize}px ModernGothic`;\n ctx.fillStyle = '#242424';\n\n meta.data.forEach((arc: any, index: number) => {\n const angle = (arc.startAngle + arc.endAngle) / 2;\n const radius = arc.outerRadius;\n const centerX = arc.x;\n const centerY = arc.y;\n\n // Start point: outer edge of the arc\n const startX = centerX + Math.cos(angle) * radius;\n const startY = centerY + Math.sin(angle) * radius;\n\n // Elbow: short line outward\n const midX = centerX + Math.cos(angle) * (radius + radialOffset);\n const midY = centerY + Math.sin(angle) * (radius + radialOffset);\n\n // Extended horizontal line\n const direction = Math.cos(angle) >= 0 ? 1 : -1;\n const endX = midX + direction * horizontalLength;\n const endY = midY;\n\n // Draw line with elbow\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(midX, midY);\n ctx.lineTo(endX, endY);\n ctx.stroke();\n\n // Draw value at the end\n const value = data.datasets[0].data?.[index] ?? '';\n const textX = endX + direction * 5;\n ctx.textAlign = direction > 0 ? 'left' : 'right';\n ctx.textBaseline = 'middle';\n ctx.fillText(value, textX, endY);\n });\n\n ctx.restore();\n },\n };\n\n public donutChartPlugins: Plugin<'doughnut'>[] = [DataLabelsPlugin, this.centerTextPlugin, this.labelLinePlugin];\n\n public donutChartOptions: ChartOptions<'doughnut'> = {\n responsive: true,\n cutout: '65%',\n aspectRatio: 2,\n layout: {\n padding: 16,\n },\n plugins: {\n legend: {\n onClick: () => null, // Disable legend click events\n position: 'right',\n labels: {\n font: {\n family: 'ModernGothic',\n size: 14,\n },\n boxWidth: 14,\n padding: 20,\n },\n },\n tooltip: {\n enabled: false,\n },\n datalabels: {\n display: false,\n },\n },\n };\n}\n","<div style=\"height: 200px;\">\n <canvas\n baseChart\n [data]=\"chartData()\"\n type=\"doughnut\"\n [options]=\"donutChartOptions\"\n [plugins]=\"donutChartPlugins\"\n >\n </canvas>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DonutChartComponent } from './donut-chart.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport { Chart, registerables } from 'chart.js';\n\nChart.register(...registerables);\n\n@NgModule({\n declarations: [DonutChartComponent],\n exports: [DonutChartComponent],\n imports: [NgChartsModule],\n})\nexport class DonutChartComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-donut-chart.mjs","sources":["../../../components/donut-chart/donut-chart.component.ts","../../../components/donut-chart/donut-chart.component.html","../../../components/donut-chart/donut-chart.component.module.ts","../../../components/donut-chart/testgorilla-tgo-ui-components-donut-chart.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { DonutChartData } from './donut-chart.component.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { ChartOptions, Plugin } from 'chart.js';\nimport DataLabelsPlugin from 'chartjs-plugin-datalabels';\n\n@Component({\n selector: 'ui-donut-chart',\n templateUrl: './donut-chart.component.html',\n styleUrls: ['./donut-chart.component.scss'],\n standalone: false,\n})\nexport class DonutChartComponent {\n donutChartData = input<DonutChartData>();\n applicationTheme = input<ApplicationTheme>('light');\n\n readonly chartData = computed(() => {\n const data = this.donutChartData();\n return data\n ? {\n labels: data.labels,\n datasets: [\n {\n data: data.data,\n backgroundColor: data.backgroundColor,\n borderWidth: 0,\n },\n ],\n }\n : { labels: [], datasets: [] };\n });\n\n // Plugin to display the total in the center\n centerTextPlugin: Plugin<'doughnut'> = {\n id: 'centerText',\n beforeDraw: (chart: any) => {\n const {\n ctx,\n chartArea: { width, height },\n } = chart;\n const total = chart.data.datasets[0].data.reduce((a: number, b: number) => a + b, 0);\n const padding = 32;\n ctx.save();\n ctx.font = 'bold 14px ModernGothic';\n ctx.fillStyle = '#242424';\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillText(total.toString(), (width + padding) / 2, (height + padding) / 2);\n ctx.restore();\n },\n };\n\n // Plugin to draw lines from the donut segments to the labels\n labelLinePlugin: Plugin<'doughnut'> = {\n id: 'labelLinePlugin',\n afterDatasetDraw: (chart: any) => {\n const { ctx, data } = chart;\n const meta = chart.getDatasetMeta(0);\n const radialOffset = 10; // length of the radial segment (elbow)\n const horizontalLength = 20; // new length of the horizontal segment\n const fontSize = 14;\n\n ctx.save();\n ctx.strokeStyle = '#666';\n ctx.lineWidth = 1;\n ctx.font = `${fontSize}px ModernGothic`;\n ctx.fillStyle = '#242424';\n\n meta.data.forEach((arc: any, index: number) => {\n const angle = (arc.startAngle + arc.endAngle) / 2;\n const radius = arc.outerRadius;\n const centerX = arc.x;\n const centerY = arc.y;\n\n // Start point: outer edge of the arc\n const startX = centerX + Math.cos(angle) * radius;\n const startY = centerY + Math.sin(angle) * radius;\n\n // Elbow: short line outward\n const midX = centerX + Math.cos(angle) * (radius + radialOffset);\n const midY = centerY + Math.sin(angle) * (radius + radialOffset);\n\n // Extended horizontal line\n const direction = Math.cos(angle) >= 0 ? 1 : -1;\n const endX = midX + direction * horizontalLength;\n const endY = midY;\n\n // Draw line with elbow\n ctx.beginPath();\n ctx.moveTo(startX, startY);\n ctx.lineTo(midX, midY);\n ctx.lineTo(endX, endY);\n ctx.stroke();\n\n // Draw value at the end\n const value = data.datasets[0].data?.[index] ?? '';\n const textX = endX + direction * 5;\n ctx.textAlign = direction > 0 ? 'left' : 'right';\n ctx.textBaseline = 'middle';\n ctx.fillText(value, textX, endY);\n });\n\n ctx.restore();\n },\n };\n\n public donutChartPlugins: Plugin<'doughnut'>[] = [DataLabelsPlugin, this.centerTextPlugin, this.labelLinePlugin];\n\n public donutChartOptions: ChartOptions<'doughnut'> = {\n responsive: true,\n cutout: '65%',\n aspectRatio: 2,\n layout: {\n padding: 16,\n },\n plugins: {\n legend: {\n onClick: () => null, // Disable legend click events\n position: 'right',\n labels: {\n font: {\n family: 'ModernGothic',\n size: 14,\n },\n boxWidth: 14,\n padding: 20,\n },\n },\n tooltip: {\n enabled: false,\n },\n datalabels: {\n display: false,\n },\n },\n };\n}\n","<div style=\"height: 200px\">\n <canvas baseChart [data]=\"chartData()\" type=\"doughnut\" [options]=\"donutChartOptions\" [plugins]=\"donutChartPlugins\">\n </canvas>\n</div>\n","import { NgModule } from '@angular/core';\nimport { DonutChartComponent } from './donut-chart.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport { Chart, registerables } from 'chart.js';\n\nChart.register(...registerables);\n\n@NgModule({\n declarations: [DonutChartComponent],\n exports: [DonutChartComponent],\n imports: [NgChartsModule],\n})\nexport class DonutChartComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ import * as i8 from '@testgorilla/tgo-ui/components/validation-error';
|
|
|
20
20
|
import { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';
|
|
21
21
|
import { MatInputModule } from '@angular/material/input';
|
|
22
22
|
|
|
23
|
+
// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle
|
|
23
24
|
class DropdownComponent {
|
|
24
25
|
onTabPress() {
|
|
25
26
|
this.matSelect?.close();
|
|
@@ -175,23 +176,29 @@ class DropdownComponent {
|
|
|
175
176
|
* Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors
|
|
176
177
|
* to display validation errors that might happen (e.g. required)
|
|
177
178
|
*/
|
|
179
|
+
// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle
|
|
178
180
|
ngDoCheck() {
|
|
179
181
|
if (this.ngControl?.touched || this.ngControl?.errors) {
|
|
180
182
|
this.cdr.markForCheck();
|
|
181
183
|
}
|
|
182
184
|
}
|
|
185
|
+
// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle
|
|
183
186
|
ngOnInit() {
|
|
184
187
|
this.errorsLength = this.setErrorsLength();
|
|
185
188
|
this.setStyleVariable();
|
|
186
189
|
}
|
|
190
|
+
// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle
|
|
187
191
|
ngOnChanges(changes) {
|
|
188
192
|
if (changes['companyColor']) {
|
|
189
193
|
this.setStyleVariable();
|
|
190
194
|
}
|
|
191
195
|
}
|
|
196
|
+
// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle
|
|
192
197
|
ngAfterViewInit() {
|
|
193
198
|
if (this.matSelect._elementRef) {
|
|
194
|
-
this.focusMonitor
|
|
199
|
+
this.focusMonitor
|
|
200
|
+
.monitor(this.matSelect._elementRef)
|
|
201
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
195
202
|
.subscribe(origin => this.ngZone.run(() => {
|
|
196
203
|
this.keyboardFocused.set(origin === 'keyboard');
|
|
197
204
|
}));
|
|
@@ -214,7 +221,7 @@ class DropdownComponent {
|
|
|
214
221
|
}
|
|
215
222
|
//Set errors length for validation
|
|
216
223
|
setErrorsLength() {
|
|
217
|
-
if (
|
|
224
|
+
if (this.errors) {
|
|
218
225
|
return this.errors.length > 0 ? true : false;
|
|
219
226
|
}
|
|
220
227
|
return false;
|
|
@@ -261,14 +268,18 @@ class DropdownComponent {
|
|
|
261
268
|
else {
|
|
262
269
|
const selectedItem = this.optionSelected || this.matSelect.options.first;
|
|
263
270
|
const index = this.matSelect.options.toArray().indexOf(selectedItem);
|
|
264
|
-
const nextIndex = $event.key === IKeyboardEvent.ARROW_DOWN
|
|
271
|
+
const nextIndex = $event.key === IKeyboardEvent.ARROW_DOWN
|
|
272
|
+
? index + 1 > this.matSelect.options.length - 1
|
|
273
|
+
? index
|
|
274
|
+
: index + 1
|
|
275
|
+
: index - 1;
|
|
265
276
|
this.optionSelected = this.matSelect.options.toArray()[nextIndex];
|
|
266
277
|
if (this.optionSelected) {
|
|
267
278
|
this.matSelect._keyManager.setActiveItem(this.optionSelected);
|
|
268
279
|
}
|
|
269
280
|
}
|
|
270
281
|
}
|
|
271
|
-
else if (
|
|
282
|
+
else if ($event.key === IKeyboardEvent.SPACE || $event.key === IKeyboardEvent.ENTER) {
|
|
272
283
|
if (this.isOpen()) {
|
|
273
284
|
if (this.optionSelected) {
|
|
274
285
|
if (!this.allowMultipleSelection) {
|
|
@@ -277,7 +288,9 @@ class DropdownComponent {
|
|
|
277
288
|
}
|
|
278
289
|
else {
|
|
279
290
|
if (this.matSelect.value) {
|
|
280
|
-
this.matSelect.value = this.matSelect.value.includes(this.optionSelected.value)
|
|
291
|
+
this.matSelect.value = this.matSelect.value.includes(this.optionSelected.value)
|
|
292
|
+
? this.matSelect.value.filter((value) => value !== this.optionSelected.value)
|
|
293
|
+
: [...this.matSelect.value, this.optionSelected.value];
|
|
281
294
|
}
|
|
282
295
|
else {
|
|
283
296
|
this.matSelect.value = [this.optionSelected.value];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui-components-dropdown.mjs","sources":["../../../components/dropdown/dropdown.component.ts","../../../components/dropdown/dropdown.component.html","../../../components/dropdown/dropdown.component.module.ts","../../../components/dropdown/testgorilla-tgo-ui-components-dropdown.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n DoCheck,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Renderer2,\n Self,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FloatLabelType } from '@angular/material/form-field';\nimport { OptionType } from './dropdown.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\nimport { adjustLightness } from '@testgorilla/tgo-ui/components/button';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { MatSelect } from '@angular/material/select';\nimport { IKeyboardEvent } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class DropdownComponent implements OnInit, ControlValueAccessor, DoCheck, OnChanges {\n @HostBinding() class = 'ui-dropdown';\n\n findValueByValueField = (item: any) => item[this.valueField] === this.value;\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() label? = '';\n\n /**\n * Icon to display alongside the label\n *\n * @type {IconName}\n * @memberof DropdownComponent\n */\n @Input() labelIcon?: IconName;\n\n /**\n * Indicates if this field is filled by AI\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() isAIVariant = false;\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() name: string;\n /**\n * Placeholder to be shown if no value has been selected.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() placeholder: string;\n\n /**\n * Unique id of the element.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() value?: string;\n\n /**\n * Whether the component is in an error state.\n *\n * @type {string[]}\n * @memberof DropdownComponent\n */\n @Input() errors?: string[];\n\n /**\n * Whether the component is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() disabled = false;\n\n /**\n * List of options.\n *\n * @type {OptionType}\n * @memberof DropdownComponent\n */\n @Input() valueList: OptionType[] = [];\n\n /**\n * Whether the user should be allowed to clear the values.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowClear = true;\n\n /**\n * This will allow the user to select multiple values at once.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowMultipleSelection? = false;\n\n /**\n * Whether the component is required.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() required = false;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() showBottomContent = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DropdownComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * @property textField\n * @description The field to be used as the display text in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() textField = '';\n\n /**\n * @property valueField\n * @description The field to be used as the value in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() valueField = '';\n\n @Input() hasError = false;\n\n /**\n * Color of the option hover.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() companyColor: string = '';\n\n /**\n * Class to be applied to the panel.\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() panelClass: string = '';\n\n @Output() closed = new EventEmitter<void>();\n @Output() opened = new EventEmitter<void>();\n\n @ViewChild('matSelect') matSelect: MatSelect;\n\n @ContentChild('customOptionTemplate', { read: TemplateRef }) customOptionTemplate: TemplateRef<any> | null;\n @ContentChild('customSelectedOptionTemplate', { read: TemplateRef })\n customSelectedOptionTemplate: TemplateRef<any> | null;\n\n @HostListener('keydown.tab', ['$event'])\n onTabPress(): void {\n this.matSelect?.close();\n }\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl,\n private readonly renderer2: Renderer2,\n private readonly focusMonitor: FocusMonitor,\n private readonly destroyRef: DestroyRef,\n private readonly ngZone: NgZone\n ) {\n this.errors = [];\n this.valueList = [];\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n floatLabel: FloatLabelType;\n classError: string;\n errorsLength: boolean;\n showCheck: boolean;\n optionSelected: any;\n keyboardFocused = signal<boolean>(false);\n isOpen = signal(false);\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.errorsLength = this.setErrorsLength();\n this.setStyleVariable();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['companyColor']) {\n this.setStyleVariable();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.matSelect._elementRef) {\n this.focusMonitor.monitor(this.matSelect._elementRef).pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(origin => this.ngZone.run(() => {\n this.keyboardFocused.set(origin === 'keyboard')\n }));\n }\n\n this.matSelect._handleKeydown = this.onKeydown.bind(this);\n }\n\n clearValue(event: Event): void {\n event?.stopPropagation();\n this.value = '';\n this.optionSelected = null;\n this.matSelect.value = null;\n this.onChange(this.value);\n }\n\n //Save select value\n onChangeOption(event: any) {\n this.value = event.value;\n this.errorsLength = this.setErrorsLength();\n this.onTouch();\n this.onChange(this.value);\n }\n\n //Set errors length for validation\n setErrorsLength(): boolean {\n if (!!this.errors) {\n return this.errors.length > 0 ? true : false;\n }\n return false;\n }\n\n writeValue(value?: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onClosed(): void {\n this.onTouch();\n this.closed.emit();\n this.isOpen.set(false);\n }\n\n onOpened(): void {\n this.opened.emit();\n this.isOpen.set(true);\n }\n\n setStyleVariable() {\n const active = this.companyColor ? adjustLightness(this.companyColor, 'pressed') : '#FFE6FA'\n const hover = this.companyColor ? adjustLightness(this.companyColor, 'hover') : '#FFF2FC';\n document.body.style.setProperty('--dropdown-color-option-active', active);\n document.body.style.setProperty('--dropdown-color-option-hover', hover);\n }\n\n onKeydown($event: KeyboardEvent) {\n if ($event.key === IKeyboardEvent.ARROW_DOWN || $event.key === IKeyboardEvent.ARROW_UP) {\n if (!this.matSelect.panelOpen) {\n this.matSelect.open();\n } else {\n const selectedItem = this.optionSelected || this.matSelect.options.first;\n const index = this.matSelect.options.toArray().indexOf(selectedItem);\n const nextIndex = $event.key === IKeyboardEvent.ARROW_DOWN ? (index + 1) > this.matSelect.options.length - 1 ? index : (index + 1) : index - 1;\n this.optionSelected = this.matSelect.options.toArray()[nextIndex];\n\n if (this.optionSelected) {\n this.matSelect._keyManager.setActiveItem(this.optionSelected);\n }\n }\n } else if (($event.key === IKeyboardEvent.SPACE || $event.key === IKeyboardEvent.ENTER)) {\n if (this.isOpen()) {\n if (this.optionSelected) {\n if (!this.allowMultipleSelection) {\n this.matSelect.value = this.optionSelected.value;\n this.matSelect.close();\n } else {\n if (this.matSelect.value) {\n this.matSelect.value = this.matSelect.value.includes(this.optionSelected.value) ? this.matSelect.value.filter((value: any) => value !== this.optionSelected.value) : [...this.matSelect.value, this.optionSelected.value];\n } else {\n this.matSelect.value = [this.optionSelected.value];\n }\n }\n } else {\n this.matSelect.value = this.matSelect.options.first.value;\n }\n this.onChange(this.matSelect.value);\n } else {\n this.matSelect.open();\n }\n } else if ($event.key === IKeyboardEvent.HOME) {\n this.matSelect._keyManager.setFirstItemActive();\n } else if ($event.key === IKeyboardEvent.END) {\n this.matSelect._keyManager.setLastItemActive();\n }\n }\n}\n","<ng-container>\n <mat-form-field\n appearance=\"outline\"\n [attr.theme]=\"applicationTheme\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) || hasError ? 'warn' : 'accent'\"\n [ngClass]=\"{\n 'hide-bottom-content': !showBottomContent,\n 'without-label': !label,\n 'keyboard-focused': keyboardFocused(),\n 'has-label': !!label,\n }\"\n >\n <mat-label class=\"label-with-icon\">\n @if (isAIVariant || labelIcon) {\n <ui-icon [name]=\"isAIVariant ? 'Sparkle-in-line' : labelIcon!\" [size]=\"'16'\" class=\"label-icon\"></ui-icon>\n }\n {{ label }}\n @if (required) {\n <span>*</span>\n }\n </mat-label>\n <mat-select\n (closed)=\"onClosed()\"\n (opened)=\"onOpened()\"\n #matSelect\n [id]=\"id!\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n [panelClass]=\"'ui-dropdown-list' + ' ' + applicationTheme + (panelClass ? ' ' + panelClass : '')\"\n [disabled]=\"disabled\"\n [multiple]=\"!!allowMultipleSelection\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (selectionChange)=\"onChangeOption($event)\"\n [attr.name]=\"name\"\n data-testid=\"ui-dropdown-select\"\n >\n @if (customSelectedOptionTemplate && valueField) {\n <mat-select-trigger>\n <ng-container\n [ngTemplateOutlet]=\"customSelectedOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: valueList.find(findValueByValueField) }\"\n ></ng-container>\n </mat-select-trigger>\n }\n\n @if (customOptionTemplate && valueField) {\n @for (item of valueList; track item[valueField]) {\n <mat-option [value]=\"item[valueField]\">\n <ng-container\n [ngTemplateOutlet]=\"customOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </mat-option>\n }\n } @else {\n <div class=\"mat-option-section\" *ngFor=\"let section of valueList\">\n <span *ngIf=\"section.sectionTitle\" class=\"section-title\">{{ section.sectionTitle }}</span>\n <mat-option\n *ngIf=\"section\"\n #matOption\n [value]=\"valueField ? section[valueField] : textField && !valueField ? section : section.value\"\n >\n <div class=\"option-content\">\n <span class=\"option-text\">{{\n textField ? section[textField] : (section.displayValue ?? section.value)\n }}</span>\n @if (section.isAISuggested) {\n <ui-icon [name]=\"'Sparkle-in-line'\" [size]=\"'16'\"> </ui-icon>\n }\n </div>\n </mat-option>\n </div>\n }\n </mat-select>\n <ui-button\n [ariaLabel]=\"('COMMON.CLEAR' | uiTranslate | async)!\"\n *ngIf=\"allowClear && !matSelect.empty\"\n variant=\"secondary\"\n [justIcon]=\"true\"\n class=\"clear\"\n [iconName]=\"applicationTheme === 'classic' ? 'Close' : 'Close-filled'\"\n [label]=\"('COMMON.CLEAR' | uiTranslate | async)!\"\n (click)=\"clearValue($event)\"\n ></ui-button>\n <ui-icon\n class=\"chevron-icon\"\n *ngIf=\"!matSelect.panelOpen\"\n size=\"24\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-filled'\"\n ></ui-icon>\n <ui-icon\n class=\"chevron-icon\"\n *ngIf=\"matSelect.panelOpen\"\n size=\"24\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_up' : 'Arrow-chevron-up-filled'\"\n ></ui-icon>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of errors\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon\n >{{ error }}\n </div>\n </ng-container>\n\n <ui-validation-error\n *ngIf=\"ngControl && !hideBuiltInErrors\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { DropdownComponent } from './dropdown.component';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\nimport { HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonComponentModule,\n MatSelectModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n exports: [DropdownComponent],\n})\nexport class DropdownComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;MA4Ca,iBAAiB,CAAA;IA4L5B,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;IACzB;AAYA,IAAA,WAAA,CAC6E,eAAiC,EAC3F,GAAsB,EACZ,SAAoB,EAC9B,SAAoB,EACpB,YAA0B,EAC1B,UAAsB,EACtB,MAAc,EAAA;QAN4C,IAAA,CAAA,eAAe,GAAf,eAAe;QACzE,IAAA,CAAA,GAAG,GAAH,GAAG;QACO,IAAA,CAAA,SAAS,GAAT,SAAS;QACnB,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,MAAM,GAAN,MAAM;QAhNV,IAAA,CAAA,KAAK,GAAG,aAAa;AAEpC,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,IAAS,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK;AAC3E;;;;;AAKG;QACM,IAAA,CAAA,KAAK,GAAI,EAAE;AAUpB;;;;;AAKG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK;AAiB5B;;;;;AAKG;QACM,IAAA,CAAA,EAAE,GAAI,EAAE;AAkBjB;;;;;;AAMG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEzB;;;;;AAKG;QACM,IAAA,CAAA,SAAS,GAAiB,EAAE;AAErC;;;;;;AAMG;QACM,IAAA,CAAA,UAAU,GAAG,IAAI;AAE1B;;;;;;AAMG;QACM,IAAA,CAAA,sBAAsB,GAAI,KAAK;AAExC;;;;;;AAMG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEzB;;;;;AAKG;QACM,IAAA,CAAA,iBAAiB,GAAG,IAAI;AAEjC;;;;;;AAMG;QAGH,IAAA,CAAA,gBAAgB,GAAqB,OAAO;AAE5C;;;;;AAKG;QACM,IAAA,CAAA,iBAAiB,GAAG,KAAK;AAElC;;;;;AAKG;QACM,IAAA,CAAA,iBAAiB,GAAG,KAAK;AAElC;;;;AAIG;QACM,IAAA,CAAA,SAAS,GAAG,EAAE;AAEvB;;;;AAIG;QACM,IAAA,CAAA,UAAU,GAAG,EAAE;QAEf,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEzB;;;;;;AAMG;QACM,IAAA,CAAA,YAAY,GAAW,EAAE;AAElC;;;;AAIG;QACM,IAAA,CAAA,UAAU,GAAW,EAAE;AAEtB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAa3C;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,EAAE,CAAC;AAEzB;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,EAAE,CAAC;AA2BlB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,KAAK,CAAC;AACxC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAjBpB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;QACnB,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;QACzC;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;IACF;AAUA;;;AAGG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACzB;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;QAC1C,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3B,IAAI,CAAC,gBAAgB,EAAE;QACzB;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3F,iBAAA,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;gBACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;YACjD,CAAC,CAAC,CAAC;QACP;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3D;AAEA,IAAA,UAAU,CAAC,KAAY,EAAA;QACrB,KAAK,EAAE,eAAe,EAAE;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;;AAGA,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;QAC1C,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;;IAGA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK;QAC9C;AACA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,UAAU,CAAC,KAAW,EAAA;QACpB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;QAC1B;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACjB;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB;IAEA,gBAAgB,GAAA;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS;QAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,SAAS;QACzF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gCAAgC,EAAE,MAAM,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,KAAK,CAAC;IACzE;AAEA,IAAA,SAAS,CAAC,MAAqB,EAAA;AAC7B,QAAA,IAAI,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,QAAQ,EAAE;AACtF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AAC7B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACvB;iBAAO;AACL,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;AACxE,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;gBACpE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAC9I,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;AAEjE,gBAAA,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC/D;YACF;QACF;AAAO,aAAA,KAAK,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,KAAK,GAAG;AACvF,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;wBAChC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AAChD,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;oBACxB;yBAAO;AACL,wBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACxB,4BAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;wBAC3N;6BAAO;AACL,4BAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;wBACpD;oBACF;gBACF;qBAAO;AACL,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;gBAC3D;gBACA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACrC;iBAAO;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACvB;QACF;aAAO,IAAI,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,IAAI,EAAE;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,kBAAkB,EAAE;QACjD;aAAO,IAAI,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,GAAG,EAAE;AAC5C,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,EAAE;QAChD;IACF;AA7WW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBA2MN,oCAAoC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA3M/C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAuLkB,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACH,WAAW,0JCpOnE,+1IAqHA,EAAA,MAAA,EAAA,CAAA,stdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDzEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACI,aAAa,EAAA,aAAA,EAGR,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,KAAK,EAAA,QAAA,EAAA,+1IAAA,EAAA,MAAA,EAAA,CAAA,stdAAA,CAAA,EAAA;;0BA6MhB;;0BAAY,MAAM;2BAAC,oCAAoC;;0BAEvD;;0BAAY;0IA5MA,KAAK,EAAA,CAAA;sBAAnB;gBASQ,KAAK,EAAA,CAAA;sBAAb;gBAQQ,SAAS,EAAA,CAAA;sBAAjB;gBAQQ,WAAW,EAAA,CAAA;sBAAnB;gBAQQ,IAAI,EAAA,CAAA;sBAAZ;gBAOQ,WAAW,EAAA,CAAA;sBAAnB;gBAQQ,EAAE,EAAA,CAAA;sBAAV;gBAQQ,KAAK,EAAA,CAAA;sBAAb;gBAQQ,MAAM,EAAA,CAAA;sBAAd;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBAQQ,SAAS,EAAA,CAAA;sBAAjB;gBASQ,UAAU,EAAA,CAAA;sBAAlB;gBASQ,sBAAsB,EAAA,CAAA;sBAA9B;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBAQQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAWD,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,YAAY;;sBACxB;gBASQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAQQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAOQ,SAAS,EAAA,CAAA;sBAAjB;gBAOQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;gBASQ,YAAY,EAAA,CAAA;sBAApB;gBAOQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,MAAM,EAAA,CAAA;sBAAf;gBACS,MAAM,EAAA,CAAA;sBAAf;gBAEuB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;gBAEuC,oBAAoB,EAAA,CAAA;sBAAhF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAE3D,4BAA4B,EAAA,CAAA;sBAD3B,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,8BAA8B,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAInE,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;;;MEzM5B,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAhBnB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAE9B,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,eAAe;YACf,qBAAqB;AACrB,YAAA,sBAAsB,aAEd,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAdhC,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YAEf,qBAAqB,CAAA,EAAA,CAAA,CAAA;;4FAKZ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,eAAe;wBACf,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;AACvB,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;AC7BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-dropdown.mjs","sources":["../../../components/dropdown/dropdown.component.ts","../../../components/dropdown/dropdown.component.html","../../../components/dropdown/dropdown.component.module.ts","../../../components/dropdown/testgorilla-tgo-ui-components-dropdown.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n DoCheck,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n Optional,\n Output,\n Renderer2,\n Self,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n AfterViewInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { FloatLabelType } from '@angular/material/form-field';\nimport { OptionType } from './dropdown.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconName } from '@testgorilla/tgo-ui/components/icon';\nimport { adjustLightness } from '@testgorilla/tgo-ui/components/button';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { MatSelect } from '@angular/material/select';\nimport { IKeyboardEvent } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\nexport class DropdownComponent implements OnInit, ControlValueAccessor, DoCheck, OnChanges, AfterViewInit {\n @HostBinding() class = 'ui-dropdown';\n\n findValueByValueField = (item: any) => item[this.valueField] === this.value;\n /**\n * Text content will be applied to the input element if present.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() label? = '';\n\n /**\n * Icon to display alongside the label\n *\n * @type {IconName}\n * @memberof DropdownComponent\n */\n @Input() labelIcon?: IconName;\n\n /**\n * Indicates if this field is filled by AI\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() isAIVariant = false;\n\n /**\n * Input name attribute\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() name: string;\n /**\n * Placeholder to be shown if no value has been selected.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() placeholder: string;\n\n /**\n * Unique id of the element.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() id? = '';\n\n /**\n * Input value\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() value?: string;\n\n /**\n * Whether the component is in an error state.\n *\n * @type {string[]}\n * @memberof DropdownComponent\n */\n @Input() errors?: string[];\n\n /**\n * Whether the component is disabled.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() disabled = false;\n\n /**\n * List of options.\n *\n * @type {OptionType}\n * @memberof DropdownComponent\n */\n @Input() valueList: OptionType[] = [];\n\n /**\n * Whether the user should be allowed to clear the values.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowClear = true;\n\n /**\n * This will allow the user to select multiple values at once.\n * Default: true.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() allowMultipleSelection? = false;\n\n /**\n * Whether the component is required.\n * Default: false.\n *\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() required = false;\n\n /**\n * Show reserved content below form field\n * @property showBottomContent\n * @type {boolean}\n * @memberof DropdownComponent\n */\n @Input() showBottomContent = true;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof DropdownComponent\n */\n @HostBinding('attr.theme')\n @Input()\n applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Hide in build errors for Reactive Forms\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideBuiltInErrors = false;\n\n /**\n * Hide label in errors\n *\n * @type {number}\n * @memberof DropdownComponent\n */\n @Input() hideLabelInErrors = false;\n\n /**\n * @property textField\n * @description The field to be used as the display text in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() textField = '';\n\n /**\n * @property valueField\n * @description The field to be used as the value in the dropdown.\n * @memberof DropdownComponent\n */\n @Input() valueField = '';\n\n @Input() hasError = false;\n\n /**\n * Color of the option hover.\n * Defaults to Test Gorilla primary color.\n *\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() companyColor = '';\n\n /**\n * Class to be applied to the panel.\n * @type {string}\n * @memberof DropdownComponent\n */\n @Input() panelClass = '';\n\n @Output() closed = new EventEmitter<void>();\n @Output() opened = new EventEmitter<void>();\n\n @ViewChild('matSelect') matSelect: MatSelect;\n\n @ContentChild('customOptionTemplate', { read: TemplateRef }) customOptionTemplate: TemplateRef<any> | null;\n @ContentChild('customSelectedOptionTemplate', { read: TemplateRef })\n customSelectedOptionTemplate: TemplateRef<any> | null;\n\n @HostListener('keydown.tab', ['$event'])\n onTabPress(): void {\n this.matSelect?.close();\n }\n\n /**\n * @ignore\n */\n onChange = (_: any) => {};\n\n /**\n * @ignore\n */\n onTouch = () => {};\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly cdr: ChangeDetectorRef,\n @Optional() @Self() public ngControl: NgControl,\n private readonly renderer2: Renderer2,\n private readonly focusMonitor: FocusMonitor,\n private readonly destroyRef: DestroyRef,\n private readonly ngZone: NgZone\n ) {\n this.errors = [];\n this.valueList = [];\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n floatLabel: FloatLabelType;\n classError: string;\n errorsLength: boolean;\n showCheck: boolean;\n optionSelected: any;\n keyboardFocused = signal<boolean>(false);\n isOpen = signal(false);\n\n /**\n * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors\n * to display validation errors that might happen (e.g. required)\n */\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngDoCheck(): void {\n if (this.ngControl?.touched || this.ngControl?.errors) {\n this.cdr.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnInit(): void {\n this.errorsLength = this.setErrorsLength();\n this.setStyleVariable();\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['companyColor']) {\n this.setStyleVariable();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-conflicting-lifecycle\n ngAfterViewInit(): void {\n if (this.matSelect._elementRef) {\n this.focusMonitor\n .monitor(this.matSelect._elementRef)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(origin =>\n this.ngZone.run(() => {\n this.keyboardFocused.set(origin === 'keyboard');\n })\n );\n }\n\n this.matSelect._handleKeydown = this.onKeydown.bind(this);\n }\n\n clearValue(event: Event): void {\n event?.stopPropagation();\n this.value = '';\n this.optionSelected = null;\n this.matSelect.value = null;\n this.onChange(this.value);\n }\n\n //Save select value\n onChangeOption(event: any) {\n this.value = event.value;\n this.errorsLength = this.setErrorsLength();\n this.onTouch();\n this.onChange(this.value);\n }\n\n //Set errors length for validation\n setErrorsLength(): boolean {\n if (this.errors) {\n return this.errors.length > 0 ? true : false;\n }\n return false;\n }\n\n writeValue(value?: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onClosed(): void {\n this.onTouch();\n this.closed.emit();\n this.isOpen.set(false);\n }\n\n onOpened(): void {\n this.opened.emit();\n this.isOpen.set(true);\n }\n\n setStyleVariable() {\n const active = this.companyColor ? adjustLightness(this.companyColor, 'pressed') : '#FFE6FA';\n const hover = this.companyColor ? adjustLightness(this.companyColor, 'hover') : '#FFF2FC';\n document.body.style.setProperty('--dropdown-color-option-active', active);\n document.body.style.setProperty('--dropdown-color-option-hover', hover);\n }\n\n onKeydown($event: KeyboardEvent) {\n if ($event.key === (IKeyboardEvent.ARROW_DOWN as string) || $event.key === (IKeyboardEvent.ARROW_UP as string)) {\n if (!this.matSelect.panelOpen) {\n this.matSelect.open();\n } else {\n const selectedItem = this.optionSelected || this.matSelect.options.first;\n const index = this.matSelect.options.toArray().indexOf(selectedItem);\n const nextIndex =\n $event.key === (IKeyboardEvent.ARROW_DOWN as string)\n ? index + 1 > this.matSelect.options.length - 1\n ? index\n : index + 1\n : index - 1;\n this.optionSelected = this.matSelect.options.toArray()[nextIndex];\n\n if (this.optionSelected) {\n this.matSelect._keyManager.setActiveItem(this.optionSelected);\n }\n }\n } else if ($event.key === (IKeyboardEvent.SPACE as string) || $event.key === (IKeyboardEvent.ENTER as string)) {\n if (this.isOpen()) {\n if (this.optionSelected) {\n if (!this.allowMultipleSelection) {\n this.matSelect.value = this.optionSelected.value;\n this.matSelect.close();\n } else {\n if (this.matSelect.value) {\n this.matSelect.value = this.matSelect.value.includes(this.optionSelected.value)\n ? this.matSelect.value.filter((value: any) => value !== this.optionSelected.value)\n : [...this.matSelect.value, this.optionSelected.value];\n } else {\n this.matSelect.value = [this.optionSelected.value];\n }\n }\n } else {\n this.matSelect.value = this.matSelect.options.first.value;\n }\n this.onChange(this.matSelect.value);\n } else {\n this.matSelect.open();\n }\n } else if ($event.key === (IKeyboardEvent.HOME as string)) {\n this.matSelect._keyManager.setFirstItemActive();\n } else if ($event.key === (IKeyboardEvent.END as string)) {\n this.matSelect._keyManager.setLastItemActive();\n }\n }\n}\n","<ng-container>\n <mat-form-field\n appearance=\"outline\"\n [attr.theme]=\"applicationTheme\"\n [color]=\"errorsLength || (ngControl?.errors && ngControl?.touched) || hasError ? 'warn' : 'accent'\"\n [ngClass]=\"{\n 'hide-bottom-content': !showBottomContent,\n 'without-label': !label,\n 'keyboard-focused': keyboardFocused(),\n 'has-label': !!label,\n }\"\n >\n <mat-label class=\"label-with-icon\">\n @if (isAIVariant || labelIcon) {\n <ui-icon [name]=\"isAIVariant ? 'Sparkle-in-line' : labelIcon!\" [size]=\"'16'\" class=\"label-icon\"></ui-icon>\n }\n {{ label }}\n @if (required) {\n <span>*</span>\n }\n </mat-label>\n <mat-select\n (closed)=\"onClosed()\"\n (opened)=\"onOpened()\"\n #matSelect\n [id]=\"id!\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n [panelClass]=\"'ui-dropdown-list' + ' ' + applicationTheme + (panelClass ? ' ' + panelClass : '')\"\n [disabled]=\"disabled\"\n [multiple]=\"!!allowMultipleSelection\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n (selectionChange)=\"onChangeOption($event)\"\n [attr.name]=\"name\"\n data-testid=\"ui-dropdown-select\"\n >\n @if (customSelectedOptionTemplate && valueField) {\n <mat-select-trigger>\n <ng-container\n [ngTemplateOutlet]=\"customSelectedOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: valueList.find(findValueByValueField) }\"\n ></ng-container>\n </mat-select-trigger>\n }\n\n @if (customOptionTemplate && valueField) {\n @for (item of valueList; track item[valueField]) {\n <mat-option [value]=\"item[valueField]\">\n <ng-container\n [ngTemplateOutlet]=\"customOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </mat-option>\n }\n } @else {\n <div class=\"mat-option-section\" *ngFor=\"let section of valueList\">\n <span *ngIf=\"section.sectionTitle\" class=\"section-title\">{{ section.sectionTitle }}</span>\n <mat-option\n *ngIf=\"section\"\n #matOption\n [value]=\"valueField ? section[valueField] : textField && !valueField ? section : section.value\"\n >\n <div class=\"option-content\">\n <span class=\"option-text\">{{\n textField ? section[textField] : (section.displayValue ?? section.value)\n }}</span>\n @if (section.isAISuggested) {\n <ui-icon [name]=\"'Sparkle-in-line'\" [size]=\"'16'\"> </ui-icon>\n }\n </div>\n </mat-option>\n </div>\n }\n </mat-select>\n <ui-button\n [ariaLabel]=\"('COMMON.CLEAR' | uiTranslate | async)!\"\n *ngIf=\"allowClear && !matSelect.empty\"\n variant=\"secondary\"\n [justIcon]=\"true\"\n class=\"clear\"\n [iconName]=\"applicationTheme === 'classic' ? 'Close' : 'Close-filled'\"\n [label]=\"('COMMON.CLEAR' | uiTranslate | async)!\"\n (click)=\"clearValue($event)\"\n ></ui-button>\n <ui-icon\n class=\"chevron-icon\"\n *ngIf=\"!matSelect.panelOpen\"\n size=\"24\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-filled'\"\n ></ui-icon>\n <ui-icon\n class=\"chevron-icon\"\n *ngIf=\"matSelect.panelOpen\"\n size=\"24\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_up' : 'Arrow-chevron-up-filled'\"\n ></ui-icon>\n <mat-hint class=\"error\" *ngIf=\"errorsLength || (ngControl?.errors | hasValidationError)\">\n <ng-container *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of errors\">\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon\n >{{ error }}\n </div>\n </ng-container>\n\n <ui-validation-error\n *ngIf=\"ngControl && !hideBuiltInErrors\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n </mat-hint>\n </mat-form-field>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { DropdownComponent } from './dropdown.component';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\nimport { HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n MatInputModule,\n IconComponentModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonComponentModule,\n MatSelectModule,\n UiTranslatePipe,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n exports: [DropdownComponent],\n})\nexport class DropdownComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|