@servicemind.tis/tis-smart-table-viewer 2.4.10 → 2.4.13

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.
@@ -2,7 +2,7 @@ import { EventEmitter, SimpleChanges, OnDestroy, ChangeDetectorRef } from '@angu
2
2
  import { FormGroup, FormControl } from '@angular/forms';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
4
  import { Subscription, Observable } from 'rxjs';
5
- import type { SmartTableWrapperRowsConfig } from '../../interfaces';
5
+ import type { SmartTableWrapperRowsConfig, ColumnValueTypeFormats } from '../../interfaces';
6
6
  import { AnyKeyValueObject, SelectedFilterDisplayValuesType, SelectedFilterDisplayValueType, SelectedFiltersGroupedValuesType, SmartTableWrapperColumnsConfig } from '../../interfaces';
7
7
  import { SelectionModel } from '@angular/cdk/collections';
8
8
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
@@ -49,6 +49,8 @@ export declare class TisSmartTableViewerComponent implements OnDestroy {
49
49
  loaderPosition: 'top' | 'bottom';
50
50
  dataNotFoundConfig: DataNotFoundConfig;
51
51
  showFilterButtonSection: boolean;
52
+ /** Optional per-column format config. Key = column name, Value = format string. Defaults to empty (uses built-in formats). */
53
+ columnValueTypeFormats: ColumnValueTypeFormats;
52
54
  columnsCodeMapping: SmartTableWrapperColumnsConfig[];
53
55
  autoRenderColumns: SmartTableWrapperColumnsConfig[];
54
56
  templateRenderColumns: SmartTableWrapperColumnsConfig[];
@@ -152,6 +154,8 @@ export declare class TisSmartTableViewerComponent implements OnDestroy {
152
154
  handleSortingChanges(ch: any): void;
153
155
  private getHomeUrl;
154
156
  getNestedValue(obj: any, path: string): any;
157
+ /** Returns the custom format string for a column type, or undefined if not set (uses pipe defaults). */
158
+ getColumnFormat(columnType: string): string | undefined;
155
159
  private groupByFormControlAttributes;
156
160
  updateSelectedFilterValues(values: SelectedFilterDisplayValueType | SelectedFilterDisplayValuesType): void;
157
161
  getFinalSelectedFilterValuesToDisplay(): void;
@@ -186,5 +190,5 @@ export declare class TisSmartTableViewerComponent implements OnDestroy {
186
190
  toggleExpand(element: any): void;
187
191
  expandAllRow(): void;
188
192
  static ɵfac: i0.ɵɵFactoryDeclaration<TisSmartTableViewerComponent, never>;
189
- static ɵcmp: i0.ɵɵComponentDeclaration<TisSmartTableViewerComponent, "tis-smart-table-viewer", never, { "columnCustomizationUrlConfig": { "alias": "columnCustomizationUrlConfig"; "required": true; }; "t": { "alias": "t"; "required": true; }; "componentName": { "alias": "componentName"; "required": true; }; "mainTitle": { "alias": "mainTitle"; "required": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "breadcrumbs": { "alias": "breadcrumbs"; "required": false; }; "hideHeader": { "alias": "hideHeader"; "required": false; }; "hideTableHeader": { "alias": "hideTableHeader"; "required": false; }; "hidePaginator": { "alias": "hidePaginator"; "required": false; }; "keepFilterInUrl": { "alias": "keepFilterInUrl"; "required": false; }; "disableBorderedView": { "alias": "disableBorderedView"; "required": false; }; "displayColumnsSelectionButton": { "alias": "displayColumnsSelectionButton"; "required": false; }; "loadDataApiBaseUrl": { "alias": "loadDataApiBaseUrl"; "required": false; }; "startStickyColumnCount": { "alias": "startStickyColumnCount"; "required": false; }; "endStickyColumnCount": { "alias": "endStickyColumnCount"; "required": false; }; "isSearchFieldMobileResponsive": { "alias": "isSearchFieldMobileResponsive"; "required": false; }; "loaderPosition": { "alias": "loaderPosition"; "required": false; }; "dataNotFoundConfig": { "alias": "dataNotFoundConfig"; "required": true; }; "showFilterButtonSection": { "alias": "showFilterButtonSection"; "required": false; }; "columnsCodeMapping": { "alias": "columnsCodeMapping"; "required": true; }; "defaultDisplayedColumns": { "alias": "defaultDisplayedColumns"; "required": false; }; "defaultSortObj": { "alias": "defaultSortObj"; "required": false; }; "loadingSpinnerDiameter": { "alias": "loadingSpinnerDiameter"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "useGlobalPageSize": { "alias": "useGlobalPageSize"; "required": false; }; "pageIndex": { "alias": "pageIndex"; "required": false; }; "filterFormGroup": { "alias": "filterFormGroup"; "required": false; }; "rowsConfig": { "alias": "rowsConfig"; "required": false; }; "hasSelectedAllRows": { "alias": "hasSelectedAllRows"; "required": false; }; "enableRowsSelection": { "alias": "enableRowsSelection"; "required": false; }; "enableAllRowsSelection": { "alias": "enableAllRowsSelection"; "required": false; }; "onlySingleSelection": { "alias": "onlySingleSelection"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectedRowKey": { "alias": "selectedRowKey"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "enableDragNDrop": { "alias": "enableDragNDrop"; "required": false; }; "isExpansion": { "alias": "isExpansion"; "required": false; }; "isExpandedRow": { "alias": "isExpandedRow"; "required": false; }; "expandedTemplate": { "alias": "expandedTemplate"; "required": false; }; }, { "displayedColumnsChange": "displayedColumnsChange"; "sortObjChange": "sortObjChange"; "pageSizeChange": "pageSizeChange"; "pageIndexChange": "pageIndexChange"; "onDataLoaded": "onDataLoaded"; "onSetExtraData": "onSetExtraData"; "onSetTotal": "onSetTotal"; "selectedRowsChange": "selectedRowsChange"; "allRowsSelectedChange": "allRowsSelectedChange"; "listDataSequenceChange": "listDataSequenceChange"; }, never, ["[slot='top-buttons-section']", "[slot='filter-button-section']", "[slot='filter-right-button-section']", "[slot='filter-form-section']"], false, never>;
193
+ static ɵcmp: i0.ɵɵComponentDeclaration<TisSmartTableViewerComponent, "tis-smart-table-viewer", never, { "columnCustomizationUrlConfig": { "alias": "columnCustomizationUrlConfig"; "required": true; }; "t": { "alias": "t"; "required": true; }; "componentName": { "alias": "componentName"; "required": true; }; "mainTitle": { "alias": "mainTitle"; "required": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "breadcrumbs": { "alias": "breadcrumbs"; "required": false; }; "hideHeader": { "alias": "hideHeader"; "required": false; }; "hideTableHeader": { "alias": "hideTableHeader"; "required": false; }; "hidePaginator": { "alias": "hidePaginator"; "required": false; }; "keepFilterInUrl": { "alias": "keepFilterInUrl"; "required": false; }; "disableBorderedView": { "alias": "disableBorderedView"; "required": false; }; "displayColumnsSelectionButton": { "alias": "displayColumnsSelectionButton"; "required": false; }; "loadDataApiBaseUrl": { "alias": "loadDataApiBaseUrl"; "required": false; }; "startStickyColumnCount": { "alias": "startStickyColumnCount"; "required": false; }; "endStickyColumnCount": { "alias": "endStickyColumnCount"; "required": false; }; "isSearchFieldMobileResponsive": { "alias": "isSearchFieldMobileResponsive"; "required": false; }; "loaderPosition": { "alias": "loaderPosition"; "required": false; }; "dataNotFoundConfig": { "alias": "dataNotFoundConfig"; "required": true; }; "showFilterButtonSection": { "alias": "showFilterButtonSection"; "required": false; }; "columnValueTypeFormats": { "alias": "columnValueTypeFormats"; "required": false; }; "columnsCodeMapping": { "alias": "columnsCodeMapping"; "required": true; }; "defaultDisplayedColumns": { "alias": "defaultDisplayedColumns"; "required": false; }; "defaultSortObj": { "alias": "defaultSortObj"; "required": false; }; "loadingSpinnerDiameter": { "alias": "loadingSpinnerDiameter"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "useGlobalPageSize": { "alias": "useGlobalPageSize"; "required": false; }; "pageIndex": { "alias": "pageIndex"; "required": false; }; "filterFormGroup": { "alias": "filterFormGroup"; "required": false; }; "rowsConfig": { "alias": "rowsConfig"; "required": false; }; "hasSelectedAllRows": { "alias": "hasSelectedAllRows"; "required": false; }; "enableRowsSelection": { "alias": "enableRowsSelection"; "required": false; }; "enableAllRowsSelection": { "alias": "enableAllRowsSelection"; "required": false; }; "onlySingleSelection": { "alias": "onlySingleSelection"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectedRowKey": { "alias": "selectedRowKey"; "required": false; }; "selectedRows": { "alias": "selectedRows"; "required": false; }; "enableDragNDrop": { "alias": "enableDragNDrop"; "required": false; }; "isExpansion": { "alias": "isExpansion"; "required": false; }; "isExpandedRow": { "alias": "isExpandedRow"; "required": false; }; "expandedTemplate": { "alias": "expandedTemplate"; "required": false; }; }, { "displayedColumnsChange": "displayedColumnsChange"; "sortObjChange": "sortObjChange"; "pageSizeChange": "pageSizeChange"; "pageIndexChange": "pageIndexChange"; "onDataLoaded": "onDataLoaded"; "onSetExtraData": "onSetExtraData"; "onSetTotal": "onSetTotal"; "selectedRowsChange": "selectedRowsChange"; "allRowsSelectedChange": "allRowsSelectedChange"; "listDataSequenceChange": "listDataSequenceChange"; }, never, ["[slot='top-buttons-section']", "[slot='filter-button-section']", "[slot='filter-right-button-section']", "[slot='filter-form-section']"], false, never>;
190
194
  }
@@ -1,6 +1,8 @@
1
1
  export type DataNotFoundConfig = {
2
2
  title: string;
3
- desc: string;
3
+ desc?: string;
4
+ /** Optional custom icon/image URL. If provided, this image will be displayed instead of the default SVG. */
5
+ iconUrl?: string | null;
4
6
  btnText?: string | null;
5
7
  btnUrl?: string | null;
6
8
  btnClick?: null | ((rec: any, event?: MouseEvent) => void);
@@ -15,6 +15,24 @@ export interface SmartTableWrapperColumnsConfig {
15
15
  filterFormKey?: string;
16
16
  transformQueryParamFn?: Function;
17
17
  }
18
+ /**
19
+ * Maps column value types to their custom format strings.
20
+ * - For 'date' / 'date-time' / 'date-time-with-seconds': Luxon format string (e.g. 'yyyy/MM/dd', 'dd-MM-yyyy HH:mm')
21
+ * - For 'quantity': Angular DecimalPipe digitsInfo string (e.g. '1.2-2', '1.0-0')
22
+ * - For 'money': number of decimal places (e.g. '4', '0')
23
+ * - For 'number': Angular DecimalPipe digitsInfo string
24
+ * - For 'string': unused (reserved for future use)
25
+ *
26
+ * Example:
27
+ * {
28
+ * 'date': 'yyyy/MM/dd',
29
+ * 'date-time': 'dd-MM-yyyy HH:mm',
30
+ * 'money': '2',
31
+ * 'quantity': '1.4-4',
32
+ * 'number': '1.1-1'
33
+ * }
34
+ */
35
+ export type ColumnValueTypeFormats = Partial<Record<'number' | 'quantity' | 'money' | 'date' | 'date-time' | 'date-time-with-seconds', string>>;
18
36
  export interface SmartTableWrapperRowsConfig {
19
37
  backgroundApplyFunction?: (row: any) => string | null;
20
38
  }
@@ -1,7 +1,7 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TisCurrencyPipe implements PipeTransform {
4
- transform(value: number | string | null | undefined, decimals?: number): string;
4
+ transform(value: number | string | null | undefined, decimals?: number | string): string;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TisCurrencyPipe, never>;
6
6
  static ɵpipe: i0.ɵɵPipeDeclaration<TisCurrencyPipe, "tisCurrency", false>;
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TisDateTimeWithSecondsPipe implements PipeTransform {
4
- transform(value: unknown, ...args: unknown[]): string;
4
+ transform(value: unknown, format?: string): string;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TisDateTimeWithSecondsPipe, never>;
6
6
  static ɵpipe: i0.ɵɵPipeDeclaration<TisDateTimeWithSecondsPipe, "tisDateTimeWithSeconds", false>;
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TisDateTimePipe implements PipeTransform {
4
- transform(value: unknown, ...args: unknown[]): string;
4
+ transform(value: unknown, format?: string): string;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TisDateTimePipe, never>;
6
6
  static ɵpipe: i0.ɵɵPipeDeclaration<TisDateTimePipe, "tisDateTime", false>;
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TisDatePipe implements PipeTransform {
4
- transform(value: unknown, ...args: unknown[]): string;
4
+ transform(value: unknown, format?: string): string;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<TisDatePipe, never>;
6
6
  static ɵpipe: i0.ɵɵPipeDeclaration<TisDatePipe, "tisDate", false>;
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicemind.tis/tis-smart-table-viewer",
3
- "version": "2.4.10",
3
+ "version": "2.4.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Thai-Informatics-System/tis-smart-table-viewer.git"