@tsi-developpement/tsi-shared-ui 1.9.11 → 1.9.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.
@@ -3,4 +3,4 @@ import { FormStateService } from "../services/form/form-state.service";
3
3
  import { PresentationDesignerBaseService } from "../services/presentation-setting/presentation-designer-base.service";
4
4
  import { GenericValidationStateService } from "../services/validation/generic-validation-state.service";
5
5
  import { InputRegistryService } from "../services/validation/input-registry.service";
6
- export declare const appProviders: (typeof PresentationDesignerBaseService | typeof GenericValidationStateService | typeof InputRegistryService | typeof DynamicFormService | typeof FormStateService)[];
6
+ export declare const appProviders: (typeof GenericValidationStateService | typeof InputRegistryService | typeof PresentationDesignerBaseService | typeof DynamicFormService | typeof FormStateService)[];
@@ -67,6 +67,8 @@ export interface GridColumn {
67
67
  labelField?: string;
68
68
  idField?: string;
69
69
  haveSummary?: boolean;
70
+ /** When true, this column's summary (SUM) is shown per column in the Kanban view. Default: not shown. */
71
+ showKanbanSummary?: boolean;
70
72
  displayOnly?: boolean;
71
73
  rowSummary?: boolean;
72
74
  toolTipText?: string;
@@ -18,17 +18,25 @@ export interface IPagedRequest {
18
18
  filters?: IFilteredRequest[];
19
19
  getAllData?: boolean;
20
20
  summaries?: string[];
21
+ groupBy?: string;
21
22
  customParameter?: any;
22
23
  }
23
24
  export interface ISummaryForProprety {
24
25
  proprety: string;
25
26
  summary: any;
26
27
  }
28
+ export interface IGroupedResult<T> {
29
+ key: string | null;
30
+ items: T[];
31
+ totalCount: number;
32
+ summaries: ISummaryForProprety[];
33
+ }
27
34
  export interface IPagedResponse<T> {
28
35
  items: T[];
29
36
  totalCount: number;
30
37
  summaries?: ISummaryForProprety[];
31
38
  customColumnSchema?: ICustomColumnSchema[];
39
+ groups?: IGroupedResult<T>[];
32
40
  }
33
41
  export interface IPage<T> {
34
42
  items: T[];
@@ -38,6 +46,7 @@ export interface IPage<T> {
38
46
  pageNumber: number;
39
47
  pageSize: number;
40
48
  loading: boolean;
49
+ groups?: IGroupedResult<T>[];
41
50
  }
42
51
  export interface ISortByProprety {
43
52
  property: string | string[];
@@ -2,7 +2,7 @@ import { DynamicDialogConfig, DynamicDialogRef } from "primeng/dynamicdialog";
2
2
  import { TabView } from "primeng/tabview";
3
3
  import { JwtHelperService } from "@auth0/angular-jwt";
4
4
  import { ConfirmationService, MessageService } from "primeng/api";
5
- export declare const SharedUiTsiProviders: (typeof TabView | typeof DynamicDialogRef | typeof DynamicDialogConfig | typeof JwtHelperService | typeof MessageService | typeof ConfirmationService | {
5
+ export declare const SharedUiTsiProviders: (typeof DynamicDialogRef | typeof DynamicDialogConfig | typeof JwtHelperService | typeof TabView | typeof MessageService | typeof ConfirmationService | {
6
6
  provide: import("@angular/core").InjectionToken<unknown>;
7
7
  useValue: import("@angular/core").InjectionToken<unknown>;
8
8
  })[];
@@ -116,6 +116,7 @@ export declare class TsiGenericGridComponent implements OnInit, AfterViewInit {
116
116
  private _tempColumns;
117
117
  tempSearchFields: Array<SearchField>;
118
118
  private _columns;
119
+ private _kanbanSummaryColumns;
119
120
  set columns(value: Array<GridColumn> | undefined);
120
121
  get columns(): Array<GridColumn>;
121
122
  private _isSearchButtonDisabled;
@@ -160,7 +161,7 @@ export declare class TsiGenericGridComponent implements OnInit, AfterViewInit {
160
161
  set showKanbanView(value: boolean);
161
162
  protected _showKanbanViewOfWorkFlowEtat: boolean;
162
163
  set showKanbanViewOfWorkFlowEtat(value: boolean);
163
- page$: BehaviorSubject<any>;
164
+ page$: BehaviorSubject<IPage<any> | null>;
164
165
  checkedByField: string;
165
166
  private _selectAll;
166
167
  set selectAll(value: boolean);
@@ -171,6 +172,7 @@ export declare class TsiGenericGridComponent implements OnInit, AfterViewInit {
171
172
  private _businessClass?;
172
173
  set businessClass(value: string | undefined);
173
174
  get businessClass(): string | undefined;
175
+ groupBy?: string;
174
176
  set entityInfo(value: EntityInfo | undefined);
175
177
  get entityInfo(): EntityInfo | undefined;
176
178
  editRow: EventEmitter<string>;
@@ -305,6 +307,7 @@ export declare class TsiGenericGridComponent implements OnInit, AfterViewInit {
305
307
  private _extractSearchBoxFilters;
306
308
  private _clonePagedRequest;
307
309
  private _extractHaveSummaryProperties;
310
+ get kanbanSummaryColumns(): Array<GridColumn>;
308
311
  private _extractSummaries;
309
312
  private _extractMultiSortMetaItems;
310
313
  private _toSortMeta;
@@ -344,5 +347,5 @@ export declare class TsiGenericGridComponent implements OnInit, AfterViewInit {
344
347
  getEventDateCalendar(): EventSchema;
345
348
  handlePageChange(): void;
346
349
  static ɵfac: i0.ɵɵFactoryDeclaration<TsiGenericGridComponent, never>;
347
- static ɵcmp: i0.ɵɵComponentDeclaration<TsiGenericGridComponent, "Tsi-Generic-Grid", never, { "cudComponent": { "alias": "cudComponent"; "required": false; }; "modalSize": { "alias": "modalSize"; "required": false; }; "showInfoButton": { "alias": "showInfoButton"; "required": false; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; }; "showUploadButton": { "alias": "showUploadButton"; "required": false; }; "showNoteButton": { "alias": "showNoteButton"; "required": false; }; "showActionButton": { "alias": "showActionButton"; "required": false; }; "sizingMode": { "alias": "sizingMode"; "required": false; }; "formName": { "alias": "formName"; "required": false; }; "id": { "alias": "id"; "required": false; }; "pagedRequest": { "alias": "pagedRequest"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "page": { "alias": "page"; "required": false; }; "key": { "alias": "key"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "isSearchButtonDisabled": { "alias": "isSearchButtonDisabled"; "required": false; }; "filteredColumns": { "alias": "filteredColumns"; "required": false; }; "gridData": { "alias": "gridData"; "required": false; }; "isTableLoading": { "alias": "isTableLoading"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; "showSearchBox": { "alias": "showSearchBox"; "required": false; }; "showActionColumn": { "alias": "showActionColumn"; "required": false; }; "showHeaderFilters": { "alias": "showHeaderFilters"; "required": false; }; "showFilterButton": { "alias": "showFilterButton"; "required": false; }; "isGridDataPagedInApi": { "alias": "isGridDataPagedInApi"; "required": false; }; "header": { "alias": "header"; "required": false; }; "ShowFilterColumns": { "alias": "ShowFilterColumns"; "required": false; }; "showImportExportButton": { "alias": "showImportExportButton"; "required": false; }; "crudService": { "alias": "crudService"; "required": false; }; "searchFields": { "alias": "searchFields"; "required": false; }; "sortMode": { "alias": "sortMode"; "required": false; }; "filtersHtmlTemplate": { "alias": "filtersHtmlTemplate"; "required": false; }; "presentationSettings": { "alias": "presentationSettings"; "required": false; }; "selectKeyOnly": { "alias": "selectKeyOnly"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "searchOnInit": { "alias": "searchOnInit"; "required": false; }; "showGlobalSearch": { "alias": "showGlobalSearch"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "showSearchField": { "alias": "showSearchField"; "required": false; }; "showCalenderView": { "alias": "showCalenderView"; "required": false; }; "calenderSchema": { "alias": "calenderSchema"; "required": false; }; "showCardView": { "alias": "showCardView"; "required": false; }; "showKanbanView": { "alias": "showKanbanView"; "required": false; }; "showKanbanViewOfWorkFlowEtat": { "alias": "showKanbanViewOfWorkFlowEtat"; "required": false; }; "page$": { "alias": "page$"; "required": false; }; "checkedByField": { "alias": "checkedByField"; "required": false; }; "selectAll": { "alias": "selectAll"; "required": false; }; "targetBusinessClass": { "alias": "targetBusinessClass"; "required": false; }; "descriminatorValue": { "alias": "descriminatorValue"; "required": false; }; "businessClass": { "alias": "businessClass"; "required": false; }; "entityInfo": { "alias": "entityInfo"; "required": false; }; }, { "onSave": "onSave"; "editRow": "editRow"; "deleteRow": "deleteRow"; "load": "load"; "buttonColumnClicked": "buttonColumnClicked"; "filtersHtmlTemplateChange": "filtersHtmlTemplateChange"; "selectedItemsChange": "selectedItemsChange"; "searchFieldsValueChanged": "searchFieldsValueChanged"; "calendarEventClick": "calendarEventClick"; "statusFilterChanged": "statusFilterChanged"; }, never, never, false, never>;
350
+ static ɵcmp: i0.ɵɵComponentDeclaration<TsiGenericGridComponent, "Tsi-Generic-Grid", never, { "cudComponent": { "alias": "cudComponent"; "required": false; }; "modalSize": { "alias": "modalSize"; "required": false; }; "showInfoButton": { "alias": "showInfoButton"; "required": false; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; }; "showUploadButton": { "alias": "showUploadButton"; "required": false; }; "showNoteButton": { "alias": "showNoteButton"; "required": false; }; "showActionButton": { "alias": "showActionButton"; "required": false; }; "sizingMode": { "alias": "sizingMode"; "required": false; }; "formName": { "alias": "formName"; "required": false; }; "id": { "alias": "id"; "required": false; }; "pagedRequest": { "alias": "pagedRequest"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "page": { "alias": "page"; "required": false; }; "key": { "alias": "key"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "isSearchButtonDisabled": { "alias": "isSearchButtonDisabled"; "required": false; }; "filteredColumns": { "alias": "filteredColumns"; "required": false; }; "gridData": { "alias": "gridData"; "required": false; }; "isTableLoading": { "alias": "isTableLoading"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; "showSearchBox": { "alias": "showSearchBox"; "required": false; }; "showActionColumn": { "alias": "showActionColumn"; "required": false; }; "showHeaderFilters": { "alias": "showHeaderFilters"; "required": false; }; "showFilterButton": { "alias": "showFilterButton"; "required": false; }; "isGridDataPagedInApi": { "alias": "isGridDataPagedInApi"; "required": false; }; "header": { "alias": "header"; "required": false; }; "ShowFilterColumns": { "alias": "ShowFilterColumns"; "required": false; }; "showImportExportButton": { "alias": "showImportExportButton"; "required": false; }; "crudService": { "alias": "crudService"; "required": false; }; "searchFields": { "alias": "searchFields"; "required": false; }; "sortMode": { "alias": "sortMode"; "required": false; }; "filtersHtmlTemplate": { "alias": "filtersHtmlTemplate"; "required": false; }; "presentationSettings": { "alias": "presentationSettings"; "required": false; }; "selectKeyOnly": { "alias": "selectKeyOnly"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "searchOnInit": { "alias": "searchOnInit"; "required": false; }; "showGlobalSearch": { "alias": "showGlobalSearch"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "showSearchField": { "alias": "showSearchField"; "required": false; }; "showCalenderView": { "alias": "showCalenderView"; "required": false; }; "calenderSchema": { "alias": "calenderSchema"; "required": false; }; "showCardView": { "alias": "showCardView"; "required": false; }; "showKanbanView": { "alias": "showKanbanView"; "required": false; }; "showKanbanViewOfWorkFlowEtat": { "alias": "showKanbanViewOfWorkFlowEtat"; "required": false; }; "page$": { "alias": "page$"; "required": false; }; "checkedByField": { "alias": "checkedByField"; "required": false; }; "selectAll": { "alias": "selectAll"; "required": false; }; "targetBusinessClass": { "alias": "targetBusinessClass"; "required": false; }; "descriminatorValue": { "alias": "descriminatorValue"; "required": false; }; "businessClass": { "alias": "businessClass"; "required": false; }; "groupBy": { "alias": "groupBy"; "required": false; }; "entityInfo": { "alias": "entityInfo"; "required": false; }; }, { "onSave": "onSave"; "editRow": "editRow"; "deleteRow": "deleteRow"; "load": "load"; "buttonColumnClicked": "buttonColumnClicked"; "filtersHtmlTemplateChange": "filtersHtmlTemplateChange"; "selectedItemsChange": "selectedItemsChange"; "searchFieldsValueChanged": "searchFieldsValueChanged"; "calendarEventClick": "calendarEventClick"; "statusFilterChanged": "statusFilterChanged"; }, never, never, false, never>;
348
351
  }
@@ -92,6 +92,7 @@ export declare class TsiGenericCrudComponent implements OnInit, AfterContentChec
92
92
  showImportFromOutlookButton: boolean;
93
93
  showKanbanView: boolean;
94
94
  showKanbanViewOfWorkFlowEtat: boolean;
95
+ groupBy: string | undefined;
95
96
  showSearchField: boolean;
96
97
  searchFields: SearchField[] | undefined;
97
98
  calenderSchema: EventSchema | undefined;
@@ -161,6 +162,7 @@ export declare class TsiGenericCrudComponent implements OnInit, AfterContentChec
161
162
  private toggleCalenderView;
162
163
  private toggleCardView;
163
164
  private toggleKanbanView;
165
+ private _clearGroupBy;
164
166
  handleKeyDown(event: KeyboardEvent): void;
165
167
  handleActionViewClick(): void;
166
168
  private _handleActionWithAlertCheck;
@@ -11,6 +11,10 @@ import { EntityStatusService } from '../../services/status/entityStatus.service'
11
11
  import { AppBaseComponent } from '../../tsi-base/components/app-base/app-base.component';
12
12
  import { MenuItem } from 'primeng/api';
13
13
  import { Menu } from 'primeng/menu';
14
+ import { IPage, ISummaryForProprety } from '../../interfaces/pagination/pagination-base';
15
+ import { DisplayTypes } from '../../enums/display-types';
16
+ import { StatusColorService } from '../../services/status/status-color.service';
17
+ import { StatusMetadataResponse } from '../../models/status/color-status';
14
18
  import * as i0 from "@angular/core";
15
19
  /**
16
20
  * TsiKanbanComponent
@@ -22,12 +26,16 @@ export declare class TsiKanbanComponent extends AppBaseComponent implements OnIn
22
26
  private _localize;
23
27
  private _entityStatusService;
24
28
  private _notificationService;
29
+ private _statusColorService;
30
+ private readonly _statusLessRecords;
31
+ private _statusLabels;
32
+ private readonly _defaultPage;
25
33
  buttonClicked: EventEmitter<ButtonClickResult>;
26
34
  callSearch: EventEmitter<any>;
27
35
  cardBusinessClass: any;
28
36
  header: any;
29
37
  id: any;
30
- page$: BehaviorSubject<any>;
38
+ page$: BehaviorSubject<IPage<any> | null>;
31
39
  crudService?: CrudBaseService<any, any, any, any>;
32
40
  overflowActionsMenu: MenuItem[];
33
41
  hasOverflowActions: boolean;
@@ -35,11 +43,17 @@ export declare class TsiKanbanComponent extends AppBaseComponent implements OnIn
35
43
  currentActionRow: any;
36
44
  selectKeyOnly: boolean;
37
45
  key: string;
46
+ summaryColumns: GridColumn[];
47
+ readonly displayTypes: typeof DisplayTypes;
38
48
  private _page;
39
- set page(value: any);
40
- get page(): any;
49
+ set page(value: IPage<any>);
50
+ get page(): IPage<any>;
41
51
  cards: TsiCard[];
42
52
  cardMapByStatus: Map<string, TsiCard[]>;
53
+ countByStatus: Map<string, number>;
54
+ summaryByStatus: Map<string, ISummaryForProprety[]>;
55
+ private _isGrouped;
56
+ statusMetadata?: StatusMetadataResponse;
43
57
  draggedCard: TsiCard | null;
44
58
  first: number;
45
59
  rows: number;
@@ -51,7 +65,7 @@ export declare class TsiKanbanComponent extends AppBaseComponent implements OnIn
51
65
  key: string;
52
66
  localized: string;
53
67
  }[];
54
- constructor(cdr: ChangeDetectorRef, _entityConfig: EntityConfigurationService, _localize: LocalizePipe, _entityStatusService: EntityStatusService, _notificationService: TsiNotificationService);
68
+ constructor(cdr: ChangeDetectorRef, _entityConfig: EntityConfigurationService, _localize: LocalizePipe, _entityStatusService: EntityStatusService, _notificationService: TsiNotificationService, _statusColorService: StatusColorService);
55
69
  ngOnInit(): Promise<void>;
56
70
  dragStart(_: DragEvent, card: TsiCard): void;
57
71
  dragEnd(): void;
@@ -63,9 +77,15 @@ export declare class TsiKanbanComponent extends AppBaseComponent implements OnIn
63
77
  trackByCard(index: number, card: TsiCard): string | undefined;
64
78
  drop(event: DragEvent, newStatusKey: string): void;
65
79
  onPageChange(event: PaginatorState): void;
66
- getStatusClass(card: TsiCard): string;
80
+ private loadStatusColors;
81
+ getStatusColorHex(statusKey?: string): string | undefined;
82
+ getColumnAccentColor(statusKey?: string): string;
67
83
  getLocalizedStatus(key: string | undefined): string;
84
+ getColumnCount(statusKey: string): number;
85
+ get hasColumnSummaries(): boolean;
86
+ getColumnSummaryValue(statusKey: string, field: string): number | undefined;
68
87
  private handlePageChange;
88
+ private handleGroupedPage;
69
89
  private getEntityInfo;
70
90
  private getColKeys;
71
91
  private mapItemsToCards;
@@ -78,5 +98,5 @@ export declare class TsiKanbanComponent extends AppBaseComponent implements OnIn
78
98
  edit(uid?: string): void;
79
99
  private openModalComponent;
80
100
  static ɵfac: i0.ɵɵFactoryDeclaration<TsiKanbanComponent, never>;
81
- static ɵcmp: i0.ɵɵComponentDeclaration<TsiKanbanComponent, "Tsi-kanban", never, { "cardBusinessClass": { "alias": "cardBusinessClass"; "required": false; }; "header": { "alias": "header"; "required": false; }; "id": { "alias": "id"; "required": false; }; "page$": { "alias": "page$"; "required": false; }; "crudService": { "alias": "crudService"; "required": false; }; "overflowActionsMenu": { "alias": "overflowActionsMenu"; "required": false; }; "selectKeyOnly": { "alias": "selectKeyOnly"; "required": false; }; "key": { "alias": "key"; "required": false; }; "page": { "alias": "page"; "required": false; }; }, { "buttonClicked": "buttonClicked"; "callSearch": "callSearch"; }, never, never, false, never>;
101
+ static ɵcmp: i0.ɵɵComponentDeclaration<TsiKanbanComponent, "Tsi-kanban", never, { "cardBusinessClass": { "alias": "cardBusinessClass"; "required": false; }; "header": { "alias": "header"; "required": false; }; "id": { "alias": "id"; "required": false; }; "page$": { "alias": "page$"; "required": false; }; "crudService": { "alias": "crudService"; "required": false; }; "overflowActionsMenu": { "alias": "overflowActionsMenu"; "required": false; }; "selectKeyOnly": { "alias": "selectKeyOnly"; "required": false; }; "key": { "alias": "key"; "required": false; }; "summaryColumns": { "alias": "summaryColumns"; "required": false; }; "page": { "alias": "page"; "required": false; }; }, { "buttonClicked": "buttonClicked"; "callSearch": "callSearch"; }, never, never, false, never>;
82
102
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsi-developpement/tsi-shared-ui",
3
- "version": "1.9.11",
3
+ "version": "1.9.13",
4
4
  "author": "TSI",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {