@acontplus/ng-components 2.1.9 → 2.1.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acontplus/ng-components",
3
- "version": "2.1.9",
3
+ "version": "2.1.11",
4
4
  "description": "Comprehensive Angular Material UI component library featuring dynamic Tabulator tables, theme toggle with dark mode, dialog wrappers, autocomplete components, cards, buttons, icons, input chips, spinners, directives, pipes, and SCSS styling utilities.",
5
5
  "peerDependencies": {
6
6
  "@acontplus/ui-kit": "^1.0.2",
@@ -1,9 +1,9 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Type, AfterViewInit, OnDestroy, ViewContainerRef, ElementRef, OnInit, TemplateRef, OnChanges, SimpleChanges, InjectionToken, QueryList, TrackByFunction, KeyValueChangeRecord, EventEmitter, ComponentRef, AfterContentInit, PipeTransform } from '@angular/core';
2
+ import { Type, AfterViewInit, OnDestroy, ViewContainerRef, ElementRef, OnInit, TemplateRef, OnChanges, SimpleChanges, InjectionToken, QueryList, TrackByFunction, KeyValueChangeRecord, OutputEmitterRef, WritableSignal, EventEmitter, ComponentRef, AfterContentInit, PipeTransform } from '@angular/core';
3
3
  import { MatDialogRef } from '@angular/material/dialog';
4
4
  import { ScrollStrategy } from '@angular/cdk/overlay';
5
5
  import { FormControl, ControlValueAccessor } from '@angular/forms';
6
- import { SelectOption, IconDefinition, ButtonVariant, ButtonType, MaterialButtonStyle, REPORT_FORMAT } from '@acontplus/ui-kit';
6
+ import { ButtonVariant, MaterialButtonStyle, SelectOption, IconDefinition, ButtonType as ButtonType$1, REPORT_FORMAT } from '@acontplus/ui-kit';
7
7
  import { SafeHtml } from '@angular/platform-browser';
8
8
  import { MatChipInputEvent, MatChipEditedEvent } from '@angular/material/chips';
9
9
  import { LiveAnnouncer, FocusOrigin } from '@angular/cdk/a11y';
@@ -18,9 +18,8 @@ import { MatBadgePosition, MatBadgeSize } from '@angular/material/badge';
18
18
  import { MatButtonAppearance } from '@angular/material/button';
19
19
  import { ThemePalette } from '@angular/material/core';
20
20
  import { TooltipPosition, TooltipTouchGestures } from '@angular/material/tooltip';
21
- import { MatFormFieldControl } from '@angular/material/form-field';
22
- import { DatexOptions } from 'datex-ui';
23
- export { BOOTSTRAP_THEME, DEFAULT_THEME, Datex, DatexCallback, DatexLocale, DatexOptions, DatexTheme, MATERIAL_THEME, SPANISH_LOCALE, SPANISH_LOCALE_WITH_TIME } from 'datex-ui';
21
+ import { NgxDatexLocale, NgxDatexTheme, NgxDatexValue } from 'ngx-datex';
22
+ export { MATERIAL_LIGHT_THEME, NgxDatex, NgxDatexConfig, NgxDatexLocale, NgxDatexRange, NgxDatexTheme, NgxDatexValue, SPANISH_LOCALE } from 'ngx-datex';
24
23
  import { ComponentType } from '@angular/cdk/portal';
25
24
  import { Direction } from '@angular/cdk/bidi';
26
25
  import { DialogRole, CdkDialogContainer, DialogRef } from '@angular/cdk/dialog';
@@ -434,6 +433,160 @@ declare class AutocompleteWrapperService {
434
433
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AutocompleteWrapperService>;
435
434
  }
436
435
 
436
+ type AlertType = 'success' | 'error' | 'warning' | 'info' | 'question';
437
+ type AlertPosition = 'top' | 'top-start' | 'top-end' | 'center' | 'center-start' | 'center-end' | 'bottom' | 'bottom-start' | 'bottom-end';
438
+ interface AlertDialogOptions {
439
+ title?: string;
440
+ message?: string;
441
+ html?: string;
442
+ icon?: string;
443
+ iconColor?: string;
444
+ type?: AlertType;
445
+ width?: string;
446
+ minWidth?: string;
447
+ maxWidth?: string;
448
+ height?: string;
449
+ position?: AlertPosition;
450
+ customClass?: string;
451
+ panelClass?: string | string[];
452
+ backdropClass?: string;
453
+ component?: Type<any>;
454
+ componentProps?: {
455
+ [key: string]: any;
456
+ };
457
+ verticalButtons?: boolean;
458
+ fullWidthButtons?: boolean;
459
+ reverseButtons?: boolean;
460
+ timer?: number;
461
+ timerProgressBar?: boolean;
462
+ disableClose?: boolean;
463
+ closeOnBackdropClick?: boolean;
464
+ allowEscapeKey?: boolean;
465
+ allowEnterKey?: boolean;
466
+ scrollbarPadding?: boolean;
467
+ showConfirmButton?: boolean;
468
+ showCancelButton?: boolean;
469
+ showDenyButton?: boolean;
470
+ confirmText?: string;
471
+ cancelText?: string;
472
+ denyText?: string;
473
+ confirmButtonIcon?: string;
474
+ cancelButtonIcon?: string;
475
+ denyButtonIcon?: string;
476
+ confirmButtonVariant?: ButtonVariant;
477
+ cancelButtonVariant?: ButtonVariant;
478
+ denyButtonVariant?: ButtonVariant;
479
+ confirmButtonStyle?: MaterialButtonStyle;
480
+ cancelButtonStyle?: MaterialButtonStyle;
481
+ denyButtonStyle?: MaterialButtonStyle;
482
+ confirmButtonColor?: ThemePalette | string;
483
+ cancelButtonColor?: ThemePalette | string;
484
+ denyButtonColor?: ThemePalette | string;
485
+ disableConfirmButton?: boolean;
486
+ disableCancelButton?: boolean;
487
+ disableDenyButton?: boolean;
488
+ focusConfirm?: boolean;
489
+ focusCancel?: boolean;
490
+ focusDeny?: boolean;
491
+ processing?: boolean;
492
+ processingButton?: 'confirm' | 'cancel' | 'deny';
493
+ input?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'textarea';
494
+ inputLabel?: string;
495
+ inputPlaceholder?: string;
496
+ inputValue?: string;
497
+ inputValidator?: (value: string) => string | null | Promise<string | null>;
498
+ inputAttributes?: {
499
+ [key: string]: string;
500
+ };
501
+ imageUrl?: string;
502
+ imageWidth?: string;
503
+ imageHeight?: string;
504
+ imageAlt?: string;
505
+ footer?: string;
506
+ footerHtml?: string;
507
+ willOpen?: () => void;
508
+ didOpen?: () => void;
509
+ willClose?: () => void;
510
+ didClose?: () => void;
511
+ preConfirm?: (value?: string) => Promise<any> | any;
512
+ preDeny?: (value?: string) => Promise<any> | any;
513
+ showClass?: {
514
+ backdrop?: string;
515
+ popup?: string;
516
+ };
517
+ hideClass?: {
518
+ backdrop?: string;
519
+ popup?: string;
520
+ };
521
+ ariaLabel?: string;
522
+ ariaDescribedBy?: string;
523
+ }
524
+ interface AlertDialogResult<T = any> {
525
+ isConfirmed: boolean;
526
+ isDismissed: boolean;
527
+ isDenied: boolean;
528
+ value?: T;
529
+ dismiss?: 'backdrop' | 'cancel' | 'esc' | 'close' | 'timer';
530
+ }
531
+ declare class AlertDialogService {
532
+ private dialog;
533
+ private defaultOptions;
534
+ /**
535
+ * Configurar opciones por defecto para todos los diálogos
536
+ */
537
+ setDefaults(options: Partial<AlertDialogOptions>): void;
538
+ /**
539
+ * Obtener opciones por defecto actuales
540
+ */
541
+ getDefaults(): Partial<AlertDialogOptions>;
542
+ /**
543
+ * Resetear a opciones por defecto originales
544
+ */
545
+ resetDefaults(): void;
546
+ /**
547
+ * Muestra un diálogo de alerta con todas las opciones configurables
548
+ */
549
+ fire(options: AlertDialogOptions): Promise<AlertDialogResult>;
550
+ /**
551
+ * Alerta de éxito
552
+ */
553
+ success(options: string | Omit<AlertDialogOptions, 'type'>): Promise<AlertDialogResult>;
554
+ /**
555
+ * Alerta de error
556
+ */
557
+ error(options: string | Omit<AlertDialogOptions, 'type'>): Promise<AlertDialogResult>;
558
+ /**
559
+ * Alerta de advertencia
560
+ */
561
+ warning(options: string | Omit<AlertDialogOptions, 'type'>): Promise<AlertDialogResult>;
562
+ /**
563
+ * Alerta de información
564
+ */
565
+ info(options: string | Omit<AlertDialogOptions, 'type'>): Promise<AlertDialogResult>;
566
+ /**
567
+ * Diálogo de confirmación
568
+ */
569
+ confirm(options: string | Omit<AlertDialogOptions, 'type' | 'showCancelButton'>): Promise<AlertDialogResult>;
570
+ /**
571
+ * Prompt para capturar input del usuario
572
+ */
573
+ prompt(options: Omit<AlertDialogOptions, 'input'> & {
574
+ input?: AlertDialogOptions['input'];
575
+ }): Promise<AlertDialogResult<string>>;
576
+ /**
577
+ * Toast notification (auto-cierre, posición personalizada)
578
+ */
579
+ toast(options: string | AlertDialogOptions): Promise<AlertDialogResult>;
580
+ /**
581
+ * Cerrar todos los diálogos abiertos
582
+ */
583
+ closeAll(): void;
584
+ private getDialogPosition;
585
+ private getPanelClasses;
586
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertDialogService, never>;
587
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AlertDialogService>;
588
+ }
589
+
437
590
  /**
438
591
  * A wrapper component for Angular Material dialogs that provides a consistent look and feel,
439
592
  * including a draggable header and the ability to dynamically create components inside the dialog.
@@ -503,7 +656,7 @@ declare class DynamicSelect implements OnInit, OnDestroy {
503
656
  clearable: _angular_core.InputSignal<boolean>;
504
657
  searchable: _angular_core.InputSignal<boolean>;
505
658
  virtualScroll: _angular_core.InputSignal<boolean>;
506
- dropdownPosition: _angular_core.InputSignal<"auto" | "bottom" | "top">;
659
+ dropdownPosition: _angular_core.InputSignal<"auto" | "top" | "bottom">;
507
660
  closeOnSelect: _angular_core.InputSignal<boolean>;
508
661
  hideSelected: _angular_core.InputSignal<boolean>;
509
662
  multiple: _angular_core.InputSignal<boolean>;
@@ -674,7 +827,7 @@ declare class Button {
674
827
  text: _angular_core.InputSignal<string>;
675
828
  icon: _angular_core.InputSignal<string>;
676
829
  disabled: _angular_core.InputSignal<boolean>;
677
- type: _angular_core.InputSignal<ButtonType>;
830
+ type: _angular_core.InputSignal<ButtonType$1>;
678
831
  matStyle: _angular_core.InputSignal<MaterialButtonStyle>;
679
832
  customClass: _angular_core.InputSignal<string | undefined>;
680
833
  reportFormat: _angular_core.InputSignal<REPORT_FORMAT | undefined>;
@@ -1224,7 +1377,7 @@ declare class DataGrid<T = any> implements AfterViewInit, OnDestroy, OnChanges {
1224
1377
  noResultTemplate: _angular_core.InputSignal<TemplateRef<any> | undefined>;
1225
1378
  paginationTemplate: _angular_core.InputSignal<TemplateRef<any> | undefined>;
1226
1379
  summaryTemplate: _angular_core.InputSignal<TemplateRef<any> | DataGridCellTemplate | undefined>;
1227
- size: _angular_core.InputSignal<"small" | "medium" | "normal">;
1380
+ size: _angular_core.InputSignal<"medium" | "small" | "normal">;
1228
1381
  headerCellTemplate: _angular_core.InputSignal<TemplateRef<any> | DataGridCellTemplate | undefined>;
1229
1382
  expandable: _angular_core.InputSignal<boolean>;
1230
1383
  expansionTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
@@ -1412,8 +1565,22 @@ declare class KeyboardNavigationService {
1412
1565
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<KeyboardNavigationService>;
1413
1566
  }
1414
1567
 
1415
- interface DateRangePickerOptions extends DatexOptions {
1568
+ interface DateRangePickerOptions {
1416
1569
  presetTheme?: 'default' | 'bootstrap' | 'material' | 'custom';
1570
+ locale?: NgxDatexLocale;
1571
+ theme?: NgxDatexTheme;
1572
+ ranges?: Record<string, [Date, Date]>;
1573
+ minDate?: Date | null;
1574
+ maxDate?: Date | null;
1575
+ singleDatePicker?: boolean;
1576
+ timePicker?: boolean;
1577
+ timePicker24Hour?: boolean;
1578
+ timePickerSeconds?: boolean;
1579
+ timePickerIncrement?: number;
1580
+ autoApply?: boolean;
1581
+ showDropdowns?: boolean;
1582
+ linkedCalendars?: boolean;
1583
+ alwaysShowCalendars?: boolean;
1417
1584
  }
1418
1585
  type DateValue<AsString extends boolean> = AsString extends true ? string : Date;
1419
1586
  interface DateRangeValue<AsString extends boolean> {
@@ -1421,76 +1588,73 @@ interface DateRangeValue<AsString extends boolean> {
1421
1588
  to: DateValue<AsString>;
1422
1589
  label?: string;
1423
1590
  }
1424
- declare class DateRangePicker<AsString extends boolean = true> implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, MatFormFieldControl<any> {
1425
- static nextId: number;
1426
- readonly id: string;
1427
- readonly controlType = "acp-date-range-picker";
1428
- readonly stateChanges: Subject<void>;
1429
- readonly autofilled = false;
1430
- dateInput: ElementRef<HTMLInputElement>;
1431
- private _focused;
1432
- private _required;
1433
- private _value;
1434
- get focused(): boolean;
1435
- get empty(): boolean;
1436
- get shouldLabelFloat(): boolean;
1437
- get required(): boolean;
1438
- private readonly _errorState;
1439
- get errorState(): boolean;
1440
- get value(): any;
1441
- set value(val: any);
1442
- get placeholder(): string;
1443
- get disabled(): boolean;
1444
- ngControl: any;
1445
- setDescribedByIds(_ids: string[]): void;
1446
- onContainerClick(): void;
1447
- focus(): void;
1591
+ declare class DateRangePicker<AsString extends boolean = true> implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
1448
1592
  options: _angular_core.InputSignal<DateRangePickerOptions>;
1449
1593
  placeholderText: _angular_core.InputSignal<string>;
1450
1594
  isDisabled: _angular_core.InputSignal<boolean>;
1451
1595
  inputReadonly: _angular_core.InputSignal<boolean>;
1452
- label: _angular_core.InputSignal<string | undefined>;
1453
- hint: _angular_core.InputSignal<string | undefined>;
1454
- errorMessage: _angular_core.InputSignal<string | undefined>;
1596
+ label: _angular_core.InputSignal<string>;
1455
1597
  appearance: _angular_core.InputSignal<"fill" | "outline">;
1456
1598
  formatOutputAsString: _angular_core.InputSignal<AsString>;
1457
1599
  calendarIcon: _angular_core.InputSignal<string>;
1458
1600
  showCalendarButton: _angular_core.InputSignal<boolean>;
1459
1601
  showCheckbox: _angular_core.InputSignal<boolean>;
1460
1602
  checkboxChecked: _angular_core.ModelSignal<boolean>;
1461
- checkboxReadonly: _angular_core.InputSignal<boolean>;
1462
- checkboxAriaLabel: _angular_core.InputSignal<string>;
1463
1603
  checkboxPosition: _angular_core.InputSignal<"prefix" | "suffix">;
1464
- dateRangeSelected: _angular_core.OutputEmitterRef<DateRangeValue<AsString>>;
1465
- pickerShow: _angular_core.OutputEmitterRef<void>;
1466
- pickerHide: _angular_core.OutputEmitterRef<void>;
1467
- pickerApply: _angular_core.OutputEmitterRef<void>;
1468
- pickerCancel: _angular_core.OutputEmitterRef<void>;
1469
- checkboxChange: _angular_core.OutputEmitterRef<boolean>;
1470
- private picker?;
1604
+ singleDatePicker: _angular_core.InputSignal<boolean>;
1605
+ timePicker: _angular_core.InputSignal<boolean>;
1606
+ timePicker24Hour: _angular_core.InputSignal<boolean>;
1607
+ timePickerSeconds: _angular_core.InputSignal<boolean>;
1608
+ timePickerIncrement: _angular_core.InputSignal<number>;
1609
+ autoApply: _angular_core.InputSignal<boolean>;
1610
+ showDropdowns: _angular_core.InputSignal<boolean>;
1611
+ linkedCalendars: _angular_core.InputSignal<boolean>;
1612
+ alwaysShowCalendars: _angular_core.InputSignal<boolean>;
1613
+ minDate: _angular_core.InputSignal<Date | null>;
1614
+ maxDate: _angular_core.InputSignal<Date | null>;
1615
+ dateRangeSelected: OutputEmitterRef<DateRangeValue<AsString>>;
1616
+ pickerShow: OutputEmitterRef<void>;
1617
+ pickerHide: OutputEmitterRef<void>;
1618
+ pickerApply: OutputEmitterRef<void>;
1619
+ pickerCancel: OutputEmitterRef<void>;
1620
+ checkboxChange: OutputEmitterRef<boolean>;
1621
+ dateRangeValue: NgxDatexValue | null;
1622
+ predefinedRanges: Record<string, [Date, Date]>;
1623
+ locale: NgxDatexLocale;
1624
+ theme: NgxDatexTheme;
1471
1625
  private currentDate;
1626
+ private readonly stateChanges;
1472
1627
  private onChange;
1473
1628
  private onTouched;
1629
+ effectiveMinDate: WritableSignal<Date | null>;
1630
+ effectiveMaxDate: WritableSignal<Date | null>;
1631
+ get minDateForTemplate(): any;
1632
+ get maxDateForTemplate(): any;
1474
1633
  ngOnInit(): void;
1475
1634
  ngOnChanges(changes: SimpleChanges): void;
1476
1635
  ngOnDestroy(): void;
1477
1636
  private mapDate;
1478
- private initializePicker;
1479
- private reinitializePicker;
1480
- private buildDatexOptions;
1637
+ private initializeConfiguration;
1481
1638
  private getDefaultRanges;
1639
+ private getLocale;
1482
1640
  private getTheme;
1483
- private setupEventListeners;
1641
+ onDateChange(value: NgxDatexValue | null): void;
1642
+ onRangeChange(range: {
1643
+ startDate: Date;
1644
+ endDate: Date | null;
1645
+ }): void;
1646
+ onPickerShow(): void;
1647
+ onPickerHide(): void;
1648
+ onCheckboxToggle(checked: boolean): void;
1484
1649
  writeValue(value: any): void;
1485
1650
  registerOnChange(fn: any): void;
1486
1651
  registerOnTouched(fn: any): void;
1487
- setDisabledState(isDisabled: boolean): void;
1652
+ setDisabledState(_isDisabled: boolean): void;
1488
1653
  show(): void;
1489
1654
  hide(): void;
1490
1655
  toggle(): void;
1491
- onCheckboxToggle(event: any): void;
1492
1656
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateRangePicker<any>, never>;
1493
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangePicker<any>, "acp-date-range-picker", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholderText": { "alias": "placeholderText"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "inputReadonly": { "alias": "inputReadonly"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "formatOutputAsString": { "alias": "formatOutputAsString"; "required": false; "isSignal": true; }; "calendarIcon": { "alias": "calendarIcon"; "required": false; "isSignal": true; }; "showCalendarButton": { "alias": "showCalendarButton"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "checkboxChecked": { "alias": "checkboxChecked"; "required": false; "isSignal": true; }; "checkboxReadonly": { "alias": "checkboxReadonly"; "required": false; "isSignal": true; }; "checkboxAriaLabel": { "alias": "checkboxAriaLabel"; "required": false; "isSignal": true; }; "checkboxPosition": { "alias": "checkboxPosition"; "required": false; "isSignal": true; }; }, { "checkboxChecked": "checkboxCheckedChange"; "dateRangeSelected": "dateRangeSelected"; "pickerShow": "pickerShow"; "pickerHide": "pickerHide"; "pickerApply": "pickerApply"; "pickerCancel": "pickerCancel"; "checkboxChange": "checkboxChange"; }, never, never, true, never>;
1657
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangePicker<any>, "acp-date-range-picker", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholderText": { "alias": "placeholderText"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "inputReadonly": { "alias": "inputReadonly"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "formatOutputAsString": { "alias": "formatOutputAsString"; "required": false; "isSignal": true; }; "calendarIcon": { "alias": "calendarIcon"; "required": false; "isSignal": true; }; "showCalendarButton": { "alias": "showCalendarButton"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "checkboxChecked": { "alias": "checkboxChecked"; "required": false; "isSignal": true; }; "checkboxPosition": { "alias": "checkboxPosition"; "required": false; "isSignal": true; }; "singleDatePicker": { "alias": "singleDatePicker"; "required": false; "isSignal": true; }; "timePicker": { "alias": "timePicker"; "required": false; "isSignal": true; }; "timePicker24Hour": { "alias": "timePicker24Hour"; "required": false; "isSignal": true; }; "timePickerSeconds": { "alias": "timePickerSeconds"; "required": false; "isSignal": true; }; "timePickerIncrement": { "alias": "timePickerIncrement"; "required": false; "isSignal": true; }; "autoApply": { "alias": "autoApply"; "required": false; "isSignal": true; }; "showDropdowns": { "alias": "showDropdowns"; "required": false; "isSignal": true; }; "linkedCalendars": { "alias": "linkedCalendars"; "required": false; "isSignal": true; }; "alwaysShowCalendars": { "alias": "alwaysShowCalendars"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "checkboxChecked": "checkboxCheckedChange"; "dateRangeSelected": "dateRangeSelected"; "pickerShow": "pickerShow"; "pickerHide": "pickerHide"; "pickerApply": "pickerApply"; "pickerCancel": "pickerCancel"; "checkboxChange": "checkboxChange"; }, never, never, true, never>;
1494
1658
  }
1495
1659
 
1496
1660
  /** Options for where to set focus to automatically on dialog open. */
@@ -1899,7 +2063,7 @@ type AcpPopoverPosition = [AcpPopoverPositionStart, AcpPopoverPositionEnd];
1899
2063
  /** Popover's trigger event. */
1900
2064
  type AcpPopoverTriggerEvent = 'click' | 'hover' | 'none';
1901
2065
  /** Reason why the popover was closed. */
1902
- type PopoverCloseReason = void | 'click' | 'keydown' | 'tab';
2066
+ type PopoverCloseReason = void | 'click' | 'keydown' | 'tab' | 'programmatic';
1903
2067
 
1904
2068
  /**
1905
2069
  * Interface for a custom popover panel that can be used with `acpPopoverTriggerFor`.
@@ -1958,6 +2122,7 @@ declare const ACP_POPOVER_DEFAULT_OPTIONS: InjectionToken<AcpPopoverDefaultOptio
1958
2122
  * various positioning options. It's built on top of Angular CDK Overlay
1959
2123
  * and provides a flexible way to display contextual information.
1960
2124
  *
2125
+ * ## Basic Usage
1961
2126
  * @example
1962
2127
  * ```html
1963
2128
  * <acp-popover #popover="acpPopover" [position]="['below', 'after']">
@@ -1966,6 +2131,62 @@ declare const ACP_POPOVER_DEFAULT_OPTIONS: InjectionToken<AcpPopoverDefaultOptio
1966
2131
  *
1967
2132
  * <button [acpPopoverTriggerFor]="popover">Show popover</button>
1968
2133
  * ```
2134
+ *
2135
+ * ## Closing Explicitly
2136
+ *
2137
+ * ### 1. Close from within popover content:
2138
+ * @example
2139
+ * ```html
2140
+ * <acp-popover #popover="acpPopover">
2141
+ * <div>
2142
+ * <p>Popover content</p>
2143
+ * <button (click)="popover.close()">Close</button>
2144
+ * <button (click)="popover.close('user-action')">Close with reason</button>
2145
+ * </div>
2146
+ * </acp-popover>
2147
+ * ```
2148
+ *
2149
+ * ### 2. Close from component using ViewChild:
2150
+ * @example
2151
+ * ```typescript
2152
+ * @Component({
2153
+ * template: `
2154
+ * <acp-popover #popover="acpPopover">
2155
+ * <div>Content with external close</div>
2156
+ * </acp-popover>
2157
+ * <button [acpPopoverTriggerFor]="popover">Open</button>
2158
+ * <button (click)="closePopover()">Close from outside</button>
2159
+ * `
2160
+ * })
2161
+ * export class MyComponent {
2162
+ * @ViewChild('popover') popover!: AcpPopover;
2163
+ *
2164
+ * closePopover() {
2165
+ * this.popover.close('programmatic');
2166
+ * }
2167
+ * }
2168
+ * ```
2169
+ *
2170
+ * ### 3. Close using trigger reference:
2171
+ * @example
2172
+ * ```html
2173
+ * <acp-popover #popover="acpPopover">
2174
+ * <div>Popover content</div>
2175
+ * </acp-popover>
2176
+ *
2177
+ * <button [acpPopoverTriggerFor]="popover" #trigger="acpPopoverTrigger">
2178
+ * Show popover
2179
+ * </button>
2180
+ * <button (click)="trigger.closePopover()">Close via trigger</button>
2181
+ * <button (click)="trigger.closePopoverWithReason('external')">Close with reason</button>
2182
+ * ```
2183
+ *
2184
+ * ## Automatic Closing
2185
+ * The popover automatically closes on:
2186
+ * - ESC key press
2187
+ * - Click outside (backdrop) when `closeOnBackdropClick` is true
2188
+ * - Mouse leave after delay when `triggerEvent` is 'hover'
2189
+ * - Click on panel when `closeOnPanelClick` is true
1969
2190
  */
1970
2191
  declare class AcpPopover implements AcpPopoverPanel, OnInit, OnDestroy {
1971
2192
  private _changeDetectorRef;
@@ -2056,6 +2277,11 @@ declare class AcpPopover implements AcpPopoverPanel, OnInit, OnDestroy {
2056
2277
  set classList(classes: string);
2057
2278
  /** Event emitted when the popover is closed. */
2058
2279
  closed: EventEmitter<PopoverCloseReason>;
2280
+ /**
2281
+ * Programmatically closes the popover.
2282
+ * @param reason Optional reason for closing
2283
+ */
2284
+ close(reason?: PopoverCloseReason): void;
2059
2285
  /** @docs-private */
2060
2286
  templateRef: TemplateRef<any>;
2061
2287
  /**
@@ -2163,6 +2389,7 @@ declare const ACP_POPOVER_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
2163
2389
  * The trigger handles various events (click, hover) and manages the popover's lifecycle,
2164
2390
  * including opening, closing, positioning, and focus management.
2165
2391
  *
2392
+ * ## Basic Usage
2166
2393
  * @example
2167
2394
  * ```html
2168
2395
  * <acp-popover #popover="acpPopover">
@@ -2173,6 +2400,33 @@ declare const ACP_POPOVER_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
2173
2400
  * Show popover
2174
2401
  * </button>
2175
2402
  * ```
2403
+ *
2404
+ * ## Programmatic Control
2405
+ * @example
2406
+ * ```html
2407
+ * <acp-popover #popover="acpPopover">
2408
+ * <div>Popover content</div>
2409
+ * </acp-popover>
2410
+ *
2411
+ * <button [acpPopoverTriggerFor]="popover" #trigger="acpPopoverTrigger">
2412
+ * Toggle popover
2413
+ * </button>
2414
+ *
2415
+ * <!-- Programmatic control -->
2416
+ * <button (click)="trigger.openPopover()">Open</button>
2417
+ * <button (click)="trigger.closePopover()">Close</button>
2418
+ * <button (click)="trigger.closePopoverWithReason('manual')">Close with reason</button>
2419
+ * <button (click)="trigger.togglePopover()">Toggle</button>
2420
+ * ```
2421
+ *
2422
+ * ## Custom Target
2423
+ * @example
2424
+ * ```html
2425
+ * <div acpPopoverTarget #target="acpPopoverTarget">Target element</div>
2426
+ * <button [acpPopoverTriggerFor]="popover" [targetElement]="target">
2427
+ * Trigger (popover appears at target)
2428
+ * </button>
2429
+ * ```
2176
2430
  */
2177
2431
  declare class AcpPopoverTrigger implements AfterContentInit, OnDestroy {
2178
2432
  private _overlay;
@@ -2251,6 +2505,11 @@ declare class AcpPopoverTrigger implements AfterContentInit, OnDestroy {
2251
2505
  openPopover(): void;
2252
2506
  /** Closes the popover. */
2253
2507
  closePopover(): void;
2508
+ /**
2509
+ * Programmatically closes the popover with a specific reason.
2510
+ * @param reason The reason for closing
2511
+ */
2512
+ closePopoverWithReason(reason: PopoverCloseReason): void;
2254
2513
  /**
2255
2514
  * Focuses the popover trigger.
2256
2515
  * @param origin Source of the popover trigger's focus.
@@ -2314,6 +2573,45 @@ declare function throwAcpPopoverInvalidPositionStart(): void;
2314
2573
  */
2315
2574
  declare function throwAcpPopoverInvalidPositionEnd(): void;
2316
2575
 
2576
+ type ButtonType = 'confirm' | 'cancel' | 'deny';
2577
+ declare class AlertDialog implements OnInit, OnDestroy {
2578
+ inputField?: ElementRef<HTMLInputElement | HTMLTextAreaElement>;
2579
+ private container;
2580
+ private componentRef;
2581
+ inputValue: string;
2582
+ validationError: string | null;
2583
+ timerProgress: number;
2584
+ private timerInterval;
2585
+ sanitizedHtml: SafeHtml;
2586
+ sanitizedFooter: SafeHtml | null;
2587
+ dialogRef: MatDialogRef<any, any>;
2588
+ data: AlertDialogOptions;
2589
+ private sanitizer;
2590
+ private environmentInjector;
2591
+ constructor();
2592
+ ngOnDestroy(): void;
2593
+ private startTimer;
2594
+ private loadComponent;
2595
+ ngOnInit(): void;
2596
+ getIconName(): string;
2597
+ getButtonVariant(buttonType: ButtonType): ButtonVariant;
2598
+ getButtonIcon(buttonType: ButtonType): string;
2599
+ getButtonStyle(buttonType: ButtonType): MaterialButtonStyle;
2600
+ onConfirm(): Promise<void>;
2601
+ onCancel(): void;
2602
+ onDeny(): void;
2603
+ onInputEnter(): void;
2604
+ private closeWithResult;
2605
+ getConfirmColor(): any;
2606
+ getCancelColor(): any;
2607
+ getDenyColor(): any;
2608
+ getConfirmBackgroundColor(): string | undefined;
2609
+ getCancelBackgroundColor(): string | undefined;
2610
+ getDenyBackgroundColor(): string | undefined;
2611
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertDialog, never>;
2612
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertDialog, "acp-alert-dialog", never, {}, {}, never, never, true, never>;
2613
+ }
2614
+
2317
2615
  declare class ToUpperCase implements ControlValueAccessor {
2318
2616
  private el;
2319
2617
  private renderer;
@@ -2357,5 +2655,5 @@ declare class StatusDisplayPipe implements PipeTransform {
2357
2655
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<StatusDisplayPipe, "statusDisplay", true>;
2358
2656
  }
2359
2657
 
2360
- export { ACP_DRAWER_DATA, ACP_DRAWER_DEFAULT_OPTIONS, ACP_POPOVER_CONTENT, ACP_POPOVER_DEFAULT_OPTIONS, ACP_POPOVER_SCROLL_STRATEGY, AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG, AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG, AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG, AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG, AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG, AcpDrawer, AcpDrawerConfig, AcpDrawerContainer, AcpDrawerRef, AcpPopover, AcpPopoverContent, AcpPopoverTarget, AcpPopoverTrigger, AdvancedDialogService, AutocompleteWrapperService, Button, DATA_GRID_DEFAULT_OPTIONS, DataGrid, DateRangePicker, DialogWrapper, DynamicCard, DynamicSelect, GetTotalPipe, IconRegistryService, InputChip, KeyboardNavigationService, OverlayService, Pagination, ReusableAutocompleteComponent, Spinner, StatusDisplayPipe, SvgIcon, TabulatorTable, ThemeSwitcher, ThemeToggle, ToUpperCase, UserIcon, _AcpPopoverContentBase, createAutocompleteWrapperConfig, throwAcpPopoverInvalidPositionEnd, throwAcpPopoverInvalidPositionStart, throwAcpPopoverMissingError };
2361
- export type { AcpPopoverDefaultOptions, AcpPopoverPanel, AcpPopoverPosition, AcpPopoverPositionEnd, AcpPopoverPositionStart, AcpPopoverTriggerEvent, AutoFocusTarget, AutocompleteWrapperActions, AutocompleteWrapperConfig, AutocompleteWrapperEventHandler, AutocompleteWrapperEvents, AutocompleteWrapperFilters, AutocompleteWrapperItem, AutocompleteWrapperItemProperty, AutocompleteWrapperPaginationInfo, AutocompleteWrapperSearchField, AutocompleteWrapperSearchFunction, AutocompleteWrapperSearchMode, AutocompleteWrapperSearchResult, AutocompleteWrapperState, AutocompleteWrapperStockOption, DataGridButtonType, DataGridCellTemplate, DataGridColumn, DataGridColumnButton, DataGridColumnButtonBadge, DataGridColumnButtonPop, DataGridColumnButtonTooltip, DataGridColumnPinOption, DataGridColumnPinValue, DataGridColumnTag, DataGridColumnTagValue, DataGridColumnType, DataGridColumnTypeParameter, DataGridDefaultOptions, DataGridMenuItem, DataGridRowClassFormatter, DataGridRowSelectionFormatter, DataGridSortProp, DateRangePickerOptions, DateRangeValue, DialogSize, DialogWrapperConfig, DrawerPosition, FocusableElement, IconRegistryConfig, MatCustomDialogConfig, PopoverCloseReason, ReusableAutocompleteWrapperComponent, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };
2658
+ export { ACP_DRAWER_DATA, ACP_DRAWER_DEFAULT_OPTIONS, ACP_POPOVER_CONTENT, ACP_POPOVER_DEFAULT_OPTIONS, ACP_POPOVER_SCROLL_STRATEGY, AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG, AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG, AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG, AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG, AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG, AcpDrawer, AcpDrawerConfig, AcpDrawerContainer, AcpDrawerRef, AcpPopover, AcpPopoverContent, AcpPopoverTarget, AcpPopoverTrigger, AdvancedDialogService, AlertDialog, AlertDialogService, AutocompleteWrapperService, Button, DATA_GRID_DEFAULT_OPTIONS, DataGrid, DateRangePicker, DialogWrapper, DynamicCard, DynamicSelect, GetTotalPipe, IconRegistryService, InputChip, KeyboardNavigationService, OverlayService, Pagination, ReusableAutocompleteComponent, Spinner, StatusDisplayPipe, SvgIcon, TabulatorTable, ThemeSwitcher, ThemeToggle, ToUpperCase, UserIcon, _AcpPopoverContentBase, createAutocompleteWrapperConfig, throwAcpPopoverInvalidPositionEnd, throwAcpPopoverInvalidPositionStart, throwAcpPopoverMissingError };
2659
+ export type { AcpPopoverDefaultOptions, AcpPopoverPanel, AcpPopoverPosition, AcpPopoverPositionEnd, AcpPopoverPositionStart, AcpPopoverTriggerEvent, AlertDialogOptions, AlertDialogResult, AlertPosition, AlertType, AutoFocusTarget, AutocompleteWrapperActions, AutocompleteWrapperConfig, AutocompleteWrapperEventHandler, AutocompleteWrapperEvents, AutocompleteWrapperFilters, AutocompleteWrapperItem, AutocompleteWrapperItemProperty, AutocompleteWrapperPaginationInfo, AutocompleteWrapperSearchField, AutocompleteWrapperSearchFunction, AutocompleteWrapperSearchMode, AutocompleteWrapperSearchResult, AutocompleteWrapperState, AutocompleteWrapperStockOption, DataGridButtonType, DataGridCellTemplate, DataGridColumn, DataGridColumnButton, DataGridColumnButtonBadge, DataGridColumnButtonPop, DataGridColumnButtonTooltip, DataGridColumnPinOption, DataGridColumnPinValue, DataGridColumnTag, DataGridColumnTagValue, DataGridColumnType, DataGridColumnTypeParameter, DataGridDefaultOptions, DataGridMenuItem, DataGridRowClassFormatter, DataGridRowSelectionFormatter, DataGridSortProp, DateRangePickerOptions, DateRangeValue, DialogSize, DialogWrapperConfig, DrawerPosition, FocusableElement, IconRegistryConfig, MatCustomDialogConfig, PopoverCloseReason, ReusableAutocompleteWrapperComponent, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };