@cauca-911/material
Version:
Run `npm install @cauca-911/material --save` to add this library to your project
1 lines • 380 kB
Source Map (JSON)
{"version":3,"file":"cauca-911-material.mjs","sources":["../../../projects/cauca-material/src/lib/cauca-material.service.ts","../../../projects/cauca-material/src/lib/cauca-material.component.ts","../../../projects/cauca-material/src/lib/cauca-material.component.html","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.ts","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/components/mobile-time-picker/mobile-time-picker.component.html","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/components/desktop-time-picker/desktop-time-picker.component.html","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/components/desktop-time-picker/desktop-time-picker.component.ts","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.html","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/components/dialog-date-time-picker/dialog-date-time-picker.component.ts","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/cauca-date-time-picker.component.html","../../../projects/cauca-material/src/lib/components/cauca-date-time-picker/cauca-date-time-picker.component.ts","../../../projects/cauca-material/src/lib/components/buttons/base-button.ts","../../../projects/cauca-material/src/lib/components/buttons/basic-button/basic-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/basic-button/basic-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/fab-button/fab-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/fab-button/fab-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/flat-button/flat-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/flat-button/flat-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/icon-button/icon-button.component.html","../../../projects/cauca-material/src/lib/components/button/button.component.html","../../../projects/cauca-material/src/lib/components/button/button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/link-button/link-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/link-button/link-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/menu-item/menu-item.component.html","../../../projects/cauca-material/src/lib/components/buttons/menu-item/menu-item.component.ts","../../../projects/cauca-material/src/lib/components/buttons/raised-button/raised-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/raised-button/raised-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/refresh-button/refresh-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/refresh-button/refresh-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/round-button/round-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/round-button/round-button.component.ts","../../../projects/cauca-material/src/lib/components/buttons/stroked-button/stroked-button.component.html","../../../projects/cauca-material/src/lib/components/buttons/stroked-button/stroked-button.component.ts","../../../projects/cauca-material/src/lib/components/dialogs/alert-dialog/alert-dialog.component.ts","../../../projects/cauca-material/src/lib/components/dialogs/alert-dialog/alert-dialog.component.html","../../../projects/cauca-material/src/lib/components/dialogs/confirm-dialog/confirm-dialog.component.ts","../../../projects/cauca-material/src/lib/components/dialogs/confirm-dialog/confirm-dialog.component.html","../../../projects/cauca-material/src/lib/components/dialogs/text-input-dialog/text-input-dialog.component.html","../../../projects/cauca-material/src/lib/components/dialogs/text-input-dialog/text-input-dialog.component.ts","../../../projects/cauca-material/src/lib/components/dialogs/delete-dialog/delete-dialog.component.html","../../../projects/cauca-material/src/lib/components/dialogs/delete-dialog/delete-dialog.component.ts","../../../projects/cauca-material/src/lib/components/dialogs/error-dialog/error-dialog.component.ts","../../../projects/cauca-material/src/lib/components/dialogs/error-dialog/error-dialog.component.html","../../../projects/cauca-material/src/lib/components/dialogs/services/dialog.service.ts","../../../projects/cauca-material/src/lib/core/models/breadcrumb-location.ts","../../../projects/cauca-material/src/lib/core/breadcrumb.service.ts","../../../projects/cauca-material/src/lib/core/loading-state.service.ts","../../../projects/cauca-material/src/lib/components/misc/snack-bar/snack-bar.component.html","../../../projects/cauca-material/src/lib/components/misc/snack-bar/snack-bar.component.ts","../../../projects/cauca-material/src/lib/components/misc/loading-error/loading-error.component.html","../../../projects/cauca-material/src/lib/components/misc/loading-error/loading-error.component.ts","../../../projects/cauca-material/src/lib/components/misc/loading-spinner-indicator/loading-spinner-indicator.component.html","../../../projects/cauca-material/src/lib/components/misc/loading-spinner-indicator/loading-spinner-indicator.component.ts","../../../projects/cauca-material/src/lib/components/presenters/badge/badge.component.ts","../../../projects/cauca-material/src/lib/components/presenters/badge/badge.component.html","../../../projects/cauca-material/src/lib/components/presenters/icon/icon.component.ts","../../../projects/cauca-material/src/lib/components/list-paginator/list-paginator.component.html","../../../projects/cauca-material/src/lib/components/list-paginator/list-paginator.component.ts","../../../projects/cauca-material/src/lib/components/inputs/password/password-criteria/password-criteria.component.html","../../../projects/cauca-material/src/lib/components/inputs/password/password-criteria/password-criteria.component.ts","../../../projects/cauca-material/src/lib/components/inputs/password/password-criteria-viewer/password-criteria-viewer.component.ts","../../../projects/cauca-material/src/lib/components/inputs/password/password-criteria-viewer/password-criteria-viewer.component.html","../../../projects/cauca-material/src/lib/components/inputs/password/password-input/password-input.component.html","../../../projects/cauca-material/src/lib/components/inputs/password/password-input/password-input.component.ts","../../../projects/cauca-material/src/lib/core/models/password-validation.ts","../../../projects/cauca-material/src/lib/core/validators/password/password-validator.ts","../../../projects/cauca-material/src/lib/components/inputs/password/password-selection/password-selection.component.html","../../../projects/cauca-material/src/lib/components/inputs/password/password-selection/password-selection.component.ts","../../../projects/cauca-material/src/lib/components/inputs/date-range-picker/date-range-picker.component.ts","../../../projects/cauca-material/src/lib/components/inputs/date-range-picker/date-range-picker.component.html","../../../projects/cauca-material/src/lib/components/inputs/dropdown-chip-autocomplete/dropdown-chip-autocomplete.component.html","../../../projects/cauca-material/src/lib/components/inputs/dropdown-chip-autocomplete/dropdown-chip-autocomplete.component.ts","../../../projects/cauca-material/src/lib/components/inputs/color-picker/color-picker.component.ts","../../../projects/cauca-material/src/lib/components/inputs/color-picker/color-picker.component.html","../../../projects/cauca-material/src/lib/components/inputs/select-with-search/select-with-search.component.html","../../../projects/cauca-material/src/lib/components/inputs/select-with-search/select-with-search.component.ts","../../../projects/cauca-material/src/lib/components/layout/group-container/group-container.component.ts","../../../projects/cauca-material/src/lib/components/layout/group-container/group-container.component.html","../../../projects/cauca-material/src/lib/components/layout/sections/main-section/main-section.component.html","../../../projects/cauca-material/src/lib/components/layout/sections/main-section/main-section.component.ts","../../../projects/cauca-material/src/lib/components/layout/sections/section-column/section-column.component.ts","../../../projects/cauca-material/src/lib/components/layout/sections/section-column/section-column.component.html","../../../projects/cauca-material/src/lib/components/layout/sections/section-field/section-field.component.html","../../../projects/cauca-material/src/lib/components/layout/sections/section-field/section-field.component.ts","../../../projects/cauca-material/src/lib/components/layout/page-title/page-title.component.html","../../../projects/cauca-material/src/lib/components/layout/page-title/page-title.component.ts","../../../projects/cauca-material/src/lib/components/layout/responsive-tab-group-wrapper/responsive-tab-group-wrapper.component.ts","../../../projects/cauca-material/src/lib/components/layout/responsive-tab-group-wrapper/responsive-tab-group-wrapper.component.html","../../../projects/cauca-material/src/lib/components/layout/expandable-panel/expandable-panel.component.ts","../../../projects/cauca-material/src/lib/components/layout/expandable-panel/expandable-panel.component.html","../../../projects/cauca-material/src/lib/components/layout/expandable-panel-accordion/expandable-panel-accordion.component.ts","../../../projects/cauca-material/src/lib/components/layout/expandable-panel-accordion/expandable-panel-accordion.component.html","../../../projects/cauca-material/src/lib/components/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.ts","../../../projects/cauca-material/src/lib/components/layout/menu-expandable-panel-item/menu-expandable-panel-item.component.html","../../../projects/cauca-material/src/lib/components/layout/menu-expandable-panel/menu-expandable-panel.component.html","../../../projects/cauca-material/src/lib/components/layout/menu-expandable-panel/menu-expandable-panel.component.ts","../../../projects/cauca-material/src/lib/components/notifications/saving-confirmed-box/saving-confirmed-box.component.html","../../../projects/cauca-material/src/lib/components/notifications/saving-confirmed-box/saving-confirmed-box.component.ts","../../../projects/cauca-material/src/lib/components/notifications/saving-error-box/saving-error-box.component.html","../../../projects/cauca-material/src/lib/components/notifications/saving-error-box/saving-error-box.component.ts","../../../projects/cauca-material/src/lib/components/notifications/status-message/status-message.component.ts","../../../projects/cauca-material/src/lib/components/notifications/status-message/status-message.component.html","../../../projects/cauca-material/src/lib/core/directives/auto-trim-and-lower.directive.ts","../../../projects/cauca-material/src/lib/core/directives/form-error/has-error-root.directive.ts","../../../projects/cauca-material/src/lib/core/directives/form-error/has-error.directive.ts","../../../projects/cauca-material/src/lib/core/directives/form-error/form-error.module.ts","../../../projects/cauca-material/src/lib/core/pipes/iso8601-time-span.pipe.ts","../../../projects/cauca-material/src/lib/provide-cauca-material.ts","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-simple-dialog/cauca-simple-dialog.component.html","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-simple-dialog/cauca-simple-dialog.component.ts","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-input-file/cauca-input-file.component.html","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-input-file/cauca-input-file.component.ts","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-input-multiple-langue/cauca-input-multiple-langue.component.html","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-input-multiple-langue/cauca-input-multiple-langue.component.ts","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-slideshow/cauca-slideshow.component.html","../../../projects/cauca-material/src/lib/components/deprecated-components/cauca-slideshow/cauca-slideshow.component.ts","../../../projects/cauca-material/src/public-api.ts","../../../projects/cauca-material/src/cauca-911-material.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CaucaMaterialService {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-material',\r\n templateUrl: './cauca-material.component.html',\r\n styles: [],\r\n imports: [TranslatePipe],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CaucaMaterialComponent {\r\n\r\n}\r\n","<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@Component({\r\n selector: 'cauca-mobile-time-picker',\r\n imports: [\r\n MatButtonModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule\r\n ],\r\n templateUrl: './mobile-time-picker.component.html',\r\n styleUrl: './mobile-time-picker.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MobileTimePickerComponent {\r\n public value = input.required<number>();\r\n public options = input.required<number[]>();\r\n\r\n public valueChange = output<number>();\r\n\r\n public valueUp(): void {\r\n const currentIndex = this.options().indexOf(this.value());\r\n let newValue = 0;\r\n if (currentIndex === this.options().length - 1) {\r\n newValue = this.options()[0];\r\n } else {\r\n newValue = this.options()[currentIndex + 1];\r\n }\r\n\r\n this.valueChange.emit(newValue);\r\n }\r\n\r\n public valueDown(): void {\r\n const currentIndex = this.options().indexOf(this.value());\r\n let newValue = 0;\r\n if (currentIndex === 0) {\r\n newValue = this.options()[this.options().length - 1];\r\n } else {\r\n newValue = this.options()[currentIndex - 1];\r\n }\r\n\r\n this.valueChange.emit(newValue);\r\n }\r\n}\r\n","<button mat-icon-button (click)=\"valueUp()\">\r\n <mat-icon>keyboard_arrow_up</mat-icon>\r\n</button>\r\n<div>\r\n{{(value() < 10 ? '0' : '' ) + value()}}\r\n</div>\r\n<button mat-icon-button (click)=\"valueDown()\">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n</button>\r\n","<mat-list [disabled]=\"disabled()?.all\">\r\n @for (option of options(); track option) {\r\n <mat-list-item [activated]=\"value() === option\" [disabled]=\"disabled()?.someOptions?.includes(option)\"\r\n (click)=\"valueChange.emit(option)\">{{(option < 10 ? '0' : '' ) + option}}</mat-list-item>\r\n }\r\n</mat-list>","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { MatListModule } from '@angular/material/list';\r\n\r\n@Component({\r\n selector: 'cauca-desktop-time-picker',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n MatListModule\r\n ],\r\n templateUrl: './desktop-time-picker.component.html',\r\n styleUrl: './desktop-time-picker.component.scss'\r\n})\r\nexport class DesktopTimePickerComponent {\r\n public readonly options = input<number[]>([]);\r\n public readonly value = input<number>();\r\n public readonly disabled = input<DesktopTimePickerComponentDisabled>();\r\n\r\n public readonly valueChange = output<number>();\r\n}\r\n\r\nexport interface DesktopTimePickerComponentDisabled {\r\n all: boolean;\r\n someOptions: number[];\r\n}","<div mat-dialog-content>\r\n <div [ngClass]=\"showSeconds() ? 'show-seconds' : 'hide-seconds'\" class=\"date-time-picker\">\r\n <div class=\"calendar\">\r\n <mat-calendar\r\n [minDate]=\"minimumDate\"\r\n [maxDate]=\"maximumDate\"\r\n [selected]=\"selectedDate\"\r\n (selectedChange)=\"dateChanged($event)\"\r\n ></mat-calendar>\r\n </div>\r\n\r\n @if (showTime()) {\r\n @if (!showMobileUi) {\r\n <div class=\"hours\">\r\n <cauca-desktop-time-picker [disabled]=\"{all: disabled.hours, someOptions: disabled.someHours}\" (valueChange)=\"hourChanged($event)\" [options]=\"hours\" [value]=\"selectedHour\"/>\r\n </div>\r\n }\r\n @if (showMobileUi) {\r\n <div class=\"hours\">\r\n <cauca-mobile-time-picker (valueChange)=\"hourChanged($event)\" [options]=\"hours\" [value]=\"selectedHour\" />\r\n </div>\r\n }\r\n\r\n @if (showMobileUi) {\r\n <div class=\"hour-and-minute-separator\">:</div>\r\n }\r\n\r\n @if (!showMobileUi) {\r\n <div class=\"minutes\">\r\n <cauca-desktop-time-picker [disabled]=\"{all: disabled.minutes, someOptions: disabled.someMinutes}\" (valueChange)=\"minuteChanged($event)\" [options]=\"minutes\" [value]=\"selectedMinute\"/>\r\n </div>\r\n }\r\n @if (showMobileUi) {\r\n <div class=\"minutes\">\r\n <cauca-mobile-time-picker (valueChange)=\"minuteChanged($event)\" [options]=\"minutes\" [value]=\"selectedMinute\" />\r\n </div>\r\n }\r\n\r\n @if (showSeconds() && showMobileUi) {\r\n <div class=\"minute-and-second-separator\">:</div>\r\n }\r\n @if (showSeconds() && !showMobileUi) {\r\n <div class=\"seconds\">\r\n <cauca-desktop-time-picker [disabled]=\"{all: disabled.seconds, someOptions: disabled.someSeconds}\" (valueChange)=\"secondChanged($event)\" [options]=\"seconds\" [value]=\"selectedSecond\"/>\r\n </div>\r\n }\r\n @if (showSeconds() && showMobileUi) {\r\n <div class=\"seconds\">\r\n <cauca-mobile-time-picker (valueChange)=\"secondChanged($event)\" [options]=\"seconds\" [value]=\"selectedSecond\" />\r\n </div>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<div mat-dialog-actions align=\"end\">\r\n @if (showClearButton) {\r\n <button mat-stroked-button (click)=\"clear()\">\r\n @if (showButtonIcons) {\r\n <mat-icon>clear</mat-icon>\r\n }\r\n {{'material.clear' | translate}}\r\n </button>\r\n }\r\n <button color=\"primary\" mat-stroked-button (click)=\"cancel()\">\r\n @if (showButtonIcons) {\r\n <mat-icon>cancel</mat-icon>\r\n }\r\n {{'material.cancel' | translate}}\r\n </button>\r\n <button color=\"primary\" mat-raised-button cdkFocusInitial (click)=\"confirm()\">\r\n @if (showButtonIcons) {\r\n <mat-icon>check</mat-icon>\r\n }\r\n {{'material.ok' | translate}}\r\n </button>\r\n</div>","import { ChangeDetectionStrategy, Component, HostListener, OnInit, signal, WritableSignal, inject } from '@angular/core';\r\nimport { provideNativeDateAdapter } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { DialogDateTimePickerOptions, DialogDateTimePickerDataDisabled, DialogDateTimePickerDataStep } from '../../models/dialog-date-time-picker-data';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MobileTimePickerComponent } from '../mobile-time-picker/mobile-time-picker.component';\r\nimport { DesktopTimePickerComponent } from '../desktop-time-picker/desktop-time-picker.component';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-dialog-date-time-picker',\r\n imports: [\r\n CommonModule,\r\n TranslatePipe,\r\n MatButtonModule,\r\n MatDatepickerModule,\r\n MatIconModule,\r\n MatListModule,\r\n MobileTimePickerComponent,\r\n DesktopTimePickerComponent\r\n ],\r\n providers: [provideNativeDateAdapter()],\r\n templateUrl: './dialog-date-time-picker.component.html',\r\n styleUrl: './dialog-date-time-picker.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DialogDateTimePickerComponent implements OnInit {\r\n\r\n public selectedHour = 0;\r\n public selectedMinute = 0;\r\n public selectedSecond = 0;\r\n public initialDate: Date = null;\r\n public selectedDate: Date = null;\r\n public minimumDate = new Date();\r\n public maximumDate = new Date();\r\n public showSeconds: WritableSignal<boolean> = signal(false);\r\n public showClearButton: boolean = true;\r\n public showButtonIcons: boolean = true;\r\n\r\n public hours = [...Array(24).keys()];\r\n public minutes = [...Array(60).keys()];\r\n public seconds = [...Array(60).keys()];\r\n public showMobileUi: boolean = false;\r\n\r\n public showTime: WritableSignal<boolean> = signal(true);\r\n\r\n public disabled: DialogDateTimePickerDataDisabled = {\r\n hours: true,\r\n someHours: [],\r\n minutes: true,\r\n someMinutes: [],\r\n seconds: true,\r\n someSeconds: [],\r\n };\r\n\r\n private step: DialogDateTimePickerDataStep = {\r\n hours: 1,\r\n minutes: 1,\r\n seconds: 1,\r\n };\r\n\r\n private readonly dialogRef = inject<MatDialogRef<DialogDateTimePickerComponent>>(MatDialogRef);\r\n private readonly options = inject<DialogDateTimePickerOptions>(MAT_DIALOG_DATA);\r\n\r\n public constructor() {\r\n const options = this.options;\r\n\r\n this.step = options.step || this.step;\r\n this.showSeconds.set(options.showSeconds);\r\n this.showButtonIcons = options.showButtonIcons ?? this.showButtonIcons;\r\n this.showClearButton = options.showClearButton ?? this.showClearButton;\r\n this.showTime.set(options.showTime ?? true);\r\n this.setListHoursMinutes();\r\n this.initialEachComponentValue(options);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.onWindowWithChange(window.innerWidth);\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n public onResize(event) {\r\n this.onWindowWithChange(event.target.innerWidth);\r\n }\r\n\r\n public dateChanged(date: Date): void {\r\n if (date) {\r\n this.selectedDate = date;\r\n this.selectedDate.setHours(this.selectedHour);\r\n this.selectedDate.setMinutes(this.selectedMinute);\r\n this.selectedDate.setSeconds(this.selectedSecond);\r\n this.disabled.hours = false;\r\n this.disabled.someHours = this.hours.filter(hour => this.hourOfSelectedDateIsDisabled(hour));\r\n } else {\r\n this.selectedDate = null;\r\n this.disabled.hours = true;\r\n }\r\n }\r\n\r\n public hourChanged(hour: number): void {\r\n if (this.disabled.hours || this.disabled.someHours.includes(hour)) return;\r\n\r\n this.selectedHour = hour;\r\n this.selectedDate.setHours(hour);\r\n this.disabled.minutes = false;\r\n this.disabled.someMinutes = this.minutes.filter(minute => this.minuteOfSelectedDateIsDisabled(minute));\r\n }\r\n\r\n public minuteChanged(minute: number): void {\r\n if (this.disabled.minutes || this.disabled.someMinutes.includes(minute)) return;\r\n\r\n this.selectedMinute = minute;\r\n this.selectedDate.setMinutes(minute);\r\n this.disabled.seconds = false;\r\n this.disabled.someSeconds = this.seconds.filter(second => this.secondOfSelectedDateIsDisabled(second));\r\n }\r\n\r\n public secondChanged(second: number): void {\r\n if (this.disabled.seconds || this.disabled.someSeconds.includes(second)) return;\r\n\r\n this.selectedSecond = second;\r\n this.selectedDate.setSeconds(second);\r\n }\r\n\r\n public clear(): void {\r\n this.dialogRef.close({\r\n value: null\r\n });\r\n }\r\n\r\n public cancel(): void {\r\n this.dialogRef.close({\r\n value: this.initialDate\r\n });\r\n }\r\n\r\n public confirm(): void {\r\n this.dialogRef.close({\r\n value: this.selectedDate\r\n });\r\n }\r\n\r\n private onWindowWithChange(width: number): void {\r\n this.showMobileUi = width && width <= 555;\r\n }\r\n\r\n private hourOfSelectedDateIsDisabled(hour: number): boolean {\r\n if (this.selectedDateIsTheMinimumDate()) {\r\n return hour < this.minimumDate.getHours();\r\n } else if (this.selectedDateIsTheMaximumDate()) {\r\n return hour > this.maximumDate.getHours();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private minuteOfSelectedDateIsDisabled(minute: number): boolean {\r\n if (\r\n this.selectedDateIsTheMinimumDate() &&\r\n this.selectedDate.getHours() === this.minimumDate.getHours()\r\n ) {\r\n return minute < this.minimumDate.getMinutes();\r\n } else if (\r\n this.selectedDateIsTheMaximumDate() &&\r\n this.selectedDate.getHours() === this.maximumDate.getHours()\r\n ) {\r\n return minute > this.maximumDate.getMinutes();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private secondOfSelectedDateIsDisabled(second: number): boolean {\r\n if (\r\n this.selectedDateIsTheMinimumDate() &&\r\n this.selectedDate.getHours() === this.minimumDate.getHours() &&\r\n this.selectedDate.getMinutes() === this.minimumDate.getMinutes()\r\n ) {\r\n return second < this.minimumDate.getSeconds();\r\n } else if (\r\n this.selectedDateIsTheMaximumDate() &&\r\n this.selectedDate.getMinutes() === this.maximumDate.getMinutes()\r\n ) {\r\n return second > this.maximumDate.getSeconds();\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private initialEachComponentValue(options: DialogDateTimePickerOptions): void {\r\n this.initialDate = options.selectedDate ? new Date(options.selectedDate) : null;\r\n this.minimumDate = options.minimumDate ? new Date(options.minimumDate) : null;\r\n this.maximumDate = options.maximumDate ? new Date(options.maximumDate) : null;\r\n this.selectedDate = options.selectedDate ? new Date(options.selectedDate) : new Date();\r\n this.dateChanged(options.selectedDate ? new Date(options.selectedDate) : null);\r\n this.hourChanged(options.selectedDate ? new Date(options.selectedDate).getHours() : 0);\r\n this.minuteChanged(options.selectedDate ? new Date(options.selectedDate).getMinutes() : 0);\r\n this.secondChanged(options.selectedDate ? new Date(options.selectedDate).getSeconds() : 0);\r\n }\r\n\r\n private selectedDateIsTheMinimumDate(): boolean {\r\n return (\r\n this.minimumDate &&\r\n this.selectedDate.getFullYear() === this.minimumDate.getFullYear() &&\r\n this.selectedDate.getMonth() === this.minimumDate.getMonth() &&\r\n this.selectedDate.getDate() === this.minimumDate.getDate()\r\n );\r\n }\r\n\r\n private selectedDateIsTheMaximumDate(): boolean {\r\n return (\r\n this.maximumDate &&\r\n this.selectedDate.getFullYear() === this.maximumDate.getFullYear() &&\r\n this.selectedDate.getMonth() === this.maximumDate.getMonth() &&\r\n this.selectedDate.getDate() === this.maximumDate.getDate()\r\n );\r\n }\r\n\r\n private setListHoursMinutes(): void {\r\n this.hours = this.hours.filter(hour => hour % this.step.hours === 0);\r\n this.minutes = this.minutes.filter(minute => minute % this.step.minutes === 0);\r\n this.seconds = this.seconds.filter(seconde => seconde % this.step.seconds === 0);\r\n }\r\n}\r\n","<mat-form-field [subscriptSizing]=\"subscriptSizing()\">\r\n @if (label()) {\r\n <mat-label>{{ translateLabel() ? (label() | translate) : label() }}{{isRequired() ? '*' : ''}}</mat-label>\r\n }\r\n <input (focusout)=\"onTouched()\" matInput [value]=\"stringDate()\" readonly=\"readonly\">\r\n <button matSuffix mat-icon-button (click)=\"showDialog()\">\r\n <mat-icon>calendar_month</mat-icon>\r\n </button>\r\n</mat-form-field>","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, Injector, input, model, OnInit, output } from '@angular/core';\r\nimport { DialogPosition, MatDialog } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { DialogDateTimePickerComponent } from './components/dialog-date-time-picker/dialog-date-time-picker.component';\r\nimport { DialogDateTimePickerOptions, DialogDateTimePickerValue } from './models/dialog-date-time-picker-data';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, FormControl, FormControlName, FormGroup, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { MatFormFieldModule, SubscriptSizing } from '@angular/material/form-field';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-date-time-picker',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n TranslatePipe,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatFormFieldModule\r\n ],\r\n providers: [\r\n DatePipe,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: CaucaDateTimePickerComponent,\r\n }\r\n ],\r\n templateUrl: './cauca-date-time-picker.component.html',\r\n styleUrl: './cauca-date-time-picker.component.scss'\r\n})\r\nexport class CaucaDateTimePickerComponent implements ControlValueAccessor, OnInit {\r\n\r\n public readonly value = model<Date>(null);\r\n public readonly subscriptSizing = input<SubscriptSizing>('fixed');\r\n public readonly showTime = input<boolean>(true);\r\n public readonly label = input<string>('');\r\n public readonly translateLabel = input<boolean>(true);\r\n public readonly stepHours = input(1);\r\n public readonly stepMinutes = input(1);\r\n public readonly stepSecondes = input(1);\r\n public readonly minimumDate = input<Date>(null);\r\n public readonly maximumDate = input<Date>(null);\r\n public readonly showSeconds = input<boolean>(false);\r\n public readonly showFormat = input<string>('yyyy/MM/dd, HH:mm');\r\n public readonly showClearButton = input<boolean>(true);\r\n public readonly showButtonIcons = input<boolean>(true);\r\n public readonly selectedChange = output<Date>();\r\n\r\n public control: AbstractControl;\r\n public readonly stringDate = computed(() => this.value() ? this.stringifyDate(this.value()) : '');\r\n public readonly isRequired = computed(() => Boolean(this.control?.hasValidator(Validators.required)));\r\n\r\n private readonly injector = inject(Injector);\r\n private readonly elementRef = inject(ElementRef);\r\n private readonly dialog = inject(MatDialog);\r\n private readonly datePipe = inject(DatePipe);\r\n\r\n public ngOnInit(): void {\r\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\r\n if (ngControl instanceof FormControlName) {\r\n const container = this.injector.get(ControlContainer).control as FormGroup;\r\n this.control = container.controls[ngControl.name] as FormControl;\r\n } else {\r\n this.control = new FormControl();\r\n }\r\n }\r\n\r\n public showDialog(): void {\r\n const dialogRef = this.dialog.open(DialogDateTimePickerComponent, {\r\n position: this.getDialogPosition(),\r\n data: this.getDateTimePickerOptions(),\r\n maxWidth: '100vw',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((data: DialogDateTimePickerValue) => {\r\n if (data) {\r\n this.value.set(data.value);\r\n this.selectedChange.emit(data.value);\r\n this.onChange(data.value);\r\n }\r\n });\r\n }\r\n\r\n public writeValue(date: Date): void {\r\n this.value.set(date);\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public onChange = (value: Date): Date => value;\r\n\r\n public onTouched = (): void => {/* This method needs to be empty */ };\r\n\r\n private getDateTimePickerOptions(): DialogDateTimePickerOptions {\r\n return {\r\n selectedDate: this.value(),\r\n minimumDate: this.minimumDate(),\r\n maximumDate: this.maximumDate(),\r\n showSeconds: this.showSeconds(),\r\n showClearButton: this.showClearButton(),\r\n showButtonIcons: this.showButtonIcons(),\r\n showTime: this.showTime(),\r\n step: {\r\n hours: this.stepHours(),\r\n minutes: this.stepMinutes(),\r\n seconds: this.stepSecondes(),\r\n }\r\n };\r\n }\r\n\r\n private stringifyDate(date: Date): string {\r\n return this.datePipe.transform(date, this.showFormat());\r\n }\r\n\r\n private getDialogPosition(): DialogPosition {\r\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const top = rect.y + rect.height - 22;\r\n const bottom = window.innerHeight - rect.y;\r\n const minimumDialogHeight = 400;\r\n const minimumScreenSize = 800;\r\n\r\n if (window.innerHeight < minimumScreenSize || window.innerWidth < minimumScreenSize) {\r\n return null;\r\n } else if (window.innerHeight > (top + minimumDialogHeight)) {\r\n return {\r\n left: `${rect.x}px`,\r\n top: `${top}px`,\r\n };\r\n }\r\n\r\n return {\r\n left: `${rect.x}px`,\r\n bottom: `${bottom}px`,\r\n };\r\n }\r\n}\r\n","import { InputSignal, input, computed, output, Directive, OutputEmitterRef, signal } from \"@angular/core\";\r\n\r\n@Directive()\r\nexport abstract class BaseButton {\r\n public colorOnHover: InputSignal<string> = input(undefined);\r\n public color: InputSignal<string> = input(undefined);\r\n public icon: InputSignal<string> = input();\r\n public iconAlignment: InputSignal<'left' | 'right'> = input('left');\r\n public isDisabled: InputSignal<boolean> = input(false);\r\n public isInProgress: InputSignal<boolean> = input(false);\r\n\r\n public iconColor = computed(() => this.isHovered() ? this.colorOnHover() || this.color() : this.color()); \r\n public showIcon = computed(() => !!this.icon() || this.isInProgress());\r\n public iconToShow = computed(() => this.isInProgress() ? 'update' : this.icon());\r\n public buttonDisabled = computed(() => this.isDisabled() || this.isInProgress());\r\n\r\n public buttonClick: OutputEmitterRef<void> = output();\r\n\r\n public isHovered = signal(false);\r\n\r\n public onMouseEnter(): void {\r\n this.isHovered.set(true);\r\n }\r\n\r\n public onMouseLeave(): void {\r\n this.isHovered.set(false);\r\n }\r\n}\r\n\r\n@Directive()\r\nexport abstract class BaseButtonWithLabel extends BaseButton {\r\n public translateLabel: InputSignal<boolean> = input(true);\r\n public label: InputSignal<string> = input();\r\n public small: InputSignal<boolean> = input(false);\r\n}","<button mat-button [ngClass]=\"small() ? 'small-button' : ''\" [color]=\"color()\" onclick=\"this.blur()\" [disabled]=\"buttonDisabled()\" (click)=\"buttonClick.emit()\">\r\n @if(showIcon() && iconAlignment() === 'left') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n @if (translateLabel()) {{{label()|translate}}} @else {{{label()}}}\r\n @if(showIcon() && iconAlignment() === 'right') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n</button>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\n\r\n@Component({\r\n selector: 'cauca-basic-button',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatIcon, MatButton, TranslatePipe, NgClass],\r\n templateUrl: './basic-button.component.html',\r\n styleUrl: './basic-button.component.scss'\r\n})\r\nexport class BasicButtonComponent extends BaseButtonWithLabel {\r\n}\r\n","<button mat-fab [color]=\"color()\" onclick=\"this.blur()\" [disabled]=\"buttonDisabled()\" (click)=\"buttonClick.emit()\">\r\n @if (showIcon()) { <mat-icon [style.color]=\"iconColor()\" [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n</button>","import { ChangeDetectionStrategy, Component, computed } from '@angular/core';\r\nimport { MatButtonModule, } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\n\r\n@Component({\r\n selector: 'cauca-fab-button',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatButtonModule, MatIconModule],\r\n templateUrl: './fab-button.component.html',\r\n styleUrl: './fab-button.component.scss',\r\n})\r\nexport class FabButtonComponent extends BaseButtonWithLabel {\r\n public iconColor = computed(() => this.color() === 'primary' ? 'white' : undefined);\r\n}\r\n","<button mat-flat-button [ngClass]=\"small() ? 'small-button' : ''\" [color]=\"color()\" onclick=\"this.blur()\" [disabled]=\"buttonDisabled()\" (click)=\"buttonClick.emit();\">\r\n @if(showIcon() && iconAlignment() === 'left') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n @if (translateLabel()) {{{label()|translate}}} @else {{{label()}}}\r\n @if(showIcon() && iconAlignment() === 'right') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n</button>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\n\r\n@Component({\r\n selector: 'cauca-flat-button',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatIcon, MatButton, TranslatePipe, NgClass],\r\n templateUrl: './flat-button.component.html',\r\n styleUrl: './flat-button.component.scss'\r\n})\r\nexport class FlatButtonComponent extends BaseButtonWithLabel {\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { BaseButton } from '../base-button';\r\n\r\n@Component({\r\n selector: 'cauca-icon-button',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatIconButton, MatIcon],\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss'\r\n})\r\nexport class IconButtonComponent extends BaseButton {\r\n}\r\n","<button (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" mat-icon-button onclick=\"this.blur()\" (click)=\"buttonClick.emit();\" [disabled]=\"buttonDisabled()\">\r\n <mat-icon [style.color]=\"iconColor()\" [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon>\r\n</button>","@if (type() === 'basic') {\r\n <button [ngClass]=\"class()\" mat-button (click)=\"buttonClick.emit()\" [disabled]=\"disable() || inProgress()\" [color]=\"color()\" class=\"button-basic\">\r\n @if (inProgress() || icon()) {\r\n <mat-icon [class.button-spin]=\"inProgress()\">{{ inProgress() ? 'update' : icon() }}</mat-icon>\r\n }\r\n <span>{{label()}}</span>\r\n </button>\r\n}\r\n\r\n@if (type() === 'raised') {\r\n <button [ngClass]=\"class()\" matButton=\"elevated\" (click)=\"buttonClick.emit()\" [disabled]=\"disable() || inProgress()\" [color]=\"color()\" class=\"button-raised\">\r\n @if (inProgress() || icon()) {\r\n <mat-icon [class.button-spin]=\"inProgress()\">{{ inProgress() ? 'update' : icon() }}</mat-icon>\r\n }\r\n <span>{{label()}}</span>\r\n </button>\r\n}\r\n\r\n@if (type() === 'stroked') {\r\n <button [ngClass]=\"class()\" matButton=\"outlined\" (click)=\"buttonClick.emit()\" [disabled]=\"disable() || inProgress()\" [color]=\"color()\" class=\"button-stroked\">\r\n @if (inProgress() || icon()) {\r\n <mat-icon [class.button-spin]=\"inProgress()\">{{ inProgress() ? 'update' : icon() }}</mat-icon>\r\n }\r\n <span>{{label()}}</span>\r\n </button>\r\n}\r\n\r\n@if (type() === 'flat') {\r\n <button [ngClass]=\"class()\" matButton=\"filled\" (click)=\"buttonClick.emit()\" [disabled]=\"disable() || inProgress()\" [color]=\"color()\" class=\"button-flat\">\r\n @if (inProgress() || icon()) {\r\n <mat-icon [class.button-spin]=\"inProgress()\">{{ inProgress() ? 'update' : icon() }}</mat-icon>\r\n }\r\n <span>{{label()}}</span>\r\n </button>\r\n}\r\n\r\n@if (type() === 'icon') {\r\n <button [ngClass]=\"class()\" matIconButton (click)=\"buttonClick.emit()\" [disabled]=\"disable() || inProgress()\" [color]=\"color()\" class=\"button-icon\">\r\n @if (inProgress() || icon()) {\r\n <mat-icon [class.button-spin]=\"inProgress()\">{{ inProgress() ? 'update' : icon() }}</mat-icon>\r\n }\r\n </button>\r\n}\r\n\r\n@if (type() === 'fab') {\r\n <button [ngClass]=\"class()\" matFab (click)=\"buttonClick.emit()\" [disabled]=\"disable() || inProgress()\" [color]=\"color()\" class=\"button-icon\">\r\n @if (inProgress() || icon()) {\r\n <mat-icon [class.button-spin]=\"inProgress()\">{{ inProgress() ? 'update' : icon() }}</mat-icon>\r\n }\r\n <span>{{label()}}</span>\r\n </button>\r\n}","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'cauca-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n imports: [MatIconModule, MatButtonModule, NgClass],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ButtonComponent {\r\n public class = input<string | null>(null);\r\n public inProgress = input<boolean>(false);\r\n public disable = input<boolean>(false);\r\n public label = input<string>('');\r\n public icon = input<string | null>(null);\r\n public color = input<string>('');\r\n public type = input<'basic' | 'raised' | 'stroked' | 'flat' | 'icon' | 'fab'>('basic');\r\n public buttonClick = output<void>();\r\n}","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { ButtonComponent } from '../../button/button.component';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: 'cauca-link-button',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './link-button.component.html',\r\n styleUrls: ['./link-button.component.scss'],\r\n imports: [ButtonComponent, TranslatePipe]\r\n})\r\nexport class LinkButtonComponent {\r\n public readonly segments = input<string[]>();\r\n\r\n private readonly clipboard = inject(Clipboard);\r\n\r\n public copyLink(): void {\r\n const link = location.origin + this.segments().map((segment: string) => `/${segment}`).join('');\r\n this.clipboard.copy(link);\r\n }\r\n}\r\n","<cauca-button class=\"link-button\" icon=\"link\" type=\"stroked\" color=\"primary\" (buttonClick)=\"copyLink()\" [label]=\"'copyLink'|translate\" />","<button (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" mat-menu-item [ngClass]=\"small() ? 'small-button' : ''\" class=\"change-password-menu-item\" [matMenuTriggerFor]=\"trigger()\" [disabled]=\"buttonDisabled()\" (click)=\"buttonClick.emit()\">\r\n @if(showIcon() && iconAlignment() === 'left') { <mat-icon [style.color]=\"iconColor()\" [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n @if (translateLabel()) {{{label()|translate}}} @else {{{label()}}}\r\n @if(showIcon() && iconAlignment() === 'right') { <mat-icon [style.color]=\"iconColor()\" [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n</button>\r\n","import { ChangeDetectionStrategy, Component, InputSignal, input, } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-menu-item',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatMenuItem, TranslatePipe, MatIcon, MatMenuTrigger, NgClass],\r\n templateUrl: './menu-item.component.html',\r\n styleUrl: './menu-item.component.scss',\r\n})\r\nexport class MenuItemComponent extends BaseButtonWithLabel {\r\n public translateLabel: InputSignal<boolean> = input(false);\r\n public trigger: InputSignal<any> = input();\r\n}\r\n","<button mat-raised-button [ngClass]=\"small() ? 'small-button' : ''\" [color]=\"color()\" onclick=\"this.blur()\" [disabled]=\"buttonDisabled()\" (click)=\"buttonClick.emit()\">\r\n @if (showIcon() && iconAlignment() === 'left') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n @if (translateLabel()) {{{label()|translate}}} @else {{{label()}}}\r\n @if (showIcon() && iconAlignment() === 'right') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n</button>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButton, } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-raised-button',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatButton, MatIconModule, TranslatePipe, NgClass],\r\n templateUrl: './raised-button.component.html',\r\n styleUrl: './raised-button.component.scss',\r\n})\r\nexport class RaisedButtonComponent extends BaseButtonWithLabel {\r\n}\r\n","import { Component, ChangeDetectionStrategy, input, output } from '@angular/core';\r\nimport { ButtonComponent } from '../../button/button.component';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-refresh-button',\r\n imports: [ButtonComponent, TranslatePipe],\r\n templateUrl: './refresh-button.component.html',\r\n styleUrl: './refresh-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RefreshButtonComponent {\r\n public readonly inProgress = input<boolean>(false);\r\n public readonly refreshEvent = output<void>();\r\n\r\n public refresh(): void {\r\n this.refreshEvent.emit();\r\n }\r\n}","<cauca-button class=\"refresh-button\" icon=\"refresh\" type=\"stroked\" color=\"primary\" (buttonClick)=\"refresh()\" [label]=\"'refresh' | translate\" />","<button (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" onclick=\"this.blur()\" (click)=\"buttonClick.emit();\" [disabled]=\"buttonDisabled()\">\r\n @if (translateLabel()) {{{label()|translate}}} @else {{{label()}}}\r\n</button>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-round-button',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [TranslatePipe],\r\n templateUrl: './round-button.component.html',\r\n styleUrl: './round-button.component.scss'\r\n})\r\nexport class RoundButtonComponent extends BaseButtonWithLabel {\r\n}\r\n","<button mat-stroked-button [ngClass]=\"small() ? 'small-button' : ''\" [color]=\"color()\" onclick=\"this.blur()\" [disabled]=\"buttonDisabled()\" (click)=\"buttonClick.emit()\" [class.icon-only]=\"!label()\">\r\n @if(showIcon() && iconAlignment() === 'left') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n @if (label()) { @if (translateLabel()) {{{label()|translate}}} @else {{{label()}}} }\r\n @if(showIcon() && iconAlignment() === 'right') { <mat-icon [class.button-spin]=\"isInProgress()\">{{iconToShow()}}</mat-icon> }\r\n</button>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButton, } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { BaseButtonWithLabel } from '../base-button';\r\nimport