chrv-components 1.11.98 → 1.12.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
@@ -8,6 +8,7 @@ import { AbstractControl, ValidationErrors, ValidatorFn, AsyncValidatorFn, FormC
8
8
  import { MatAutocomplete } from '@angular/material/autocomplete';
9
9
  import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
10
10
  import { HttpClient, HttpInterceptorFn, HttpEvent, HttpFeature } from '@angular/common/http';
11
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
11
12
  export * from 'ngx-pagination';
12
13
  export * from 'chrv-pipes';
13
14
 
@@ -914,7 +915,6 @@ declare class ChrSearchSelectComponent extends ChrBaseInputComponent implements
914
915
  filteredModelOptions?: Observable<any>;
915
916
  readonly _inputText: _angular_core.WritableSignal<string | null>;
916
917
  readonly values: BehaviorSubject<string>;
917
- readonly autocomplete: _angular_core.Signal<MatAutocomplete>;
918
918
  readonly placeholder: _angular_core.InputSignal<string | undefined>;
919
919
  readonly data: _angular_core.InputSignal<any[] | null>;
920
920
  readonly data$: BehaviorSubject<any[]>;
@@ -952,23 +952,14 @@ declare class ChrSearchSelectComponent extends ChrBaseInputComponent implements
952
952
  * @param model the data's entry for which we want the textual value
953
953
  * */
954
954
  protected getModelDisplay: (model: any) => any;
955
- /**
956
- * Start filtering the autocomplete's list based on the input's textual value
957
- */
958
- protected registerFilters: () => void;
959
955
  /**
960
956
  * Increments the filter and focus the filtered input. It also sets the value to null as to force the user to choose a filtered value.
961
957
  * @param input the input in which the user should type
962
958
  */
963
959
  protected increment: (input: any) => void;
964
- protected voidd: () => void;
965
960
  protected enableShowPanel: (input: any) => void;
966
961
  protected disableShowPanel: () => void;
967
962
  protected addFromText: (event: any) => void;
968
- private _filterModel;
969
- private _doFilterModelInt;
970
- private _doFilterModelString;
971
- private _filterValues;
972
963
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChrSearchSelectComponent, never>;
973
964
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChrSearchSelectComponent, "app-chr-search-select, [app-chr-search-select], chr-search-select, [chr-search-select]", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "addCallback": { "alias": "addCallback"; "required": false; "isSignal": true; }; "acceptText": { "alias": "acceptText"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
974
965
  }
@@ -1020,17 +1011,12 @@ declare class ChrTagSelectComponent extends ChrBaseInputComponent implements Con
1020
1011
  protected add: (event: any) => void;
1021
1012
  protected edit: (entry: any) => void;
1022
1013
  protected remove(value: any): void;
1023
- protected registerFilters: () => void;
1024
1014
  protected increment: (input: any) => void;
1025
1015
  protected void: () => void;
1026
1016
  protected enableShowPanel: (input: any) => void;
1027
1017
  protected disableShowPanel: () => void;
1028
1018
  protected getTooltip: () => "" | "Appuyez sur 'Enter' pour ajouter la valeur du champs à la liste" | "Entrez un espace pour voir les choix disponibles";
1029
1019
  protected contextMenuItems: (entry: any) => IContextMenuItem[];
1030
- private _filterModel;
1031
- private _doFilterModelInt;
1032
- private _doFilterModelString;
1033
- private _filterValues;
1034
1020
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChrTagSelectComponent, never>;
1035
1021
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChrTagSelectComponent, "app-chr-tag-select, [app-chr-tag-select], chr-tag-select, [chr-tag-select]", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "editCallback": { "alias": "editCallback"; "required": false; "isSignal": true; }; "addCallback": { "alias": "addCallback"; "required": false; "isSignal": true; }; "removeCallback": { "alias": "removeCallback"; "required": false; "isSignal": true; }; "acceptText": { "alias": "acceptText"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1036
1022
  }
@@ -1531,7 +1517,7 @@ interface IMinimumColumnMetadata {
1531
1517
  columnName: string;
1532
1518
  columnDefault?: string | null;
1533
1519
  ordinalPosition: number;
1534
- dataType: string;
1520
+ dataType: string | null;
1535
1521
  length: number;
1536
1522
  scale?: number | null;
1537
1523
  isNullable: boolean;
@@ -1572,7 +1558,7 @@ declare class ColumnMetadata implements IDB2ColumnMetadata {
1572
1558
  ordinalPosition: number;
1573
1559
  columnDefault?: string | null;
1574
1560
  isNullable: boolean;
1575
- dataType: string;
1561
+ dataType: string | null;
1576
1562
  maxLength?: number | null;
1577
1563
  minLength?: number | null;
1578
1564
  length: number;
@@ -1598,7 +1584,7 @@ declare class ColumnMetadata implements IDB2ColumnMetadata {
1598
1584
  get tooltip(): string;
1599
1585
  }
1600
1586
 
1601
- interface ITableConstraintReference {
1587
+ interface ITableConstraintReference extends IMinimumTableConstraintReference {
1602
1588
  constraintSchema: string;
1603
1589
  systemConstraintSchema: string;
1604
1590
  constraintName: string;
@@ -1625,7 +1611,16 @@ declare class TableConstraintReference implements ITableConstraintReference {
1625
1611
  interface IMinimumTableConstraintColumn {
1626
1612
  constraintName: string;
1627
1613
  tableName: string;
1614
+ tableSchema?: string;
1628
1615
  columnName: string;
1616
+ reference?: IMinimumTableConstraintReference | null;
1617
+ }
1618
+ interface IMinimumTableConstraintReference {
1619
+ constraintSchema: string;
1620
+ constraintName: string;
1621
+ columnCount: number;
1622
+ thisKey: IMinimumTableConstraintColumn;
1623
+ otherKey: IMinimumTableConstraintColumn;
1629
1624
  }
1630
1625
  interface ITableConstraintColumn extends IMinimumTableConstraintColumn {
1631
1626
  systemConstraintSchema: string;
@@ -1685,6 +1680,9 @@ interface IAnonymousTable {
1685
1680
  catalog: string;
1686
1681
  schema: string;
1687
1682
  name: string;
1683
+ description?: string;
1684
+ isReadOnly?: boolean;
1685
+ rowNumberIdentity: string;
1688
1686
  columnMetadatas: ColumnMetadata[];
1689
1687
  tableConstraints: TableConstraint[];
1690
1688
  hasPrimaryKey: boolean;
@@ -1695,12 +1693,15 @@ interface IAnonymousTable {
1695
1693
  interface IDataTable {
1696
1694
  name: string;
1697
1695
  schema: string;
1696
+ description?: string;
1697
+ rowNumberIdentity: string;
1698
1698
  rows: any[];
1699
1699
  count: number;
1700
1700
  addRow(row: any): any;
1701
1701
  updateRow(row: any): boolean;
1702
1702
  removeRow(row: any): boolean;
1703
1703
  getRowIdentifier(row: any): string;
1704
+ getRowNumber(row: any): number;
1704
1705
  compareRows(row1: any, row2: any): boolean;
1705
1706
  primaryKeyColumns(): IMinimumColumnMetadata[];
1706
1707
  getColumnByName(columnName: string): IMinimumColumnMetadata | undefined;
@@ -1709,12 +1710,16 @@ interface IDataTable {
1709
1710
  declare abstract class BaseTable implements IDataTable {
1710
1711
  abstract name: string;
1711
1712
  abstract schema: string;
1713
+ abstract description?: string;
1712
1714
  abstract columnMetadatas: IMinimumColumnMetadata[];
1713
1715
  abstract tableConstraints: IMinimumTableConstraint[];
1716
+ abstract isReadOnly?: boolean;
1714
1717
  abstract hasPrimaryKey: boolean;
1715
1718
  abstract rows: any[];
1716
1719
  abstract count: number;
1720
+ abstract rowNumberIdentity: string;
1717
1721
  abstract getRowIdentifier(row: any): string;
1722
+ abstract getRowNumber(row: any): number;
1718
1723
  abstract primaryKeyColumns(): IMinimumColumnMetadata[];
1719
1724
  addRow(row: any): any;
1720
1725
  updateRow(row: any): boolean;
@@ -1727,6 +1732,9 @@ declare class AnonymousTable extends BaseTable implements IAnonymousTable, IData
1727
1732
  catalog: string;
1728
1733
  schema: string;
1729
1734
  name: string;
1735
+ description?: string;
1736
+ isReadOnly?: boolean;
1737
+ rowNumberIdentity: string;
1730
1738
  columnMetadatas: ColumnMetadata[];
1731
1739
  tableConstraints: TableConstraint[];
1732
1740
  hasPrimaryKey: boolean;
@@ -1737,13 +1745,32 @@ declare class AnonymousTable extends BaseTable implements IAnonymousTable, IData
1737
1745
  fullName(): string;
1738
1746
  primaryKeyColumns(): ColumnMetadata[];
1739
1747
  getRowIdentifier(row: any): string;
1748
+ getRowNumber(row: any): any;
1740
1749
  compareRows(row1: any, row2: any): boolean;
1741
1750
  addRow(row: any): any;
1742
1751
  generateTempRowIdentifier(): any;
1743
1752
  }
1744
1753
 
1754
+ declare enum DGFilterMode {
1755
+ EQUALS = 0,
1756
+ NOT_EQUALS = 1,
1757
+ CONTAINS = 2,
1758
+ LOWER_OR_EQUAL = 3,
1759
+ GREATER_OR_EQUAL = 4,
1760
+ STARTS_WITH = 5,
1761
+ ENDS_WITH = 6
1762
+ }
1763
+
1764
+ declare enum DGGroupAggregationEnum {
1765
+ COUNT = 0,
1766
+ SUM = 1,
1767
+ AVERAGE = 2,
1768
+ MIN = 3,
1769
+ MAX = 4
1770
+ }
1771
+
1745
1772
  interface IFormatter {
1746
- canFormat(value: any, dataType?: string): boolean;
1773
+ canFormat(value: any, metadata?: IMinimumColumnMetadata | null): boolean;
1747
1774
  format(value: any, metadatas?: IMinimumColumnMetadata, ...args: any[]): string | null;
1748
1775
  canEdit?(value: any, columnMetadata: IMinimumColumnMetadata): boolean;
1749
1776
  getEditInputType?(metadata: IMinimumColumnMetadata): string;
@@ -1766,15 +1793,6 @@ declare class DataFormatterService {
1766
1793
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DataFormatterService>;
1767
1794
  }
1768
1795
 
1769
- declare enum DGFilterMode {
1770
- EQUALS = 0,
1771
- CONTAINS = 1,
1772
- LOWER_OR_EQUAL = 2,
1773
- GREATER_OR_EQUAL = 3,
1774
- STARTS_WITH = 4,
1775
- ENDS_WITH = 5
1776
- }
1777
-
1778
1796
  interface IDGAddedEntry {
1779
1797
  index: number;
1780
1798
  row: any;
@@ -1797,11 +1815,25 @@ interface IDGFilter {
1797
1815
  mode: DGFilterMode;
1798
1816
  value: string;
1799
1817
  }
1818
+ interface IDGGroup {
1819
+ column: string;
1820
+ included: string[];
1821
+ mode: DGGroupAggregationEnum;
1822
+ }
1823
+ interface IDGRow {
1824
+ id: string;
1825
+ data: any;
1826
+ flag: 'added' | 'modified' | 'deleted' | 'unchanged';
1827
+ valid: boolean;
1828
+ }
1829
+ type IDGTrackByMode = 'primaryKey' | 'index';
1800
1830
  declare class DataGrid {
1801
1831
  readonly formatterService: DataFormatterService;
1802
1832
  id: _angular_core.WritableSignal<`${string}-${string}-${string}-${string}-${string}`>;
1803
1833
  title: _angular_core.InputSignal<string | null>;
1804
1834
  table: _angular_core.InputSignal<BaseTable | undefined>;
1835
+ viewport: _angular_core.Signal<CdkVirtualScrollViewport | undefined>;
1836
+ headerScroll: _angular_core.Signal<ElementRef<any> | undefined>;
1805
1837
  currentPage: _angular_core.InputSignal<number>;
1806
1838
  pageSize: _angular_core.InputSignal<number>;
1807
1839
  pageChange: _angular_core.OutputEmitterRef<number>;
@@ -1810,7 +1842,7 @@ declare class DataGrid {
1810
1842
  filter: _angular_core.ModelSignal<{
1811
1843
  [key: string]: IDGFilter;
1812
1844
  }>;
1813
- actions: _angular_core.InputSignal<IAction[]>;
1845
+ groupBy: _angular_core.ModelSignal<IDGGroup | null>;
1814
1846
  cellChange: _angular_core.OutputEmitterRef<{
1815
1847
  index: number;
1816
1848
  row: any;
@@ -1822,13 +1854,17 @@ declare class DataGrid {
1822
1854
  row: any;
1823
1855
  event: Event;
1824
1856
  }>;
1857
+ enableVirtualization: _angular_core.InputSignal<boolean>;
1825
1858
  allowInsert: _angular_core.InputSignal<boolean>;
1826
1859
  allowUpdate: _angular_core.InputSignal<boolean>;
1827
1860
  allowDelete: _angular_core.InputSignal<boolean>;
1828
1861
  allowSync: _angular_core.InputSignal<boolean>;
1829
1862
  allowRefresh: _angular_core.InputSignal<boolean>;
1830
1863
  allowNavigation: _angular_core.InputSignal<boolean>;
1864
+ allowExport: _angular_core.InputSignal<boolean>;
1865
+ allowManageTrackingPersistence: _angular_core.InputSignal<boolean>;
1831
1866
  maxHeight: _angular_core.InputSignal<string>;
1867
+ onExport: _angular_core.OutputEmitterRef<void>;
1832
1868
  onSync: _angular_core.OutputEmitterRef<void>;
1833
1869
  onRefresh: _angular_core.OutputEmitterRef<void>;
1834
1870
  onAddRow: _angular_core.OutputEmitterRef<void>;
@@ -1839,13 +1875,14 @@ declare class DataGrid {
1839
1875
  /**
1840
1876
  * Only supported for DB2 tables. For other types, use the onNavigate event.
1841
1877
  */
1842
- onDB2Navigate: _angular_core.OutputEmitterRef<{
1878
+ onForeignTableNavigate: _angular_core.OutputEmitterRef<{
1843
1879
  targetTable: string;
1844
1880
  targetSchema: string;
1845
1881
  }>;
1846
1882
  onNavigate: _angular_core.OutputEmitterRef<{
1847
- fromMetadata: IMinimumColumnMetadata;
1883
+ targetColumnMetadata: IMinimumColumnMetadata;
1848
1884
  }>;
1885
+ crossRequestTrackingPersistence: _angular_core.ModelSignal<boolean>;
1849
1886
  modifiedCells: _angular_core.ModelSignal<{
1850
1887
  rowIndex: number;
1851
1888
  columnName: string;
@@ -1855,10 +1892,16 @@ declare class DataGrid {
1855
1892
  modifiedRows: _angular_core.ModelSignal<IDGChangedEntry[]>;
1856
1893
  addedRows: _angular_core.ModelSignal<IDGAddedEntry[]>;
1857
1894
  deletedRows: _angular_core.ModelSignal<IDGDeletedEntry[]>;
1858
- protected _addedRows: _angular_core.Signal<any[]>;
1895
+ columnSuggestions: _angular_core.Signal<{
1896
+ [key: string]: any[];
1897
+ }>;
1898
+ trackByMode: _angular_core.ModelSignal<IDGTrackByMode>;
1859
1899
  hasChanges: _angular_core.Signal<boolean>;
1900
+ groupByMap: _angular_core.Signal<{
1901
+ [key: string]: boolean;
1902
+ }>;
1860
1903
  columns: _angular_core.Signal<IMinimumColumnMetadata[]>;
1861
- rows: _angular_core.Signal<any[]>;
1904
+ rows: _angular_core.Signal<IDGRow[]>;
1862
1905
  totalItems: _angular_core.Signal<number>;
1863
1906
  currentItems: _angular_core.Signal<number>;
1864
1907
  constructor();
@@ -1869,11 +1912,13 @@ declare class DataGrid {
1869
1912
  mode: DGFilterMode;
1870
1913
  value: string;
1871
1914
  }): void;
1915
+ onGroupBy(group: IDGGroup): void;
1916
+ onGroupByIncludedChange: (columnName: string, included: boolean) => void;
1872
1917
  onPageChange(page: number): void;
1873
1918
  onPageSizeChange(pageSize: number): void;
1874
1919
  refresh(): void;
1875
1920
  getCellValue(row: any, columnName: string): any;
1876
- onCellChange(index: number, row: any, column: IMinimumColumnMetadata, value: any): void;
1921
+ onCellChange: (index: number, row: IDGRow, column: IMinimumColumnMetadata, value: any) => void;
1877
1922
  isRowAdded(row: any, index: number): boolean;
1878
1923
  isRowChanged(row: any, index: number): boolean;
1879
1924
  isCellChanged(rowIndex: number, columnName: string): boolean;
@@ -1888,14 +1933,19 @@ declare class DataGrid {
1888
1933
  deleted: any[];
1889
1934
  hasChanges: boolean;
1890
1935
  };
1891
- getRowTrackBy: (row: any, index: number) => string;
1936
+ getRowTrackBy: (row: any, index: number) => number;
1892
1937
  hasInvalidRows: () => boolean;
1893
1938
  validateRow: (row: any) => boolean;
1894
1939
  canEdit: (column: IMinimumColumnMetadata) => boolean;
1940
+ isPrimaryKeyColumn: (column: IMinimumColumnMetadata) => boolean;
1941
+ isUniqueKeyColumn: (column: IMinimumColumnMetadata) => boolean;
1942
+ isEditSafe: (column: IMinimumColumnMetadata) => boolean;
1895
1943
  isForeignKeyColumn: (column: IMinimumColumnMetadata) => boolean;
1896
- getContextMenuItems: (row: any, rowIndex: number) => IContextMenuItem[];
1944
+ getContextMenuItems: (row: IDGRow, rowIndex: number) => IContextMenuItem[];
1945
+ toggleCrossRequestTrackingPersistence(): void;
1946
+ onViewportScroll(event: Event): void;
1897
1947
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGrid, never>;
1898
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGrid, "chr-data-grid", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "table": { "alias": "table"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "allowInsert": { "alias": "allowInsert"; "required": false; "isSignal": true; }; "allowUpdate": { "alias": "allowUpdate"; "required": false; "isSignal": true; }; "allowDelete": { "alias": "allowDelete"; "required": false; "isSignal": true; }; "allowSync": { "alias": "allowSync"; "required": false; "isSignal": true; }; "allowRefresh": { "alias": "allowRefresh"; "required": false; "isSignal": true; }; "allowNavigation": { "alias": "allowNavigation"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "modifiedCells": { "alias": "modifiedCells"; "required": false; "isSignal": true; }; "modifiedRows": { "alias": "modifiedRows"; "required": false; "isSignal": true; }; "addedRows": { "alias": "addedRows"; "required": false; "isSignal": true; }; "deletedRows": { "alias": "deletedRows"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "sort": "sortChange"; "filter": "filterChange"; "cellChange": "cellChange"; "rowClick": "rowClick"; "onSync": "onSync"; "onRefresh": "onRefresh"; "onAddRow": "onAddRow"; "onDeleteRow": "onDeleteRow"; "onDB2Navigate": "onDB2Navigate"; "onNavigate": "onNavigate"; "modifiedCells": "modifiedCellsChange"; "modifiedRows": "modifiedRowsChange"; "addedRows": "addedRowsChange"; "deletedRows": "deletedRowsChange"; }, never, never, true, never>;
1948
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGrid, "app-data-grid, chr-data-grid", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "table": { "alias": "table"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "enableVirtualization": { "alias": "enableVirtualization"; "required": false; "isSignal": true; }; "allowInsert": { "alias": "allowInsert"; "required": false; "isSignal": true; }; "allowUpdate": { "alias": "allowUpdate"; "required": false; "isSignal": true; }; "allowDelete": { "alias": "allowDelete"; "required": false; "isSignal": true; }; "allowSync": { "alias": "allowSync"; "required": false; "isSignal": true; }; "allowRefresh": { "alias": "allowRefresh"; "required": false; "isSignal": true; }; "allowNavigation": { "alias": "allowNavigation"; "required": false; "isSignal": true; }; "allowExport": { "alias": "allowExport"; "required": false; "isSignal": true; }; "allowManageTrackingPersistence": { "alias": "allowManageTrackingPersistence"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "crossRequestTrackingPersistence": { "alias": "crossRequestTrackingPersistence"; "required": false; "isSignal": true; }; "modifiedCells": { "alias": "modifiedCells"; "required": false; "isSignal": true; }; "modifiedRows": { "alias": "modifiedRows"; "required": false; "isSignal": true; }; "addedRows": { "alias": "addedRows"; "required": false; "isSignal": true; }; "deletedRows": { "alias": "deletedRows"; "required": false; "isSignal": true; }; "trackByMode": { "alias": "trackByMode"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "sort": "sortChange"; "filter": "filterChange"; "groupBy": "groupByChange"; "cellChange": "cellChange"; "rowClick": "rowClick"; "onExport": "onExport"; "onSync": "onSync"; "onRefresh": "onRefresh"; "onAddRow": "onAddRow"; "onDeleteRow": "onDeleteRow"; "onForeignTableNavigate": "onForeignTableNavigate"; "onNavigate": "onNavigate"; "crossRequestTrackingPersistence": "crossRequestTrackingPersistenceChange"; "modifiedCells": "modifiedCellsChange"; "modifiedRows": "modifiedRowsChange"; "addedRows": "addedRowsChange"; "deletedRows": "deletedRowsChange"; "trackByMode": "trackByModeChange"; }, never, never, true, never>;
1899
1949
  }
1900
1950
 
1901
1951
  declare class ColumnFilter {
@@ -1903,6 +1953,7 @@ declare class ColumnFilter {
1903
1953
  readonly FilterMode: typeof DGFilterMode;
1904
1954
  isOpen: _angular_core.ModelSignal<boolean>;
1905
1955
  by: _angular_core.InputSignal<string>;
1956
+ suggestions: _angular_core.InputSignal<any[]>;
1906
1957
  mode: _angular_core.ModelSignal<DGFilterMode>;
1907
1958
  formatter: _angular_core.WritableSignal<IFormatter | null>;
1908
1959
  private inputRef;
@@ -1920,19 +1971,20 @@ declare class ColumnFilter {
1920
1971
  apply: () => void;
1921
1972
  onInputChange: (inputValue: string) => void;
1922
1973
  getModeLabel: (mode: DGFilterMode) => string;
1974
+ filterModes: _angular_core.Signal<string[]>;
1923
1975
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColumnFilter, never>;
1924
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColumnFilter, "chr-column-filter", never, { "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "by": { "alias": "by"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "columnMetadata": { "alias": "columnMetadata"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "mode": "modeChange"; "value": "valueChange"; "filterChange": "filterChange"; }, never, never, true, never>;
1976
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColumnFilter, "app-column-filter, chr-column-filter", never, { "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "by": { "alias": "by"; "required": true; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "columnMetadata": { "alias": "columnMetadata"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "mode": "modeChange"; "value": "valueChange"; "filterChange": "filterChange"; }, never, never, true, never>;
1925
1977
  }
1926
1978
 
1927
1979
  declare class EditableCell implements OnInit, OnDestroy {
1928
1980
  readonly formatterService: DataFormatterService;
1929
- private initialValue;
1930
1981
  allowUpdate: _angular_core.InputSignal<boolean>;
1931
1982
  isTouched: _angular_core.WritableSignal<boolean>;
1932
1983
  hasChanged: _angular_core.WritableSignal<boolean>;
1933
1984
  formatter: _angular_core.WritableSignal<IFormatter | null>;
1934
1985
  private inputRef;
1935
1986
  input: _angular_core.Signal<HTMLInputElement | null>;
1987
+ inputType: _angular_core.Signal<string | null>;
1936
1988
  private spanRef;
1937
1989
  spanElement: _angular_core.Signal<HTMLSpanElement | null>;
1938
1990
  value: _angular_core.InputSignal<any>;
@@ -1940,6 +1992,7 @@ declare class EditableCell implements OnInit, OnDestroy {
1940
1992
  formattedValue: _angular_core.Signal<any>;
1941
1993
  columnMetadata: _angular_core.InputSignal<IMinimumColumnMetadata>;
1942
1994
  isEditing: _angular_core.WritableSignal<boolean>;
1995
+ isEditingChange: _angular_core.OutputEmitterRef<boolean>;
1943
1996
  error: _angular_core.WritableSignal<string | null>;
1944
1997
  private valueSubjet;
1945
1998
  debounce: rxjs.Observable<any>;
@@ -1951,7 +2004,7 @@ declare class EditableCell implements OnInit, OnDestroy {
1951
2004
  validate: () => void;
1952
2005
  cancel: () => void;
1953
2006
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EditableCell, never>;
1954
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EditableCell, "chr-editable-cell", never, { "allowUpdate": { "alias": "allowUpdate"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "columnMetadata": { "alias": "columnMetadata"; "required": true; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
2007
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EditableCell, "app-editable-cell, chr-editable-cell", never, { "allowUpdate": { "alias": "allowUpdate"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "columnMetadata": { "alias": "columnMetadata"; "required": true; "isSignal": true; }; }, { "valueChange": "valueChange"; "isEditingChange": "isEditingChange"; }, never, never, true, never>;
1955
2008
  }
1956
2009
 
1957
2010
  declare class MessageBanner {
@@ -2049,6 +2102,16 @@ declare class ScrollIntoViewDirective {
2049
2102
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollIntoViewDirective, "[scrollIntoView]", never, { "scrollIntoView": { "alias": "scrollIntoView"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2050
2103
  }
2051
2104
 
2105
+ declare class OutsideClickAwareDirective {
2106
+ private elementRef;
2107
+ outsideClick: _angular_core.OutputEmitterRef<MouseEvent>;
2108
+ OutsideClickAware: _angular_core.InputSignal<boolean>;
2109
+ constructor();
2110
+ onClickOutside(event: MouseEvent): void;
2111
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OutsideClickAwareDirective, never>;
2112
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OutsideClickAwareDirective, "[OutsideClickAware]", never, { "OutsideClickAware": { "alias": "OutsideClickAware"; "required": false; "isSignal": true; }; }, { "outsideClick": "outsideClick"; }, never, never, true, never>;
2113
+ }
2114
+
2052
2115
  declare class ModalService {
2053
2116
  private activeModals;
2054
2117
  private appRef;
@@ -2060,6 +2123,31 @@ declare class ModalService {
2060
2123
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>;
2061
2124
  }
2062
2125
 
2126
+ interface IExporter {
2127
+ /**
2128
+ * Exports the given data to a file
2129
+ * @param data data to export
2130
+ * @param columns columns' name
2131
+ * @returns an url to download the exported file
2132
+ */
2133
+ export(data: any[], columns: string[], ...params: any[]): string;
2134
+ /**
2135
+ * Checks if the exporter can handle the given file type
2136
+ * @param filetype Type of the file (ex: .csv, .pdf, ...)
2137
+ */
2138
+ canExport(filetype: string): boolean;
2139
+ }
2140
+
2141
+ declare class DataExporterService {
2142
+ private exporter;
2143
+ constructor();
2144
+ setExporters(exporters: IExporter[]): void;
2145
+ registerExporter(exporter: IExporter): void;
2146
+ export(data: any[], columns: string[], filetype: string, filename?: string, autodownload?: boolean): string | null;
2147
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataExporterService, never>;
2148
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DataExporterService>;
2149
+ }
2150
+
2063
2151
  declare const CHR_MODAL_DATA: InjectionToken<any>;
2064
2152
  declare const CHR_MODAL_REF: InjectionToken<ModalRef<any> | null>;
2065
2153
 
@@ -2207,5 +2295,5 @@ declare const XSRFHEADERNAME: InjectionToken<string>;
2207
2295
  declare const XSRFCOOKIENAME: InjectionToken<string>;
2208
2296
  declare const HUBURL: InjectionToken<string>;
2209
2297
 
2210
- export { Aligments, AnonymousTable, AutofocusDirective, BaseErrorDisplays, BaseTable, BreadcrumbComponent, ButtonComponent, CHR_MODAL_DATA, CHR_MODAL_REF, CarouselComponent, ChrBaseInputComponent, ChrButtonComponent, ChrCheckboxComponent, ChrColorInputComponent, ChrContextMenuComponent, ChrDataTable, ChrDateInputComponent, ChrDatetimeInputComponent, ChrDefaultModalComponent, ChrDeleteModalComponent, ChrDropdownComponent, ChrFile, ChrFileInputComponent, ChrFormComponent, ChrModalComponent, ChrNiceFileInputComponent, ChrPaginatorComponent, ChrSearchSelectComponent, ChrSearchbarComponent, ChrSeparatorComponent, ChrSpinnerComponent, ChrTableComponent, ChrTableHeaderCellComponent, ChrTagSelectComponent, ChrTextareaInputComponent, ChrToastComponent, ChrToggleInputComponent, Colors, ColorsVariables, ColumnFilter, ColumnMetadata, ContextMenuDirective, ControlClickDirective, CookiesService, CrossCellNavigationDirective, DEFAULTLIVEUPDATEMESSAGE, DGFilterMode, DataFormatterService, DataGrid, DataService, DecimalValidatorDirective, DefaultLiveUpdateMessage, EditableCell, FileService, HUBURL, InlineSvgComponent, LiveUpdateService, LiveUpdateStatus, LoaderService, MaxDateValidatorDirective, MaxFileSizeValidator, MaxLengthValidatorDirective, MessageBanner, MinFileSizeValidator, MinLengthValidatorDirective, ModalRef, ModalService, RequiredValidatorDirective, ScrollIntoViewDirective, SpinnerInterceptor, SyncValidatorToAsync, TabComponent, TabGroupComponent, TabToEnterHandlerDirective, TabToInputHandlerDirective, TableConstraint, TableConstraintColumn, TableConstraintReference, ToastService, TypeValidatorDirective, WaitAndStoreXsrfToken, XSRFCOOKIENAME, XSRFHEADERNAME, XsrfInterceptor, decimal, getAsyncValidators, getBackgroundColor, getBorderColor, getContrastBackgroundColor, getContrastBorderColor, getContrastTextColor, getSyncValidators, getTextColor, getValidators, getVariableColor, getVariableContrastColor, maxDate, maxFileSize, maxLength, minFileSize, minLength, provideXsrfHttpClient, required, type };
2211
- export type { Alignment, Breadcrumb, Color, IAction, IAnonymousTable, IChip, IChips, IColumn, IComputedColumn, IComputedRow, IContextMenuItem, IControl, IControlValidation, IDB2ColumnMetadata, IDGAddedEntry, IDGChangedEntry, IDGDeletedEntry, IDGFilter, IDGSort, IDataTable, IFile, IFormSection, IFormatter, IInputSearchFilter, ILiveUpdateMessage, IMinimumColumnMetadata, IMinimumTableConstraint, IMinimumTableConstraintColumn, IModalRef, ISearchFilter, ITableConstraint, ITableConstraintColumn, ITableConstraintReference, IXsrfProviderParams, InputType, ModalData, ModalOptions, TColumn, TColumnType, Toast, ValidationResult };
2298
+ export { Aligments, AnonymousTable, AutofocusDirective, BaseErrorDisplays, BaseTable, BreadcrumbComponent, ButtonComponent, CHR_MODAL_DATA, CHR_MODAL_REF, CarouselComponent, ChrBaseInputComponent, ChrButtonComponent, ChrCheckboxComponent, ChrColorInputComponent, ChrContextMenuComponent, ChrDataTable, ChrDateInputComponent, ChrDatetimeInputComponent, ChrDefaultModalComponent, ChrDeleteModalComponent, ChrDropdownComponent, ChrFile, ChrFileInputComponent, ChrFormComponent, ChrModalComponent, ChrNiceFileInputComponent, ChrPaginatorComponent, ChrSearchSelectComponent, ChrSearchbarComponent, ChrSeparatorComponent, ChrSpinnerComponent, ChrTableComponent, ChrTableHeaderCellComponent, ChrTagSelectComponent, ChrTextareaInputComponent, ChrToastComponent, ChrToggleInputComponent, Colors, ColorsVariables, ColumnFilter, ColumnMetadata, ContextMenuDirective, ControlClickDirective, CookiesService, CrossCellNavigationDirective, DEFAULTLIVEUPDATEMESSAGE, DGFilterMode, DataExporterService, DataFormatterService, DataGrid, DataService, DecimalValidatorDirective, DefaultLiveUpdateMessage, EditableCell, FileService, HUBURL, InlineSvgComponent, LiveUpdateService, LiveUpdateStatus, LoaderService, MaxDateValidatorDirective, MaxFileSizeValidator, MaxLengthValidatorDirective, MessageBanner, MinFileSizeValidator, MinLengthValidatorDirective, ModalRef, ModalService, OutsideClickAwareDirective, RequiredValidatorDirective, ScrollIntoViewDirective, SpinnerInterceptor, SyncValidatorToAsync, TabComponent, TabGroupComponent, TabToEnterHandlerDirective, TabToInputHandlerDirective, TableConstraint, TableConstraintColumn, TableConstraintReference, ToastService, TypeValidatorDirective, WaitAndStoreXsrfToken, XSRFCOOKIENAME, XSRFHEADERNAME, XsrfInterceptor, decimal, getAsyncValidators, getBackgroundColor, getBorderColor, getContrastBackgroundColor, getContrastBorderColor, getContrastTextColor, getSyncValidators, getTextColor, getValidators, getVariableColor, getVariableContrastColor, maxDate, maxFileSize, maxLength, minFileSize, minLength, provideXsrfHttpClient, required, type };
2299
+ export type { Alignment, Breadcrumb, Color, IAction, IAnonymousTable, IChip, IChips, IColumn, IComputedColumn, IComputedRow, IContextMenuItem, IControl, IControlValidation, IDB2ColumnMetadata, IDGAddedEntry, IDGChangedEntry, IDGDeletedEntry, IDGFilter, IDGGroup, IDGRow, IDGSort, IDGTrackByMode, IDataTable, IFile, IFormSection, IFormatter, IInputSearchFilter, ILiveUpdateMessage, IMinimumColumnMetadata, IMinimumTableConstraint, IMinimumTableConstraintColumn, IMinimumTableConstraintReference, IModalRef, ISearchFilter, ITableConstraint, ITableConstraintColumn, ITableConstraintReference, IXsrfProviderParams, InputType, ModalData, ModalOptions, TColumn, TColumnType, Toast, ValidationResult };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chrv-components",
3
- "version": "1.11.98",
3
+ "version": "1.12.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=17.0.0",
6
6
  "@angular/core": ">=17.0.0",
@@ -0,0 +1,72 @@
1
+ .form {
2
+ grid-column: 1 / 13;
3
+ display: grid;
4
+ grid-template-columns: repeat(12, 1fr);
5
+ gap: 1rem;
6
+
7
+ button {
8
+ color: var(--text-color);
9
+ cursor: pointer;
10
+ border-radius: 0.25rem;
11
+
12
+ &:hover {
13
+ background-color: var(--neutral-color);
14
+ }
15
+ }
16
+ }
17
+
18
+ .form-inline-buttons {
19
+ grid-column: span 6;
20
+ display: flex;
21
+ justify-items: center;
22
+ align-items: center;
23
+ gap: 0.5rem;
24
+ }
25
+
26
+ .form-control {
27
+ grid-column: span 6;
28
+ display: flex;
29
+ flex-direction: column;
30
+
31
+ &::placeholder {
32
+ color: color-mix(in srgb, var(--text-color) 40%, transparent 60%);
33
+ font-weight: 550;
34
+ }
35
+
36
+ &.with-inline-button {
37
+ display: flex;
38
+ flex-direction: row;
39
+ gap: 0.5rem;
40
+ align-items: center;
41
+ }
42
+
43
+ &.with-inline-button> :nth-child(-n + 1) {
44
+ display: flex;
45
+ flex-direction: column;
46
+ width: 100%;
47
+ }
48
+
49
+ &.with-inline-button> :nth-child(2) {
50
+ display: flex;
51
+ justify-content: center;
52
+ }
53
+
54
+ &.full-width {
55
+ grid-column: span 12;
56
+ }
57
+ }
58
+
59
+ .advanced-search-dropdown {
60
+ grid-column: span 12;
61
+
62
+ .form-control:first-child {
63
+ margin-top: 0.25rem;
64
+ }
65
+ }
66
+
67
+ .form-actions {
68
+ grid-column: span 12;
69
+ display: flex;
70
+ gap: 1rem;
71
+ justify-content: space-between;
72
+ }
Binary file