@unifylib/ui-lib 1.0.3 → 1.1.3

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.
Files changed (155) hide show
  1. package/ng-package.json +7 -7
  2. package/package.json +14 -12
  3. package/src/lib/base-model/SearchStrConfig.ts +12 -12
  4. package/src/lib/base-model/api-response.ts +23 -23
  5. package/src/lib/base-model/audit-log-entry.ts +7 -7
  6. package/src/lib/base-model/button-action-settings.ts +29 -25
  7. package/src/lib/base-model/column-def.model.ts +34 -34
  8. package/src/lib/base-model/do-action-request.ts +11 -11
  9. package/src/lib/base-model/feature-item.ts +9 -0
  10. package/src/lib/base-model/field-action.ts +7 -7
  11. package/src/lib/base-model/field-filter.model.ts +7 -14
  12. package/src/lib/base-model/field-info.ts +102 -98
  13. package/src/lib/base-model/field-predicate.model.ts +7 -7
  14. package/src/lib/base-model/filter-request.ts +27 -27
  15. package/src/lib/base-model/filter.model.ts +49 -49
  16. package/src/lib/base-model/get-items-list.ts +24 -24
  17. package/src/lib/base-model/index.ts +11 -11
  18. package/src/lib/base-model/items-total.model.ts +12 -0
  19. package/src/lib/base-model/line-item.model.ts +18 -0
  20. package/src/lib/base-model/lookupItem.ts +21 -21
  21. package/src/lib/base-model/null-snackmessage.ts +9 -9
  22. package/src/lib/base-model/page-info.ts +54 -51
  23. package/src/lib/base-model/report-request.model.ts +33 -33
  24. package/src/lib/base-model/response-envelop.model.ts +15 -15
  25. package/src/lib/base-model/snack-message.model.ts +14 -14
  26. package/src/lib/base-model/snackmessage-interface.ts +7 -7
  27. package/src/lib/base-model/table-column.interface.ts +29 -29
  28. package/src/lib/base-model/table-page-user-action.interface.ts +33 -33
  29. package/src/lib/base-model/workflow/workflow-steps.model.ts +9 -9
  30. package/src/lib/base-model/workflow/workflow.model.ts +52 -52
  31. package/src/lib/components/action-comment/action-comment.component.css +52 -0
  32. package/src/lib/components/action-comment/action-comment.component.html +47 -0
  33. package/src/lib/components/{rejection-comment → action-comment}/action-comment.component.spec.ts +23 -23
  34. package/src/lib/components/{rejection-comment → action-comment}/action-comment.component.ts +102 -86
  35. package/src/lib/components/action-confirmation/action-confirmation.component.css +46 -34
  36. package/src/lib/components/action-confirmation/action-confirmation.component.html +32 -18
  37. package/src/lib/components/action-confirmation/action-confirmation.component.spec.ts +23 -23
  38. package/src/lib/components/action-confirmation/action-confirmation.component.ts +58 -58
  39. package/src/lib/components/activity-report-form/activity-report-form.component.html +110 -109
  40. package/src/lib/components/activity-report-form/activity-report-form.component.scss +69 -0
  41. package/src/lib/components/activity-report-form/activity-report-form.component.spec.ts +25 -25
  42. package/src/lib/components/activity-report-form/activity-report-form.component.ts +616 -605
  43. package/src/lib/components/advanced-filter/field-filter/field-filter.component.html +8 -0
  44. package/src/lib/components/advanced-filter/field-filter/field-filter.component.scss +0 -0
  45. package/src/lib/components/advanced-filter/field-filter/field-filter.component.spec.ts +25 -0
  46. package/src/lib/components/advanced-filter/field-filter/field-filter.component.ts +55 -0
  47. package/src/lib/components/advanced-filter/filter-builder/filter-builder.component.html +36 -0
  48. package/src/lib/components/advanced-filter/filter-builder/filter-builder.component.scss +130 -0
  49. package/src/lib/components/advanced-filter/filter-builder/filter-builder.component.spec.ts +25 -0
  50. package/src/lib/components/advanced-filter/filter-builder/filter-builder.component.ts +186 -0
  51. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.css +51 -51
  52. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.html +23 -23
  53. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.spec.ts +23 -23
  54. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.ts +69 -69
  55. package/src/lib/components/audit-log-list/audit-log.component.html +26 -23
  56. package/src/lib/components/audit-log-list/audit-log.component.scss +50 -0
  57. package/src/lib/components/audit-log-list/audit-log.component.spec.ts +25 -25
  58. package/src/lib/components/audit-log-list/audit-log.component.ts +114 -116
  59. package/src/lib/components/auto-complete/auto-complete.component.css +55 -14
  60. package/src/lib/components/auto-complete/auto-complete.component.html +45 -29
  61. package/src/lib/components/auto-complete/auto-complete.component.spec.ts +23 -23
  62. package/src/lib/components/auto-complete/auto-complete.component.ts +331 -330
  63. package/src/lib/components/base-form/base-form.component.html +59 -58
  64. package/src/lib/components/base-form/base-form.component.scss +68 -0
  65. package/src/lib/components/base-form/base-form.component.spec.ts +25 -25
  66. package/src/lib/components/base-form/base-form.component.ts +323 -305
  67. package/src/lib/components/base-form-canvas/base-form-canvas.component.css +196 -22
  68. package/src/lib/components/base-form-canvas/base-form-canvas.component.html +1095 -1006
  69. package/src/lib/components/base-form-canvas/base-form-canvas.component.spec.ts +23 -23
  70. package/src/lib/components/base-form-canvas/base-form-canvas.component.ts +680 -573
  71. package/src/lib/components/base-input-dialog/base-input-dialog.component.css +67 -0
  72. package/src/lib/components/base-input-dialog/base-input-dialog.component.html +47 -42
  73. package/src/lib/components/base-input-dialog/base-input-dialog.component.spec.ts +23 -23
  74. package/src/lib/components/base-input-dialog/base-input-dialog.component.ts +77 -78
  75. package/src/lib/components/base-table/base-table.component.html +268 -242
  76. package/src/lib/components/base-table/base-table.component.scss +140 -31
  77. package/src/lib/components/base-table/base-table.component.spec.ts +25 -25
  78. package/src/lib/components/base-table/base-table.component.ts +621 -568
  79. package/src/lib/components/button-actions/button-actions.component.html +27 -28
  80. package/src/lib/components/button-actions/button-actions.component.scss +101 -6
  81. package/src/lib/components/button-actions/button-actions.component.spec.ts +23 -23
  82. package/src/lib/components/button-actions/button-actions.component.ts +70 -72
  83. package/src/lib/components/editable-base-table/editable-base-table.component.html +337 -372
  84. package/src/lib/components/editable-base-table/editable-base-table.component.scss +126 -44
  85. package/src/lib/components/editable-base-table/editable-base-table.component.spec.ts +25 -25
  86. package/src/lib/components/editable-base-table/editable-base-table.component.ts +579 -570
  87. package/src/lib/components/equation-builder/equation-builder.component.css +39 -0
  88. package/src/lib/components/equation-builder/equation-builder.component.html +31 -31
  89. package/src/lib/components/equation-builder/equation-builder.component.spec.ts +23 -23
  90. package/src/lib/components/equation-builder/equation-builder.component.ts +119 -121
  91. package/src/lib/components/item-line-editor/item-line-editor.component.html +102 -0
  92. package/src/lib/components/item-line-editor/item-line-editor.component.scss +152 -0
  93. package/src/lib/components/item-line-editor/item-line-editor.component.spec.ts +23 -0
  94. package/src/lib/components/item-line-editor/item-line-editor.component.ts +306 -0
  95. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.css +19 -11
  96. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.html +38 -38
  97. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.spec.ts +23 -23
  98. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.ts +315 -317
  99. package/src/lib/components/paginator/paginator.component.css +65 -25
  100. package/src/lib/components/paginator/paginator.component.html +30 -34
  101. package/src/lib/components/paginator/paginator.component.ts +87 -94
  102. package/src/lib/components/report-details-dialog/report-details-dialog.component.css +17 -17
  103. package/src/lib/components/report-details-dialog/report-details-dialog.component.html +16 -16
  104. package/src/lib/components/report-details-dialog/report-details-dialog.component.spec.ts +23 -23
  105. package/src/lib/components/report-details-dialog/report-details-dialog.component.ts +111 -113
  106. package/src/lib/components/report-form/report-form.component.html +92 -94
  107. package/src/lib/components/report-form/report-form.component.scss +51 -0
  108. package/src/lib/components/report-form/report-form.component.spec.ts +25 -25
  109. package/src/lib/components/report-form/report-form.component.ts +599 -588
  110. package/src/lib/components/search-bar/search-bar.component.html +51 -62
  111. package/src/lib/components/search-bar/search-bar.component.scss +63 -8
  112. package/src/lib/components/search-bar/search-bar.component.spec.ts +25 -25
  113. package/src/lib/components/search-bar/search-bar.component.ts +68 -70
  114. package/src/lib/components/section-form-canvas/section-form-canvas.component.html +43 -0
  115. package/src/lib/components/section-form-canvas/section-form-canvas.component.scss +81 -0
  116. package/src/lib/components/section-form-canvas/section-form-canvas.component.spec.ts +23 -0
  117. package/src/lib/components/section-form-canvas/section-form-canvas.component.ts +67 -0
  118. package/src/lib/components/shared/action-button/action-button.component.html +12 -0
  119. package/src/lib/components/shared/action-button/action-button.component.scss +45 -0
  120. package/src/lib/components/shared/action-button/action-button.component.ts +51 -0
  121. package/src/lib/components/shared/action-card/action-card.component.html +78 -0
  122. package/src/lib/components/shared/action-card/action-card.component.scss +238 -0
  123. package/src/lib/components/shared/action-card/action-card.component.ts +56 -0
  124. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.css +135 -54
  125. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.html +36 -22
  126. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.spec.ts +23 -23
  127. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.ts +71 -45
  128. package/src/lib/components/shared-list/shared-list.component.html +17 -17
  129. package/src/lib/components/shared-list/shared-list.component.spec.ts +23 -23
  130. package/src/lib/components/shared-list/shared-list.component.ts +53 -53
  131. package/src/lib/components/snackbar-static/snackbar-static.component.html +20 -0
  132. package/src/lib/components/snackbar-static/snackbar-static.component.scss +135 -0
  133. package/src/lib/components/snackbar-static/snackbar-static.component.ts +26 -0
  134. package/src/lib/components/title-bar/title-bar.component.html +35 -31
  135. package/src/lib/components/title-bar/title-bar.component.scss +126 -23
  136. package/src/lib/components/title-bar/title-bar.component.spec.ts +23 -23
  137. package/src/lib/components/title-bar/title-bar.component.ts +126 -119
  138. package/src/lib/services/backend-service.ts +287 -286
  139. package/src/lib/services/index.ts +3 -3
  140. package/src/lib/services/top-panel.ts +17 -17
  141. package/src/lib/services/trigger-form.service.ts +11 -11
  142. package/src/lib/share-module/shared-module.ts +10 -10
  143. package/src/lib/utils/base-utils.ts +102 -102
  144. package/src/lib/validators/date-range-validator.ts +31 -31
  145. package/src/lib/validators/index.ts +3 -3
  146. package/src/lib/validators/match-list.validator.ts +10 -10
  147. package/src/lib/validators/multi-email-validator.ts +15 -15
  148. package/src/public-api.ts +29 -21
  149. package/tsconfig.lib.json +15 -15
  150. package/tsconfig.lib.prod.json +11 -11
  151. package/tsconfig.spec.json +15 -15
  152. package/src/lib/components/rejection-comment/action-comment.component.css +0 -33
  153. package/src/lib/components/rejection-comment/action-comment.component.html +0 -46
  154. package/src/lib/styles/invoiceq-theme.scss +0 -252
  155. package/src/lib/styles/styles.scss +0 -1723
@@ -1,242 +1,268 @@
1
- <div fxLayout="column" class="baseTable">
2
- <div fxLayout="row" fxFlex="100" >
3
- <div fxFlex="50" fxLayout="column" fxLayoutAlign="center start" >
4
- <!-- <span style="font-size: 14px">{{ 'totalCountItem' | translate }} : {{ this.totalElements }}</span>-->
5
- </div>
6
- <div fxFlex="50" fxLayout="column" fxLayoutAlign="start end" >
7
- </div>
8
- </div>
9
- <div fxLayout="row" fxFlex="100" >
10
- <div [fxFlex]="pageInfo.draftSupported ? 50 : 100" fxLayout="column" fxLayoutAlign="center start" >
11
- <app-title-bar [pageTitle]="pageInfo.hideTitle ? '' : pageInfo.labelsSection+'.list_title'"
12
- [titleMode]="''"
13
- [newAction]="showAddNew()"
14
- [showExtractButton]="!pageInfo.hideExtractButton"
15
- [extraButton]="extraButton"
16
- (newActionClicked)="onAddNewAction($event)"
17
- (extractReport)="extractReport($event)"
18
- [totalElements]="pageInfo.hideTitle ? undefined : totalElements"
19
- >
20
- </app-title-bar>
21
- </div>
22
- <div fxFlex="50" fxLayout="column" fxLayoutAlign="start end" *ngIf="pageInfo.draftSupported" >
23
- <mat-chip-listbox aria-label="Color selection" [multiple]="false" >
24
- <mat-chip-option [selected]="!this.isPending" [color]="'accent'" [value]="'COMPLETED'" (click)="switchViewMode(false)">{{'finished' | translate}}</mat-chip-option>
25
- <mat-chip-option [selected]="this.isPending" [color]="'accent'" [value]="'PENDING'" (click)="switchViewMode(true)">{{'todo' | translate}}</mat-chip-option>
26
- </mat-chip-listbox>
27
- </div>
28
- </div>
29
- <div fxLayout="row" fxFlex="100" class="baseTable__detailsColumn">
30
- <div fxFlex="100">
31
- <div fxLayout="row" fxLayout.lt-md="row" fxLayoutGap="0" fxLayoutAlign="start start" class="mainTable">
32
- <table [dataSource]="dataSource" fxFlexFill mat-table matSort>
33
- <ng-container *ngFor="let column of this.columns; let last=last">
34
- <ng-container matColumnDef="{{column.property}}">
35
- <ng-container *ngIf="column.enableSorting; else withoutSortingColumn">
36
- <th *matHeaderCellDef class="mainTable__th" mat-header-cell mat-sort-header>{{ labelKey(column) | translate}}</th>
37
- </ng-container>
38
- <ng-template #withoutSortingColumn>
39
- <th *matHeaderCellDef class="mainTable__th" mat-header-cell>{{ labelKey(column) | translate}}</th>
40
- </ng-template>
41
- <ng-container [ngSwitch]="column.viewType || column.type">
42
- <ng-container *ngSwitchCase="'workflowStatus'">
43
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary']" mat-cell>
44
- <button mat-button class="wfStatus {{ getStatusDescription(element)}} ">{{ getStatusDescription(element)}}</button>
45
- </td>
46
- <td *matCellDef="let element" [ngClass]="['mainTable__td__text-secondary__td']" mat-cell>
47
- <button mat-button class="wfStatus {{ getStatusDescription(element)}} ">{{ getStatusDescription(element)}}</button>
48
- </td>
49
- </ng-container>
50
- <ng-container *ngSwitchCase="'hyper-text'">
51
- <td *matCellDef="let element" [ngClass]="['mainTable__td__text-secondary__td']"
52
- (click)="hyperLinkClicked(column.property,element)"
53
- mat-cell>
54
- <mat-label
55
- [ngClass]="{
56
- 'hyper-link': shouldRenderAsHyperLink(element)
57
- }">
58
- {{ extractFieldName(element, column.property) }}
59
- </mat-label>
60
- </td>
61
- </ng-container>
62
- <ng-container *ngSwitchCase="'button'">
63
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary']" mat-cell>
64
- <button
65
- *ngIf="shouldShowButton(element)"
66
- mat-button
67
- class="primary"
68
- (click)="$event.stopPropagation(); actionButtonClicked(column.property, element)">
69
- {{ labelKey(column) + '_title' | translate }}
70
- </button>
71
- </td>
72
- </ng-container>
73
- <ng-container *ngSwitchCase="'icon'">
74
- <td *matCellDef="let element" class="mainTable__td" mat-cell>
75
- <mat-icon
76
- [ngClass]="{
77
- 'mainTable__td__icon-green': element[column.property] === 'pass',
78
- 'mainTable__td__icon-orange': element[column.property] === 'warning',
79
- 'mainTable__td__icon-red': element[column.property] === 'error'
80
- }">
81
- {{ getIcon(element[column.property]) }}
82
- </mat-icon>
83
- </td>
84
- </ng-container>
85
- <ng-container *ngSwitchCase="'checkbox'">
86
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary']" mat-cell>
87
- <mat-checkbox class="primary" [checked]="element[column.property]" (click)="$event.stopPropagation();actionCheckedClicked(column.property,element)"></mat-checkbox>
88
-
89
- </td>
90
- </ng-container>
91
- <ng-container *ngSwitchCase="'stateType'">
92
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary']" mat-cell>
93
- <button mat-button class="stateType {{ element[column.property]}} ">{{ labelKeyByValue(column, element) | translate}}</button>
94
- </td>
95
- </ng-container>
96
- <ng-container *ngSwitchCase="'date'">
97
- <td *matCellDef="let element" [ngClass]="['mainTable__td__text-secondary__td']"
98
- mat-cell>{{ extractFieldName(element, column.property) | date:'yyyy-MM-dd' }} </td>
99
- </ng-container>
100
- <ng-container *ngSwitchCase="'croppedText'">
101
- <td *matCellDef="let element" [ngClass]="['mainTable__td__text-secondary__td']"
102
- mat-cell>{{ getCroppedText(element[column.property], element[column.width]) }} </td>
103
- </ng-container>
104
- <ng-container *ngSwitchCase="'download'">
105
- <td *matCellDef="let element" [ngClass]="['mainTable__td__text-secondary__td']" style="padding: 0;margin: 0;text-align: center;"
106
- mat-cell><mat-icon class="mainTable__td__icon-blue">system_update_alt</mat-icon></td>
107
- </ng-container>
108
- <ng-container *ngSwitchCase="'onOff'">
109
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary__td']" mat-cell>
110
- <mat-icon *ngIf="element[column.property] === null" class="mainTable__td__icon-darkorange">flag</mat-icon>
111
- <mat-icon class="mainTable__td__icon-red" *ngIf="element[column.property] === false">flag</mat-icon>
112
- <mat-icon class="mainTable__td__icon-green" *ngIf="element[column.property] === true">flag</mat-icon>
113
- </td>
114
- </ng-container>
115
- <ng-container *ngSwitchCase="'status'">
116
- <td *matCellDef="let element" class="mainTable__td"
117
- [ngClass]="['mainTable__td__text-secondary__td']" mat-cell>
118
- <span
119
- *ngIf="element[column.property] === null">{{ this.pageInfo.labelsSection + '.' + column.label + 'InActive' | translate }}</span>
120
- <span
121
- *ngIf="element[column.property] === false">{{ this.pageInfo.labelsSection + '.' + column.label + 'InActive' | translate }}</span>
122
- <span
123
- *ngIf="element[column.property] === true">{{ this.pageInfo.labelsSection + '.' + column.label + 'Active' | translate }}</span>
124
- </td>
125
- </ng-container>
126
- <ng-container *ngSwitchCase="'info'">
127
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['text-secondary']" mat-cell>
128
- <button mat-icon-button (click)="$event.stopPropagation();emitEvent(element)"> <mat-icon>info</mat-icon></button>
129
- </td>
130
- </ng-container>
131
- <!-- <ng-container *ngSwitchCase="'onOff'">-->
132
- <!-- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary__td']" mat-cell>-->
133
- <!-- <mat-icon *ngIf="!element[column.property]" class="mainTable__td__icon-darkorange">flag</mat-icon>-->
134
- <!-- <mat-icon class="mainTable__td__icon-red">flag</mat-icon>-->
135
- <!-- <mat-icon class="mainTable__td__icon-green">flag</mat-icon>-->
136
- <!-- </td>-->
137
- <!-- </ng-container>-->
138
- <ng-container *ngSwitchCase="'netAmount'">
139
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary__td']" mat-cell>
140
- <small><sup class="mainTable__td__currency">{{element[column.currency]}}</sup></small>
141
- <span class="mainTable__td__property">{{ extractFieldName(element, column.property) | currency:element[column.currency] :'' }}</span> of
142
- {{ extractFieldName(element, column.additionalProperty) | currency:element[column.currency] :'' }}
143
- </td>
144
- </ng-container>
145
- <ng-container *ngSwitchCase="'localDateTime'">
146
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary__td']"
147
- mat-cell>{{ extractFieldName(element, column.property) | date : extractFormat(column) }} </td>
148
- </ng-container>
149
- <ng-container *ngSwitchCase="'bigdecimal'">
150
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary__td']"
151
- mat-cell>
152
- <small><sup class="mainTable__td__currency">{{element[column.currency]}}</sup></small>
153
- {{ extractFieldName(element, column.property) | number : (column.digitInfo || '1.3-5') }}
154
- </td>
155
- </ng-container>
156
- <ng-container *ngSwitchCase="'listAction'" >
157
- <td *matCellDef="let element" class="mainTable__td" [ngClass]="['mainTable__td__text-secondary__td']" style="padding: 0!important;"
158
- mat-cell>
159
- <app-button-actions [buttonsAction]="false" [listAction]="listAction" (clickedButton)="actionListClicked($event,element)"></app-button-actions>
160
-
161
- </td>
162
- </ng-container>
163
- <ng-container *ngSwitchDefault>
164
- <ng-container *ngIf="column.translate; else noTranslate">
165
- <td *matCellDef="let element" class="mainTable__td" (click)="emitRoutePage(element)" [ngClass]="['mainTable__td__text-secondary__td']" mat-cell>
166
- {{extractFieldName(element, column.property) | translate}}
167
- </td>
168
- </ng-container>
169
- <ng-template #noTranslate>
170
- <td *matCellDef="let element" class="mainTable__td" (click)="emitRoutePage(element)" [ngClass]="['mainTable__td__text-secondary__td']" mat-cell
171
- [innerHtml]='extractFieldName(element, column.property)'></td>
172
- </ng-template>
173
- </ng-container>
174
- </ng-container>
175
- </ng-container>
176
- </ng-container>
177
- <ng-container *ngIf="hasGroups()" >
178
- <ng-container *ngFor="let groupName of this.groupNames">
179
- <ng-container matColumnDef="{{groupName}}">
180
- <th mat-header-cell class="extra-header" *matHeaderCellDef [attr.colspan]="groupSpans.get(groupName)">{{(isHumanMade(groupName) ? groupName : "") | translate}}</th>
181
- </ng-container>
182
- </ng-container>
183
- <tr mat-header-row *matHeaderRowDef="this.groupNames"></tr>
184
- </ng-container>
185
- <tr *matHeaderRowDef="visibleColumns" mat-header-row></tr>
186
- <tr
187
- (auxclick)="openNewTab(row)"
188
- (click)="$event.stopPropagation(); onSelectItem(row)"
189
- *matRowDef="let row; columns: visibleColumns"
190
- [ngClass]="{
191
- 'mainTable__highlight': selectedRowIndex == row.id ||
192
- (pageInfo.groupByProperty && pageInfo.groupByValue?.includes(row[pageInfo.groupByProperty])),
193
- 'mainTable__dark_highlight': isDarkHighlight(row)
194
- }"
195
- mat-row
196
- ></tr>
197
-
198
- </table>
199
- </div>
200
- <div fxLayout="row" *ngIf="noDataFound" class="dataNotFound">
201
- <div fxLayout="column" fxFlex="100" >
202
- <span class="dataNotFound__details">
203
- <mat-icon class="dataNotFound__details__icon">info</mat-icon>
204
- <span>{{'dataNotFound' | translate}}</span>
205
- </span>
206
- </div>
207
- </div>
208
- <div fxLayout="row" fxLayout.lt-md="column" fxLayoutAlign.lt-md="center center" fxLayoutAlign.gt-sm="center center" *ngIf="(dataSource.data?.length > 0 || customizedData) && !pageInfo.hidePagination" class="main-pagination">
209
- <ng-container *ngIf="enablePagination">
210
- <div fxLayout="column" fxFlex.lt-md="100">
211
- <app-paginator
212
- [currentPage]="pageIndex"
213
- [totalPages]="pagesCount"
214
- (pageChange)="onPageChange($event)"
215
- ></app-paginator>
216
- <!-- <pagination-controls-->
217
- <!-- [maxSize]="maxSize"-->
218
- <!-- [directionLinks]="directionLinks"-->
219
- <!-- [autoHide]="autoHide"-->
220
- <!-- [responsive]="responsive"-->
221
- <!-- [previousLabel]="labels['previousLabel']"-->
222
- <!-- [nextLabel]="labels['nextLabel']"-->
223
- <!-- [screenReaderPaginationLabel]="labels['screenReaderPaginationLabel']"-->
224
- <!-- [screenReaderPageLabel]="labels['screenReaderPageLabel']"-->
225
- <!-- [screenReaderCurrentLabel]="labels['screenReaderCurrentLabel']"-->
226
- <!-- (pageChange)="onPageChange($event)"-->
227
- <!-- >-->
228
- <!-- </pagination-controls>-->
229
-
230
- </div>
231
- </ng-container>
232
-
233
- <div fxLayout="column" fxFlex="100" class="countItem" fxHide.gt-xs>
234
- <span class="countItem__totalElement">{{ 'totalCountItem' | translate}} : {{this.totalElements}}</span>
235
- </div>
236
- <div fxLayout="column" fxFlex="2">
237
- </div>
238
-
239
- </div>
240
- </div>
241
- </div>
242
- </div>
1
+ <div class="flex-column baseTable">
2
+ <div class="flex-row flex-100" *ngIf="!pageInfo.hideTitle">
3
+ <div [class.flex-50]="pageInfo.draftSupported" [class.flex-100]="!pageInfo.draftSupported" class="flex-column align-start">
4
+ <app-title-bar
5
+ [pageTitle]="pageInfo.hideTitle ? '' : pageInfo.labelsSection+'.list_title'"
6
+ [titleMode]="''"
7
+ [newAction]="showAddNew()"
8
+ [showExtractButton]="!pageInfo.hideExtractButton"
9
+ [extraButton]="extraButton"
10
+ (newActionClicked)="onAddNewAction($event)"
11
+ (extractReport)="extractReport($event)"
12
+ [totalElements]="pageInfo.hideTitle ? undefined : totalElements">
13
+ </app-title-bar>
14
+ </div>
15
+ <div class="flex-50 flex-column align-end" *ngIf="pageInfo.draftSupported">
16
+ <mat-chip-listbox aria-label="Color selection" [multiple]="false">
17
+ <mat-chip-option [selected]="!this.isPending" [color]="'accent'" [value]="'COMPLETED'" (click)="switchViewMode(false)">
18
+ {{'finished' | translate}}
19
+ </mat-chip-option>
20
+ <mat-chip-option [selected]="this.isPending" [color]="'accent'" [value]="'PENDING'" (click)="switchViewMode(true)">
21
+ {{'todo' | translate}}
22
+ </mat-chip-option>
23
+ </mat-chip-listbox>
24
+ </div>
25
+ </div>
26
+
27
+ <div class="filter-row" *ngIf="!pageInfo.hideAdvancedFilter">
28
+ <app-filter-builder
29
+ *ngIf="!pageInfo.hideAdvancedFilter"
30
+ [pageInfo]="pageInfo"
31
+ [columns]="columns"
32
+ [filterFields]="filterFields"
33
+ (filterInformation)="doAdvancedSearch($event)"
34
+ (isEmpty)="resetData($event)">
35
+ </app-filter-builder>
36
+
37
+ <div class="button-group" >
38
+
39
+ <button *ngIf="!pageInfo.hideExtractButton"
40
+ mat-flat-button
41
+ [matMenuTriggerFor]="exportMenu"
42
+ color="primary"
43
+ class="btn-none-background-primary btn-export"
44
+ >
45
+ <div class="button-text">
46
+ <mat-icon>file_export</mat-icon>
47
+ <span>{{ 'export' | translate }}</span>
48
+ <mat-icon class="arrow-icon">arrow_drop_down</mat-icon>
49
+ </div>
50
+ </button>
51
+
52
+ <mat-menu #exportMenu="matMenu">
53
+ <button
54
+ mat-menu-item
55
+ *ngFor="let type of types"
56
+ (click)="extractReport(type)"
57
+ >
58
+ <span>{{ type | uppercase }}</span>
59
+ </button>
60
+ </mat-menu>
61
+
62
+ </div>
63
+ </div>
64
+
65
+
66
+ <div class="flex-row flex-100 baseTable__detailsColumn">
67
+ <div class="flex-100">
68
+ <div class="flex-row flex-100 mainTable">
69
+ <table [dataSource]="dataSource" class="flex-fill" mat-table matSort (matSortChange)="onSortAction($event)">
70
+ <ng-container *ngFor="let column of this.columns; let last=last">
71
+ <ng-container matColumnDef="{{column.property}}">
72
+ <ng-container *ngIf="column.enableSorting; else withoutSortingColumn">
73
+ <th *matHeaderCellDef class="mainTable__th" mat-header-cell mat-sort-header>
74
+ {{ labelKey(column) | translate }}
75
+ </th>
76
+ </ng-container>
77
+ <ng-template #withoutSortingColumn>
78
+ <th *matHeaderCellDef class="mainTable__th" mat-header-cell>{{ labelKey(column) | translate }}</th>
79
+ </ng-template>
80
+
81
+ <ng-container [ngSwitch]="column.type">
82
+ <ng-container *ngSwitchCase="'workflowStatus'">
83
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary" mat-cell>
84
+ <button mat-button class="wfStatus {{ getStatusDescription(element)}}" [attr.id]="'table-btn-wf-'+column.property+'-'+(element.id || element.key || '')">{{ getStatusDescription(element) }}</button>
85
+ </td>
86
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
87
+ <button mat-button class="wfStatus {{ getStatusDescription(element)}}" [attr.id]="'table-btn-wf2-'+column.property+'-'+(element.id || element.key || '')">{{ getStatusDescription(element) }}</button>
88
+ </td>
89
+ </ng-container>
90
+
91
+ <ng-container *ngSwitchCase="'hyper-text'">
92
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" (click)="hyperLinkClicked(column.property,element)" mat-cell>
93
+ <mat-label [ngClass]="{'hyper-link': shouldRenderAsHyperLink(element)}">
94
+ {{ extractFieldName(element, column.property) }}
95
+ </mat-label>
96
+ </td>
97
+ </ng-container>
98
+
99
+ <ng-container *ngSwitchCase="'button'">
100
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary" mat-cell>
101
+ <button *ngIf="shouldShowButton(element)" mat-button class="primary" (click)="$event.stopPropagation(); actionButtonClicked(column.property, element)" [attr.id]="'table-btn-action-'+column.property">
102
+ {{ labelKey(column) + '_title' | translate }}
103
+ </button>
104
+ </td>
105
+ </ng-container>
106
+
107
+ <ng-container *ngSwitchCase="'icon'">
108
+ <td *matCellDef="let element" class="mainTable__td" mat-cell>
109
+ <mat-icon [ngClass]="{
110
+ 'mainTable__td__icon-green': element[column.property] === 'pass',
111
+ 'mainTable__td__icon-orange': element[column.property] === 'warning',
112
+ 'mainTable__td__icon-red': element[column.property] === 'error'
113
+ }">
114
+ {{ getIcon(element[column.property]) }}
115
+ </mat-icon>
116
+ </td>
117
+ </ng-container>
118
+
119
+ <ng-container *ngSwitchCase="'checkbox'">
120
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary" mat-cell>
121
+ <mat-checkbox class="primary" [checked]="element[column.property]" (click)="$event.stopPropagation();actionCheckedClicked(column.property,element)"></mat-checkbox>
122
+ </td>
123
+ </ng-container>
124
+
125
+ <ng-container *ngSwitchCase="'stateType'">
126
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary" mat-cell>
127
+ <button mat-button class="stateType {{ element[column.property]}}" [attr.id]="'table-btn-state-'+column.property">{{ labelKeyByValue(column, element) | translate}}</button>
128
+ </td>
129
+ </ng-container>
130
+
131
+ <ng-container *ngSwitchCase="'date'">
132
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
133
+ {{ extractFieldName(element, column.property) | date:'yyyy-MM-dd' }}
134
+ </td>
135
+ </ng-container>
136
+
137
+ <ng-container *ngSwitchCase="'croppedText'">
138
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
139
+ {{ getCroppedText(element[column.property], element[column.width]) }}
140
+ </td>
141
+ </ng-container>
142
+
143
+ <ng-container *ngSwitchCase="'download'">
144
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" style="padding: 0;margin: 0;text-align: center;" mat-cell>
145
+ <mat-icon class="mainTable__td__icon-blue">system_update_alt</mat-icon>
146
+ </td>
147
+ </ng-container>
148
+
149
+ <ng-container *ngSwitchCase="'onOff'">
150
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
151
+ <mat-icon *ngIf="element[column.property] === null" class="mainTable__td__icon-darkorange">flag</mat-icon>
152
+ <mat-icon *ngIf="element[column.property] === false" class="mainTable__td__icon-red">flag</mat-icon>
153
+ <mat-icon *ngIf="element[column.property] === true" class="mainTable__td__icon-green">flag</mat-icon>
154
+ </td>
155
+ </ng-container>
156
+
157
+ <ng-container *ngSwitchCase="'status'">
158
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
159
+ <span *ngIf="element[column.property] === null || element[column.property] === false">
160
+ {{ pageInfo.labelsSection + '.' + column.label + 'InActive' | translate }}
161
+ </span>
162
+ <span *ngIf="element[column.property] === true">
163
+ {{ pageInfo.labelsSection + '.' + column.label + 'Active' | translate }}
164
+ </span>
165
+ </td>
166
+ </ng-container>
167
+
168
+ <ng-container *ngSwitchCase="'info'">
169
+ <td *matCellDef="let element" class="mainTable__td text-secondary" mat-cell>
170
+ <button mat-icon-button (click)="$event.stopPropagation();emitEvent(element)" [attr.id]="'table-btn-info-'+element.id">
171
+ <mat-icon>info</mat-icon>
172
+ </button>
173
+ </td>
174
+ </ng-container>
175
+
176
+ <ng-container *ngSwitchCase="'netAmount'">
177
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
178
+ <small><sup class="mainTable__td__currency">{{element[column.currency]}}</sup></small>
179
+ <span class="mainTable__td__property">{{ extractFieldName(element, column.property) | currency:element[column.currency] :'' }}</span> of
180
+ {{ extractFieldName(element, column.additionalProperty) | currency:element[column.currency] :'' }}
181
+ </td>
182
+ </ng-container>
183
+
184
+ <ng-container *ngSwitchCase="'localDateTime'">
185
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
186
+ {{ extractFieldName(element, column.property) | date : extractFormat(column) }}
187
+ </td>
188
+ </ng-container>
189
+
190
+ <ng-container *ngSwitchCase="'bigdecimal'">
191
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" mat-cell>
192
+ <small><sup class="mainTable__td__currency">{{element[column.currency]}}</sup></small>
193
+ {{ extractFieldName(element, column.property) | number : (column.digitInfo || '1.3-5') }}
194
+ </td>
195
+ </ng-container>
196
+
197
+ <ng-container *ngSwitchCase="'listAction'">
198
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" style="padding: 0!important;" mat-cell>
199
+ <app-button-actions
200
+ [buttonsAction]="column.viewType === 'buttonsAction'"
201
+ [listAction]="listAction"
202
+ [actions]="listAction"
203
+ (clickedButton)="actionListClicked($event,element)">
204
+ </app-button-actions>
205
+ </td>
206
+ </ng-container>
207
+
208
+ <ng-container *ngSwitchDefault>
209
+ <ng-container *ngIf="column.translate; else noTranslate">
210
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" (click)="emitRoutePage(element)" mat-cell>
211
+ {{ extractFieldName(element, column.property) | translate }}
212
+ </td>
213
+ </ng-container>
214
+ <ng-template #noTranslate>
215
+ <td *matCellDef="let element" class="mainTable__td mainTable__td__text-secondary__td" (click)="emitRoutePage(element)" mat-cell [innerHtml]='extractFieldName(element, column.property)'></td>
216
+ </ng-template>
217
+ </ng-container>
218
+ </ng-container>
219
+ </ng-container>
220
+ </ng-container>
221
+
222
+ <ng-container *ngIf="hasGroups()">
223
+ <ng-container *ngFor="let groupName of this.groupNames">
224
+ <ng-container matColumnDef="{{groupName}}">
225
+ <th mat-header-cell class="extra-header" *matHeaderCellDef [attr.colspan]="groupSpans.get(groupName)">
226
+ {{ (isHumanMade(groupName) ? groupName : "") | translate }}
227
+ </th>
228
+ </ng-container>
229
+ </ng-container>
230
+ <tr mat-header-row *matHeaderRowDef="this.groupNames"></tr>
231
+ </ng-container>
232
+
233
+ <tr *matHeaderRowDef="visibleColumns" mat-header-row></tr>
234
+ <tr (auxclick)="openNewTab(row)" (click)="$event.stopPropagation(); onSelectItem(row)" *matRowDef="let row; columns: visibleColumns"
235
+ [attr.id]="'table-row-' + (row?.id || row?.key || '')"
236
+ [ngClass]="{
237
+ 'mainTable__highlight': selectedRowIndex == row.id || (pageInfo.groupByProperty && pageInfo.groupByValue?.includes(row[pageInfo.groupByProperty])),
238
+ 'mainTable__dark_highlight': isDarkHighlight(row)
239
+ }"
240
+ mat-row>
241
+ </tr>
242
+ </table>
243
+ </div>
244
+
245
+ <div *ngIf="noDataFound" class="dataNotFound flex-column">
246
+ <mat-icon class="dataNotFound__icon">{{ noDataFoundIcon }}</mat-icon>
247
+ <span class="dataNotFound__title">{{ noDataFoundTitle | translate}}</span>
248
+ <span class="dataNotFound__subtitle">{{ noDataFoundSubtitle | translate}}</span>
249
+ </div>
250
+
251
+
252
+ <div *ngIf="(dataSource.data?.length > 0 || customizedData) && !pageInfo.hidePagination" class="main-pagination flex-row">
253
+ <ng-container *ngIf="enablePagination">
254
+ <div class="flex-column flex-100">
255
+ <app-paginator
256
+ [currentPage]="pageIndex"
257
+ [totalItems]="totalElements"
258
+ [pageSize]="pageSize"
259
+ [pageSizeOptions]="[5, 10, 25, 50]"
260
+ (pageChange)="onPageChange($event)"
261
+ (pageSizeChange)="onPageSizeChange($event)">
262
+ </app-paginator>
263
+ </div>
264
+ </ng-container>
265
+ </div>
266
+ </div>
267
+ </div>
268
+ </div>