@posiwise/admin-module 0.0.180 → 0.0.182

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 (126) hide show
  1. package/fesm2022/posiwise-admin-module.mjs +463 -441
  2. package/fesm2022/posiwise-admin-module.mjs.map +1 -1
  3. package/lib/components/resources/resources-admin-details/resources-admin-details.component.d.ts +1 -1
  4. package/lib/components/subscriptions/subscription-users/subscription-users.component.d.ts +1 -1
  5. package/package.json +4 -6
  6. package/esm2022/index.mjs +0 -87
  7. package/esm2022/lib/admin-guard.service.mjs +0 -44
  8. package/esm2022/lib/admin-module.routing.mjs +0 -919
  9. package/esm2022/lib/admin.module.mjs +0 -485
  10. package/esm2022/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +0 -93
  11. package/esm2022/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +0 -98
  12. package/esm2022/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.mjs +0 -26
  13. package/esm2022/lib/components/config/global-config-details/global-config-details.component.mjs +0 -75
  14. package/esm2022/lib/components/config/global-config-list/global-config-list.component.mjs +0 -92
  15. package/esm2022/lib/components/config/global-config-tabs/global-config-tabs.component.mjs +0 -24
  16. package/esm2022/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +0 -101
  17. package/esm2022/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.mjs +0 -25
  18. package/esm2022/lib/components/credentials/credentials/credentials.component.mjs +0 -88
  19. package/esm2022/lib/components/credentials/credentials-details/credentials-details.component.mjs +0 -79
  20. package/esm2022/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +0 -31
  21. package/esm2022/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +0 -92
  22. package/esm2022/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +0 -102
  23. package/esm2022/lib/components/domain-config/domain-config-details/base-domain-config.component.mjs +0 -88
  24. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +0 -731
  25. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +0 -123
  26. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +0 -57
  27. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +0 -91
  28. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +0 -144
  29. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +0 -30
  30. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +0 -31
  31. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +0 -30
  32. package/esm2022/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +0 -98
  33. package/esm2022/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +0 -25
  34. package/esm2022/lib/components/faqs/add-faq/add-faq.component.mjs +0 -218
  35. package/esm2022/lib/components/faqs/edit-faq/edit-faq.component.mjs +0 -204
  36. package/esm2022/lib/components/faqs/faqs-list/faqs-list.component.mjs +0 -277
  37. package/esm2022/lib/components/faqs/faqs-tabs/faqs-tabs.component.mjs +0 -25
  38. package/esm2022/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +0 -84
  39. package/esm2022/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +0 -98
  40. package/esm2022/lib/components/generic/generic-insight/generic-insight.component.mjs +0 -12
  41. package/esm2022/lib/components/generic/generic-misc/generic-misc.component.mjs +0 -127
  42. package/esm2022/lib/components/generic/generic-tabs/generic-tabs.component.mjs +0 -31
  43. package/esm2022/lib/components/incidents/add-edit-incident/add-edit-incident.component.mjs +0 -152
  44. package/esm2022/lib/components/incidents/incidents-list/incidents-list.component.mjs +0 -118
  45. package/esm2022/lib/components/incidents/incidents-tabs/incidents-tabs.component.mjs +0 -25
  46. package/esm2022/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +0 -111
  47. package/esm2022/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.mjs +0 -25
  48. package/esm2022/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +0 -97
  49. package/esm2022/lib/components/mailer/mailer-details/mailer-details.component.mjs +0 -115
  50. package/esm2022/lib/components/mailer/mailer-list/mailer-list.component.mjs +0 -113
  51. package/esm2022/lib/components/mailer/mailer-tabs/mailer-tabs.component.mjs +0 -24
  52. package/esm2022/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +0 -87
  53. package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +0 -284
  54. package/esm2022/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +0 -76
  55. package/esm2022/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +0 -53
  56. package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items-view-details/newsletters-items-view-details.component.mjs +0 -59
  57. package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +0 -179
  58. package/esm2022/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +0 -103
  59. package/esm2022/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +0 -38
  60. package/esm2022/lib/components/permissions/permissions-details/permissions-details.component.mjs +0 -109
  61. package/esm2022/lib/components/permissions/permissions-list/permissions-list.component.mjs +0 -87
  62. package/esm2022/lib/components/permissions/permissions-tabs/permissions-tabs.component.mjs +0 -31
  63. package/esm2022/lib/components/permissions/role-details/role-details.component.mjs +0 -140
  64. package/esm2022/lib/components/permissions/roles-list/roles-list.component.mjs +0 -93
  65. package/esm2022/lib/components/products/product-details/product-details.component.mjs +0 -370
  66. package/esm2022/lib/components/products/products-insight/products-insight.component.mjs +0 -52
  67. package/esm2022/lib/components/products/products-list/products-list.component.mjs +0 -144
  68. package/esm2022/lib/components/products/products-tabs/products-tabs.component.mjs +0 -28
  69. package/esm2022/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +0 -55
  70. package/esm2022/lib/components/resources/resources-admin-details/resources-admin-details.component.mjs +0 -380
  71. package/esm2022/lib/components/resources/resources-admin-tabs/resources-admin-tabs.component.mjs +0 -33
  72. package/esm2022/lib/components/resources/resources-admin-tabs/resources-index/resources-index.component.mjs +0 -154
  73. package/esm2022/lib/components/resources/resources-admin-tabs/resources-insight/resources-insight.component.mjs +0 -54
  74. package/esm2022/lib/components/resources/resources-lists-insight/resources-lists-insight.component.mjs +0 -61
  75. package/esm2022/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +0 -120
  76. package/esm2022/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +0 -135
  77. package/esm2022/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +0 -210
  78. package/esm2022/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +0 -225
  79. package/esm2022/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +0 -66
  80. package/esm2022/lib/components/subscriptions/subscription-users/add-members/add-members.component.mjs +0 -173
  81. package/esm2022/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +0 -215
  82. package/esm2022/lib/components/subscriptions/subscriptions-insight/base-subscription-insight.component.mjs +0 -47
  83. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-price/subscription-insight-average-price.component.mjs +0 -34
  84. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-user/subscription-insight-average-user.component.mjs +0 -34
  85. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-churn/subscription-insight-churn.component.mjs +0 -55
  86. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +0 -103
  87. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-product-session/subscription-insight-product-session.component.mjs +0 -34
  88. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +0 -55
  89. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.mjs +0 -23
  90. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-user-session/subscription-insight-user-session.component.mjs +0 -34
  91. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +0 -55
  92. package/esm2022/lib/components/subscriptions/subscriptions-list/invite-users/invite-users.component.mjs +0 -232
  93. package/esm2022/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +0 -311
  94. package/esm2022/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.mjs +0 -35
  95. package/esm2022/lib/components/tags/tags-category/tags-category.component.mjs +0 -153
  96. package/esm2022/lib/components/tags/tags-details/tags-details.component.mjs +0 -153
  97. package/esm2022/lib/components/tags/tags-list/tags-list.component.mjs +0 -145
  98. package/esm2022/lib/components/tags/tags-tabs/tags-tabs.component.mjs +0 -32
  99. package/esm2022/lib/components/tips/tip-detail/tip-detail.component.mjs +0 -88
  100. package/esm2022/lib/components/tips/tips-list/tips-list.component.mjs +0 -49
  101. package/esm2022/lib/components/tips/tips-tabs/tips-tabs.component.mjs +0 -25
  102. package/esm2022/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +0 -216
  103. package/esm2022/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +0 -200
  104. package/esm2022/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +0 -198
  105. package/esm2022/lib/components/tracking/events/events.component.mjs +0 -198
  106. package/esm2022/lib/components/tracking/tracking-tabs/tracking-tabs.component.mjs +0 -49
  107. package/esm2022/lib/components/tracking/versions/versions.component.mjs +0 -208
  108. package/esm2022/lib/components/users/user-details/user-details.component.mjs +0 -167
  109. package/esm2022/lib/components/users/users-insight/users-insight.component.mjs +0 -53
  110. package/esm2022/lib/components/users/users-list/users-list.component.mjs +0 -338
  111. package/esm2022/lib/components/users/users-tabs/users-tabs.component.mjs +0 -32
  112. package/esm2022/lib/shared/interface/admin-module-shared.interface.mjs +0 -2
  113. package/esm2022/lib/shared/interface/api-response.interface.mjs +0 -2
  114. package/esm2022/lib/shared/interface/contact-us.interface.mjs +0 -2
  115. package/esm2022/lib/shared/interface/credential.interface.mjs +0 -2
  116. package/esm2022/lib/shared/interface/domain-config.interface.mjs +0 -2
  117. package/esm2022/lib/shared/interface/feedback-question.interface.mjs +0 -2
  118. package/esm2022/lib/shared/interface/global-config.interface.mjs +0 -2
  119. package/esm2022/lib/shared/interface/login-notification.interface.mjs +0 -2
  120. package/esm2022/lib/shared/interface/newsletter.interface.mjs +0 -2
  121. package/esm2022/lib/shared/interface/permission.interface.mjs +0 -2
  122. package/esm2022/lib/shared/interface/privacy-tos.interface.mjs +0 -2
  123. package/esm2022/lib/shared/interface/tip.interface.mjs +0 -2
  124. package/esm2022/lib/shared/interface/tracking.interface.mjs +0 -2
  125. package/esm2022/lib/shared/routers/routers.mjs +0 -40
  126. package/esm2022/posiwise-admin-module.mjs +0 -5
@@ -1,152 +0,0 @@
1
- import { Component, Injector, ViewChild } from '@angular/core';
2
- import { NgForm } from '@angular/forms';
3
- import { AppAdmin } from '@posiwise/admin-module-utils';
4
- import { AppBaseComponent } from '@posiwise/app-base-component';
5
- import { CommonService, PermissionService } from '@posiwise/common-services';
6
- import { HelperService } from '@posiwise/helper-service';
7
- import { QuillHelper } from '@posiwise/utils';
8
- import { ROUTERS } from '../../../shared/routers/routers';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@posiwise/common-services";
11
- import * as i2 from "primeng/calendar";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/forms";
14
- import * as i5 from "@angular/router";
15
- import * as i6 from "primeng/progressspinner";
16
- import * as i7 from "@posiwise/shared-components";
17
- import * as i8 from "@posiwise/directives";
18
- import * as i9 from "ngx-quill";
19
- import * as i10 from "@jsverse/transloco";
20
- export class AddEditIncidentComponent extends AppBaseComponent {
21
- constructor(injector, commonService) {
22
- super(injector);
23
- this.commonService = commonService;
24
- this.routers = ROUTERS;
25
- this.landing = false;
26
- this.openIncidents = [];
27
- this.pastIncidents = [];
28
- this.isLoading = true;
29
- this.companyName = this.appConfig.company.name;
30
- this.isSuperAdmin = this.permissionService.isSuperAdmin();
31
- this.submitted = false;
32
- this.buttonBusy = false;
33
- QuillHelper.init();
34
- this.editorConfig = QuillHelper.getEditorConfig();
35
- this.subscriptionId = PermissionService.selectedSubscription?.id;
36
- this.form = AppAdmin.getIncidentForm();
37
- }
38
- ngAfterViewInit() {
39
- HelperService.subscribeToEditorChanges(this.form, 'description');
40
- HelperService.subscribeToEditorChanges(this.form, 'internal_description');
41
- }
42
- ngOnInit() {
43
- this.logo = this.appConfig?.company?.logos?.main?.url;
44
- this.route.params.subscribe(params => {
45
- this.id = +params['id'] || 0;
46
- });
47
- this.currentIncident = history.state?.data;
48
- if (this.currentIncident || this.id) {
49
- this.getIncidentById();
50
- }
51
- else {
52
- this.isLoading = false;
53
- }
54
- }
55
- get f() {
56
- return this.form.controls;
57
- }
58
- onSubmit() {
59
- const rawHtml = HelperService.SaveRawHTML('#descriptionEditor');
60
- this.form.controls['description'].setValue(rawHtml);
61
- const rawInternalHtml = HelperService.SaveRawHTML('#internalDescriptionEditor');
62
- this.form.controls['internal_description'].setValue(rawInternalHtml);
63
- this.form.markAllAsTouched();
64
- if (this.form.valid) {
65
- if (this.id) {
66
- this.onUpdate();
67
- }
68
- else {
69
- this.onAdd();
70
- }
71
- this.submitted = true;
72
- }
73
- }
74
- getIncidentById() {
75
- this.commonService
76
- .getIncidentById(this.id, this.subscriptionId)
77
- .subscribe(response => {
78
- this.form.setValue({
79
- id: response.id,
80
- description: response?.description,
81
- internal_description: response?.internal_description ?? '',
82
- service_impacted: response?.service_impacted,
83
- url_impacted: response?.url_impacted,
84
- resolved_at: response?.resolved_at ? new Date(response?.resolved_at) : '',
85
- started_at: response?.started_at ? new Date(response?.started_at) : '',
86
- last_check_at: response?.last_check_at ? new Date(response?.last_check_at) : ''
87
- });
88
- })
89
- .add(() => {
90
- this.isLoading = false;
91
- });
92
- }
93
- onAdd() {
94
- this.buttonBusy = true;
95
- try {
96
- const data = {
97
- ...this.form.value,
98
- subscription_id: this.subscriptionId
99
- // last_check_at: HelperService.dateFormat(this.form.value.started_at),
100
- // started_at: HelperService.dateFormat(this.form.value.started_at),
101
- // resolved_at: HelperService.dateFormat(this.form.value.resolved_at)
102
- };
103
- this.commonService
104
- .addIncident(data)
105
- .subscribe(() => {
106
- this.toast.success(this.translation.translate('Admin.Incident.AddMessage'));
107
- this.router.navigate([`${this.routers.incidentConfig}`]);
108
- })
109
- .add(() => (this.buttonBusy = false));
110
- }
111
- catch (error) {
112
- this.buttonBusy = false;
113
- console.log(error);
114
- }
115
- }
116
- onUpdate() {
117
- this.buttonBusy = true;
118
- try {
119
- const data = {
120
- ...this.form.value,
121
- subscription_id: this.subscriptionId
122
- // last_check_at: HelperService.dateFormat(this.form.value.started_at),
123
- // started_at: HelperService.dateFormat(this.form.value.started_at),
124
- // resolved_at: HelperService.dateFormat(this.form.value.resolved_at)
125
- };
126
- this.commonService
127
- .editIncident(this.id, data)
128
- .subscribe(() => {
129
- this.toast.success(this.translation.translate('Admin.Incident.UpdateMessage'));
130
- this.router.navigate([`${this.routers.incidentConfig}`]);
131
- })
132
- .add(() => (this.buttonBusy = false));
133
- }
134
- catch (error) {
135
- this.buttonBusy = false;
136
- console.log(error);
137
- }
138
- }
139
- onCancel() {
140
- this.router.navigate([`${this.routers.incidentConfig}`]);
141
- }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AddEditIncidentComponent, deps: [{ token: i0.Injector }, { token: i1.CommonService }], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: AddEditIncidentComponent, selector: "pw-admin-add-edit-incident", viewQueries: [{ propertyName: "editForm", first: true, predicate: ["editForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4\">\n <a aria-label=\"Navigate to Target\" routerLink=\"/admin/incident/list\" class=\"previous\"><i\n class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ id ? 'Edit' : 'Add New' }} Incident</h3>\n </div>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"p-2 mt-3\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\" *ngIf=\"!isLoading\">\n <div class=\"row\">\n <pw-input-container class=\"col-lg-6\" [label]=\"'Admin.Incident.UrlImpacted' | transloco\"\n name=\"url_impacted\" [errorMsg]=\"'Admin.Incident.Validation.UrlImpacted' | transloco\">\n <input type=\"text\" formControlName=\"url_impacted\" class=\"form-control\"\n [ngClass]=\"{ 'is-invalid': submitted && f['url_impacted'].errors }\" />\n </pw-input-container>\n <pw-input-container class=\"col-lg-6\" [label]=\"'Admin.Incident.ServiceImpacted' | transloco\"\n name=\"service_impacted\"\n [errorMsg]=\"'Admin.Incident.Validation.ServiceImpacted' | transloco\">\n <input type=\"text\" formControlName=\"service_impacted\" class=\"form-control\"\n [ngClass]=\"{ 'is-invalid': submitted && f['service_impacted'].errors }\" />\n </pw-input-container>\n <div class=\"col-lg-12\">\n <pw-input-container class=\"col-12 quill-editor\" id=\"descriptionEditor\"\n [label]=\"'Admin.Incident.Description' | transloco\" name=\"description\"\n [errorMsg]=\"'Admin.Incident.Validation.Description' | transloco\">\n <quill-editor [styles]=\"{ height: '200px'}\" formControlName=\"description\" [modules]=\"editorConfig\"\n class=\"quillEditor d-block\"\n [ngClass]=\"{ 'is-invalid': submitted && f['description'].errors, 'quill-container': true }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"col-lg-12\">\n <pw-input-container class=\"col-12 quill-editor\" id=\"internalDescriptionEditor\"\n [label]=\"'Admin.Incident.InternalDescription' | transloco\" name=\"internal_description\"\n [errorMsg]=\"'Admin.Incident.Validation.InternalDescription' | transloco\">\n <quill-editor [styles]=\"{ height: '200px'}\" formControlName=\"internal_description\" [modules]=\"editorConfig\"\n class=\"quillEditor d-block\"\n [ngClass]=\"{ 'is-invalid': submitted && f['internal_description'].errors, 'quill-container': true }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-4\">\n <pw-input-container [label]=\"'Admin.Incident.StartedAt' | transloco\" name=\"started_at\"\n [errorMsg]=\"'Admin.Incident.Validation.Date' | transloco\">\n <p-calendar class=\"addEditincident\" formControlName=\"started_at\" [showIcon]=\"true\" [placeholder]=\"'Admin.Incident.calender.placeholder' | transloco\"\n [showTime]=\"true\" [appendTo]=\"'body'\" dateFormat=\"dd-M-yy\">\n </p-calendar>\n </pw-input-container>\n </div>\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-4\">\n <pw-input-container [label]=\"'Admin.Incident.ResolvedAt' | transloco\" name=\"resolved_at\"\n [errorMsg]=\"'Admin.Incident.Validation.Date' | transloco\">\n <p-calendar class=\"addEditincident\" formControlName=\"resolved_at\" [showIcon]=\"true\" [placeholder]=\"'Admin.Incident.calender.placeholder' | transloco\"\n [showTime]=\"true\" [appendTo]=\"'body'\" dateFormat=\"dd-M-yy\">\n </p-calendar>\n </pw-input-container>\n </div>\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-4\">\n <pw-input-container [label]=\"'Admin.Incident.LastCheckedAt' | transloco\"\n name=\"last_check_at\" [errorMsg]=\"'Admin.Incident.Validation.Date' | transloco\">\n <p-calendar class=\"addEditincident\" formControlName=\"last_check_at\"[placeholder]=\"'Admin.Incident.calender.placeholder' | transloco\"\n [showIcon]=\"true\" [showTime]=\"true\" [appendTo]=\"'body'\" dateFormat=\"dd-M-yy\">\n </p-calendar>\n </pw-input-container>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mt-4\">\n <div class=\"mb-3 text-end\">\n <button type=\"button\" class=\"btn btn-outline-default me-2\" data-bs-toggle=\"collapse\"\n (keydown.enter)=\"onCancel()\" (click)=\"onCancel()\" aria-expanded=\"false\"\n aria-controls=\"incidentCollapse\"> {{ 'Button.Cancel' | transloco }} </button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\">{{\n 'Button.Save' | transloco }}</button>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"], dependencies: [{ kind: "component", type: i2.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i7.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText", "isLeftTooltip"] }, { kind: "directive", type: i8.ButtonBusyDirective, selector: "[buttonBusy]", inputs: ["buttonBusy", "busyText"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.QuillEditorComponent, selector: "quill-editor" }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] }); }
144
- }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AddEditIncidentComponent, decorators: [{
146
- type: Component,
147
- args: [{ selector: 'pw-admin-add-edit-incident', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4\">\n <a aria-label=\"Navigate to Target\" routerLink=\"/admin/incident/list\" class=\"previous\"><i\n class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ id ? 'Edit' : 'Add New' }} Incident</h3>\n </div>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"p-2 mt-3\">\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\" *ngIf=\"!isLoading\">\n <div class=\"row\">\n <pw-input-container class=\"col-lg-6\" [label]=\"'Admin.Incident.UrlImpacted' | transloco\"\n name=\"url_impacted\" [errorMsg]=\"'Admin.Incident.Validation.UrlImpacted' | transloco\">\n <input type=\"text\" formControlName=\"url_impacted\" class=\"form-control\"\n [ngClass]=\"{ 'is-invalid': submitted && f['url_impacted'].errors }\" />\n </pw-input-container>\n <pw-input-container class=\"col-lg-6\" [label]=\"'Admin.Incident.ServiceImpacted' | transloco\"\n name=\"service_impacted\"\n [errorMsg]=\"'Admin.Incident.Validation.ServiceImpacted' | transloco\">\n <input type=\"text\" formControlName=\"service_impacted\" class=\"form-control\"\n [ngClass]=\"{ 'is-invalid': submitted && f['service_impacted'].errors }\" />\n </pw-input-container>\n <div class=\"col-lg-12\">\n <pw-input-container class=\"col-12 quill-editor\" id=\"descriptionEditor\"\n [label]=\"'Admin.Incident.Description' | transloco\" name=\"description\"\n [errorMsg]=\"'Admin.Incident.Validation.Description' | transloco\">\n <quill-editor [styles]=\"{ height: '200px'}\" formControlName=\"description\" [modules]=\"editorConfig\"\n class=\"quillEditor d-block\"\n [ngClass]=\"{ 'is-invalid': submitted && f['description'].errors, 'quill-container': true }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"col-lg-12\">\n <pw-input-container class=\"col-12 quill-editor\" id=\"internalDescriptionEditor\"\n [label]=\"'Admin.Incident.InternalDescription' | transloco\" name=\"internal_description\"\n [errorMsg]=\"'Admin.Incident.Validation.InternalDescription' | transloco\">\n <quill-editor [styles]=\"{ height: '200px'}\" formControlName=\"internal_description\" [modules]=\"editorConfig\"\n class=\"quillEditor d-block\"\n [ngClass]=\"{ 'is-invalid': submitted && f['internal_description'].errors, 'quill-container': true }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-4\">\n <pw-input-container [label]=\"'Admin.Incident.StartedAt' | transloco\" name=\"started_at\"\n [errorMsg]=\"'Admin.Incident.Validation.Date' | transloco\">\n <p-calendar class=\"addEditincident\" formControlName=\"started_at\" [showIcon]=\"true\" [placeholder]=\"'Admin.Incident.calender.placeholder' | transloco\"\n [showTime]=\"true\" [appendTo]=\"'body'\" dateFormat=\"dd-M-yy\">\n </p-calendar>\n </pw-input-container>\n </div>\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-4\">\n <pw-input-container [label]=\"'Admin.Incident.ResolvedAt' | transloco\" name=\"resolved_at\"\n [errorMsg]=\"'Admin.Incident.Validation.Date' | transloco\">\n <p-calendar class=\"addEditincident\" formControlName=\"resolved_at\" [showIcon]=\"true\" [placeholder]=\"'Admin.Incident.calender.placeholder' | transloco\"\n [showTime]=\"true\" [appendTo]=\"'body'\" dateFormat=\"dd-M-yy\">\n </p-calendar>\n </pw-input-container>\n </div>\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-4\">\n <pw-input-container [label]=\"'Admin.Incident.LastCheckedAt' | transloco\"\n name=\"last_check_at\" [errorMsg]=\"'Admin.Incident.Validation.Date' | transloco\">\n <p-calendar class=\"addEditincident\" formControlName=\"last_check_at\"[placeholder]=\"'Admin.Incident.calender.placeholder' | transloco\"\n [showIcon]=\"true\" [showTime]=\"true\" [appendTo]=\"'body'\" dateFormat=\"dd-M-yy\">\n </p-calendar>\n </pw-input-container>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mt-4\">\n <div class=\"mb-3 text-end\">\n <button type=\"button\" class=\"btn btn-outline-default me-2\" data-bs-toggle=\"collapse\"\n (keydown.enter)=\"onCancel()\" (click)=\"onCancel()\" aria-expanded=\"false\"\n aria-controls=\"incidentCollapse\"> {{ 'Button.Cancel' | transloco }} </button>\n <button class=\"btn btn-primary\" [buttonBusy]=\"buttonBusy\">{{\n 'Button.Save' | transloco }}</button>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"] }]
148
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.CommonService }], propDecorators: { editForm: [{
149
- type: ViewChild,
150
- args: ['editForm', { static: false }]
151
- }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtaW5jaWRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2luY2lkZW50cy9hZGQtZWRpdC1pbmNpZGVudC9hZGQtZWRpdC1pbmNpZGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvaW5jaWRlbnRzL2FkZC1lZGl0LWluY2lkZW50L2FkZC1lZGl0LWluY2lkZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFFBQVEsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxNQUFNLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTyx3QkFDVCxTQUFRLGdCQUFnQjtJQW1DeEIsWUFDSSxRQUFrQixFQUNELGFBQTRCO1FBRTdDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBNUJqRCxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBR2xCLFlBQU8sR0FB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O1lBQzdELENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQXhKUSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwrTENsQnJDLHVwTkF5RkE7OzRGRHZFYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksNEJBQTRCO3lHQVFJLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlLCBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBRdWlsbEhlbHBlciB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbmltcG9ydCB7IEluY2lkZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9hZG1pbi1tb2R1bGUtc2hhcmVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBST1VURVJTIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3JvdXRlcnMvcm91dGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctYWRtaW4tYWRkLWVkaXQtaW5jaWRlbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hZGQtZWRpdC1pbmNpZGVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWRkLWVkaXQtaW5jaWRlbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBZGRFZGl0SW5jaWRlbnRDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gICAgQFZpZXdDaGlsZCgnZWRpdEZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdEZvcm06IE5nRm9ybTtcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBzYW5pdGl6ZWRIdG1sOiBTYWZlSHRtbDtcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuICAgIGVkaXRvckNvbmZpZztcblxuICAgIGxhbmRpbmcgPSBmYWxzZTtcblxuICAgIGxvZ286IHN0cmluZztcblxuICAgIG9wZW5JbmNpZGVudHMgPSBbXTtcbiAgICBwYXN0SW5jaWRlbnRzID0gW107XG5cbiAgICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgcDE6IG51bWJlcjtcbiAgICBwOiBudW1iZXI7XG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBpZDogbnVtYmVyO1xuXG4gICAgY29tcGFueU5hbWUgPSB0aGlzLmFwcENvbmZpZy5jb21wYW55Lm5hbWU7XG5cbiAgICBjdXJyZW50SW5jaWRlbnQ6IEluY2lkZW50O1xuXG4gICAgaXNTdXBlckFkbWluID0gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5pc1N1cGVyQWRtaW4oKTtcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIGJ1dHRvbkJ1c3kgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIFF1aWxsSGVscGVyLmluaXQoKTtcbiAgICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBRdWlsbEhlbHBlci5nZXRFZGl0b3JDb25maWcoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZ2V0SW5jaWRlbnRGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLnN1YnNjcmliZVRvRWRpdG9yQ2hhbmdlcyh0aGlzLmZvcm0sICdkZXNjcmlwdGlvbicpO1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLnN1YnNjcmliZVRvRWRpdG9yQ2hhbmdlcyh0aGlzLmZvcm0sICdpbnRlcm5hbF9kZXNjcmlwdGlvbicpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ28gPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW4/LnVybDtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gK3BhcmFtc1snaWQnXSB8fCAwO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5jaWRlbnQgPSBoaXN0b3J5LnN0YXRlPy5kYXRhO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5jaWRlbnQgfHwgdGhpcy5pZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRJbmNpZGVudEJ5SWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICBvblN1Ym1pdCgpIHtcbiAgICAgICAgY29uc3QgcmF3SHRtbCA9IEhlbHBlclNlcnZpY2UuU2F2ZVJhd0hUTUwoJyNkZXNjcmlwdGlvbkVkaXRvcicpO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ10uc2V0VmFsdWUocmF3SHRtbCk7XG4gICAgICAgIGNvbnN0IHJhd0ludGVybmFsSHRtbCA9IEhlbHBlclNlcnZpY2UuU2F2ZVJhd0hUTUwoJyNpbnRlcm5hbERlc2NyaXB0aW9uRWRpdG9yJyk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1snaW50ZXJuYWxfZGVzY3JpcHRpb24nXS5zZXRWYWx1ZShyYXdJbnRlcm5hbEh0bWwpO1xuICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25VcGRhdGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFkZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEluY2lkZW50QnlJZCgpIHtcbiAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0SW5jaWRlbnRCeUlkKHRoaXMuaWQsIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICBpZDogcmVzcG9uc2UuaWQsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXNwb25zZT8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIGludGVybmFsX2Rlc2NyaXB0aW9uOiByZXNwb25zZT8uaW50ZXJuYWxfZGVzY3JpcHRpb24gPz8gJycsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfaW1wYWN0ZWQ6IHJlc3BvbnNlPy5zZXJ2aWNlX2ltcGFjdGVkLFxuICAgICAgICAgICAgICAgICAgICB1cmxfaW1wYWN0ZWQ6IHJlc3BvbnNlPy51cmxfaW1wYWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkX2F0OiByZXNwb25zZT8ucmVzb2x2ZWRfYXQgPyBuZXcgRGF0ZShyZXNwb25zZT8ucmVzb2x2ZWRfYXQpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ZWRfYXQ6IHJlc3BvbnNlPy5zdGFydGVkX2F0ID8gbmV3IERhdGUocmVzcG9uc2U/LnN0YXJ0ZWRfYXQpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGxhc3RfY2hlY2tfYXQ6IHJlc3BvbnNlPy5sYXN0X2NoZWNrX2F0ID8gbmV3IERhdGUocmVzcG9uc2U/Lmxhc3RfY2hlY2tfYXQpIDogJydcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uQWRkKCkge1xuICAgICAgICB0aGlzLmJ1dHRvbkJ1c3kgPSB0cnVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkXG4gICAgICAgICAgICAgICAgLy8gbGFzdF9jaGVja19hdDogSGVscGVyU2VydmljZS5kYXRlRm9ybWF0KHRoaXMuZm9ybS52YWx1ZS5zdGFydGVkX2F0KSxcbiAgICAgICAgICAgICAgICAvLyBzdGFydGVkX2F0OiBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQodGhpcy5mb3JtLnZhbHVlLnN0YXJ0ZWRfYXQpLFxuICAgICAgICAgICAgICAgIC8vIHJlc29sdmVkX2F0OiBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQodGhpcy5mb3JtLnZhbHVlLnJlc29sdmVkX2F0KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZVxuICAgICAgICAgICAgICAgIC5hZGRJbmNpZGVudChkYXRhKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkluY2lkZW50LkFkZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt0aGlzLnJvdXRlcnMuaW5jaWRlbnRDb25maWd9YF0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmFkZCgoKSA9PiAodGhpcy5idXR0b25CdXN5ID0gZmFsc2UpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25VcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IHRydWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWRcbiAgICAgICAgICAgICAgICAvLyBsYXN0X2NoZWNrX2F0OiBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQodGhpcy5mb3JtLnZhbHVlLnN0YXJ0ZWRfYXQpLFxuICAgICAgICAgICAgICAgIC8vIHN0YXJ0ZWRfYXQ6IEhlbHBlclNlcnZpY2UuZGF0ZUZvcm1hdCh0aGlzLmZvcm0udmFsdWUuc3RhcnRlZF9hdCksXG4gICAgICAgICAgICAgICAgLy8gcmVzb2x2ZWRfYXQ6IEhlbHBlclNlcnZpY2UuZGF0ZUZvcm1hdCh0aGlzLmZvcm0udmFsdWUucmVzb2x2ZWRfYXQpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmVkaXRJbmNpZGVudCh0aGlzLmlkLCBkYXRhKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkluY2lkZW50LlVwZGF0ZU1lc3NhZ2UnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt0aGlzLnJvdXRlcnMuaW5jaWRlbnRDb25maWd9YF0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmFkZCgoKSA9PiAodGhpcy5idXR0b25CdXN5ID0gZmFsc2UpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt0aGlzLnJvdXRlcnMuaW5jaWRlbnRDb25maWd9YF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtYXV0byBjb2wteHMtNiBtdC00XCI+XG4gICAgICAgICAgICAgICAgPGEgYXJpYS1sYWJlbD1cIk5hdmlnYXRlIHRvIFRhcmdldFwiIHJvdXRlckxpbms9XCIvYWRtaW4vaW5jaWRlbnQvbGlzdFwiIGNsYXNzPVwicHJldmlvdXNcIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm10LTNcIj57eyBpZCA/ICdFZGl0JyA6ICdBZGQgTmV3JyB9fSBJbmNpZGVudDwvaDM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTIgbXQtM1wiPlxuICAgICAgICAgICAgICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJjb2wtbGctNlwiIFtsYWJlbF09XCInQWRtaW4uSW5jaWRlbnQuVXJsSW1wYWN0ZWQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXJsX2ltcGFjdGVkXCIgW2Vycm9yTXNnXT1cIidBZG1pbi5JbmNpZGVudC5WYWxpZGF0aW9uLlVybEltcGFjdGVkJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInVybF9pbXBhY3RlZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd1cmxfaW1wYWN0ZWQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJjb2wtbGctNlwiIFtsYWJlbF09XCInQWRtaW4uSW5jaWRlbnQuU2VydmljZUltcGFjdGVkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNlcnZpY2VfaW1wYWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uSW5jaWRlbnQuVmFsaWRhdGlvbi5TZXJ2aWNlSW1wYWN0ZWQnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwic2VydmljZV9pbXBhY3RlZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydzZXJ2aWNlX2ltcGFjdGVkJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBjbGFzcz1cImNvbC0xMiBxdWlsbC1lZGl0b3JcIiBpZD1cImRlc2NyaXB0aW9uRWRpdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5JbmNpZGVudC5EZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLkluY2lkZW50LlZhbGlkYXRpb24uRGVzY3JpcHRpb24nIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxxdWlsbC1lZGl0b3IgW3N0eWxlc109XCJ7IGhlaWdodDogJzIwMHB4J31cIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIFttb2R1bGVzXT1cImVkaXRvckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInF1aWxsRWRpdG9yIGQtYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydkZXNjcmlwdGlvbiddLmVycm9ycywgJ3F1aWxsLWNvbnRhaW5lcic6IHRydWUgIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9xdWlsbC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGNsYXNzPVwiY29sLTEyIHF1aWxsLWVkaXRvclwiIGlkPVwiaW50ZXJuYWxEZXNjcmlwdGlvbkVkaXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uSW5jaWRlbnQuSW50ZXJuYWxEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiBuYW1lPVwiaW50ZXJuYWxfZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLkluY2lkZW50LlZhbGlkYXRpb24uSW50ZXJuYWxEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHF1aWxsLWVkaXRvciBbc3R5bGVzXT1cInsgaGVpZ2h0OiAnMjAwcHgnfVwiIGZvcm1Db250cm9sTmFtZT1cImludGVybmFsX2Rlc2NyaXB0aW9uXCIgW21vZHVsZXNdPVwiZWRpdG9yQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicXVpbGxFZGl0b3IgZC1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2ludGVybmFsX2Rlc2NyaXB0aW9uJ10uZXJyb3JzLCAncXVpbGwtY29udGFpbmVyJzogdHJ1ZSAgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3F1aWxsLWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgY29sLW1kLTQgY29sLWxnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkluY2lkZW50LlN0YXJ0ZWRBdCcgfCB0cmFuc2xvY29cIiBuYW1lPVwic3RhcnRlZF9hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLkluY2lkZW50LlZhbGlkYXRpb24uRGF0ZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGNsYXNzPVwiYWRkRWRpdGluY2lkZW50XCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRlZF9hdFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cIidBZG1pbi5JbmNpZGVudC5jYWxlbmRlci5wbGFjZWhvbGRlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIGRhdGVGb3JtYXQ9XCJkZC1NLXl5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgY29sLW1kLTQgY29sLWxnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkluY2lkZW50LlJlc29sdmVkQXQnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInJlc29sdmVkX2F0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uSW5jaWRlbnQuVmFsaWRhdGlvbi5EYXRlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgY2xhc3M9XCJhZGRFZGl0aW5jaWRlbnRcIiBmb3JtQ29udHJvbE5hbWU9XCJyZXNvbHZlZF9hdFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cIidBZG1pbi5JbmNpZGVudC5jYWxlbmRlci5wbGFjZWhvbGRlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIGRhdGVGb3JtYXQ9XCJkZC1NLXl5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgY29sLW1kLTQgY29sLWxnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkluY2lkZW50Lkxhc3RDaGVja2VkQXQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsYXN0X2NoZWNrX2F0XCIgW2Vycm9yTXNnXT1cIidBZG1pbi5JbmNpZGVudC5WYWxpZGF0aW9uLkRhdGUnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBjbGFzcz1cImFkZEVkaXRpbmNpZGVudFwiIGZvcm1Db250cm9sTmFtZT1cImxhc3RfY2hlY2tfYXRcIltwbGFjZWhvbGRlcl09XCInQWRtaW4uSW5jaWRlbnQuY2FsZW5kZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiIFtzaG93VGltZV09XCJ0cnVlXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIGRhdGVGb3JtYXQ9XCJkZC1NLXl5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG10LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyB0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQ2FuY2VsKClcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImluY2lkZW50Q29sbGFwc2VcIj4ge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19IDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2J1dHRvbkJ1c3ldPVwiYnV0dG9uQnVzeVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQnV0dG9uLlNhdmUnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,118 +0,0 @@
1
- import { Component, Injector } from '@angular/core';
2
- import { AppBaseComponent } from '@posiwise/app-base-component';
3
- import { CommonService, PermissionService } from '@posiwise/common-services';
4
- import { PAGE_SIZE } from '@posiwise/common-utilities';
5
- import { HelperService } from '@posiwise/helper-service';
6
- import Swal from 'sweetalert2';
7
- import { ROUTERS } from '../../../shared/routers/routers';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@posiwise/common-services";
10
- import * as i2 from "primeng/table";
11
- import * as i3 from "primeng/api";
12
- import * as i4 from "primeng/inputtext";
13
- import * as i5 from "@ng-bootstrap/ng-bootstrap";
14
- import * as i6 from "@angular/common";
15
- import * as i7 from "@angular/forms";
16
- import * as i8 from "@angular/router";
17
- import * as i9 from "primeng/progressspinner";
18
- import * as i10 from "@posiwise/shared-components";
19
- import * as i11 from "@posiwise/directives";
20
- import * as i12 from "@jsverse/transloco";
21
- import * as i13 from "@posiwise/pipes";
22
- export class IncidentListComponent extends AppBaseComponent {
23
- constructor(injector, commonService) {
24
- super(injector);
25
- this.commonService = commonService;
26
- this.routers = ROUTERS;
27
- this.showList = true;
28
- this.isLoaded = true;
29
- this.landing = false;
30
- this.openIncidents = [];
31
- this.totalRecordsUnFiltered = 0;
32
- this.page = 1;
33
- this.searchText = '';
34
- this.companyName = this.appConfig.company.name;
35
- this.isSuperAdmin = this.permissionService.isSuperAdmin();
36
- this.subscriptionId = PermissionService.selectedSubscription?.id;
37
- }
38
- ngOnInit() {
39
- this.logo = this.appConfig?.company?.logos?.main?.url;
40
- }
41
- getIncidents(paging) {
42
- this.isLoaded = false;
43
- this.commonService.getIncidentsAdmin(paging, this.subscriptionId).subscribe(response => {
44
- this.isLoaded = true;
45
- this.openIncidents = response?.incidents;
46
- this.totalRecordsUnFiltered = response.unfiltered_count;
47
- this.totalRecords = response.object_count;
48
- });
49
- }
50
- onLazyLoad(event) {
51
- const pageDetails = HelperService.onTableLazyLoad(event);
52
- this.page = pageDetails.page;
53
- this.getIncidents({
54
- page: this.page,
55
- page_size: PAGE_SIZE,
56
- order_by: pageDetails.sortField,
57
- order_direction: pageDetails.sortOrder,
58
- search: this.searchText
59
- });
60
- }
61
- calculateDuration(startedAt, resolvedAt) {
62
- if (!startedAt) {
63
- return '';
64
- }
65
- const startedDate = new Date(startedAt);
66
- const resolvedDate = new Date(resolvedAt);
67
- const durationMinutes = Math.abs((resolvedDate.getTime() - startedDate.getTime()) / (1000 * 60));
68
- if (durationMinutes < 1) {
69
- const durationSeconds = Math.abs((resolvedDate.getTime() - startedDate.getTime()) / 1000);
70
- return `${Math.round(durationSeconds)} seconds`;
71
- }
72
- else if (durationMinutes < 60) {
73
- return `${Math.round(durationMinutes)} minutes`;
74
- }
75
- else if (durationMinutes < 24 * 60) {
76
- const durationHours = durationMinutes / 60;
77
- return `${durationHours.toFixed(2)} hours`;
78
- }
79
- else {
80
- const durationDays = durationMinutes / (24 * 60);
81
- return `${durationDays.toFixed(1)} days`;
82
- }
83
- }
84
- navigateToEdit(incident) {
85
- this.router.navigate([this.routers.incidentDetails + incident?.id], {
86
- state: { data: incident }
87
- });
88
- }
89
- onDelete(incident) {
90
- Swal.fire({
91
- title: 'Delete',
92
- html: `Are you sure you want to delete?`,
93
- showCancelButton: true,
94
- reverseButtons: true,
95
- icon: 'warning'
96
- }).then(rep => {
97
- if (rep.value) {
98
- this.commonService
99
- .deleteIncidentAdmin(incident.id, this.subscriptionId)
100
- .subscribe(() => {
101
- this.toast.success(this.translation.translate('Admin.Incident.DeletedMessage'));
102
- this.getIncidents({
103
- page: this.page,
104
- page_size: PAGE_SIZE,
105
- search: this.searchText
106
- });
107
- });
108
- }
109
- });
110
- }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IncidentListComponent, deps: [{ token: i0.Injector }, { token: i1.CommonService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: IncidentListComponent, selector: "pw-admin-incident-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n\t<div *rbacAllow=\"'Pages.Admin.Incident.Create'\"\n\t\tclass=\"col-12 d-flex flex-wrap justify-content-between align-items-center\">\n\t\t<h2 class=\"card-title p-0 float-start\">Incidents</h2>\n\t\t<a [routerLink]=\"[routers.incidentDetails + 'add']\"\n\t\t\t(click)=\"showList = !showList\"\n\t\t\t(keydown.enter)=\"showList = !showList\"\n\t\t\taria-label=\"Navigate to Target\"\n\t\t\tclass=\"btn btn-sm btn-outline-primary float-end\"\n\t\t\taria-expanded=\"false\">\n\t\t\t<i class=\"fa fa-plus-circle\"\n\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t{{ 'Label.AddNew' | transloco }} Incident\n\t\t</a>\n\t</div>\n <div class=\"col-12 mb-3\">\n <p>The <strong>Incidents</strong> module lets you create and manage incident statuses. These incidents are publicly\n visible at the <strong>/status</strong> endpoint.</p>\n </div>\n</div>\n<div *ngIf=\"!isLoaded\"\n\tclass=\"w-100 text-center mt-3\">\n\t<p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n</div>\n<div *ngIf=\"showList\"\n\tclass=\"row faqlist primeng-datatable-container mt-0\" [class.hideTable]=\"totalRecordsUnFiltered === 0\">\n\t<div class=\"col-12 px-0\">\n\t\t<p-table #tt\n\t\t\t[paginator]=\"totalRecords !== 0\"\n\t\t\t[rows]=\"PAGE_SIZE\"\n\t\t\t[totalRecords]=\"totalRecords\"\n\t\t\t[loading]=\"loading\"\n\t\t\t[lazy]=\"true\"\n\t\t\t[filterDelay]=\"1000\"\n\t\t\t[customSort]=\"true\"\n\t\t\t[value]=\"openIncidents\"\n\t\t\t(onLazyLoad)=\"onLazyLoad($event)\">\n\t\t\t<ng-template pTemplate=\"caption\">\n\t\t\t\t<div class=\"search-filter justify-content-end\">\n\t\t\t\t\t<div class=\"text-end\">\n\t\t\t\t\t\t<i class=\"fa fa-search mt-2 me-2\"\n\t\t\t\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t\t\t\t<input [(ngModel)]=\"searchText\"\n\t\t\t\t\t\t\t(input)=\"tt.filterGlobal($event.target.value, 'contains')\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tpInputText\n\t\t\t\t\t\t\tsize=\"50\"\n\t\t\t\t\t\t\tplaceholder=\"Search Incident...\"\n\t\t\t\t\t\t\tdata-cy=\"incident-search\"\n\t\t\t\t\t\t\tclass=\"wd-90\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template pTemplate=\"header\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th scope=\"true\">\n\t\t\t\t\t\t{{ 'Admin.Incident.Description' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\">\n\t\t\t\t\t\t{{ 'Admin.Incident.ServiceImpacted' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tpSortableColumn=\"started_at\">\n\t\t\t\t\t\t{{ 'Admin.Incident.StartedAt' | transloco }}\n\t\t\t\t\t\t<p-sortIcon field=\"started_at\"></p-sortIcon>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tpSortableColumn=\"resolved_at\">\n\t\t\t\t\t\t{{ 'Admin.Incident.ResolvedAt' | transloco }}\n\t\t\t\t\t\t<p-sortIcon field=\"resolved_at\"></p-sortIcon>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tpSortableColumn=\"last_check_at\">\n\t\t\t\t\t\t{{ 'Admin.Incident.LastCheckedAt' | transloco }}\n\t\t\t\t\t\t<p-sortIcon field=\"last_check_at\"></p-sortIcon>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\">\n\t\t\t\t\t\t{{ 'Admin.Incident.Duration' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tclass=\"actions-list-two\">\n\t\t\t\t\t\t{{ 'Label.Actions' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</ng-template>\n\t\t\t<ng-template pTemplate=\"body\"\n\t\t\t\tlet-incident>\n\t\t\t\t<tr>\n\t\t\t\t\t<td data-head=\"description\"\n\t\t\t\t\t\tclass=\"description\">\n\t\t\t\t\t\t{{(incident?.description | removeHtml: 'quill')|textTruncate: 200}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"serviceImpacted\">\n\t\t\t\t\t\t{{ incident?.service_impacted ? incident?.service_impacted :\n incident?.url_impacted }}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"startedAt\">\n\t\t\t\t\t\t<span class=\"text-nowrap\">\n\t\t\t\t\t\t\t{{ incident?.started_at | date: 'dd-MMM-YYYY, h:mm a' }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"resolvedAt\">\n\t\t\t\t\t\t<span class=\"text-nowrap\">\n\t\t\t\t\t\t\t{{ incident?.resolved_at | date: 'dd-MMM-YYYY, h:mm a' }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"lastCheckedAt\">\n\t\t\t\t\t<span class=\"text-nowrap\">\n\t\t\t\t\t\t{{ incident?.last_check_at | date: 'dd-MMM-YYYY, h:mm a' }}\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"Duration\">\n\t\t\t\t\t\t<!-- {{ calculateDuration(incident?.resolved_at ? incident?.resolved_at :\n incident?.last_check_at, incident?.started_at) }} -->\n\t\t\t\t\t\t{{ calculateDuration(incident?.resolved_at,\n incident?.started_at) }}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"Action\">\n\t\t\t\t\t\t<ul class=\"list-unstyled list-inline list-action\">\n\t\t\t\t\t\t\t<li ngbTooltip=\"Edit\"\n\t\t\t\t\t\t\t\tclass=\"me-2 me-sm-2\">\n\t\t\t\t\t\t\t\t<i (click)=\"navigateToEdit(incident)\"\n\t\t\t\t\t\t\t\t\t(keydown.enter)=\"navigateToEdit(incident)\"\n\t\t\t\t\t\t\t\t\tclass=\"fa fa-edit edit-icon\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li ngbTooltip=\"Delete\"\n\t\t\t\t\t\t\t\tclass=\"me-2 me-sm-2\">\n\t\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\t(keydown.enter)=\"onDelete(incident)\"\n\t\t\t\t\t\t\t\t(click)=\"onDelete(incident)\"\n\t\t\t\t\t\t\t\t\tclass=\"fa fa-trash delete-icon\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</ng-template>\n\t\t</p-table>\n <div *ngIf=\"openIncidents.length === 0 && totalRecordsUnFiltered !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\"\n [description]=\"'Search.NoDataDescription' | transloco\">\n </pw-no-data>\n </div>\n\t<span class=\"total-records-count\"*ngIf=\"openIncidents.length !== 0\" >Total: {{openIncidents.length }}</span>\n\t</div>\n</div>\n<pw-no-data [withImage]=\"true\" *ngIf=\"totalRecordsUnFiltered === 0 && isLoaded\"\n [message]=\"'Admin.Incident.NoDataMessage' | transloco\">\n</pw-no-data>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}.incidents-wrapper .table thead th{border:0;border-bottom:1px solid rgb(222,226,230)}.incident-item{color:#3f3f44;font-size:14px;line-height:1.42857;padding:10px 0}.incident-item .description{color:var(--first)}.incident-item:last-child{border-bottom:0!important}.ql-editor.safe-html{margin:0;font-size:13px;padding:0}.safe-html p{margin:0;font-size:13px}\n"], dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i9.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i10.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i11.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i13.RemoveHtmlPipe, name: "removeHtml" }, { kind: "pipe", type: i13.TextTruncatePipe, name: "textTruncate" }] }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IncidentListComponent, decorators: [{
115
- type: Component,
116
- args: [{ selector: 'pw-admin-incident-list', template: "<div class=\"row\">\n\t<div *rbacAllow=\"'Pages.Admin.Incident.Create'\"\n\t\tclass=\"col-12 d-flex flex-wrap justify-content-between align-items-center\">\n\t\t<h2 class=\"card-title p-0 float-start\">Incidents</h2>\n\t\t<a [routerLink]=\"[routers.incidentDetails + 'add']\"\n\t\t\t(click)=\"showList = !showList\"\n\t\t\t(keydown.enter)=\"showList = !showList\"\n\t\t\taria-label=\"Navigate to Target\"\n\t\t\tclass=\"btn btn-sm btn-outline-primary float-end\"\n\t\t\taria-expanded=\"false\">\n\t\t\t<i class=\"fa fa-plus-circle\"\n\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t{{ 'Label.AddNew' | transloco }} Incident\n\t\t</a>\n\t</div>\n <div class=\"col-12 mb-3\">\n <p>The <strong>Incidents</strong> module lets you create and manage incident statuses. These incidents are publicly\n visible at the <strong>/status</strong> endpoint.</p>\n </div>\n</div>\n<div *ngIf=\"!isLoaded\"\n\tclass=\"w-100 text-center mt-3\">\n\t<p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n</div>\n<div *ngIf=\"showList\"\n\tclass=\"row faqlist primeng-datatable-container mt-0\" [class.hideTable]=\"totalRecordsUnFiltered === 0\">\n\t<div class=\"col-12 px-0\">\n\t\t<p-table #tt\n\t\t\t[paginator]=\"totalRecords !== 0\"\n\t\t\t[rows]=\"PAGE_SIZE\"\n\t\t\t[totalRecords]=\"totalRecords\"\n\t\t\t[loading]=\"loading\"\n\t\t\t[lazy]=\"true\"\n\t\t\t[filterDelay]=\"1000\"\n\t\t\t[customSort]=\"true\"\n\t\t\t[value]=\"openIncidents\"\n\t\t\t(onLazyLoad)=\"onLazyLoad($event)\">\n\t\t\t<ng-template pTemplate=\"caption\">\n\t\t\t\t<div class=\"search-filter justify-content-end\">\n\t\t\t\t\t<div class=\"text-end\">\n\t\t\t\t\t\t<i class=\"fa fa-search mt-2 me-2\"\n\t\t\t\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t\t\t\t<input [(ngModel)]=\"searchText\"\n\t\t\t\t\t\t\t(input)=\"tt.filterGlobal($event.target.value, 'contains')\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tpInputText\n\t\t\t\t\t\t\tsize=\"50\"\n\t\t\t\t\t\t\tplaceholder=\"Search Incident...\"\n\t\t\t\t\t\t\tdata-cy=\"incident-search\"\n\t\t\t\t\t\t\tclass=\"wd-90\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template pTemplate=\"header\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th scope=\"true\">\n\t\t\t\t\t\t{{ 'Admin.Incident.Description' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\">\n\t\t\t\t\t\t{{ 'Admin.Incident.ServiceImpacted' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tpSortableColumn=\"started_at\">\n\t\t\t\t\t\t{{ 'Admin.Incident.StartedAt' | transloco }}\n\t\t\t\t\t\t<p-sortIcon field=\"started_at\"></p-sortIcon>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tpSortableColumn=\"resolved_at\">\n\t\t\t\t\t\t{{ 'Admin.Incident.ResolvedAt' | transloco }}\n\t\t\t\t\t\t<p-sortIcon field=\"resolved_at\"></p-sortIcon>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tpSortableColumn=\"last_check_at\">\n\t\t\t\t\t\t{{ 'Admin.Incident.LastCheckedAt' | transloco }}\n\t\t\t\t\t\t<p-sortIcon field=\"last_check_at\"></p-sortIcon>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\">\n\t\t\t\t\t\t{{ 'Admin.Incident.Duration' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t\t<th scope=\"true\"\n\t\t\t\t\t\tclass=\"actions-list-two\">\n\t\t\t\t\t\t{{ 'Label.Actions' | transloco }}\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</ng-template>\n\t\t\t<ng-template pTemplate=\"body\"\n\t\t\t\tlet-incident>\n\t\t\t\t<tr>\n\t\t\t\t\t<td data-head=\"description\"\n\t\t\t\t\t\tclass=\"description\">\n\t\t\t\t\t\t{{(incident?.description | removeHtml: 'quill')|textTruncate: 200}}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"serviceImpacted\">\n\t\t\t\t\t\t{{ incident?.service_impacted ? incident?.service_impacted :\n incident?.url_impacted }}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"startedAt\">\n\t\t\t\t\t\t<span class=\"text-nowrap\">\n\t\t\t\t\t\t\t{{ incident?.started_at | date: 'dd-MMM-YYYY, h:mm a' }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"resolvedAt\">\n\t\t\t\t\t\t<span class=\"text-nowrap\">\n\t\t\t\t\t\t\t{{ incident?.resolved_at | date: 'dd-MMM-YYYY, h:mm a' }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"lastCheckedAt\">\n\t\t\t\t\t<span class=\"text-nowrap\">\n\t\t\t\t\t\t{{ incident?.last_check_at | date: 'dd-MMM-YYYY, h:mm a' }}\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"Duration\">\n\t\t\t\t\t\t<!-- {{ calculateDuration(incident?.resolved_at ? incident?.resolved_at :\n incident?.last_check_at, incident?.started_at) }} -->\n\t\t\t\t\t\t{{ calculateDuration(incident?.resolved_at,\n incident?.started_at) }}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td data-head=\"Action\">\n\t\t\t\t\t\t<ul class=\"list-unstyled list-inline list-action\">\n\t\t\t\t\t\t\t<li ngbTooltip=\"Edit\"\n\t\t\t\t\t\t\t\tclass=\"me-2 me-sm-2\">\n\t\t\t\t\t\t\t\t<i (click)=\"navigateToEdit(incident)\"\n\t\t\t\t\t\t\t\t\t(keydown.enter)=\"navigateToEdit(incident)\"\n\t\t\t\t\t\t\t\t\tclass=\"fa fa-edit edit-icon\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li ngbTooltip=\"Delete\"\n\t\t\t\t\t\t\t\tclass=\"me-2 me-sm-2\">\n\t\t\t\t\t\t\t\t<i\n\t\t\t\t\t\t\t\t(keydown.enter)=\"onDelete(incident)\"\n\t\t\t\t\t\t\t\t(click)=\"onDelete(incident)\"\n\t\t\t\t\t\t\t\t\tclass=\"fa fa-trash delete-icon\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</ng-template>\n\t\t</p-table>\n <div *ngIf=\"openIncidents.length === 0 && totalRecordsUnFiltered !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\"\n [description]=\"'Search.NoDataDescription' | transloco\">\n </pw-no-data>\n </div>\n\t<span class=\"total-records-count\"*ngIf=\"openIncidents.length !== 0\" >Total: {{openIncidents.length }}</span>\n\t</div>\n</div>\n<pw-no-data [withImage]=\"true\" *ngIf=\"totalRecordsUnFiltered === 0 && isLoaded\"\n [message]=\"'Admin.Incident.NoDataMessage' | transloco\">\n</pw-no-data>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}.incidents-wrapper .table thead th{border:0;border-bottom:1px solid rgb(222,226,230)}.incident-item{color:#3f3f44;font-size:14px;line-height:1.42857;padding:10px 0}.incident-item .description{color:var(--first)}.incident-item:last-child{border-bottom:0!important}.ql-editor.safe-html{margin:0;font-size:13px;padding:0}.safe-html p{margin:0;font-size:13px}\n"] }]
117
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.CommonService }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2luY2lkZW50cy9pbmNpZGVudHMtbGlzdC9pbmNpZGVudHMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvaW5jaWRlbnRzL2luY2lkZW50cy1saXN0L2luY2lkZW50cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFFL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFNMUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQXlCdkQsWUFDSSxRQUFrQixFQUNELGFBQTRCO1FBRTdDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUJqRCxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBSWxCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGtCQUFhLEdB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O3dCQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7cUJBQzFCLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBbkhRLHFCQUFxQjttR0FBckIscUJBQXFCLHFGQ2hCbEMsaTNMQXNKQTs7NEZEdElhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlLCBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgUEFHRV9TSVpFLCBQYWdpbmcgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1hZG1pbi1pbmNpZGVudC1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5jaWRlbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2luY2lkZW50cy1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5jaWRlbnRMaXN0Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIGxvZ286IHN0cmluZztcblxuICAgIHNob3dMaXN0ID0gdHJ1ZTtcbiAgICBpc0xvYWRlZCA9IHRydWU7XG5cbiAgICBsYW5kaW5nID0gZmFsc2U7XG5cbiAgICBvcGVuSW5jaWRlbnRzID0gW107XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyO1xuICAgIHAxOiBudW1iZXI7XG4gICAgcDogbnVtYmVyO1xuXG4gICAgdG90YWxSZWNvcmRzVW5GaWx0ZXJlZCA9IDA7XG4gICAgcHJpdmF0ZSBwYWdlID0gMTtcblxuICAgIHNlYXJjaFRleHQgPSAnJztcblxuICAgIGNvbXBhbnlOYW1lID0gdGhpcy5hcHBDb25maWcuY29tcGFueS5uYW1lO1xuICAgIGlzU3VwZXJBZG1pbiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UuaXNTdXBlckFkbWluKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvZ28gPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW4/LnVybDtcbiAgICB9XG5cbiAgICBnZXRJbmNpZGVudHMocGFnaW5nOiBQYWdpbmcpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0SW5jaWRlbnRzQWRtaW4ocGFnaW5nLCB0aGlzLnN1YnNjcmlwdGlvbklkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm9wZW5JbmNpZGVudHMgPSByZXNwb25zZT8uaW5jaWRlbnRzO1xuICAgICAgICAgICAgdGhpcy50b3RhbFJlY29yZHNVbkZpbHRlcmVkID0gcmVzcG9uc2UudW5maWx0ZXJlZF9jb3VudDtcbiAgICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzcG9uc2Uub2JqZWN0X2NvdW50O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkxhenlMb2FkKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VEZXRhaWxzID0gSGVscGVyU2VydmljZS5vblRhYmxlTGF6eUxvYWQoZXZlbnQpO1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlRGV0YWlscy5wYWdlO1xuICAgICAgICB0aGlzLmdldEluY2lkZW50cyh7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICAgICAgICBwYWdlX3NpemU6IFBBR0VfU0laRSxcbiAgICAgICAgICAgIG9yZGVyX2J5OiBwYWdlRGV0YWlscy5zb3J0RmllbGQsXG4gICAgICAgICAgICBvcmRlcl9kaXJlY3Rpb246IHBhZ2VEZXRhaWxzLnNvcnRPcmRlcixcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXh0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZUR1cmF0aW9uKHN0YXJ0ZWRBdDogc3RyaW5nLCByZXNvbHZlZEF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXN0YXJ0ZWRBdCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ZWREYXRlID0gbmV3IERhdGUoc3RhcnRlZEF0KTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWREYXRlID0gbmV3IERhdGUocmVzb2x2ZWRBdCk7XG5cbiAgICAgICAgY29uc3QgZHVyYXRpb25NaW51dGVzID0gTWF0aC5hYnMoXG4gICAgICAgICAgICAocmVzb2x2ZWREYXRlLmdldFRpbWUoKSAtIHN0YXJ0ZWREYXRlLmdldFRpbWUoKSkgLyAoMTAwMCAqIDYwKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChkdXJhdGlvbk1pbnV0ZXMgPCAxKSB7XG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvblNlY29uZHMgPSBNYXRoLmFicyhcbiAgICAgICAgICAgICAgICAocmVzb2x2ZWREYXRlLmdldFRpbWUoKSAtIHN0YXJ0ZWREYXRlLmdldFRpbWUoKSkgLyAxMDAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIGAke01hdGgucm91bmQoZHVyYXRpb25TZWNvbmRzKX0gc2Vjb25kc2A7XG4gICAgICAgIH0gZWxzZSBpZiAoZHVyYXRpb25NaW51dGVzIDwgNjApIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uTWludXRlcyl9IG1pbnV0ZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uTWludXRlcyA8IDI0ICogNjApIHtcbiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uSG91cnMgPSBkdXJhdGlvbk1pbnV0ZXMgLyA2MDtcbiAgICAgICAgICAgIHJldHVybiBgJHtkdXJhdGlvbkhvdXJzLnRvRml4ZWQoMil9IGhvdXJzYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uRGF5cyA9IGR1cmF0aW9uTWludXRlcyAvICgyNCAqIDYwKTtcbiAgICAgICAgICAgIHJldHVybiBgJHtkdXJhdGlvbkRheXMudG9GaXhlZCgxKX0gZGF5c2A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvRWRpdChpbmNpZGVudCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yb3V0ZXJzLmluY2lkZW50RGV0YWlscyArIGluY2lkZW50Py5pZF0sIHtcbiAgICAgICAgICAgIHN0YXRlOiB7IGRhdGE6IGluY2lkZW50IH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoaW5jaWRlbnQpIHtcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRGVsZXRlJyxcbiAgICAgICAgICAgIGh0bWw6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlP2AsXG4gICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgcmV2ZXJzZUJ1dHRvbnM6IHRydWUsXG4gICAgICAgICAgICBpY29uOiAnd2FybmluZydcbiAgICAgICAgfSkudGhlbihyZXAgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAuZGVsZXRlSW5jaWRlbnRBZG1pbihpbmNpZGVudC5pZCwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkluY2lkZW50LkRlbGV0ZWRNZXNzYWdlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEluY2lkZW50cyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cblx0PGRpdiAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLkluY2lkZW50LkNyZWF0ZSdcIlxuXHRcdGNsYXNzPVwiY29sLTEyIGQtZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG5cdFx0PGgyIGNsYXNzPVwiY2FyZC10aXRsZSBwLTAgZmxvYXQtc3RhcnRcIj5JbmNpZGVudHM8L2gyPlxuXHRcdDxhIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXJzLmluY2lkZW50RGV0YWlscyArICdhZGQnXVwiXG5cdFx0XHQoY2xpY2spPVwic2hvd0xpc3QgPSAhc2hvd0xpc3RcIlxuXHRcdFx0KGtleWRvd24uZW50ZXIpPVwic2hvd0xpc3QgPSAhc2hvd0xpc3RcIlxuXHRcdFx0YXJpYS1sYWJlbD1cIk5hdmlnYXRlIHRvIFRhcmdldFwiXG5cdFx0XHRjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1lbmRcIlxuXHRcdFx0YXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG5cdFx0XHQ8aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlXCJcblx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0e3sgJ0xhYmVsLkFkZE5ldycgfCB0cmFuc2xvY28gfX0gSW5jaWRlbnRcblx0XHQ8L2E+XG5cdDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTNcIj5cbiAgICA8cD5UaGUgPHN0cm9uZz5JbmNpZGVudHM8L3N0cm9uZz4gbW9kdWxlIGxldHMgeW91IGNyZWF0ZSBhbmQgbWFuYWdlIGluY2lkZW50IHN0YXR1c2VzLiBUaGVzZSBpbmNpZGVudHMgYXJlIHB1YmxpY2x5XG4gICAgICB2aXNpYmxlIGF0IHRoZSA8c3Ryb25nPi9zdGF0dXM8L3N0cm9uZz4gZW5kcG9pbnQuPC9wPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cIiFpc0xvYWRlZFwiXG5cdGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiPlxuXHQ8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+PC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInNob3dMaXN0XCJcblx0Y2xhc3M9XCJyb3cgZmFxbGlzdCBwcmltZW5nLWRhdGF0YWJsZS1jb250YWluZXIgbXQtMFwiIFtjbGFzcy5oaWRlVGFibGVdPVwidG90YWxSZWNvcmRzVW5GaWx0ZXJlZCA9PT0gMFwiPlxuXHQ8ZGl2IGNsYXNzPVwiY29sLTEyIHB4LTBcIj5cblx0XHQ8cC10YWJsZSAjdHRcblx0XHRcdFtwYWdpbmF0b3JdPVwidG90YWxSZWNvcmRzICE9PSAwXCJcblx0XHRcdFtyb3dzXT1cIlBBR0VfU0laRVwiXG5cdFx0XHRbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXG5cdFx0XHRbbG9hZGluZ109XCJsb2FkaW5nXCJcblx0XHRcdFtsYXp5XT1cInRydWVcIlxuXHRcdFx0W2ZpbHRlckRlbGF5XT1cIjEwMDBcIlxuXHRcdFx0W2N1c3RvbVNvcnRdPVwidHJ1ZVwiXG5cdFx0XHRbdmFsdWVdPVwib3BlbkluY2lkZW50c1wiXG5cdFx0XHQob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIj5cblx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtZmlsdGVyIGp1c3RpZnktY29udGVudC1lbmRcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIG10LTIgbWUtMlwiXG5cdFx0XHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdDxpbnB1dCBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuXHRcdFx0XHRcdFx0XHQoaW5wdXQpPVwidHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcblx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHRcdFx0XHRwSW5wdXRUZXh0XG5cdFx0XHRcdFx0XHRcdHNpemU9XCI1MFwiXG5cdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiU2VhcmNoIEluY2lkZW50Li4uXCJcblx0XHRcdFx0XHRcdFx0ZGF0YS1jeT1cImluY2lkZW50LXNlYXJjaFwiXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwid2QtOTBcIj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuXHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0PHRoIHNjb3BlPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0e3sgJ0FkbWluLkluY2lkZW50LkRlc2NyaXB0aW9uJyB8IHRyYW5zbG9jbyB9fVxuXHRcdFx0XHRcdDwvdGg+XG5cdFx0XHRcdFx0PHRoIHNjb3BlPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0e3sgJ0FkbWluLkluY2lkZW50LlNlcnZpY2VJbXBhY3RlZCcgfCB0cmFuc2xvY28gfX1cblx0XHRcdFx0XHQ8L3RoPlxuXHRcdFx0XHRcdDx0aCBzY29wZT1cInRydWVcIlxuXHRcdFx0XHRcdFx0cFNvcnRhYmxlQ29sdW1uPVwic3RhcnRlZF9hdFwiPlxuXHRcdFx0XHRcdFx0e3sgJ0FkbWluLkluY2lkZW50LlN0YXJ0ZWRBdCcgfCB0cmFuc2xvY28gfX1cblx0XHRcdFx0XHRcdDxwLXNvcnRJY29uIGZpZWxkPVwic3RhcnRlZF9hdFwiPjwvcC1zb3J0SWNvbj5cblx0XHRcdFx0XHQ8L3RoPlxuXHRcdFx0XHRcdDx0aCBzY29wZT1cInRydWVcIlxuXHRcdFx0XHRcdFx0cFNvcnRhYmxlQ29sdW1uPVwicmVzb2x2ZWRfYXRcIj5cblx0XHRcdFx0XHRcdHt7ICdBZG1pbi5JbmNpZGVudC5SZXNvbHZlZEF0JyB8IHRyYW5zbG9jbyB9fVxuXHRcdFx0XHRcdFx0PHAtc29ydEljb24gZmllbGQ9XCJyZXNvbHZlZF9hdFwiPjwvcC1zb3J0SWNvbj5cblx0XHRcdFx0XHQ8L3RoPlxuXHRcdFx0XHRcdDx0aCBzY29wZT1cInRydWVcIlxuXHRcdFx0XHRcdFx0cFNvcnRhYmxlQ29sdW1uPVwibGFzdF9jaGVja19hdFwiPlxuXHRcdFx0XHRcdFx0e3sgJ0FkbWluLkluY2lkZW50Lkxhc3RDaGVja2VkQXQnIHwgdHJhbnNsb2NvIH19XG5cdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBmaWVsZD1cImxhc3RfY2hlY2tfYXRcIj48L3Atc29ydEljb24+XG5cdFx0XHRcdFx0PC90aD5cblx0XHRcdFx0XHQ8dGggc2NvcGU9XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHR7eyAnQWRtaW4uSW5jaWRlbnQuRHVyYXRpb24nIHwgdHJhbnNsb2NvIH19XG5cdFx0XHRcdFx0PC90aD5cblx0XHRcdFx0XHQ8dGggc2NvcGU9XCJ0cnVlXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiYWN0aW9ucy1saXN0LXR3b1wiPlxuXHRcdFx0XHRcdFx0e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19XG5cdFx0XHRcdFx0PC90aD5cblx0XHRcdFx0PC90cj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiXG5cdFx0XHRcdGxldC1pbmNpZGVudD5cblx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdDx0ZCBkYXRhLWhlYWQ9XCJkZXNjcmlwdGlvblwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG5cdFx0XHRcdFx0XHR7eyhpbmNpZGVudD8uZGVzY3JpcHRpb24gfCByZW1vdmVIdG1sOiAncXVpbGwnKXx0ZXh0VHJ1bmNhdGU6IDIwMH19XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQ8dGQgZGF0YS1oZWFkPVwic2VydmljZUltcGFjdGVkXCI+XG5cdFx0XHRcdFx0XHR7eyBpbmNpZGVudD8uc2VydmljZV9pbXBhY3RlZCA/IGluY2lkZW50Py5zZXJ2aWNlX2ltcGFjdGVkIDpcbiAgICAgICAgICAgIGluY2lkZW50Py51cmxfaW1wYWN0ZWQgfX1cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBkYXRhLWhlYWQ9XCJzdGFydGVkQXRcIj5cblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXBcIj5cblx0XHRcdFx0XHRcdFx0e3sgaW5jaWRlbnQ/LnN0YXJ0ZWRfYXQgfCBkYXRlOiAnZGQtTU1NLVlZWVksIGg6bW0gYScgfX1cblx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBkYXRhLWhlYWQ9XCJyZXNvbHZlZEF0XCI+XG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+XG5cdFx0XHRcdFx0XHRcdHt7IGluY2lkZW50Py5yZXNvbHZlZF9hdCB8IGRhdGU6ICdkZC1NTU0tWVlZWSwgaDptbSBhJyB9fVxuXHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0PHRkIGRhdGEtaGVhZD1cImxhc3RDaGVja2VkQXRcIj5cblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+XG5cdFx0XHRcdFx0XHR7eyBpbmNpZGVudD8ubGFzdF9jaGVja19hdCB8IGRhdGU6ICdkZC1NTU0tWVlZWSwgaDptbSBhJyB9fVxuXHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQ8dGQgZGF0YS1oZWFkPVwiRHVyYXRpb25cIj5cblx0XHRcdFx0XHRcdDwhLS0ge3sgY2FsY3VsYXRlRHVyYXRpb24oaW5jaWRlbnQ/LnJlc29sdmVkX2F0ID8gaW5jaWRlbnQ/LnJlc29sdmVkX2F0IDpcbiAgICAgICAgICAgIGluY2lkZW50Py5sYXN0X2NoZWNrX2F0LCBpbmNpZGVudD8uc3RhcnRlZF9hdCkgfX0gLS0+XG5cdFx0XHRcdFx0XHR7eyBjYWxjdWxhdGVEdXJhdGlvbihpbmNpZGVudD8ucmVzb2x2ZWRfYXQsXG4gICAgICAgICAgICBpbmNpZGVudD8uc3RhcnRlZF9hdCkgfX1cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBkYXRhLWhlYWQ9XCJBY3Rpb25cIj5cblx0XHRcdFx0XHRcdDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbGlzdC1pbmxpbmUgbGlzdC1hY3Rpb25cIj5cblx0XHRcdFx0XHRcdFx0PGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cIm1lLTIgbWUtc20tMlwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpIChjbGljayk9XCJuYXZpZ2F0ZVRvRWRpdChpbmNpZGVudClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0KGtleWRvd24uZW50ZXIpPVwibmF2aWdhdGVUb0VkaXQoaW5jaWRlbnQpXCJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiZmEgZmEtZWRpdCBlZGl0LWljb25cIlxuXHRcdFx0XHRcdFx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHQ8bGkgbmdiVG9vbHRpcD1cIkRlbGV0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtZS0yIG1lLXNtLTJcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aVxuXHRcdFx0XHRcdFx0XHRcdChrZXlkb3duLmVudGVyKT1cIm9uRGVsZXRlKGluY2lkZW50KVwiXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm9uRGVsZXRlKGluY2lkZW50KVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uXCJcblx0XHRcdFx0XHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHRcdDwvdWw+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0PC90cj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9wLXRhYmxlPlxuICAgIDxkaXYgKm5nSWY9XCJvcGVuSW5jaWRlbnRzLmxlbmd0aCA9PT0gMCAmJiB0b3RhbFJlY29yZHNVbkZpbHRlcmVkICE9PSAwXCI+XG4gICAgICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInU2VhcmNoLk5vRGF0YU1lc3NhZ2UnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidTZWFyY2guTm9EYXRhRGVzY3JpcHRpb24nIHwgdHJhbnNsb2NvXCI+XG4gICAgICA8L3B3LW5vLWRhdGE+XG4gICAgPC9kaXY+XG5cdDxzcGFuIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiKm5nSWY9XCJvcGVuSW5jaWRlbnRzLmxlbmd0aCAhPT0gMFwiID5Ub3RhbDoge3tvcGVuSW5jaWRlbnRzLmxlbmd0aCB9fTwvc3Bhbj5cblx0PC9kaXY+XG48L2Rpdj5cbjxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiICpuZ0lmPVwidG90YWxSZWNvcmRzVW5GaWx0ZXJlZCA9PT0gMCAmJiBpc0xvYWRlZFwiXG4gIFttZXNzYWdlXT1cIidBZG1pbi5JbmNpZGVudC5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuPC9wdy1uby1kYXRhPlxuIl19
@@ -1,25 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@posiwise/shared-components";
4
- export class IncidentTabsComponent {
5
- constructor() {
6
- this.items = [
7
- {
8
- id: 'incident',
9
- label: 'Incidents',
10
- icon: 'far fa-fw fa-book',
11
- routerLink: ['/admin/incident/list']
12
- }
13
- ];
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IncidentTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: IncidentTabsComponent, selector: "incident-tabs", ngImport: i0, template: `<pw-tabs [items]="items"></pw-tabs>`, isInline: true, dependencies: [{ kind: "component", type: i1.PwTabsComponent, selector: "pw-tabs", inputs: ["items", "withSubscription"] }] }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IncidentTabsComponent, decorators: [{
19
- type: Component,
20
- args: [{
21
- template: `<pw-tabs [items]="items"></pw-tabs>`,
22
- selector: 'incident-tabs'
23
- }]
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnRzLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2luY2lkZW50cy9pbmNpZGVudHMtdGFicy9pbmNpZGVudHMtdGFicy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTFDLE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFLSSxVQUFLLEdBQWU7WUFDaEI7Z0JBQ0ksRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLFVBQVUsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3ZDO1NBQ0osQ0FBQztLQUNMOytHQVRZLHFCQUFxQjttR0FBckIscUJBQXFCLHFEQUhwQixxQ0FBcUM7OzRGQUd0QyxxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsUUFBUSxFQUFFLGVBQWU7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogYDxwdy10YWJzIFtpdGVtc109XCJpdGVtc1wiPjwvcHctdGFicz5gLFxuICAgIHNlbGVjdG9yOiAnaW5jaWRlbnQtdGFicydcbn0pXG5leHBvcnQgY2xhc3MgSW5jaWRlbnRUYWJzQ29tcG9uZW50IHtcbiAgICBpdGVtczogTWVudUl0ZW1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdpbmNpZGVudCcsXG4gICAgICAgICAgICBsYWJlbDogJ0luY2lkZW50cycsXG4gICAgICAgICAgICBpY29uOiAnZmFyIGZhLWZ3IGZhLWJvb2snLFxuICAgICAgICAgICAgcm91dGVyTGluazogWycvYWRtaW4vaW5jaWRlbnQvbGlzdCddXG4gICAgICAgIH1cbiAgICBdO1xufVxuIl19