tin-spa 2.2.3 → 2.3.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 (106) hide show
  1. package/esm2020/lib/components/accounts/accountDialog.component.mjs +2 -2
  2. package/esm2020/lib/components/accounts/accounts.component.mjs +2 -2
  3. package/esm2020/lib/components/attach/attach.component.mjs +1 -20
  4. package/esm2020/lib/components/change-password/change-password.component.mjs +2 -2
  5. package/esm2020/lib/components/create-account/create-account.component.mjs +2 -2
  6. package/esm2020/lib/components/customers/customers.component.mjs +2 -2
  7. package/esm2020/lib/components/departments/departments.component.mjs +6 -26
  8. package/esm2020/lib/components/employees/employees.component.mjs +10 -53
  9. package/esm2020/lib/components/form/form.component.mjs +2 -2
  10. package/esm2020/lib/components/inventory/inventory.component.mjs +2 -2
  11. package/esm2020/lib/components/inventory/quantityDialog.component.mjs +2 -2
  12. package/esm2020/lib/components/invitations-table/invitations-table.component.mjs +2 -2
  13. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +2 -2
  14. package/esm2020/lib/components/login/login.component.mjs +2 -2
  15. package/esm2020/lib/components/logs/logs.component.mjs +2 -2
  16. package/esm2020/lib/components/membership/membership.component.mjs +2 -2
  17. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +2 -2
  18. package/esm2020/lib/components/plans/plans.component.mjs +2 -2
  19. package/esm2020/lib/components/positions/positions.component.mjs +13 -6
  20. package/esm2020/lib/components/profile/profile.component.mjs +2 -2
  21. package/esm2020/lib/components/recover-account/recover-account.component.mjs +2 -2
  22. package/esm2020/lib/components/roles/addRoleDialog.component.mjs +2 -2
  23. package/esm2020/lib/components/roles/roles.component.mjs +2 -2
  24. package/esm2020/lib/components/settings/settings.component.mjs +2 -2
  25. package/esm2020/lib/components/signup/signup.component.mjs +2 -2
  26. package/esm2020/lib/components/suppliers/suppliers.component.mjs +2 -2
  27. package/esm2020/lib/components/table/detailsDialog.component.mjs +72 -142
  28. package/esm2020/lib/components/table/table.component.mjs +151 -333
  29. package/esm2020/lib/components/table-action/table-action.component.mjs +46 -0
  30. package/esm2020/lib/components/table-header/table-header.component.mjs +52 -0
  31. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +78 -139
  32. package/esm2020/lib/components/table-internal/table-internal.component.mjs +153 -334
  33. package/esm2020/lib/components/table-row/table-row.component.mjs +58 -0
  34. package/esm2020/lib/components/tasks/tasks.component.mjs +2 -2
  35. package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +2 -2
  36. package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +2 -2
  37. package/esm2020/lib/components/tenants/tenants.component.mjs +2 -2
  38. package/esm2020/lib/components/tiles/tiles.component.mjs +2 -2
  39. package/esm2020/lib/components/transactions/transactDialog.component.mjs +2 -2
  40. package/esm2020/lib/components/transactions/transactions.component.mjs +2 -2
  41. package/esm2020/lib/components/users/users.component.mjs +2 -2
  42. package/esm2020/lib/components/viewer/viewer.component.mjs +2 -2
  43. package/esm2020/lib/components/welcome/welcome.component.mjs +2 -2
  44. package/esm2020/lib/services/button.service.mjs +100 -0
  45. package/esm2020/lib/services/condition.service.mjs +32 -0
  46. package/esm2020/lib/services/datalib.service.mjs +381 -0
  47. package/esm2020/lib/services/dialog.service.mjs +38 -0
  48. package/esm2020/lib/services/table-config.service.mjs +26 -0
  49. package/esm2020/lib/tin-spa.module.mjs +6 -3
  50. package/esm2020/public-api.mjs +3 -2
  51. package/fesm2015/tin-spa.mjs +936 -1061
  52. package/fesm2015/tin-spa.mjs.map +1 -1
  53. package/fesm2020/tin-spa.mjs +945 -1058
  54. package/fesm2020/tin-spa.mjs.map +1 -1
  55. package/lib/components/accounts/accountDialog.component.d.ts +1 -1
  56. package/lib/components/accounts/accounts.component.d.ts +1 -1
  57. package/lib/components/attach/attach.component.d.ts +0 -19
  58. package/lib/components/change-password/change-password.component.d.ts +1 -1
  59. package/lib/components/create-account/create-account.component.d.ts +1 -1
  60. package/lib/components/customers/customers.component.d.ts +1 -1
  61. package/lib/components/departments/departments.component.d.ts +2 -5
  62. package/lib/components/employees/employees.component.d.ts +3 -14
  63. package/lib/components/form/form.component.d.ts +1 -1
  64. package/lib/components/inventory/inventory.component.d.ts +1 -1
  65. package/lib/components/inventory/quantityDialog.component.d.ts +1 -1
  66. package/lib/components/invitations-table/invitations-table.component.d.ts +1 -1
  67. package/lib/components/list-dialog/list-dialog.component.d.ts +1 -1
  68. package/lib/components/login/login.component.d.ts +1 -1
  69. package/lib/components/logs/logs.component.d.ts +1 -1
  70. package/lib/components/membership/membership.component.d.ts +1 -1
  71. package/lib/components/nav-menu/nav-menu.component.d.ts +1 -1
  72. package/lib/components/plans/plans.component.d.ts +1 -1
  73. package/lib/components/positions/positions.component.d.ts +5 -1
  74. package/lib/components/profile/profile.component.d.ts +1 -1
  75. package/lib/components/recover-account/recover-account.component.d.ts +1 -1
  76. package/lib/components/roles/addRoleDialog.component.d.ts +1 -1
  77. package/lib/components/roles/roles.component.d.ts +1 -1
  78. package/lib/components/settings/settings.component.d.ts +1 -1
  79. package/lib/components/signup/signup.component.d.ts +1 -1
  80. package/lib/components/suppliers/suppliers.component.d.ts +1 -1
  81. package/lib/components/table/detailsDialog.component.d.ts +11 -4
  82. package/lib/components/table/table.component.d.ts +28 -15
  83. package/lib/components/table-action/table-action.component.d.ts +22 -0
  84. package/lib/components/table-header/table-header.component.d.ts +22 -0
  85. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +16 -6
  86. package/lib/components/table-internal/table-internal.component.d.ts +28 -15
  87. package/lib/components/table-row/table-row.component.d.ts +28 -0
  88. package/lib/components/tasks/tasks.component.d.ts +1 -1
  89. package/lib/components/tenant-settings/inviteDialog.component.d.ts +1 -1
  90. package/lib/components/tenant-settings/tenant-settings.component.d.ts +1 -1
  91. package/lib/components/tenants/tenants.component.d.ts +1 -1
  92. package/lib/components/tiles/tiles.component.d.ts +1 -1
  93. package/lib/components/transactions/transactDialog.component.d.ts +1 -1
  94. package/lib/components/transactions/transactions.component.d.ts +1 -1
  95. package/lib/components/users/users.component.d.ts +1 -1
  96. package/lib/components/viewer/viewer.component.d.ts +1 -1
  97. package/lib/components/welcome/welcome.component.d.ts +1 -1
  98. package/lib/services/button.service.d.ts +27 -0
  99. package/lib/services/condition.service.d.ts +10 -0
  100. package/lib/services/{data.service.d.ts → datalib.service.d.ts} +15 -1
  101. package/lib/services/dialog.service.d.ts +18 -0
  102. package/lib/services/table-config.service.d.ts +8 -0
  103. package/lib/tin-spa.module.d.ts +8 -5
  104. package/package.json +1 -1
  105. package/public-api.d.ts +2 -1
  106. package/esm2020/lib/services/data.service.mjs +0 -236
@@ -0,0 +1,381 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { AppConfig, CapItem } from '../classes/Classes';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./http.service";
6
+ import * as i2 from "@angular/router";
7
+ export class DataServiceLib {
8
+ constructor(httpService, router, route) {
9
+ this.httpService = httpService;
10
+ this.router = router;
11
+ this.route = route;
12
+ this.appConfig = new AppConfig();
13
+ this.appConfigSource = new BehaviorSubject(this.appConfig);
14
+ this.appConfigObserv = this.appConfigSource.asObservable();
15
+ this.capHome = new CapItem;
16
+ this.capAdmin = new CapItem;
17
+ this.capUsers = new CapItem;
18
+ this.capRoles = new CapItem;
19
+ this.capLogs = new CapItem;
20
+ this.capSettings = new CapItem;
21
+ this.capMultitenant = new CapItem;
22
+ this.capTenants = new CapItem;
23
+ this.capMembership = new CapItem;
24
+ this.capPlans = new CapItem;
25
+ this.capGeneral = new CapItem;
26
+ this.capCustomers = new CapItem;
27
+ this.capInventory = new CapItem;
28
+ this.capAccounts = new CapItem;
29
+ this.capSuppliers = new CapItem;
30
+ this.capTasks = new CapItem;
31
+ this.capHR = new CapItem;
32
+ this.capEmployees = new CapItem;
33
+ this.capDepartments = new CapItem;
34
+ this.capPositions = new CapItem;
35
+ this.capGrades = new CapItem;
36
+ this.tmpProfileuserName = "";
37
+ this.isProcessing = false;
38
+ this.genders = [
39
+ { name: 'Male', value: 1 },
40
+ { name: 'Female', value: 2 }
41
+ ];
42
+ this.employeeFormConfig = {
43
+ fields: [
44
+ { name: 'nationalID', type: 'text', alias: 'National ID', required: true },
45
+ { name: 'gender', alias: 'Gender', type: 'select', options: this.genders, required: true },
46
+ { name: 'firstName', type: 'text', required: true },
47
+ { name: 'lastName', type: 'text', required: true },
48
+ { name: 'departmentID', alias: 'Department', type: 'select', options: [], optionDisplay: 'name', optionValue: 'departmentID' },
49
+ { name: 'positionID', alias: 'Position', type: 'select', options: [], optionDisplay: 'name', optionValue: 'positionID', masterField: 'departmentID', },
50
+ { name: 'address', type: 'text', rows: 2, span: true },
51
+ { name: 'phone', type: 'text' },
52
+ { name: 'email', type: 'text' },
53
+ { name: 'note', type: 'text', rows: 2, span: true },
54
+ ],
55
+ };
56
+ this.employeeTableConfig = {
57
+ showFilter: true,
58
+ minColumns: ['name', 'departmentName', 'positionName'],
59
+ flatButtons: true,
60
+ columns: [
61
+ { name: 'employeeID', type: 'number', alias: 'ID' },
62
+ { name: 'name', type: 'text' },
63
+ { name: 'nationalID', type: 'text' },
64
+ { name: 'genderName', type: 'text' },
65
+ { name: 'departmentName', type: 'text' },
66
+ { name: 'positionName', type: 'text' },
67
+ ],
68
+ buttons: [
69
+ { name: 'create', display: 'Create', dialog: true, action: { url: 'general/employees?action=create', method: 'post' } },
70
+ { name: 'view', dialog: true },
71
+ { name: 'edit', dialog: true, action: { url: 'general/employees?action=edit', method: 'post' } },
72
+ { name: 'delete', dialog: true, action: { url: 'general/employees?action=delete', method: 'post' } },
73
+ ],
74
+ loadAction: { url: 'general/employees/x' },
75
+ formConfig: this.employeeFormConfig
76
+ };
77
+ this.positionFormConfig = {
78
+ fields: [
79
+ { name: 'name', type: 'text', required: true },
80
+ // { name: 'departmentID', alias: 'Department', type: 'select', options: [], optionDisplay: 'name', optionValue: 'departmentID' },
81
+ { name: 'description', type: 'text', span: true },
82
+ ],
83
+ loadAction: { url: 'positions/id' },
84
+ };
85
+ this.editPositionButton = { name: 'edit', dialog: true, action: { url: 'positions?action=edit', method: 'post', successMessage: 'Edited Successfully' } };
86
+ this.positionTableConfig = {
87
+ showFilter: true,
88
+ minColumns: ['name', 'departmentName', 'salary'],
89
+ flatButtons: true,
90
+ columns: [
91
+ { name: 'positionID', type: 'number', alias: 'ID' },
92
+ { name: 'name', type: 'text' },
93
+ // { name: 'departmentName', type: 'text', alias: 'Department' },
94
+ ],
95
+ buttons: [
96
+ { name: 'create', display: 'Create', dialog: true, action: { url: 'positions?action=create', method: 'post' } },
97
+ {
98
+ name: 'view',
99
+ dialog: true,
100
+ detailsConfig: {
101
+ formConfig: { ...this.positionFormConfig, fields: this.positionFormConfig.fields.filter(x => x.name != 'departmentID') },
102
+ heroField: 'positionID',
103
+ buttons: [this.editPositionButton],
104
+ tableConfigs: [
105
+ {
106
+ ...this.employeeTableConfig,
107
+ loadAction: { url: 'positions/employees/x' },
108
+ loadCriteria: 'employees',
109
+ loadIDField: 'positionID',
110
+ title: 'Employees',
111
+ elevation: 'none',
112
+ }
113
+ ],
114
+ }
115
+ },
116
+ this.editPositionButton,
117
+ { name: 'delete', dialog: true, action: { url: 'positions?action=delete', method: 'post' } },
118
+ ],
119
+ loadAction: { url: 'positions/all/x' },
120
+ formConfig: this.positionFormConfig
121
+ };
122
+ //--------------------------Departments-------------------------
123
+ this.departmentFormConfig = {
124
+ fields: [
125
+ { name: 'name', type: 'text', required: true },
126
+ ],
127
+ loadAction: { url: 'departments/id' },
128
+ };
129
+ this.editDepartmentButton = { name: 'edit', dialog: true, action: { url: 'departments?action=edit', method: 'post', successMessage: 'Edited Successfully' } };
130
+ this.departmentTableConfig = {
131
+ showFilter: true,
132
+ minColumns: ['name'],
133
+ flatButtons: true,
134
+ columns: [
135
+ { name: 'departmentID', type: 'number', alias: 'ID' },
136
+ { name: 'name', type: 'text' },
137
+ ],
138
+ buttons: [
139
+ { name: 'create', display: 'Create', dialog: true, action: { url: 'departments?action=create', method: 'post' } },
140
+ {
141
+ name: 'view',
142
+ dialog: true,
143
+ detailsConfig: {
144
+ formConfig: this.departmentFormConfig,
145
+ heroField: 'departmentID',
146
+ buttons: [this.editDepartmentButton],
147
+ tableConfigs: [
148
+ {
149
+ ...this.employeeTableConfig,
150
+ loadAction: { url: 'departments/employees/x' },
151
+ loadCriteria: 'employees',
152
+ loadIDField: 'departmentID',
153
+ title: 'Employees',
154
+ elevation: 'none',
155
+ },
156
+ {
157
+ ...this.positionTableConfig,
158
+ loadAction: { url: 'departments/positions/x' },
159
+ loadCriteria: 'positions',
160
+ loadIDField: 'departmentID',
161
+ title: 'Positions',
162
+ elevation: 'none',
163
+ }
164
+ ],
165
+ }
166
+ },
167
+ this.editDepartmentButton,
168
+ { name: 'delete', dialog: true, action: { url: 'departments?action=delete', method: 'post' } },
169
+ ],
170
+ loadAction: { url: 'departments/all/x' },
171
+ formConfig: this.departmentFormConfig
172
+ };
173
+ this.appConfig.appName = "App-Name";
174
+ this.appConfig.logo = "./assets/logo.png";
175
+ this.appConfig.ADAuth = true;
176
+ this.appConfig.capItems = [this.capMultitenant, this.capAdmin, this.capHome];
177
+ this.capHome.name = "cap1";
178
+ this.capHome.display = "Home";
179
+ this.capHome.link = "home";
180
+ this.capHome.icon = "home";
181
+ this.capAdmin.name = "cap2";
182
+ this.capAdmin.display = "Admin";
183
+ this.capAdmin.icon = "security";
184
+ this.capAdmin.capSubItems = [this.capUsers, this.capRoles, this.capLogs, this.capSettings];
185
+ this.capUsers.name = "cap3";
186
+ this.capUsers.display = "Users";
187
+ this.capUsers.link = "home/admin/users";
188
+ this.capUsers.icon = "group";
189
+ this.capRoles.name = "cap4";
190
+ this.capRoles.display = "Roles";
191
+ this.capRoles.link = "home/admin/roles";
192
+ this.capRoles.icon = "work";
193
+ this.capLogs.name = "cap5";
194
+ this.capLogs.display = "Logs";
195
+ this.capLogs.link = "home/admin/logs";
196
+ this.capLogs.icon = "text_snippet";
197
+ this.capSettings.name = "cap6";
198
+ this.capSettings.display = "Settings";
199
+ this.capSettings.link = "home/admin/settings";
200
+ this.capSettings.icon = "settings";
201
+ this.capMultitenant.name = "cap7";
202
+ this.capMultitenant.display = "Multitenant";
203
+ this.capMultitenant.icon = "apartment";
204
+ this.capMultitenant.capSubItems = [this.capTenants, this.capMembership, this.capPlans];
205
+ this.capTenants.name = "cap8";
206
+ this.capTenants.display = "Tenants";
207
+ this.capTenants.link = "home/admin/tenants";
208
+ this.capMembership.name = "cap9";
209
+ this.capMembership.display = "Membership";
210
+ this.capMembership.link = "home/admin/membership";
211
+ this.capPlans.name = "cap10";
212
+ this.capPlans.display = "Plans";
213
+ this.capPlans.link = "home/admin/plans";
214
+ this.capGeneral.name = "cap11";
215
+ this.capGeneral.display = "General";
216
+ this.capGeneral.capSubItems = [this.capCustomers, this.capInventory, this.capAccounts, this.capSuppliers, this.capTasks];
217
+ this.capCustomers.name = "cap12";
218
+ this.capCustomers.display = "Customers";
219
+ this.capCustomers.link = "home/admin/customers";
220
+ this.capCustomers.icon = "group";
221
+ this.capInventory.name = "cap13";
222
+ this.capInventory.display = "Inventory";
223
+ this.capInventory.link = "home/admin/inventory";
224
+ this.capInventory.icon = "storefront";
225
+ this.capAccounts.name = "cap14";
226
+ this.capAccounts.display = "Accounts";
227
+ this.capAccounts.link = "home/admin/accounts";
228
+ this.capAccounts.icon = "account_balance_wallet";
229
+ this.capSuppliers.name = "cap15";
230
+ this.capSuppliers.display = "Suppliers";
231
+ this.capSuppliers.link = "home/admin/suppliers";
232
+ this.capSuppliers.icon = "groups";
233
+ this.capTasks.name = "cap16";
234
+ this.capTasks.display = "Tasks";
235
+ this.capTasks.link = "home/admin/tasks";
236
+ this.capTasks.icon = "task_alt";
237
+ this.capHR.name = "cap17";
238
+ this.capHR.display = "HR";
239
+ this.capHR.link = "home/admin/hr";
240
+ this.capHR.icon = "diversity_3";
241
+ this.capHR.capSubItems = [this.capEmployees, this.capDepartments, this.capPositions];
242
+ this.capEmployees.name = "cap17";
243
+ this.capEmployees.display = "Employees";
244
+ this.capEmployees.link = "home/admin/employees";
245
+ this.capEmployees.icon = "group";
246
+ this.capDepartments.name = "cap17";
247
+ this.capDepartments.display = "Departments";
248
+ this.capDepartments.link = "home/admin/departments";
249
+ this.capDepartments.icon = "business_center";
250
+ this.capPositions.name = "cap17";
251
+ this.capPositions.display = "Positions";
252
+ this.capPositions.link = "home/admin/positions";
253
+ this.capPositions.icon = "picture_in_picture_medium";
254
+ }
255
+ UpdateAppConfig(config) {
256
+ this.appConfigSource.next(config);
257
+ this.appConfig = config;
258
+ }
259
+ //--------------------------Employees-------------------------
260
+ loadEmployeesMeta() {
261
+ this.CallApi({ url: 'general/employeesmeta/x' }, "").subscribe((apiResponse) => {
262
+ this.employeeFormConfig.fields.find(x => x.name == 'departmentID').options = apiResponse.data.departments;
263
+ this.employeeFormConfig.fields.find(x => x.name == 'positionID').masterOptions = apiResponse.data.positions;
264
+ });
265
+ }
266
+ //--------------------------Positions-------------------------
267
+ loadPositionMeta() {
268
+ // this.CallApi({ url: 'positions/meta/x' }, "").subscribe((apiResponse: ApiResponse) => {
269
+ // this.positionFormConfig.fields.find(x => x.name == 'departmentID').options = apiResponse.data.departments;
270
+ // });
271
+ }
272
+ //---------------------------Other code
273
+ CallApi(action, data = '') {
274
+ if (!action.method) {
275
+ return this.httpService.Get(action.url);
276
+ }
277
+ if (action.method == 'get') {
278
+ return this.httpService.Get(action.url);
279
+ }
280
+ else if (action.method == 'post') {
281
+ if (action.isFormData) {
282
+ return this.httpService.Post_FormData(action.url, data);
283
+ }
284
+ else {
285
+ return this.httpService.Post(action.url, data);
286
+ }
287
+ }
288
+ else {
289
+ return this.httpService.Post(action.url, data);
290
+ }
291
+ }
292
+ CheckWelcomed(path = 'home/admin/welcome') {
293
+ this.CallApi({ url: 'tenant/welcome/x' }).subscribe((x) => {
294
+ if (!x.data) {
295
+ this.Navigate(path);
296
+ }
297
+ });
298
+ }
299
+ Navigate(path) {
300
+ this.router.navigate([path]);
301
+ }
302
+ NavigateWithValue(path, value) {
303
+ this.router.navigate([path], {
304
+ queryParams: { v: value },
305
+ queryParamsHandling: 'merge',
306
+ skipLocationChange: false
307
+ });
308
+ }
309
+ GetNavigationValue() {
310
+ if (this.route.snapshot.queryParams["v"] != undefined) {
311
+ return this.route.snapshot.queryParams["v"];
312
+ }
313
+ else {
314
+ return "";
315
+ }
316
+ }
317
+ //Users
318
+ GetUser() {
319
+ return this.httpService.Get("User/all/x");
320
+ }
321
+ RegisterAccount(u) {
322
+ return this.httpService.Post("User/register", u);
323
+ }
324
+ GetUserByID(val) {
325
+ return this.httpService.Get(`User/id/${val}`);
326
+ }
327
+ UpdateUser(profile) {
328
+ return this.httpService.Post("User/edit", profile);
329
+ }
330
+ UnlockUser(user) {
331
+ return this.httpService.Post("User/unlock", user);
332
+ }
333
+ LockUser(user) {
334
+ return this.httpService.Post("User/lock", user);
335
+ }
336
+ DeleteUser(user) {
337
+ return this.httpService.Post("User/delete", user);
338
+ }
339
+ Login(u) {
340
+ return this.httpService.Post("User/login", u);
341
+ }
342
+ ChangePassword(u) {
343
+ return this.httpService.Post("User/changepassword-self", u);
344
+ }
345
+ ChangePasswordAdmin(u) {
346
+ return this.httpService.Post("User/changepassword-admin", u);
347
+ }
348
+ SelfReset(u) {
349
+ return this.httpService.Post("Basic/SelfReset", u);
350
+ }
351
+ //Roles
352
+ PostRole(role, action) {
353
+ return this.httpService.Post(`Role?action=${action}`, role);
354
+ }
355
+ PutRole(role) {
356
+ return this.httpService.Put("Role", role);
357
+ }
358
+ GetRole(by, val) {
359
+ return this.httpService.Get("Role/all/x");
360
+ }
361
+ //Logs
362
+ GetLog(by, val) {
363
+ return this.httpService.Get("Log/all/x");
364
+ }
365
+ //Settings
366
+ GetSetting(by, val) {
367
+ return this.httpService.Get("Setting/all/x");
368
+ }
369
+ UpdateSetting(setting, action) {
370
+ return this.httpService.Post(`Setting?action=${action}`, setting);
371
+ }
372
+ }
373
+ DataServiceLib.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DataServiceLib, deps: [{ token: i1.HttpService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
374
+ DataServiceLib.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DataServiceLib, providedIn: 'root' });
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DataServiceLib, decorators: [{
376
+ type: Injectable,
377
+ args: [{
378
+ providedIn: 'root'
379
+ }]
380
+ }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
381
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUIsU0FBUyxFQUFVLE9BQU8sRUFBaUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7O0FBT25ELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLFdBQXdCLEVBQVMsTUFBYyxFQUFVLEtBQXFCO1FBQTlFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBa0hsRyxjQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNwQixvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFNN0QsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUN2QixhQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDdkIsYUFBUSxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUN0QixnQkFBVyxHQUFHLElBQUksT0FBTyxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDN0IsZUFBVSxHQUFHLElBQUksT0FBTyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksT0FBTyxDQUFDO1FB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YXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbiwgQXBpUmVzcG9uc2UsIEFwcENvbmZpZywgQnV0dG9uLCBDYXBJdGVtLCBGb3JtQ29uZmlnLCBUYWJsZUNvbmZpZywgVXNlciB9IGZyb20gJy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhU2VydmljZUxpYiB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLCBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcblxyXG4gICAgdGhpcy5hcHBDb25maWcuYXBwTmFtZSA9IFwiQXBwLU5hbWVcIjtcclxuICAgIHRoaXMuYXBwQ29uZmlnLmxvZ28gPSBcIi4vYXNzZXRzL2xvZ28ucG5nXCJcclxuICAgIHRoaXMuYXBwQ29uZmlnLkFEQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmFwcENvbmZpZy5jYXBJdGVtcyA9IFt0aGlzLmNhcE11bHRpdGVuYW50LCB0aGlzLmNhcEFkbWluLCB0aGlzLmNhcEhvbWVdO1xyXG5cclxuXHJcbiAgICB0aGlzLmNhcEhvbWUubmFtZSA9IFwiY2FwMVwiO1xyXG4gICAgdGhpcy5jYXBIb21lLmRpc3BsYXkgPSBcIkhvbWVcIjtcclxuICAgIHRoaXMuY2FwSG9tZS5saW5rID0gXCJob21lXCI7XHJcbiAgICB0aGlzLmNhcEhvbWUuaWNvbiA9XCJob21lXCI7XHJcblxyXG5cclxuICAgIHRoaXMuY2FwQWRtaW4ubmFtZSA9IFwiY2FwMlwiO1xyXG4gICAgdGhpcy5jYXBBZG1pbi5kaXNwbGF5ID0gXCJBZG1pblwiO1xyXG4gICAgdGhpcy5jYXBBZG1pbi5pY29uID0gXCJzZWN1cml0eVwiXHJcbiAgICB0aGlzLmNhcEFkbWluLmNhcFN1Ykl0ZW1zID0gW3RoaXMuY2FwVXNlcnMsIHRoaXMuY2FwUm9sZXMsIHRoaXMuY2FwTG9ncywgdGhpcy5jYXBTZXR0aW5nc107XHJcblxyXG4gICAgdGhpcy5jYXBVc2Vycy5uYW1lID0gXCJjYXAzXCI7XHJcbiAgICB0aGlzLmNhcFVzZXJzLmRpc3BsYXkgPSBcIlVzZXJzXCI7XHJcbiAgICB0aGlzLmNhcFVzZXJzLmxpbmsgPSBcImhvbWUvYWRtaW4vdXNlcnNcIjtcclxuICAgIHRoaXMuY2FwVXNlcnMuaWNvbiA9IFwiZ3JvdXBcIjtcclxuXHJcbiAgICB0aGlzLmNhcFJvbGVzLm5hbWUgPSBcImNhcDRcIlxyXG4gICAgdGhpcy5jYXBSb2xlcy5kaXNwbGF5ID0gXCJSb2xlc1wiO1xyXG4gICAgdGhpcy5jYXBSb2xlcy5saW5rID0gXCJob21lL2FkbWluL3JvbGVzXCI7XHJcbiAgICB0aGlzLmNhcFJvbGVzLmljb24gPSBcIndvcmtcIjtcclxuXHJcbiAgICB0aGlzLmNhcExvZ3MubmFtZSA9IFwiY2FwNVwiXHJcbiAgICB0aGlzLmNhcExvZ3MuZGlzcGxheSA9IFwiTG9nc1wiO1xyXG4gICAgdGhpcy5jYXBMb2dzLmxpbmsgPSBcImhvbWUvYWRtaW4vbG9nc1wiO1xyXG4gICAgdGhpcy5jYXBMb2dzLmljb24gPSBcInRleHRfc25pcHBldFwiO1xyXG5cclxuICAgIHRoaXMuY2FwU2V0dGluZ3MubmFtZSA9IFwiY2FwNlwiXHJcbiAgICB0aGlzLmNhcFNldHRpbmdzLmRpc3BsYXkgPSBcIlNldHRpbmdzXCI7XHJcbiAgICB0aGlzLmNhcFNldHRpbmdzLmxpbmsgPSBcImhvbWUvYWRtaW4vc2V0dGluZ3NcIjtcclxuICAgIHRoaXMuY2FwU2V0dGluZ3MuaWNvbiA9XCJzZXR0aW5nc1wiO1xyXG5cclxuXHJcbiAgICB0aGlzLmNhcE11bHRpdGVuYW50Lm5hbWUgPSBcImNhcDdcIlxyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5kaXNwbGF5ID0gXCJNdWx0aXRlbmFudFwiO1xyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5pY29uID0gXCJhcGFydG1lbnRcIlxyXG4gICAgdGhpcy5jYXBNdWx0aXRlbmFudC5jYXBTdWJJdGVtcyA9IFt0aGlzLmNhcFRlbmFudHMsIHRoaXMuY2FwTWVtYmVyc2hpcCwgdGhpcy5jYXBQbGFucyBdO1xyXG5cclxuICAgIHRoaXMuY2FwVGVuYW50cy5uYW1lID0gXCJjYXA4XCJcclxuICAgIHRoaXMuY2FwVGVuYW50cy5kaXNwbGF5ID0gXCJUZW5hbnRzXCI7XHJcbiAgICB0aGlzLmNhcFRlbmFudHMubGluayA9IFwiaG9tZS9hZG1pbi90ZW5hbnRzXCI7XHJcblxyXG4gICAgdGhpcy5jYXBNZW1iZXJzaGlwLm5hbWUgPSBcImNhcDlcIlxyXG4gICAgdGhpcy5jYXBNZW1iZXJzaGlwLmRpc3BsYXkgPSBcIk1lbWJlcnNoaXBcIjtcclxuICAgIHRoaXMuY2FwTWVtYmVyc2hpcC5saW5rID0gXCJob21lL2FkbWluL21lbWJlcnNoaXBcIjtcclxuXHJcbiAgICB0aGlzLmNhcFBsYW5zLm5hbWUgPSBcImNhcDEwXCJcclxuICAgIHRoaXMuY2FwUGxhbnMuZGlzcGxheSA9IFwiUGxhbnNcIjtcclxuICAgIHRoaXMuY2FwUGxhbnMubGluayA9IFwiaG9tZS9hZG1pbi9wbGFuc1wiO1xyXG5cclxuXHJcbiAgICB0aGlzLmNhcEdlbmVyYWwubmFtZSA9IFwiY2FwMTFcIlxyXG4gICAgdGhpcy5jYXBHZW5lcmFsLmRpc3BsYXkgPSBcIkdlbmVyYWxcIjtcclxuICAgIHRoaXMuY2FwR2VuZXJhbC5jYXBTdWJJdGVtcyA9IFt0aGlzLmNhcEN1c3RvbWVycywgdGhpcy5jYXBJbnZlbnRvcnksIHRoaXMuY2FwQWNjb3VudHMsIHRoaXMuY2FwU3VwcGxpZXJzLCB0aGlzLmNhcFRhc2tzXTtcclxuXHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5uYW1lID0gXCJjYXAxMlwiXHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5kaXNwbGF5ID0gXCJDdXN0b21lcnNcIjtcclxuICAgIHRoaXMuY2FwQ3VzdG9tZXJzLmxpbmsgPSBcImhvbWUvYWRtaW4vY3VzdG9tZXJzXCI7XHJcbiAgICB0aGlzLmNhcEN1c3RvbWVycy5pY29uID0gXCJncm91cFwiXHJcblxyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkubmFtZSA9IFwiY2FwMTNcIlxyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkuZGlzcGxheSA9IFwiSW52ZW50b3J5XCI7XHJcbiAgICB0aGlzLmNhcEludmVudG9yeS5saW5rID0gXCJob21lL2FkbWluL2ludmVudG9yeVwiO1xyXG4gICAgdGhpcy5jYXBJbnZlbnRvcnkuaWNvbiA9IFwic3RvcmVmcm9udFwiXHJcblxyXG4gICAgdGhpcy5jYXBBY2NvdW50cy5uYW1lID0gXCJjYXAxNFwiXHJcbiAgICB0aGlzLmNhcEFjY291bnRzLmRpc3BsYXkgPSBcIkFjY291bnRzXCI7XHJcbiAgICB0aGlzLmNhcEFjY291bnRzLmxpbmsgPSBcImhvbWUvYWRtaW4vYWNjb3VudHNcIjtcclxuICAgIHRoaXMuY2FwQWNjb3VudHMuaWNvbiA9IFwiYWNjb3VudF9iYWxhbmNlX3dhbGxldFwiXHJcblxyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMubmFtZSA9IFwiY2FwMTVcIlxyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMuZGlzcGxheSA9IFwiU3VwcGxpZXJzXCI7XHJcbiAgICB0aGlzLmNhcFN1cHBsaWVycy5saW5rID0gXCJob21lL2FkbWluL3N1cHBsaWVyc1wiO1xyXG4gICAgdGhpcy5jYXBTdXBwbGllcnMuaWNvbiA9IFwiZ3JvdXBzXCJcclxuXHJcbiAgICB0aGlzLmNhcFRhc2tzLm5hbWUgPSBcImNhcDE2XCJcclxuICAgIHRoaXMuY2FwVGFza3MuZGlzcGxheSA9IFwiVGFza3NcIjtcclxuICAgIHRoaXMuY2FwVGFza3MubGluayA9IFwiaG9tZS9hZG1pbi90YXNrc1wiO1xyXG4gICAgdGhpcy5jYXBUYXNrcy5pY29uID0gXCJ0YXNrX2FsdFwiXHJcblxyXG5cclxuICAgIHRoaXMuY2FwSFIubmFtZSA9IFwiY2FwMTdcIlxyXG4gICAgdGhpcy5jYXBIUi5kaXNwbGF5ID0gXCJIUlwiO1xyXG4gICAgdGhpcy5jYXBIUi5saW5rID0gXCJob21lL2FkbWluL2hyXCI7XHJcbiAgICB0aGlzLmNhcEhSLmljb24gPSBcImRpdmVyc2l0eV8zXCJcclxuICAgIHRoaXMuY2FwSFIuY2FwU3ViSXRlbXMgPSBbdGhpcy5jYXBFbXBsb3llZXMsdGhpcy5jYXBEZXBhcnRtZW50cyx0aGlzLmNhcFBvc2l0aW9uc11cclxuXHJcbiAgICB0aGlzLmNhcEVtcGxveWVlcy5uYW1lID0gXCJjYXAxN1wiXHJcbiAgICB0aGlzLmNhcEVtcGxveWVlcy5kaXNwbGF5ID0gXCJFbXBsb3llZXNcIjtcclxuICAgIHRoaXMuY2FwRW1wbG95ZWVzLmxpbmsgPSBcImhvbWUvYWRtaW4vZW1wbG95ZWVzXCI7XHJcbiAgICB0aGlzLmNhcEVtcGxveWVlcy5pY29uID0gXCJncm91cFwiXHJcblxyXG4gICAgdGhpcy5jYXBEZXBhcnRtZW50cy5uYW1lID0gXCJjYXAxN1wiXHJcbiAgICB0aGlzLmNhcERlcGFydG1lbnRzLmRpc3BsYXkgPSBcIkRlcGFydG1lbnRzXCI7XHJcbiAgICB0aGlzLmNhcERlcGFydG1lbnRzLmxpbmsgPSBcImhvbWUvYWRtaW4vZGVwYXJ0bWVudHNcIjtcclxuICAgIHRoaXMuY2FwRGVwYXJ0bWVudHMuaWNvbiA9IFwiYnVzaW5lc3NfY2VudGVyXCJcclxuXHJcbiAgICB0aGlzLmNhcFBvc2l0aW9ucy5uYW1lID0gXCJjYXAxN1wiXHJcbiAgICB0aGlzLmNhcFBvc2l0aW9ucy5kaXNwbGF5ID0gXCJQb3NpdGlvbnNcIjtcclxuICAgIHRoaXMuY2FwUG9zaXRpb25zLmxpbmsgPSBcImhvbWUvYWRtaW4vcG9zaXRpb25zXCI7XHJcbiAgICB0aGlzLmNhcFBvc2l0aW9ucy5pY29uID0gXCJwaWN0dXJlX2luX3BpY3R1cmVfbWVkaXVtXCJcclxuXHJcblxyXG5cclxuICB9XHJcblxyXG5cclxuICBhcHBDb25maWcgPSBuZXcgQXBwQ29uZmlnKCk7XHJcbiAgcHJpdmF0ZSBhcHBDb25maWdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXBwQ29uZmlnKTtcclxuICBwdWJsaWMgYXBwQ29uZmlnT2JzZXJ2ID0gdGhpcy5hcHBDb25maWdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlQXBwQ29uZmlnKGNvbmZpZzogQXBwQ29uZmlnKSB7XHJcbiAgICB0aGlzLmFwcENvbmZpZ1NvdXJjZS5uZXh0KGNvbmZpZyk7XHJcbiAgICB0aGlzLmFwcENvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIGNhcEhvbWUgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBBZG1pbiA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFVzZXJzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwUm9sZXMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBMb2dzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwU2V0dGluZ3MgPSBuZXcgQ2FwSXRlbTtcclxuXHJcbiAgY2FwTXVsdGl0ZW5hbnQgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBUZW5hbnRzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwTWVtYmVyc2hpcCA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFBsYW5zID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIGNhcEdlbmVyYWwgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBDdXN0b21lcnMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBJbnZlbnRvcnkgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBBY2NvdW50cyA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFN1cHBsaWVycyA9IG5ldyBDYXBJdGVtO1xyXG4gIGNhcFRhc2tzID0gbmV3IENhcEl0ZW07XHJcblxyXG4gIGNhcEhSID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwRW1wbG95ZWVzID0gbmV3IENhcEl0ZW07XHJcbiAgY2FwRGVwYXJ0bWVudHMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBQb3NpdGlvbnMgPSBuZXcgQ2FwSXRlbTtcclxuICBjYXBHcmFkZXMgPSBuZXcgQ2FwSXRlbTtcclxuXHJcbiAgcHVibGljIHRtcFByb2ZpbGV1c2VyTmFtZSA9IFwiXCI7XHJcblxyXG5cclxuICBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcblxyXG5cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRW1wbG95ZWVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGxvYWRFbXBsb3llZXNNZXRhKCkge1xyXG4gICAgdGhpcy5DYWxsQXBpKHsgdXJsOiAnZ2VuZXJhbC9lbXBsb3llZXNtZXRhL3gnIH0sIFwiXCIpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2U6IEFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZWVGb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdkZXBhcnRtZW50SUQnKS5vcHRpb25zID0gYXBpUmVzcG9uc2UuZGF0YS5kZXBhcnRtZW50c1xyXG4gICAgICB0aGlzLmVtcGxveWVlRm9ybUNvbmZpZy5maWVsZHMuZmluZCh4ID0+IHgubmFtZSA9PSAncG9zaXRpb25JRCcpLm1hc3Rlck9wdGlvbnMgPSBhcGlSZXNwb25zZS5kYXRhLnBvc2l0aW9uc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5kZXJzID0gW1xyXG4gICAgeyBuYW1lOiAnTWFsZScsIHZhbHVlOiAxIH0sXHJcbiAgICB7IG5hbWU6ICdGZW1hbGUnLCB2YWx1ZTogMiB9XHJcbiAgXVxyXG5cclxuICBlbXBsb3llZUZvcm1Db25maWc6IEZvcm1Db25maWcgPSB7XHJcbiAgICBmaWVsZHM6IFtcclxuICAgICAgeyBuYW1lOiAnbmF0aW9uYWxJRCcsIHR5cGU6ICd0ZXh0JywgYWxpYXMgOiAnTmF0aW9uYWwgSUQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICB7IG5hbWU6ICdnZW5kZXInLCBhbGlhczogJ0dlbmRlcicsIHR5cGU6ICdzZWxlY3QnLCBvcHRpb25zOiB0aGlzLmdlbmRlcnMsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2ZpcnN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnbGFzdE5hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlcGFydG1lbnRJRCcsIGFsaWFzOiAnRGVwYXJ0bWVudCcsIHR5cGU6ICdzZWxlY3QnLCBvcHRpb25zOiBbXSwgb3B0aW9uRGlzcGxheTogJ25hbWUnLCBvcHRpb25WYWx1ZTogJ2RlcGFydG1lbnRJRCcgfSxcclxuICAgICAgeyBuYW1lOiAncG9zaXRpb25JRCcsIGFsaWFzOiAnUG9zaXRpb24nLCB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW10sIG9wdGlvbkRpc3BsYXk6ICduYW1lJywgb3B0aW9uVmFsdWU6ICdwb3NpdGlvbklEJywgbWFzdGVyRmllbGQ6ICdkZXBhcnRtZW50SUQnLCB9LFxyXG4gICAgICB7IG5hbWU6ICdhZGRyZXNzJywgdHlwZTogJ3RleHQnLCByb3dzOiAyLCBzcGFuOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ3Bob25lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25vdGUnLCB0eXBlOiAndGV4dCcsIHJvd3M6IDIsIHNwYW46IHRydWUgfSxcclxuICAgIF0sXHJcbiAgfVxyXG5cclxuICBlbXBsb3llZVRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnLCAnZGVwYXJ0bWVudE5hbWUnLCAncG9zaXRpb25OYW1lJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdHJ1ZSxcclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZW1wbG95ZWVJRCcsIHR5cGU6ICdudW1iZXInLCBhbGlhczogJ0lEJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25hdGlvbmFsSUQnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnZ2VuZGVyTmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdkZXBhcnRtZW50TmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdwb3NpdGlvbk5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgIF0sXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdnZW5lcmFsL2VtcGxveWVlcz9hY3Rpb249Y3JlYXRlJywgbWV0aG9kOiAncG9zdCcgfSB9LFxyXG4gICAgICB7IG5hbWU6ICd2aWV3JywgZGlhbG9nOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdnZW5lcmFsL2VtcGxveWVlcz9hY3Rpb249ZWRpdCcsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnZ2VuZXJhbC9lbXBsb3llZXM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2dlbmVyYWwvZW1wbG95ZWVzL3gnIH0sXHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLmVtcGxveWVlRm9ybUNvbmZpZ1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1Qb3NpdGlvbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIGxvYWRQb3NpdGlvbk1ldGEoKSB7XHJcbiAgICAvLyB0aGlzLkNhbGxBcGkoeyB1cmw6ICdwb3NpdGlvbnMvbWV0YS94JyB9LCBcIlwiKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnBvc2l0aW9uRm9ybUNvbmZpZy5maWVsZHMuZmluZCh4ID0+IHgubmFtZSA9PSAnZGVwYXJ0bWVudElEJykub3B0aW9ucyA9IGFwaVJlc3BvbnNlLmRhdGEuZGVwYXJ0bWVudHM7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uRm9ybUNvbmZpZzogRm9ybUNvbmZpZyA9IHtcclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICAvLyB7IG5hbWU6ICdkZXBhcnRtZW50SUQnLCBhbGlhczogJ0RlcGFydG1lbnQnLCB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW10sIG9wdGlvbkRpc3BsYXk6ICduYW1lJywgb3B0aW9uVmFsdWU6ICdkZXBhcnRtZW50SUQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgdHlwZTogJ3RleHQnLCBzcGFuOiB0cnVlIH0sXHJcblxyXG4gICAgXSxcclxuICAgIGxvYWRBY3Rpb246IHsgdXJsOiAncG9zaXRpb25zL2lkJyB9LFxyXG4gIH1cclxuXHJcbiAgZWRpdFBvc2l0aW9uQnV0dG9uOiBCdXR0b24gPSB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAncG9zaXRpb25zP2FjdGlvbj1lZGl0JywgbWV0aG9kOiAncG9zdCcsIHN1Y2Nlc3NNZXNzYWdlOiAnRWRpdGVkIFN1Y2Nlc3NmdWxseScgfSB9XHJcblxyXG4gIHBvc2l0aW9uVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsnbmFtZScsICdkZXBhcnRtZW50TmFtZScsICdzYWxhcnknXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICdwb3NpdGlvbklEJywgdHlwZTogJ251bWJlcicsIGFsaWFzOiAnSUQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgLy8geyBuYW1lOiAnZGVwYXJ0bWVudE5hbWUnLCB0eXBlOiAndGV4dCcsIGFsaWFzOiAnRGVwYXJ0bWVudCcgfSxcclxuICAgIF0sXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZScsIGRpc3BsYXk6ICdDcmVhdGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICd2aWV3JyxcclxuICAgICAgICBkaWFsb2c6IHRydWUsXHJcbiAgICAgICAgZGV0YWlsc0NvbmZpZzoge1xyXG4gICAgICAgICAgZm9ybUNvbmZpZzogeyAuLi50aGlzLnBvc2l0aW9uRm9ybUNvbmZpZywgZmllbGRzOiB0aGlzLnBvc2l0aW9uRm9ybUNvbmZpZy5maWVsZHMuZmlsdGVyKHggPT4geC5uYW1lICE9ICdkZXBhcnRtZW50SUQnKSB9LFxyXG4gICAgICAgICAgaGVyb0ZpZWxkOiAncG9zaXRpb25JRCcsXHJcbiAgICAgICAgICBidXR0b25zOiBbdGhpcy5lZGl0UG9zaXRpb25CdXR0b25dLFxyXG4gICAgICAgICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAuLi50aGlzLmVtcGxveWVlVGFibGVDb25maWcsXHJcbiAgICAgICAgICAgICAgbG9hZEFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnMvZW1wbG95ZWVzL3gnIH0sXHJcbiAgICAgICAgICAgICAgbG9hZENyaXRlcmlhOiAnZW1wbG95ZWVzJyxcclxuICAgICAgICAgICAgICBsb2FkSURGaWVsZDogJ3Bvc2l0aW9uSUQnLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiAnRW1wbG95ZWVzJyxcclxuICAgICAgICAgICAgICBlbGV2YXRpb246ICdub25lJyxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuZWRpdFBvc2l0aW9uQnV0dG9uLFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdwb3NpdGlvbnM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ3Bvc2l0aW9ucy9hbGwveCcgfSxcclxuICAgIGZvcm1Db25maWc6IHRoaXMucG9zaXRpb25Gb3JtQ29uZmlnXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLURlcGFydG1lbnRzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGRlcGFydG1lbnRGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sXHJcbiAgICBdLFxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICdkZXBhcnRtZW50cy9pZCcgfSxcclxuICB9XHJcblxyXG4gIGVkaXREZXBhcnRtZW50QnV0dG9uOiBCdXR0b24gPSB7IG5hbWU6ICdlZGl0JywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnZGVwYXJ0bWVudHM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0Jywgc3VjY2Vzc01lc3NhZ2U6ICdFZGl0ZWQgU3VjY2Vzc2Z1bGx5JyB9IH1cclxuXHJcbiAgZGVwYXJ0bWVudFRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuICAgIHNob3dGaWx0ZXI6IHRydWUsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ25hbWUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICdkZXBhcnRtZW50SUQnLCB0eXBlOiAnbnVtYmVyJywgYWxpYXM6ICdJRCcgfSxcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ0NyZWF0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzP2FjdGlvbj1jcmVhdGUnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAndmlldycsXHJcbiAgICAgICAgZGlhbG9nOiB0cnVlLFxyXG4gICAgICAgIGRldGFpbHNDb25maWc6IHtcclxuICAgICAgICAgIGZvcm1Db25maWc6IHRoaXMuZGVwYXJ0bWVudEZvcm1Db25maWcsXHJcbiAgICAgICAgICBoZXJvRmllbGQ6ICdkZXBhcnRtZW50SUQnLFxyXG4gICAgICAgICAgYnV0dG9uczogW3RoaXMuZWRpdERlcGFydG1lbnRCdXR0b25dLFxyXG4gICAgICAgICAgdGFibGVDb25maWdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAuLi50aGlzLmVtcGxveWVlVGFibGVDb25maWcsXHJcbiAgICAgICAgICAgICAgbG9hZEFjdGlvbjogeyB1cmw6ICdkZXBhcnRtZW50cy9lbXBsb3llZXMveCcgfSxcclxuICAgICAgICAgICAgICBsb2FkQ3JpdGVyaWE6ICdlbXBsb3llZXMnLFxyXG4gICAgICAgICAgICAgIGxvYWRJREZpZWxkOiAnZGVwYXJ0bWVudElEJyxcclxuICAgICAgICAgICAgICB0aXRsZTogJ0VtcGxveWVlcycsXHJcbiAgICAgICAgICAgICAgZWxldmF0aW9uOiAnbm9uZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBvc2l0aW9uVGFibGVDb25maWcsXHJcbiAgICAgICAgICAgICAgbG9hZEFjdGlvbjogeyB1cmw6ICdkZXBhcnRtZW50cy9wb3NpdGlvbnMveCcgfSxcclxuICAgICAgICAgICAgICBsb2FkQ3JpdGVyaWE6ICdwb3NpdGlvbnMnLFxyXG4gICAgICAgICAgICAgIGxvYWRJREZpZWxkOiAnZGVwYXJ0bWVudElEJyxcclxuICAgICAgICAgICAgICB0aXRsZTogJ1Bvc2l0aW9ucycsXHJcbiAgICAgICAgICAgICAgZWxldmF0aW9uOiAnbm9uZScsXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGhpcy5lZGl0RGVwYXJ0bWVudEJ1dHRvbixcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAnZGVwYXJ0bWVudHM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ2RlcGFydG1lbnRzL2FsbC94JyB9LFxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy5kZXBhcnRtZW50Rm9ybUNvbmZpZ1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tT3RoZXIgY29kZVxyXG5cclxuICBwdWJsaWMgQ2FsbEFwaShhY3Rpb246IEFjdGlvbiwgZGF0YTogYW55ID0gJycgKSB7XHJcblxyXG4gICAgaWYgKCFhY3Rpb24ubWV0aG9kKXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuR2V0KGFjdGlvbi51cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGFjdGlvbi5tZXRob2QgPT0nZ2V0Jyl7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChhY3Rpb24udXJsKTtcclxuICAgIH0gZWxzZSBpZiAoYWN0aW9uLm1ldGhvZCA9PSAncG9zdCcpe1xyXG5cclxuICAgICAgaWYgKGFjdGlvbi5pc0Zvcm1EYXRhKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0X0Zvcm1EYXRhKGFjdGlvbi51cmwsIGRhdGEpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KGFjdGlvbi51cmwsIGRhdGEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChhY3Rpb24udXJsLCBkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2hlY2tXZWxjb21lZChwYXRoOiBzdHJpbmcgPSAnaG9tZS9hZG1pbi93ZWxjb21lJykge1xyXG4gICAgdGhpcy5DYWxsQXBpKHsgdXJsOiAndGVuYW50L3dlbGNvbWUveCcgfSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5kYXRhKSB7XHJcbiAgICAgICAgdGhpcy5OYXZpZ2F0ZShwYXRoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBwdWJsaWMgTmF2aWdhdGUocGF0aDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aF0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE5hdmlnYXRlV2l0aFZhbHVlKHBhdGg6IHN0cmluZywgdmFsdWUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHY6IHZhbHVlIH0sXHJcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXHJcbiAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE5hdmlnYXRpb25WYWx1ZSgpe1xyXG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJ2XCJdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInZcIl1cclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0bXBBY2NvdW50SUQ7XHJcblxyXG5cclxuXHJcbiAgLy9Vc2Vyc1xyXG4gIHB1YmxpYyBHZXRVc2VyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuR2V0KFwiVXNlci9hbGwveFwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZWdpc3RlckFjY291bnQodSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvcmVnaXN0ZXJcIiwgdSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VXNlckJ5SUQodmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChgVXNlci9pZC8ke3ZhbH1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVVc2VyKHByb2ZpbGUpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL2VkaXRcIiwgcHJvZmlsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVW5sb2NrVXNlcih1c2VyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci91bmxvY2tcIiwgdXNlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9ja1VzZXIodXNlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvbG9ja1wiLCB1c2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEZWxldGVVc2VyKHVzZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLlBvc3QoXCJVc2VyL2RlbGV0ZVwiLCB1c2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dpbih1OiBVc2VyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci9sb2dpblwiLCB1KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDaGFuZ2VQYXNzd29yZCh1KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5Qb3N0KFwiVXNlci9jaGFuZ2VwYXNzd29yZC1zZWxmXCIsIHUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENoYW5nZVBhc3N3b3JkQWRtaW4odSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIlVzZXIvY2hhbmdlcGFzc3dvcmQtYWRtaW5cIiwgdSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VsZlJlc2V0KHU6IFVzZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChcIkJhc2ljL1NlbGZSZXNldFwiLCB1KTtcclxuICB9XHJcblxyXG5cclxuICAvL1JvbGVzXHJcblxyXG4gIHB1YmxpYyBQb3N0Um9sZShyb2xlLCBhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChgUm9sZT9hY3Rpb249JHthY3Rpb259YCwgcm9sZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUHV0Um9sZShyb2xlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5QdXQoXCJSb2xlXCIsIHJvbGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFJvbGUoYnk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIlJvbGUvYWxsL3hcIik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vTG9nc1xyXG4gIHB1YmxpYyBHZXRMb2coYnk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIkxvZy9hbGwveFwiKTtcclxuICB9XHJcblxyXG5cclxuICAvL1NldHRpbmdzXHJcbiAgcHVibGljIEdldFNldHRpbmcoYnk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLkdldChcIlNldHRpbmcvYWxsL3hcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlU2V0dGluZyhzZXR0aW5nLCBhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuUG9zdChgU2V0dGluZz9hY3Rpb249JHthY3Rpb259YCwgc2V0dGluZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/dialog";
4
+ import * as i2 from "@angular/cdk/layout";
5
+ export class DialogService {
6
+ constructor(dialog, breakpointObserver) {
7
+ this.dialog = dialog;
8
+ this.breakpointObserver = breakpointObserver;
9
+ this.smallScreen = false;
10
+ // Detect screen size changes
11
+ this.breakpointObserver.observe(["(max-width: 600px)"]).subscribe((result) => {
12
+ this.smallScreen = result.matches;
13
+ });
14
+ }
15
+ openDetailsDialog(config, dialogComponent) {
16
+ const hasTables = config.tableConfigs?.length > 0;
17
+ const dialogOptions = {
18
+ width: this.smallScreen ? '900px' : (hasTables ? '90%' : '900px'),
19
+ height: hasTables ? '90%' : 'auto',
20
+ data: config
21
+ };
22
+ const dialogRef = this.dialog.open(dialogComponent, dialogOptions);
23
+ return {
24
+ afterClosed: dialogRef.afterClosed(),
25
+ inputChange: dialogRef.componentInstance.inputChange,
26
+ dialogRef: dialogRef
27
+ };
28
+ }
29
+ }
30
+ DialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }, { token: i2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ DialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogService, providedIn: 'root' });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogService, decorators: [{
33
+ type: Injectable,
34
+ args: [{
35
+ providedIn: 'root'
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.BreakpointObserver }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUNVLE1BQWlCLEVBQ2pCLGtCQUFzQztRQUR0QyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFKeEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFNMUIsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQzVGLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FDZixNQUEyQixFQUMzQixlQUEwQztRQU0xQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFbEQsTUFBTSxhQUFhLEdBQUc7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUNsQyxJQUFJLEVBQUUsTUFBTTtTQUNiLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFbkUsT0FBTztZQUNMLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFO1lBQ3BDLFdBQVcsRUFBRyxTQUFTLENBQUMsaUJBQXlCLENBQUMsV0FBVztZQUM3RCxTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7MEdBcENVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEZXRhaWxzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuLy8gaW1wb3J0IHsgRGV0YWlsc0RpYWxvZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvdGFibGUvZGV0YWlsc0RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzbWFsbFNjcmVlbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXHJcbiAgKSB7XHJcbiAgICAvLyBEZXRlY3Qgc2NyZWVuIHNpemUgY2hhbmdlc1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbXCIobWF4LXdpZHRoOiA2MDBweClcIl0pLnN1YnNjcmliZSgocmVzdWx0OiBCcmVha3BvaW50U3RhdGUpID0+IHtcclxuICAgICAgdGhpcy5zbWFsbFNjcmVlbiA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuRGV0YWlsc0RpYWxvZzxUPihcclxuICAgIGNvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyxcclxuICAgIGRpYWxvZ0NvbXBvbmVudDogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVFxyXG4gICk6IHtcclxuICAgIGFmdGVyQ2xvc2VkOiBPYnNlcnZhYmxlPGFueT4sXHJcbiAgICBpbnB1dENoYW5nZTogT2JzZXJ2YWJsZTxhbnk+LFxyXG4gICAgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VD5cclxuICB9IHtcclxuICAgIGNvbnN0IGhhc1RhYmxlcyA9IGNvbmZpZy50YWJsZUNvbmZpZ3M/Lmxlbmd0aCA+IDA7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgd2lkdGg6IHRoaXMuc21hbGxTY3JlZW4gPyAnOTAwcHgnIDogKGhhc1RhYmxlcyA/ICc5MCUnIDogJzkwMHB4JyksXHJcbiAgICAgIGhlaWdodDogaGFzVGFibGVzID8gJzkwJScgOiAnYXV0bycsXHJcbiAgICAgIGRhdGE6IGNvbmZpZ1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGRpYWxvZ0NvbXBvbmVudCwgZGlhbG9nT3B0aW9ucyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWZ0ZXJDbG9zZWQ6IGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLFxyXG4gICAgICBpbnB1dENoYW5nZTogKGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSBhcyBhbnkpLmlucHV0Q2hhbmdlLFxyXG4gICAgICBkaWFsb2dSZWY6IGRpYWxvZ1JlZlxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,26 @@
1
+ // table-config.service.ts
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class TableConfigService {
5
+ setColumns(config, smallScreen) {
6
+ if (!config?.columns) {
7
+ return [];
8
+ }
9
+ if (smallScreen && config.minColumns) {
10
+ return config.minColumns.filter(col => config.columns.some(x => x.name === col));
11
+ }
12
+ return config.columns.map(({ name }) => name);
13
+ }
14
+ getActionsWidth(buttons) {
15
+ return `${buttons?.length * 40 + 20}px`;
16
+ }
17
+ }
18
+ TableConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ TableConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableConfigService, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableConfigService, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root'
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvdGFibGUtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsVUFBVSxDQUFDLE1BQW1CLEVBQUUsV0FBb0I7UUFFbEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDcEIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDcEMsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQ3pDLENBQUM7U0FDSDtRQUVELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWlCO1FBQy9CLE9BQU8sR0FBRyxPQUFPLEVBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztJQUMxQyxDQUFDOzsrR0FuQlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGFibGUtY29uZmlnLnNlcnZpY2UudHNcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b24sIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIHNldENvbHVtbnMoY29uZmlnOiBUYWJsZUNvbmZpZywgc21hbGxTY3JlZW46IGJvb2xlYW4pOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgaWYgKCFjb25maWc/LmNvbHVtbnMpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzbWFsbFNjcmVlbiAmJiBjb25maWcubWluQ29sdW1ucykge1xyXG4gICAgICByZXR1cm4gY29uZmlnLm1pbkNvbHVtbnMuZmlsdGVyKGNvbCA9PlxyXG4gICAgICAgIGNvbmZpZy5jb2x1bW5zLnNvbWUoeCA9PiB4Lm5hbWUgPT09IGNvbClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29uZmlnLmNvbHVtbnMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpb25zV2lkdGgoYnV0dG9uczogQnV0dG9uW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2J1dHRvbnM/Lmxlbmd0aCAqIDQwICsgMjB9cHhgO1xyXG4gIH1cclxufVxyXG4iXX0=