bpm-core 0.0.1

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 (186) hide show
  1. package/README.md +30 -0
  2. package/esm2022/bpm-core.mjs +5 -0
  3. package/esm2022/lib/classes/form-validation.mjs +80 -0
  4. package/esm2022/lib/classes/index.mjs +2 -0
  5. package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +51 -0
  6. package/esm2022/lib/components/app-component-sections/comment-section/comment-section.component.mjs +66 -0
  7. package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +29 -0
  8. package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +32 -0
  9. package/esm2022/lib/components/app-component-sections/faqs/index.mjs +2 -0
  10. package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +236 -0
  11. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +270 -0
  12. package/esm2022/lib/components/app-component-sections/index.mjs +9 -0
  13. package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +34 -0
  14. package/esm2022/lib/components/app-component-sections/profile-section/profile-section.component.mjs +45 -0
  15. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +162 -0
  16. package/esm2022/lib/components/app-component-sections/status/status.component.mjs +38 -0
  17. package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +162 -0
  18. package/esm2022/lib/components/shared-components/confirmation-popup/confirmation-popup.component.mjs +39 -0
  19. package/esm2022/lib/components/shared-components/delete-popup/delete-popup.component.mjs +19 -0
  20. package/esm2022/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.mjs +30 -0
  21. package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +28 -0
  22. package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +72 -0
  23. package/esm2022/lib/components/shared-components/doc-uploader/docs-uploader.component.mjs +686 -0
  24. package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +77 -0
  25. package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +181 -0
  26. package/esm2022/lib/components/shared-components/form-field/base-component/base-component.component.mjs +198 -0
  27. package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +69 -0
  28. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +201 -0
  29. package/esm2022/lib/components/shared-components/form-field/date-picker/date-format.mjs +31 -0
  30. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +244 -0
  31. package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +26 -0
  32. package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +31 -0
  33. package/esm2022/lib/components/shared-components/form-field/index.mjs +25 -0
  34. package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +72 -0
  35. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +155 -0
  36. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/index.mjs +3 -0
  37. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.mjs +2 -0
  38. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +157 -0
  39. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +114 -0
  40. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +111 -0
  41. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +153 -0
  42. package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +176 -0
  43. package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +38 -0
  44. package/esm2022/lib/components/shared-components/form-field/repeated-list/repeated-list.component.mjs +32 -0
  45. package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +228 -0
  46. package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +191 -0
  47. package/esm2022/lib/components/shared-components/form-field/table-list/table-list.component.mjs +116 -0
  48. package/esm2022/lib/components/shared-components/form-field/textarea/special-chars.directive.mjs +39 -0
  49. package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +88 -0
  50. package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +75 -0
  51. package/esm2022/lib/components/shared-components/index.mjs +10 -0
  52. package/esm2022/lib/components/shared-components/terms-conditions/terms-conditions.component.mjs +31 -0
  53. package/esm2022/lib/components/shared-components/title-section/title-section.component.mjs +31 -0
  54. package/esm2022/lib/constants/constants.mjs +144 -0
  55. package/esm2022/lib/constants/index.mjs +2 -0
  56. package/esm2022/lib/environments/environment.local.mjs +27 -0
  57. package/esm2022/lib/functions/data-to-blob.mjs +12 -0
  58. package/esm2022/lib/functions/encode-password.mjs +14 -0
  59. package/esm2022/lib/functions/handel-error-response.mjs +12 -0
  60. package/esm2022/lib/functions/index.mjs +5 -0
  61. package/esm2022/lib/functions/is-valid-data.mjs +42 -0
  62. package/esm2022/lib/hooks/index.mjs +3 -0
  63. package/esm2022/lib/hooks/load-form.mjs +13 -0
  64. package/esm2022/lib/hooks/save-form.mjs +18 -0
  65. package/esm2022/lib/i18n/ar.mjs +183 -0
  66. package/esm2022/lib/i18n/en.mjs +187 -0
  67. package/esm2022/lib/i18n/index.mjs +3 -0
  68. package/esm2022/lib/interfaces/api-response.interface.mjs +2 -0
  69. package/esm2022/lib/interfaces/document-file.interface.mjs +2 -0
  70. package/esm2022/lib/interfaces/form-items.interface.mjs +2 -0
  71. package/esm2022/lib/interfaces/form.interface.mjs +150 -0
  72. package/esm2022/lib/interfaces/igate-user.interface.mjs +2 -0
  73. package/esm2022/lib/interfaces/index.mjs +8 -0
  74. package/esm2022/lib/interfaces/lov-list.interface.mjs +2 -0
  75. package/esm2022/lib/interfaces/lov.interface.mjs +2 -0
  76. package/esm2022/lib/interfaces/shared.interface.mjs +2 -0
  77. package/esm2022/lib/pipes/currency.pipe.mjs +66 -0
  78. package/esm2022/lib/pipes/format-as-password.pipe.mjs +19 -0
  79. package/esm2022/lib/pipes/index.mjs +3 -0
  80. package/esm2022/lib/services/feedBack.service.mjs +80 -0
  81. package/esm2022/lib/services/i18n.service.mjs +36 -0
  82. package/esm2022/lib/services/index.mjs +3 -0
  83. package/esm2022/lib/services/sidenav.service.mjs +69 -0
  84. package/esm2022/lib/validators/ar.directive.mjs +53 -0
  85. package/esm2022/lib/validators/currency.directive.mjs +74 -0
  86. package/esm2022/lib/validators/en.directive.mjs +50 -0
  87. package/esm2022/lib/validators/id.validator.mjs +66 -0
  88. package/esm2022/lib/validators/index.mjs +8 -0
  89. package/esm2022/lib/validators/string-to-boolean.pipe.mjs +16 -0
  90. package/esm2022/lib/validators/text.directive.mjs +50 -0
  91. package/esm2022/lib/validators/timer.pipe.mjs +19 -0
  92. package/esm2022/public-api.mjs +16 -0
  93. package/fesm2022/bpm-core.mjs +6005 -0
  94. package/fesm2022/bpm-core.mjs.map +1 -0
  95. package/index.d.ts +5 -0
  96. package/lib/classes/form-validation.d.ts +19 -0
  97. package/lib/classes/index.d.ts +1 -0
  98. package/lib/components/app-component-sections/activities/activities.component.d.ts +22 -0
  99. package/lib/components/app-component-sections/comment-section/comment-section.component.d.ts +19 -0
  100. package/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.d.ts +13 -0
  101. package/lib/components/app-component-sections/faqs/faqs.component.d.ts +17 -0
  102. package/lib/components/app-component-sections/faqs/index.d.ts +1 -0
  103. package/lib/components/app-component-sections/feedback-section/feedback-section.component.d.ts +38 -0
  104. package/lib/components/app-component-sections/form-section/form-section.component.d.ts +58 -0
  105. package/lib/components/app-component-sections/index.d.ts +8 -0
  106. package/lib/components/app-component-sections/main-request-details/main-request-details.component.d.ts +13 -0
  107. package/lib/components/app-component-sections/profile-section/profile-section.component.d.ts +17 -0
  108. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +35 -0
  109. package/lib/components/app-component-sections/status/status.component.d.ts +23 -0
  110. package/lib/components/app-component-sections/workflow-section/workflow-section.component.d.ts +29 -0
  111. package/lib/components/shared-components/confirmation-popup/confirmation-popup.component.d.ts +25 -0
  112. package/lib/components/shared-components/delete-popup/delete-popup.component.d.ts +6 -0
  113. package/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +11 -0
  114. package/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.d.ts +11 -0
  115. package/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.d.ts +15 -0
  116. package/lib/components/shared-components/doc-uploader/docs-uploader.component.d.ts +144 -0
  117. package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +16 -0
  118. package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +30 -0
  119. package/lib/components/shared-components/form-field/base-component/base-component.component.d.ts +63 -0
  120. package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +18 -0
  121. package/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.d.ts +29 -0
  122. package/lib/components/shared-components/form-field/date-picker/date-format.d.ts +17 -0
  123. package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +41 -0
  124. package/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.d.ts +10 -0
  125. package/lib/components/shared-components/form-field/form-label/form-label.component.d.ts +12 -0
  126. package/lib/components/shared-components/form-field/index.d.ts +24 -0
  127. package/lib/components/shared-components/form-field/info-item/info-item.component.d.ts +23 -0
  128. package/lib/components/shared-components/form-field/input/input.component.d.ts +32 -0
  129. package/lib/components/shared-components/form-field/input-autocomplete/index.d.ts +1 -0
  130. package/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.d.ts +6 -0
  131. package/lib/components/shared-components/form-field/input-currency/input-currency.component.d.ts +31 -0
  132. package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +27 -0
  133. package/lib/components/shared-components/form-field/input-mask/input-mask.component.d.ts +27 -0
  134. package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +30 -0
  135. package/lib/components/shared-components/form-field/input-telephone/input-telephone.component.d.ts +45 -0
  136. package/lib/components/shared-components/form-field/radio/radio.component.d.ts +10 -0
  137. package/lib/components/shared-components/form-field/repeated-list/repeated-list.component.d.ts +9 -0
  138. package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +44 -0
  139. package/lib/components/shared-components/form-field/select/select.component.d.ts +36 -0
  140. package/lib/components/shared-components/form-field/table-list/table-list.component.d.ts +26 -0
  141. package/lib/components/shared-components/form-field/textarea/special-chars.directive.d.ts +10 -0
  142. package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +20 -0
  143. package/lib/components/shared-components/form-field/toggle-button/toggle-button.component.d.ts +20 -0
  144. package/lib/components/shared-components/index.d.ts +9 -0
  145. package/lib/components/shared-components/terms-conditions/terms-conditions.component.d.ts +12 -0
  146. package/lib/components/shared-components/title-section/title-section.component.d.ts +13 -0
  147. package/lib/constants/constants.d.ts +122 -0
  148. package/lib/constants/index.d.ts +1 -0
  149. package/lib/environments/environment.local.d.ts +26 -0
  150. package/lib/functions/data-to-blob.d.ts +1 -0
  151. package/lib/functions/encode-password.d.ts +1 -0
  152. package/lib/functions/handel-error-response.d.ts +4 -0
  153. package/lib/functions/index.d.ts +4 -0
  154. package/lib/functions/is-valid-data.d.ts +1 -0
  155. package/lib/hooks/index.d.ts +2 -0
  156. package/lib/hooks/load-form.d.ts +10 -0
  157. package/lib/hooks/save-form.d.ts +15 -0
  158. package/lib/i18n/ar.d.ts +170 -0
  159. package/lib/i18n/en.d.ts +174 -0
  160. package/lib/i18n/index.d.ts +2 -0
  161. package/lib/interfaces/api-response.interface.d.ts +5 -0
  162. package/lib/interfaces/document-file.interface.d.ts +12 -0
  163. package/lib/interfaces/form-items.interface.d.ts +14 -0
  164. package/lib/interfaces/form.interface.d.ts +95 -0
  165. package/lib/interfaces/igate-user.interface.d.ts +16 -0
  166. package/lib/interfaces/index.d.ts +7 -0
  167. package/lib/interfaces/lov-list.interface.d.ts +10 -0
  168. package/lib/interfaces/lov.interface.d.ts +19 -0
  169. package/lib/interfaces/shared.interface.d.ts +21 -0
  170. package/lib/pipes/currency.pipe.d.ts +13 -0
  171. package/lib/pipes/format-as-password.pipe.d.ts +7 -0
  172. package/lib/pipes/index.d.ts +2 -0
  173. package/lib/services/feedBack.service.d.ts +21 -0
  174. package/lib/services/i18n.service.d.ts +10 -0
  175. package/lib/services/index.d.ts +2 -0
  176. package/lib/services/sidenav.service.d.ts +28 -0
  177. package/lib/validators/ar.directive.d.ts +11 -0
  178. package/lib/validators/currency.directive.d.ts +16 -0
  179. package/lib/validators/en.directive.d.ts +11 -0
  180. package/lib/validators/id.validator.d.ts +3 -0
  181. package/lib/validators/index.d.ts +7 -0
  182. package/lib/validators/string-to-boolean.pipe.d.ts +7 -0
  183. package/lib/validators/text.directive.d.ts +12 -0
  184. package/lib/validators/timer.pipe.d.ts +7 -0
  185. package/package.json +26 -0
  186. package/public-api.d.ts +13 -0
@@ -0,0 +1,162 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import * as Constants from '../../../constants/constants';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { ProfileSectionComponent } from '../profile-section/profile-section.component';
5
+ import { FeedbackSectionComponent } from '../feedback-section/feedback-section.component';
6
+ import { NgClass, NgIf } from '@angular/common';
7
+ import { SatPopoverModule } from '@ncstate/sat-popover';
8
+ import { MatDivider } from '@angular/material/divider';
9
+ import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
10
+ import { FaqSidenavComponent } from '../faq-sidenav/faq-sidenav.component';
11
+ import { ActivitiesComponent } from '../activities/activities.component';
12
+ import * as moment from 'moment';
13
+ import { FeedBackService } from "../../../services/feedBack.service";
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "../../../services";
16
+ import * as i2 from "../../../services/feedBack.service";
17
+ import * as i3 from "@angular/material/dialog";
18
+ import * as i4 from "@ncstate/sat-popover";
19
+ export class ServiceHeaderComponent {
20
+ i18n;
21
+ feedBackService;
22
+ dialog;
23
+ sidenavService;
24
+ form;
25
+ showHistory = false;
26
+ isLoading = false;
27
+ showApprovalHistory = false;
28
+ approvalHistory;
29
+ creationDate;
30
+ formTitle;
31
+ section;
32
+ serviceBrief = [];
33
+ approvals = [];
34
+ feedBackIcon = null;
35
+ flagPriority;
36
+ constructor(i18n, feedBackService, dialog, sidenavService) {
37
+ this.i18n = i18n;
38
+ this.feedBackService = feedBackService;
39
+ this.dialog = dialog;
40
+ this.sidenavService = sidenavService;
41
+ }
42
+ ngAfterViewInit() {
43
+ this.getApprovalHistory();
44
+ this.creationDate = moment(this.form.header.creationDate).locale('en-US').format("DD/MM/YYYY HH:mm:ss");
45
+ }
46
+ onCommentsFormClick() {
47
+ const comments = this.form.commentsDrop;
48
+ const resultData = [];
49
+ for (let index = 0; index < comments.length; index++) {
50
+ const item = comments[index];
51
+ const obj = {
52
+ name: item.employeeName,
53
+ title: item.jobPosition,
54
+ image: item.profilePicture,
55
+ date: moment(item.commentDate).locale('en-US').format('YYYY-MM-DD'),
56
+ time: moment(item.commentDate).locale('en-US').format('h:mm a'),
57
+ comment: item.commentBody,
58
+ attachments: item.attachment
59
+ };
60
+ resultData.push(obj);
61
+ }
62
+ // this.profileRequesterService.activities = resultData;
63
+ this.sidenavService.publish('open', ActivitiesComponent);
64
+ }
65
+ feedback() {
66
+ this.dialog.open(FeedbackSectionComponent, {
67
+ panelClass: ['main-popup'],
68
+ data: {
69
+ profile: this.form.profileInfoDrop,
70
+ inboxItem: this.form.inboxItem,
71
+ form: this.form
72
+ }
73
+ });
74
+ }
75
+ showUserInfo() {
76
+ if (!this.isLoading) {
77
+ this.sidenavService.data = this.form?.profileInfoDrop;
78
+ this.sidenavService.publish('open', ProfileSectionComponent);
79
+ }
80
+ }
81
+ setFlagPriority(id) {
82
+ this.flagPriority = id;
83
+ this.form.inboxItem.flagPriority = id;
84
+ // this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_SET_FLAG, id).then(() => {
85
+ // });
86
+ }
87
+ statusClass(status) {
88
+ if (status) {
89
+ if (this.isLoading) {
90
+ return 'loading';
91
+ }
92
+ else if (status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED
93
+ || status.toLowerCase().includes('deny')
94
+ || status.toLowerCase().includes('reject')
95
+ || status?.toLowerCase() === 'reject' || status?.toLowerCase() === 'unsatisfied' || status?.toLowerCase() === 'cancel') {
96
+ return 'danger';
97
+ }
98
+ else if (status === Constants.FORM_STATUS_PENDING || status?.toLowerCase() === 'pending') {
99
+ return 'warning';
100
+ }
101
+ else {
102
+ return 'success';
103
+ }
104
+ }
105
+ else {
106
+ return 'success';
107
+ }
108
+ }
109
+ openFaq() {
110
+ this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceBrief);
111
+ }
112
+ getApprovalHistory() {
113
+ this.approvalHistory?.forEach((element, index) => {
114
+ const obj = {
115
+ id: index + 1,
116
+ name: element.approver.personName,
117
+ title: element.positionType,
118
+ image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.approver.personEmail,
119
+ status: this.form.sections[index + 1] ? this.statusClass(this.form.sections[index + 1].body.details.decision.key) : '',
120
+ statusLabel: this.form.sections[index + 1] ? this.form.sections[index + 1].body.details.decision.value : ''
121
+ };
122
+ this.approvals.push(obj);
123
+ });
124
+ }
125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, deps: [{ token: i1.CoreI18nService }, { token: i2.FeedBackService }, { token: i3.MatDialog }, { token: i1.SidenavService }], target: i0.ɵɵFactoryTarget.Component });
126
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ServiceHeaderComponent, isStandalone: true, selector: "core-service-header", inputs: { form: "form", showHistory: "showHistory", isLoading: "isLoading", showApprovalHistory: "showApprovalHistory", approvalHistory: "approvalHistory", creationDate: "creationDate", formTitle: "formTitle", section: "section", serviceBrief: "serviceBrief" }, providers: [FeedBackService,
127
+ { provide: MAT_DIALOG_DATA, useValue: {} },
128
+ ], ngImport: i0, template: "<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\r\n <!--<ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>-->\r\n\r\n <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ (form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\"\r\n *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!-- feedback-->\r\n<!-- *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"-->\r\n <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-container *ngIf=\"showApprovalHistory\">\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ (form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\r\n", styles: [":host ::ng-deep .filter-section .select-form-field{--input-bg: var(--white);--input-border: var(--white);--placeholder-fc: var(--black);--input-width: 85px;--input-fs: .75rem;--placeholder-fs: .75rem;--label-fs: .75rem;--label-fw: var(--font-regular);--input-height: var(--default-size-sm);font-size:var(--label-fs);box-shadow:var(--box-shadow)}:host ::ng-deep ds-button::part(base){--default-size-sm: 30px;--btn-radius: 3px}@media (max-width: 576px){:host ::ng-deep ds-button::part(base){--default-size-sm: 25px}}:host ::ng-deep .loading-width{min-width:100px;width:40px;flex-grow:1}:host ::ng-deep ds-avatar::part(base){--default-size: 20px}:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-lg);--header-border-color: var(--coral);display:flex;align-items:flex-start;border-top:5px solid var(--header-border-color);box-shadow:0 7px 10px rgba(var(--rgb-black),3%)}@media (max-width: 576px){:host ::ng-deep .service-header{border-radius:3px 3px 0 0}}:host ::ng-deep .service-header.loading{--header-border-color: var(--off-white)}:host ::ng-deep .service-header.warning{--header-border-color: var(--yellow)}:host ::ng-deep .service-header.success{--header-border-color: var(--green)}:host ::ng-deep .service-header.danger{--header-border-color: var(--red)}@media (max-width: 576px){:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-sm)}}:host ::ng-deep .service-header .service-header-icon{min-width:var(--service-header-icon-size);width:var(--service-header-icon-size);height:var(--service-header-icon-size);display:inline-flex;align-items:center;justify-content:center;padding:.75rem;border-radius:6px 6px 6px 0;background-color:rgba(var(--rgb-coral),.1)}@media (max-width: 576px){:host ::ng-deep .service-header .service-header-icon{padding:.5rem}}:host ::ng-deep .service-header .header-title{text-align:start}:host ::ng-deep .service-header .divider.circle{min-width:5px;width:5px;min-height:5px;height:5px;border-radius:50%;background-color:var(--dark-gray)}:host ::ng-deep .service-header .header-actions{align-items:flex-end;justify-content:flex-end}:host ::ng-deep .service-header .header-actions .has-comments{position:relative}:host ::ng-deep .service-header .header-actions .has-comments:before{content:\"\";min-width:8px;height:8px;border-radius:50%;background-color:var(--coral);position:absolute;top:-3px;right:-3px;z-index:1}[dir=rtl] :host ::ng-deep .service-header .header-actions .has-comments:before{right:auto;left:-3px}:host ::ng-deep .service-header .header-actions ds-button::part(base){--btn-color: var(--coral);--btn-bg-color: var(--light-gray);--btn-border-color: var(--light-gray)}:host ::ng-deep .service-header .header-user{color:var(--dark-gray)}:host ::ng-deep .history-button::part(base){background-color:var(--white);--btn-height: var(--default-size-sm);--btn-shadow: 0 7px 10px rgba(var(--rgb-black), 3%)}@media (max-width: 576px){:host ::ng-deep .history-button::part(base){--btn-height: 35px;--btn-width: 35px}}@media (max-width: 576px){:host ::ng-deep .history-button::part(label){display:none}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i4.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i4.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, decorators: [{
131
+ type: Component,
132
+ args: [{ selector: 'core-service-header', standalone: true, imports: [
133
+ NgIf,
134
+ SatPopoverModule,
135
+ MatDivider,
136
+ MatMenuTrigger,
137
+ NgClass,
138
+ MatMenu,
139
+ MatMenuItem
140
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [FeedBackService,
141
+ { provide: MAT_DIALOG_DATA, useValue: {} },
142
+ ], template: "<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\r\n <!--<ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>-->\r\n\r\n <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ (form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\"\r\n *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!-- feedback-->\r\n<!-- *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"-->\r\n <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-container *ngIf=\"showApprovalHistory\">\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ (form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\r\n", styles: [":host ::ng-deep .filter-section .select-form-field{--input-bg: var(--white);--input-border: var(--white);--placeholder-fc: var(--black);--input-width: 85px;--input-fs: .75rem;--placeholder-fs: .75rem;--label-fs: .75rem;--label-fw: var(--font-regular);--input-height: var(--default-size-sm);font-size:var(--label-fs);box-shadow:var(--box-shadow)}:host ::ng-deep ds-button::part(base){--default-size-sm: 30px;--btn-radius: 3px}@media (max-width: 576px){:host ::ng-deep ds-button::part(base){--default-size-sm: 25px}}:host ::ng-deep .loading-width{min-width:100px;width:40px;flex-grow:1}:host ::ng-deep ds-avatar::part(base){--default-size: 20px}:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-lg);--header-border-color: var(--coral);display:flex;align-items:flex-start;border-top:5px solid var(--header-border-color);box-shadow:0 7px 10px rgba(var(--rgb-black),3%)}@media (max-width: 576px){:host ::ng-deep .service-header{border-radius:3px 3px 0 0}}:host ::ng-deep .service-header.loading{--header-border-color: var(--off-white)}:host ::ng-deep .service-header.warning{--header-border-color: var(--yellow)}:host ::ng-deep .service-header.success{--header-border-color: var(--green)}:host ::ng-deep .service-header.danger{--header-border-color: var(--red)}@media (max-width: 576px){:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-sm)}}:host ::ng-deep .service-header .service-header-icon{min-width:var(--service-header-icon-size);width:var(--service-header-icon-size);height:var(--service-header-icon-size);display:inline-flex;align-items:center;justify-content:center;padding:.75rem;border-radius:6px 6px 6px 0;background-color:rgba(var(--rgb-coral),.1)}@media (max-width: 576px){:host ::ng-deep .service-header .service-header-icon{padding:.5rem}}:host ::ng-deep .service-header .header-title{text-align:start}:host ::ng-deep .service-header .divider.circle{min-width:5px;width:5px;min-height:5px;height:5px;border-radius:50%;background-color:var(--dark-gray)}:host ::ng-deep .service-header .header-actions{align-items:flex-end;justify-content:flex-end}:host ::ng-deep .service-header .header-actions .has-comments{position:relative}:host ::ng-deep .service-header .header-actions .has-comments:before{content:\"\";min-width:8px;height:8px;border-radius:50%;background-color:var(--coral);position:absolute;top:-3px;right:-3px;z-index:1}[dir=rtl] :host ::ng-deep .service-header .header-actions .has-comments:before{right:auto;left:-3px}:host ::ng-deep .service-header .header-actions ds-button::part(base){--btn-color: var(--coral);--btn-bg-color: var(--light-gray);--btn-border-color: var(--light-gray)}:host ::ng-deep .service-header .header-user{color:var(--dark-gray)}:host ::ng-deep .history-button::part(base){background-color:var(--white);--btn-height: var(--default-size-sm);--btn-shadow: 0 7px 10px rgba(var(--rgb-black), 3%)}@media (max-width: 576px){:host ::ng-deep .history-button::part(base){--btn-height: 35px;--btn-width: 35px}}@media (max-width: 576px){:host ::ng-deep .history-button::part(label){display:none}}\n"] }]
143
+ }], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i2.FeedBackService }, { type: i3.MatDialog }, { type: i1.SidenavService }], propDecorators: { form: [{
144
+ type: Input
145
+ }], showHistory: [{
146
+ type: Input
147
+ }], isLoading: [{
148
+ type: Input
149
+ }], showApprovalHistory: [{
150
+ type: Input
151
+ }], approvalHistory: [{
152
+ type: Input
153
+ }], creationDate: [{
154
+ type: Input
155
+ }], formTitle: [{
156
+ type: Input
157
+ }], section: [{
158
+ type: Input
159
+ }], serviceBrief: [{
160
+ type: Input
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc2VydmljZS1oZWFkZXIvc2VydmljZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc2VydmljZS1oZWFkZXIvc2VydmljZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sS0FBSyxTQUFTLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRXBFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQVEsS0FBSyxN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Q0wsQ0FBQzt1R0E3R1Usc0JBQXNCOzJGQUF0QixzQkFBc0Isd1VBSnRCLENBQUMsZUFBZTtZQUN6QixFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQztTQUN6QywwQkNsQ0gscTJRQWtJQSwra0dEM0dJLElBQUksNEZBQ0osZ0JBQWdCLG1xQkFDaEIsVUFBVSx1RkFFVixPQUFPOzsyRkFTRSxzQkFBc0I7a0JBbkJsQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsV0FBVztxQkFDWixXQUNRLENBQUMsc0JBQXNCLENBQUMsYUFDdEIsQ0FBQyxlQUFlO3dCQUN6QixFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQztxQkFDekM7dUtBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgKiBhcyBDb25zdGFudHMgZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7Q29yZUkxOG5TZXJ2aWNlLCBTaWRlbmF2U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge1Byb2ZpbGVTZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9wcm9maWxlLXNlY3Rpb24vcHJvZmlsZS1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RmVlZGJhY2tTZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9mZWVkYmFjay1zZWN0aW9uL2ZlZWRiYWNrLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1NhdFBvcG92ZXJNb2R1bGV9IGZyb20gJ0BuY3N0YXRlL3NhdC1wb3BvdmVyJztcclxuaW1wb3J0IHtNYXREaXZpZGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQge0ZhcVNpZGVuYXZDb21wb25lbnR9IGZyb20gJy4uL2ZhcS1zaWRlbmF2L2ZhcS1zaWRlbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QWN0aXZpdGllc0NvbXBvbmVudH0gZnJvbSAnLi4vYWN0aXZpdGllcy9hY3Rpdml0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCAgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50J1xyXG5pbXBvcnQge0ZlZWRCYWNrU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2ZlZWRCYWNrLnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtc2VydmljZS1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nSWYsXHJcbiAgICBTYXRQb3BvdmVyTW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlcixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdE1lbnUsXHJcbiAgICBNYXRNZW51SXRlbVxyXG4gIF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW0ZlZWRCYWNrU2VydmljZSxcclxuICAgIHtwcm92aWRlOiBNQVRfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiB7fX0sXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmljZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgc2hvd0hpc3RvcnkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QXBwcm92YWxIaXN0b3J5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXBwcm92YWxIaXN0b3J5OiBhbnk7XHJcbiAgQElucHV0KCkgY3JlYXRpb25EYXRlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZm9ybVRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBASW5wdXQoKSBzZXJ2aWNlQnJpZWY6IGFueVtdID0gW107XHJcbiAgYXBwcm92YWxzOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBmZWVkQmFja0ljb246IHN0cmluZyA9IG51bGw7XHJcbiAgZmxhZ1ByaW9yaXR5OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGkxOG46IENvcmVJMThuU2VydmljZSwgcHJpdmF0ZSBmZWVkQmFja1NlcnZpY2U6IEZlZWRCYWNrU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgcmVhZG9ubHkgc2lkZW5hdlNlcnZpY2U6IFNpZGVuYXZTZXJ2aWNlLFxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0QXBwcm92YWxIaXN0b3J5KCk7XHJcbiAgICAgIHRoaXMuY3JlYXRpb25EYXRlID0gbW9tZW50KHRoaXMuZm9ybS5oZWFkZXIuY3JlYXRpb25EYXRlKS5sb2NhbGUoJ2VuLVVTJykuZm9ybWF0KFwiREQvTU0vWVlZWSBISDptbTpzc1wiKTtcclxuICB9XHJcblxyXG4gIG9uQ29tbWVudHNGb3JtQ2xpY2soKSB7XHJcbiAgICBjb25zdCBjb21tZW50czogYW55ID0gdGhpcy5mb3JtLmNvbW1lbnRzRHJvcDtcclxuICAgIGNvbnN0IHJlc3VsdERhdGEgPSBbXTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb21tZW50cy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgaXRlbSA9IGNvbW1lbnRzW2luZGV4XTtcclxuICAgICAgY29uc3Qgb2JqID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBpdGVtLmVtcGxveWVlTmFtZSxcclxuICAgICAgICAgIHRpdGxlOiBpdGVtLmpvYlBvc2l0aW9uLFxyXG4gICAgICAgICAgaW1hZ2U6IGl0ZW0ucHJvZmlsZVBpY3R1cmUsXHJcbiAgICAgICAgICBkYXRlOiBtb21lbnQoaXRlbS5jb21tZW50RGF0ZSkubG9jYWxlKCdlbi1VUycpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxyXG4gICAgICAgICAgdGltZTogbW9tZW50KGl0ZW0uY29tbWVudERhdGUpLmxvY2FsZSgnZW4tVVMnKS5mb3JtYXQoJ2g6bW0gYScpLFxyXG4gICAgICAgICAgY29tbWVudDogaXRlbS5jb21tZW50Qm9keSxcclxuICAgICAgICAgIGF0dGFjaG1lbnRzOiBpdGVtLmF0dGFjaG1lbnRcclxuICAgICAgICB9O1xyXG4gICAgICByZXN1bHREYXRhLnB1c2gob2JqKTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMucHJvZmlsZVJlcXVlc3RlclNlcnZpY2UuYWN0aXZpdGllcyA9IHJlc3VsdERhdGE7XHJcbiAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ29wZW4nLCBBY3Rpdml0aWVzQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIGZlZWRiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihGZWVkYmFja1NlY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgcGFuZWxDbGFzczogWydtYWluLXBvcHVwJ10sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBwcm9maWxlOiB0aGlzLmZvcm0ucHJvZmlsZUluZm9Ecm9wLFxyXG4gICAgICAgIGluYm94SXRlbTogdGhpcy5mb3JtLmluYm94SXRlbSxcclxuICAgICAgICBmb3JtOiB0aGlzLmZvcm1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93VXNlckluZm8oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuZGF0YSA9IHRoaXMuZm9ybT8ucHJvZmlsZUluZm9Ecm9wO1xyXG4gICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ29wZW4nLCBQcm9maWxlU2VjdGlvbkNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRGbGFnUHJpb3JpdHkoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5mbGFnUHJpb3JpdHkgPSBpZDtcclxuICAgIHRoaXMuZm9ybS5pbmJveEl0ZW0uZmxhZ1ByaW9yaXR5ID0gaWQ7XHJcbiAgICAvLyB0aGlzLnN0YXRlTWFjaGluZVNlcnZpY2UuZGlzcGF0Y2goQ29uc3RhbnRzLlNUQVRFX01BQ0hJTkVfQUNUSU9OX1NFVF9GTEFHLCBpZCkudGhlbigoKSA9PiB7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHN0YXR1c0NsYXNzKHN0YXR1czogc3RyaW5nKSB7XHJcbiAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICAgIHJldHVybiAnbG9hZGluZyc7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgc3RhdHVzID09PSBDb25zdGFudHMuRk9STV9TVEFUVVNfUkVKRUNURUQgfHwgc3RhdHVzID09PSBDb25zdGFudHMuRk9STV9TVEFUVVNfQ0FOQ0VMTEVEXHJcbiAgICAgICAgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2RlbnknKVxyXG4gICAgICAgIHx8IHN0YXR1cy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWplY3QnKVxyXG4gICAgICAgIHx8IHN0YXR1cz8udG9Mb3dlckNhc2UoKSA9PT0gJ3JlamVjdCcgfHwgc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAndW5zYXRpc2ZpZWQnIHx8IHN0YXR1cz8udG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbCdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuICdkYW5nZXInO1xyXG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX1BFTkRJTkcgfHwgc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZycpIHtcclxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuRmFxKCkge1xyXG4gICAgdGhpcy5zaWRlbmF2U2VydmljZS5wdWJsaXNoKCdvcGVuJywgRmFxU2lkZW5hdkNvbXBvbmVudCwgJ2VuZCcsICdvdmVyJywgdGhpcy5zZXJ2aWNlQnJpZWYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXBwcm92YWxIaXN0b3J5KCkge1xyXG4gICAgdGhpcy5hcHByb3ZhbEhpc3Rvcnk/LmZvckVhY2goKGVsZW1lbnQ6IHsgYXBwcm92ZXI6IHsgcGVyc29uTmFtZTogYW55OyBwZXJzb25FbWFpbDogc3RyaW5nOyB9OyBwb3NpdGlvblR5cGU6IGFueTsgfSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgaWQ6IGluZGV4ICsgMSxcclxuICAgICAgICBuYW1lOiBlbGVtZW50LmFwcHJvdmVyLnBlcnNvbk5hbWUsXHJcbiAgICAgICAgdGl0bGU6IGVsZW1lbnQucG9zaXRpb25UeXBlLFxyXG4gICAgICAgIGltYWdlOiAnL2dyb3VwL2ktZ2F0ZS93bS1icG0vZm9ybXMvLS9wcm94eS9wb3J0cmFpdD9lbWFpbD0nICsgZWxlbWVudC5hcHByb3Zlci5wZXJzb25FbWFpbCxcclxuICAgICAgICBzdGF0dXM6IHRoaXMuZm9ybS5zZWN0aW9uc1tpbmRleCArIDFdID8gdGhpcy5zdGF0dXNDbGFzcyh0aGlzLmZvcm0uc2VjdGlvbnNbaW5kZXggKyAxXS5ib2R5LmRldGFpbHMuZGVjaXNpb24ua2V5KSA6ICcnLFxyXG4gICAgICAgIHN0YXR1c0xhYmVsOiB0aGlzLmZvcm0uc2VjdGlvbnNbaW5kZXggKyAxXSA/IHRoaXMuZm9ybS5zZWN0aW9uc1tpbmRleCArIDFdLmJvZHkuZGV0YWlscy5kZWNpc2lvbi52YWx1ZSA6ICcnXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuYXBwcm92YWxzLnB1c2gob2JqKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIShmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSA9PT0gJ05FVycpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBnYXAtMiBteS0yXCIgKm5nSWY9XCIhKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddID09PSAnTkVXJylcIj5cclxuXHJcbiAgICA8IS0tIGZsYWctLT5cclxuICAgIDwhLS08ZHMtYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiZm9ybT8uaW5ib3hJdGVtICYmICFmb3JtLnNlY3Rpb25zW2Zvcm0uc2VjdGlvbnMubGVuZ3RoIC0xXS5oZWFkZXIucmVhZE9ubHkgJiYgIWlzTG9hZGluZ1wiXHJcbiAgICAgIHNxdWFyZVxyXG4gICAgICBpY29uXHJcbiAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgY2xhc3M9XCJpY29uLWJ0bi1zaGFkb3dcIj5cclxuICAgICAgPGRzLWljb25cclxuICAgICAgICBbbmdDbGFzc109XCJ7J2ZjLXB1cnBsZScgOiAoZmxhZ1ByaW9yaXR5ID09PSAnMCcgfHwgIGZsYWdQcmlvcml0eSA9PT0gbnVsbCksJ2ZjLXllbGxvdycgOiBmbGFnUHJpb3JpdHkgPT09ICcxJywnZmMtZ3JlZW4nIDogZmxhZ1ByaW9yaXR5ID09PSAnMicsJ2ZjLWNvcmFsJyA6IGZsYWdQcmlvcml0eSA9PT0gJzMnfVwiXHJcbiAgICAgICAgaWNvbj1cImZsYWctb1wiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtcHVycGxlXCI+XHJcbiAgICAgIDwvZHMtaWNvbj5cclxuICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHBhbmVsQ2xhc3M9XCJhY3Rpb24tbWVudVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNldEZsYWdQcmlvcml0eSgnMCcpXCI+XHJcbiAgICAgICAgPGRzLWljb24gaWNvbj1cImZsYWctb1wiIGNsYXNzPVwiZmMtcHVycGxlIGZzLTIwIGZzLW1kLTE3XCI+PC9kcy1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZXRGbGFnUHJpb3JpdHkoJzEnKVwiPlxyXG4gICAgICAgIDxkcy1pY29uIGljb249XCJmbGFnLW9cIiBjbGFzcz1cImZjLXllbGxvdyBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2V0RmxhZ1ByaW9yaXR5KCcyJylcIj5cclxuICAgICAgICA8ZHMtaWNvbiBpY29uPVwiZmxhZy1vXCIgY2xhc3M9XCJmYy1ncmVlbiBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2V0RmxhZ1ByaW9yaXR5KCczJylcIj5cclxuICAgICAgICA8ZHMtaWNvbiBpY29uPVwiZmxhZy1vXCIgY2xhc3M9XCJmYy1jb3JhbCBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1tZW51Pi0tPlxyXG5cclxuICAgIDwhLS0gcHJpbnQtLT5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGhlYWRlciBjbGFzcz1cInNlcnZpY2UtaGVhZGVyIGJjLXdoaXRlIHAtMyBwLXNtLTQgcHktNCBnYXAtMyB7e3N0YXR1c0NsYXNzKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddKX19XCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaGVhZGVyLWljb25cIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTXpBaUlHaGxhV2RvZEQwaU1qa2lJSFpwWlhkQ2IzZzlJakFnTUNBek1DQXlPU0lnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BIQmhkR2dnWkQwaVRUSTFMakVnTUVnMExqbERNaTR5SURBZ01DQXlMaklnTUNBMExqbFdNamd1TmtneU5TNHhRekkzTGpnZ01qZ3VOaUF6TUNBeU5pNDBJRE13SURJekxqZFdOQzQ1UXpNd0lESXVNaUF5Tnk0NElEQWdNalV1TVNBd1drMHlJRFF1T1VNeUlETXVNeUF6TGpNZ01pQTBMamtnTWtneU5TNHhRekkyTGpjZ01pQXlPQ0F6TGpNZ01qZ2dOQzQ1VmpJekxqZERNamdnTWpVdU15QXlOaTQzSURJMkxqWWdNalV1TVNBeU5pNDJTREpXTkM0NVdrMHhNUzQxSURZdU0wTTNMakVnTmk0eklETXVOU0E1TGprZ015NDFJREUwTGpORE15NDFJREU0TGpjZ055NHhJREl5TGpNZ01URXVOU0F5TWk0elF6RTFMamtnTWpJdU15QXhPUzQxSURFNExqY2dNVGt1TlNBeE5DNHpRekU1TGpVZ09TNDVJREUxTGprZ05pNHpJREV4TGpVZ05pNHpXazB4TlM0eElERTVRekUwTGpFZ01Ua3VPQ0F4TWk0NElESXdMaklnTVRFdU5TQXlNQzR5UXpFd0xqSWdNakF1TWlBNExqa2dNVGt1T0NBM0xqa2dNVGxET0M0M0lERTNMamNnTVRBZ01UY2dNVEV1TlNBeE4wTXhNeUF4TnlBeE5DNDBJREUzTGpnZ01UVXVNU0F4T1ZwTk1UTXVNU0F4TXk0MFF6RXpMakVnTVRRdU15QXhNaTQwSURFMUlERXhMalVnTVRWRE1UQXVOaUF4TlNBNUxqa2dNVFF1TXlBNUxqa2dNVE11TkVNNUxqa2dNVEl1TlNBeE1DNDJJREV4TGpnZ01URXVOU0F4TVM0NFF6RXlMalFnTVRFdU9DQXhNeTR4SURFeUxqVWdNVE11TVNBeE15NDBXazB4TlM0eElERXpMalJETVRVdU1TQXhNUzQwSURFekxqVWdPUzQ0SURFeExqVWdPUzQ0UXprdU5TQTVMamdnTnk0NUlERXhMalFnTnk0NUlERXpMalJETnk0NUlERTBMaklnT0M0eUlERTFJRGd1TnlBeE5TNDNRemN1T0NBeE5pNHhJRGN1TVNBeE5pNDRJRFl1TlNBeE55NDJRelV1T0NBeE5pNDJJRFV1TlNBeE5TNDFJRFV1TlNBeE5DNHpRelV1TlNBeE1TQTRMaklnT0M0eklERXhMalVnT0M0elF6RTBMamdnT0M0eklERTNMalVnTVRFZ01UY3VOU0F4TkM0elF6RTNMalVnTVRVdU5TQXhOeTR5SURFMkxqWWdNVFl1TlNBeE55NDJRekUxTGprZ01UWXVPQ0F4TlM0eUlERTJMaklnTVRRdU15QXhOUzQzUXpFMExqZ2dNVFV1TVNBeE5TNHhJREUwTGpJZ01UVXVNU0F4TXk0MFdrMHlNU0E1TGpGRE1qRWdPQzQySURJeExqUWdPQzR4SURJeUlEZ3VNVWd5TlM0MVF6STJJRGd1TVNBeU5pNDFJRGd1TlNBeU5pNDFJRGt1TVVNeU5pNDFJRGt1TmlBeU5pNHhJREV3TGpFZ01qVXVOU0F4TUM0eFNESXlRekl4TGpRZ01UQXVNU0F5TVNBNUxqWWdNakVnT1M0eFdrMHlNU0F4TWk0MVF6SXhJREV5SURJeExqUWdNVEV1TlNBeU1pQXhNUzQxU0RJMUxqVkRNallnTVRFdU5TQXlOaTQxSURFeExqa2dNall1TlNBeE1pNDFRekkyTGpVZ01UTWdNall1TVNBeE15NDFJREkxTGpVZ01UTXVOVWd5TWtNeU1TNDBJREV6TGpVZ01qRWdNVE11TVNBeU1TQXhNaTQxV2sweU1TQXhOa015TVNBeE5TNDFJREl4TGpRZ01UVWdNaklnTVRWSU1qVXVOVU15TmlBeE5TQXlOaTQxSURFMUxqUWdNall1TlNBeE5rTXlOaTQxSURFMkxqVWdNall1TVNBeE55QXlOUzQxSURFM1NESXlRekl4TGpRZ01UY2dNakVnTVRZdU5pQXlNU0F4TmxwTk1qVXVOU0F5TUM0MVNESXlRekl4TGpVZ01qQXVOU0F5TVNBeU1DNHhJREl4SURFNUxqVkRNakVnTVRndU9TQXlNUzQwSURFNExqVWdNaklnTVRndU5VZ3lOUzQxUXpJMklERTRMalVnTWpZdU5TQXhPQzQ1SURJMkxqVWdNVGt1TlVNeU5pNDFJREl3TGpFZ01qWXVNU0F5TUM0MUlESTFMalVnTWpBdU5Wb2lJR1pwYkd3OUlpTkdSak0zTlVVaUx6NEtQQzl6ZG1jK0NnPT1cIi8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtc20tcm93IGFsaWduLWl0ZW1zLXNtLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cclxuICAgICAgICA8IS0tIHRpdGxlLS0+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTYgZnctYm9sZCBmYy1ibGFjayBoZWFkZXItdGl0bGUgbS0wXCI+e3sgZm9ybVRpdGxlIH19XHJcbiAgICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgICBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMjIgZmMtZGFyay1ncmF5IGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCJzZXJ2aWNlQnJpZWYubGVuZ3RoXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GYXEoKVwiPjwvZHMtaWNvbj5cclxuICAgICAgICA8L2gxPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLXVzZXIgZC1mbGV4IGFsaWduLWl0ZW1zLXNtLWNlbnRlciBnYXAtMiBtdC1zbS0xXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10gIT09ICdORVcnIHx8IGlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRzLWF2YXRhclxyXG4gICAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIiBpbWFnZT1cInt7Zm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJQaG90b319XCIgc2l6ZT1cInh4LXNtYWxsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJkLWlubGluZS1mbGV4IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNob3dVc2VySW5mbygpXCI+PC9kcy1hdmF0YXI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cImZzLTEyIHRleHQtdHJ1bmNhdGUgZC1zbS1ibG9jayBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzaG93VXNlckluZm8oKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiPnt7IChmb3JtPy5oZWFkZXI/LnJlcXVlc3Rlck5hbWUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlciBjaXJjbGUgbXgtMiBkLW5vbmUgZC1zbS1ibG9ja1wiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyXCIgW25nQ2xhc3NdPVwieydsb2FkaW5nLWJnIGxvYWRpbmctd2lkdGgnOiBpc0xvYWRpbmd9XCI+e3sgZm9ybT8uaGVhZGVyPy5mb3JtSWQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJjcmVhdGlvbkRhdGVcIiBjbGFzcz1cImRpdmlkZXIgY2lyY2xlIG14LTIgZC1ub25lIGQtc20tYmxvY2tcIj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcmVhdGlvbkRhdGVcIiBjbGFzcz1cImZzLTE0XCIgW25nQ2xhc3NdPVwieydsb2FkaW5nLWJnIGxvYWRpbmctd2lkdGgnOiBpc0xvYWRpbmd9XCI+e3sgY3JlYXRpb25EYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSBoZWFkZXItYWN0aW9ucy0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJoZWFkZXItYWN0aW9ucyBkLWZsZXggZmxleC1yb3cgZmxleC1zbS1jb2x1bW4ganVzdGlmeS1jb250ZW50LWJldHdlZW4ganVzdGlmeS1jb250ZW50LXNtLWNlbnRlciBnYXAtMiBtdC0yIG10LXNtLTBcIlxyXG4gICAgICAgICpuZ0lmPVwiIShmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSA9PT0gJ05FVycpXCI+XHJcbiAgICAgICAgPGRzLXN0YXR1c1xyXG4gICAgICAgICAgKm5nSWY9XCJmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSAhPT0gJ05FVycgJiYgIWlzTG9hZGluZ1wiXHJcbiAgICAgICAgICBzdGF0dXM9XCJ7e3N0YXR1c0NsYXNzKGZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddKX19XCIgY2xhc3M9XCJoZWFkZXItc3RhdHVzXCI+e3sgZm9ybT8uaGVhZGVyPy5zdGF0dXM/LlsndmFsdWUnXSB9fVxyXG4gICAgICAgIDwvZHMtc3RhdHVzPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIGdhcC0yXCI+XHJcbiAgICAgICAgICA8IS0tIGZlZWRiYWNrLS0+XHJcbjwhLS0gICAgICAgICAgICAqbmdJZj1cImZvcm0/LmluYm94SXRlbSAmJiAoZm9ybT8uaW5ib3hJdGVtPy5jYW5SZXF1ZXN0RmVlZGJhY2sgPT09J3RydWUnfHwgZm9ybT8uaW5ib3hJdGVtPy5oYXNGZWVkYmFjaz09PSd0cnVlJykgJiYgIWlzTG9hZGluZ1wiLS0+XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgIHNxdWFyZSBpY29uIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJmZWVkYmFjaygpXCI+XHJcbiAgICAgICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICAgICAgaWNvbj1cImNoYXQtb1wiIGNsYXNzPVwiZnMtMjAgZnMtbWQtMTcgZmMtY29yYWxcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZmMtZ3JlZW4nOmZlZWRCYWNrSWNvbiA9PT0gJ2ZlZWRiYWNrUmVzcG9uZGVkJyAsICdmYy1yZWQnOiBmZWVkQmFja0ljb24gPT09ICdyZXNwb25kVG9GZWVkYmFjaycgLCAnZmMteWVsbG93JzogZmVlZEJhY2tJY29uID09PSAnd2FpdGluZ0ZlZWRiYWNrJ31cIj5cclxuICAgICAgICAgICAgPC9kcy1pY29uPlxyXG4gICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybT8uY29tbWVudHNEcm9wPy5sZW5ndGggPiAwICYmICFpc0xvYWRpbmdcIiBzcXVhcmUgaWNvbiBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Db21tZW50c0Zvcm1DbGljaygpXCIgY2xhc3M9XCJoYXMtY29tbWVudHNcIj5cclxuICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImNsb2NrXCIgY2xhc3M9XCJmYy1jb3JhbCBmcy0yMCBmcy1tZC0xN1wiPjwvZHMtaWNvbj5cclxuICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBcHByb3ZhbEhpc3RvcnlcIj5cclxuICAgICAgICAgICAgPGRzLWJ1dHRvblxyXG4gICAgICAgICAgICAgIGNvbG9yPVwid2hpdGVcIiBzaGFwZT1cInRleHRcIiBzcXVhcmUgc2l6ZT1cInNtYWxsXCIgW3NhdFBvcG92ZXJBbmNob3JdPVwid29ya2Zsb3dcIlxyXG4gICAgICAgICAgICAgICN3b3JrZmxvd0FuY2hvcj1cInNhdFBvcG92ZXJBbmNob3JcIiAoY2xpY2spPVwid29ya2Zsb3dBbmNob3IucG9wb3Zlci5vcGVuKClcIj5cclxuICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwicHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwid29ya2Zsb3dcIiBjbGFzcz1cImZzLTI0XCI+PC9kcy1pY29uPlxyXG4gICAgICAgICAgICAgIDwvc2xvdD5cclxuICAgICAgICAgICAgPC9kcy1idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8c2F0LXBvcG92ZXJcclxuICAgICAgICAgICAgICAjd29ya2Zsb3cgW2FuY2hvcl09XCJ3b3JrZmxvd0FuY2hvclwiIFtoYXNCYWNrZHJvcF09XCJ0cnVlXCIgdmVydGljYWxBbGlnbj1cImJlbG93XCJcclxuICAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJlbmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtM1wiIHN0eWxlPVwibWluLXdpZHRoOiAzMzBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkcy1hcHByb3ZhbHMgKm5nSWY9XCJhcHByb3ZhbEhpc3RvcnlcIiBjbGFzcz1cInBvcG92ZXItYXBwcm92YWxzXCIgYXBwcm92YWxzRGF0YT1cInt7YXBwcm92YWxzfX1cIj5cclxuICAgICAgICAgICAgICAgIDwvZHMtYXBwcm92YWxzPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvaGVhZGVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGhlYWRlclxyXG4gIGNsYXNzPVwibWItNCBtdC00IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIGdhcC0yXCJcclxuICAqbmdJZj1cIihmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSA9PT0gJ05FVycpXCI+XHJcbiAgPHNlY3Rpb24+XHJcbiAgICA8aDYgY2xhc3M9XCJmcy0xNCBmcy1tZC0xMiBmdy1ub3JtYWwgZmMtZGFyay1ncmF5IG1iLTBcIj5cclxuICAgICAge3sgaTE4bi50cmFuc2xhdGUoJ0hlbGxvJykgfX1cclxuICAgICAge3sgKGZvcm0/LmhlYWRlcj8ucmVxdWVzdGVyTmFtZSkgfX0sIHt7IGkxOG4udHJhbnNsYXRlKCd3ZWxjb21lQmFjaycpIH19IVxyXG4gICAgPC9oNj5cclxuICAgIDxoMSBjbGFzcz1cImZzLTI2IGZzLW1kLTIwIGZ3LWJvbGQgZmMtYmxhY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xXCI+XHJcbiAgICAgIHt7IGZvcm1UaXRsZSB9fVxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiaW5mb1wiIGNsYXNzPVwiZnMtMjIgZmMtZGFyay1ncmF5IGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCJzZXJ2aWNlQnJpZWYubGVuZ3RoXCIgKGNsaWNrKT1cIm9wZW5GYXEoKVwiPlxyXG4gICAgICA8L2RzLWljb24+XHJcbiAgICA8L2gxPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbjwvaGVhZGVyPlxyXG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import * as Constants from '../../../constants';
3
+ import { NgClass } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ export class StatusComponent {
6
+ form;
7
+ statusClass(status) {
8
+ if (status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED) {
9
+ return {
10
+ status: true,
11
+ danger: status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED
12
+ };
13
+ }
14
+ else if (status === Constants.FORM_STATUS_PENDING) {
15
+ return {
16
+ status: true,
17
+ warning: status === Constants.FORM_STATUS_PENDING
18
+ };
19
+ }
20
+ else {
21
+ return {
22
+ status: true,
23
+ success: status === Constants.FORM_STATUS_COMPLETED || Constants.FORM_STATUS_APPROVED
24
+ };
25
+ }
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: StatusComponent, isStandalone: true, selector: "app-status", inputs: { form: "form" }, ngImport: i0, template: "<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n", styles: ["@media only screen and (max-width: 767px){.status{display:none}.mobileStatus{display:block}}.status{font-size:14px;padding:5px 10px;border-radius:5px;color:#fff;margin-left:15px;float:right;margin-top:13px;cursor:default}.danger{background-color:#f44336}.success{background-color:#5cb85c}.warning{background-color:#ffc5191f!important;color:#ffc519!important;font-weight:500!important}.info{background-color:#1691f9}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StatusComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'app-status', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
33
+ NgClass
34
+ ], template: "<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n", styles: ["@media only screen and (max-width: 767px){.status{display:none}.mobileStatus{display:block}}.status{font-size:14px;padding:5px 10px;border-radius:5px;color:#fff;margin-left:15px;float:right;margin-top:13px;cursor:default}.danger{background-color:#f44336}.success{background-color:#5cb85c}.warning{background-color:#ffc5191f!important;color:#ffc519!important;font-weight:500!important}.info{background-color:#1691f9}\n"] }]
35
+ }], propDecorators: { form: [{
36
+ type: Input
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9hcHAtY29tcG9uZW50LXNlY3Rpb25zL3N0YXR1cy9zdGF0dXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvc3RhdHVzL3N0YXR1cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZMUMsTUFBTSxPQUFPLGVBQWU7SUFDakIsSUFBSSxDQUFPO0lBRXBCLFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLElBQUksTUFBTSxLQUFLLFNBQVMsQ0FBQyxvQkFBb0IsSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDNUYsT0FBTztnQkFDTCxNQUFNLEVBQUUsSUFBSTtnQkFDWixNQUFNLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQyxvQkFBb0IsSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDLHFCQUFxQjthQUNoRyxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3BELE9BQU87Z0JBQ0wsTUFBTSxFQUFFLElBQUk7Z0JBQ1osT0FBTyxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUMsbUJBQW1CO2FBQ2xELENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLElBQUk7Z0JBQ1osT0FBTyxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUMscUJBQXFCLElBQUksU0FBUyxDQUFDLG9CQUFvQjthQUN0RixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7dUdBcEJVLGVBQWU7MkZBQWYsZUFBZSxnR0NmNUIseUdBQ0EsMmREV0ksT0FBTzs7MkZBR0UsZUFBZTtrQkFWM0IsU0FBUzsrQkFDRSxZQUFZLFdBR2IsQ0FBQyxzQkFBc0IsQ0FBQyxjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsT0FBTztxQkFDUjs4QkFHUSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIENvbnN0YW50cyBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc3RhdHVzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RhdHVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdGF0dXMuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXR1c0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybTtcclxuXHJcbiAgc3RhdHVzQ2xhc3Moc3RhdHVzOiBzdHJpbmcpIHtcclxuICAgIGlmIChzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19SRUpFQ1RFRCB8fCBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19DQU5DRUxMRUQpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICAgICAgZGFuZ2VyOiBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19SRUpFQ1RFRCB8fCBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19DQU5DRUxMRURcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBDb25zdGFudHMuRk9STV9TVEFUVVNfUEVORElORykge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHN0YXR1czogdHJ1ZSxcclxuICAgICAgICB3YXJuaW5nOiBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19QRU5ESU5HXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHN0YXR1czogdHJ1ZSxcclxuICAgICAgICBzdWNjZXNzOiBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19DT01QTEVURUQgfHwgQ29uc3RhbnRzLkZPUk1fU1RBVFVTX0FQUFJPVkVEXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInN0YXR1c0NsYXNzKGZvcm0uaGVhZGVyLnN0YXR1cz8uWydrZXknXSlcIj57e2Zvcm0uaGVhZGVyLnN0YXR1cz8uWyd2YWx1ZSddfX08L2Rpdj5cclxuIl19
@@ -0,0 +1,162 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import * as constants from '../../../constants';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NgClass, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
5
+ import { MatAccordion } from '@angular/material/expansion';
6
+ import { FormSectionComponent } from '../form-section/form-section.component';
7
+ import { MainRequestDetailsComponent } from '../main-request-details/main-request-details.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../services";
10
+ import * as i2 from "@angular/forms";
11
+ export class WorkflowSectionComponent {
12
+ i18n;
13
+ cdRef;
14
+ formStateObject;
15
+ sectionSubmitted = new EventEmitter();
16
+ sections;
17
+ isReadOnly;
18
+ isLoading;
19
+ form;
20
+ contentClass = 'default-box box-shadow p-4';
21
+ startedListener = false;
22
+ sectionsController;
23
+ showButtonMenu = false;
24
+ segmentDynamicLoaderService = null;
25
+ sectionFormComponent = null;
26
+ sectionName = constants.SECTION_ID_REQUEST_DETAILS;
27
+ constructor(i18n, cdRef) {
28
+ this.i18n = i18n;
29
+ this.cdRef = cdRef;
30
+ /* _listenerService.listen().subscribe((result: any) => {
31
+ if (result?.function == 'resetForm') {
32
+ this.resetForm();
33
+ } else if (result?.function == 'onSubmit') {
34
+ const sectionSize = this.sections.length - 1;
35
+ const section = this.sections[sectionSize];
36
+ const data = result.data ? result.data : section;
37
+ this.onSubmit(result?.action, data);
38
+ }
39
+ });*/
40
+ }
41
+ ngAfterViewChecked() {
42
+ this.cdRef.detectChanges();
43
+ if (this.formStateObject && this.form && !this.startedListener) {
44
+ this.formStateObject.valueChanges.subscribe(
45
+ /* istanbul ignore next */
46
+ (form) => {
47
+ Object.keys(form).forEach((key) => {
48
+ if (this.sections[this.sections.length - 1].body.details[key] !==
49
+ form[key] &&
50
+ form[key] !== undefined)
51
+ this.sections[this.sections.length - 1].body.details[key] =
52
+ form[key];
53
+ });
54
+ });
55
+ this.sectionsController = this.formStateObject.controls;
56
+ this.startedListener = true;
57
+ }
58
+ this.checkButtons();
59
+ }
60
+ /* isSubmitting = {};
61
+ disableButtons = false;*/
62
+ /* onSubmit(action: any, section: any) {
63
+ const sectionSize = this.sections.length - 1;
64
+ let sectionDecision = this.sections[sectionSize].body.details.decision;
65
+ if (sectionDecision && action === 'SUBMIT') {
66
+ sectionDecision = { key: action };
67
+ }
68
+ if (sectionDecision && action !== 'SUBMIT') {
69
+ sectionDecision = { key: action };
70
+ }
71
+ this.sections[sectionSize].body.details.decision = sectionDecision;
72
+ this.profileRequesterService.isSubmitting[action] = true;
73
+ this.profileRequesterService.disableButtons = true;
74
+ this.stateMachineService
75
+ .dispatch(
76
+ constants.STATE_MACHINE_ACTION_SUBMIT_FORM,
77
+ section,
78
+ action
79
+ )
80
+ .then((form: any) => {
81
+ this.profileRequesterService.isSubmitting[action] = true;
82
+ this.profileRequesterService.disableButtons = true;
83
+ const obj = {
84
+ form: form,
85
+ action: action
86
+ };
87
+ this.sectionSubmitted.emit(obj);
88
+ });
89
+ }*/
90
+ /* resetForm() {
91
+ this.formStateObject.reset();
92
+ this.resetPropagator.propagate();
93
+ }*/
94
+ get isExpandableFromBackend() {
95
+ return this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);
96
+ }
97
+ buttonTypes(type) {
98
+ switch (type) {
99
+ case 'APPROVE':
100
+ return '';
101
+ case 'SENDBACK':
102
+ return 'red';
103
+ case 'REJECT':
104
+ return 'red';
105
+ default:
106
+ return '';
107
+ }
108
+ }
109
+ checkButtons() {
110
+ const options = this.form?.lovs?.decision?.options;
111
+ if (!Array.isArray(options))
112
+ return;
113
+ options.forEach((item) => {
114
+ if (item?.value != 'APPROVE' &&
115
+ item?.value != 'REJECT' &&
116
+ item?.value != 'SENDBACK' &&
117
+ item?.value != 'SUBMIT' &&
118
+ item?.value != 'CANCEL') {
119
+ this.showButtonMenu = true;
120
+ }
121
+ });
122
+ }
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<!--\r\n<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-form-section\r\n *ngIf=\"sections[1]?.body?.details?.stage0?.isStage0 === 'true'\"\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=\"sections[1]\"\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"sections[1]?.header?.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\"\r\n >\r\n </app-form-section>\r\n\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1 && !(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX'))\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n\r\n\r\n <header *ngIf=\"(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX')) && sections.length > 1\" class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\">\r\n <ds-avatar *ngIf=\"!isLoading\" image={{form?.header?.requesterPhoto}} size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" ></ds-avatar>\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.header?.requesterName}}</span>\r\n\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.sections?.[0].body?.details?.gceoComment}}</span>\r\n\r\n </header>\r\n\r\n <mat-accordion class=\"primary-accordion main-approval\" [multi]=\"isExpandableFromBackend\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0 && (!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.['key'] === 'NEW' \" class=\"{{contentClass}}\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n-->\r\n<script src=\"../index.ts\"></script>\r\n<form #f=\"ngForm\">\r\n\r\n <div\r\n *ngIf=\"form?.header?.status?.['key'] != 'NEW' \" class=\"mt-3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n\r\n\r\n <app-main-request-details [section]=\"sections[0]\"></app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\"> {{ i18n.translate('Approvals') }}</header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <!-- <app-form-section\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=section\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\">\r\n </app-form-section>-->\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n</form>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
125
+ }
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, decorators: [{
127
+ type: Component,
128
+ args: [{ selector: 'app-workflow-section', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
129
+ NgClass,
130
+ MatAccordion,
131
+ NgTemplateOutlet,
132
+ NgIf,
133
+ FormSectionComponent,
134
+ MainRequestDetailsComponent,
135
+ NgForOf,
136
+ FormsModule
137
+ ], standalone: true, template: "<!--\r\n<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-form-section\r\n *ngIf=\"sections[1]?.body?.details?.stage0?.isStage0 === 'true'\"\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=\"sections[1]\"\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"sections[1]?.header?.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\"\r\n >\r\n </app-form-section>\r\n\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1 && !(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX'))\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n\r\n\r\n <header *ngIf=\"(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX')) && sections.length > 1\" class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\">\r\n <ds-avatar *ngIf=\"!isLoading\" image={{form?.header?.requesterPhoto}} size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" ></ds-avatar>\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.header?.requesterName}}</span>\r\n\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.sections?.[0].body?.details?.gceoComment}}</span>\r\n\r\n </header>\r\n\r\n <mat-accordion class=\"primary-accordion main-approval\" [multi]=\"isExpandableFromBackend\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0 && (!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.['key'] === 'NEW' \" class=\"{{contentClass}}\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n-->\r\n<script src=\"../index.ts\"></script>\r\n<form #f=\"ngForm\">\r\n\r\n <div\r\n *ngIf=\"form?.header?.status?.['key'] != 'NEW' \" class=\"mt-3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n\r\n\r\n <app-main-request-details [section]=\"sections[0]\"></app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\"> {{ i18n.translate('Approvals') }}</header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <!-- <app-form-section\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=section\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\">\r\n </app-form-section>-->\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n</form>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"] }]
138
+ }], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formStateObject: [{
139
+ type: ViewChild,
140
+ args: ['f']
141
+ }], sectionSubmitted: [{
142
+ type: Output
143
+ }], sections: [{
144
+ type: Input
145
+ }], isReadOnly: [{
146
+ type: Input
147
+ }], isLoading: [{
148
+ type: Input
149
+ }], form: [{
150
+ type: Input
151
+ }], contentClass: [{
152
+ type: Input
153
+ }], sectionsController: [{
154
+ type: Input
155
+ }], segmentDynamicLoaderService: [{
156
+ type: Input
157
+ }], sectionFormComponent: [{
158
+ type: Input
159
+ }], sectionName: [{
160
+ type: Input
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy93b3JrZmxvdy1zZWN0aW9uL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvd29ya2Zsb3ctc2VjdGlvbi93b3JrZmxvdy1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFtQm5HLE1BQU0sT0FBTyx3QkFBd0I7SUFnQjFCO0lBQ0M7SUFoQmEsZUFBZSxDQUFTO0lBQ3JDLGdCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFELFFBQVEsQ0FBWTtJQUNwQixVQUFVLENBQVU7SUFDcEIsU0FBUyxDQUFVO0lBQ25CLElBQUks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SUFBSSxVQUFVO2dCQUN6QixJQUFJLEVBQUUsS0FBSyxJQUFJLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLLElBQUksUUFBUSxFQUN2QixDQUFDO2dCQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUhVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHloQkMzQnJDLGl4SEFnRkEsNmtDRC9ESSxZQUFZLCtJQUVaLElBQUksNkZBRUosMkJBQTJCLHlHQUMzQixPQUFPLGtIQUNQLFdBQVc7OzJGQUlGLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBR3ZCLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsT0FBTzt3QkFDUCxXQUFXO3FCQUNaLGNBQ1csSUFBSTtvSEFHTyxlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLEdBQUc7Z0JBQ0osZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5nRm9ybX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TWF0QWNjb3JkaW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQge0Zvcm1TZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLXNlY3Rpb24vZm9ybS1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWFpblJlcXVlc3REZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuLi9tYWluLXJlcXVlc3QtZGV0YWlscy9tYWluLXJlcXVlc3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdEFjY29yZGlvbixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0lmLFxyXG4gICAgRm9ybVNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBNYWluUmVxdWVzdERldGFpbHNDb21wb25lbnQsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93U2VjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZicpIHB1YmxpYyBmb3JtU3RhdGVPYmplY3Q6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgc2VjdGlvblN1Ym1pdHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcyA9ICdkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNCc7XHJcbiAgc3RhcnRlZExpc3RlbmVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbnNDb250cm9sbGVyOiBhbnk7XHJcbiAgc2hvd0J1dHRvbk1lbnUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25Gb3JtQ29tcG9uZW50ID0gbnVsbDtcclxuICBASW5wdXQoKSBzZWN0aW9uTmFtZSA9IGNvbnN0YW50cy5TRUNUSU9OX0lEX1JFUVVFU1RfREVUQUlMUztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbi8qICAgIF9saXN0ZW5lclNlcnZpY2UubGlzdGVuKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAncmVzZXRGb3JtJykge1xyXG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAnb25TdWJtaXQnKSB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblNpemUgPSB0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YSA/IHJlc3VsdC5kYXRhIDogc2VjdGlvbjtcclxuICAgICAgICB0aGlzLm9uU3VibWl0KHJlc3VsdD8uYWN0aW9uLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7Ki9cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMuZm9ybVN0YXRlT2JqZWN0ICYmIHRoaXMuZm9ybSAmJiAhdGhpcy5zdGFydGVkTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5mb3JtU3RhdGVPYmplY3QudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cclxuICAgICAgICAoZm9ybSkgPT4ge1xyXG4gICAgICAgICAgT2JqZWN0LmtleXMoZm9ybSkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMV0uYm9keS5kZXRhaWxzW2tleV0gIT09XHJcbiAgICAgICAgICAgICAgZm9ybVtrZXldICYmXHJcbiAgICAgICAgICAgICAgZm9ybVtrZXldICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNbdGhpcy5zZWN0aW9ucy5sZW5ndGggLSAxXS5ib2R5LmRldGFpbHNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICBmb3JtW2tleV07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnNDb250cm9sbGVyID0gdGhpcy5mb3JtU3RhdGVPYmplY3QuY29udHJvbHM7XHJcbiAgICAgIHRoaXMuc3RhcnRlZExpc3RlbmVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tCdXR0b25zKCk7XHJcbiAgfVxyXG5cclxuLyogIGlzU3VibWl0dGluZyA9IHt9O1xyXG4gIGRpc2FibGVCdXR0b25zID0gZmFsc2U7Ki9cclxuXHJcbi8qICBvblN1Ym1pdChhY3Rpb246IGFueSwgc2VjdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBzZWN0aW9uU2l6ZSA9IHRoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMTtcclxuICAgIGxldCBzZWN0aW9uRGVjaXNpb24gPSB0aGlzLnNlY3Rpb25zW3NlY3Rpb25TaXplXS5ib2R5LmRldGFpbHMuZGVjaXNpb247XHJcbiAgICBpZiAoc2VjdGlvbkRlY2lzaW9uICYmIGFjdGlvbiA9PT0gJ1NVQk1JVCcpIHtcclxuICAgICAgc2VjdGlvbkRlY2lzaW9uID0geyBrZXk6IGFjdGlvbiB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY3Rpb25EZWNpc2lvbiAmJiBhY3Rpb24gIT09ICdTVUJNSVQnKSB7XHJcbiAgICAgIHNlY3Rpb25EZWNpc2lvbiA9IHsga2V5OiBhY3Rpb24gfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdLmJvZHkuZGV0YWlscy5kZWNpc2lvbiA9IHNlY3Rpb25EZWNpc2lvbjtcclxuICAgIHRoaXMucHJvZmlsZVJlcXVlc3RlclNlcnZpY2UuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9maWxlUmVxdWVzdGVyU2VydmljZS5kaXNhYmxlQnV0dG9ucyA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlTWFjaGluZVNlcnZpY2VcclxuICAgICAgLmRpc3BhdGNoKFxyXG4gICAgICAgIGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUJNSVRfRk9STSxcclxuICAgICAgICBzZWN0aW9uLFxyXG4gICAgICAgIGFjdGlvblxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmRpc2FibGVCdXR0b25zID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICBmb3JtOiBmb3JtLFxyXG4gICAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN1Ym1pdHRlZC5lbWl0KG9iaik7XHJcbiAgICAgIH0pO1xyXG4gIH0qL1xyXG5cclxuLyogIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0UHJvcGFnYXRvci5wcm9wYWdhdGUoKTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgfVxyXG5cclxuICBidXR0b25UeXBlcyh0eXBlKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnQVBQUk9WRSc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgICBjYXNlICdSRUpFQ1QnOlxyXG4gICAgICAgIHJldHVybiAncmVkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0J1dHRvbnMoKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5mb3JtPy5sb3ZzPy5kZWNpc2lvbj8ub3B0aW9ucztcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkgcmV0dXJuO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnQVBQUk9WRScgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnUkVKRUNUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdTRU5EQkFDSycgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnU1VCTUlUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdDQU5DRUwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbk1lbnUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLVxyXG48Zm9ybSAjZj1cIm5nRm9ybVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gIDxkaXYgKm5nSWY9XCJmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSAhPT0gJ05FVycgXCIgY2xhc3M9XCJtdC1uM1wiIGlkPVwiYWNjb3JkaW9uXCIgcm9sZT1cInRhYmxpc3RcIlxyXG4gICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCI+XHJcbiAgICA8YXBwLWZvcm0tc2VjdGlvblxyXG4gICAgICAqbmdJZj1cInNlY3Rpb25zWzFdPy5ib2R5Py5kZXRhaWxzPy5zdGFnZTA/LmlzU3RhZ2UwID09PSAndHJ1ZSdcIlxyXG4gICAgICBjbGFzcz1cImFwcC1mb3JtLXNlY3Rpb25cIlxyXG4gICAgICBbc2VnbWVudER5bmFtaWNMb2FkZXJTZXJ2aWNlXT1cInNlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZVwiXHJcbiAgICAgIFtzZWN0aW9uXT1cInNlY3Rpb25zWzFdXCJcclxuICAgICAgW2xvdl09XCJmb3JtPy5sb3ZzXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwic2VjdGlvbnNbMV0/LmhlYWRlcj8ucmVhZE9ubHlcIlxyXG4gICAgICBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgW2NvbnRyb2xsZXJzXT1cInNlY3Rpb25zQ29udHJvbGxlclwiXHJcbiAgICAgID5cclxuICAgIDwvYXBwLWZvcm0tc2VjdGlvbj5cclxuXHJcbiAgICA8YXBwLW1haW4tcmVxdWVzdC1kZXRhaWxzIFtsb3ZdPVwiZm9ybT8ubG92c1wiIFtmb3JtXT1cImZvcm1cIiBbc2VjdGlvbl09XCJzZWN0aW9uc1swXVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFJlcURldFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hcHAtbWFpbi1yZXF1ZXN0LWRldGFpbHM+XHJcblxyXG4gICAgPGhlYWRlciBjbGFzcz1cImhlYWRlci1saW5lIGZzLTEyIGZ3LW1lZGl1bSBmYy1kYXJrLWdyYXkgbXQtc20tNSBtdC00IG1iLTRcIiAqbmdJZj1cInNlY3Rpb25zLmxlbmd0aCA+IDEgJiYgIShmb3JtPy5oZWFkZXI/LmZvcm1JZD8uaW5jbHVkZXMoJ01FTycpIHx8IGZvcm0/LmhlYWRlcj8uZm9ybUlkPy5pbmNsdWRlcygnTUVYJykpXCI+XHJcbiAgICAgIHt7aTE4bi50cmFuc2xhdGUoJ0FwcHJvdmFscycpfX1cclxuICAgIDwvaGVhZGVyPlxyXG5cclxuXHJcbiAgICA8aGVhZGVyICpuZ0lmPVwiKGZvcm0/LmhlYWRlcj8uZm9ybUlkPy5pbmNsdWRlcygnTUVPJykgfHwgZm9ybT8uaGVhZGVyPy5mb3JtSWQ/LmluY2x1ZGVzKCdNRVgnKSkgJiYgc2VjdGlvbnMubGVuZ3RoID4gMVwiIGNsYXNzPVwiaGVhZGVyLWxpbmUgZnMtMTIgZnctbWVkaXVtIGZjLWRhcmstZ3JheSBtdC1zbS01IG10LTQgbWItNFwiPlxyXG4gICAgICA8ZHMtYXZhdGFyICpuZ0lmPVwiIWlzTG9hZGluZ1wiIGltYWdlPXt7Zm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJQaG90b319IHNpemU9XCJ4eC1zbWFsbFwiXHJcbiAgICAgIGNsYXNzPVwiZC1pbmxpbmUtZmxleCBjdXJzb3ItcG9pbnRlclwiID48L2RzLWF2YXRhcj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZC1zbS1ibG9jayBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnbG9hZGluZy1iZyBsb2FkaW5nLXdpZHRoJzogaXNMb2FkaW5nfVwiPnt7Zm9ybT8uaGVhZGVyPy5yZXF1ZXN0ZXJOYW1lfX08L3NwYW4+XHJcblxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZzLTEyIGQtc20tYmxvY2sgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2xvYWRpbmctYmcgbG9hZGluZy13aWR0aCc6IGlzTG9hZGluZ31cIj57e2Zvcm0/LnNlY3Rpb25zPy5bMF0uYm9keT8uZGV0YWlscz8uZ2Nlb0NvbW1lbnR9fTwvc3Bhbj5cclxuXHJcbiAgICA8L2hlYWRlcj5cclxuXHJcbiAgICA8bWF0LWFjY29yZGlvbiBjbGFzcz1cInByaW1hcnktYWNjb3JkaW9uIG1haW4tYXBwcm92YWxcIiBbbXVsdGldPVwiaXNFeHBhbmRhYmxlRnJvbUJhY2tlbmRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxhcHAtZm9ybS1zZWN0aW9uICpuZ0lmPVwiaSAhPT0gMCAmJiAoIXNlY3Rpb24/LmJvZHk/LmRldGFpbHM/LnN0YWdlMD8uaXNTdGFnZTAgfHwgc2VjdGlvbj8uYm9keT8uZGV0YWlscz8uc3RhZ2UwPy5pc1N0YWdlMCA9PT0gJ2ZhbHNlJylcIiBjbGFzcz1cImFwcC1mb3JtLXNlY3Rpb25cIiBbc2VnbWVudER5bmFtaWNMb2FkZXJTZXJ2aWNlXT1cInNlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZVwiIFtzZWN0aW9uXT1zZWN0aW9uIFtsb3ZdPVwiZm9ybT8ubG92c1wiXHJcbiAgICAgICAgICBbaXNSZWFkT25seV09XCJzZWN0aW9uLmhlYWRlci5yZWFkT25seVwiIFtmb3JtXT1cImZvcm1cIiBbY29udHJvbGxlcnNdPVwic2VjdGlvbnNDb250cm9sbGVyXCI+XHJcbiAgICAgICAgPC9hcHAtZm9ybS1zZWN0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbWF0LWFjY29yZGlvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHNlY3Rpb24gKm5nSWY9XCJmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSA9PT0gJ05FVycgXCIgY2xhc3M9XCJ7e2NvbnRlbnRDbGFzc319XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFJlcURldFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbjwvZm9ybT5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnRSZXFEZXQ+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+XHJcbi0tPlxyXG48c2NyaXB0IHNyYz1cIi4uL2luZGV4LnRzXCI+PC9zY3JpcHQ+XHJcbjxmb3JtICNmPVwibmdGb3JtXCI+XHJcblxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10gIT0gJ05FVycgXCIgY2xhc3M9XCJtdC0zXCIgaWQ9XCJhY2NvcmRpb25cIiByb2xlPVwidGFibGlzdFwiXHJcbiAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT1cInRydWVcIj5cclxuXHJcblxyXG4gICAgPGFwcC1tYWluLXJlcXVlc3QtZGV0YWlscyBbc2VjdGlvbl09XCJzZWN0aW9uc1swXVwiPjwvYXBwLW1haW4tcmVxdWVzdC1kZXRhaWxzPlxyXG5cclxuICAgIDxoZWFkZXIgY2xhc3M9XCJoZWFkZXItbGluZSBmcy0xMiBmdy1tZWRpdW0gZmMtZGFyay1ncmF5IG10LXNtLTUgbXQtNCBtYi00XCIgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPiAxXCI+IHt7IGkxOG4udHJhbnNsYXRlKCdBcHByb3ZhbHMnKSB9fTwvaGVhZGVyPlxyXG4gICAgPG1hdC1hY2NvcmRpb24gY2xhc3M9XCJwcmltYXJ5LWFjY29yZGlvbiBtYWluLWFwcHJvdmFsXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgIDwhLS0gPGFwcC1mb3JtLXNlY3Rpb25cclxuICAgICAgICAgIGNsYXNzPVwiYXBwLWZvcm0tc2VjdGlvblwiXHJcbiAgICAgICAgICBbc2VnbWVudER5bmFtaWNMb2FkZXJTZXJ2aWNlXT1cInNlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZVwiXHJcbiAgICAgICAgICBbc2VjdGlvbl09c2VjdGlvblxyXG4gICAgICAgICAgW2xvdl09XCJmb3JtPy5sb3ZzXCJcclxuICAgICAgICAgIFtpc1JlYWRPbmx5XT1cInNlY3Rpb24uaGVhZGVyLnJlYWRPbmx5XCJcclxuICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgW2NvbnRyb2xsZXJzXT1cInNlY3Rpb25zQ29udHJvbGxlclwiPlxyXG4gICAgICAgIDwvYXBwLWZvcm0tc2VjdGlvbj4tLT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hY2NvcmRpb24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
@@ -0,0 +1,39 @@
1
+ /* eslint-disable @angular-eslint/component-selector */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Inject } from '@angular/core';
4
+ import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent } from '@angular/material/dialog';
5
+ import { MatButton } from "@angular/material/button";
6
+ import { NgIf } from "@angular/common";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/dialog";
9
+ export class ConfirmationPopupComponent {
10
+ data;
11
+ dialogRef;
12
+ constructor(data, dialogRef) {
13
+ this.data = data;
14
+ this.dialogRef = dialogRef;
15
+ }
16
+ openForm() {
17
+ window.open("/group/i-gate/wm-bpm/forms?formId=" + this.data.id);
18
+ location.reload();
19
+ }
20
+ delete() {
21
+ this.dialogRef.close('yes');
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ConfirmationPopupComponent, isStandalone: true, selector: "app-delete-popup", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <!-- <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon> -->\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [".icon{font-size:40px;min-width:75px;width:75px;height:75px;background-color:#00c48c;padding:5px;display:flex;align-items:center;justify-content:center;margin:auto;color:#fff;border-radius:50%}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { 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: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'app-delete-popup', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
29
+ MatDialogContent,
30
+ MatDialogActions,
31
+ MatButton,
32
+ MatDialogClose,
33
+ NgIf
34
+ ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <!-- <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon> -->\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [".icon{font-size:40px;min-width:75px;width:75px;height:75px;background-color:#00c48c;padding:5px;display:flex;align-items:center;justify-content:center;margin:auto;color:#fff;border-radius:50%}\n"] }]
35
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
36
+ type: Inject,
37
+ args: [MAT_DIALOG_DATA]
38
+ }] }, { type: i1.MatDialogRef }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUFnQnJDLE1BQU0sT0FBTywwQkFBMEI7SUFJNUI7SUFRQTtJQVZULFlBRVMsSUFPTixFQUNNLFNBQTRCO1FBUjVCLFNBQUksR0FBSixJQUFJLENBT1Y7UUFDTSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtJQUNqQyxDQUFDO0lBR0wsUUFBUTtRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNoRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO3VHQXZCVSwwQkFBMEIsa0JBRzNCLGVBQWU7MkZBSGQsMEJBQTBCLDRFQ3JCdkMscytEQTRDQSw0UEQ5QkksZ0JBQWdCLHlHQUNoQixnQkFBZ0IsNEhBQ2hCLFNBQVMsaUxBQ1QsY0FBYyxxTEFDZCxJQUFJOzsyRkFHSywwQkFBMEI7a0JBZHRDLFNBQVM7K0JBQ0Usa0JBQWtCLFdBR25CLENBQUMsc0JBQXNCLENBQUMsY0FDckIsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULGNBQWM7d0JBQ2QsSUFBSTtxQkFDTDs7MEJBS0UsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZWxldGUtcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTWF0RGlhbG9nQ2xvc2UsXHJcbiAgICBOZ0lmXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxyXG4gICAgcHVibGljIGRhdGE6IHtcclxuICAgICAgdGl0bGU6IHN0cmluZztcclxuICAgICAgaWQ6IHN0cmluZztcclxuICAgICAgY29uZmlybVRleHQ6IHN0cmluZztcclxuICAgICAgbW9yZVRleHQ6IHN0cmluZztcclxuICAgICAgdHlwZTogc3RyaW5nO1xyXG4gICAgICBpY29uOiBzdHJpbmc7XHJcbiAgICB9LFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT5cclxuICApIHsgfVxyXG5cclxuXHJcbiAgb3BlbkZvcm0oKSB7XHJcbiAgICB3aW5kb3cub3BlbihcIi9ncm91cC9pLWdhdGUvd20tYnBtL2Zvcm1zP2Zvcm1JZD1cIiArIHRoaXMuZGF0YS5pZClcclxuICAgIGxvY2F0aW9uLnJlbG9hZCgpXHJcbiAgfVxyXG5cclxuICBkZWxldGUoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgneWVzJyk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZFwiIG1hdC1kaWFsb2ctdGl0bGU+XHJcbiAgICA8ZHMtYnV0dG9uIG1hdERpYWxvZ0Nsb3NlIGljb24+XHJcbiAgICAgIDwhLS0gPGRzLWljb24gaWNvbj1cImNsb3NlXCIgY2xhc3M9XCJmcy0yMCBmYy1ibGFja1wiPjwvZHMtaWNvbj4gLS0+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi0yIG14LTVcIj5cclxuICAgICAgPGgyIGNsYXNzPVwiZnMtMjIgZm9udC1tZC0xOCBmdy1tZWRpdW0gZmMtb255eCBteS0zXCI+XHJcbiAgICAgICAgPCEtLSB7eyAnc3VibWl0dGVkU3VjY2Vzc2Z1bGx5JyB8IHRyYW5zbG9jb319IC0tPlxyXG4gICAgICA8L2gyPlxyXG4gICAgICA8aDQgY2xhc3M9XCJmcy0xNCBmdy1ub3JtYWwgZnN0LWl0YWxpYyBmYy1vbnl4IGJnLWNvbG9yLWxpZ2h0LWdyYXkgcC0zIG1iLTFcIj5cclxuICAgICAgICA8IS0tIDxzcGFuPnt7ICdmb3JtSWQnIHwgdHJhbnNsb2NvfX08L3NwYW4+IC0tPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZzLXdlaWdodC1tZWRpdW1cIj57e2RhdGEuaWR9fTwvc3Bhbj5cclxuICAgICAgPC9oND5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDAgbWItNCBweC1tZC01XCIgKm5nSWY9XCJkYXRhLnR5cGUgPT09ICd2aWV3J1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cImJ0biBidXR0b24tcHJpbWFyeSBzaGFkb3ctaG92ZXIgcHgtNFwiIG1hdERpYWxvZ0Nsb3NlPlxyXG4gICAgICAgIDwhLS0ge3sgJ0Nsb3NlJyB8IHRyYW5zbG9jb319ICAtLT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiYnRuIGJ1dHRvbi1wcmltYXJ5IGZvbnQtMTcgZnctbWVkaXVtIHB4LTRcIiAoY2xpY2spPVwib3BlbkZvcm0oKVwiPlxyXG4gICAgICAgIDwhLS0ge3sgJ1ZpZXdSZXF1ZXN0JyB8IHRyYW5zbG9jb319IC0tPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDAgbWItNCBweC1tZC01XCIgICpuZ0lmPVwiZGF0YS50eXBlID09PSAnZGVsZXRlJ1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cImJ0biBidXR0b24tcmVkXCIgW21hdC1kaWFsb2ctY2xvc2VdPSd0cnVlJyA+XHJcbiAgICAgICAgRGVsZXRlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm14LTJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiYnRuIGJ1dHRvbi1wcmltYXJ5XCIgbWF0RGlhbG9nQ2xvc2U+XHJcbiAgICAgICAgQ2FuY2VsXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDAgbWItNCBweC1tZC01XCIgKm5nSWY9XCJkYXRhLnR5cGUgPT09ICdkb25lJ1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cImJ0biBidXR0b24tcHJpbWFyeSBzaGFkb3ctaG92ZXIgcHgtNFwiIG1hdERpYWxvZ0Nsb3NlPlxyXG4gICAgICAgIENsb3NlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcblxyXG48L2Rpdj5cclxuIl19