@resolveio/client-lib-core 15.5.3 → 16.0.0

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 (153) hide show
  1. package/esm2022/lib/account-manager.service.mjs +229 -0
  2. package/esm2022/lib/auth/auth-guard.service.mjs +174 -0
  3. package/esm2022/lib/auth/auth-permissions.service.mjs +23 -0
  4. package/esm2022/lib/auth/auth.service.mjs +251 -0
  5. package/esm2022/lib/auth/auth365.component.mjs +51 -0
  6. package/esm2022/lib/auth/can-deactivate-guard.service.mjs +13 -0
  7. package/esm2022/lib/auth/enroll.component.mjs +88 -0
  8. package/esm2022/lib/auth/forgot-password.component.mjs +89 -0
  9. package/esm2022/lib/core.component.mjs +404 -0
  10. package/esm2022/lib/core.module.mjs +176 -0
  11. package/esm2022/lib/core.service.mjs +88 -0
  12. package/esm2022/lib/directive/focus.mjs +24 -0
  13. package/esm2022/lib/directive/scroll.mjs +54 -0
  14. package/esm2022/lib/home/home.component.mjs +84 -0
  15. package/esm2022/lib/logger/logger.component.mjs +229 -0
  16. package/esm2022/lib/models/app-status.model.mjs +2 -0
  17. package/esm2022/lib/models/collection-document.model.mjs +2 -0
  18. package/esm2022/lib/models/cron-job.model.mjs +2 -0
  19. package/esm2022/lib/models/dialog.model.mjs +2 -0
  20. package/esm2022/lib/models/file.model.mjs +2 -0
  21. package/esm2022/lib/models/log-method-latency.model.mjs +2 -0
  22. package/esm2022/lib/models/navbar-main-tab.model.mjs +2 -0
  23. package/esm2022/lib/models/pagination.model.mjs +2 -0
  24. package/esm2022/lib/models/permission.model.mjs +2 -0
  25. package/esm2022/lib/models/select-data-label.model.mjs +2 -0
  26. package/esm2022/lib/models/subscription.model.mjs +2 -0
  27. package/esm2022/lib/models/support-ticket.model.mjs +2 -0
  28. package/esm2022/lib/models/user-group.model.mjs +2 -0
  29. package/esm2022/lib/models/user.model.mjs +2 -0
  30. package/esm2022/lib/offline-db.mjs +519 -0
  31. package/esm2022/lib/offline-manager.service.mjs +109 -0
  32. package/esm2022/lib/pipes/domsanitizor.pipe.mjs +29 -0
  33. package/esm2022/lib/pipes/filter.pipe.mjs +36 -0
  34. package/esm2022/lib/pipes/json-parse.pipe.mjs +29 -0
  35. package/esm2022/lib/pipes/minus-currency.pipe.mjs +16 -0
  36. package/esm2022/lib/pipes/phone.pipe.mjs +47 -0
  37. package/esm2022/lib/pipes/pipe.module.mjs +54 -0
  38. package/esm2022/lib/pipes/reverse-list.pipe.mjs +17 -0
  39. package/esm2022/lib/pipes/titlecase.pipe.mjs +22 -0
  40. package/esm2022/lib/report-builder.permission.mjs +13 -0
  41. package/esm2022/lib/resolveio-class.mjs +50 -0
  42. package/esm2022/lib/shared/shared.module.mjs +96 -0
  43. package/esm2022/lib/socket-manager.service.mjs +340 -0
  44. package/esm2022/lib/socket.service.mjs +200 -0
  45. package/esm2022/lib/super-admin.permission.mjs +9 -0
  46. package/esm2022/lib/support-ticket/detail/support-ticket-detail.component.mjs +211 -0
  47. package/esm2022/lib/support-ticket/edit/support-ticket-edit.component.mjs +131 -0
  48. package/esm2022/lib/support-ticket/list/support-ticket-list.component.mjs +142 -0
  49. package/esm2022/lib/support-ticket/new/support-ticket-new.component.mjs +121 -0
  50. package/esm2022/lib/support-ticket/support-ticket.component.mjs +67 -0
  51. package/esm2022/lib/support-ticket/support-ticket.module.mjs +50 -0
  52. package/esm2022/lib/support-ticket/support-ticket.routing.mjs +20 -0
  53. package/esm2022/lib/support-ticket/support-ticket.service.mjs +16 -0
  54. package/esm2022/lib/token-manager.service.mjs +25 -0
  55. package/esm2022/lib/user-settings/settings/users-settings.component.mjs +302 -0
  56. package/esm2022/lib/user-settings/user-settings.component.mjs +61 -0
  57. package/esm2022/lib/user-settings/user-settings.module.mjs +41 -0
  58. package/esm2022/lib/user-settings/user-settings.permission.mjs +10 -0
  59. package/esm2022/lib/user-settings/user-settings.routing.mjs +14 -0
  60. package/esm2022/lib/user-settings/user-settings.service.mjs +16 -0
  61. package/esm2022/lib/util/action-name.helper.mjs +9 -0
  62. package/esm2022/lib/util/aws.service.mjs +80 -0
  63. package/esm2022/lib/util/common.helper.mjs +133 -0
  64. package/esm2022/lib/util/validation.service.mjs +185 -0
  65. package/esm2022/lib/util/window-resize.service.mjs +38 -0
  66. package/esm2022/lib/util/window.service.mjs +16 -0
  67. package/esm2022/lib/widgets/alert/alert.model.mjs +2 -0
  68. package/esm2022/lib/widgets/alert/alert.service.mjs +79 -0
  69. package/esm2022/lib/widgets/collapse-table/collapse-table.component.mjs +83 -0
  70. package/esm2022/lib/widgets/collapse-table/collapse-table.module.mjs +34 -0
  71. package/esm2022/lib/widgets/data-table/data-table.component.mjs +84 -0
  72. package/esm2022/lib/widgets/data-table/data-table.model.mjs +2 -0
  73. package/esm2022/lib/widgets/data-table/data-table.module.mjs +41 -0
  74. package/esm2022/lib/widgets/date-shortcut/date-shortcut.component.mjs +198 -0
  75. package/esm2022/lib/widgets/date-shortcut/date-shortcut.module.mjs +32 -0
  76. package/esm2022/lib/widgets/dialog/dialog.confirm.content.mjs +67 -0
  77. package/esm2022/lib/widgets/dialog/dialog.error.content.mjs +60 -0
  78. package/esm2022/lib/widgets/dialog/dialog.input.content.mjs +200 -0
  79. package/esm2022/lib/widgets/dialog/dialog.login.content.mjs +354 -0
  80. package/esm2022/lib/widgets/dialog/dialog.notify.content.mjs +60 -0
  81. package/esm2022/lib/widgets/dialog/dialog.register.content.mjs +333 -0
  82. package/esm2022/lib/widgets/dialog/dialog.select-array-objs.content.mjs +203 -0
  83. package/esm2022/lib/widgets/dialog/dialog.select-array.content.mjs +310 -0
  84. package/esm2022/lib/widgets/dialog/dialog.select-data-labels.content.mjs +196 -0
  85. package/esm2022/lib/widgets/dialog/dialog.select-datetime.content.mjs +191 -0
  86. package/esm2022/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +166 -0
  87. package/esm2022/lib/widgets/dialog/dialog.service.mjs +98 -0
  88. package/esm2022/lib/widgets/file/file-upload.component.mjs +433 -0
  89. package/esm2022/lib/widgets/file/file-upload.module.mjs +48 -0
  90. package/esm2022/lib/widgets/form-button/form-button.component.mjs +97 -0
  91. package/esm2022/lib/widgets/form-button/form-button.module.mjs +28 -0
  92. package/esm2022/lib/widgets/navbar-main/navbar-main.component.mjs +222 -0
  93. package/esm2022/lib/widgets/navbar-module/navbar-module.component.mjs +108 -0
  94. package/esm2022/lib/widgets/navbar-module/navbar-module.model.mjs +2 -0
  95. package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +41 -0
  96. package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +24 -0
  97. package/esm2022/lib/widgets/scheduler/scheduler.component.mjs +186 -0
  98. package/esm2022/lib/widgets/scheduler/scheduler.module.mjs +37 -0
  99. package/esm2022/lib/widgets/sort-table/sort-table-header.component.mjs +72 -0
  100. package/esm2022/lib/widgets/sort-table/sort-table-ngfor.component.mjs +49 -0
  101. package/esm2022/lib/widgets/sort-table/sort-table.directive.mjs +177 -0
  102. package/esm2022/lib/widgets/sort-table/sort-table.module.mjs +38 -0
  103. package/esm2022/lib/widgets/user-role/user-role.component.mjs +29 -0
  104. package/esm2022/lib/widgets/user-role/user-role.module.mjs +24 -0
  105. package/esm2022/public_api.mjs +91 -0
  106. package/esm2022/resolveio-client-lib-core.mjs +5 -0
  107. package/fesm2022/resolveio-client-lib-core.mjs +9019 -0
  108. package/fesm2022/resolveio-client-lib-core.mjs.map +1 -0
  109. package/index.d.ts +3 -0
  110. package/lib/auth/auth-guard.service.d.ts +2 -2
  111. package/lib/auth/can-deactivate-guard.service.d.ts +1 -2
  112. package/lib/core.component.d.ts +1 -2
  113. package/lib/core.module.d.ts +26 -29
  114. package/lib/directive/focus.d.ts +1 -1
  115. package/lib/directive/scroll.d.ts +1 -1
  116. package/lib/logger/logger.component.d.ts +0 -2
  117. package/lib/models/dialog.model.d.ts +1 -1
  118. package/lib/models/pagination.model.d.ts +1 -0
  119. package/lib/models/user-group.model.d.ts +0 -1
  120. package/lib/offline-db.d.ts +1 -5
  121. package/lib/offline-manager.service.d.ts +1 -4
  122. package/lib/socket-manager.service.d.ts +5 -34
  123. package/lib/socket.service.d.ts +3 -20
  124. package/lib/token-manager.service.d.ts +2 -4
  125. package/lib/util/aws.service.d.ts +1 -2
  126. package/lib/util/common.helper.d.ts +1 -3
  127. package/lib/util/window-resize.service.d.ts +6 -5
  128. package/lib/widgets/collapse-table/collapse-table.component.d.ts +1 -1
  129. package/lib/widgets/data-table/data-table.component.d.ts +1 -1
  130. package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +1 -5
  131. package/lib/widgets/dialog/dialog.confirm.content.d.ts +1 -1
  132. package/lib/widgets/dialog/dialog.error.content.d.ts +1 -1
  133. package/lib/widgets/dialog/dialog.input.content.d.ts +1 -1
  134. package/lib/widgets/dialog/dialog.login.content.d.ts +1 -1
  135. package/lib/widgets/dialog/dialog.notify.content.d.ts +1 -1
  136. package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +1 -1
  137. package/lib/widgets/dialog/dialog.select-array.content.d.ts +1 -1
  138. package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +1 -1
  139. package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +1 -1
  140. package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +1 -1
  141. package/lib/widgets/file/file-upload.component.d.ts +1 -1
  142. package/lib/widgets/file/file-upload.module.d.ts +2 -2
  143. package/lib/widgets/form-button/form-button.component.d.ts +1 -1
  144. package/lib/widgets/navbar-main/navbar-main.component.d.ts +1 -2
  145. package/lib/widgets/navbar-module/navbar-module.component.d.ts +1 -1
  146. package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +1 -1
  147. package/lib/widgets/sort-table/sort-table-header.component.d.ts +1 -1
  148. package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +1 -1
  149. package/lib/widgets/sort-table/sort-table.directive.d.ts +8 -1
  150. package/lib/widgets/user-role/user-role.component.d.ts +1 -1
  151. package/package.json +5 -6
  152. package/fesm2020/resolveio-client-lib-core.min.mjs +0 -1
  153. package/lib/logger/diff-viewer.component.d.ts +0 -35
@@ -0,0 +1,142 @@
1
+ import { Component } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { SupportTicketService } from '../support-ticket.service';
4
+ import { ProviderService, BaseComponent } from '../../resolveio-class';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../support-ticket.service";
7
+ import * as i2 from "@angular/router";
8
+ import * as i3 from "../../resolveio-class";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "../../widgets/data-table/data-table.component";
11
+ export class SupportTicketListComponent extends BaseComponent {
12
+ _sts;
13
+ _route;
14
+ _services;
15
+ route$;
16
+ support_tickets;
17
+ subscription$ = [];
18
+ columns = [
19
+ { name: 'Support Ticket #', data: 'support_ticket_number' },
20
+ { name: 'Date Created', data: 'date_created' },
21
+ { name: 'Type', data: 'type' },
22
+ { name: 'Issue', data: 'issue' },
23
+ { name: 'Status', data: 'status' },
24
+ { name: 'Created By', data: 'user_created' }
25
+ ];
26
+ tableData = {
27
+ searchString: '',
28
+ entriesPerPage: '25',
29
+ pageNum: 1,
30
+ sortColumn: '',
31
+ sortOrder: 'desc',
32
+ filters: {
33
+ status: 'Opened',
34
+ substatus: 'All'
35
+ }
36
+ };
37
+ totalItems = 1000;
38
+ constructor(_sts, _route, _services) {
39
+ super(_services);
40
+ this._sts = _sts;
41
+ this._route = _route;
42
+ this._services = _services;
43
+ }
44
+ ngOnInit() {
45
+ this._sts.setSelectedSupportTicket('0');
46
+ this.route$ = this._route.queryParams.subscribe(() => {
47
+ let keys = Object.keys(this.tableData);
48
+ let filterKeys = Object.keys(this.tableData.filters);
49
+ if (this._route.snapshot.queryParamMap.keys.length) {
50
+ keys.splice(keys.indexOf('filters', 1));
51
+ filterKeys.forEach(key => {
52
+ keys.push('filters.' + key);
53
+ });
54
+ keys.filter(a => a in this._route.snapshot.queryParams).forEach(key => {
55
+ if (key.includes('filters.')) {
56
+ let tmpKey = key;
57
+ tmpKey = tmpKey.replace('filters.', '');
58
+ this.tableData.filters[tmpKey] = this._route.snapshot.queryParams[key];
59
+ }
60
+ else {
61
+ this.tableData[key] = this._route.snapshot.queryParams[key];
62
+ }
63
+ });
64
+ }
65
+ else {
66
+ this.tableData = {
67
+ searchString: '',
68
+ entriesPerPage: '25',
69
+ pageNum: 1,
70
+ sortColumn: '',
71
+ sortOrder: 'desc',
72
+ filters: {
73
+ status: 'Opened',
74
+ substatus: 'All'
75
+ }
76
+ };
77
+ }
78
+ this.queryData();
79
+ });
80
+ }
81
+ ngOnDestroy() {
82
+ this.subscription$.forEach(sub => {
83
+ sub.unsubscribe();
84
+ });
85
+ this.route$.unsubscribe();
86
+ }
87
+ onQueryDataChanged() {
88
+ let queryParams = {};
89
+ let keys = Object.keys(this.tableData);
90
+ let filterKeys = Object.keys(this.tableData.filters);
91
+ keys.forEach(key => {
92
+ if (key === 'filters') {
93
+ filterKeys.forEach(filterKey => {
94
+ queryParams['filters.' + filterKey] = this.tableData.filters[filterKey];
95
+ });
96
+ }
97
+ else {
98
+ queryParams[key] = this.tableData[key];
99
+ }
100
+ });
101
+ this._services._router.navigate(['/support-ticket/list'], { queryParams });
102
+ }
103
+ queryData() {
104
+ let fields = {};
105
+ this.columns.forEach(col => {
106
+ fields[col.data] = 1;
107
+ });
108
+ const options = {
109
+ limit: parseInt(this.tableData.entriesPerPage),
110
+ skip: (this.tableData.pageNum - 1) * parseInt(this.tableData.entriesPerPage),
111
+ sort: this.tableData.sortColumn ? { [this.tableData.sortColumn]: (this.tableData.sortOrder === 'asc' ? 1 : -1) } : { name: 1 },
112
+ fields: fields
113
+ };
114
+ let filters = [{ prop: 'client', data: this._services._app.client.getValue() }];
115
+ if (this.tableData.filters['status'] !== 'All') {
116
+ filters.push({ prop: 'status', data: this.tableData.filters['status'] });
117
+ }
118
+ if (this.tableData.filters['substatus'] !== 'All') {
119
+ filters.push({ prop: 'substatus', data: this.tableData.filters['substatus'] });
120
+ }
121
+ this._services._socket.call('supportticketsWithOptions', options, this.tableData.searchString, filters, (err, res) => {
122
+ this.support_tickets = res;
123
+ });
124
+ this._services._socket.call('supportticketCount', this.tableData.searchString, filters, (err, res) => {
125
+ if (err) {
126
+ this._services._socket.call('insertErrorLog', 'countQuery - resolveioSupportList', [
127
+ err
128
+ ]);
129
+ }
130
+ else {
131
+ this.totalItems = res;
132
+ }
133
+ });
134
+ }
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketListComponent, deps: [{ token: i1.SupportTicketService }, { token: i2.ActivatedRoute }, { token: i3.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SupportTicketListComponent, selector: "ng-component", providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['status']\" (change)=\"onQueryDataChanged()\" tourAnchor=\"supportListFilter\">\n <option value=\"All\">All</option>\n <option value=\"Opened\">Opened</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Sub-Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['substatus']\" (change)=\"onQueryDataChanged()\">\n <option value=\"All\">All</option>\n <option value=\"Investigating\">Investigating</option>\n <option value=\"Awaiting Customer Interaction\">Awaiting Customer Interaction</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-12\">\n <div style=\"padding-left: 15px; padding-right: 15px; padding-top: 15px;\">\n <data-table #dataTable\n [urlClick]=\"'/support-ticket/detail/'\"\n [columns]=\"columns\"\n [data]=\"support_tickets\"\n [collapseSize]=\"990\"\n [searchTitle]=\"'Search For Support Ticket...'\"\n [totalItems]=\"totalItems\"\n (onChangeTableData)=\"onQueryDataChanged()\"\n [tableData]=\"tableData\"\n tourAnchor=\"supportListDatatable\">\n </data-table>\n </div>\n </div>\n</div>\n ", dependencies: [{ kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DatatableComponent, selector: "data-table", inputs: ["urlClick", "columns", "data", "collapseSize", "searchTitle", "totalItems", "tableData"], outputs: ["onChangeTableData"] }] });
137
+ }
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketListComponent, decorators: [{
139
+ type: Component,
140
+ args: [{ providers: [ProviderService], template: "<div class=\"row\">\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['status']\" (change)=\"onQueryDataChanged()\" tourAnchor=\"supportListFilter\">\n <option value=\"All\">All</option>\n <option value=\"Opened\">Opened</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Sub-Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['substatus']\" (change)=\"onQueryDataChanged()\">\n <option value=\"All\">All</option>\n <option value=\"Investigating\">Investigating</option>\n <option value=\"Awaiting Customer Interaction\">Awaiting Customer Interaction</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-12\">\n <div style=\"padding-left: 15px; padding-right: 15px; padding-top: 15px;\">\n <data-table #dataTable\n [urlClick]=\"'/support-ticket/detail/'\"\n [columns]=\"columns\"\n [data]=\"support_tickets\"\n [collapseSize]=\"990\"\n [searchTitle]=\"'Search For Support Ticket...'\"\n [totalItems]=\"totalItems\"\n (onChangeTableData)=\"onQueryDataChanged()\"\n [tableData]=\"tableData\"\n tourAnchor=\"supportListDatatable\">\n </data-table>\n </div>\n </div>\n</div>\n " }]
141
+ }], ctorParameters: function () { return [{ type: i1.SupportTicketService }, { type: i2.ActivatedRoute }, { type: i3.ProviderService }]; } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc3VwcG9ydC10aWNrZXQvbGlzdC9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9saXN0L3N1cHBvcnQtdGlja2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUErQnhDO0lBQW9DO0lBQWdDO0lBN0J4RixNQUFNLENBQWU7SUFFckIsZUFBZSxDQUFxQjtJQUVwQyxhQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUVuQyxPQUFPLEdBQTJCO1FBQ2pDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBQztRQUMxRCxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBQztRQUM3QyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUM5QixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtRQUNoQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQztRQUNqQyxFQUFFLElBQUksRUFBRSxZQUFZ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RUgsTUFBTSxPQUFPLEdBQXNCO1lBQ2xDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7WUFDOUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQzVFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDL0gsTUFBTSxFQUFFLE1BQU07U0FDZCxDQUFDO1FBRUYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUM7U0FDN0U7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwSCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEcsSUFBSSxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLG1DQUFtQyxFQUFFO29CQUNsRixHQUFHO2lCQUNILENBQUMsQ0FBQzthQUNIO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2FBQ3RCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO3dHQWhKVywwQkFBMEI7NEZBQTFCLDBCQUEwQix1Q0FIM0IsQ0FBQyxlQUFlLENBQUMsaURDVjdCLDRuREFvQ0k7OzRGRHZCUywwQkFBMEI7a0JBSnRDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0U2VydmljZSB9IGZyb20gJy4uL3N1cHBvcnQtdGlja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhdGFibGVNb2RlbCwgRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0VGlja2V0TGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdHJvdXRlJDogU3Vic2NyaXB0aW9uO1xuXG5cdHN1cHBvcnRfdGlja2V0czogU3VwcG9ydFRpY2tldE1vZGVsO1xuXG5cdHN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cblx0Y29sdW1uczogQXJyYXk8RGF0YXRhYmxlQ29sdW1uPiA9IFtcblx0XHR7IG5hbWU6ICdTdXBwb3J0IFRpY2tldCAjJywgZGF0YTogJ3N1cHBvcnRfdGlja2V0X251bWJlcid9LFxuXHRcdHsgbmFtZTogJ0RhdGUgQ3JlYXRlZCcsIGRhdGE6ICdkYXRlX2NyZWF0ZWQnfSxcblx0XHR7IG5hbWU6ICdUeXBlJywgZGF0YTogJ3R5cGUnIH0sXG5cdFx0eyBuYW1lOiAnSXNzdWUnLCBkYXRhOiAnaXNzdWUnIH0sXG5cdFx0eyBuYW1lOiAnU3RhdHVzJywgZGF0YTogJ3N0YXR1cyd9LFxuXHRcdHsgbmFtZTogJ0NyZWF0ZWQgQnknLCBkYXRhOiAndXNlcl9jcmVhdGVkJ31cblx0XTtcblxuXHR0YWJsZURhdGE6IERhdGF0YWJsZU1vZGVsID0ge1xuXHRcdHNlYXJjaFN0cmluZzogJycsXG5cdFx0ZW50cmllc1BlclBhZ2U6ICcyNScsXG5cdFx0cGFnZU51bTogMSxcblx0XHRzb3J0Q29sdW1uOiAnJyxcblx0XHRzb3J0T3JkZXI6ICdkZXNjJyxcblx0XHRmaWx0ZXJzOiB7XG5cdFx0XHRzdGF0dXM6ICdPcGVuZWQnLFxuXHRcdFx0c3Vic3RhdHVzOiAnQWxsJ1xuXHRcdH1cblx0fTtcblxuXHR0b3RhbEl0ZW1zID0gMTAwMDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHM6IFN1cHBvcnRUaWNrZXRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc3RzLnNldFNlbGVjdGVkU3VwcG9ydFRpY2tldCgnMCcpO1xuXG5cdFx0dGhpcy5yb3V0ZSQgPSB0aGlzLl9yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKCkgPT4ge1xuXG5cdFx0XHRsZXQga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMudGFibGVEYXRhKTtcblx0XHRcdGxldCBmaWx0ZXJLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZmlsdGVycyk7XG5cblx0XHRcdGlmICh0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmtleXMubGVuZ3RoKSB7XG5cdFx0XHRcdGtleXMuc3BsaWNlKGtleXMuaW5kZXhPZignZmlsdGVycycsIDEpKTtcblxuXHRcdFx0XHRmaWx0ZXJLZXlzLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdFx0XHRrZXlzLnB1c2goJ2ZpbHRlcnMuJyArIGtleSk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGtleXMuZmlsdGVyKGEgPT4gYSBpbiB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xuXHRcdFx0XHRcdGlmIChrZXkuaW5jbHVkZXMoJ2ZpbHRlcnMuJykpIHtcblx0XHRcdFx0XHRcdGxldCB0bXBLZXkgPSBrZXk7XG5cdFx0XHRcdFx0XHR0bXBLZXkgPSB0bXBLZXkucmVwbGFjZSgnZmlsdGVycy4nLCAnJyk7XG5cdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YS5maWx0ZXJzW3RtcEtleV0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1trZXldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMudGFibGVEYXRhW2tleV0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1trZXldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy50YWJsZURhdGEgPSB7XG5cdFx0XHRcdFx0c2VhcmNoU3RyaW5nOiAnJyxcblx0XHRcdFx0XHRlbnRyaWVzUGVyUGFnZTogJzI1Jyxcblx0XHRcdFx0XHRwYWdlTnVtOiAxLFxuXHRcdFx0XHRcdHNvcnRDb2x1bW46ICcnLFxuXHRcdFx0XHRcdHNvcnRPcmRlcjogJ2Rlc2MnLFxuXHRcdFx0XHRcdGZpbHRlcnM6IHtcblx0XHRcdFx0XHRcdHN0YXR1czogJ09wZW5lZCcsXG5cdFx0XHRcdFx0XHRzdWJzdGF0dXM6ICdBbGwnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnF1ZXJ5RGF0YSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24kLmZvckVhY2goc3ViID0+IHtcblx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5yb3V0ZSQudW5zdWJzY3JpYmUoKTtcblx0fVxuXG5cdG9uUXVlcnlEYXRhQ2hhbmdlZCgpIHtcblx0XHRsZXQgcXVlcnlQYXJhbXMgPSB7fTtcblxuXHRcdGxldCBrZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEpO1xuXHRcdGxldCBmaWx0ZXJLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZmlsdGVycyk7XG5cblx0XHRrZXlzLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdGlmIChrZXkgPT09ICdmaWx0ZXJzJykge1xuXHRcdFx0XHRmaWx0ZXJLZXlzLmZvckVhY2goZmlsdGVyS2V5ID0+IHtcblx0XHRcdFx0XHRxdWVyeVBhcmFtc1snZmlsdGVycy4nICsgZmlsdGVyS2V5XSA9IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbZmlsdGVyS2V5XTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0cXVlcnlQYXJhbXNba2V5XSA9IHRoaXMudGFibGVEYXRhW2tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlKFsnL3N1cHBvcnQtdGlja2V0L2xpc3QnXSwgeyBxdWVyeVBhcmFtcyB9ICk7XG5cdH1cblxuXHRxdWVyeURhdGEoKSB7XG5cblx0XHRsZXQgZmllbGRzID0ge307XG5cblx0XHR0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuXHRcdFx0ZmllbGRzW2NvbC5kYXRhXSA9IDE7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBQYWdpbmF0aW9uT3B0aW9ucyA9IHtcblx0XHRcdGxpbWl0OiBwYXJzZUludCh0aGlzLnRhYmxlRGF0YS5lbnRyaWVzUGVyUGFnZSksXG5cdFx0XHRza2lwOiAodGhpcy50YWJsZURhdGEucGFnZU51bSAtIDEpICogcGFyc2VJbnQodGhpcy50YWJsZURhdGEuZW50cmllc1BlclBhZ2UpLFxuXHRcdFx0c29ydDogdGhpcy50YWJsZURhdGEuc29ydENvbHVtbiA/IHsgW3RoaXMudGFibGVEYXRhLnNvcnRDb2x1bW5dIDogKHRoaXMudGFibGVEYXRhLnNvcnRPcmRlciA9PT0gJ2FzYycgPyAxIDogLTEpIH0gOiB7IG5hbWU6IDEgfSxcblx0XHRcdGZpZWxkczogZmllbGRzXG5cdFx0fTtcblxuXHRcdGxldCBmaWx0ZXJzID0gW3twcm9wOiAnY2xpZW50JywgZGF0YTogdGhpcy5fc2VydmljZXMuX2FwcC5jbGllbnQuZ2V0VmFsdWUoKX1dO1xuXHRcdGlmICh0aGlzLnRhYmxlRGF0YS5maWx0ZXJzWydzdGF0dXMnXSAhPT0gJ0FsbCcpIHtcblx0XHRcdGZpbHRlcnMucHVzaCh7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbJ3N0YXR1cyddfSk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnRhYmxlRGF0YS5maWx0ZXJzWydzdWJzdGF0dXMnXSAhPT0gJ0FsbCcpIHtcblx0XHRcdGZpbHRlcnMucHVzaCh7cHJvcDogJ3N1YnN0YXR1cycsIGRhdGE6IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbJ3N1YnN0YXR1cyddfSk7XG5cdFx0fVxuXHRcdFxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydHRpY2tldHNXaXRoT3B0aW9ucycsIG9wdGlvbnMsIHRoaXMudGFibGVEYXRhLnNlYXJjaFN0cmluZywgZmlsdGVycywgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHR0aGlzLnN1cHBvcnRfdGlja2V0cyA9IHJlcztcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydHRpY2tldENvdW50JywgdGhpcy50YWJsZURhdGEuc2VhcmNoU3RyaW5nLCBmaWx0ZXJzLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdjb3VudFF1ZXJ5IC0gcmVzb2x2ZWlvU3VwcG9ydExpc3QnLCBbXG5cdFx0XHRcdFx0ZXJyXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSBcblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLnRvdGFsSXRlbXMgPSByZXM7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgPGI+RmlsdGVyIFN1cHBvcnQgVGlja2V0IEJ5IFN0YXR1czwvYj48YnI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInRhYmxlRGF0YS5maWx0ZXJzWydzdGF0dXMnXVwiIChjaGFuZ2UpPVwib25RdWVyeURhdGFDaGFuZ2VkKClcIiB0b3VyQW5jaG9yPVwic3VwcG9ydExpc3RGaWx0ZXJcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBbGxcIj5BbGw8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJPcGVuZWRcIj5PcGVuZWQ8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXNvbHZlZFwiPlJlc29sdmVkPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICA8Yj5GaWx0ZXIgU3VwcG9ydCBUaWNrZXQgQnkgU3ViLVN0YXR1czwvYj48YnI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInRhYmxlRGF0YS5maWx0ZXJzWydzdWJzdGF0dXMnXVwiIChjaGFuZ2UpPVwib25RdWVyeURhdGFDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBbGxcIj5BbGw8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJJbnZlc3RpZ2F0aW5nXCI+SW52ZXN0aWdhdGluZzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkF3YWl0aW5nIEN1c3RvbWVyIEludGVyYWN0aW9uXCI+QXdhaXRpbmcgQ3VzdG9tZXIgSW50ZXJhY3Rpb248L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXNvbHZlZFwiPlJlc29sdmVkPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4OyBwYWRkaW5nLXJpZ2h0OiAxNXB4OyBwYWRkaW5nLXRvcDogMTVweDtcIj5cbiAgICAgICAgICAgIDxkYXRhLXRhYmxlICNkYXRhVGFibGVcbiAgICAgICAgICAgICAgICBbdXJsQ2xpY2tdPVwiJy9zdXBwb3J0LXRpY2tldC9kZXRhaWwvJ1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwic3VwcG9ydF90aWNrZXRzXCJcbiAgICAgICAgICAgICAgICBbY29sbGFwc2VTaXplXT1cIjk5MFwiXG4gICAgICAgICAgICAgICAgW3NlYXJjaFRpdGxlXT1cIidTZWFyY2ggRm9yIFN1cHBvcnQgVGlja2V0Li4uJ1wiXG4gICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlVGFibGVEYXRhKT1cIm9uUXVlcnlEYXRhQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXG4gICAgICAgICAgICAgICAgdG91ckFuY2hvcj1cInN1cHBvcnRMaXN0RGF0YXRhYmxlXCI+XG4gICAgICAgICAgICA8L2RhdGEtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4gICAgIl19
@@ -0,0 +1,121 @@
1
+ import { Component, ChangeDetectorRef, ViewChild } from '@angular/core';
2
+ import { SupportTicketService } from '../support-ticket.service';
3
+ import { Validators } from '@angular/forms';
4
+ import { ProviderService, BaseComponent } from '../../resolveio-class';
5
+ import { DialogService } from '../../widgets/dialog/dialog.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../support-ticket.service";
8
+ import * as i2 from "../../resolveio-class";
9
+ import * as i3 from "../../widgets/dialog/dialog.service";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "@ng-bootstrap/ng-bootstrap";
12
+ import * as i6 from "../../widgets/form-button/form-button.component";
13
+ import * as i7 from "@angular/common";
14
+ export class SupportTicketNewComponent extends BaseComponent {
15
+ _sts;
16
+ _cd;
17
+ _services;
18
+ _ds;
19
+ fileUpload;
20
+ subscription$ = [];
21
+ form;
22
+ disableFormButton = false;
23
+ submit = false;
24
+ constructor(_sts, _cd, _services, _ds) {
25
+ super(_services);
26
+ this._sts = _sts;
27
+ this._cd = _cd;
28
+ this._services = _services;
29
+ this._ds = _ds;
30
+ }
31
+ ngOnInit() {
32
+ this._sts.setSelectedSupportTicket('0');
33
+ this.form = this._services._fb.group({
34
+ __v: [0],
35
+ type: ['', [Validators.required]],
36
+ priority: ['', [Validators.required]],
37
+ issue: ['', [Validators.required]],
38
+ support_ticket_number: [0],
39
+ support_ticket_number_string: ['0'],
40
+ status: ['Opened'],
41
+ substatus: ['New'],
42
+ client: [this._services._app.client.getValue()],
43
+ id_client: [this._services._app.client.getValue()],
44
+ messages: [[]],
45
+ date_created: [null],
46
+ date_created_string: [''],
47
+ id_user_created: [this._services._account.getUser()._id],
48
+ user_created: [this._services._account.getUser().fullname],
49
+ billable: [false, [Validators.required]],
50
+ date_investigation: [null],
51
+ date_closed: [null],
52
+ files: [[]],
53
+ current_watchers: [[]],
54
+ client_user: [{
55
+ id_user: this._services._account.getUser()._id,
56
+ user: this._services._account.getUser().fullname,
57
+ email: this._services._account.getUser().email ? this._services._account.getUser().email : ''
58
+ }],
59
+ tasks: [[]],
60
+ notes: [[]],
61
+ users_assigned: [[]],
62
+ bill_description: [''],
63
+ difficulty: [1]
64
+ });
65
+ }
66
+ ngOnDestroy() {
67
+ this.subscription$.forEach(sub => {
68
+ sub.unsubscribe();
69
+ });
70
+ }
71
+ canDeactivate() {
72
+ return true;
73
+ }
74
+ onTypeChange() {
75
+ if (this.form.controls.type.value === 'System Impairment') {
76
+ this.form.controls.priority.setValue('High');
77
+ this.form.controls.billable.setValue(false);
78
+ }
79
+ else if (this.form.controls.type.value === 'Request New Feature') {
80
+ this.form.controls.priority.setValue('Low');
81
+ this.form.controls.billable.setValue(true);
82
+ }
83
+ else if (this.form.controls.type.value === 'General Inquery') {
84
+ this.form.controls.priority.setValue('Low');
85
+ this.form.controls.billable.setValue(true);
86
+ }
87
+ else {
88
+ this.form.controls.priority.setValue('');
89
+ this.form.controls.billable.setValue(false);
90
+ }
91
+ }
92
+ submitForm(form) {
93
+ this.submit = true;
94
+ this.disableFormButton = true;
95
+ let now = new Date();
96
+ this.form.controls.date_created.setValue(now);
97
+ this.form.controls.date_created_string.setValue(now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate());
98
+ this._services._socket.call('supportInsertSupportTicket', this.form.value, (err, res) => {
99
+ if (res) {
100
+ this._services._alert.setAlert('success', 'Support ticket has been created');
101
+ this._services._router.navigateByUrl('/support-ticket/detail/' + res);
102
+ }
103
+ else {
104
+ this._ds.error('Could not create new support ticket.');
105
+ this._services._socket.call('insertErrorLog', 'Support Ticket New - insert support ticket', [
106
+ this.form.value, err
107
+ ]);
108
+ }
109
+ });
110
+ }
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketNewComponent, deps: [{ token: i1.SupportTicketService }, { token: i0.ChangeDetectorRef }, { token: i2.ProviderService }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component });
112
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SupportTicketNewComponent, selector: "ng-component", providers: [ProviderService], viewQueries: [{ propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\" tourAnchor=\"supportNewSelect\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Problem/Feature Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\" tourAnchor=\"supportNewInput\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\" tourAnchor=\"supportNewSubmit\"></form-button>\n </div>\n </form>\n</div>\n", styles: ["\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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: 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: i5.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i5.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i5.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i5.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i6.FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketNewComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ providers: [ProviderService], template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\" tourAnchor=\"supportNewSelect\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Problem/Feature Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\" tourAnchor=\"supportNewInput\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\" tourAnchor=\"supportNewSubmit\"></form-button>\n </div>\n </form>\n</div>\n" }]
117
+ }], ctorParameters: function () { return [{ type: i1.SupportTicketService }, { type: i0.ChangeDetectorRef }, { type: i2.ProviderService }, { type: i3.DialogService }]; }, propDecorators: { fileUpload: [{
118
+ type: ViewChild,
119
+ args: ['fileUpload', { static: true }]
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9uZXcvc3VwcG9ydC10aWNrZXQtbmV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9uZXcvc3VwcG9ydC10aWNrZXQtbmV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7OztBQU9wRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsYUFBYTtJQVl2QztJQUFvQztJQUFnQztJQUFvQztJQVZsRixVQUFVLENBQUM7SUFFckQsYUFBYSxHQUFtQixFQUFFLENBQUM7SUFFbkMsSUFBSSxDQUFZO0lBRWhCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUUxQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRWYsWUFBb0IsSUFBMEIsRUFBVSxHQUFzQixFQUFVLFNBQTBCLEVBQVUsR0FBa0I7UUFDN0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsU0FBSSxHQUFKLElBQUksQ0FBc0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtJQUU5SSxDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDcEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1IsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUIsNEJBQTRCLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDbkMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNsQixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0MsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xELFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNkLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQztZQUNwQixtQkFBbUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDeEQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQzFELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQztZQUMxQixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEIsV0FBVyxFQUFFLENBQUM7b0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUc7b0JBQzlDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRO29CQUNoRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQzdGLENBQUM7WUFDRixLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWCxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDcEIsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVk7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssbUJBQW1CLEVBQUU7WUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO2FBQ0ksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLHFCQUFxQixFQUFFO1lBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQzthQUNJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxpQkFBaUIsRUFBRTtZQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7YUFDSTtZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QztJQUNGLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBSTtRQUVkLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBRW5CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFOUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV0SCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdkYsSUFBSSxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMseUJBQXlCLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDdEU7aUJBQ0k7Z0JBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLDRDQUE0QyxFQUFFO29CQUMzRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHO2lCQUNwQixDQUFDLENBQUM7YUFDSDtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0F4R1cseUJBQXlCOzRGQUF6Qix5QkFBeUIsdUNBSjFCLENBQUMsZUFBZSxDQUFDLHlLQ1Q3QixzOEdBK0RBOzs0RkRsRGEseUJBQXlCO2tCQUxyQyxTQUFTO2dDQUNFLENBQUMsZUFBZSxDQUFDO3FNQU1jLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUUsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vc3VwcG9ydC10aWNrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBwYWQgfSBmcm9tICcuLi8uLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXRpY2tldC1uZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgU3VwcG9ydFRpY2tldE5ld0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdEBWaWV3Q2hpbGQgKCdmaWxlVXBsb2FkJywge3N0YXRpYzogdHJ1ZX0pIGZpbGVVcGxvYWQ7XG5cdFxuXHRzdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG5cdGZvcm06IEZvcm1Hcm91cDtcblxuXHRkaXNhYmxlRm9ybUJ1dHRvbiA9IGZhbHNlO1xuXG5cdHN1Ym1pdCA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0czogU3VwcG9ydFRpY2tldFNlcnZpY2UsIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSwgcHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc3RzLnNldFNlbGVjdGVkU3VwcG9ydFRpY2tldCgnMCcpO1xuXG5cdFx0dGhpcy5mb3JtID0gdGhpcy5fc2VydmljZXMuX2ZiLmdyb3VwKHtcblx0XHRcdF9fdjogWzBdLFxuXHRcdFx0dHlwZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXHRcdFx0cHJpb3JpdHk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdGlzc3VlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRzdXBwb3J0X3RpY2tldF9udW1iZXI6IFswXSxcblx0XHRcdHN1cHBvcnRfdGlja2V0X251bWJlcl9zdHJpbmc6IFsnMCddLFxuXHRcdFx0c3RhdHVzOiBbJ09wZW5lZCddLFxuXHRcdFx0c3Vic3RhdHVzOiBbJ05ldyddLFxuXHRcdFx0Y2xpZW50OiBbdGhpcy5fc2VydmljZXMuX2FwcC5jbGllbnQuZ2V0VmFsdWUoKV0sXG5cdFx0XHRpZF9jbGllbnQ6IFt0aGlzLl9zZXJ2aWNlcy5fYXBwLmNsaWVudC5nZXRWYWx1ZSgpXSxcblx0XHRcdG1lc3NhZ2VzOiBbW11dLFxuXHRcdFx0ZGF0ZV9jcmVhdGVkOiBbbnVsbF0sXG5cdFx0XHRkYXRlX2NyZWF0ZWRfc3RyaW5nOiBbJyddLFxuXHRcdFx0aWRfdXNlcl9jcmVhdGVkOiBbdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLl9pZF0sXG5cdFx0XHR1c2VyX2NyZWF0ZWQ6IFt0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWVdLFxuXHRcdFx0YmlsbGFibGU6IFtmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdGRhdGVfaW52ZXN0aWdhdGlvbjogW251bGxdLFxuXHRcdFx0ZGF0ZV9jbG9zZWQ6IFtudWxsXSxcblx0XHRcdGZpbGVzOiBbW11dLFxuXHRcdFx0Y3VycmVudF93YXRjaGVyczogW1tdXSxcblx0XHRcdGNsaWVudF91c2VyOiBbe1xuXHRcdFx0XHRpZF91c2VyOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuX2lkLFxuXHRcdFx0XHR1c2VyOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsXG5cdFx0XHRcdGVtYWlsOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZW1haWwgPyB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZW1haWwgOiAnJ1xuXHRcdFx0fV0sXG5cdFx0XHR0YXNrczogW1tdXSxcblx0XHRcdG5vdGVzOiBbW11dLFxuXHRcdFx0dXNlcnNfYXNzaWduZWQ6IFtbXV0sXG5cdFx0XHRiaWxsX2Rlc2NyaXB0aW9uOiBbJyddLFxuXHRcdFx0ZGlmZmljdWx0eTogWzFdXG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbiQuZm9yRWFjaChzdWIgPT4ge1xuXHRcdFx0c3ViLnVuc3Vic2NyaWJlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRjYW5EZWFjdGl2YXRlKCkge1x0XHRcdFxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0b25UeXBlQ2hhbmdlKCkge1xuXHRcdGlmICh0aGlzLmZvcm0uY29udHJvbHMudHlwZS52YWx1ZSA9PT0gJ1N5c3RlbSBJbXBhaXJtZW50Jykge1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnByaW9yaXR5LnNldFZhbHVlKCdIaWdoJyk7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMuYmlsbGFibGUuc2V0VmFsdWUoZmFsc2UpO1xuXHRcdH1cblx0XHRlbHNlIGlmICh0aGlzLmZvcm0uY29udHJvbHMudHlwZS52YWx1ZSA9PT0gJ1JlcXVlc3QgTmV3IEZlYXR1cmUnKSB7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMucHJpb3JpdHkuc2V0VmFsdWUoJ0xvdycpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLmJpbGxhYmxlLnNldFZhbHVlKHRydWUpO1xuXHRcdH1cblx0XHRlbHNlIGlmICh0aGlzLmZvcm0uY29udHJvbHMudHlwZS52YWx1ZSA9PT0gJ0dlbmVyYWwgSW5xdWVyeScpIHtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wcmlvcml0eS5zZXRWYWx1ZSgnTG93Jyk7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMuYmlsbGFibGUuc2V0VmFsdWUodHJ1ZSk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnByaW9yaXR5LnNldFZhbHVlKCcnKTtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5iaWxsYWJsZS5zZXRWYWx1ZShmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0c3VibWl0Rm9ybShmb3JtKSB7XG5cblx0XHR0aGlzLnN1Ym1pdCA9IHRydWU7XG5cblx0XHR0aGlzLmRpc2FibGVGb3JtQnV0dG9uID0gdHJ1ZTtcblxuXHRcdGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuXHRcdHRoaXMuZm9ybS5jb250cm9scy5kYXRlX2NyZWF0ZWQuc2V0VmFsdWUobm93KTtcblx0XHR0aGlzLmZvcm0uY29udHJvbHMuZGF0ZV9jcmVhdGVkX3N0cmluZy5zZXRWYWx1ZShub3cuZ2V0RnVsbFllYXIoKSArICcvJyArIChub3cuZ2V0TW9udGgoKSArIDEpICsgJy8nICsgbm93LmdldERhdGUoKSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ3N1cHBvcnRJbnNlcnRTdXBwb3J0VGlja2V0JywgdGhpcy5mb3JtLnZhbHVlLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdzdWNjZXNzJywgJ1N1cHBvcnQgdGlja2V0IGhhcyBiZWVuIGNyZWF0ZWQnKTtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvc3VwcG9ydC10aWNrZXQvZGV0YWlsLycgKyByZXMpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgY3JlYXRlIG5ldyBzdXBwb3J0IHRpY2tldC4nKTtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdTdXBwb3J0IFRpY2tldCBOZXcgLSBpbnNlcnQgc3VwcG9ydCB0aWNrZXQnLCBbXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnZhbHVlLCBlcnJcblx0XHRcdFx0XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxzdHlsZT5cbiAgICAubGFiZWwtYWNjb3JkaW9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cblxuICAgIC5mYS1wbHVzIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIC5mYS1taW51cyB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZSAobmdTdWJtaXQpPVwic3VibWl0Rm9ybShmb3JtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8bmdiLWFjY29yZGlvbiAjYWNjPVwibmdiQWNjb3JkaW9uXCIgYWN0aXZlSWRzPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1hY2NvcmRpb25cIj5TdXBwb3J0IFRpY2tldCBJbmZvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdzdXBwb3J0VGlja2V0SW5mbycpXCIgY2xhc3M9XCJmYSBmYS1wbHVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImFjYy5hY3RpdmVJZHMuaW5jbHVkZXMoJ3N1cHBvcnRUaWNrZXRJbmZvJylcIiBjbGFzcz1cImZhIGZhLW1pbnVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiUGFuZWxDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPlN1cHBvcnQgVGlja2V0IFR5cGU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtICpuZ0lmPVwiIWZvcm0uY29udHJvbHMudHlwZS52YWxpZFwiPi0gUmVxdWlyZWQ8L2VtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCBmb3JtLmNvbnRyb2xzLnR5cGUudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cInR5cGVcIiAoY2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgpXCIgdG91ckFuY2hvcj1cInN1cHBvcnROZXdTZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBUeXBlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJHZW5lcmFsIElucXVlcnlcIj5HZW5lcmFsIElucXVlcnk8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlN5c3RlbSBJbXBhaXJtZW50XCI+U3lzdGVtIEltcGFpcm1lbnQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlJlcXVlc3QgTmV3IEZlYXR1cmVcIj5SZXF1ZXN0IE5ldyBGZWF0dXJlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiIWZvcm0uY29udHJvbHMudHlwZS52YWxpZFwiPlR5cGUgaXMgcmVxdWlyZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5Qcm9ibGVtL0ZlYXR1cmUgRGVzY3JpcHRpb248L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtICpuZ0lmPVwiIWZvcm0uY29udHJvbHMuaXNzdWUudmFsaWRcIj4tIFJlcXVpcmVkPC9lbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBmb3JtQ29udHJvbE5hbWU9XCJpc3N1ZVwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgZm9ybS5jb250cm9scy5pc3N1ZS52YWxpZCA/ICdpcy12YWxpZCcgOiAnaXMtaW52YWxpZCcgXVwiIFtyb3dzXT1cIjVcIiBzdHlsZT1cIm92ZXJmbG93LXg6IGhpZGRlblwiIHRvdXJBbmNob3I9XCJzdXBwb3J0TmV3SW5wdXRcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIiFmb3JtLmNvbnRyb2xzLmlzc3VlLnZhbGlkXCI+RGVzY3JpcHRpb24gaXMgcmVxdWlyZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nYi1wYW5lbD5cbiAgICAgICAgICAgIDwvbmdiLWFjY29yZGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4O1wiPlxuICAgICAgICAgICAgPGZvcm0tYnV0dG9uIFtmb3JtXT1cImZvcm1cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUZvcm1CdXR0b25cIiB0b3VyQW5jaG9yPVwic3VwcG9ydE5ld1N1Ym1pdFwiPjwvZm9ybS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,67 @@
1
+ import { Component } from '@angular/core';
2
+ import { SupportTicketService } from './support-ticket.service';
3
+ import { ProviderService, BaseComponent } from '../resolveio-class';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./support-ticket.service";
6
+ import * as i2 from "../resolveio-class";
7
+ import * as i3 from "@angular/router";
8
+ export class SupportTicketComponent extends BaseComponent {
9
+ _sts;
10
+ _services;
11
+ selectedResolveIOSupport$;
12
+ menuData;
13
+ constructor(_sts, _services) {
14
+ super(_services);
15
+ this._sts = _sts;
16
+ this._services = _services;
17
+ }
18
+ ngOnInit() {
19
+ this.selectedResolveIOSupport$ = this._sts.selectedSupportTicket.subscribe(val => this.selectedResolveIOSupportChanged(val));
20
+ }
21
+ ngOnDestroy() {
22
+ this._sts.setSelectedSupportTicket('0');
23
+ this.selectedResolveIOSupport$.unsubscribe();
24
+ }
25
+ selectedResolveIOSupportChanged(id) {
26
+ if (id !== '0') {
27
+ this._services._socket.call('supportGetSupportTicketWithId', id, (err, res) => {
28
+ if (!res) {
29
+ this.setResolveIOSupportModuleMenuData();
30
+ }
31
+ else {
32
+ this.setResolveIOSupportModuleMenuData(id, res);
33
+ }
34
+ });
35
+ }
36
+ else {
37
+ this.setResolveIOSupportModuleMenuData();
38
+ }
39
+ }
40
+ setResolveIOSupportModuleMenuData(id, st) {
41
+ let tabs = [];
42
+ tabs.push({ link: '/support-ticket/list', params: null, label: 'List', tourAnchor: 'navBarModuleSupportList' });
43
+ tabs.push({ link: '/support-ticket/new', params: null, label: 'New', tourAnchor: 'navBarModuleSupportNew' });
44
+ tabs.push({ link: '/support-ticket/detail', params: id || '0', label: 'Details' });
45
+ if (this._services._account.isUserSuperAdmin() || (st && st.id_user_created === this._services._account.getUser()._id)) {
46
+ tabs.push({ link: '/support-ticket/edit', params: id || '0', label: 'Edit' });
47
+ }
48
+ this.menuData = {
49
+ title: 'Support Center',
50
+ module: 'Support Ticket',
51
+ description_name: 'Support Ticket #',
52
+ description: st ? st.support_ticket_number_string : '',
53
+ tabs: tabs
54
+ };
55
+ this._services._app.setNavbarModuleData(this.menuData);
56
+ }
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketComponent, deps: [{ token: i1.SupportTicketService }, { token: i2.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SupportTicketComponent, selector: "ng-component", providers: [ProviderService], usesInheritance: true, ngImport: i0, template: '<router-outlet></router-outlet>', isInline: true, dependencies: [{ kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketComponent, decorators: [{
61
+ type: Component,
62
+ args: [{
63
+ providers: [ProviderService],
64
+ template: '<router-outlet></router-outlet>'
65
+ }]
66
+ }], ctorParameters: function () { return [{ type: i1.SupportTicketService }, { type: i2.ProviderService }]; } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3N1cHBvcnQtdGlja2V0L3N1cHBvcnQtdGlja2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVFwRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQU1wQztJQUFvQztJQUp4RCx5QkFBeUIsQ0FBZTtJQUV4QyxRQUFRLENBQWM7SUFFdEIsWUFBb0IsSUFBMEIsRUFBVSxTQUEwQjtRQUNqRixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO0lBRWxGLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUN6RSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLENBQUMsQ0FDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELCtCQUErQixDQUFDLEVBQVU7UUFDekMsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDN0UsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDVCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztpQkFDekM7cUJBQ0k7b0JBQ0osSUFBSSxDQUFDLGlDQUFpQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDaEQ7WUFDRixDQUFDLENBQUMsQ0FBQztTQUNIO2FBQ0k7WUFDSixJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztTQUN6QztJQUNGLENBQUM7SUFFRCxpQ0FBaUMsQ0FBQyxFQUFXLEVBQUUsRUFBdUI7UUFDckUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHlCQUF5QixFQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkgsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztTQUM1RTtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsZ0JBQWdCLEVBQUUsa0JBQWtCO1lBQ3BDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RCxJQUFJLEVBQUUsSUFBSTtTQUNWLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQzt3R0F6RFcsc0JBQXNCOzRGQUF0QixzQkFBc0IsdUNBSnZCLENBQUMsZUFBZSxDQUFDLGlEQUNsQixpQ0FBaUM7OzRGQUcvQixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1YsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixRQUFRLEVBQUUsaUNBQWlDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZiYXJNb2RlbCB9IGZyb20gJy4uL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLm1vZGVsJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi9zdXBwb3J0LXRpY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHR0ZW1wbGF0ZTogJzxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4nXG59KVxuXG5leHBvcnQgY2xhc3MgU3VwcG9ydFRpY2tldENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdHNlbGVjdGVkUmVzb2x2ZUlPU3VwcG9ydCQ6IFN1YnNjcmlwdGlvbjtcblxuXHRtZW51RGF0YTogTmF2YmFyTW9kZWw7XG5cdFxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHM6IFN1cHBvcnRUaWNrZXRTZXJ2aWNlLCBwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuc2VsZWN0ZWRSZXNvbHZlSU9TdXBwb3J0JCA9IHRoaXMuX3N0cy5zZWxlY3RlZFN1cHBvcnRUaWNrZXQuc3Vic2NyaWJlKFxuXHRcdFx0dmFsID0+IHRoaXMuc2VsZWN0ZWRSZXNvbHZlSU9TdXBwb3J0Q2hhbmdlZCh2YWwpXG5cdFx0KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuX3N0cy5zZXRTZWxlY3RlZFN1cHBvcnRUaWNrZXQoJzAnKTtcblxuXHRcdHRoaXMuc2VsZWN0ZWRSZXNvbHZlSU9TdXBwb3J0JC51bnN1YnNjcmliZSgpO1xuXHR9XG5cblx0c2VsZWN0ZWRSZXNvbHZlSU9TdXBwb3J0Q2hhbmdlZChpZDogc3RyaW5nKSB7XG5cdFx0aWYgKGlkICE9PSAnMCcpIHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydEdldFN1cHBvcnRUaWNrZXRXaXRoSWQnLCBpZCwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdGlmICghcmVzKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRSZXNvbHZlSU9TdXBwb3J0TW9kdWxlTWVudURhdGEoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNldFJlc29sdmVJT1N1cHBvcnRNb2R1bGVNZW51RGF0YShpZCwgcmVzKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5zZXRSZXNvbHZlSU9TdXBwb3J0TW9kdWxlTWVudURhdGEoKTtcblx0XHR9XG5cdH1cblxuXHRzZXRSZXNvbHZlSU9TdXBwb3J0TW9kdWxlTWVudURhdGEoaWQ/OiBzdHJpbmcsIHN0PzogU3VwcG9ydFRpY2tldE1vZGVsKSB7XG5cdFx0bGV0IHRhYnMgPSBbXTtcblxuXHRcdHRhYnMucHVzaCh7bGluazogJy9zdXBwb3J0LXRpY2tldC9saXN0JywgcGFyYW1zOiBudWxsLCBsYWJlbDogJ0xpc3QnLCB0b3VyQW5jaG9yOiAnbmF2QmFyTW9kdWxlU3VwcG9ydExpc3QnfSk7XG5cdFx0dGFicy5wdXNoKHtsaW5rOiAnL3N1cHBvcnQtdGlja2V0L25ldycsIHBhcmFtczogbnVsbCwgbGFiZWw6ICdOZXcnLCB0b3VyQW5jaG9yOiAnbmF2QmFyTW9kdWxlU3VwcG9ydE5ldyd9KTtcblx0XHR0YWJzLnB1c2goe2xpbms6ICcvc3VwcG9ydC10aWNrZXQvZGV0YWlsJywgcGFyYW1zOiBpZCB8fCAnMCcsIGxhYmVsOiAnRGV0YWlscyd9KTtcblx0XHRpZiAodGhpcy5fc2VydmljZXMuX2FjY291bnQuaXNVc2VyU3VwZXJBZG1pbigpIHx8IChzdCAmJiBzdC5pZF91c2VyX2NyZWF0ZWQgPT09IHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFVzZXIoKS5faWQpKSB7XG5cdFx0XHR0YWJzLnB1c2goe2xpbms6ICcvc3VwcG9ydC10aWNrZXQvZWRpdCcsIHBhcmFtczogaWQgfHwgJzAnLCBsYWJlbDogJ0VkaXQnfSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5tZW51RGF0YSA9IHtcblx0XHRcdHRpdGxlOiAnU3VwcG9ydCBDZW50ZXInLFxuXHRcdFx0bW9kdWxlOiAnU3VwcG9ydCBUaWNrZXQnLFxuXHRcdFx0ZGVzY3JpcHRpb25fbmFtZTogJ1N1cHBvcnQgVGlja2V0ICMnLFxuXHRcdFx0ZGVzY3JpcHRpb246IHN0ID8gc3Quc3VwcG9ydF90aWNrZXRfbnVtYmVyX3N0cmluZyA6ICcnLFxuXHRcdFx0dGFiczogdGFic1xuXHRcdH07XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldE5hdmJhck1vZHVsZURhdGEodGhpcy5tZW51RGF0YSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SharedModule } from '../shared/shared.module';
3
+ import { SupportTicketRouting } from './support-ticket.routing';
4
+ import { SupportTicketComponent } from './support-ticket.component';
5
+ import { SupportTicketListComponent } from './list/support-ticket-list.component';
6
+ import { SupportTicketNewComponent } from './new/support-ticket-new.component';
7
+ import { SupportTicketDetailComponent } from './detail/support-ticket-detail.component';
8
+ import { SupportTicketEditComponent } from './edit/support-ticket-edit.component';
9
+ import { SupportTicketService } from './support-ticket.service';
10
+ import { DatatableModule } from '../widgets/data-table/data-table.module';
11
+ import { FileModule } from '../widgets/file/file-upload.module';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ export class SupportTicketModule {
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketModule, declarations: [SupportTicketComponent,
17
+ SupportTicketListComponent,
18
+ SupportTicketNewComponent,
19
+ SupportTicketDetailComponent,
20
+ SupportTicketEditComponent], imports: [SharedModule, i1.RouterModule, DatatableModule,
21
+ FileModule] });
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketModule, providers: [
23
+ SupportTicketService
24
+ ], imports: [SharedModule,
25
+ SupportTicketRouting,
26
+ DatatableModule,
27
+ FileModule] });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ imports: [
33
+ SharedModule,
34
+ SupportTicketRouting,
35
+ DatatableModule,
36
+ FileModule
37
+ ],
38
+ declarations: [
39
+ SupportTicketComponent,
40
+ SupportTicketListComponent,
41
+ SupportTicketNewComponent,
42
+ SupportTicketDetailComponent,
43
+ SupportTicketEditComponent
44
+ ],
45
+ providers: [
46
+ SupportTicketService
47
+ ]
48
+ }]
49
+ }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3N1cHBvcnQtdGlja2V0L3N1cHBvcnQtdGlja2V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFtQmhFLE1BQU0sT0FBTyxtQkFBbUI7d0dBQW5CLG1CQUFtQjt5R0FBbkIsbUJBQW1CLGlCQVY5QixzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLHlCQUF5QjtZQUN6Qiw0QkFBNEI7WUFDNUIsMEJBQTBCLGFBVjFCLFlBQVksbUJBRVosZUFBZTtZQUNmLFVBQVU7eUdBYUMsbUJBQW1CLGFBSnBCO1lBQ1Ysb0JBQW9CO1NBQ3BCLFlBZEEsWUFBWTtZQUNaLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsVUFBVTs7NEZBYUMsbUJBQW1CO2tCQWxCL0IsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUU7d0JBQ1IsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsVUFBVTtxQkFDVjtvQkFDRCxZQUFZLEVBQUU7d0JBQ2Isc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1QiwwQkFBMEI7cUJBQzFCO29CQUNELFNBQVMsRUFBRTt3QkFDVixvQkFBb0I7cUJBQ3BCO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRSb3V0aW5nIH0gZnJvbSAnLi9zdXBwb3J0LXRpY2tldC5yb3V0aW5nJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtdGlja2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0TmV3Q29tcG9uZW50IH0gZnJvbSAnLi9uZXcvc3VwcG9ydC10aWNrZXQtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9kZXRhaWwvc3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0RWRpdENvbXBvbmVudCB9IGZyb20gJy4vZWRpdC9zdXBwb3J0LXRpY2tldC1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0U2VydmljZSB9IGZyb20gJy4vc3VwcG9ydC10aWNrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhdGFibGVNb2R1bGUgfSBmcm9tICcuLi93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5tb2R1bGUnO1xuaW1wb3J0IHsgRmlsZU1vZHVsZSB9IGZyb20gJy4uL3dpZGdldHMvZmlsZS9maWxlLXVwbG9hZC5tb2R1bGUnO1xuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW1xuXHRcdFNoYXJlZE1vZHVsZSxcblx0XHRTdXBwb3J0VGlja2V0Um91dGluZyxcblx0XHREYXRhdGFibGVNb2R1bGUsXG5cdFx0RmlsZU1vZHVsZVxuXHRdLFxuXHRkZWNsYXJhdGlvbnM6IFsgXG5cdFx0U3VwcG9ydFRpY2tldENvbXBvbmVudCxcblx0XHRTdXBwb3J0VGlja2V0TGlzdENvbXBvbmVudCxcblx0XHRTdXBwb3J0VGlja2V0TmV3Q29tcG9uZW50LFxuXHRcdFN1cHBvcnRUaWNrZXREZXRhaWxDb21wb25lbnQsXG5cdFx0U3VwcG9ydFRpY2tldEVkaXRDb21wb25lbnRcblx0XSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0U3VwcG9ydFRpY2tldFNlcnZpY2Vcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0VGlja2V0TW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,20 @@
1
+ import { RouterModule } from '@angular/router';
2
+ import { SupportTicketComponent } from './support-ticket.component';
3
+ import { SupportTicketListComponent } from './list/support-ticket-list.component';
4
+ import { SupportTicketNewComponent } from './new/support-ticket-new.component';
5
+ import { SupportTicketDetailComponent } from './detail/support-ticket-detail.component';
6
+ import { SupportTicketEditComponent } from './edit/support-ticket-edit.component';
7
+ const routes = [{
8
+ path: '',
9
+ component: SupportTicketComponent,
10
+ children: [
11
+ { path: 'list', component: SupportTicketListComponent },
12
+ { path: 'new', component: SupportTicketNewComponent },
13
+ { path: 'detail/:id', component: SupportTicketDetailComponent },
14
+ { path: 'edit/:id', component: SupportTicketEditComponent },
15
+ { path: '**', redirectTo: 'list' }
16
+ ]
17
+ }
18
+ ];
19
+ export const SupportTicketRouting = RouterModule.forChild(routes);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQucm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9zdXBwb3J0LXRpY2tldC5yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBVSxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVsRixNQUFNLE1BQU0sR0FBVyxDQUFDO1FBQ3ZCLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxRQUFRLEVBQUU7WUFDVCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFO1lBQ3ZELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7WUFDckQsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSw0QkFBNEIsRUFBRTtZQUMvRCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFO1lBQzNELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO1NBQ2xDO0tBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQStCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlLCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0Q29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LXRpY2tldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VwcG9ydFRpY2tldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3Qvc3VwcG9ydC10aWNrZXQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VwcG9ydFRpY2tldE5ld0NvbXBvbmVudCB9IGZyb20gJy4vbmV3L3N1cHBvcnQtdGlja2V0LW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VwcG9ydFRpY2tldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vZGV0YWlsL3N1cHBvcnQtdGlja2V0LWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VwcG9ydFRpY2tldEVkaXRDb21wb25lbnQgfSBmcm9tICcuL2VkaXQvc3VwcG9ydC10aWNrZXQtZWRpdC5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFt7IFxuXHRwYXRoOiAnJyxcblx0Y29tcG9uZW50OiBTdXBwb3J0VGlja2V0Q29tcG9uZW50LFxuXHRjaGlsZHJlbjogW1xuXHRcdHsgcGF0aDogJ2xpc3QnLCBjb21wb25lbnQ6IFN1cHBvcnRUaWNrZXRMaXN0Q29tcG9uZW50IH0sXG5cdFx0eyBwYXRoOiAnbmV3JywgY29tcG9uZW50OiBTdXBwb3J0VGlja2V0TmV3Q29tcG9uZW50IH0sXG5cdFx0eyBwYXRoOiAnZGV0YWlsLzppZCcsIGNvbXBvbmVudDogU3VwcG9ydFRpY2tldERldGFpbENvbXBvbmVudCB9LFxuXHRcdHsgcGF0aDogJ2VkaXQvOmlkJywgY29tcG9uZW50OiBTdXBwb3J0VGlja2V0RWRpdENvbXBvbmVudCB9LFxuXHRcdHsgcGF0aDogJyoqJywgcmVkaXJlY3RUbzogJ2xpc3QnIH1cblx0XX1cbl07XG5cbmV4cG9ydCBjb25zdCBTdXBwb3J0VGlja2V0Um91dGluZzogTW9kdWxlV2l0aFByb3ZpZGVyczxSb3V0ZT4gPSBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKTtcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class SupportTicketService {
5
+ selectedSupportTicket = new BehaviorSubject('0');
6
+ constructor() { }
7
+ setSelectedSupportTicket(id) {
8
+ this.selectedSupportTicket.next(id);
9
+ }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketService });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportTicketService, decorators: [{
14
+ type: Injectable
15
+ }], ctorParameters: function () { return []; } });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9zdXBwb3J0LXRpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUVoQyxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVqRCxnQkFBZSxDQUFDO0lBRWhCLHdCQUF3QixDQUFDLEVBQVU7UUFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO3dHQVJXLG9CQUFvQjs0R0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdXBwb3J0VGlja2V0U2VydmljZSB7XG5cblx0c2VsZWN0ZWRTdXBwb3J0VGlja2V0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnMCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge31cblxuXHRzZXRTZWxlY3RlZFN1cHBvcnRUaWNrZXQoaWQ6IHN0cmluZykge1xuXHRcdHRoaXMuc2VsZWN0ZWRTdXBwb3J0VGlja2V0Lm5leHQoaWQpO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { LocalStorageService } from 'ngx-localstorage';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-localstorage";
5
+ export class TokenManagerService {
6
+ _storage;
7
+ constructor(_storage) {
8
+ this._storage = _storage;
9
+ }
10
+ getToken(tokenKey) {
11
+ return this._storage.get(tokenKey);
12
+ }
13
+ setToken(tokenKey, tokenValue) {
14
+ this._storage.set(tokenKey, tokenValue);
15
+ }
16
+ removeToken(tokenKey) {
17
+ this._storage.remove(tokenKey);
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenManagerService, deps: [{ token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable });
20
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenManagerService });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TokenManagerService, decorators: [{
23
+ type: Injectable
24
+ }], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3Rva2VuLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHdkQsTUFBTSxPQUFPLG1CQUFtQjtJQUVYO0lBQXBCLFlBQW9CLFFBQTZCO1FBQTdCLGFBQVEsR0FBUixRQUFRLENBQXFCO0lBQUcsQ0FBQztJQUU5QyxRQUFRLENBQUMsUUFBZ0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQWdCLEVBQUUsVUFBa0I7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQzt3R0FkVyxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtbG9jYWxzdG9yYWdlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRva2VuTWFuYWdlclNlcnZpY2Uge1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHt9XG5cblx0cHVibGljIGdldFRva2VuKHRva2VuS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9zdG9yYWdlLmdldCh0b2tlbktleSk7XG5cdH1cblx0XG5cdHB1YmxpYyBzZXRUb2tlbih0b2tlbktleTogc3RyaW5nLCB0b2tlblZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9zdG9yYWdlLnNldCh0b2tlbktleSwgdG9rZW5WYWx1ZSk7XG5cdH1cblxuXHRwdWJsaWMgcmVtb3ZlVG9rZW4odG9rZW5LZXk6IHN0cmluZykge1xuXHRcdHRoaXMuX3N0b3JhZ2UucmVtb3ZlKHRva2VuS2V5KTtcblx0fVxufVxuIl19