gunsmith-common 2.2.3 → 2.2.5

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 (244) hide show
  1. package/esm2020/gunsmith-common.mjs +4 -4
  2. package/esm2020/notification/fade-out.animation.mjs +10 -10
  3. package/esm2020/notification/index.mjs +4 -4
  4. package/esm2020/notification/notification-bar/notification-bar.component.mjs +43 -43
  5. package/esm2020/notification/notification-message.mjs +3 -3
  6. package/esm2020/notification/notification-type.enum.mjs +6 -6
  7. package/esm2020/notification/notification.module.mjs +26 -26
  8. package/esm2020/notification/notification.service.mjs +21 -21
  9. package/esm2020/public_api.mjs +13 -13
  10. package/esm2020/shared/controls/package-selector/package-selector.component.mjs +172 -172
  11. package/esm2020/shared/directives/disable-control.directive.mjs +24 -24
  12. package/esm2020/shared/directives/index.mjs +3 -3
  13. package/esm2020/shared/directives/refinish-details-validators.mjs +45 -45
  14. package/esm2020/shared/pipes/enum.pipe.mjs +16 -16
  15. package/esm2020/shared/pipes/file-name.pipe.mjs +16 -16
  16. package/esm2020/shared/pipes/frame-material.pipe.mjs +24 -24
  17. package/esm2020/shared/pipes/index.mjs +6 -6
  18. package/esm2020/shared/pipes/new-line.pipe.mjs +16 -16
  19. package/esm2020/shared/pipes/phone.pipe.mjs +19 -19
  20. package/esm2020/shared/services/coating.service.mjs +63 -63
  21. package/esm2020/shared/services/configuration.service.mjs +29 -29
  22. package/esm2020/shared/services/customer.service.mjs +47 -47
  23. package/esm2020/shared/services/dealer.service.mjs +45 -45
  24. package/esm2020/shared/services/file-upload.service.mjs +39 -39
  25. package/esm2020/shared/services/firearm-series.service.mjs +45 -45
  26. package/esm2020/shared/services/firearm.service.mjs +48 -48
  27. package/esm2020/shared/services/gun-part.service.mjs +52 -52
  28. package/esm2020/shared/services/index.mjs +27 -27
  29. package/esm2020/shared/services/inventory.service.mjs +38 -38
  30. package/esm2020/shared/services/material.service.mjs +30 -30
  31. package/esm2020/shared/services/milling-type.service.mjs +53 -53
  32. package/esm2020/shared/services/optic.service.mjs +42 -42
  33. package/esm2020/shared/services/package.service.mjs +47 -47
  34. package/esm2020/shared/services/product.service.mjs +29 -29
  35. package/esm2020/shared/services/purchase-order.service.mjs +87 -87
  36. package/esm2020/shared/services/refinish-code.service.mjs +35 -35
  37. package/esm2020/shared/services/state.service.mjs +26 -26
  38. package/esm2020/shared/services/status-history.service.mjs +40 -40
  39. package/esm2020/shared/services/totals.service.mjs +50 -50
  40. package/esm2020/shared/services/user.service.mjs +26 -26
  41. package/esm2020/shared/services/vendor.service.mjs +42 -42
  42. package/esm2020/shared/services/waitlist-customer.service.mjs +38 -38
  43. package/esm2020/shared/services/waitlist-project.service.mjs +38 -38
  44. package/esm2020/shared/services/waitlist.service.mjs +86 -86
  45. package/esm2020/shared/services/work-holiday.service.mjs +32 -32
  46. package/esm2020/shared/services/work-order.service.mjs +195 -187
  47. package/esm2020/shared/shared.module.mjs +67 -67
  48. package/esm2020/shared/types/bundle-item.mjs +6 -6
  49. package/esm2020/shared/types/change-order-status.mjs +9 -9
  50. package/esm2020/shared/types/coating-value.mjs +6 -6
  51. package/esm2020/shared/types/coating.mjs +8 -8
  52. package/esm2020/shared/types/configuration.mjs +3 -3
  53. package/esm2020/shared/types/customer.mjs +6 -6
  54. package/esm2020/shared/types/dealer-contact.mjs +3 -3
  55. package/esm2020/shared/types/dealer-coupon.mjs +3 -3
  56. package/esm2020/shared/types/dealer.mjs +8 -8
  57. package/esm2020/shared/types/filter-options.mjs +9 -9
  58. package/esm2020/shared/types/firearm-series-optic.mjs +9 -9
  59. package/esm2020/shared/types/firearm-series.mjs +10 -10
  60. package/esm2020/shared/types/firearm.mjs +6 -6
  61. package/esm2020/shared/types/frame-material.mjs +8 -8
  62. package/esm2020/shared/types/gun-caliber.mjs +7 -7
  63. package/esm2020/shared/types/gun-part-option.mjs +3 -3
  64. package/esm2020/shared/types/gun-part.mjs +11 -11
  65. package/esm2020/shared/types/index.mjs +68 -67
  66. package/esm2020/shared/types/inventory-item.mjs +6 -6
  67. package/esm2020/shared/types/j-file.mjs +3 -3
  68. package/esm2020/shared/types/material.mjs +6 -6
  69. package/esm2020/shared/types/milling-detail.mjs +7 -7
  70. package/esm2020/shared/types/milling-item.mjs +3 -3
  71. package/esm2020/shared/types/milling-type.mjs +6 -6
  72. package/esm2020/shared/types/mount-type.mjs +9 -9
  73. package/esm2020/shared/types/optic-status.mjs +7 -7
  74. package/esm2020/shared/types/optic.mjs +7 -7
  75. package/esm2020/shared/types/package-item.mjs +3 -3
  76. package/esm2020/shared/types/package-optional-item.mjs +3 -3
  77. package/esm2020/shared/types/package-total.mjs +3 -3
  78. package/esm2020/shared/types/package-variation-option.mjs +3 -3
  79. package/esm2020/shared/types/package-variation.mjs +6 -6
  80. package/esm2020/shared/types/package.mjs +10 -10
  81. package/esm2020/shared/types/product.mjs +3 -3
  82. package/esm2020/shared/types/project-type.mjs +7 -7
  83. package/esm2020/shared/types/purchase-order-refinish-item.mjs +3 -3
  84. package/esm2020/shared/types/purchase-order-status.mjs +8 -8
  85. package/esm2020/shared/types/purchase-order.mjs +9 -9
  86. package/esm2020/shared/types/rear-sight-position.mjs +6 -6
  87. package/esm2020/shared/types/refinish-code.mjs +3 -3
  88. package/esm2020/shared/types/refinish-detail.mjs +3 -3
  89. package/esm2020/shared/types/report-milling-item.mjs +3 -3
  90. package/esm2020/shared/types/report-refinish-item.mjs +3 -3
  91. package/esm2020/shared/types/shield-rms-options.mjs +6 -6
  92. package/esm2020/shared/types/sight-type.mjs +7 -7
  93. package/esm2020/shared/types/state.mjs +3 -3
  94. package/esm2020/shared/types/total-item.mjs +3 -3
  95. package/esm2020/shared/types/total.mjs +3 -3
  96. package/esm2020/shared/types/vendor-contact.mjs +3 -3
  97. package/esm2020/shared/types/vendor.mjs +7 -7
  98. package/esm2020/shared/types/waitlist-action.mjs +9 -9
  99. package/esm2020/shared/types/waitlist-gun-package-detail.mjs +7 -7
  100. package/esm2020/shared/types/waitlist-gun.mjs +12 -12
  101. package/esm2020/shared/types/waitlist-history.mjs +3 -3
  102. package/esm2020/shared/types/waitlist-item.mjs +12 -12
  103. package/esm2020/shared/types/waitlist-status.mjs +15 -15
  104. package/esm2020/shared/types/work-change-order.mjs +3 -3
  105. package/esm2020/shared/types/work-holiday.mjs +3 -3
  106. package/esm2020/shared/types/work-order-action.mjs +7 -7
  107. package/esm2020/shared/types/work-order-history.mjs +3 -3
  108. package/esm2020/shared/types/work-order-inventory-item.mjs +3 -3
  109. package/esm2020/shared/types/work-order-list-item.mjs +3 -0
  110. package/esm2020/shared/types/work-order-package-detail.mjs +7 -7
  111. package/esm2020/shared/types/work-order-refinish-item.mjs +3 -3
  112. package/esm2020/shared/types/work-order-status.mjs +18 -18
  113. package/esm2020/shared/types/work-order-type.mjs +8 -8
  114. package/esm2020/shared/types/work-order.mjs +18 -18
  115. package/esm2020/shared/utils/coating-helpers.mjs +22 -22
  116. package/esm2020/shared/utils/enum-object.mjs +10 -10
  117. package/esm2020/shared/utils/finish-date-calculator.mjs +30 -30
  118. package/esm2020/shared/utils/index.mjs +5 -5
  119. package/esm2020/shared/utils/invalid-form-control-toucher.mjs +7 -7
  120. package/fesm2015/gunsmith-common.mjs +2019 -2008
  121. package/fesm2015/gunsmith-common.mjs.map +1 -1
  122. package/fesm2020/gunsmith-common.mjs +1965 -1954
  123. package/fesm2020/gunsmith-common.mjs.map +1 -1
  124. package/gunsmith-common-2.2.5.tgz +0 -0
  125. package/gunsmith-common.d.ts +5 -5
  126. package/notification/fade-out.animation.d.ts +2 -2
  127. package/notification/index.d.ts +3 -3
  128. package/notification/notification-bar/notification-bar.component.d.ts +18 -18
  129. package/notification/notification-message.d.ts +6 -6
  130. package/notification/notification-type.enum.d.ts +4 -4
  131. package/notification/notification.module.d.ts +8 -8
  132. package/notification/notification.service.d.ts +12 -12
  133. package/package.json +1 -1
  134. package/public_api.d.ts +9 -9
  135. package/shared/controls/package-selector/package-selector.component.d.ts +39 -39
  136. package/shared/directives/disable-control.directive.d.ts +9 -9
  137. package/shared/directives/index.d.ts +2 -2
  138. package/shared/directives/refinish-details-validators.d.ts +4 -4
  139. package/shared/pipes/enum.pipe.d.ts +7 -7
  140. package/shared/pipes/file-name.pipe.d.ts +7 -7
  141. package/shared/pipes/frame-material.pipe.d.ts +11 -11
  142. package/shared/pipes/index.d.ts +5 -5
  143. package/shared/pipes/new-line.pipe.d.ts +7 -7
  144. package/shared/pipes/phone.pipe.d.ts +7 -7
  145. package/shared/services/coating.service.d.ts +22 -22
  146. package/shared/services/configuration.service.d.ts +14 -14
  147. package/shared/services/customer.service.d.ts +17 -17
  148. package/shared/services/dealer.service.d.ts +19 -19
  149. package/shared/services/file-upload.service.d.ts +14 -14
  150. package/shared/services/firearm-series.service.d.ts +18 -18
  151. package/shared/services/firearm.service.d.ts +20 -20
  152. package/shared/services/gun-part.service.d.ts +18 -18
  153. package/shared/services/index.d.ts +26 -26
  154. package/shared/services/inventory.service.d.ts +15 -15
  155. package/shared/services/material.service.d.ts +13 -13
  156. package/shared/services/milling-type.service.d.ts +18 -18
  157. package/shared/services/optic.service.d.ts +17 -17
  158. package/shared/services/package.service.d.ts +16 -16
  159. package/shared/services/product.service.d.ts +15 -15
  160. package/shared/services/purchase-order.service.d.ts +27 -27
  161. package/shared/services/refinish-code.service.d.ts +16 -16
  162. package/shared/services/state.service.d.ts +13 -13
  163. package/shared/services/status-history.service.d.ts +14 -14
  164. package/shared/services/totals.service.d.ts +15 -15
  165. package/shared/services/user.service.d.ts +12 -12
  166. package/shared/services/vendor.service.d.ts +17 -17
  167. package/shared/services/waitlist-customer.service.d.ts +15 -15
  168. package/shared/services/waitlist-project.service.d.ts +17 -17
  169. package/shared/services/waitlist.service.d.ts +25 -25
  170. package/shared/services/work-holiday.service.d.ts +15 -15
  171. package/shared/services/work-order.service.d.ts +53 -51
  172. package/shared/shared.module.d.ts +16 -16
  173. package/shared/types/bundle-item.d.ts +11 -11
  174. package/shared/types/change-order-status.d.ts +7 -7
  175. package/shared/types/coating-value.d.ts +6 -6
  176. package/shared/types/coating.d.ts +11 -11
  177. package/shared/types/configuration.d.ts +11 -11
  178. package/shared/types/customer.d.ts +14 -14
  179. package/shared/types/dealer-contact.d.ts +9 -9
  180. package/shared/types/dealer-coupon.d.ts +5 -5
  181. package/shared/types/dealer.d.ts +24 -24
  182. package/shared/types/filter-options.d.ts +6 -6
  183. package/shared/types/firearm-series-optic.d.ts +12 -12
  184. package/shared/types/firearm-series.d.ts +11 -11
  185. package/shared/types/firearm.d.ts +10 -10
  186. package/shared/types/frame-material.d.ts +6 -6
  187. package/shared/types/gun-caliber.d.ts +5 -5
  188. package/shared/types/gun-part-option.d.ts +9 -9
  189. package/shared/types/gun-part.d.ts +13 -13
  190. package/shared/types/index.d.ts +67 -66
  191. package/shared/types/inventory-item.d.ts +9 -9
  192. package/shared/types/j-file.d.ts +5 -5
  193. package/shared/types/material.d.ts +6 -6
  194. package/shared/types/milling-detail.d.ts +19 -19
  195. package/shared/types/milling-item.d.ts +8 -8
  196. package/shared/types/milling-type.d.ts +10 -10
  197. package/shared/types/mount-type.d.ts +7 -7
  198. package/shared/types/optic-status.d.ts +5 -5
  199. package/shared/types/optic.d.ts +7 -7
  200. package/shared/types/package-item.d.ts +9 -9
  201. package/shared/types/package-optional-item.d.ts +6 -6
  202. package/shared/types/package-total.d.ts +5 -5
  203. package/shared/types/package-variation-option.d.ts +10 -10
  204. package/shared/types/package-variation.d.ts +8 -8
  205. package/shared/types/package.d.ts +14 -14
  206. package/shared/types/product.d.ts +7 -7
  207. package/shared/types/project-type.d.ts +5 -5
  208. package/shared/types/purchase-order-refinish-item.d.ts +18 -18
  209. package/shared/types/purchase-order-status.d.ts +6 -6
  210. package/shared/types/purchase-order.d.ts +11 -11
  211. package/shared/types/rear-sight-position.d.ts +4 -4
  212. package/shared/types/refinish-code.d.ts +8 -8
  213. package/shared/types/refinish-detail.d.ts +13 -13
  214. package/shared/types/report-milling-item.d.ts +16 -16
  215. package/shared/types/report-refinish-item.d.ts +20 -20
  216. package/shared/types/shield-rms-options.d.ts +4 -4
  217. package/shared/types/sight-type.d.ts +5 -5
  218. package/shared/types/state.d.ts +4 -4
  219. package/shared/types/total-item.d.ts +4 -4
  220. package/shared/types/total.d.ts +5 -5
  221. package/shared/types/vendor-contact.d.ts +9 -9
  222. package/shared/types/vendor.d.ts +20 -20
  223. package/shared/types/waitlist-action.d.ts +7 -7
  224. package/shared/types/waitlist-gun-package-detail.d.ts +10 -10
  225. package/shared/types/waitlist-gun.d.ts +24 -24
  226. package/shared/types/waitlist-history.d.ts +8 -8
  227. package/shared/types/waitlist-item.d.ts +25 -25
  228. package/shared/types/waitlist-status.d.ts +13 -13
  229. package/shared/types/work-change-order.d.ts +10 -10
  230. package/shared/types/work-holiday.d.ts +4 -4
  231. package/shared/types/work-order-action.d.ts +5 -5
  232. package/shared/types/work-order-history.d.ts +8 -8
  233. package/shared/types/work-order-inventory-item.d.ts +7 -7
  234. package/shared/types/work-order-list-item.d.ts +15 -0
  235. package/shared/types/work-order-package-detail.d.ts +10 -10
  236. package/shared/types/work-order-refinish-item.d.ts +18 -18
  237. package/shared/types/work-order-status.d.ts +16 -16
  238. package/shared/types/work-order-type.d.ts +6 -6
  239. package/shared/types/work-order.d.ts +33 -33
  240. package/shared/utils/coating-helpers.d.ts +5 -5
  241. package/shared/utils/enum-object.d.ts +5 -5
  242. package/shared/utils/finish-date-calculator.d.ts +2 -2
  243. package/shared/utils/index.d.ts +4 -4
  244. package/shared/utils/invalid-form-control-toucher.d.ts +2 -2
@@ -1,187 +1,195 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common/http";
5
- export class WorkOrderService {
6
- constructor(http, env) {
7
- this.http = http;
8
- this.env = env;
9
- this.url = this.env.baseUrl + 'api/work-orders';
10
- }
11
- doWorkOrderAction(id, actionId) {
12
- return this.http.get(`${this.url}/${id}/actions/${actionId}`);
13
- }
14
- readWorkOrders(statuses = null, id = null, customerName = null, customerEmail = null, serialNumber = null, orderTypes = null, projectTypes = null, users = null, specialOrder = null) {
15
- const params = {};
16
- if (statuses) {
17
- params['statuses'] = statuses.map(status => status.toString());
18
- }
19
- if (id) {
20
- params['id'] = id.toString();
21
- }
22
- if (customerName) {
23
- params['customerName'] = customerName;
24
- }
25
- if (customerEmail) {
26
- params['customerEmail'] = customerEmail;
27
- }
28
- if (serialNumber) {
29
- params['serialNumber'] = serialNumber;
30
- }
31
- if (orderTypes !== null) {
32
- params['orderTypes'] = orderTypes.map(type => type.toString());
33
- }
34
- if (projectTypes) {
35
- params['projectTypes'] = projectTypes.map(t => t.toString());
36
- }
37
- if (users) {
38
- params['users'] = users;
39
- }
40
- if (specialOrder) {
41
- params['specialOrder'] = specialOrder.toString();
42
- }
43
- return this.http.get(this.url, {
44
- params: params
45
- });
46
- }
47
- readWorkOrder(workOrderId) {
48
- return this.http.get(`${this.url}/${workOrderId}`);
49
- }
50
- createWorkOrder(workOrder) {
51
- return this.http.post(this.url, workOrder);
52
- }
53
- updateWorkOrder(workOrderId, workOrder) {
54
- return this.http.put(`${this.url}/${workOrderId}`, workOrder);
55
- }
56
- deleteWorkOrder(workOrderId) {
57
- return this.http.delete(`${this.url}/${workOrderId}`);
58
- }
59
- recalcWorkDates() {
60
- return this.http.get(`${this.url}/recalc-dates`);
61
- }
62
- // Change Orders
63
- readChangeOrders(workOrderId) {
64
- return this.http.get(`${this.url}/${workOrderId}/change-orders`);
65
- }
66
- readChangeOrder(workOrderId, changeOrderId) {
67
- return this.http.get(`${this.url}/${workOrderId}/change-orders/${changeOrderId}`);
68
- }
69
- createChangeOrder(workOrderId, changeOrder) {
70
- return this.http.post(`${this.url}/${workOrderId}/change-orders`, changeOrder);
71
- }
72
- updateChangeOrder(workOrderId, changeOrderId, changeOrder) {
73
- return this.http.put(`${this.url}/${workOrderId}/change-orders/${changeOrderId}`, changeOrder);
74
- }
75
- deleteChangeOrder(workOrderId, changeOrderId) {
76
- return this.http.delete(`${this.url}/${workOrderId}/change-orders/${changeOrderId}`);
77
- }
78
- confirmChangeOrder(token) {
79
- return this.http.get(`${this.env.baseUrl}api/change-orders/customer`, {
80
- params: {
81
- token: token
82
- }
83
- });
84
- }
85
- cancelChangeOrder(token) {
86
- return this.http.delete(`${this.env.baseUrl}api/change-orders/customer`, {
87
- params: {
88
- token: token
89
- }
90
- });
91
- }
92
- // Checklist
93
- createChecklists(workOrderId, refinishItemIds) {
94
- return this.http.get(`${this.url}/${workOrderId}/refinish-items/` + refinishItemIds.join(',') + '/pdfs', { responseType: "blob" });
95
- }
96
- createShopChecklist(workOrderId) {
97
- return this.http.get(`${this.url}/${workOrderId}/pdf`, { responseType: "blob" });
98
- }
99
- // Refinish Items
100
- readRefinishItems(workOrderId) {
101
- return this.http.get(`${this.url}/${workOrderId}/refinish-items`);
102
- }
103
- readRefinishItemCollection(workOrderId, itemIds) {
104
- return this.http.get(`${this.url}/${workOrderId}/refinish-items/collection/${itemIds.join(',')}`);
105
- }
106
- readRefinishItem(workOrderId, refinishItemId) {
107
- return this.http.get(`${this.url}/${workOrderId}/refinish-items/${refinishItemId}`);
108
- }
109
- createRefinishItems(workOrderId, refinishItems) {
110
- return this.http.post(`${this.url}/${workOrderId}/refinish-items/collection`, refinishItems);
111
- }
112
- updateRefinishItem(workOrderId, refinishItemId, refinishItem) {
113
- return this.http.put(`${this.url}/${workOrderId}/refinish-items/${refinishItemId}`, refinishItem);
114
- }
115
- deleteRefinishItem(workOrderId, refinishItemId) {
116
- return this.http.delete(`${this.url}/${workOrderId}/refinish-items/${refinishItemId}`);
117
- }
118
- // Milling Items
119
- readMillingItems(workOrderId) {
120
- return this.http.get(`${this.url}/${workOrderId}/milling-items`);
121
- }
122
- readMillingItem(workOrderId, millingItemId) {
123
- return this.http.get(`${this.url}/${workOrderId}/milling-items/${millingItemId}`);
124
- }
125
- createMillingItem(workOrderId, millingItem) {
126
- return this.http.post(`${this.url}/${workOrderId}/milling-items`, millingItem);
127
- }
128
- updateMillingItem(workOrderId, millingItemId, millingItem) {
129
- return this.http.put(`${this.url}/${workOrderId}/milling-items/${millingItemId}`, millingItem);
130
- }
131
- updateMillingItemCollection(workOrderId, itemIds, millingItems) {
132
- return this.http.put(`${this.url}/${workOrderId}/milling-items/collection/${itemIds.join(',')}`, millingItems);
133
- }
134
- deleteMillingItem(workOrderId, millingItemId) {
135
- return this.http.delete(`${this.url}/${workOrderId}/milling-items/${millingItemId}`);
136
- }
137
- // Report Items
138
- readReportMillingItems() {
139
- return this.http.get(`${this.env.baseUrl}api/report-milling-items`);
140
- }
141
- readReportRefinishItems() {
142
- return this.http.get(`${this.env.baseUrl}api/report-refinish-items`);
143
- }
144
- readPackageDetailTotals(startDate, endDate, statuses) {
145
- return this.http.get(`${this.url}/package-details/totals`, {
146
- params: {
147
- startDate: startDate.toUTCString(),
148
- endDate: endDate.toUTCString(),
149
- statuses: statuses.map(status => status.toString())
150
- }
151
- });
152
- }
153
- // Inventory Items
154
- readInventoryItems(workOrderId) {
155
- return this.http.get(`${this.url}/${workOrderId}/inventory-items`);
156
- }
157
- readInventoryItem(workOrderId, inventoryItemId) {
158
- return this.http.get(`${this.url}/${workOrderId}/inventory-items/${inventoryItemId}`);
159
- }
160
- createInventoryItem(workOrderId, inventoryItem) {
161
- return this.http.post(`${this.url}/${workOrderId}/inventory-items`, inventoryItem);
162
- }
163
- updateInventoryItem(workOrderId, inventoryItemId, inventoryItem) {
164
- return this.http.put(`${this.url}/${workOrderId}/inventory-items/${inventoryItemId}`, inventoryItem);
165
- }
166
- deleteInventoryItem(workOrderId, inventoryItemId) {
167
- return this.http.delete(`${this.url}/${workOrderId}/inventory-items/${inventoryItemId}`);
168
- }
169
- readInventoryItemCollection(workOrderId, itemIds) {
170
- return this.http.get(`${this.url}/${workOrderId}/inventory-items/collection/${itemIds.join(',')}`);
171
- }
172
- createInventoryItems(workOrderId, inventoryItems) {
173
- return this.http.post(`${this.url}/${workOrderId}/inventory-items/collection`, inventoryItems);
174
- }
175
- }
176
- WorkOrderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkOrderService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
177
- WorkOrderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkOrderService, providedIn: 'root' });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkOrderService, decorators: [{
179
- type: Injectable,
180
- args: [{
181
- providedIn: 'root'
182
- }]
183
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
184
- type: Inject,
185
- args: ['env']
186
- }] }]; } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1vcmRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvc2VydmljZXMvd29yay1vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBV2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFDVSxJQUFnQixFQUNELEdBQVE7UUFEdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNsRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBVSxFQUFFLFFBQWdCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsWUFBWSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxjQUFjLENBQ1osV0FBOEIsSUFBSSxFQUNsQyxLQUFhLElBQUksRUFDakIsZUFBdUIsSUFBSSxFQUMzQixnQkFBd0IsSUFBSSxFQUM1QixlQUF1QixJQUFJLEVBQzNCLGFBQThCLElBQUksRUFDbEMsZUFBOEIsSUFBSSxFQUNsQyxRQUFrQixJQUFJLEVBQ3RCLGVBQXdCLElBQUk7UUFFNUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENB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TUFBTTs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBXb3JrT3JkZXJTdGF0dXMgfSBmcm9tICcuLi90eXBlcy93b3JrLW9yZGVyLXN0YXR1cyc7XHJcbmltcG9ydCB7XHJcbiAgV29ya09yZGVyLCBXb3JrT3JkZXJUeXBlLCBXb3JrQ2hhbmdlT3JkZXIsIFJlcG9ydE1pbGxpbmdJdGVtLCBQcm9qZWN0VHlwZSwgUmVwb3J0UmVmaW5pc2hJdGVtLFxyXG4gIFdvcmtPcmRlclJlZmluaXNoSXRlbSwgTWlsbGluZ0l0ZW0sIFBhY2thZ2VUb3RhbCwgV29ya09yZGVySW52ZW50b3J5SXRlbVxyXG59IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtPcmRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnY6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy51cmwgPSB0aGlzLmVudi5iYXNlVXJsICsgJ2FwaS93b3JrLW9yZGVycyc7XHJcbiAgfVxyXG5cclxuICBkb1dvcmtPcmRlckFjdGlvbihpZDogbnVtYmVyLCBhY3Rpb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtPcmRlcj4oYCR7dGhpcy51cmx9LyR7aWR9L2FjdGlvbnMvJHthY3Rpb25JZH1gKTtcclxuICB9XHJcblxyXG4gIHJlYWRXb3JrT3JkZXJzKFxyXG4gICAgc3RhdHVzZXM6IFdvcmtPcmRlclN0YXR1c1tdID0gbnVsbCxcclxuICAgIGlkOiBudW1iZXIgPSBudWxsLFxyXG4gICAgY3VzdG9tZXJOYW1lOiBzdHJpbmcgPSBudWxsLFxyXG4gICAgY3VzdG9tZXJFbWFpbDogc3RyaW5nID0gbnVsbCxcclxuICAgIHNlcmlhbE51bWJlcjogc3RyaW5nID0gbnVsbCxcclxuICAgIG9yZGVyVHlwZXM6IFdvcmtPcmRlclR5cGVbXSA9IG51bGwsXHJcbiAgICBwcm9qZWN0VHlwZXM6IFByb2plY3RUeXBlW10gPSBudWxsLFxyXG4gICAgdXNlcnM6IHN0cmluZ1tdID0gbnVsbCxcclxuICAgIHNwZWNpYWxPcmRlcjogYm9vbGVhbiA9IG51bGwpOiBPYnNlcnZhYmxlPFdvcmtPcmRlcltdPiB7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0ge307XHJcblxyXG4gICAgaWYgKHN0YXR1c2VzKSB7XHJcbiAgICAgIHBhcmFtc1snc3RhdHVzZXMnXSA9IHN0YXR1c2VzLm1hcChzdGF0dXMgPT4gc3RhdHVzLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpZCkge1xyXG4gICAgICBwYXJhbXNbJ2lkJ10gPSBpZC50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjdXN0b21lck5hbWUpIHtcclxuICAgICAgcGFyYW1zWydjdXN0b21lck5hbWUnXSA9IGN1c3RvbWVyTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY3VzdG9tZXJFbWFpbCkge1xyXG4gICAgICBwYXJhbXNbJ2N1c3RvbWVyRW1haWwnXSA9IGN1c3RvbWVyRW1haWw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlcmlhbE51bWJlcikge1xyXG4gICAgICBwYXJhbXNbJ3NlcmlhbE51bWJlciddID0gc2VyaWFsTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcmRlclR5cGVzICE9PSBudWxsKSB7XHJcbiAgICAgIHBhcmFtc1snb3JkZXJUeXBlcyddID0gb3JkZXJUeXBlcy5tYXAodHlwZSA9PiB0eXBlLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwcm9qZWN0VHlwZXMpIHtcclxuICAgICAgcGFyYW1zWydwcm9qZWN0VHlwZXMnXSA9IHByb2plY3RUeXBlcy5tYXAodCA9PiB0LnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1c2Vycykge1xyXG4gICAgICBwYXJhbXNbJ3VzZXJzJ10gPSB1c2VycztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3BlY2lhbE9yZGVyKSB7XHJcbiAgICAgIHBhcmFtc1snc3BlY2lhbE9yZGVyJ10gPSBzcGVjaWFsT3JkZXIudG9TdHJpbmcoKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtPcmRlcltdPih0aGlzLnVybCwge1xyXG4gICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWFkV29ya09yZGVyKHdvcmtPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtPcmRlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH1gKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVdvcmtPcmRlcih3b3JrT3JkZXI6IFdvcmtPcmRlcik6IE9ic2VydmFibGU8V29ya09yZGVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8V29ya09yZGVyPih0aGlzLnVybCwgd29ya09yZGVyKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVdvcmtPcmRlcih3b3JrT3JkZXJJZDogbnVtYmVyLCB3b3JrT3JkZXI6IFdvcmtPcmRlcik6IE9ic2VydmFibGU8V29ya09yZGVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxXb3JrT3JkZXI+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfWAsIHdvcmtPcmRlcik7XHJcbiAgfVxyXG5cclxuICBkZWxldGVXb3JrT3JkZXIod29ya09yZGVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH1gKTtcclxuICB9XHJcblxyXG4gIHJlY2FsY1dvcmtEYXRlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXJsfS9yZWNhbGMtZGF0ZXNgKTtcclxuICB9XHJcblxyXG4gIC8vIENoYW5nZSBPcmRlcnNcclxuXHJcbiAgcmVhZENoYW5nZU9yZGVycyh3b3JrT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3JrQ2hhbmdlT3JkZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya0NoYW5nZU9yZGVyW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9jaGFuZ2Utb3JkZXJzYCk7XHJcbiAgfVxyXG5cclxuICByZWFkQ2hhbmdlT3JkZXIod29ya09yZGVySWQ6IG51bWJlciwgY2hhbmdlT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3JrQ2hhbmdlT3JkZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtDaGFuZ2VPcmRlcj4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L2NoYW5nZS1vcmRlcnMvJHtjaGFuZ2VPcmRlcklkfWApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ2hhbmdlT3JkZXIod29ya09yZGVySWQ6IG51bWJlciwgY2hhbmdlT3JkZXI6IFdvcmtDaGFuZ2VPcmRlcik6IE9ic2VydmFibGU8V29ya0NoYW5nZU9yZGVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8V29ya0NoYW5nZU9yZGVyPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vY2hhbmdlLW9yZGVyc2AsIGNoYW5nZU9yZGVyKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNoYW5nZU9yZGVyKHdvcmtPcmRlcklkOiBudW1iZXIsIGNoYW5nZU9yZGVySWQ6IG51bWJlciwgY2hhbmdlT3JkZXI6IFdvcmtDaGFuZ2VPcmRlcik6IE9ic2VydmFibGU8V29ya0NoYW5nZU9yZGVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxXb3JrQ2hhbmdlT3JkZXI+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9jaGFuZ2Utb3JkZXJzLyR7Y2hhbmdlT3JkZXJJZH1gLCBjaGFuZ2VPcmRlcik7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDaGFuZ2VPcmRlcih3b3JrT3JkZXJJZDogbnVtYmVyLCBjaGFuZ2VPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L2NoYW5nZS1vcmRlcnMvJHtjaGFuZ2VPcmRlcklkfWApO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybUNoYW5nZU9yZGVyKHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHZvaWQ+KGAke3RoaXMuZW52LmJhc2VVcmx9YXBpL2NoYW5nZS1vcmRlcnMvY3VzdG9tZXJgLCB7XHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIHRva2VuOiB0b2tlblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbENoYW5nZU9yZGVyKHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnYuYmFzZVVybH1hcGkvY2hhbmdlLW9yZGVycy9jdXN0b21lcmAsIHtcclxuICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgdG9rZW46IHRva2VuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gQ2hlY2tsaXN0XHJcblxyXG4gIGNyZWF0ZUNoZWNrbGlzdHMod29ya09yZGVySWQ6IG51bWJlciwgcmVmaW5pc2hJdGVtSWRzOiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QmxvYj4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3JlZmluaXNoLWl0ZW1zL2AgKyByZWZpbmlzaEl0ZW1JZHMuam9pbignLCcpICsgJy9wZGZzJyxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYmxvYlwiIGFzIFwianNvblwifSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTaG9wQ2hlY2tsaXN0KHdvcmtPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEJsb2I+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9wZGZgLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJibG9iXCIgYXMgXCJqc29uXCIgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBSZWZpbmlzaCBJdGVtc1xyXG5cclxuICByZWFkUmVmaW5pc2hJdGVtcyh3b3JrT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXJSZWZpbmlzaEl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyUmVmaW5pc2hJdGVtW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9yZWZpbmlzaC1pdGVtc2ApO1xyXG4gIH1cclxuXHJcbiAgcmVhZFJlZmluaXNoSXRlbUNvbGxlY3Rpb24od29ya09yZGVySWQ6IG51bWJlciwgaXRlbUlkczogbnVtYmVyW10pOiBPYnNlcnZhYmxlPFdvcmtPcmRlclJlZmluaXNoSXRlbVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXb3JrT3JkZXJSZWZpbmlzaEl0ZW1bXT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3JlZmluaXNoLWl0ZW1zL2NvbGxlY3Rpb24vJHtpdGVtSWRzLmpvaW4oJywnKX1gKVxyXG4gIH1cclxuXHJcbiAgcmVhZFJlZmluaXNoSXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCByZWZpbmlzaEl0ZW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXJSZWZpbmlzaEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtPcmRlclJlZmluaXNoSXRlbT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3JlZmluaXNoLWl0ZW1zLyR7cmVmaW5pc2hJdGVtSWR9YCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVSZWZpbmlzaEl0ZW1zKHdvcmtPcmRlcklkOiBudW1iZXIsIHJlZmluaXNoSXRlbXM6IFdvcmtPcmRlclJlZmluaXNoSXRlbVtdKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXJSZWZpbmlzaEl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFdvcmtPcmRlclJlZmluaXNoSXRlbVtdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vcmVmaW5pc2gtaXRlbXMvY29sbGVjdGlvbmAsIHJlZmluaXNoSXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVmaW5pc2hJdGVtKHdvcmtPcmRlcklkOiBudW1iZXIsIHJlZmluaXNoSXRlbUlkOiBudW1iZXIsIHJlZmluaXNoSXRlbTogV29ya09yZGVyUmVmaW5pc2hJdGVtKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXJSZWZpbmlzaEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFdvcmtPcmRlclJlZmluaXNoSXRlbT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3JlZmluaXNoLWl0ZW1zLyR7cmVmaW5pc2hJdGVtSWR9YCwgcmVmaW5pc2hJdGVtKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVJlZmluaXNoSXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCByZWZpbmlzaEl0ZW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9yZWZpbmlzaC1pdGVtcy8ke3JlZmluaXNoSXRlbUlkfWApO1xyXG4gIH1cclxuXHJcbiAgLy8gTWlsbGluZyBJdGVtc1xyXG5cclxuICByZWFkTWlsbGluZ0l0ZW1zKHdvcmtPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1pbGxpbmdJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE1pbGxpbmdJdGVtW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zYCk7XHJcbiAgfVxyXG5cclxuICByZWFkTWlsbGluZ0l0ZW0od29ya09yZGVySWQ6IG51bWJlciwgbWlsbGluZ0l0ZW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxNaWxsaW5nSXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TWlsbGluZ0l0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zLyR7bWlsbGluZ0l0ZW1JZH1gKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU1pbGxpbmdJdGVtKHdvcmtPcmRlcklkOiBudW1iZXIsIG1pbGxpbmdJdGVtOiBNaWxsaW5nSXRlbSk6IE9ic2VydmFibGU8TWlsbGluZ0l0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNaWxsaW5nSXRlbT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L21pbGxpbmctaXRlbXNgLCBtaWxsaW5nSXRlbSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVNaWxsaW5nSXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCBtaWxsaW5nSXRlbUlkOiBudW1iZXIsIG1pbGxpbmdJdGVtOiBNaWxsaW5nSXRlbSk6IE9ic2VydmFibGU8TWlsbGluZ0l0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PE1pbGxpbmdJdGVtPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vbWlsbGluZy1pdGVtcy8ke21pbGxpbmdJdGVtSWR9YCwgbWlsbGluZ0l0ZW0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTWlsbGluZ0l0ZW1Db2xsZWN0aW9uKHdvcmtPcmRlcklkOiBudW1iZXIsIGl0ZW1JZHM6IG51bWJlcltdLCBtaWxsaW5nSXRlbXM6IE1pbGxpbmdJdGVtW10pOiBPYnNlcnZhYmxlPE1pbGxpbmdJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PE1pbGxpbmdJdGVtW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zL2NvbGxlY3Rpb24vJHtpdGVtSWRzLmpvaW4oJywnKX1gLCBtaWxsaW5nSXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTWlsbGluZ0l0ZW0od29ya09yZGVySWQ6IG51bWJlciwgbWlsbGluZ0l0ZW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zLyR7bWlsbGluZ0l0ZW1JZH1gKTtcclxuICB9XHJcblxyXG4gIC8vIFJlcG9ydCBJdGVtc1xyXG5cclxuICByZWFkUmVwb3J0TWlsbGluZ0l0ZW1zKCk6IE9ic2VydmFibGU8UmVwb3J0TWlsbGluZ0l0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UmVwb3J0TWlsbGluZ0l0ZW1bXT4oYCR7dGhpcy5lbnYuYmFzZVVybH1hcGkvcmVwb3J0LW1pbGxpbmctaXRlbXNgKTtcclxuICB9XHJcblxyXG4gIHJlYWRSZXBvcnRSZWZpbmlzaEl0ZW1zKCk6IE9ic2VydmFibGU8UmVwb3J0UmVmaW5pc2hJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlcG9ydFJlZmluaXNoSXRlbVtdPihgJHt0aGlzLmVudi5iYXNlVXJsfWFwaS9yZXBvcnQtcmVmaW5pc2gtaXRlbXNgKTtcclxuICB9XHJcblxyXG4gIHJlYWRQYWNrYWdlRGV0YWlsVG90YWxzKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgc3RhdHVzZXM6IFdvcmtPcmRlclN0YXR1c1tdKTogT2JzZXJ2YWJsZTxQYWNrYWdlVG90YWxbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFja2FnZVRvdGFsW10+KGAke3RoaXMudXJsfS9wYWNrYWdlLWRldGFpbHMvdG90YWxzYCxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgc3RhcnREYXRlOiBzdGFydERhdGUudG9VVENTdHJpbmcoKSxcclxuICAgICAgICAgIGVuZERhdGU6IGVuZERhdGUudG9VVENTdHJpbmcoKSxcclxuICAgICAgICAgIHN0YXR1c2VzOiBzdGF0dXNlcy5tYXAoc3RhdHVzID0+IHN0YXR1cy50b1N0cmluZygpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBJbnZlbnRvcnkgSXRlbXNcclxuXHJcbiAgcmVhZEludmVudG9yeUl0ZW1zKHdvcmtPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtPcmRlckludmVudG9yeUl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vaW52ZW50b3J5LWl0ZW1zYCk7XHJcbiAgfVxyXG5cclxuICByZWFkSW52ZW50b3J5SXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCBpbnZlbnRvcnlJdGVtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8V29ya09yZGVySW52ZW50b3J5SXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVySW52ZW50b3J5SXRlbT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L2ludmVudG9yeS1pdGVtcy8ke2ludmVudG9yeUl0ZW1JZH1gKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUludmVudG9yeUl0ZW0od29ya09yZGVySWQ6IG51bWJlciwgaW52ZW50b3J5SXRlbTogV29ya09yZGVySW52ZW50b3J5SXRlbSk6IE9ic2VydmFibGU8V29ya09yZGVySW52ZW50b3J5SXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFdvcmtPcmRlckludmVudG9yeUl0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9pbnZlbnRvcnktaXRlbXNgLCBpbnZlbnRvcnlJdGVtKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUludmVudG9yeUl0ZW0od29ya09yZGVySWQ6IG51bWJlciwgaW52ZW50b3J5SXRlbUlkOiBudW1iZXIsIGludmVudG9yeUl0ZW06IFdvcmtPcmRlckludmVudG9yeUl0ZW0pOiBPYnNlcnZhYmxlPFdvcmtPcmRlckludmVudG9yeUl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFdvcmtPcmRlckludmVudG9yeUl0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9pbnZlbnRvcnktaXRlbXMvJHtpbnZlbnRvcnlJdGVtSWR9YCwgaW52ZW50b3J5SXRlbSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJbnZlbnRvcnlJdGVtKHdvcmtPcmRlcklkOiBudW1iZXIsIGludmVudG9yeUl0ZW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9pbnZlbnRvcnktaXRlbXMvJHtpbnZlbnRvcnlJdGVtSWR9YCk7XHJcbiAgfVxyXG5cclxuICByZWFkSW52ZW50b3J5SXRlbUNvbGxlY3Rpb24od29ya09yZGVySWQ6IG51bWJlciwgaXRlbUlkczogbnVtYmVyW10pOiBPYnNlcnZhYmxlPFdvcmtPcmRlckludmVudG9yeUl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vaW52ZW50b3J5LWl0ZW1zL2NvbGxlY3Rpb24vJHtpdGVtSWRzLmpvaW4oJywnKX1gKVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlSW52ZW50b3J5SXRlbXMod29ya09yZGVySWQ6IG51bWJlciwgaW52ZW50b3J5SXRlbXM6IFdvcmtPcmRlckludmVudG9yeUl0ZW1bXSk6IE9ic2VydmFibGU8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vaW52ZW50b3J5LWl0ZW1zL2NvbGxlY3Rpb25gLCBpbnZlbnRvcnlJdGVtcyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Injectable, Inject } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class WorkOrderService {
6
+ constructor(http, env) {
7
+ this.http = http;
8
+ this.env = env;
9
+ this.url = this.env.baseUrl + 'api/work-orders';
10
+ }
11
+ doWorkOrderAction(id, actionId) {
12
+ return this.http.get(`${this.url}/${id}/actions/${actionId}`);
13
+ }
14
+ readWorkOrders(statuses = null, id = null, customerName = null, customerEmail = null, serialNumber = null, orderTypes = null, projectTypes = null, users = null, specialOrder = null) {
15
+ return this.http.get(this.url, {
16
+ params: this.createWorkOrderParams(statuses, id, customerName, customerEmail, serialNumber, orderTypes, projectTypes, users, specialOrder)
17
+ });
18
+ }
19
+ readExportWorkOrders(statuses = null, id = null, customerName = null, customerEmail = null, serialNumber = null, orderTypes = null, projectTypes = null, users = null, specialOrder = null) {
20
+ return this.http.get(`${this.url}/export`, {
21
+ params: this.createWorkOrderParams(statuses, id, customerName, customerEmail, serialNumber, orderTypes, projectTypes, users, specialOrder)
22
+ });
23
+ }
24
+ createWorkOrderParams(statuses = null, id = null, customerName = null, customerEmail = null, serialNumber = null, orderTypes = null, projectTypes = null, users = null, specialOrder = null) {
25
+ const params = {};
26
+ if (statuses) {
27
+ params['statuses'] = statuses.map(status => status.toString());
28
+ }
29
+ if (id) {
30
+ params['id'] = id.toString();
31
+ }
32
+ if (customerName) {
33
+ params['customerName'] = customerName;
34
+ }
35
+ if (customerEmail) {
36
+ params['customerEmail'] = customerEmail;
37
+ }
38
+ if (serialNumber) {
39
+ params['serialNumber'] = serialNumber;
40
+ }
41
+ if (orderTypes !== null) {
42
+ params['orderTypes'] = orderTypes.map(type => type.toString());
43
+ }
44
+ if (projectTypes) {
45
+ params['projectTypes'] = projectTypes.map(t => t.toString());
46
+ }
47
+ if (users) {
48
+ params['users'] = users;
49
+ }
50
+ if (specialOrder) {
51
+ params['specialOrder'] = specialOrder.toString();
52
+ }
53
+ return params;
54
+ }
55
+ readWorkOrder(workOrderId) {
56
+ return this.http.get(`${this.url}/${workOrderId}`);
57
+ }
58
+ createWorkOrder(workOrder) {
59
+ return this.http.post(this.url, workOrder);
60
+ }
61
+ updateWorkOrder(workOrderId, workOrder) {
62
+ return this.http.put(`${this.url}/${workOrderId}`, workOrder);
63
+ }
64
+ deleteWorkOrder(workOrderId) {
65
+ return this.http.delete(`${this.url}/${workOrderId}`);
66
+ }
67
+ recalcWorkDates() {
68
+ return this.http.get(`${this.url}/recalc-dates`);
69
+ }
70
+ // Change Orders
71
+ readChangeOrders(workOrderId) {
72
+ return this.http.get(`${this.url}/${workOrderId}/change-orders`);
73
+ }
74
+ readChangeOrder(workOrderId, changeOrderId) {
75
+ return this.http.get(`${this.url}/${workOrderId}/change-orders/${changeOrderId}`);
76
+ }
77
+ createChangeOrder(workOrderId, changeOrder) {
78
+ return this.http.post(`${this.url}/${workOrderId}/change-orders`, changeOrder);
79
+ }
80
+ updateChangeOrder(workOrderId, changeOrderId, changeOrder) {
81
+ return this.http.put(`${this.url}/${workOrderId}/change-orders/${changeOrderId}`, changeOrder);
82
+ }
83
+ deleteChangeOrder(workOrderId, changeOrderId) {
84
+ return this.http.delete(`${this.url}/${workOrderId}/change-orders/${changeOrderId}`);
85
+ }
86
+ confirmChangeOrder(token) {
87
+ return this.http.get(`${this.env.baseUrl}api/change-orders/customer`, {
88
+ params: {
89
+ token: token
90
+ }
91
+ });
92
+ }
93
+ cancelChangeOrder(token) {
94
+ return this.http.delete(`${this.env.baseUrl}api/change-orders/customer`, {
95
+ params: {
96
+ token: token
97
+ }
98
+ });
99
+ }
100
+ // Checklist
101
+ createChecklists(workOrderId, refinishItemIds) {
102
+ return this.http.get(`${this.url}/${workOrderId}/refinish-items/` + refinishItemIds.join(',') + '/pdfs', { responseType: "blob" });
103
+ }
104
+ createShopChecklist(workOrderId) {
105
+ return this.http.get(`${this.url}/${workOrderId}/pdf`, { responseType: "blob" });
106
+ }
107
+ // Refinish Items
108
+ readRefinishItems(workOrderId) {
109
+ return this.http.get(`${this.url}/${workOrderId}/refinish-items`);
110
+ }
111
+ readRefinishItemCollection(workOrderId, itemIds) {
112
+ return this.http.get(`${this.url}/${workOrderId}/refinish-items/collection/${itemIds.join(',')}`);
113
+ }
114
+ readRefinishItem(workOrderId, refinishItemId) {
115
+ return this.http.get(`${this.url}/${workOrderId}/refinish-items/${refinishItemId}`);
116
+ }
117
+ createRefinishItems(workOrderId, refinishItems) {
118
+ return this.http.post(`${this.url}/${workOrderId}/refinish-items/collection`, refinishItems);
119
+ }
120
+ updateRefinishItem(workOrderId, refinishItemId, refinishItem) {
121
+ return this.http.put(`${this.url}/${workOrderId}/refinish-items/${refinishItemId}`, refinishItem);
122
+ }
123
+ deleteRefinishItem(workOrderId, refinishItemId) {
124
+ return this.http.delete(`${this.url}/${workOrderId}/refinish-items/${refinishItemId}`);
125
+ }
126
+ // Milling Items
127
+ readMillingItems(workOrderId) {
128
+ return this.http.get(`${this.url}/${workOrderId}/milling-items`);
129
+ }
130
+ readMillingItem(workOrderId, millingItemId) {
131
+ return this.http.get(`${this.url}/${workOrderId}/milling-items/${millingItemId}`);
132
+ }
133
+ createMillingItem(workOrderId, millingItem) {
134
+ return this.http.post(`${this.url}/${workOrderId}/milling-items`, millingItem);
135
+ }
136
+ updateMillingItem(workOrderId, millingItemId, millingItem) {
137
+ return this.http.put(`${this.url}/${workOrderId}/milling-items/${millingItemId}`, millingItem);
138
+ }
139
+ updateMillingItemCollection(workOrderId, itemIds, millingItems) {
140
+ return this.http.put(`${this.url}/${workOrderId}/milling-items/collection/${itemIds.join(',')}`, millingItems);
141
+ }
142
+ deleteMillingItem(workOrderId, millingItemId) {
143
+ return this.http.delete(`${this.url}/${workOrderId}/milling-items/${millingItemId}`);
144
+ }
145
+ // Report Items
146
+ readReportMillingItems() {
147
+ return this.http.get(`${this.env.baseUrl}api/report-milling-items`);
148
+ }
149
+ readReportRefinishItems() {
150
+ return this.http.get(`${this.env.baseUrl}api/report-refinish-items`);
151
+ }
152
+ readPackageDetailTotals(startDate, endDate, statuses) {
153
+ return this.http.get(`${this.url}/package-details/totals`, {
154
+ params: {
155
+ startDate: startDate.toUTCString(),
156
+ endDate: endDate.toUTCString(),
157
+ statuses: statuses.map(status => status.toString())
158
+ }
159
+ });
160
+ }
161
+ // Inventory Items
162
+ readInventoryItems(workOrderId) {
163
+ return this.http.get(`${this.url}/${workOrderId}/inventory-items`);
164
+ }
165
+ readInventoryItem(workOrderId, inventoryItemId) {
166
+ return this.http.get(`${this.url}/${workOrderId}/inventory-items/${inventoryItemId}`);
167
+ }
168
+ createInventoryItem(workOrderId, inventoryItem) {
169
+ return this.http.post(`${this.url}/${workOrderId}/inventory-items`, inventoryItem);
170
+ }
171
+ updateInventoryItem(workOrderId, inventoryItemId, inventoryItem) {
172
+ return this.http.put(`${this.url}/${workOrderId}/inventory-items/${inventoryItemId}`, inventoryItem);
173
+ }
174
+ deleteInventoryItem(workOrderId, inventoryItemId) {
175
+ return this.http.delete(`${this.url}/${workOrderId}/inventory-items/${inventoryItemId}`);
176
+ }
177
+ readInventoryItemCollection(workOrderId, itemIds) {
178
+ return this.http.get(`${this.url}/${workOrderId}/inventory-items/collection/${itemIds.join(',')}`);
179
+ }
180
+ createInventoryItems(workOrderId, inventoryItems) {
181
+ return this.http.post(`${this.url}/${workOrderId}/inventory-items/collection`, inventoryItems);
182
+ }
183
+ }
184
+ WorkOrderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkOrderService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
185
+ WorkOrderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkOrderService, providedIn: 'root' });
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkOrderService, decorators: [{
187
+ type: Injectable,
188
+ args: [{
189
+ providedIn: 'root'
190
+ }]
191
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
192
+ type: Inject,
193
+ args: ['env']
194
+ }] }]; } });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1vcmRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvc2VydmljZXMvd29yay1vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBV2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFDVSxJQUFnQixFQUNELEdBQVE7UUFEdkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFFL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNsRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBVSxFQUFFLFFBQWdCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsWUFBWSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxjQUFjLENBQ1osV0FBOEIsSUFBSSxFQUNsQyxLQUFhLElBQUksRUFDakIsZUFBdUIsSUFBSSxFQUMzQixnQkFBd0IsSUFBSSxFQUM1QixlQUF1QixJQUFJLEVBQzNCLGFBQThCLElBQUksRUFDbEMsZUFBOEIsSUFBSSxFQUNsQyxRQUFrQixJQUFJLEVBQ3RCLGVBQXdCLElBQUk7UUFFNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBc0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNsRCxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZ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QUUsYUFBYSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQW1CLEVBQUUsZUFBdUIsRUFBRSxhQUFxQztRQUNyRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxvQkFBb0IsZUFBZSxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQW1CLEVBQUUsZUFBdUI7UUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxvQkFBb0IsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsMkJBQTJCLENBQUMsV0FBbUIsRUFBRSxPQUFpQjtRQUNoRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVywrQkFBK0IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDOUgsQ0FBQztJQUVELG9CQUFvQixDQUFDLFdBQW1CLEVBQUUsY0FBd0M7UUFDaEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLFdBQVcsNkJBQTZCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0gsQ0FBQzs7OEdBNVFVLGdCQUFnQiw0Q0FLakIsS0FBSztrSEFMSixnQkFBZ0IsY0FGZixNQUFNOzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdvcmtPcmRlclN0YXR1cyB9IGZyb20gJy4uL3R5cGVzL3dvcmstb3JkZXItc3RhdHVzJztcbmltcG9ydCB7XG4gIFdvcmtPcmRlciwgV29ya09yZGVyVHlwZSwgV29ya0NoYW5nZU9yZGVyLCBSZXBvcnRNaWxsaW5nSXRlbSwgUHJvamVjdFR5cGUsIFJlcG9ydFJlZmluaXNoSXRlbSxcbiAgV29ya09yZGVyUmVmaW5pc2hJdGVtLCBNaWxsaW5nSXRlbSwgUGFja2FnZVRvdGFsLCBXb3JrT3JkZXJJbnZlbnRvcnlJdGVtLCBXb3JrT3JkZXJMaXN0SXRlbVxufSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtPcmRlclNlcnZpY2Uge1xuICBwcml2YXRlIHVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudjogYW55XG4gICkge1xuICAgIHRoaXMudXJsID0gdGhpcy5lbnYuYmFzZVVybCArICdhcGkvd29yay1vcmRlcnMnO1xuICB9XG5cbiAgZG9Xb3JrT3JkZXJBY3Rpb24oaWQ6IG51bWJlciwgYWN0aW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8V29ya09yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyPihgJHt0aGlzLnVybH0vJHtpZH0vYWN0aW9ucy8ke2FjdGlvbklkfWApO1xuICB9XG5cbiAgcmVhZFdvcmtPcmRlcnMoXG4gICAgc3RhdHVzZXM6IFdvcmtPcmRlclN0YXR1c1tdID0gbnVsbCxcbiAgICBpZDogbnVtYmVyID0gbnVsbCxcbiAgICBjdXN0b21lck5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgY3VzdG9tZXJFbWFpbDogc3RyaW5nID0gbnVsbCxcbiAgICBzZXJpYWxOdW1iZXI6IHN0cmluZyA9IG51bGwsXG4gICAgb3JkZXJUeXBlczogV29ya09yZGVyVHlwZVtdID0gbnVsbCxcbiAgICBwcm9qZWN0VHlwZXM6IFByb2plY3RUeXBlW10gPSBudWxsLFxuICAgIHVzZXJzOiBzdHJpbmdbXSA9IG51bGwsXG4gICAgc3BlY2lhbE9yZGVyOiBib29sZWFuID0gbnVsbCk6IE9ic2VydmFibGU8V29ya09yZGVyTGlzdEl0ZW1bXT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyTGlzdEl0ZW1bXT4odGhpcy51cmwsIHtcbiAgICAgIHBhcmFtczogdGhpcy5jcmVhdGVXb3JrT3JkZXJQYXJhbXMoc3RhdHVzZXMsIGlkLCBjdXN0b21lck5hbWUsIGN1c3RvbWVyRW1haWwsIHNlcmlhbE51bWJlciwgb3JkZXJUeXBlcywgcHJvamVjdFR5cGVzLCB1c2Vycywgc3BlY2lhbE9yZGVyKVxuICAgIH0pO1xuICB9XG5cbiAgcmVhZEV4cG9ydFdvcmtPcmRlcnMoXG4gICAgc3RhdHVzZXM6IFdvcmtPcmRlclN0YXR1c1tdID0gbnVsbCxcbiAgICBpZDogbnVtYmVyID0gbnVsbCxcbiAgICBjdXN0b21lck5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgY3VzdG9tZXJFbWFpbDogc3RyaW5nID0gbnVsbCxcbiAgICBzZXJpYWxOdW1iZXI6IHN0cmluZyA9IG51bGwsXG4gICAgb3JkZXJUeXBlczogV29ya09yZGVyVHlwZVtdID0gbnVsbCxcbiAgICBwcm9qZWN0VHlwZXM6IFByb2plY3RUeXBlW10gPSBudWxsLFxuICAgIHVzZXJzOiBzdHJpbmdbXSA9IG51bGwsXG4gICAgc3BlY2lhbE9yZGVyOiBib29sZWFuID0gbnVsbCk6IE9ic2VydmFibGU8V29ya09yZGVyW10+IHtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtPcmRlcltdPihgJHt0aGlzLnVybH0vZXhwb3J0YCwge1xuICAgICAgcGFyYW1zOiB0aGlzLmNyZWF0ZVdvcmtPcmRlclBhcmFtcyhzdGF0dXNlcywgaWQsIGN1c3RvbWVyTmFtZSwgY3VzdG9tZXJFbWFpbCwgc2VyaWFsTnVtYmVyLCBvcmRlclR5cGVzLCBwcm9qZWN0VHlwZXMsIHVzZXJzLCBzcGVjaWFsT3JkZXIpXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVXb3JrT3JkZXJQYXJhbXMoc3RhdHVzZXM6IFdvcmtPcmRlclN0YXR1c1tdID0gbnVsbCxcbiAgICBpZDogbnVtYmVyID0gbnVsbCxcbiAgICBjdXN0b21lck5hbWU6IHN0cmluZyA9IG51bGwsXG4gICAgY3VzdG9tZXJFbWFpbDogc3RyaW5nID0gbnVsbCxcbiAgICBzZXJpYWxOdW1iZXI6IHN0cmluZyA9IG51bGwsXG4gICAgb3JkZXJUeXBlczogV29ya09yZGVyVHlwZVtdID0gbnVsbCxcbiAgICBwcm9qZWN0VHlwZXM6IFByb2plY3RUeXBlW10gPSBudWxsLFxuICAgIHVzZXJzOiBzdHJpbmdbXSA9IG51bGwsXG4gICAgc3BlY2lhbE9yZGVyOiBib29sZWFuID0gbnVsbCkge1xuXG4gICAgY29uc3QgcGFyYW1zID0ge307XG5cbiAgICBpZiAoc3RhdHVzZXMpIHtcbiAgICAgIHBhcmFtc1snc3RhdHVzZXMnXSA9IHN0YXR1c2VzLm1hcChzdGF0dXMgPT4gc3RhdHVzLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmIChpZCkge1xuICAgICAgcGFyYW1zWydpZCddID0gaWQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoY3VzdG9tZXJOYW1lKSB7XG4gICAgICBwYXJhbXNbJ2N1c3RvbWVyTmFtZSddID0gY3VzdG9tZXJOYW1lO1xuICAgIH1cblxuICAgIGlmIChjdXN0b21lckVtYWlsKSB7XG4gICAgICBwYXJhbXNbJ2N1c3RvbWVyRW1haWwnXSA9IGN1c3RvbWVyRW1haWw7XG4gICAgfVxuXG4gICAgaWYgKHNlcmlhbE51bWJlcikge1xuICAgICAgcGFyYW1zWydzZXJpYWxOdW1iZXInXSA9IHNlcmlhbE51bWJlcjtcbiAgICB9XG5cbiAgICBpZiAob3JkZXJUeXBlcyAhPT0gbnVsbCkge1xuICAgICAgcGFyYW1zWydvcmRlclR5cGVzJ10gPSBvcmRlclR5cGVzLm1hcCh0eXBlID0+IHR5cGUudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHByb2plY3RUeXBlcykge1xuICAgICAgcGFyYW1zWydwcm9qZWN0VHlwZXMnXSA9IHByb2plY3RUeXBlcy5tYXAodCA9PiB0LnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh1c2Vycykge1xuICAgICAgcGFyYW1zWyd1c2VycyddID0gdXNlcnM7XG4gICAgfVxuXG4gICAgaWYgKHNwZWNpYWxPcmRlcikge1xuICAgICAgcGFyYW1zWydzcGVjaWFsT3JkZXInXSA9IHNwZWNpYWxPcmRlci50b1N0cmluZygpXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHJlYWRXb3JrT3JkZXIod29ya09yZGVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8V29ya09yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH1gKTtcbiAgfVxuXG4gIGNyZWF0ZVdvcmtPcmRlcih3b3JrT3JkZXI6IFdvcmtPcmRlcik6IE9ic2VydmFibGU8V29ya09yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFdvcmtPcmRlcj4odGhpcy51cmwsIHdvcmtPcmRlcik7XG4gIH1cblxuICB1cGRhdGVXb3JrT3JkZXIod29ya09yZGVySWQ6IG51bWJlciwgd29ya09yZGVyOiBXb3JrT3JkZXIpOiBPYnNlcnZhYmxlPFdvcmtPcmRlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFdvcmtPcmRlcj4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9YCwgd29ya09yZGVyKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtPcmRlcih3b3JrT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH1gKTtcbiAgfVxuXG4gIHJlY2FsY1dvcmtEYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybH0vcmVjYWxjLWRhdGVzYCk7XG4gIH1cblxuICAvLyBDaGFuZ2UgT3JkZXJzXG5cbiAgcmVhZENoYW5nZU9yZGVycyh3b3JrT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3JrQ2hhbmdlT3JkZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtDaGFuZ2VPcmRlcltdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vY2hhbmdlLW9yZGVyc2ApO1xuICB9XG5cbiAgcmVhZENoYW5nZU9yZGVyKHdvcmtPcmRlcklkOiBudW1iZXIsIGNoYW5nZU9yZGVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8V29ya0NoYW5nZU9yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya0NoYW5nZU9yZGVyPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vY2hhbmdlLW9yZGVycy8ke2NoYW5nZU9yZGVySWR9YCk7XG4gIH1cblxuICBjcmVhdGVDaGFuZ2VPcmRlcih3b3JrT3JkZXJJZDogbnVtYmVyLCBjaGFuZ2VPcmRlcjogV29ya0NoYW5nZU9yZGVyKTogT2JzZXJ2YWJsZTxXb3JrQ2hhbmdlT3JkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8V29ya0NoYW5nZU9yZGVyPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vY2hhbmdlLW9yZGVyc2AsIGNoYW5nZU9yZGVyKTtcbiAgfVxuXG4gIHVwZGF0ZUNoYW5nZU9yZGVyKHdvcmtPcmRlcklkOiBudW1iZXIsIGNoYW5nZU9yZGVySWQ6IG51bWJlciwgY2hhbmdlT3JkZXI6IFdvcmtDaGFuZ2VPcmRlcik6IE9ic2VydmFibGU8V29ya0NoYW5nZU9yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8V29ya0NoYW5nZU9yZGVyPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vY2hhbmdlLW9yZGVycy8ke2NoYW5nZU9yZGVySWR9YCwgY2hhbmdlT3JkZXIpO1xuICB9XG5cbiAgZGVsZXRlQ2hhbmdlT3JkZXIod29ya09yZGVySWQ6IG51bWJlciwgY2hhbmdlT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vY2hhbmdlLW9yZGVycy8ke2NoYW5nZU9yZGVySWR9YCk7XG4gIH1cblxuICBjb25maXJtQ2hhbmdlT3JkZXIodG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHZvaWQ+KGAke3RoaXMuZW52LmJhc2VVcmx9YXBpL2NoYW5nZS1vcmRlcnMvY3VzdG9tZXJgLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdG9rZW46IHRva2VuXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWxDaGFuZ2VPcmRlcih0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudi5iYXNlVXJsfWFwaS9jaGFuZ2Utb3JkZXJzL2N1c3RvbWVyYCwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRva2VuOiB0b2tlblxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2hlY2tsaXN0XG5cbiAgY3JlYXRlQ2hlY2tsaXN0cyh3b3JrT3JkZXJJZDogbnVtYmVyLCByZWZpbmlzaEl0ZW1JZHM6IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QmxvYj4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3JlZmluaXNoLWl0ZW1zL2AgKyByZWZpbmlzaEl0ZW1JZHMuam9pbignLCcpICsgJy9wZGZzJyxcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImJsb2JcIiBhcyBcImpzb25cIn0pO1xuICB9XG5cbiAgY3JlYXRlU2hvcENoZWNrbGlzdCh3b3JrT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QmxvYj4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3BkZmAsXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJibG9iXCIgYXMgXCJqc29uXCIgfSk7XG4gIH1cblxuICAvLyBSZWZpbmlzaCBJdGVtc1xuXG4gIHJlYWRSZWZpbmlzaEl0ZW1zKHdvcmtPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtPcmRlclJlZmluaXNoSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyUmVmaW5pc2hJdGVtW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9yZWZpbmlzaC1pdGVtc2ApO1xuICB9XG5cbiAgcmVhZFJlZmluaXNoSXRlbUNvbGxlY3Rpb24od29ya09yZGVySWQ6IG51bWJlciwgaXRlbUlkczogbnVtYmVyW10pOiBPYnNlcnZhYmxlPFdvcmtPcmRlclJlZmluaXNoSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyUmVmaW5pc2hJdGVtW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9yZWZpbmlzaC1pdGVtcy9jb2xsZWN0aW9uLyR7aXRlbUlkcy5qb2luKCcsJyl9YClcbiAgfVxuXG4gIHJlYWRSZWZpbmlzaEl0ZW0od29ya09yZGVySWQ6IG51bWJlciwgcmVmaW5pc2hJdGVtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8V29ya09yZGVyUmVmaW5pc2hJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVyUmVmaW5pc2hJdGVtPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vcmVmaW5pc2gtaXRlbXMvJHtyZWZpbmlzaEl0ZW1JZH1gKTtcbiAgfVxuXG4gIGNyZWF0ZVJlZmluaXNoSXRlbXMod29ya09yZGVySWQ6IG51bWJlciwgcmVmaW5pc2hJdGVtczogV29ya09yZGVyUmVmaW5pc2hJdGVtW10pOiBPYnNlcnZhYmxlPFdvcmtPcmRlclJlZmluaXNoSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFdvcmtPcmRlclJlZmluaXNoSXRlbVtdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vcmVmaW5pc2gtaXRlbXMvY29sbGVjdGlvbmAsIHJlZmluaXNoSXRlbXMpO1xuICB9XG5cbiAgdXBkYXRlUmVmaW5pc2hJdGVtKHdvcmtPcmRlcklkOiBudW1iZXIsIHJlZmluaXNoSXRlbUlkOiBudW1iZXIsIHJlZmluaXNoSXRlbTogV29ya09yZGVyUmVmaW5pc2hJdGVtKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXJSZWZpbmlzaEl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxXb3JrT3JkZXJSZWZpbmlzaEl0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9yZWZpbmlzaC1pdGVtcy8ke3JlZmluaXNoSXRlbUlkfWAsIHJlZmluaXNoSXRlbSk7XG4gIH1cblxuICBkZWxldGVSZWZpbmlzaEl0ZW0od29ya09yZGVySWQ6IG51bWJlciwgcmVmaW5pc2hJdGVtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L3JlZmluaXNoLWl0ZW1zLyR7cmVmaW5pc2hJdGVtSWR9YCk7XG4gIH1cblxuICAvLyBNaWxsaW5nIEl0ZW1zXG5cbiAgcmVhZE1pbGxpbmdJdGVtcyh3b3JrT3JkZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxNaWxsaW5nSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TWlsbGluZ0l0ZW1bXT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L21pbGxpbmctaXRlbXNgKTtcbiAgfVxuXG4gIHJlYWRNaWxsaW5nSXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCBtaWxsaW5nSXRlbUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1pbGxpbmdJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TWlsbGluZ0l0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zLyR7bWlsbGluZ0l0ZW1JZH1gKTtcbiAgfVxuXG4gIGNyZWF0ZU1pbGxpbmdJdGVtKHdvcmtPcmRlcklkOiBudW1iZXIsIG1pbGxpbmdJdGVtOiBNaWxsaW5nSXRlbSk6IE9ic2VydmFibGU8TWlsbGluZ0l0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TWlsbGluZ0l0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zYCwgbWlsbGluZ0l0ZW0pO1xuICB9XG5cbiAgdXBkYXRlTWlsbGluZ0l0ZW0od29ya09yZGVySWQ6IG51bWJlciwgbWlsbGluZ0l0ZW1JZDogbnVtYmVyLCBtaWxsaW5nSXRlbTogTWlsbGluZ0l0ZW0pOiBPYnNlcnZhYmxlPE1pbGxpbmdJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8TWlsbGluZ0l0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zLyR7bWlsbGluZ0l0ZW1JZH1gLCBtaWxsaW5nSXRlbSk7XG4gIH1cblxuICB1cGRhdGVNaWxsaW5nSXRlbUNvbGxlY3Rpb24od29ya09yZGVySWQ6IG51bWJlciwgaXRlbUlkczogbnVtYmVyW10sIG1pbGxpbmdJdGVtczogTWlsbGluZ0l0ZW1bXSk6IE9ic2VydmFibGU8TWlsbGluZ0l0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PE1pbGxpbmdJdGVtW10+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9taWxsaW5nLWl0ZW1zL2NvbGxlY3Rpb24vJHtpdGVtSWRzLmpvaW4oJywnKX1gLCBtaWxsaW5nSXRlbXMpO1xuICB9XG5cbiAgZGVsZXRlTWlsbGluZ0l0ZW0od29ya09yZGVySWQ6IG51bWJlciwgbWlsbGluZ0l0ZW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vbWlsbGluZy1pdGVtcy8ke21pbGxpbmdJdGVtSWR9YCk7XG4gIH1cblxuICAvLyBSZXBvcnQgSXRlbXNcblxuICByZWFkUmVwb3J0TWlsbGluZ0l0ZW1zKCk6IE9ic2VydmFibGU8UmVwb3J0TWlsbGluZ0l0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlcG9ydE1pbGxpbmdJdGVtW10+KGAke3RoaXMuZW52LmJhc2VVcmx9YXBpL3JlcG9ydC1taWxsaW5nLWl0ZW1zYCk7XG4gIH1cblxuICByZWFkUmVwb3J0UmVmaW5pc2hJdGVtcygpOiBPYnNlcnZhYmxlPFJlcG9ydFJlZmluaXNoSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UmVwb3J0UmVmaW5pc2hJdGVtW10+KGAke3RoaXMuZW52LmJhc2VVcmx9YXBpL3JlcG9ydC1yZWZpbmlzaC1pdGVtc2ApO1xuICB9XG5cbiAgcmVhZFBhY2thZ2VEZXRhaWxUb3RhbHMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlLCBzdGF0dXNlczogV29ya09yZGVyU3RhdHVzW10pOiBPYnNlcnZhYmxlPFBhY2thZ2VUb3RhbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFja2FnZVRvdGFsW10+KGAke3RoaXMudXJsfS9wYWNrYWdlLWRldGFpbHMvdG90YWxzYCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgc3RhcnREYXRlOiBzdGFydERhdGUudG9VVENTdHJpbmcoKSxcbiAgICAgICAgICBlbmREYXRlOiBlbmREYXRlLnRvVVRDU3RyaW5nKCksXG4gICAgICAgICAgc3RhdHVzZXM6IHN0YXR1c2VzLm1hcChzdGF0dXMgPT4gc3RhdHVzLnRvU3RyaW5nKCkpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gSW52ZW50b3J5IEl0ZW1zXG5cbiAgcmVhZEludmVudG9yeUl0ZW1zKHdvcmtPcmRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtPcmRlckludmVudG9yeUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFdvcmtPcmRlckludmVudG9yeUl0ZW1bXT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L2ludmVudG9yeS1pdGVtc2ApO1xuICB9XG5cbiAgcmVhZEludmVudG9yeUl0ZW0od29ya09yZGVySWQ6IG51bWJlciwgaW52ZW50b3J5SXRlbUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFdvcmtPcmRlckludmVudG9yeUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxXb3JrT3JkZXJJbnZlbnRvcnlJdGVtPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vaW52ZW50b3J5LWl0ZW1zLyR7aW52ZW50b3J5SXRlbUlkfWApO1xuICB9XG5cbiAgY3JlYXRlSW52ZW50b3J5SXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCBpbnZlbnRvcnlJdGVtOiBXb3JrT3JkZXJJbnZlbnRvcnlJdGVtKTogT2JzZXJ2YWJsZTxXb3JrT3JkZXJJbnZlbnRvcnlJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFdvcmtPcmRlckludmVudG9yeUl0ZW0+KGAke3RoaXMudXJsfS8ke3dvcmtPcmRlcklkfS9pbnZlbnRvcnktaXRlbXNgLCBpbnZlbnRvcnlJdGVtKTtcbiAgfVxuXG4gIHVwZGF0ZUludmVudG9yeUl0ZW0od29ya09yZGVySWQ6IG51bWJlciwgaW52ZW50b3J5SXRlbUlkOiBudW1iZXIsIGludmVudG9yeUl0ZW06IFdvcmtPcmRlckludmVudG9yeUl0ZW0pOiBPYnNlcnZhYmxlPFdvcmtPcmRlckludmVudG9yeUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxXb3JrT3JkZXJJbnZlbnRvcnlJdGVtPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vaW52ZW50b3J5LWl0ZW1zLyR7aW52ZW50b3J5SXRlbUlkfWAsIGludmVudG9yeUl0ZW0pO1xuICB9XG5cbiAgZGVsZXRlSW52ZW50b3J5SXRlbSh3b3JrT3JkZXJJZDogbnVtYmVyLCBpbnZlbnRvcnlJdGVtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L2ludmVudG9yeS1pdGVtcy8ke2ludmVudG9yeUl0ZW1JZH1gKTtcbiAgfVxuXG4gIHJlYWRJbnZlbnRvcnlJdGVtQ29sbGVjdGlvbih3b3JrT3JkZXJJZDogbnVtYmVyLCBpdGVtSWRzOiBudW1iZXJbXSk6IE9ic2VydmFibGU8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPihgJHt0aGlzLnVybH0vJHt3b3JrT3JkZXJJZH0vaW52ZW50b3J5LWl0ZW1zL2NvbGxlY3Rpb24vJHtpdGVtSWRzLmpvaW4oJywnKX1gKVxuICB9XG5cbiAgY3JlYXRlSW52ZW50b3J5SXRlbXMod29ya09yZGVySWQ6IG51bWJlciwgaW52ZW50b3J5SXRlbXM6IFdvcmtPcmRlckludmVudG9yeUl0ZW1bXSk6IE9ic2VydmFibGU8V29ya09yZGVySW52ZW50b3J5SXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFdvcmtPcmRlckludmVudG9yeUl0ZW1bXT4oYCR7dGhpcy51cmx9LyR7d29ya09yZGVySWR9L2ludmVudG9yeS1pdGVtcy9jb2xsZWN0aW9uYCwgaW52ZW50b3J5SXRlbXMpO1xuICB9XG59XG4iXX0=