UNPKG

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
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>; }