@lesterarte/sefin-ui 0.0.21 → 0.0.25

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": "@lesterarte/sefin-ui",
3
- "version": "0.0.21",
3
+ "version": "0.0.25",
4
4
  "description": "Sefin Design System - A comprehensive Angular UI library based on Atomic Design and design tokens",
5
5
  "keywords": [
6
6
  "angular",
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Injector, AfterViewInit, OnChanges, ElementRef, SimpleChanges, OnInit, OnDestroy, ChangeDetectorRef, NgZone } from '@angular/core';
2
+ import { EventEmitter, Injector, AfterViewInit, OnChanges, ElementRef, SimpleChanges, OnInit, OnDestroy, ChangeDetectorRef, NgZone, TemplateRef } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
4
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
5
5
 
@@ -640,6 +640,8 @@ declare class ButtonComponent {
640
640
  size: ButtonSize;
641
641
  /** Whether the button is disabled */
642
642
  disabled: boolean;
643
+ /** Whether the button should take full width of the container */
644
+ fullWidth: boolean;
643
645
  /** Button type. Options: 'button' | 'submit' | 'reset' */
644
646
  type: 'button' | 'submit' | 'reset';
645
647
  /** Additional CSS classes */
@@ -648,7 +650,7 @@ declare class ButtonComponent {
648
650
  onClick(event: MouseEvent): void;
649
651
  get buttonClasses(): string;
650
652
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
651
- static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "sefin-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
653
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "sefin-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "type": { "alias": "type"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
652
654
  }
653
655
 
654
656
  type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
@@ -948,10 +950,9 @@ declare class TypographyComponent {
948
950
  color: TypographyColor;
949
951
  lineHeight?: TypographyLineHeight;
950
952
  class: string;
951
- text?: string;
952
953
  get typographyClasses(): string;
953
954
  static ɵfac: i0.ɵɵFactoryDeclaration<TypographyComponent, never>;
954
- static ɵcmp: i0.ɵɵComponentDeclaration<TypographyComponent, "sefin-typography", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "color": { "alias": "color"; "required": false; }; "lineHeight": { "alias": "lineHeight"; "required": false; }; "class": { "alias": "class"; "required": false; }; "text": { "alias": "text"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*", "*", "*", "*"], true, never>;
955
+ static ɵcmp: i0.ɵɵComponentDeclaration<TypographyComponent, "sefin-typography", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "color": { "alias": "color"; "required": false; }; "lineHeight": { "alias": "lineHeight"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*", "*", "*", "*"], true, never>;
955
956
  }
956
957
 
957
958
  type DividerOrientation = 'horizontal' | 'vertical';
@@ -1311,6 +1312,20 @@ declare class RateComponent {
1311
1312
  static ɵcmp: i0.ɵɵComponentDeclaration<RateComponent, "sefin-rate", never, { "value": { "alias": "value"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "allowHalf": { "alias": "allowHalf"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showText": { "alias": "showText"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "hoverChange": "hoverChange"; }, never, never, true, never>;
1312
1313
  }
1313
1314
 
1315
+ type SpacerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl';
1316
+ type SpacerOrientation = 'vertical' | 'horizontal';
1317
+ declare class SpacerComponent {
1318
+ /** Size of the spacer. Options: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' */
1319
+ size: SpacerSize;
1320
+ /** Orientation of the spacer. Options: 'vertical' | 'horizontal' */
1321
+ orientation: SpacerOrientation;
1322
+ /** Additional CSS classes */
1323
+ class: string;
1324
+ get spacerClasses(): string;
1325
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpacerComponent, never>;
1326
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpacerComponent, "sefin-spacer", never, { "size": { "alias": "size"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, true, never>;
1327
+ }
1328
+
1314
1329
  declare class AccordionItemComponent {
1315
1330
  /** Title text for the accordion header */
1316
1331
  title: string;
@@ -1427,6 +1442,8 @@ declare class ButtonGroupComponent {
1427
1442
  groupVariant: ButtonGroupVariant;
1428
1443
  /** Whether the button group is disabled */
1429
1444
  disabled: boolean;
1445
+ /** Whether buttons should take full width of the container */
1446
+ fullWidth: boolean;
1430
1447
  /** Additional CSS classes */
1431
1448
  class: string;
1432
1449
  /** Event emitted when value changes (for segmented variant) */
@@ -1437,11 +1454,13 @@ declare class ButtonGroupComponent {
1437
1454
  buttonClick: EventEmitter<ButtonGroupOption>;
1438
1455
  get buttonGroupClasses(): string;
1439
1456
  isSelected(option: ButtonGroupOption): boolean;
1440
- onButtonClick(option: ButtonGroupOption): void;
1457
+ onButtonClick(option: ButtonGroupOption, event?: MouseEvent): void;
1458
+ handleButtonClick(option: ButtonGroupOption): (event: MouseEvent) => void;
1441
1459
  getButtonVariant(option: ButtonGroupOption): ButtonVariant;
1460
+ getButtonClasses(option: ButtonGroupOption): string;
1442
1461
  sanitizeHtml(html: string | undefined): SafeHtml | string;
1443
1462
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonGroupComponent, never>;
1444
- static ɵcmp: i0.ɵɵComponentDeclaration<ButtonGroupComponent, "sefin-button-group", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "selectedValues": { "alias": "selectedValues"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "groupVariant": { "alias": "groupVariant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "selectedValuesChange": "selectedValuesChange"; "buttonClick": "buttonClick"; }, never, never, true, never>;
1463
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonGroupComponent, "sefin-button-group", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "selectedValues": { "alias": "selectedValues"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "groupVariant": { "alias": "groupVariant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "selectedValuesChange": "selectedValuesChange"; "buttonClick": "buttonClick"; }, never, never, true, never>;
1445
1464
  }
1446
1465
 
1447
1466
  declare class CardComponent {
@@ -1545,6 +1564,98 @@ declare class DatepickerComponent implements OnInit, OnChanges, AfterViewInit, O
1545
1564
  static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerComponent, "sefin-datepicker", never, { "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "format": { "alias": "format"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; }, { "valueChange": "valueChange"; "dateSelected": "dateSelected"; }, never, never, true, never>;
1546
1565
  }
1547
1566
 
1567
+ type FormFieldVariant = 'outlined' | 'filled' | 'standard';
1568
+ type FormFieldSize = 'sm' | 'md' | 'lg';
1569
+ type FormFieldType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
1570
+ declare class FormFieldComponent implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy {
1571
+ private cdr;
1572
+ inputRef?: ElementRef<HTMLInputElement>;
1573
+ /** Label text for the field */
1574
+ label: string;
1575
+ /** FormField variant style. Options: 'outlined' | 'filled' | 'standard' */
1576
+ variant: FormFieldVariant;
1577
+ /** FormField size. Options: 'sm' | 'md' | 'lg' */
1578
+ size: FormFieldSize;
1579
+ /** Input type. Options: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' */
1580
+ type: FormFieldType;
1581
+ /** Placeholder text */
1582
+ placeholder: string;
1583
+ /** Helper text shown below the input */
1584
+ hint: string;
1585
+ /** Error message to display */
1586
+ errorMessage: string;
1587
+ /** Whether the field is required */
1588
+ required: boolean;
1589
+ /** Whether the field is disabled */
1590
+ disabled: boolean;
1591
+ /** Whether the field is readonly */
1592
+ readonly: boolean;
1593
+ /** Maximum length of the input */
1594
+ maxLength?: number;
1595
+ /** Minimum length of the input */
1596
+ minLength?: number;
1597
+ /** Pattern for validation (regex string) */
1598
+ pattern?: string;
1599
+ /** Leading icon name */
1600
+ leadingIcon?: string;
1601
+ /** Trailing icon name */
1602
+ trailingIcon?: string;
1603
+ /** Whether to show character counter */
1604
+ showCounter: boolean;
1605
+ /** Autocomplete attribute */
1606
+ autocomplete?: string;
1607
+ /** Input name attribute */
1608
+ name: string;
1609
+ /** Input id attribute */
1610
+ id: string;
1611
+ /** Additional CSS classes */
1612
+ class: string;
1613
+ /** Custom validation function */
1614
+ customValidator?: (value: string) => string | null;
1615
+ /** Event emitted when the value changes */
1616
+ valueChange: EventEmitter<string>;
1617
+ /** Event emitted when the input is focused */
1618
+ focused: EventEmitter<FocusEvent>;
1619
+ /** Event emitted when the input is blurred */
1620
+ blurred: EventEmitter<FocusEvent>;
1621
+ /** Event emitted when trailing icon is clicked */
1622
+ trailingIconClick: EventEmitter<MouseEvent>;
1623
+ value: string;
1624
+ isFocused: boolean;
1625
+ hasError: boolean;
1626
+ internalErrorMessage: string;
1627
+ internalId: string;
1628
+ private onChange;
1629
+ private onTouched;
1630
+ private destroy$;
1631
+ private control?;
1632
+ constructor(cdr: ChangeDetectorRef);
1633
+ ngOnInit(): void;
1634
+ ngAfterViewInit(): void;
1635
+ ngOnDestroy(): void;
1636
+ private generateIdIfNeeded;
1637
+ get fieldId(): string;
1638
+ get labelId(): string;
1639
+ get inputId(): string;
1640
+ get hintId(): string;
1641
+ onInput(event: Event): void;
1642
+ onFocus(event: FocusEvent): void;
1643
+ onBlur(event: FocusEvent): void;
1644
+ onTrailingIconClick(event: MouseEvent): void;
1645
+ private validateField;
1646
+ get displayError(): boolean;
1647
+ get displayErrorMessage(): string;
1648
+ get characterCount(): number;
1649
+ get formFieldClasses(): string;
1650
+ writeValue(value: string | null | undefined): void;
1651
+ registerOnChange(fn: (value: string) => void): void;
1652
+ registerOnTouched(fn: () => void): void;
1653
+ setDisabledState(isDisabled: boolean): void;
1654
+ validate(control: AbstractControl): ValidationErrors | null;
1655
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
1656
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "sefin-form-field", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; }; "showCounter": { "alias": "showCounter"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "class": { "alias": "class"; "required": false; }; "customValidator": { "alias": "customValidator"; "required": false; }; }, { "valueChange": "valueChange"; "focused": "focused"; "blurred": "blurred"; "trailingIconClick": "trailingIconClick"; }, never, never, true, never>;
1657
+ }
1658
+
1548
1659
  type PaginationSize = 'sm' | 'md' | 'lg';
1549
1660
  type PaginationVariant = 'default' | 'compact';
1550
1661
  declare class PaginationComponent {
@@ -1682,7 +1793,256 @@ declare class TextareaComponent implements ControlValueAccessor, Validator, OnIn
1682
1793
  static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "sefin-textarea", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "autoResize": { "alias": "autoResize"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "showCounter": { "alias": "showCounter"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "class": { "alias": "class"; "required": false; }; "customValidator": { "alias": "customValidator"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
1683
1794
  }
1684
1795
 
1796
+ /**
1797
+ * Column type for table cells
1798
+ */
1799
+ type TableColumnType = 'text' | 'number' | 'date' | 'badge' | 'actions';
1800
+ /**
1801
+ * Text alignment options
1802
+ */
1803
+ type TableColumnAlign = 'left' | 'center' | 'right';
1804
+ /**
1805
+ * Sort direction
1806
+ */
1807
+ type SortDirection = 'asc' | 'desc' | '';
1808
+ /**
1809
+ * Table column definition
1810
+ */
1811
+ interface TableColumn {
1812
+ /** Unique key for the column (should match a property in data objects) */
1813
+ key: string;
1814
+ /** Column header label */
1815
+ header: string;
1816
+ /** Column type for formatting/rendering */
1817
+ type?: TableColumnType;
1818
+ /** Text alignment */
1819
+ align?: TableColumnAlign;
1820
+ /** Column width (CSS value, e.g., '100px', '20%') */
1821
+ width?: string;
1822
+ /** Whether column is sortable */
1823
+ sortable?: boolean;
1824
+ /** Whether column is sticky (e.g., first/last column) */
1825
+ sticky?: boolean;
1826
+ /** Whether column sticks to left or right when sticky */
1827
+ stickyEnd?: boolean;
1828
+ /** Custom cell template */
1829
+ cellTemplate?: TemplateRef<any>;
1830
+ }
1831
+ /**
1832
+ * Table density mode
1833
+ */
1834
+ type TableDensity = 'compact' | 'comfortable';
1835
+ /**
1836
+ * Selection mode
1837
+ */
1838
+ type SelectionMode = 'single' | 'multiple';
1839
+ /**
1840
+ * Page change event payload
1841
+ */
1842
+ interface PageChangeEvent {
1843
+ pageIndex: number;
1844
+ pageSize: number;
1845
+ }
1846
+ /**
1847
+ * Sort change event payload
1848
+ */
1849
+ interface SortChangeEvent {
1850
+ active: string;
1851
+ direction: SortDirection;
1852
+ }
1853
+
1854
+ /**
1855
+ * Helper function to build displayed columns array including selection and actions
1856
+ */
1857
+ declare function buildDisplayedColumns(columns: TableColumn[], selectable: boolean, hasActions: boolean): string[];
1858
+ declare class TableComponent implements OnInit, OnChanges {
1859
+ private cdr;
1860
+ /** Column definitions */
1861
+ columns: TableColumn[];
1862
+ /** Table data */
1863
+ data: any[];
1864
+ /** Property key used for tracking rows (default: 'id') */
1865
+ trackByKey: string;
1866
+ /** Loading state */
1867
+ loading: boolean;
1868
+ /** Empty state message */
1869
+ emptyText: string;
1870
+ /** Table density */
1871
+ density: TableDensity;
1872
+ /** Striped rows */
1873
+ striped: boolean;
1874
+ /** Row hover effect */
1875
+ hover: boolean;
1876
+ /** Enable row selection */
1877
+ selectable: boolean;
1878
+ /** Selection mode: 'single' or 'multiple' */
1879
+ selectionMode: SelectionMode;
1880
+ /** Enable pagination */
1881
+ pagination: boolean;
1882
+ /** Page size options */
1883
+ pageSizeOptions: number[];
1884
+ /** Current page size */
1885
+ pageSize: number;
1886
+ /** Total items (for server-side mode) */
1887
+ total: number | undefined;
1888
+ /** Enable sorting */
1889
+ sort: boolean;
1890
+ /** Server-side mode (don't slice data locally) */
1891
+ serverSide: boolean;
1892
+ /** Sticky header */
1893
+ stickyHeader: boolean;
1894
+ /** Header actions template slot */
1895
+ headerActionsTemplate?: TemplateRef<any>;
1896
+ /** Empty state icon template slot */
1897
+ emptyIconTemplate?: TemplateRef<any>;
1898
+ /** Row clicked event */
1899
+ rowClicked: EventEmitter<any>;
1900
+ /** Selection changed event */
1901
+ selectionChanged: EventEmitter<any[]>;
1902
+ /** Page changed event */
1903
+ pageChanged: EventEmitter<PageChangeEvent>;
1904
+ /** Sort changed event */
1905
+ sortChanged: EventEmitter<SortChangeEvent>;
1906
+ readonly selectedItems: i0.WritableSignal<any[]>;
1907
+ readonly currentSortColumn: i0.WritableSignal<string>;
1908
+ readonly currentSortDirection: i0.WritableSignal<SortDirection>;
1909
+ readonly currentPage: i0.WritableSignal<number>;
1910
+ readonly currentPageSize: i0.WritableSignal<number>;
1911
+ readonly sortedData: i0.Signal<any[]>;
1912
+ readonly paginatedData: i0.Signal<any[]>;
1913
+ readonly displayedData: i0.Signal<any[]>;
1914
+ readonly totalPages: i0.Signal<number>;
1915
+ readonly isEmpty: i0.Signal<boolean>;
1916
+ readonly hasActionsColumn: i0.Signal<boolean>;
1917
+ readonly totalColspan: i0.Signal<number>;
1918
+ readonly isAllSelected: i0.Signal<boolean>;
1919
+ readonly isIndeterminate: i0.Signal<boolean>;
1920
+ readonly sortIcons: {
1921
+ readonly unsorted: "M3 4.5L6 1.5L9 4.5M3 7.5L6 10.5L9 7.5";
1922
+ readonly ascending: "M3 7.5L6 4.5L9 7.5";
1923
+ readonly descending: "M3 4.5L6 7.5L9 4.5";
1924
+ };
1925
+ constructor(cdr: ChangeDetectorRef);
1926
+ ngOnInit(): void;
1927
+ ngOnChanges(changes: SimpleChanges): void;
1928
+ /**
1929
+ * Validates component inputs and logs warnings for invalid configurations
1930
+ * @private
1931
+ */
1932
+ private validateInputs;
1933
+ trackByFn(index: number, item: any): any;
1934
+ /**
1935
+ * Gets the cell value from a row, supporting nested property paths (e.g., 'user.name')
1936
+ * @param row - The row data object
1937
+ * @param column - The column definition
1938
+ * @returns The cell value or undefined if not found
1939
+ */
1940
+ getCellValue(row: any, column: TableColumn): any;
1941
+ /**
1942
+ * Formats a cell value based on its type
1943
+ * @param value - The value to format
1944
+ * @param type - The column type
1945
+ * @param column - Optional column definition for additional formatting options
1946
+ * @returns Formatted string representation
1947
+ */
1948
+ formatCellValue(value: any, type?: TableColumnType, column?: TableColumn): string;
1949
+ /**
1950
+ * Parses a value into a Date object
1951
+ * @param value - The value to parse (Date, string, or number timestamp)
1952
+ * @returns A Date object
1953
+ */
1954
+ private parseDate;
1955
+ onRowClick(row: any): void;
1956
+ /**
1957
+ * Handles column sorting when header is clicked
1958
+ * @param column - The column to sort by
1959
+ * @param event - Optional keyboard event for accessibility
1960
+ */
1961
+ onSort(column: TableColumn, event?: KeyboardEvent): void;
1962
+ onPageChange(page: number): void;
1963
+ isSelected(row: any): boolean;
1964
+ /**
1965
+ * Toggles the selection state of a row
1966
+ * @param checked - Whether the row should be selected
1967
+ * @param row - The row to toggle selection for
1968
+ */
1969
+ toggleRowSelection(checked: boolean, row?: any): void;
1970
+ /**
1971
+ * Toggles selection for all rows on the current page
1972
+ * @param checked - Whether all rows should be selected
1973
+ */
1974
+ toggleSelectAll(checked: boolean): void;
1975
+ /**
1976
+ * Gets the unique identifier for an item using the trackByKey
1977
+ * @param item - The item to get the ID for
1978
+ * @returns The item's ID or the item itself if no ID property exists
1979
+ * @private
1980
+ */
1981
+ private getItemId;
1982
+ /**
1983
+ * Gets CSS classes for a column cell
1984
+ * @param column - The column definition
1985
+ * @returns Space-separated string of CSS classes
1986
+ */
1987
+ getColumnClass(column: TableColumn): string;
1988
+ /**
1989
+ * Gets CSS classes for the table element
1990
+ * @returns Space-separated string of CSS classes
1991
+ */
1992
+ getTableClasses(): string;
1993
+ /**
1994
+ * Gets the width CSS value for a column
1995
+ * @param column - The column definition
1996
+ * @returns The width value or undefined
1997
+ */
1998
+ getColumnWidth(column: TableColumn): string | undefined;
1999
+ /**
2000
+ * Gets the appropriate sort icon path for a column
2001
+ * @param column - The column to get the icon for
2002
+ * @returns The SVG path string for the sort icon
2003
+ */
2004
+ getSortIconPath(column: TableColumn): string;
2005
+ /**
2006
+ * Determines if a column should show the unsorted icon
2007
+ * @param column - The column to check
2008
+ * @returns True if unsorted icon should be shown
2009
+ */
2010
+ showUnsortedIcon(column: TableColumn): boolean;
2011
+ /**
2012
+ * Determines if a column should show the ascending icon
2013
+ * @param column - The column to check
2014
+ * @returns True if ascending icon should be shown
2015
+ */
2016
+ showAscendingIcon(column: TableColumn): boolean;
2017
+ /**
2018
+ * Determines if a column should show the descending icon
2019
+ * @param column - The column to check
2020
+ * @returns True if descending icon should be shown
2021
+ */
2022
+ showDescendingIcon(column: TableColumn): boolean;
2023
+ /**
2024
+ * Gets the ARIA sort state for a column
2025
+ * @param column - The column to get the sort state for
2026
+ * @returns The ARIA sort value ('ascending', 'descending', or 'none')
2027
+ */
2028
+ getAriaSort(column: TableColumn): string;
2029
+ /**
2030
+ * Gets the ARIA label for a sortable column header
2031
+ * @param column - The column to get the label for
2032
+ * @returns The ARIA label string or null if not sortable
2033
+ */
2034
+ getSortAriaLabel(column: TableColumn): string | null;
2035
+ /**
2036
+ * Generates page numbers array for pagination display
2037
+ * This method is currently not used in the template but kept for potential future use
2038
+ * @returns Array of page numbers and ellipsis strings
2039
+ */
2040
+ getPageNumbers(): (number | string)[];
2041
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
2042
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "sefin-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "trackByKey": { "alias": "trackByKey"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "density": { "alias": "density"; "required": false; }; "striped": { "alias": "striped"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "total": { "alias": "total"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "serverSide": { "alias": "serverSide"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "headerActionsTemplate": { "alias": "headerActionsTemplate"; "required": false; }; "emptyIconTemplate": { "alias": "emptyIconTemplate"; "required": false; }; }, { "rowClicked": "rowClicked"; "selectionChanged": "selectionChanged"; "pageChanged": "pageChanged"; "sortChanged": "sortChanged"; }, never, ["[actions]", "[actions]"], true, never>;
2043
+ }
2044
+
1685
2045
  declare const STYLES_PATH = "./styles/index.scss";
1686
2046
 
1687
- export { AccordionItemComponent, AlertComponent, AutocompleteComponent, AvatarComponent, BORDER_RADIUS_TOKENS, BRAND_THEME, BadgeComponent, BreadcrumbsComponent, ButtonComponent, ButtonGroupComponent, COLOR_TOKENS, CardComponent, CheckboxComponent, ChipComponent, ContainerComponent, DARK_THEME, DESIGN_TOKENS, DatepickerComponent, DividerComponent, FabButtonComponent, IconButtonComponent, IconComponent, ImageComponent, LIGHT_THEME, LinkComponent, PaginationComponent, ProgressBarComponent, RadioComponent, RateComponent, SHADOW_TOKENS, SPACING_TOKENS, STYLES_PATH, SelectComponent, SpinnerComponent, StackComponent, SwitchComponent, TYPOGRAPHY_TOKENS, TabComponent, TagComponent, TextFieldComponent, TextareaComponent, ThemeLoader, ToastComponent, TooltipComponent, TypographyComponent };
1688
- export type { AlertSize, AlertVariant, AutocompleteOption, AvatarSize, BadgeSize, BadgeVariant, BaseComponent, BorderRadiusToken, BreadcrumbItem, BreadcrumbSeparator, BreadcrumbSize, ButtonGroupOption, ButtonGroupSize, ButtonGroupVariant, ButtonSize, ButtonVariant, CardVariant, ChipSize, ChipVariant, ColorShade, ColorTokenName, ContainerSize, ContainerVariant, CustomTheme, DateFormat, DatePickerMode, DateRange, DividerOrientation, DividerVariant, FabSize, IconSize, ImageFit, ImageLoading, ImageRounded, InputSize, LinkSize, LinkVariant, PaginationSize, PaginationVariant, ProgressBarSize, ProgressBarVariant, RateIcon, RateSize, SelectOption, ShadowToken, SpacingToken, SpinnerSize, SpinnerVariant, TabSize, TabVariant, TagSize, TagVariant, TextFieldSize, TextFieldType, TextFieldVariant, TextareaSize, TextareaVariant, Theme, ThemeColors, ToastPosition, ToastVariant, TooltipPosition, TooltipTrigger, TypographyColor, TypographyLineHeight, TypographySize, TypographyToken, TypographyVariant, TypographyWeight };
2047
+ export { AccordionItemComponent, AlertComponent, AutocompleteComponent, AvatarComponent, BORDER_RADIUS_TOKENS, BRAND_THEME, BadgeComponent, BreadcrumbsComponent, ButtonComponent, ButtonGroupComponent, COLOR_TOKENS, CardComponent, CheckboxComponent, ChipComponent, ContainerComponent, DARK_THEME, DESIGN_TOKENS, DatepickerComponent, DividerComponent, FabButtonComponent, FormFieldComponent, IconButtonComponent, IconComponent, ImageComponent, LIGHT_THEME, LinkComponent, PaginationComponent, ProgressBarComponent, RadioComponent, RateComponent, SHADOW_TOKENS, SPACING_TOKENS, STYLES_PATH, SelectComponent, SpacerComponent, SpinnerComponent, StackComponent, SwitchComponent, TYPOGRAPHY_TOKENS, TabComponent, TableComponent, TagComponent, TextFieldComponent, TextareaComponent, ThemeLoader, ToastComponent, TooltipComponent, TypographyComponent, buildDisplayedColumns };
2048
+ export type { AlertSize, AlertVariant, AutocompleteOption, AvatarSize, BadgeSize, BadgeVariant, BaseComponent, BorderRadiusToken, BreadcrumbItem, BreadcrumbSeparator, BreadcrumbSize, ButtonGroupOption, ButtonGroupSize, ButtonGroupVariant, ButtonSize, ButtonVariant, CardVariant, ChipSize, ChipVariant, ColorShade, ColorTokenName, ContainerSize, ContainerVariant, CustomTheme, DateFormat, DatePickerMode, DateRange, DividerOrientation, DividerVariant, FabSize, FormFieldSize, FormFieldType, FormFieldVariant, IconSize, ImageFit, ImageLoading, ImageRounded, InputSize, LinkSize, LinkVariant, PageChangeEvent, PaginationSize, PaginationVariant, ProgressBarSize, ProgressBarVariant, RateIcon, RateSize, SelectOption, SelectionMode, ShadowToken, SortChangeEvent, SortDirection, SpacerOrientation, SpacerSize, SpacingToken, SpinnerSize, SpinnerVariant, TabSize, TabVariant, TableColumn, TableColumnAlign, TableColumnType, TableDensity, TagSize, TagVariant, TextFieldSize, TextFieldType, TextFieldVariant, TextareaSize, TextareaVariant, Theme, ThemeColors, ToastPosition, ToastVariant, TooltipPosition, TooltipTrigger, TypographyColor, TypographyLineHeight, TypographySize, TypographyToken, TypographyVariant, TypographyWeight };