juvo-rafa-library
Version:
A comprehensive Angular component library featuring real-world components and validators extracted from the Juvo Rafa backoffice application. Now with improved select components and bug fixes.
124 lines (123 loc) • 4.73 kB
TypeScript
import { EventEmitter } from '@angular/core';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
* Configuration interface for JuvoButtonActionComponent
*
* @interface ButtonActionConfig
* @since 2.0.0
*/
export interface ButtonActionConfig {
/** Show Create button */
buttonCreate?: boolean;
/** Show Create and Copy button */
buttonCreateCopy?: boolean;
/** Show Save and Copy button */
buttonSaveCopy?: boolean;
/** Show Save button */
buttonSave?: boolean;
/** Disable all action buttons */
disable?: boolean;
/** Custom text for Save button */
saveText?: string;
/** Button style: true for solid, false for outlined */
buttonType?: boolean;
}
/**
* Action Button Group Component
*
* @description
* A reusable button group component commonly used in forms and data entry screens.
* Provides standard actions like Save, Create, Create Copy, Save Copy, and Cancel.
* Originally designed for backoffice applications where consistent form actions are needed.
*
* @example
* ```html
* <!-- Basic usage -->
* <juvo-button-action
* [buttonSave]="true"
* [buttonCreate]="true"
* (actionSaveTriggered)="onSave()"
* (actionCreateTriggered)="onCreate()"
* (actionCancelTriggered)="onCancel()">
* </juvo-button-action>
*
* <!-- Advanced usage with loading state -->
* <juvo-button-action
* [loading$]="loadingObservable$"
* [buttonSave]="true"
* [buttonCreateCopy]="true"
* [buttonType]="true"
* [disable]="!form.valid"
* saveText="Update Record"
* (actionSaveTriggered)="onUpdate()"
* (actionCreateCopyTriggered)="onDuplicate()">
* </juvo-button-action>
* ```
*
* @selector juvo-button-action
* @since 2.0.0
* @author Juvo Rafa Team
*/
export declare class JuvoButtonActionComponent {
/** Observable for loading state of buttons */
loading$?: Observable<boolean>;
/** Configuration object for button visibility and behavior */
config: ButtonActionConfig;
/** Show Create button */
buttonCreate?: boolean;
/** Show Create and Copy button */
buttonCreateCopy?: boolean;
/** Show Save and Copy button */
buttonSaveCopy?: boolean;
/** Show Save button */
buttonSave?: boolean;
/** Disable all action buttons */
disable: boolean;
/** Custom text for Save button @default "Save" */
saveText: string;
/** Button style: true for solid, false for outlined @default false */
buttonType: boolean;
/** Emitted when Save button is clicked */
actionSaveTriggered: EventEmitter<void>;
/** Emitted when Create button is clicked */
actionCreateTriggered: EventEmitter<void>;
/** Emitted when Create and Copy button is clicked */
actionCreateCopyTriggered: EventEmitter<void>;
/** Emitted when Save and Copy button is clicked */
actionSaveCopyTriggered: EventEmitter<void>;
/** Emitted when Cancel button is clicked */
actionCancelTriggered: EventEmitter<void>;
/**
* Gets the current loading state
* @returns true if loading, false otherwise
*/
get isLoading(): boolean;
/**
* Handles Save button click
* @emits actionSaveTriggered
*/
onSave(): void;
/**
* Handles Create button click
* @emits actionCreateTriggered
*/
onCreate(): void;
/**
* Handles Create and Copy button click
* @emits actionCreateCopyTriggered
*/
onCreateCopy(): void;
/**
* Handles Save and Copy button click
* @emits actionSaveCopyTriggered
*/
onSaveCopy(): void;
/**
* Handles Cancel button click
* @emits actionCancelTriggered
*/
onCancel(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<JuvoButtonActionComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<JuvoButtonActionComponent, "juvo-button-action", never, { "loading$": { "alias": "loading$"; "required": false; }; "config": { "alias": "config"; "required": false; }; "buttonCreate": { "alias": "buttonCreate"; "required": false; }; "buttonCreateCopy": { "alias": "buttonCreateCopy"; "required": false; }; "buttonSaveCopy": { "alias": "buttonSaveCopy"; "required": false; }; "buttonSave": { "alias": "buttonSave"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "saveText": { "alias": "saveText"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; }; }, { "actionSaveTriggered": "actionSaveTriggered"; "actionCreateTriggered": "actionCreateTriggered"; "actionCreateCopyTriggered": "actionCreateCopyTriggered"; "actionSaveCopyTriggered": "actionSaveCopyTriggered"; "actionCancelTriggered": "actionCancelTriggered"; }, never, never, true, never>;
}