@unifylib/ui-lib 1.0.3 → 1.0.65

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 (265) hide show
  1. package/esm2022/iq-ui-lib.mjs +5 -0
  2. package/esm2022/lib/base-model/SearchStrConfig.mjs +11 -0
  3. package/esm2022/lib/base-model/api-response.mjs +2 -0
  4. package/esm2022/lib/base-model/audit-log-entry.mjs +3 -0
  5. package/esm2022/lib/base-model/button-action-settings.mjs +17 -0
  6. package/esm2022/lib/base-model/column-def.model.mjs +28 -0
  7. package/esm2022/lib/base-model/do-action-request.mjs +8 -0
  8. package/esm2022/lib/base-model/field-action.mjs +6 -0
  9. package/esm2022/lib/base-model/field-filter.model.mjs +3 -0
  10. package/esm2022/lib/base-model/field-info.mjs +64 -0
  11. package/esm2022/lib/base-model/field-predicate.model.mjs +10 -0
  12. package/esm2022/lib/base-model/filter-request.mjs +13 -0
  13. package/esm2022/lib/base-model/filter.model.mjs +25 -0
  14. package/esm2022/lib/base-model/get-items-list.mjs +10 -0
  15. package/esm2022/lib/base-model/index.mjs +13 -0
  16. package/esm2022/lib/base-model/items-total.model.mjs +8 -0
  17. package/esm2022/lib/base-model/line-item.model.mjs +12 -0
  18. package/esm2022/lib/base-model/lookupItem.mjs +16 -0
  19. package/esm2022/lib/base-model/page-info.mjs +17 -0
  20. package/esm2022/lib/base-model/permission-matrix.model.mjs +2 -0
  21. package/esm2022/lib/base-model/report-request.model.mjs +17 -0
  22. package/esm2022/lib/base-model/response-envelop.model.mjs +10 -0
  23. package/esm2022/lib/base-model/snack-message.model.mjs +11 -0
  24. package/esm2022/lib/base-model/table-column.interface.mjs +2 -0
  25. package/esm2022/lib/base-model/table-page-user-action.interface.mjs +21 -0
  26. package/esm2022/lib/base-model/workflow/workflow-steps.model.mjs +9 -0
  27. package/esm2022/lib/base-model/workflow/workflow.model.mjs +42 -0
  28. package/esm2022/lib/components/action-comment/action-comment.component.mjs +111 -0
  29. package/esm2022/lib/components/action-confirmation/action-confirmation.component.mjs +68 -0
  30. package/esm2022/lib/components/activity-report-form/activity-report-form.component.mjs +486 -0
  31. package/esm2022/lib/components/advanced-filter/field-filter/field-filter.component.mjs +44 -0
  32. package/esm2022/lib/components/advanced-filter/filter-builder/filter-builder.component.mjs +323 -0
  33. package/esm2022/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.mjs +70 -0
  34. package/esm2022/lib/components/audit-log-list/audit-log.component.mjs +97 -0
  35. package/esm2022/lib/components/auto-complete/auto-complete.component.mjs +300 -0
  36. package/esm2022/lib/components/base-form/base-form.component.mjs +284 -0
  37. package/esm2022/lib/components/base-form-canvas/MaxDigitsDirective.mjs +29 -0
  38. package/esm2022/lib/components/base-form-canvas/NumbersOnlyDirective.mjs +132 -0
  39. package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +789 -0
  40. package/esm2022/lib/components/base-input-dialog/base-input-dialog.component.mjs +72 -0
  41. package/esm2022/lib/components/base-table/base-table.component.mjs +708 -0
  42. package/esm2022/lib/components/button-actions/button-actions.component.mjs +101 -0
  43. package/esm2022/lib/components/editable-base-table/editable-base-table.component.mjs +507 -0
  44. package/esm2022/lib/components/equation-builder/equation-builder.component.mjs +117 -0
  45. package/esm2022/lib/components/item-line-editor/item-line-editor.component.mjs +322 -0
  46. package/esm2022/lib/components/multi-auto-complete/multi-auto-complete.component.mjs +294 -0
  47. package/esm2022/lib/components/paginator/paginator.component.mjs +181 -0
  48. package/esm2022/lib/components/permission-matrix/permission-matrix.component.mjs +129 -0
  49. package/esm2022/lib/components/report-details-dialog/report-details-dialog.component.mjs +102 -0
  50. package/esm2022/lib/components/report-form/report-form.component.mjs +485 -0
  51. package/esm2022/lib/components/search-bar/search-bar.component.mjs +63 -0
  52. package/esm2022/lib/components/section-form-canvas/section-form-canvas.component.mjs +99 -0
  53. package/esm2022/lib/components/shared/action-button/action-button.component.mjs +59 -0
  54. package/esm2022/lib/components/shared/action-card/action-card.component.mjs +93 -0
  55. package/esm2022/lib/components/shared/attachment-uploader/attachment-uploader.component.mjs +74 -0
  56. package/esm2022/lib/components/shared-list/shared-list.component.mjs +47 -0
  57. package/esm2022/lib/components/snackbar-static/snackbar-static.component.mjs +43 -0
  58. package/esm2022/lib/components/title-bar/title-bar.component.mjs +185 -0
  59. package/esm2022/lib/services/backend-service.mjs +241 -0
  60. package/esm2022/lib/services/index.mjs +4 -0
  61. package/esm2022/lib/services/top-panel.mjs +22 -0
  62. package/esm2022/lib/services/trigger-form.service.mjs +17 -0
  63. package/esm2022/lib/utils/base-utils.mjs +101 -0
  64. package/esm2022/lib/validators/date-range-validator.mjs +27 -0
  65. package/esm2022/lib/validators/index.mjs +4 -0
  66. package/esm2022/lib/validators/match-list.validator.mjs +9 -0
  67. package/esm2022/lib/validators/multi-email-validator.mjs +13 -0
  68. package/esm2022/public-api.mjs +30 -0
  69. package/esm2022/unifylib-ui-lib.mjs +5 -0
  70. package/fesm2022/iq-ui-lib.mjs +6713 -0
  71. package/fesm2022/iq-ui-lib.mjs.map +1 -0
  72. package/fesm2022/unifylib-ui-lib.mjs +6713 -0
  73. package/fesm2022/unifylib-ui-lib.mjs.map +1 -0
  74. package/index.d.ts +5 -0
  75. package/lib/base-model/SearchStrConfig.d.ts +8 -0
  76. package/{src/lib/base-model/api-response.ts → lib/base-model/api-response.d.ts} +5 -7
  77. package/lib/base-model/audit-log-entry.d.ts +7 -0
  78. package/lib/base-model/button-action-settings.d.ts +16 -0
  79. package/lib/base-model/column-def.model.d.ts +11 -0
  80. package/lib/base-model/do-action-request.d.ts +10 -0
  81. package/lib/base-model/field-action.d.ts +6 -0
  82. package/lib/base-model/field-filter.model.d.ts +7 -0
  83. package/lib/base-model/field-info.d.ts +59 -0
  84. package/lib/base-model/field-predicate.model.d.ts +7 -0
  85. package/lib/base-model/filter-request.d.ts +15 -0
  86. package/lib/base-model/filter.model.d.ts +22 -0
  87. package/lib/base-model/get-items-list.d.ts +21 -0
  88. package/lib/base-model/index.d.ts +12 -0
  89. package/lib/base-model/items-total.model.d.ts +6 -0
  90. package/lib/base-model/line-item.model.d.ts +10 -0
  91. package/lib/base-model/lookupItem.d.ts +13 -0
  92. package/{src/lib/base-model/page-info.ts → lib/base-model/page-info.d.ts} +26 -24
  93. package/lib/base-model/permission-matrix.model.d.ts +18 -0
  94. package/lib/base-model/report-request.model.d.ts +18 -0
  95. package/lib/base-model/response-envelop.model.d.ts +8 -0
  96. package/lib/base-model/snack-message.model.d.ts +7 -0
  97. package/lib/base-model/table-column.interface.d.ts +31 -0
  98. package/lib/base-model/table-page-user-action.interface.d.ts +14 -0
  99. package/lib/base-model/workflow/workflow-steps.model.d.ts +7 -0
  100. package/lib/base-model/workflow/workflow.model.d.ts +13 -0
  101. package/lib/components/action-comment/action-comment.component.d.ts +35 -0
  102. package/lib/components/action-confirmation/action-confirmation.component.d.ts +27 -0
  103. package/lib/components/activity-report-form/activity-report-form.component.d.ts +93 -0
  104. package/lib/components/advanced-filter/field-filter/field-filter.component.d.ts +21 -0
  105. package/lib/components/advanced-filter/filter-builder/filter-builder.component.d.ts +51 -0
  106. package/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.d.ts +25 -0
  107. package/lib/components/audit-log-list/audit-log.component.d.ts +29 -0
  108. package/lib/components/auto-complete/auto-complete.component.d.ts +52 -0
  109. package/lib/components/base-form/base-form.component.d.ts +59 -0
  110. package/lib/components/base-form-canvas/MaxDigitsDirective.d.ts +7 -0
  111. package/lib/components/base-form-canvas/NumbersOnlyDirective.d.ts +23 -0
  112. package/lib/components/base-form-canvas/base-form-canvas.component.d.ts +142 -0
  113. package/lib/components/base-input-dialog/base-input-dialog.component.d.ts +23 -0
  114. package/lib/components/base-table/base-table.component.d.ts +172 -0
  115. package/lib/components/button-actions/button-actions.component.d.ts +19 -0
  116. package/lib/components/editable-base-table/editable-base-table.component.d.ts +109 -0
  117. package/lib/components/equation-builder/equation-builder.component.d.ts +23 -0
  118. package/lib/components/item-line-editor/item-line-editor.component.d.ts +66 -0
  119. package/lib/components/multi-auto-complete/multi-auto-complete.component.d.ts +53 -0
  120. package/lib/components/paginator/paginator.component.d.ts +41 -0
  121. package/lib/components/permission-matrix/permission-matrix.component.d.ts +26 -0
  122. package/lib/components/report-details-dialog/report-details-dialog.component.d.ts +34 -0
  123. package/lib/components/report-form/report-form.component.d.ts +92 -0
  124. package/lib/components/search-bar/search-bar.component.d.ts +29 -0
  125. package/lib/components/section-form-canvas/section-form-canvas.component.d.ts +32 -0
  126. package/lib/components/shared/action-button/action-button.component.d.ts +17 -0
  127. package/lib/components/shared/action-card/action-card.component.d.ts +37 -0
  128. package/lib/components/shared/attachment-uploader/attachment-uploader.component.d.ts +18 -0
  129. package/lib/components/shared-list/shared-list.component.d.ts +21 -0
  130. package/lib/components/snackbar-static/snackbar-static.component.d.ts +15 -0
  131. package/lib/components/title-bar/title-bar.component.d.ts +54 -0
  132. package/lib/services/backend-service.d.ts +59 -0
  133. package/{src/lib/services/index.ts → lib/services/index.d.ts} +1 -1
  134. package/lib/services/top-panel.d.ts +8 -0
  135. package/lib/services/trigger-form.service.d.ts +7 -0
  136. package/lib/utils/base-utils.d.ts +13 -0
  137. package/lib/validators/date-range-validator.d.ts +2 -0
  138. package/lib/validators/match-list.validator.d.ts +4 -0
  139. package/lib/validators/multi-email-validator.d.ts +6 -0
  140. package/package.json +16 -3
  141. package/public-api.d.ts +26 -0
  142. package/ng-package.json +0 -7
  143. package/src/lib/base-model/SearchStrConfig.ts +0 -12
  144. package/src/lib/base-model/audit-log-entry.ts +0 -7
  145. package/src/lib/base-model/button-action-settings.ts +0 -25
  146. package/src/lib/base-model/column-def.model.ts +0 -34
  147. package/src/lib/base-model/do-action-request.ts +0 -11
  148. package/src/lib/base-model/field-action.ts +0 -7
  149. package/src/lib/base-model/field-filter.model.ts +0 -14
  150. package/src/lib/base-model/field-info.ts +0 -98
  151. package/src/lib/base-model/field-predicate.model.ts +0 -7
  152. package/src/lib/base-model/filter-request.ts +0 -27
  153. package/src/lib/base-model/filter.model.ts +0 -49
  154. package/src/lib/base-model/get-items-list.ts +0 -24
  155. package/src/lib/base-model/index.ts +0 -11
  156. package/src/lib/base-model/lookupItem.ts +0 -21
  157. package/src/lib/base-model/null-snackmessage.ts +0 -9
  158. package/src/lib/base-model/report-request.model.ts +0 -33
  159. package/src/lib/base-model/response-envelop.model.ts +0 -15
  160. package/src/lib/base-model/snack-message.model.ts +0 -14
  161. package/src/lib/base-model/snackmessage-interface.ts +0 -7
  162. package/src/lib/base-model/table-column.interface.ts +0 -29
  163. package/src/lib/base-model/table-page-user-action.interface.ts +0 -33
  164. package/src/lib/base-model/workflow/workflow-steps.model.ts +0 -9
  165. package/src/lib/base-model/workflow/workflow.model.ts +0 -52
  166. package/src/lib/components/action-confirmation/action-confirmation.component.css +0 -34
  167. package/src/lib/components/action-confirmation/action-confirmation.component.html +0 -18
  168. package/src/lib/components/action-confirmation/action-confirmation.component.spec.ts +0 -23
  169. package/src/lib/components/action-confirmation/action-confirmation.component.ts +0 -58
  170. package/src/lib/components/activity-report-form/activity-report-form.component.html +0 -109
  171. package/src/lib/components/activity-report-form/activity-report-form.component.scss +0 -0
  172. package/src/lib/components/activity-report-form/activity-report-form.component.spec.ts +0 -25
  173. package/src/lib/components/activity-report-form/activity-report-form.component.ts +0 -605
  174. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.css +0 -51
  175. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.html +0 -23
  176. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.spec.ts +0 -23
  177. package/src/lib/components/audit-log-details-dialog/audit-log-details-dialog.component.ts +0 -69
  178. package/src/lib/components/audit-log-list/audit-log.component.html +0 -23
  179. package/src/lib/components/audit-log-list/audit-log.component.scss +0 -0
  180. package/src/lib/components/audit-log-list/audit-log.component.spec.ts +0 -25
  181. package/src/lib/components/audit-log-list/audit-log.component.ts +0 -116
  182. package/src/lib/components/auto-complete/auto-complete.component.css +0 -14
  183. package/src/lib/components/auto-complete/auto-complete.component.html +0 -29
  184. package/src/lib/components/auto-complete/auto-complete.component.spec.ts +0 -23
  185. package/src/lib/components/auto-complete/auto-complete.component.ts +0 -330
  186. package/src/lib/components/base-form/base-form.component.html +0 -58
  187. package/src/lib/components/base-form/base-form.component.scss +0 -0
  188. package/src/lib/components/base-form/base-form.component.spec.ts +0 -25
  189. package/src/lib/components/base-form/base-form.component.ts +0 -305
  190. package/src/lib/components/base-form-canvas/base-form-canvas.component.css +0 -22
  191. package/src/lib/components/base-form-canvas/base-form-canvas.component.html +0 -1006
  192. package/src/lib/components/base-form-canvas/base-form-canvas.component.spec.ts +0 -23
  193. package/src/lib/components/base-form-canvas/base-form-canvas.component.ts +0 -573
  194. package/src/lib/components/base-input-dialog/base-input-dialog.component.css +0 -0
  195. package/src/lib/components/base-input-dialog/base-input-dialog.component.html +0 -42
  196. package/src/lib/components/base-input-dialog/base-input-dialog.component.spec.ts +0 -23
  197. package/src/lib/components/base-input-dialog/base-input-dialog.component.ts +0 -78
  198. package/src/lib/components/base-table/base-table.component.html +0 -242
  199. package/src/lib/components/base-table/base-table.component.scss +0 -31
  200. package/src/lib/components/base-table/base-table.component.spec.ts +0 -25
  201. package/src/lib/components/base-table/base-table.component.ts +0 -568
  202. package/src/lib/components/button-actions/button-actions.component.html +0 -28
  203. package/src/lib/components/button-actions/button-actions.component.scss +0 -6
  204. package/src/lib/components/button-actions/button-actions.component.spec.ts +0 -23
  205. package/src/lib/components/button-actions/button-actions.component.ts +0 -72
  206. package/src/lib/components/editable-base-table/editable-base-table.component.html +0 -372
  207. package/src/lib/components/editable-base-table/editable-base-table.component.scss +0 -44
  208. package/src/lib/components/editable-base-table/editable-base-table.component.spec.ts +0 -25
  209. package/src/lib/components/editable-base-table/editable-base-table.component.ts +0 -570
  210. package/src/lib/components/equation-builder/equation-builder.component.css +0 -0
  211. package/src/lib/components/equation-builder/equation-builder.component.html +0 -31
  212. package/src/lib/components/equation-builder/equation-builder.component.spec.ts +0 -23
  213. package/src/lib/components/equation-builder/equation-builder.component.ts +0 -121
  214. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.css +0 -11
  215. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.html +0 -38
  216. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.spec.ts +0 -23
  217. package/src/lib/components/multi-auto-complete/multi-auto-complete.component.ts +0 -317
  218. package/src/lib/components/paginator/paginator.component.css +0 -25
  219. package/src/lib/components/paginator/paginator.component.html +0 -34
  220. package/src/lib/components/paginator/paginator.component.ts +0 -94
  221. package/src/lib/components/rejection-comment/action-comment.component.css +0 -33
  222. package/src/lib/components/rejection-comment/action-comment.component.html +0 -46
  223. package/src/lib/components/rejection-comment/action-comment.component.spec.ts +0 -23
  224. package/src/lib/components/rejection-comment/action-comment.component.ts +0 -86
  225. package/src/lib/components/report-details-dialog/report-details-dialog.component.css +0 -17
  226. package/src/lib/components/report-details-dialog/report-details-dialog.component.html +0 -16
  227. package/src/lib/components/report-details-dialog/report-details-dialog.component.spec.ts +0 -23
  228. package/src/lib/components/report-details-dialog/report-details-dialog.component.ts +0 -113
  229. package/src/lib/components/report-form/report-form.component.html +0 -94
  230. package/src/lib/components/report-form/report-form.component.scss +0 -0
  231. package/src/lib/components/report-form/report-form.component.spec.ts +0 -25
  232. package/src/lib/components/report-form/report-form.component.ts +0 -588
  233. package/src/lib/components/search-bar/search-bar.component.html +0 -62
  234. package/src/lib/components/search-bar/search-bar.component.scss +0 -8
  235. package/src/lib/components/search-bar/search-bar.component.spec.ts +0 -25
  236. package/src/lib/components/search-bar/search-bar.component.ts +0 -70
  237. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.css +0 -54
  238. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.html +0 -22
  239. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.spec.ts +0 -23
  240. package/src/lib/components/shared/attachment-uploader/attachment-uploader.component.ts +0 -45
  241. package/src/lib/components/shared-list/shared-list.component.css +0 -0
  242. package/src/lib/components/shared-list/shared-list.component.html +0 -17
  243. package/src/lib/components/shared-list/shared-list.component.spec.ts +0 -23
  244. package/src/lib/components/shared-list/shared-list.component.ts +0 -53
  245. package/src/lib/components/title-bar/title-bar.component.css +0 -0
  246. package/src/lib/components/title-bar/title-bar.component.css.map +0 -1
  247. package/src/lib/components/title-bar/title-bar.component.html +0 -31
  248. package/src/lib/components/title-bar/title-bar.component.scss +0 -23
  249. package/src/lib/components/title-bar/title-bar.component.spec.ts +0 -23
  250. package/src/lib/components/title-bar/title-bar.component.ts +0 -119
  251. package/src/lib/services/backend-service.ts +0 -286
  252. package/src/lib/services/top-panel.ts +0 -17
  253. package/src/lib/services/trigger-form.service.ts +0 -11
  254. package/src/lib/share-module/shared-module.ts +0 -10
  255. package/src/lib/styles/invoiceq-theme.scss +0 -252
  256. package/src/lib/styles/styles.scss +0 -1723
  257. package/src/lib/utils/base-utils.ts +0 -102
  258. package/src/lib/validators/date-range-validator.ts +0 -31
  259. package/src/lib/validators/match-list.validator.ts +0 -10
  260. package/src/lib/validators/multi-email-validator.ts +0 -15
  261. package/src/public-api.ts +0 -21
  262. package/tsconfig.lib.json +0 -15
  263. package/tsconfig.lib.prod.json +0 -11
  264. package/tsconfig.spec.json +0 -15
  265. /package/{src/lib/validators/index.ts → lib/validators/index.d.ts} +0 -0
@@ -0,0 +1,74 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { MatIcon } from "@angular/material/icon";
3
+ import { TranslateModule } from "@ngx-translate/core";
4
+ import { MatButton, MatIconButton } from "@angular/material/button";
5
+ import { NgIf } from "@angular/common";
6
+ import { MatTooltip } from "@angular/material/tooltip";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngx-translate/core";
9
+ export class AttachmentUploaderComponent {
10
+ constructor() {
11
+ this.fileSelected = new EventEmitter();
12
+ this.selectedFile = null;
13
+ this.isDragOver = false;
14
+ }
15
+ triggerAttachmentUpload() {
16
+ this.fileUpload.nativeElement.click();
17
+ }
18
+ uploadFileToServer() {
19
+ const file = this.fileUpload.nativeElement.files?.[0];
20
+ if (file) {
21
+ this.selectedFile = file;
22
+ this.fileSelected.emit(file);
23
+ }
24
+ }
25
+ clearFile() {
26
+ this.selectedFile = null;
27
+ this.fileUpload.nativeElement.value = '';
28
+ this.fileSelected.emit(null);
29
+ }
30
+ onDragOver(event) {
31
+ event.preventDefault();
32
+ event.stopPropagation();
33
+ this.isDragOver = true;
34
+ }
35
+ onDragLeave(event) {
36
+ event.preventDefault();
37
+ event.stopPropagation();
38
+ this.isDragOver = false;
39
+ }
40
+ onDrop(event) {
41
+ event.preventDefault();
42
+ event.stopPropagation();
43
+ this.isDragOver = false;
44
+ const files = event.dataTransfer?.files;
45
+ if (files && files.length > 0) {
46
+ const file = files[0];
47
+ this.selectedFile = file;
48
+ this.fileSelected.emit(file);
49
+ }
50
+ }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AttachmentUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AttachmentUploaderComponent, isStandalone: true, selector: "app-attachment-uploader", inputs: { acceptedTypes: "acceptedTypes", ariaDescribedBy: "ariaDescribedBy" }, outputs: { fileSelected: "fileSelected" }, viewQueries: [{ propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: "<div class=\"attachment-uploader\"\r\n [class.drag-over]=\"isDragOver\"\r\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <div class=\"upload-content\">\r\n <div class=\"upload-icon\">\r\n <mat-icon>upload_file</mat-icon>\r\n </div>\r\n\r\n <p class=\"main-text\">{{ 'attachmentUploader.dragAndDrop' | translate }}</p>\r\n\r\n <p class=\"info-text\">{{ 'attachmentUploader.fileInfo' | translate }}</p>\r\n\r\n <button mat-stroked-button\r\n type=\"button\"\r\n class=\"browse-button\"\r\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\r\n (click)=\"triggerAttachmentUpload()\">\r\n {{ 'attachmentUploader.browseFiles' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"selectedFile\" class=\"selected-file\">\r\n <div class=\"file-info\">\r\n <mat-icon class=\"file-icon\">description</mat-icon>\r\n <span class=\"file-name\">{{ selectedFile.name }}</span>\r\n </div>\r\n <button mat-icon-button\r\n type=\"button\"\r\n class=\"clear-button\"\r\n (click)=\"clearFile()\"\r\n [attr.aria-label]=\"'attachmentUploader.removeFile' | translate\"\r\n matTooltip=\"{{ 'attachmentUploader.removeFile' | translate }}\">\r\n <mat-icon aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <input #fileUpload\r\n type=\"file\"\r\n class=\"hidden-input\"\r\n [accept]=\"acceptedTypes\"\r\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\r\n (change)=\"uploadFileToServer()\" />\r\n</div>\r\n", styles: [".attachment-uploader{background-color:var(--background-color);border:1px dashed #b7b7b7;border-radius:8px;position:relative;width:100%;transition:all .3s ease;cursor:pointer}.attachment-uploader.drag-over{border-color:var(--primary-color-3nd);background-color:var(--selected-hover)}.upload-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;min-height:200px}.upload-icon{display:flex;align-items:center;justify-content:center;margin-bottom:8px}.upload-icon mat-icon{font-size:48px;width:48px;height:48px;color:#888}.main-text{font-family:Lusail,sans-serif;font-size:16px;font-weight:500;line-height:1.2;color:#000;margin:0;text-align:center}.info-text{font-family:Lusail,sans-serif;font-size:14px;font-weight:300;line-height:1.2;color:#888;margin:0;text-align:center}.browse-button{margin-top:8px;border:1px solid var(--primary-color-3nd);border-radius:8px;background-color:var(--background-color);color:var(--primary-color-3nd);font-family:Lusail,sans-serif;font-size:16px;font-weight:500;padding:8px 16px;transition:all .2s ease}.browse-button:hover{background-color:var(--selected-hover)}.selected-file{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--background-color);border-top:1px solid #e0e0e0;border-radius:0 0 8px 8px}.file-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.file-icon{color:#888;font-size:24px;width:24px;height:24px;flex-shrink:0}.file-name{font-family:Lusail,sans-serif;font-size:14px;font-weight:400;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clear-button{background-color:transparent;border:none;color:#d32f2f;transition:color .2s ease;padding:4px;flex-shrink:0}.clear-button:hover{color:#b71c1c;background-color:transparent}.clear-button mat-icon{font-size:20px;width:20px;height:20px}.hidden-input{display:none}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AttachmentUploaderComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'app-attachment-uploader', standalone: true, imports: [
57
+ MatIcon,
58
+ TranslateModule,
59
+ MatButton,
60
+ NgIf,
61
+ MatTooltip,
62
+ MatIconButton,
63
+ ], template: "<div class=\"attachment-uploader\"\r\n [class.drag-over]=\"isDragOver\"\r\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <div class=\"upload-content\">\r\n <div class=\"upload-icon\">\r\n <mat-icon>upload_file</mat-icon>\r\n </div>\r\n\r\n <p class=\"main-text\">{{ 'attachmentUploader.dragAndDrop' | translate }}</p>\r\n\r\n <p class=\"info-text\">{{ 'attachmentUploader.fileInfo' | translate }}</p>\r\n\r\n <button mat-stroked-button\r\n type=\"button\"\r\n class=\"browse-button\"\r\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\r\n (click)=\"triggerAttachmentUpload()\">\r\n {{ 'attachmentUploader.browseFiles' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"selectedFile\" class=\"selected-file\">\r\n <div class=\"file-info\">\r\n <mat-icon class=\"file-icon\">description</mat-icon>\r\n <span class=\"file-name\">{{ selectedFile.name }}</span>\r\n </div>\r\n <button mat-icon-button\r\n type=\"button\"\r\n class=\"clear-button\"\r\n (click)=\"clearFile()\"\r\n [attr.aria-label]=\"'attachmentUploader.removeFile' | translate\"\r\n matTooltip=\"{{ 'attachmentUploader.removeFile' | translate }}\">\r\n <mat-icon aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <input #fileUpload\r\n type=\"file\"\r\n class=\"hidden-input\"\r\n [accept]=\"acceptedTypes\"\r\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\r\n (change)=\"uploadFileToServer()\" />\r\n</div>\r\n", styles: [".attachment-uploader{background-color:var(--background-color);border:1px dashed #b7b7b7;border-radius:8px;position:relative;width:100%;transition:all .3s ease;cursor:pointer}.attachment-uploader.drag-over{border-color:var(--primary-color-3nd);background-color:var(--selected-hover)}.upload-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;min-height:200px}.upload-icon{display:flex;align-items:center;justify-content:center;margin-bottom:8px}.upload-icon mat-icon{font-size:48px;width:48px;height:48px;color:#888}.main-text{font-family:Lusail,sans-serif;font-size:16px;font-weight:500;line-height:1.2;color:#000;margin:0;text-align:center}.info-text{font-family:Lusail,sans-serif;font-size:14px;font-weight:300;line-height:1.2;color:#888;margin:0;text-align:center}.browse-button{margin-top:8px;border:1px solid var(--primary-color-3nd);border-radius:8px;background-color:var(--background-color);color:var(--primary-color-3nd);font-family:Lusail,sans-serif;font-size:16px;font-weight:500;padding:8px 16px;transition:all .2s ease}.browse-button:hover{background-color:var(--selected-hover)}.selected-file{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--background-color);border-top:1px solid #e0e0e0;border-radius:0 0 8px 8px}.file-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.file-icon{color:#888;font-size:24px;width:24px;height:24px;flex-shrink:0}.file-name{font-family:Lusail,sans-serif;font-size:14px;font-weight:400;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clear-button{background-color:transparent;border:none;color:#d32f2f;transition:color .2s ease;padding:4px;flex-shrink:0}.clear-button:hover{color:#b71c1c;background-color:transparent}.clear-button mat-icon{font-size:20px;width:20px;height:20px}.hidden-input{display:none}\n"] }]
64
+ }], propDecorators: { fileUpload: [{
65
+ type: ViewChild,
66
+ args: ['fileUpload']
67
+ }], fileSelected: [{
68
+ type: Output
69
+ }], acceptedTypes: [{
70
+ type: Input
71
+ }], ariaDescribedBy: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC9hdHRhY2htZW50LXVwbG9hZGVyL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQvYXR0YWNobWVudC11cGxvYWRlci9hdHRhY2htZW50LXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7QUFnQnJELE1BQU0sT0FBTywyQkFBMkI7SUFkeEM7UUFnQlksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBSXpELGlCQUFZLEdBQWdCLElBQUksQ0FBQztRQUNqQyxlQUFVLEdBQUcsS0FBSyxDQUFDO0tBNENwQjtJQTFDQyx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0I7UUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQztRQUN4QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQzsrR0FsRFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsd1RDckJ4Qyw2dERBOENBLGs2RERuQ0ksT0FBTywwSUFDUCxlQUFlLDRGQUNmLFNBQVMsaUxBQ1QsSUFBSSw2RkFDSixVQUFVLGlSQUNWLGFBQWE7OzRGQUtKLDJCQUEyQjtrQkFkdkMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixTQUFTO3dCQUNULElBQUk7d0JBQ0osVUFBVTt3QkFDVixhQUFhO3FCQUNkOzhCQUt3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ2IsWUFBWTtzQkFBckIsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge01hdEJ1dHRvbiwgTWF0SWNvbkJ1dHRvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQge05nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtNYXRUb29sdGlwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYXR0YWNobWVudC11cGxvYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRJY29uLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTmdJZixcclxuICAgIE1hdFRvb2x0aXAsXHJcbiAgICBNYXRJY29uQnV0dG9uLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hdHRhY2htZW50LXVwbG9hZGVyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVVcGxvYWQnKSBmaWxlVXBsb2FkITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAT3V0cHV0KCkgZmlsZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgbnVsbD4oKTtcclxuICBASW5wdXQoKSBhY2NlcHRlZFR5cGVzPzogc3RyaW5nOyAvLyBlLmcuLCBcIi5qcGcsLnBuZywucGRmXCIgb3IgXCJpbWFnZS8qLGFwcGxpY2F0aW9uL3BkZlwiXHJcbiAgQElucHV0KCkgYXJpYURlc2NyaWJlZEJ5Pzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgc2VsZWN0ZWRGaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgaXNEcmFnT3ZlciA9IGZhbHNlO1xyXG5cclxuICB0cmlnZ2VyQXR0YWNobWVudFVwbG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZVVwbG9hZC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlVG9TZXJ2ZXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlID0gdGhpcy5maWxlVXBsb2FkLm5hdGl2ZUVsZW1lbnQuZmlsZXM/LlswXTtcclxuICAgIGlmIChmaWxlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcclxuICAgICAgdGhpcy5maWxlU2VsZWN0ZWQuZW1pdChmaWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRmlsZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcclxuICAgIHRoaXMuZmlsZVVwbG9hZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmZpbGVTZWxlY3RlZC5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xyXG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGU7XHJcbiAgICAgIHRoaXMuZmlsZVNlbGVjdGVkLmVtaXQoZmlsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtdXBsb2FkZXJcIlxyXG4gICAgIFtjbGFzcy5kcmFnLW92ZXJdPVwiaXNEcmFnT3ZlclwiXHJcbiAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgfHwgbnVsbFwiXHJcbiAgICAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXHJcbiAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uXCI+XHJcbiAgICAgIDxtYXQtaWNvbj51cGxvYWRfZmlsZTwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8cCBjbGFzcz1cIm1haW4tdGV4dFwiPnt7ICdhdHRhY2htZW50VXBsb2FkZXIuZHJhZ0FuZERyb3AnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICAgIDxwIGNsYXNzPVwiaW5mby10ZXh0XCI+e3sgJ2F0dGFjaG1lbnRVcGxvYWRlci5maWxlSW5mbycgfCB0cmFuc2xhdGUgfX08L3A+XHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnJvd3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5IHx8IG51bGxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidHJpZ2dlckF0dGFjaG1lbnRVcGxvYWQoKVwiPlxyXG4gICAgICB7eyAnYXR0YWNobWVudFVwbG9hZGVyLmJyb3dzZUZpbGVzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpbGVcIiBjbGFzcz1cInNlbGVjdGVkLWZpbGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZmlsZS1pY29uXCI+ZGVzY3JpcHRpb248L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHNlbGVjdGVkRmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJjbGVhci1idXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJGaWxlKClcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidhdHRhY2htZW50VXBsb2FkZXIucmVtb3ZlRmlsZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ2F0dGFjaG1lbnRVcGxvYWRlci5yZW1vdmVGaWxlJyB8IHRyYW5zbGF0ZSB9fVwiPlxyXG4gICAgICA8bWF0LWljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxpbnB1dCAjZmlsZVVwbG9hZFxyXG4gICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgIGNsYXNzPVwiaGlkZGVuLWlucHV0XCJcclxuICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRlZFR5cGVzXCJcclxuICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgfHwgbnVsbFwiXHJcbiAgICAgICAgIChjaGFuZ2UpPVwidXBsb2FkRmlsZVRvU2VydmVyKClcIiAvPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,47 @@
1
+ import { Component } from '@angular/core';
2
+ import { NgIf } from "@angular/common";
3
+ import { BaseTableComponent } from "../base-table/base-table.component";
4
+ import { EMPTY_PAGE_INFO, FilterRequest } from "../../base-model";
5
+ import { EditableBaseTableComponent } from "../editable-base-table/editable-base-table.component";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ export class SharedListComponent {
9
+ constructor(activatedRoute) {
10
+ this.activatedRoute = activatedRoute;
11
+ this.pageInfo = EMPTY_PAGE_INFO;
12
+ this.columnsDefinition = [];
13
+ this.fields = [];
14
+ this.filters = [];
15
+ this.readyToLoad = false;
16
+ this.isPending = false;
17
+ this.listAction = [];
18
+ this.editableTable = false;
19
+ this.filterRequest = new FilterRequest();
20
+ }
21
+ ngOnInit() {
22
+ this.activatedRoute.data.subscribe(data => {
23
+ this.pageInfo = data['pageInfo'];
24
+ this.columnsDefinition = data["columnsDefinition"];
25
+ this.filters = data["filters"] || [];
26
+ this.isPending = 'pending' === data["mode"];
27
+ this.listAction = data['actions'];
28
+ this.editableTable = data['editableTable'] || false;
29
+ this.fields = data['fields'];
30
+ this.filterRequest = new FilterRequest();
31
+ this.filterRequest.columns = this.fields?.filter(c => c.type !== 'button').map(c => c.property) || [];
32
+ this.filterRequest.filters = this.filters;
33
+ this.readyToLoad = true;
34
+ });
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SharedListComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SharedListComponent, isStandalone: true, selector: "app-shared-list", ngImport: i0, template: "<ng-container *ngIf=\"readyToLoad\">\r\n @if (editableTable) {\r\n <app-editable-base-table [filterRequest]=\"filterRequest\" [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [isPending]=\"isPending\"\r\n ></app-editable-base-table>\r\n\r\n } @else {\r\n\r\n <app-base-table [filters]=\"filters\" [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [listAction]=\"listAction\"\r\n [isPending]=\"isPending\"\r\n ></app-base-table>\r\n\r\n }\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "component", type: BaseTableComponent, selector: "app-base-table", inputs: ["filterFields", "noDataFoundSvgPath", "noDataFoundTitle", "noDataFoundSubtitle", "noResultSvgPath", "noResultTitle", "noResultSubtitle", "pageInfo", "enablePagination", "mobilePageSize", "mobileLoadMoreIncrement", "data", "listAction", "extraActions", "buttonsDisplayMode", "columns", "filters", "pathParam", "extraButton", "enforceRefresh", "isPending", "trigger", "reportRequest", "separateEndpointData", "manageablePages", "totalPagesCount", "currentPageIndex", "customizedData"], outputs: ["buttonClicked", "pageChange", "userAction", "hyperLinkAction", "extraAction", "selectedColumn", "listActionClicked", "showDialog", "clickRoutePage"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EditableBaseTableComponent, selector: "app-editable-base-table", inputs: ["filterRequest", "superDataElements", "pageInfo", "enforceRefresh", "isPending", "isBulkItemsSupported", "fields", "searchFormFields", "translationKey", "actionRequestCallback"], outputs: ["formUpdated", "saveActionEmitter", "saveAttachmentEmitter"] }] }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SharedListComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'app-shared-list', standalone: true, imports: [
42
+ BaseTableComponent,
43
+ NgIf,
44
+ EditableBaseTableComponent
45
+ ], template: "<ng-container *ngIf=\"readyToLoad\">\r\n @if (editableTable) {\r\n <app-editable-base-table [filterRequest]=\"filterRequest\" [pageInfo]=\"pageInfo\"\r\n [fields]=\"fields\"\r\n [isPending]=\"isPending\"\r\n ></app-editable-base-table>\r\n\r\n } @else {\r\n\r\n <app-base-table [filters]=\"filters\" [pageInfo]=\"pageInfo\"\r\n [columns]=\"columnsDefinition\"\r\n [listAction]=\"listAction\"\r\n [isPending]=\"isPending\"\r\n ></app-base-table>\r\n\r\n }\r\n</ng-container>\r\n" }]
46
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtbGlzdC9zaGFyZWQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1saXN0L3NoYXJlZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFaEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBdUIsZUFBZSxFQUFhLGFBQWEsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4SCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQzs7O0FBYWhHLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVGxELGFBQVEsR0FBYSxlQUFlLENBQUM7UUFDckMsc0JBQWlCLEdBQXVCLEVBQUUsQ0FBQztRQUMzQyxXQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNHLENBQUM7SUFFdkQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTlCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyRUNuQmhDLDZrQkFpQkEsMERETEksa0JBQWtCLHlzQkFDbEIsSUFBSSw2RkFDSiwwQkFBMEI7OzRGQUtqQixtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSiwwQkFBMEI7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7QmFzZVRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS10YWJsZS9iYXNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0J1dHRvbkFjdGlvblNldHRpbmdzLCBFTVBUWV9QQUdFX0lORk8sIEZpZWxkSW5mbywgRmlsdGVyUmVxdWVzdCwgUGFnZUluZm8sIFRhYmxlQ29sdW1ufSBmcm9tIFwiLi4vLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0ZpbHRlcn0gZnJvbSBcIi4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtFZGl0YWJsZUJhc2VUYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2VkaXRhYmxlLWJhc2UtdGFibGUvZWRpdGFibGUtYmFzZS10YWJsZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNoYXJlZC1saXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJhc2VUYWJsZUNvbXBvbmVudCxcclxuICAgIE5nSWYsXHJcbiAgICBFZGl0YWJsZUJhc2VUYWJsZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlZC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6WyAnLi9zaGFyZWQtbGlzdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNoYXJlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbyA9IEVNUFRZX1BBR0VfSU5GTztcclxuICBjb2x1bW5zRGVmaW5pdGlvbjogVGFibGVDb2x1bW48YW55PltdID0gW107XHJcbiAgZmllbGRzOiBGaWVsZEluZm9bXSA9IFtdO1xyXG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgcmVhZHlUb0xvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsaXN0QWN0aW9uOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgZWRpdGFibGVUYWJsZSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmaWx0ZXJSZXF1ZXN0OiBGaWx0ZXJSZXF1ZXN0ID0gbmV3IEZpbHRlclJlcXVlc3QoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5wYWdlSW5mbyA9IGRhdGFbJ3BhZ2VJbmZvJ107XHJcbiAgICAgIHRoaXMuY29sdW1uc0RlZmluaXRpb24gPSBkYXRhW1wiY29sdW1uc0RlZmluaXRpb25cIl07XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IGRhdGFbXCJmaWx0ZXJzXCJdIHx8IFtdO1xyXG5cclxuICAgICAgdGhpcy5pc1BlbmRpbmcgPSAncGVuZGluZycgPT09IGRhdGFbXCJtb2RlXCJdO1xyXG4gICAgICB0aGlzLmxpc3RBY3Rpb24gPSBkYXRhWydhY3Rpb25zJ107XHJcbiAgICAgIHRoaXMuZWRpdGFibGVUYWJsZSA9IGRhdGFbJ2VkaXRhYmxlVGFibGUnXSB8fCBmYWxzZTtcclxuICAgICAgdGhpcy5maWVsZHMgPSBkYXRhWydmaWVsZHMnXTtcclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KCk7XHJcbiAgICAgIHRoaXMuZmlsdGVyUmVxdWVzdC5jb2x1bW5zID0gdGhpcy5maWVsZHM/LmZpbHRlcihjID0+IGMudHlwZSAhPT0gJ2J1dHRvbicpLm1hcChjID0+IGMucHJvcGVydHkpIHx8IFtdO1xyXG4gICAgICB0aGlzLmZpbHRlclJlcXVlc3QuZmlsdGVycyA9IHRoaXMuZmlsdGVycztcclxuXHJcbiAgICAgIHRoaXMucmVhZHlUb0xvYWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvTG9hZFwiPlxyXG4gIEBpZiAoZWRpdGFibGVUYWJsZSkge1xyXG4gICAgPGFwcC1lZGl0YWJsZS1iYXNlLXRhYmxlIFtmaWx0ZXJSZXF1ZXN0XT1cImZpbHRlclJlcXVlc3RcIiBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNQZW5kaW5nXT1cImlzUGVuZGluZ1wiXHJcbiAgICA+PC9hcHAtZWRpdGFibGUtYmFzZS10YWJsZT5cclxuXHJcbiAgfSBAZWxzZSB7XHJcblxyXG4gICAgPGFwcC1iYXNlLXRhYmxlIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiBbcGFnZUluZm9dPVwicGFnZUluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNEZWZpbml0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdEFjdGlvbl09XCJsaXN0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNQZW5kaW5nXT1cImlzUGVuZGluZ1wiXHJcbiAgICA+PC9hcHAtYmFzZS10YWJsZT5cclxuXHJcbiAgfVxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -0,0 +1,43 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { MatButton, MatIconButton } from '@angular/material/button';
3
+ import { MatIcon } from '@angular/material/icon';
4
+ import { NgIf, NgStyle } from '@angular/common';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngx-translate/core";
8
+ export class SnackbarStaticComponent {
9
+ constructor() {
10
+ this.messageKey = '';
11
+ this.titleKey = '';
12
+ this.params = {};
13
+ this.paramsTitle = {};
14
+ this.actionBtn = new EventEmitter();
15
+ this.width = 'auto';
16
+ }
17
+ submit() {
18
+ this.actionBtn.emit();
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackbarStaticComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SnackbarStaticComponent, isStandalone: true, selector: "app-snackbar-static", inputs: { messageKey: "messageKey", titleKey: "titleKey", params: "params", paramsTitle: "paramsTitle", type: "type", width: "width", textBtn: "textBtn" }, outputs: { actionBtn: "actionBtn" }, ngImport: i0, template: "<div class=\"snackbar snackbar-{{type}}\" [ngStyle]=\"{'width': width == 'auto' ? 'auto' : width}\">\r\n <div class=\"sub-snackbar\">\r\n <mat-icon *ngIf=\"type === 'error'\">error</mat-icon>\r\n <mat-icon *ngIf=\"type === 'success'\">check_box</mat-icon>\r\n <mat-icon *ngIf=\"type === 'warning'\">warning</mat-icon>\r\n <mat-icon *ngIf=\"type === 'info'\">info</mat-icon>\r\n <mat-icon *ngIf=\"type === 'help'\">help</mat-icon>\r\n\r\n <div class=\"text-content\">\r\n <div class=\"title\">{{ titleKey | translate : paramsTitle }}</div>\r\n <div class=\"subtitle\">{{ messageKey | translate: params }}</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"action\" *ngIf=\"textBtn\">\r\n <button mat-stroked-button class=\"btn-none-background-primary action-btn\" (click)=\"submit()\" id=\"snackbar-action-btn\">\r\n {{ textBtn | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".snackbar{position:relative;width:auto;max-width:100%;box-sizing:border-box;background:#fff;border:1.5px solid #1c8c7a;border-radius:10px;padding:12px 20px;display:flex;flex-direction:column;color:#1c8c7a;box-shadow:0 2px 4px #00000014;overflow:hidden;word-break:break-word;overflow-wrap:anywhere;--snackbar-icon-size: clamp(16px, 2.4vw, 20px);--snackbar-title-size: clamp(14px, 2.6vw, 16px);--snackbar-subtitle-size: clamp(12px, 2.3vw, 14px)}.snackbar .sub-snackbar{display:flex;gap:10px;align-items:start}.snackbar .sub-snackbar mat-icon{font-size:var(--snackbar-icon-size);line-height:1;width:1em;height:1em;flex:0 0 auto}.snackbar .sub-snackbar .text-content{display:flex;flex-direction:column;line-height:24px}.snackbar .sub-snackbar .text-content .title{font-weight:400;color:inherit;font-family:lusail-regular,sans-serif;font-size:var(--snackbar-title-size)}.snackbar .sub-snackbar .text-content .subtitle{font-weight:400;color:#888;font-family:lusail-light,sans-serif;font-size:var(--snackbar-subtitle-size);margin-top:3px!important}.snackbar .action{display:flex;justify-content:flex-end}.snackbar .action .action-btn{font-size:var(--snackbar-title-size);font-weight:400;border-radius:8px;min-height:19px!important;margin:0!important;min-width:fit-content;max-width:100%}.snackbar .action .action-btn mat-icon{font-size:var(--snackbar-icon-size)}.snackbar-success{border-color:#0d7d6a;color:#0d7d6a}.snackbar-error{border-color:#a42b2b;color:#a42b2b}.snackbar-warning{border-color:#b54708;color:#b54708}.snackbar-info{border-color:#0d47a1;color:#0d47a1}.snackbar-help{border-color:var(--primary-color-3nd);color:var(--primary-color-3nd)}@media (max-width: 600px){.snackbar{padding:10px 14px;--snackbar-icon-size: clamp(16px, 3.6vw, 18px);--snackbar-title-size: clamp(14px, 3.8vw, 15px);--snackbar-subtitle-size: clamp(12px, 3.4vw, 13px)}.snackbar .sub-snackbar{gap:8px}.snackbar .sub-snackbar .text-content{line-height:22px}.snackbar .action{margin-top:8px}.snackbar .action .action-btn{width:100%;font-size:var(--snackbar-title-size)}}@media (max-width: 360px){.snackbar{padding:8px 10px;border-radius:8px;--snackbar-icon-size: clamp(14px, 4.5vw, 16px);--snackbar-title-size: clamp(13px, 4.6vw, 14px);--snackbar-subtitle-size: clamp(11px, 4.2vw, 12px)}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackbarStaticComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'app-snackbar-static', standalone: true, imports: [MatIcon, NgIf, TranslateModule, MatIconButton, MatButton, NgStyle], template: "<div class=\"snackbar snackbar-{{type}}\" [ngStyle]=\"{'width': width == 'auto' ? 'auto' : width}\">\r\n <div class=\"sub-snackbar\">\r\n <mat-icon *ngIf=\"type === 'error'\">error</mat-icon>\r\n <mat-icon *ngIf=\"type === 'success'\">check_box</mat-icon>\r\n <mat-icon *ngIf=\"type === 'warning'\">warning</mat-icon>\r\n <mat-icon *ngIf=\"type === 'info'\">info</mat-icon>\r\n <mat-icon *ngIf=\"type === 'help'\">help</mat-icon>\r\n\r\n <div class=\"text-content\">\r\n <div class=\"title\">{{ titleKey | translate : paramsTitle }}</div>\r\n <div class=\"subtitle\">{{ messageKey | translate: params }}</div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"action\" *ngIf=\"textBtn\">\r\n <button mat-stroked-button class=\"btn-none-background-primary action-btn\" (click)=\"submit()\" id=\"snackbar-action-btn\">\r\n {{ textBtn | translate}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".snackbar{position:relative;width:auto;max-width:100%;box-sizing:border-box;background:#fff;border:1.5px solid #1c8c7a;border-radius:10px;padding:12px 20px;display:flex;flex-direction:column;color:#1c8c7a;box-shadow:0 2px 4px #00000014;overflow:hidden;word-break:break-word;overflow-wrap:anywhere;--snackbar-icon-size: clamp(16px, 2.4vw, 20px);--snackbar-title-size: clamp(14px, 2.6vw, 16px);--snackbar-subtitle-size: clamp(12px, 2.3vw, 14px)}.snackbar .sub-snackbar{display:flex;gap:10px;align-items:start}.snackbar .sub-snackbar mat-icon{font-size:var(--snackbar-icon-size);line-height:1;width:1em;height:1em;flex:0 0 auto}.snackbar .sub-snackbar .text-content{display:flex;flex-direction:column;line-height:24px}.snackbar .sub-snackbar .text-content .title{font-weight:400;color:inherit;font-family:lusail-regular,sans-serif;font-size:var(--snackbar-title-size)}.snackbar .sub-snackbar .text-content .subtitle{font-weight:400;color:#888;font-family:lusail-light,sans-serif;font-size:var(--snackbar-subtitle-size);margin-top:3px!important}.snackbar .action{display:flex;justify-content:flex-end}.snackbar .action .action-btn{font-size:var(--snackbar-title-size);font-weight:400;border-radius:8px;min-height:19px!important;margin:0!important;min-width:fit-content;max-width:100%}.snackbar .action .action-btn mat-icon{font-size:var(--snackbar-icon-size)}.snackbar-success{border-color:#0d7d6a;color:#0d7d6a}.snackbar-error{border-color:#a42b2b;color:#a42b2b}.snackbar-warning{border-color:#b54708;color:#b54708}.snackbar-info{border-color:#0d47a1;color:#0d47a1}.snackbar-help{border-color:var(--primary-color-3nd);color:var(--primary-color-3nd)}@media (max-width: 600px){.snackbar{padding:10px 14px;--snackbar-icon-size: clamp(16px, 3.6vw, 18px);--snackbar-title-size: clamp(14px, 3.8vw, 15px);--snackbar-subtitle-size: clamp(12px, 3.4vw, 13px)}.snackbar .sub-snackbar{gap:8px}.snackbar .sub-snackbar .text-content{line-height:22px}.snackbar .action{margin-top:8px}.snackbar .action .action-btn{width:100%;font-size:var(--snackbar-title-size)}}@media (max-width: 360px){.snackbar{padding:8px 10px;border-radius:8px;--snackbar-icon-size: clamp(14px, 4.5vw, 16px);--snackbar-title-size: clamp(13px, 4.6vw, 14px);--snackbar-subtitle-size: clamp(11px, 4.2vw, 12px)}}\n"] }]
26
+ }], propDecorators: { messageKey: [{
27
+ type: Input
28
+ }], titleKey: [{
29
+ type: Input
30
+ }], params: [{
31
+ type: Input
32
+ }], paramsTitle: [{
33
+ type: Input
34
+ }], type: [{
35
+ type: Input
36
+ }], actionBtn: [{
37
+ type: Output
38
+ }], width: [{
39
+ type: Input
40
+ }], textBtn: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItc3RhdGljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXItc3RhdGljL3NuYWNrYmFyLXN0YXRpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NuYWNrYmFyLXN0YXRpYy9zbmFja2Jhci1zdGF0aWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsU0FBUyxFQUFFLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBU3RELE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFRVyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUF3QixFQUFFLENBQUM7UUFFckMsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELFVBQUssR0FBVyxNQUFNLENBQUM7S0FLakM7SUFIQyxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN2QixDQUFDOytHQVhVLHVCQUF1QjttR0FBdkIsdUJBQXVCLGdSQ2JwQywrNUJBb0JBLG14RURYWSxPQUFPLDJJQUFFLElBQUksNEZBQUUsZUFBZSw0RkFBaUIsU0FBUyxpTEFBRSxPQUFPOzs0RkFJaEUsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQzs4QkFLbkUsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRCdXR0b24sIE1hdEljb25CdXR0b259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHtOZ0lmLCBOZ1N0eWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNuYWNrYmFyLXN0YXRpYycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0SWNvbiwgTmdJZiwgVHJhbnNsYXRlTW9kdWxlLCBNYXRJY29uQnV0dG9uLCBNYXRCdXR0b24sIE5nU3R5bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbmFja2Jhci1zdGF0aWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NuYWNrYmFyLXN0YXRpYy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbmFja2JhclN0YXRpY0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbWVzc2FnZUtleSA9ICcnO1xyXG4gIEBJbnB1dCgpIHRpdGxlS2V5ID0gJyc7XHJcbiAgQElucHV0KCkgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgQElucHV0KCkgcGFyYW1zVGl0bGU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBASW5wdXQoKSB0eXBlOiAnZXJyb3InIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2hlbHAnXHJcbiAgQE91dHB1dCgpIGFjdGlvbkJ0bjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgdGV4dEJ0bjogc3RyaW5nO1xyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuYWN0aW9uQnRuLmVtaXQoKVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic25hY2tiYXIgc25hY2tiYXIte3t0eXBlfX1cIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogd2lkdGggPT0gJ2F1dG8nID8gJ2F1dG8nIDogd2lkdGh9XCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1Yi1zbmFja2JhclwiPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwidHlwZSA9PT0gJ2Vycm9yJ1wiPmVycm9yPC9tYXQtaWNvbj5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cInR5cGUgPT09ICdzdWNjZXNzJ1wiPmNoZWNrX2JveDwvbWF0LWljb24+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJ0eXBlID09PSAnd2FybmluZydcIj53YXJuaW5nPC9tYXQtaWNvbj5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cInR5cGUgPT09ICdpbmZvJ1wiPmluZm88L21hdC1pY29uPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwidHlwZSA9PT0gJ2hlbHAnXCI+aGVscDwvbWF0LWljb24+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyB0aXRsZUtleSB8IHRyYW5zbGF0ZSA6IHBhcmFtc1RpdGxlIH19PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZVwiPnt7IG1lc3NhZ2VLZXkgfCB0cmFuc2xhdGU6IHBhcmFtcyB9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25cIiAqbmdJZj1cInRleHRCdG5cIj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiYnRuLW5vbmUtYmFja2dyb3VuZC1wcmltYXJ5IGFjdGlvbi1idG5cIiAoY2xpY2spPVwic3VibWl0KClcIiBpZD1cInNuYWNrYmFyLWFjdGlvbi1idG5cIj5cclxuICAgICAgICB7eyB0ZXh0QnRuIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,185 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { NgForOf, NgIf } from "@angular/common";
3
+ import { MatIconModule } from "@angular/material/icon";
4
+ import { MatButton } from "@angular/material/button";
5
+ import { MatMenu, MatMenuItem, MatMenuTrigger } from "@angular/material/menu";
6
+ import { TranslateModule } from "@ngx-translate/core";
7
+ import { MatChipListbox, MatChipOption } from "@angular/material/chips";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@angular/cdk/bidi";
11
+ import * as i3 from "@angular/material/icon";
12
+ import * as i4 from "@ngx-translate/core";
13
+ export class TitleBarComponent {
14
+ constructor(location, dir) {
15
+ this.location = location;
16
+ this.dir = dir;
17
+ this.pageTitle = "";
18
+ this.showExtractButton = false;
19
+ this.titleMode = '';
20
+ this.subTitle = '';
21
+ this.newAction = false;
22
+ this.showDetails = [];
23
+ this.showImport = false;
24
+ this.showButton = false;
25
+ this.newActionClicked = new EventEmitter();
26
+ this.extraButtonClicked = new EventEmitter();
27
+ this.extractReport = new EventEmitter();
28
+ this.extraData = '';
29
+ this.listTitle = '';
30
+ this.newButton = '';
31
+ this.titleCorporateAdmin = '';
32
+ this.isRoot = false;
33
+ this.hideBackButton = true;
34
+ this.buttons = [];
35
+ this.buttonsDisplayMode = 'dropdown';
36
+ this.buttonClicked = new EventEmitter();
37
+ this.draftSupported = false;
38
+ this.isPending = false;
39
+ this.viewModeChanged = new EventEmitter();
40
+ this._isPending = false;
41
+ }
42
+ ngOnInit() {
43
+ this.listTitle = this.pageTitle;
44
+ this.newButton = this.extraButton;
45
+ // this.isRoot = this.authService.isRootOrg();
46
+ this.isRoot = false;
47
+ this._isPending = this.isPending;
48
+ }
49
+ ngOnChanges(changes) {
50
+ if (changes["pageTitle"] && !changes["pageTitle"].isFirstChange()) {
51
+ this.listTitle = this.pageTitle;
52
+ }
53
+ if (changes["isPending"]) {
54
+ this._isPending = this.isPending;
55
+ }
56
+ }
57
+ get currentIsPending() {
58
+ return this._isPending;
59
+ }
60
+ get backIcon() {
61
+ return this.dir.value === 'rtl' ? 'arrow_back' : 'arrow_forward';
62
+ }
63
+ publishEvent() {
64
+ this.newActionClicked.emit(true);
65
+ }
66
+ doExtractReport(value) {
67
+ this.extractReport.emit(value);
68
+ }
69
+ publishExtraButtonEvent() {
70
+ this.extraButtonClicked.emit(true);
71
+ }
72
+ goBack() {
73
+ this.location.back();
74
+ }
75
+ resolveButtonHref(btn) {
76
+ if (btn.showCommentDialog) {
77
+ return null;
78
+ }
79
+ const lh = btn.linkHref;
80
+ if (lh == null || lh === '') {
81
+ return null;
82
+ }
83
+ if (typeof lh === 'function') {
84
+ const resolved = lh(undefined);
85
+ const s = resolved != null ? String(resolved).trim() : '';
86
+ return s.length > 0 ? s : null;
87
+ }
88
+ const s = String(lh).trim();
89
+ return s.length > 0 ? s : null;
90
+ }
91
+ onButtonClick(btn, event) {
92
+ const href = this.resolveButtonHref(btn);
93
+ if (href && event) {
94
+ if (event.ctrlKey || event.metaKey || event.button === 1) {
95
+ return;
96
+ }
97
+ event.preventDefault();
98
+ }
99
+ this.buttonClicked.emit(btn);
100
+ }
101
+ onViewModeChanged(isPending) {
102
+ this._isPending = isPending;
103
+ if (this.onViewModeChange) {
104
+ this.onViewModeChange(isPending);
105
+ }
106
+ this.viewModeChanged.emit(isPending);
107
+ }
108
+ onChipSelectionChange(event, listbox) {
109
+ const value = event.value;
110
+ if (value !== 'COMPLETED' && value !== 'PENDING') {
111
+ setTimeout(() => listbox && (listbox.value = this._isPending ? 'PENDING' : 'COMPLETED'));
112
+ return;
113
+ }
114
+ if (this._isPending !== (value === 'PENDING'))
115
+ this.onViewModeChanged(value === 'PENDING');
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleBarComponent, deps: [{ token: i1.Location }, { token: i2.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleBarComponent, isStandalone: true, selector: "app-title-bar", inputs: { pageTitle: "pageTitle", showExtractButton: "showExtractButton", totalElements: "totalElements", titleMode: "titleMode", pageInfo: "pageInfo", subTitle: "subTitle", statusDesc: "statusDesc", newAction: "newAction", extraButton: "extraButton", showDetails: "showDetails", showImport: "showImport", showButton: "showButton", extraData: "extraData", titleCorporateAdmin: "titleCorporateAdmin", hideBackButton: "hideBackButton", buttons: "buttons", buttonsDisplayMode: "buttonsDisplayMode", draftSupported: "draftSupported", isPending: "isPending", onViewModeChange: "onViewModeChange" }, outputs: { newActionClicked: "newActionClicked", extraButtonClicked: "extraButtonClicked", extractReport: "extractReport", buttonClicked: "buttonClicked", viewModeChanged: "viewModeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row mainTitleBar gap-20 default-align\">\r\n\r\n <div class=\"column flex-auto textTitle\" >\r\n <h2 *ngIf=\"!pageInfo.hideTitle\" style=\"margin: 0;\">\r\n <span class=\"textTitle__titleMode\">{{ titleMode | translate }}</span>\r\n {{ listTitle | translate }}\r\n <span *ngIf=\"titleCorporateAdmin && isRoot\">({{ titleCorporateAdmin }})</span>\r\n {{ extraData }}\r\n </h2>\r\n <span *ngIf=\"subTitle\" class=\"textTitle__subTitle\">{{ subTitle | translate }}</span>\r\n <div *ngIf=\"pageInfo.draftSupported\" class=\"chips-container\">\r\n <mat-chip-listbox #box [attr.aria-label]=\"'BASE_TABLE.documentStatus' | translate\" [multiple]=\"false\" [value]=\"currentIsPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\">\r\n <mat-chip-option [selected]=\"!currentIsPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"!currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'finished' | translate}}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"currentIsPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'todo' | translate}}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"column end-items gap-20\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" style=\"width: 100px\" *ngIf=\"!hideBackButton\" (click)=\"goBack()\" id=\"title-bar-back-btn\">\r\n <mat-icon color=\"second\">{{ backIcon }}</mat-icon>\r\n <span style=\"font-weight: bold\">{{ 'back' | translate }}</span>\r\n </button>\r\n\r\n <div class=\"row flex-auto gap-20 buttons-wrapper\">\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'dropdown'\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"buttons && buttons.length > 0\"\r\n mat-flat-button\r\n [matMenuTriggerFor]=\"actionMenu\"\r\n class=\"title-bar-action-button\"\r\n [attr.id]=\"'title-bar-action-button'\">\r\n <div class=\"button-content\">\r\n <mat-icon class=\"button-icon\">{{ buttons[0].icon }}</mat-icon>\r\n <span class=\"button-label\">{{ buttons[0].label | translate }}</span>\r\n <mat-icon class=\"button-arrow\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #actionMenu=\"matMenu\" class=\"title-bar-action-menu\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-menu-item\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'list'\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["", ":host{display:block;width:100%}.mainTitleBar{display:flex;width:100%;gap:20px;align-items:center;justify-content:flex-start}.mainTitleBar.row{flex-direction:row;margin-left:0!important;margin-right:0!important;padding-bottom:20px;border-bottom:1px solid #F0EEEE}.mainTitleBar.column{flex-direction:column}.mainTitleBar .textTitle{flex:1 1 0;display:flex;flex-direction:column;width:auto;gap:12px}.mainTitleBar .textTitle h2{margin:0;padding:0;line-height:1.2}.mainTitleBar .textTitle__titleMode{font-weight:200;color:gray}.mainTitleBar .textTitle__subTitle{color:#888;font-size:16px;font-weight:300;font-style:normal}.mainTitleBar .textTitle .chips-container{margin-top:0}.mainTitleBar .end-items{display:flex;flex-direction:row;align-items:center;gap:20px}.mainTitleBar .buttons-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-direction:row;text-align-last:end;margin-left:0!important;margin-right:0!important}.mainTitleBar .buttons-wrapper .action-btn{width:210px!important}.mainTitleBar .title-bar-action-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 12px!important;min-width:209px!important;box-shadow:none!important}.mainTitleBar .title-bar-action-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-action-button .button-content{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.mainTitleBar .title-bar-action-button .button-icon{font-size:14px;width:14px;height:14px;color:#fff}.mainTitleBar .title-bar-action-button .button-label{font-weight:500;font-size:16px;line-height:1.2;color:#fff;white-space:nowrap;height:16px}.mainTitleBar .title-bar-action-button .button-arrow{font-size:14px;width:14px;height:14px;color:#fff;margin-left:auto}.mainTitleBar .actionButton{width:100%}.mainTitleBar .actionButton__expand{font-size:20px!important;color:var(--accent-color);margin-top:5px}.mainTitleBar .title-bar-list-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 16px!important;min-width:auto!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:8px!important;font-weight:500!important;font-size:16px!important;line-height:1.2!important;white-space:nowrap!important;text-decoration:none!important;box-sizing:border-box!important;outline:none!important;cursor:pointer!important}.mainTitleBar .title-bar-list-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-list-button mat-icon{font-size:20px!important;width:20px!important;height:28px!important;color:#fff!important;margin:0!important}.mainTitleBar .title-bar-list-button span{color:#fff!important}.mainTitleBar mat-chip-listbox{display:flex;flex-direction:row;gap:8px;align-items:center}.mainTitleBar mat-chip-listbox mat-chip-option{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:16px!important;line-height:1.2!important;font-weight:400!important;border:none!important;box-shadow:none!important;transition:all .2s ease;font-family:Lusail,sans-serif!important;padding:0!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true],.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true]{background:#0d4261!important;color:#fff!important;font-weight:500!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] .mdc-evolution-chip__text-label{color:#fff!important;font-weight:500!important;padding-left:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] mat-icon{color:#fff!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]){background:#e9e9e9!important;color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]) .mdc-evolution-chip__text-label{color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__action{padding:8px 12px!important;min-height:32px!important;display:flex!important;align-items:center!important;gap:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__text-label{padding:0!important;font-size:16px!important;line-height:1.2!important;font-family:Lusail,sans-serif!important}.mainTitleBar mat-chip-listbox mat-chip-option mat-icon{font-size:14px!important;width:14px!important;height:14px!important;margin-right:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__graphic,.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__checkmark{display:none!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__action--primary{padding:10px!important}.mainTitleBar mat-chip-listbox mat-chip-option:hover{opacity:.9}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:auto}.fx-flex-fill{width:100%;height:100%;flex:1 1 auto}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.end-items{align-items:flex-end}.gap-20{gap:20px}@media (max-width: 960px){.mainTitleBar.row.default-align{justify-content:flex-end}}@media (max-width: 768px){.mainTitleBar.row,.mainTitleBar.column{flex-direction:column;align-items:flex-start;gap:20px}.end-items{align-items:flex-start}}@media (max-width: 600px){.gap-20{gap:10px}}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important;text-decoration:none!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base mat-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mat-icon{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base span,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button span,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button span{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mdc-button__label{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-label,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-arrow,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-arrow{color:#fff!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }] }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleBarComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'app-title-bar', standalone: true, imports: [
123
+ NgIf,
124
+ MatIconModule,
125
+ MatButton,
126
+ MatMenuItem,
127
+ MatMenu,
128
+ NgForOf,
129
+ MatMenuTrigger,
130
+ TranslateModule,
131
+ MatChipListbox,
132
+ MatChipOption,
133
+ ], template: "<div class=\"row mainTitleBar gap-20 default-align\">\r\n\r\n <div class=\"column flex-auto textTitle\" >\r\n <h2 *ngIf=\"!pageInfo.hideTitle\" style=\"margin: 0;\">\r\n <span class=\"textTitle__titleMode\">{{ titleMode | translate }}</span>\r\n {{ listTitle | translate }}\r\n <span *ngIf=\"titleCorporateAdmin && isRoot\">({{ titleCorporateAdmin }})</span>\r\n {{ extraData }}\r\n </h2>\r\n <span *ngIf=\"subTitle\" class=\"textTitle__subTitle\">{{ subTitle | translate }}</span>\r\n <div *ngIf=\"pageInfo.draftSupported\" class=\"chips-container\">\r\n <mat-chip-listbox #box [attr.aria-label]=\"'BASE_TABLE.documentStatus' | translate\" [multiple]=\"false\" [value]=\"currentIsPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\">\r\n <mat-chip-option [selected]=\"!currentIsPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"!currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'finished' | translate}}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"currentIsPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'todo' | translate}}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"column end-items gap-20\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" style=\"width: 100px\" *ngIf=\"!hideBackButton\" (click)=\"goBack()\" id=\"title-bar-back-btn\">\r\n <mat-icon color=\"second\">{{ backIcon }}</mat-icon>\r\n <span style=\"font-weight: bold\">{{ 'back' | translate }}</span>\r\n </button>\r\n\r\n <div class=\"row flex-auto gap-20 buttons-wrapper\">\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'dropdown'\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"buttons && buttons.length > 0\"\r\n mat-flat-button\r\n [matMenuTriggerFor]=\"actionMenu\"\r\n class=\"title-bar-action-button\"\r\n [attr.id]=\"'title-bar-action-button'\">\r\n <div class=\"button-content\">\r\n <mat-icon class=\"button-icon\">{{ buttons[0].icon }}</mat-icon>\r\n <span class=\"button-label\">{{ buttons[0].label | translate }}</span>\r\n <mat-icon class=\"button-arrow\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #actionMenu=\"matMenu\" class=\"title-bar-action-menu\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-menu-item\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'list'\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.mainTitleBar{display:flex;width:100%;gap:20px;align-items:center;justify-content:flex-start}.mainTitleBar.row{flex-direction:row;margin-left:0!important;margin-right:0!important;padding-bottom:20px;border-bottom:1px solid #F0EEEE}.mainTitleBar.column{flex-direction:column}.mainTitleBar .textTitle{flex:1 1 0;display:flex;flex-direction:column;width:auto;gap:12px}.mainTitleBar .textTitle h2{margin:0;padding:0;line-height:1.2}.mainTitleBar .textTitle__titleMode{font-weight:200;color:gray}.mainTitleBar .textTitle__subTitle{color:#888;font-size:16px;font-weight:300;font-style:normal}.mainTitleBar .textTitle .chips-container{margin-top:0}.mainTitleBar .end-items{display:flex;flex-direction:row;align-items:center;gap:20px}.mainTitleBar .buttons-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-direction:row;text-align-last:end;margin-left:0!important;margin-right:0!important}.mainTitleBar .buttons-wrapper .action-btn{width:210px!important}.mainTitleBar .title-bar-action-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 12px!important;min-width:209px!important;box-shadow:none!important}.mainTitleBar .title-bar-action-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-action-button .button-content{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.mainTitleBar .title-bar-action-button .button-icon{font-size:14px;width:14px;height:14px;color:#fff}.mainTitleBar .title-bar-action-button .button-label{font-weight:500;font-size:16px;line-height:1.2;color:#fff;white-space:nowrap;height:16px}.mainTitleBar .title-bar-action-button .button-arrow{font-size:14px;width:14px;height:14px;color:#fff;margin-left:auto}.mainTitleBar .actionButton{width:100%}.mainTitleBar .actionButton__expand{font-size:20px!important;color:var(--accent-color);margin-top:5px}.mainTitleBar .title-bar-list-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 16px!important;min-width:auto!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:8px!important;font-weight:500!important;font-size:16px!important;line-height:1.2!important;white-space:nowrap!important;text-decoration:none!important;box-sizing:border-box!important;outline:none!important;cursor:pointer!important}.mainTitleBar .title-bar-list-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-list-button mat-icon{font-size:20px!important;width:20px!important;height:28px!important;color:#fff!important;margin:0!important}.mainTitleBar .title-bar-list-button span{color:#fff!important}.mainTitleBar mat-chip-listbox{display:flex;flex-direction:row;gap:8px;align-items:center}.mainTitleBar mat-chip-listbox mat-chip-option{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:16px!important;line-height:1.2!important;font-weight:400!important;border:none!important;box-shadow:none!important;transition:all .2s ease;font-family:Lusail,sans-serif!important;padding:0!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true],.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true]{background:#0d4261!important;color:#fff!important;font-weight:500!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] .mdc-evolution-chip__text-label{color:#fff!important;font-weight:500!important;padding-left:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] mat-icon{color:#fff!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]){background:#e9e9e9!important;color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]) .mdc-evolution-chip__text-label{color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__action{padding:8px 12px!important;min-height:32px!important;display:flex!important;align-items:center!important;gap:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__text-label{padding:0!important;font-size:16px!important;line-height:1.2!important;font-family:Lusail,sans-serif!important}.mainTitleBar mat-chip-listbox mat-chip-option mat-icon{font-size:14px!important;width:14px!important;height:14px!important;margin-right:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__graphic,.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__checkmark{display:none!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__action--primary{padding:10px!important}.mainTitleBar mat-chip-listbox mat-chip-option:hover{opacity:.9}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:auto}.fx-flex-fill{width:100%;height:100%;flex:1 1 auto}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.end-items{align-items:flex-end}.gap-20{gap:20px}@media (max-width: 960px){.mainTitleBar.row.default-align{justify-content:flex-end}}@media (max-width: 768px){.mainTitleBar.row,.mainTitleBar.column{flex-direction:column;align-items:flex-start;gap:20px}.end-items{align-items:flex-start}}@media (max-width: 600px){.gap-20{gap:10px}}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important;text-decoration:none!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base mat-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mat-icon{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base span,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button span,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button span{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mdc-button__label{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-label,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-arrow,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-arrow{color:#fff!important}\n"] }]
134
+ }], ctorParameters: () => [{ type: i1.Location }, { type: i2.Directionality }], propDecorators: { pageTitle: [{
135
+ type: Input
136
+ }], showExtractButton: [{
137
+ type: Input
138
+ }], totalElements: [{
139
+ type: Input
140
+ }], titleMode: [{
141
+ type: Input
142
+ }], pageInfo: [{
143
+ type: Input
144
+ }], subTitle: [{
145
+ type: Input
146
+ }], statusDesc: [{
147
+ type: Input
148
+ }], newAction: [{
149
+ type: Input
150
+ }], extraButton: [{
151
+ type: Input
152
+ }], showDetails: [{
153
+ type: Input
154
+ }], showImport: [{
155
+ type: Input
156
+ }], showButton: [{
157
+ type: Input
158
+ }], newActionClicked: [{
159
+ type: Output
160
+ }], extraButtonClicked: [{
161
+ type: Output
162
+ }], extractReport: [{
163
+ type: Output
164
+ }], extraData: [{
165
+ type: Input
166
+ }], titleCorporateAdmin: [{
167
+ type: Input
168
+ }], hideBackButton: [{
169
+ type: Input
170
+ }], buttons: [{
171
+ type: Input
172
+ }], buttonsDisplayMode: [{
173
+ type: Input
174
+ }], buttonClicked: [{
175
+ type: Output
176
+ }], draftSupported: [{
177
+ type: Input
178
+ }], isPending: [{
179
+ type: Input
180
+ }], onViewModeChange: [{
181
+ type: Input
182
+ }], viewModeChanged: [{
183
+ type: Output
184
+ }] } });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGl0bGUtYmFyL3RpdGxlLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RpdGxlLWJhci90aXRsZS1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBVyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHcEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBb0J0RSxNQUFNLE9BQU8saUJBQWlCO0lBd0U1QixZQUFvQixRQUFpQixFQUNqQixHQUFtQjtRQURuQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBdkV2QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBR3ZCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU1uQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBTXZCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFNdEIsY0FBUyxH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QUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsa0JBQWtCO3NCQURqQixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxTQUFTO3NCQURSLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvY2F0aW9uLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHtCdXR0b25BY3Rpb25TZXR0aW5ncywgUGFnZUluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XHJcbmltcG9ydCB7TWF0Q2hpcExpc3Rib3gsIE1hdENoaXBPcHRpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGl0bGUtYmFyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nSWYsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0Q2hpcExpc3Rib3gsXHJcbiAgICBNYXRDaGlwT3B0aW9uLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpdGxlLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUtYmFyLmNvbXBvbmVudC5jc3MnLCAndGl0bGUtYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpdGxlQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dFeHRyYWN0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG90YWxFbGVtZW50cz86IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICB0aXRsZU1vZGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuXHJcbiAgQElucHV0KClcclxuICBzdWJUaXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc3RhdHVzRGVzYz86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBuZXdBY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIC8vIEB0cy1pZ25vcmVcclxuICBleHRyYUJ1dHRvbjogc3RyaW5nO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RGV0YWlsczogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0ltcG9ydCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgbmV3QWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXh0cmFCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXh0cmFjdFJlcG9ydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBleHRyYURhdGEgPSAnJztcclxuXHJcbiAgbGlzdFRpdGxlID0gJyc7XHJcbiAgbmV3QnV0dG9uID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGl0bGVDb3Jwb3JhdGVBZG1pbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIGlzUm9vdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZUJhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBidXR0b25zOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgQElucHV0KCkgYnV0dG9uc0Rpc3BsYXlNb2RlOiAnZHJvcGRvd24nIHwgJ2xpc3QnID0gJ2Ryb3Bkb3duJztcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uQWN0aW9uU2V0dGluZ3M+KCk7XHJcbiAgQElucHV0KCkgZHJhZnRTdXBwb3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvblZpZXdNb2RlQ2hhbmdlPzogKGlzUGVuZGluZzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBAT3V0cHV0KCkgdmlld01vZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIF9pc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvbjpMb2NhdGlvbixcclxuICAgICAgICAgICAgICBwcml2YXRlIGRpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saXN0VGl0bGUgPSB0aGlzLnBhZ2VUaXRsZTtcclxuICAgIHRoaXMubmV3QnV0dG9uID0gdGhpcy5leHRyYUJ1dHRvbjtcclxuICAgIC8vIHRoaXMuaXNSb290ID0gdGhpcy5hdXRoU2VydmljZS5pc1Jvb3RPcmcoKTtcclxuICAgIHRoaXMuaXNSb290ID0gZmFsc2U7XHJcbiAgICB0aGlzLl9pc1BlbmRpbmcgPSB0aGlzLmlzUGVuZGluZztcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wicGFnZVRpdGxlXCJdICYmICFjaGFuZ2VzW1wicGFnZVRpdGxlXCJdLmlzRmlyc3RDaGFuZ2UoKSApIHtcclxuICAgICAgdGhpcy5saXN0VGl0bGUgPSB0aGlzLnBhZ2VUaXRsZTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wiaXNQZW5kaW5nXCJdKSB7XHJcbiAgICAgIHRoaXMuX2lzUGVuZGluZyA9IHRoaXMuaXNQZW5kaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRJc1BlbmRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNQZW5kaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJhY2tJY29uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXIudmFsdWUgPT09ICdydGwnID8gJ2Fycm93X2JhY2snIDogJ2Fycm93X2ZvcndhcmQnO1xyXG4gIH1cclxuXHJcbiAgcHVibGlzaEV2ZW50KCkge1xyXG4gICAgdGhpcy5uZXdBY3Rpb25DbGlja2VkLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZG9FeHRyYWN0UmVwb3J0KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZXh0cmFjdFJlcG9ydC5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgcHVibGlzaEV4dHJhQnV0dG9uRXZlbnQoKSB7XHJcbiAgICB0aGlzLmV4dHJhQnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKClcclxuICB9XHJcblxyXG4gIHJlc29sdmVCdXR0b25IcmVmKGJ0bjogQnV0dG9uQWN0aW9uU2V0dGluZ3MpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmIChidG4uc2hvd0NvbW1lbnREaWFsb2cpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsaCA9IGJ0bi5saW5rSHJlZjtcclxuICAgIGlmIChsaCA9PSBudWxsIHx8IGxoID09PSAnJykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgbGggPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBsaCh1bmRlZmluZWQgYXMgdW5rbm93bik7XHJcbiAgICAgIGNvbnN0IHMgPSByZXNvbHZlZCAhPSBudWxsID8gU3RyaW5nKHJlc29sdmVkKS50cmltKCkgOiAnJztcclxuICAgICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcyA9IFN0cmluZyhsaCkudHJpbSgpO1xyXG4gICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhidG46IEJ1dHRvbkFjdGlvblNldHRpbmdzLCBldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IGhyZWYgPSB0aGlzLnJlc29sdmVCdXR0b25IcmVmKGJ0bik7XHJcbiAgICBpZiAoaHJlZiAmJiBldmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmJ1dHRvbiA9PT0gMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoYnRuKTtcclxuICB9XHJcblxyXG4gIG9uVmlld01vZGVDaGFuZ2VkKGlzUGVuZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faXNQZW5kaW5nID0gaXNQZW5kaW5nO1xyXG4gICAgICAgIGlmICh0aGlzLm9uVmlld01vZGVDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vblZpZXdNb2RlQ2hhbmdlKGlzUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdNb2RlQ2hhbmdlZC5lbWl0KGlzUGVuZGluZyk7XHJcbiAgfVxyXG5cclxuICBvbkNoaXBTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgbGlzdGJveD86IE1hdENoaXBMaXN0Ym94KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICE9PSAnQ09NUExFVEVEJyAmJiB2YWx1ZSAhPT0gJ1BFTkRJTkcnKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gbGlzdGJveCAmJiAobGlzdGJveC52YWx1ZSA9IHRoaXMuX2lzUGVuZGluZyA/ICdQRU5ESU5HJyA6ICdDT01QTEVURUQnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc1BlbmRpbmcgIT09ICh2YWx1ZSA9PT0gJ1BFTkRJTkcnKSkgdGhpcy5vblZpZXdNb2RlQ2hhbmdlZCh2YWx1ZSA9PT0gJ1BFTkRJTkcnKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBtYWluVGl0bGVCYXIgZ2FwLTIwIGRlZmF1bHQtYWxpZ25cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LWF1dG8gdGV4dFRpdGxlXCIgPlxyXG4gICAgPGgyICpuZ0lmPVwiIXBhZ2VJbmZvLmhpZGVUaXRsZVwiIHN0eWxlPVwibWFyZ2luOiAwO1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHRUaXRsZV9fdGl0bGVNb2RlXCI+e3sgdGl0bGVNb2RlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICB7eyBsaXN0VGl0bGUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZUNvcnBvcmF0ZUFkbWluICYmIGlzUm9vdFwiPih7eyB0aXRsZUNvcnBvcmF0ZUFkbWluIH19KTwvc3Bhbj5cclxuICAgICAge3sgZXh0cmFEYXRhIH19XHJcbiAgICA8L2gyPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzdWJUaXRsZVwiIGNsYXNzPVwidGV4dFRpdGxlX19zdWJUaXRsZVwiPnt7IHN1YlRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPGRpdiAqbmdJZj1cInBhZ2VJbmZvLmRyYWZ0U3VwcG9ydGVkXCIgY2xhc3M9XCJjaGlwcy1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1jaGlwLWxpc3Rib3ggI2JveCBbYXR0ci5hcmlhLWxhYmVsXT1cIidCQVNFX1RBQkxFLmRvY3VtZW50U3RhdHVzJyB8IHRyYW5zbGF0ZVwiIFttdWx0aXBsZV09XCJmYWxzZVwiIFt2YWx1ZV09XCJjdXJyZW50SXNQZW5kaW5nID8gJ1BFTkRJTkcnIDogJ0NPTVBMRVRFRCdcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKGNoYW5nZSk9XCJvbkNoaXBTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LCBib3gpXCI+XHJcbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBbc2VsZWN0ZWRdPVwiIWN1cnJlbnRJc1BlbmRpbmdcIiBbY29sb3JdPVwiJ2FjY2VudCdcIiB2YWx1ZT1cIkNPTVBMRVRFRFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFjdXJyZW50SXNQZW5kaW5nXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IG1hcmdpbi1yaWdodDogNHB4O1wiPmNoZWNrPC9tYXQtaWNvbj5cclxuICAgICAgICAgIHt7J2ZpbmlzaGVkJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtY2hpcC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBbc2VsZWN0ZWRdPVwiY3VycmVudElzUGVuZGluZ1wiIFtjb2xvcl09XCInYWNjZW50J1wiIHZhbHVlPVwiUEVORElOR1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImN1cnJlbnRJc1BlbmRpbmdcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgbWFyZ2luLXJpZ2h0OiA0cHg7XCI+Y2hlY2s8L21hdC1pY29uPlxyXG4gICAgICAgICAge3sndG9kbycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxyXG4gICAgICA8L21hdC1jaGlwLWxpc3Rib3g+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBlbmQtaXRlbXMgZ2FwLTIwXCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJ3aWR0aDogMTAwcHhcIiAqbmdJZj1cIiFoaWRlQmFja0J1dHRvblwiIChjbGljayk9XCJnb0JhY2soKVwiIGlkPVwidGl0bGUtYmFyLWJhY2stYnRuXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInNlY29uZFwiPnt7IGJhY2tJY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogYm9sZFwiPnt7ICdiYWNrJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgZmxleC1hdXRvIGdhcC0yMCBidXR0b25zLXdyYXBwZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvbnNEaXNwbGF5TW9kZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgKm5nSWY9XCJidXR0b25zICYmIGJ1dHRvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25NZW51XCJcclxuICAgICAgICAgIGNsYXNzPVwidGl0bGUtYmFyLWFjdGlvbi1idXR0b25cIlxyXG4gICAgICAgICAgW2F0dHIuaWRdPVwiJ3RpdGxlLWJhci1hY3Rpb24tYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJ1dHRvbi1pY29uXCI+e3sgYnV0dG9uc1swXS5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tbGFiZWxcIj57eyBidXR0b25zWzBdLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJidXR0b24tYXJyb3dcIj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtbWVudSAjYWN0aW9uTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cInRpdGxlLWJhci1hY3Rpb24tbWVudVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAqbmdJZj1cInJlc29sdmVCdXR0b25IcmVmKGJ0bikgYXMgaHJlZlwiXHJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgIFtocmVmXT1cImhyZWZcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ0biwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnRuLmlkIHx8ICgndGl0bGUtYmFyLW1lbnUtYnRuLScgKyAoYnRuLmFjdGlvbiB8fCBidG4ubGFiZWwgfHwgYnRuLmtleSkpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPnt7IGJ0bi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBidG4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXJlc29sdmVCdXR0b25IcmVmKGJ0bilcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4pXCJcclxuICAgICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbWVudS1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+e3sgYnRuLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25zRGlzcGxheU1vZGUgPT09ICdsaXN0J1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBidXR0b25zXCI+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAqbmdJZj1cInJlc29sdmVCdXR0b25IcmVmKGJ0bikgYXMgaHJlZlwiXHJcbiAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInRpdGxlLWJhci1saXN0LWJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtocmVmXT1cImhyZWZcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4sICRldmVudClcIlxyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbGlzdC1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7IGJ0bi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgYnRuLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXNvbHZlQnV0dG9uSHJlZihidG4pXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInRpdGxlLWJhci1saXN0LWJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ0bilcIlxyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbGlzdC1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7IGJ0bi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgYnRuLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=