@3kles/kles-material-table-v2 21.3.0 → 21.4.0

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,13 +1,13 @@
1
1
  {
2
2
  "name": "@3kles/kles-material-table-v2",
3
- "version": "21.3.0",
3
+ "version": "21.4.0",
4
4
  "keywords": [
5
5
  "3KLES"
6
6
  ],
7
7
  "author": "3Kles Lab",
8
8
  "license": "ISC",
9
9
  "peerDependencies": {
10
- "@3kles/kles-material-dynamicforms": "^21.0.1",
10
+ "@3kles/kles-material-dynamicforms": "^21.3.0",
11
11
  "@angular/animations": "^21.0.0",
12
12
  "@angular/cdk": "^21.0.0",
13
13
  "@angular/common": "^21.0.0",
@@ -16,7 +16,7 @@
16
16
  "@angular/material": "^21.0.0",
17
17
  "@angular/platform-browser": "^21.0.0",
18
18
  "@angular/router": "^21.0.0",
19
- "rxjs": "^7.8.0"
19
+ "rxjs": "^6.5.3 || ^7.4.0"
20
20
  },
21
21
  "dependencies": {
22
22
  "tslib": "^2.0.0"
@@ -40,7 +40,7 @@ interface IKlesHeaderFieldConfig {
40
40
  interface IKlesCellFieldConfig {
41
41
  executeAfterChange?: (property?: string, row?: any, group?: FormGroup<any> | FormArray<any>) => Observable<any>;
42
42
  style?: IStyle;
43
- field: C;
43
+ field?: C;
44
44
  }
45
45
  interface IKlesFooterFieldConfig {
46
46
  style?: IStyle;
@@ -74,8 +74,8 @@ interface KlesColumnConfig {
74
74
  sortable?: boolean;
75
75
  sortArrowPosition?: SortHeaderArrowPosition;
76
76
  resizable?: boolean;
77
- headerCell: IKlesHeaderFieldConfig;
78
- cell: IKlesCellFieldConfig;
77
+ headerCell?: IKlesHeaderFieldConfig;
78
+ cell?: IKlesCellFieldConfig;
79
79
  footerCell?: IKlesFooterFieldConfig;
80
80
  align?: AlignCell;
81
81
  width?: string;
@@ -131,7 +131,7 @@ interface ScrollbarApi {
131
131
  toBottom(sb?: ScrollBehavior): void;
132
132
  toRight(sb?: ScrollBehavior): void;
133
133
  to(top: number, left: number, sb?: ScrollBehavior): void;
134
- getTop(): number;
134
+ getTop(): number | undefined;
135
135
  }
136
136
 
137
137
  declare enum KlesSelectionModelState {
@@ -807,32 +807,51 @@ declare class KlesDataSource extends MatTableDataSource<FormGroup, MatPaginator>
807
807
  constructor();
808
808
  }
809
809
 
810
+ interface KlesRowContext<TSource = unknown> {
811
+ source: TSource;
812
+ _id: string | number;
813
+ meta: {
814
+ depth: number;
815
+ parentId: string | null;
816
+ };
817
+ }
818
+
819
+ interface KlesCreatedRow<TSource = unknown> {
820
+ formGroup: FormGroup;
821
+ groupUi: GroupUiState;
822
+ context: KlesRowContext<TSource>;
823
+ }
810
824
  declare class RowFormFactory {
811
825
  createControl(field: IKlesFieldConfig, value?: any): {
812
826
  control: AbstractControl;
813
827
  ui: AbstractUiState;
814
828
  };
815
- createRow(fields: IKlesFieldConfig[], record: any, meta?: {
829
+ createRow<TSource extends Record<string, any>>(fields: IKlesFieldConfig[], record: TSource, meta?: {
816
830
  depth: number;
817
831
  parentId: string | null;
818
- }): {
819
- formGroup: FormGroup;
820
- groupUi: GroupUiState;
821
- };
822
- createRows(fields: IKlesFieldConfig[], records: any[], meta?: {
832
+ }): KlesCreatedRow<TSource>;
833
+ createRows<TSource extends Record<string, any>>(fields: IKlesFieldConfig[], records: TSource[], meta?: {
823
834
  depth: number;
824
835
  parentId: string | null;
825
- }): {
826
- formGroup: FormGroup;
827
- groupUi: GroupUiState;
828
- }[];
836
+ }): KlesCreatedRow<TSource>[];
829
837
  static ɵfac: i0.ɵɵFactoryDeclaration<RowFormFactory, never>;
830
838
  static ɵprov: i0.ɵɵInjectableDeclaration<RowFormFactory>;
831
839
  }
832
840
 
841
+ declare class RowContextStore {
842
+ private readonly contexts;
843
+ set<TSource>(row: AbstractControl, context: KlesRowContext<TSource>): void;
844
+ get<TSource = unknown>(row: AbstractControl): Signal<KlesRowContext<TSource> | null> | null;
845
+ updateSource<TSource>(row: AbstractControl, source: TSource): void;
846
+ delete(row: AbstractControl): void;
847
+ static ɵfac: i0.ɵɵFactoryDeclaration<RowContextStore, never>;
848
+ static ɵprov: i0.ɵɵInjectableDeclaration<RowContextStore>;
849
+ }
850
+
833
851
  declare class KlesForm {
834
852
  private columnsService;
835
853
  private rowFactory;
854
+ private rowContextStore;
836
855
  readonly form: FormGroup<{
837
856
  header: FormGroup<{}>;
838
857
  rows: FormArray<FormGroup<any>>;
@@ -846,31 +865,22 @@ declare class KlesForm {
846
865
  readonly uiStore: WeakMap<AbstractControl<any, any, any>, AbstractUiState<any, any>>;
847
866
  private readonly rowsStructureChangedSubject;
848
867
  readonly rowsStructureChanged$: rxjs.Observable<void>;
849
- constructor(columnsService: ColumnsService, rowFactory: RowFormFactory);
868
+ constructor(columnsService: ColumnsService, rowFactory: RowFormFactory, rowContextStore: RowContextStore);
850
869
  getRows(): FormArray<FormGroup>;
851
870
  getUiRows(): ArrayUiState;
852
871
  getUiHeader(): GroupUiState;
853
872
  getUiFooter(): GroupUiState;
854
873
  getHeader(): FormGroup;
855
874
  getFooter(): FormGroup;
856
- setRows(rows: {
857
- formGroup: FormGroup;
858
- groupUi: GroupUiState;
859
- }[]): void;
875
+ setRows(rows: KlesCreatedRow[]): void;
860
876
  private insertRowAndNotify;
861
- insertRow(row: {
862
- formGroup: FormGroup;
863
- groupUi: GroupUiState;
864
- }, index?: number, options?: {
877
+ insertRow(row: KlesCreatedRow, index?: number, options?: {
865
878
  emitEvent?: boolean;
866
879
  }): {
867
880
  formGroup: FormGroup;
868
881
  groupUi: GroupUiState;
869
882
  };
870
- insertRows(rows: {
871
- formGroup: FormGroup;
872
- groupUi: GroupUiState;
873
- }[], index?: number): void;
883
+ insertRows(rows: KlesCreatedRow[], index?: number): void;
874
884
  updateRow(_id: number | string, value: any, options?: {
875
885
  emitEvent?: boolean;
876
886
  onlySelf?: boolean;