ngx-lite-form 1.2.3 → 1.3.1

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/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { FormControl, AbstractControl } from '@angular/forms';
2
2
  import * as _angular_core from '@angular/core';
3
- import { ElementRef, AfterViewInit } from '@angular/core';
3
+ import { ElementRef, AfterViewInit, TemplateRef } from '@angular/core';
4
4
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
5
5
 
6
6
  declare class FieldDto {
@@ -52,6 +52,12 @@ interface TableColumn {
52
52
  flex?: string;
53
53
  sortable?: boolean;
54
54
  cellTemplate?: (value: any, row: any) => string;
55
+ type?: 'text' | 'menu';
56
+ menuItems?: Array<{
57
+ label: string;
58
+ value: string;
59
+ variant?: 'danger' | 'default';
60
+ }>;
55
61
  }
56
62
  declare class TableFieldDto<T = any> {
57
63
  columns: TableColumn[];
@@ -445,14 +451,60 @@ declare class LiteTable<T = any> {
445
451
  table: _angular_core.InputSignal<TableFieldDto<T>>;
446
452
  pageChange: _angular_core.OutputEmitterRef<number>;
447
453
  itemsPerPageChange: _angular_core.OutputEmitterRef<number>;
454
+ menuAction: _angular_core.OutputEmitterRef<{
455
+ action: string;
456
+ row: T;
457
+ }>;
458
+ openMenuIndex: number | null;
448
459
  paginatedData: _angular_core.Signal<T[]>;
449
460
  getCellValue(row: any, column: TableColumn): string;
450
461
  private getValue;
451
462
  onPageChange(page: number): void;
452
463
  onItemsPerPageChange(itemsPerPage: number): void;
464
+ toggleMenu(rowIndex: number, event?: MouseEvent): void;
465
+ onMenuItemClick(action: string, row: T, event?: MouseEvent): void;
466
+ onDocumentClick(): void;
453
467
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LiteTable<any>, never>;
454
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LiteTable<any>, "lite-table", never, { "table": { "alias": "table"; "required": true; "isSignal": true; }; }, { "pageChange": "pageChange"; "itemsPerPageChange": "itemsPerPageChange"; }, never, never, true, never>;
468
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LiteTable<any>, "lite-table", never, { "table": { "alias": "table"; "required": true; "isSignal": true; }; }, { "pageChange": "pageChange"; "itemsPerPageChange": "itemsPerPageChange"; "menuAction": "menuAction"; }, never, never, true, never>;
469
+ }
470
+
471
+ interface LitePanelAction {
472
+ label: string;
473
+ value?: unknown;
474
+ /**
475
+ * Adds a CSS modifier class `lite-panel__action--${variant}` to let consumers style the action button.
476
+ */
477
+ variant?: 'primary' | 'secondary' | 'danger';
478
+ }
479
+ declare class LitePanel {
480
+ title: _angular_core.InputSignal<string | null>;
481
+ content: _angular_core.InputSignal<string | TemplateRef<unknown> | null>;
482
+ actions: _angular_core.InputSignal<LitePanelAction[] | null>;
483
+ closeOnOverlayClick: _angular_core.InputSignal<boolean>;
484
+ width: _angular_core.InputSignal<string | number | null>;
485
+ height: _angular_core.InputSignal<string | number | null>;
486
+ maxWidth: _angular_core.InputSignal<string | number | null>;
487
+ maxHeight: _angular_core.InputSignal<string | number | null>;
488
+ closed: _angular_core.OutputEmitterRef<unknown>;
489
+ readonly panelTitleId: string;
490
+ private readonly defaultActions;
491
+ readonly resolvedActions: _angular_core.Signal<LitePanelAction[]>;
492
+ readonly contentTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
493
+ readonly contentText: _angular_core.Signal<string | null>;
494
+ readonly templateContext: {
495
+ panel: LitePanel;
496
+ close: (value?: unknown) => void;
497
+ };
498
+ readonly panelStyles: _angular_core.Signal<Record<string, string>>;
499
+ close(value?: unknown | null): void;
500
+ onBackdropClick(): void;
501
+ onAction(action: LitePanelAction): void;
502
+ getActionClasses(action: LitePanelAction): Record<string, boolean>;
503
+ private toCssLength;
504
+ private isNilOrEmpty;
505
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LitePanel, never>;
506
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LitePanel, "lite-panel", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "closeOnOverlayClick": { "alias": "closeOnOverlayClick"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
455
507
  }
456
508
 
457
- export { BaseSelectFieldDto, FieldDto, FileFieldDto, FormUtils, LiteCheckbox, LiteDate, LiteDateTime, LiteFile, LiteInput, LiteMultiSelect, LitePaginator, LitePassword, LiteRadio, LiteSelect, LiteSnackbarService, LiteTable, LiteTextarea, MultiSelectFieldDto, PaginatorFieldDto, RadioFieldDto, SelectFieldDto, TableFieldDto };
458
- export type { DateRangeFieldDto, FileItem, SnackbarType, TableColumn };
509
+ export { BaseSelectFieldDto, FieldDto, FileFieldDto, FormUtils, LiteCheckbox, LiteDate, LiteDateTime, LiteFile, LiteInput, LiteMultiSelect, LitePaginator, LitePanel, LitePassword, LiteRadio, LiteSelect, LiteSnackbarService, LiteTable, LiteTextarea, MultiSelectFieldDto, PaginatorFieldDto, RadioFieldDto, SelectFieldDto, TableFieldDto };
510
+ export type { DateRangeFieldDto, FileItem, LitePanelAction, SnackbarType, TableColumn };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-lite-form",
3
- "version": "1.2.3",
3
+ "version": "1.3.1",
4
4
  "description": "A lightweight Angular form library with reusable input, textarea, select, multi-select, radio, checkbox, date picker and password components",
5
5
  "keywords": [
6
6
  "angular",