@ngx-smz/core 21.7.2 → 21.8.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngx-smz/core",
3
- "version": "21.7.2",
3
+ "version": "21.8.0",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": ">=21.0.0 <22.0.0",
6
6
  "@angular/common": ">=21.0.0 <22.0.0",
@@ -7656,6 +7656,19 @@ declare class SmzContentActionIconBuilder<TColumn extends SmzBaseColumnBuilder<T
7656
7656
  get action(): SmzHeaderActionsBuilder<TColumn, TData>;
7657
7657
  }
7658
7658
 
7659
+ type DecrementColumnPathDepth = [never, 0, 1, 2, 3, 4];
7660
+ type IsAnyType<TValue> = 0 extends (1 & TValue) ? true : false;
7661
+ type UnresolvedColumnFieldValue = any;
7662
+ type SpecificColumnPropertyNames<TData> = keyof TData extends infer PropertyName ? PropertyName extends string ? string extends PropertyName ? never : PropertyName : never : never;
7663
+ type NestedColumnObject<TValue> = IsAnyType<TValue> extends true ? never : NonNullable<TValue> extends readonly unknown[] ? never : NonNullable<TValue> extends Date ? never : NonNullable<TValue> extends (...args: any[]) => unknown ? never : NonNullable<TValue> extends object ? NonNullable<TValue> : never;
7664
+ type ColumnPropertyPath<TData, TDepth extends number = 4> = IsAnyType<TData> extends true ? string : TData extends unknown ? BuildColumnPropertyPath<NonNullable<TData>, TDepth> : never;
7665
+ type ColumnFieldName<TData> = IsAnyType<TData> extends true ? string : ColumnPropertyPath<TData> | (string & {});
7666
+ type ColumnFieldValue<TData, TField extends string> = IsAnyType<TData> extends true ? UnresolvedColumnFieldValue : string extends TField ? UnresolvedColumnFieldValue : TData extends unknown ? ResolveColumnFieldValue<NonNullable<TData>, TField> : never;
7667
+ type BuildColumnPropertyPath<TData, TDepth extends number> = TData extends object ? {
7668
+ [PropertyName in SpecificColumnPropertyNames<TData>]: PropertyName | (NestedColumnObject<TData[PropertyName]> extends never ? never : TDepth extends 0 ? never : `${PropertyName}.${BuildColumnPropertyPath<NestedColumnObject<TData[PropertyName]>, DecrementColumnPathDepth[TDepth]>}`);
7669
+ }[SpecificColumnPropertyNames<TData>] : never;
7670
+ type ResolveColumnFieldValue<TData, TField extends string> = IsAnyType<TData> extends true ? UnresolvedColumnFieldValue : TField extends `${infer PropertyName}.${infer RemainingPath}` ? PropertyName extends keyof TData ? ResolveColumnFieldValue<NonNullable<TData[PropertyName]>, RemainingPath> : UnresolvedColumnFieldValue : TField extends keyof TData ? TData[TField] : UnresolvedColumnFieldValue;
7671
+
7659
7672
  declare abstract class SmzBaseColumnBuilder<T extends SmzBaseColumnBuilder<T, TData>, TData> {
7660
7673
  protected tableRef: SmzTableBuilder<TData>;
7661
7674
  protected parentRef: SmzColumnCollectionBuilder<TData>;
@@ -7707,46 +7720,46 @@ declare class SmzTextColumnBuilder<TData> extends SmzBaseColumnBuilder<SmzTextCo
7707
7720
  constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: string, header: string, width?: string);
7708
7721
  setFilter(type: SmzFilterType): SmzTextColumnBuilder<TData>;
7709
7722
  }
7710
- declare class SmzCustomColumnBuilder<TData> extends SmzBaseColumnBuilder<SmzCustomColumnBuilder<TData>, TData> {
7723
+ declare class SmzCustomColumnBuilder<TData, TField extends string = string> extends SmzBaseColumnBuilder<SmzCustomColumnBuilder<TData, TField>, TData> {
7711
7724
  protected tableRef: SmzTableBuilder<TData>;
7712
7725
  protected parentRef: SmzColumnCollectionBuilder<TData>;
7713
7726
  protected that: this;
7714
- constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: string, header: string, width?: string);
7715
- setFilter(type: SmzFilterType): SmzCustomColumnBuilder<TData>;
7716
- enableSort(): SmzCustomColumnBuilder<TData>;
7717
- forceGlobalFilter(): SmzCustomColumnBuilder<TData>;
7718
- setFilterableData(getFilterableDataCallback: (data: unknown, row: unknown, index: number) => string): SmzCustomColumnBuilder<TData>;
7727
+ constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: TField, header: string, width?: string);
7728
+ setFilter(type: SmzFilterType): this;
7729
+ enableSort(): this;
7730
+ forceGlobalFilter(): this;
7731
+ setFilterableData(getFilterableDataCallback: (data: ColumnFieldValue<TData, TField>, row: TData, index: number) => string): this;
7719
7732
  }
7720
- declare class SmzIconColumnBuilder<TData> extends SmzBaseColumnBuilder<SmzIconColumnBuilder<TData>, TData> {
7733
+ declare class SmzIconColumnBuilder<TData, TField extends string = string> extends SmzBaseColumnBuilder<SmzIconColumnBuilder<TData, TField>, TData> {
7721
7734
  protected tableRef: SmzTableBuilder<TData>;
7722
7735
  protected parentRef: SmzColumnCollectionBuilder<TData>;
7723
7736
  protected that: this;
7724
- constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: string, header: string, width?: string);
7725
- addIconConfiguration(icon: string, value: unknown, styleClass?: string | null, tooltip?: string | null): SmzIconColumnBuilder<TData>;
7726
- setFilter(type: SmzFilterType): SmzIconColumnBuilder<TData>;
7727
- forceGlobalFilter(): SmzIconColumnBuilder<TData>;
7728
- setFilterableData(getFilterableDataCallback: (data: unknown, row: unknown, index: number) => string): SmzIconColumnBuilder<TData>;
7737
+ constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: TField, header: string, width?: string);
7738
+ addIconConfiguration(icon: string, value: unknown, styleClass?: string | null, tooltip?: string | null): this;
7739
+ setFilter(type: SmzFilterType): this;
7740
+ forceGlobalFilter(): this;
7741
+ setFilterableData(getFilterableDataCallback: (data: ColumnFieldValue<TData, TField>, row: TData, index: number) => string): this;
7729
7742
  }
7730
- declare class SmzDataTransformColumnBuilder<TData> extends SmzBaseColumnBuilder<SmzDataTransformColumnBuilder<TData>, TData> {
7743
+ declare class SmzDataTransformColumnBuilder<TData, TField extends string = string> extends SmzBaseColumnBuilder<SmzDataTransformColumnBuilder<TData, TField>, TData> {
7731
7744
  protected tableRef: SmzTableBuilder<TData>;
7732
7745
  protected parentRef: SmzColumnCollectionBuilder<TData>;
7733
7746
  protected that: this;
7734
- constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: string, header: string, callback: (data: unknown, row: unknown, index: number) => string, width?: string);
7735
- setFilter(type: SmzFilterType): SmzDataTransformColumnBuilder<TData>;
7736
- filterWithTransformedData(): SmzDataTransformColumnBuilder<TData>;
7737
- ignoreTransformOnExport(): SmzDataTransformColumnBuilder<TData>;
7738
- setFilterableData(getFilterableDataCallback: (data: unknown, row: unknown, index: number) => string): SmzDataTransformColumnBuilder<TData>;
7747
+ constructor(tableRef: SmzTableBuilder<TData>, parentRef: SmzColumnCollectionBuilder<TData>, field: TField, header: string, callback: (data: ColumnFieldValue<TData, TField>, row: TData, index: number) => string, width?: string);
7748
+ setFilter(type: SmzFilterType): this;
7749
+ filterWithTransformedData(): this;
7750
+ ignoreTransformOnExport(): this;
7751
+ setFilterableData(getFilterableDataCallback: (data: ColumnFieldValue<TData, TField>, row: TData, index: number) => string): this;
7739
7752
  }
7740
7753
  declare class SmzColumnCollectionBuilder<TData> extends SmzBuilderUtilities<SmzColumnCollectionBuilder<TData>> {
7741
7754
  private tableRefBuilder;
7742
7755
  protected that: this;
7743
7756
  constructor(tableRefBuilder: SmzTableBuilder<TData>);
7744
7757
  text(field: string, header: string, width?: string): SmzTextColumnBuilder<TData>;
7745
- custom(field: string, header: string, width?: string): SmzCustomColumnBuilder<TData>;
7746
- icon(field: string, header: string, width?: string): SmzIconColumnBuilder<TData>;
7758
+ custom<TField extends ColumnFieldName<TData>>(field: TField, header: string, width?: string): SmzCustomColumnBuilder<TData, TField>;
7759
+ icon<TField extends ColumnFieldName<TData>>(field: TField, header: string, width?: string): SmzIconColumnBuilder<TData, TField>;
7747
7760
  date(field: string, header: string, width?: string): SmzDateColumnBuilder<TData>;
7748
7761
  currency(field: string, header: string, width?: string): SmzCurrencyColumnBuilder<TData>;
7749
- dataTransform(field: string, header: string, callback: (data: any, row: TData, index: number) => string, width?: string): SmzDataTransformColumnBuilder<TData>;
7762
+ dataTransform<TField extends ColumnFieldName<TData>>(field: TField, header: string, callback: (data: ColumnFieldValue<TData, NoInfer<TField>>, row: TData, index: number) => string, width?: string): SmzDataTransformColumnBuilder<TData, TField>;
7750
7763
  get table(): SmzTableBuilder<TData>;
7751
7764
  }
7752
7765