@esolve/ng-esolve-connect 0.10.2 → 0.11.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 (50) hide show
  1. package/esm2020/lib/account/esolve-account.service.mjs +52 -61
  2. package/esm2020/lib/auth/esolve-auth-interceptor.service.mjs +7 -6
  3. package/esm2020/lib/auth/esolve-auth.service.mjs +36 -37
  4. package/esm2020/lib/banners/esolve-banner.service.mjs +9 -10
  5. package/esm2020/lib/cart/esolve-cart.service.mjs +30 -31
  6. package/esm2020/lib/category-tree/esolve-category-tree.service.mjs +20 -15
  7. package/esm2020/lib/locations/esolve-locations.service.mjs +10 -9
  8. package/esm2020/lib/media/esolve-heading-record.mjs +2 -0
  9. package/esm2020/lib/media/esolve-heading.mjs +7 -0
  10. package/esm2020/lib/media/esolve-media.service.mjs +58 -23
  11. package/esm2020/lib/menu/esolve-menu.service.mjs +8 -10
  12. package/esm2020/lib/news/esolve-news.service.mjs +14 -18
  13. package/esm2020/lib/ng-esolve-connect.module.mjs +4 -4
  14. package/esm2020/lib/payment/esolve-payment.service.mjs +65 -76
  15. package/esm2020/lib/session/esolve-session.mjs +8 -11
  16. package/esm2020/lib/session/esolve-session.service.mjs +42 -30
  17. package/esm2020/lib/session/esolve-stored-session.mjs +1 -1
  18. package/esm2020/lib/shared/cookie/esolve-cookie.service.mjs +106 -0
  19. package/esm2020/lib/shared/error-handler/esolve-error-handler.service.mjs +3 -3
  20. package/esm2020/lib/shared/response-handler/esolve-response-handler.service.mjs +3 -3
  21. package/esm2020/lib/shared/seo/esolve-seo.service.mjs +4 -4
  22. package/esm2020/lib/shipping/esolve-shipping.service.mjs +39 -39
  23. package/esm2020/lib/stock/esolve-stock-item.mjs +6 -1
  24. package/esm2020/lib/stock/esolve-stock-record.mjs +1 -1
  25. package/esm2020/lib/stock/esolve-stock.service.mjs +38 -39
  26. package/esm2020/lib/topics/esolve-topic.service.mjs +6 -10
  27. package/esm2020/public-api.mjs +3 -1
  28. package/fesm2015/esolve-ng-esolve-connect.mjs +570 -436
  29. package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
  30. package/fesm2020/esolve-ng-esolve-connect.mjs +566 -436
  31. package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
  32. package/lib/auth/esolve-auth.service.d.ts +2 -2
  33. package/lib/cart/esolve-cart.service.d.ts +8 -1
  34. package/lib/category-tree/esolve-category-tree.service.d.ts +4 -1
  35. package/lib/locations/esolve-locations.service.d.ts +2 -0
  36. package/lib/media/esolve-heading-record.d.ts +5 -0
  37. package/lib/media/esolve-heading.d.ts +5 -0
  38. package/lib/media/esolve-media.service.d.ts +25 -4
  39. package/lib/news/esolve-news.service.d.ts +1 -1
  40. package/lib/payment/esolve-payment.service.d.ts +16 -14
  41. package/lib/session/esolve-session.d.ts +3 -4
  42. package/lib/session/esolve-session.service.d.ts +7 -3
  43. package/lib/session/esolve-stored-session.d.ts +2 -2
  44. package/lib/shared/cookie/esolve-cookie.service.d.ts +36 -0
  45. package/lib/shipping/esolve-shipping.service.d.ts +11 -11
  46. package/lib/stock/esolve-stock-item.d.ts +8 -0
  47. package/lib/stock/esolve-stock-record.d.ts +1 -0
  48. package/lib/stock/esolve-stock.service.d.ts +10 -10
  49. package/package.json +5 -4
  50. package/public-api.d.ts +2 -0
@@ -15,9 +15,9 @@ export class EsolveCategoryTreeService {
15
15
  * Retrieves the category tree from eSolve instance and coverts it to the correct format.
16
16
  */
17
17
  getCategoryTree() {
18
- let params = new HttpParams();
19
- params = params.set('ws_id', this.config.wsid);
20
- return this.http.get(`${this.config.api_url}/service/get-tree.php`, { params }).pipe(map(response => {
18
+ return this.http
19
+ .get(`${this.config.api_url}/get-tree.php`)
20
+ .pipe(map((response) => {
21
21
  if (response.records === undefined) {
22
22
  throw response;
23
23
  }
@@ -25,7 +25,9 @@ export class EsolveCategoryTreeService {
25
25
  }));
26
26
  }
27
27
  /**
28
- * Retrieve the details of a category tree item from the eSolve instance and converts it to the correct format.
28
+ * Retrieve the details of a category tree item from the eSolve instance and
29
+ * converts it to the correct format.
30
+ *
29
31
  * @param options Filter options
30
32
  */
31
33
  getCategoryTreeItem(options) {
@@ -50,16 +52,18 @@ export class EsolveCategoryTreeService {
50
52
  }
51
53
  if (type && (esolve_id || sef_description)) {
52
54
  let params = new HttpParams();
53
- params = params.set('ws_id', this.config.wsid.toString());
54
- params = params.set('type', type.toString());
55
+ params = params.set('type', type);
55
56
  if (esolve_id) {
56
- params = params.set('id', esolve_id.toString());
57
+ params = params.set('id', esolve_id);
57
58
  }
58
59
  if (sef_description) {
59
- params = params.set('sef_description', sef_description.toString());
60
+ params = params.set('sef_description', sef_description);
60
61
  }
61
- return this.http.get(`${this.config.api_url}/service/get-tree-item.php`, { params }).pipe(map(response => {
62
- if ((response.records === undefined) || (response.records.length <= 0)) {
62
+ return this.http
63
+ .get(`${this.config.api_url}/get-tree-item.php`, { params })
64
+ .pipe(map((response) => {
65
+ if ((response.records === undefined) ||
66
+ (response.records.length <= 0)) {
63
67
  throw response;
64
68
  }
65
69
  return this.processTreeItem(response.records[0]);
@@ -69,6 +73,7 @@ export class EsolveCategoryTreeService {
69
73
  }
70
74
  /**
71
75
  * Processes the eSolve tree records and converts them into the correct format.
76
+ *
72
77
  * @param tree_records Records to process
73
78
  */
74
79
  processTree(tree_records) {
@@ -112,15 +117,15 @@ export class EsolveCategoryTreeService {
112
117
  return null;
113
118
  }
114
119
  }
115
- EsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
116
- EsolveCategoryTreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{
120
+ EsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
121
+ EsolveCategoryTreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{
118
123
  type: Injectable,
119
124
  args: [{
120
- providedIn: 'root'
125
+ providedIn: 'root',
121
126
  }]
122
127
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
123
128
  type: Inject,
124
129
  args: [ESOLVE_CONNECT_CONFIG]
125
130
  }] }, { type: i1.HttpClient }]; } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9lc29sdmUtY2F0ZWdvcnktdHJlZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQVdyRSxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7O09BRUc7SUFDSSxlQUFlO1FBQ2xCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDaEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sdUJBQXVCLEVBQzdDLEVBQUUsTUFBTSxFQUFFLENBQ2IsQ0FBQyxJQUFJLENBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxRQUFRLENBQUMsT0FB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QU0sQ0FBQyxlQUFlLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRU8sU0FBUyxDQUFDLEVBQVU7UUFDeEIsSUFBSSxJQUFnQyxDQUFDO1FBQ3JDLElBQUksU0FBMEIsQ0FBQztRQUUvQixNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhELElBQUksYUFBYSxFQUFFO1lBQ2YsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRW5DLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDOUQsU0FBUyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTVDLE9BQU87Z0JBQ0gsSUFBSTtnQkFDSixTQUFTO2FBQ1osQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7c0hBdEtRLHlCQUF5QixrQkFFdEIscUJBQXFCOzBIQUZ4Qix5QkFBeUIsY0FGdEIsTUFBTTsyRkFFVCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnLCBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzcG9uc2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQ2F0ZWdvcnlSZWNvcmQsXHJcbiAgICBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkLFxyXG4gICAgRXNvbHZlU3ViY2F0ZWdvcnlSZWNvcmRcclxufSBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0tcmVjb3JkJztcclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1PcHRpb25zIH0gZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtLW9wdGlvbnMnO1xyXG5cclxuaW50ZXJmYWNlIEVzb2x2ZUNhdGVnb3J5SWRlbnRpZmllciB7XHJcbiAgICB0eXBlOiAnY2F0ZWdvcnknIHwgJ3N1YmNhdGVnb3J5JztcclxuICAgIGVzb2x2ZV9pZDogbnVtYmVyIHwgc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhdGVnb3J5VHJlZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgY2F0ZWdvcnkgdHJlZSBmcm9tIGVTb2x2ZSBpbnN0YW5jZSBhbmQgY292ZXJ0cyBpdCB0byB0aGUgY29ycmVjdCBmb3JtYXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDYXRlZ29yeVRyZWUoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd3c19pZCcsIHRoaXMuY29uZmlnLndzaWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTwoRXNvbHZlQ2F0ZWdvcnlSZWNvcmQgfCBFc29sdmVTdWJjYXRlZ29yeVJlY29yZClbXT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXJ2aWNlL2dldC10cmVlLnBocGAsXHJcbiAgICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1RyZWUocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIHRoZSBkZXRhaWxzIG9mIGEgY2F0ZWdvcnkgdHJlZSBpdGVtIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSBhbmQgY29udmVydHMgaXQgdG8gdGhlIGNvcnJlY3QgZm9ybWF0LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldENhdGVnb3J5VHJlZUl0ZW0ob3B0aW9uczogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbU9wdGlvbnMpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0+IHtcclxuICAgICAgICBsZXQgdHlwZSE6ICdjYXRlZ29yeScgfCAnc3ViY2F0ZWdvcnknO1xyXG4gICAgICAgIGxldCBlc29sdmVfaWQhOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgICAgICAgbGV0IHNlZl9kZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuaWQpIHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnlJZGVudGlmaWVyID0gdGhpcy5wcm9jZXNzSUQob3B0aW9ucy5pZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2F0ZWdvcnlJZGVudGlmaWVyKSB7XHJcbiAgICAgICAgICAgICAgICB0eXBlID0gY2F0ZWdvcnlJZGVudGlmaWVyLnR5cGU7XHJcbiAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSBjYXRlZ29yeUlkZW50aWZpZXIuZXNvbHZlX2lkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnR5cGUpIHtcclxuICAgICAgICAgICAgdHlwZSA9IG9wdGlvbnMudHlwZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmVzb2x2ZV9pZCkge1xyXG4gICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gb3B0aW9ucy5lc29sdmVfaWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zZWZfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIHNlZl9kZXNjcmlwdGlvbiA9IG9wdGlvbnMuc2VmX2Rlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZSAmJiAoZXNvbHZlX2lkIHx8IHNlZl9kZXNjcmlwdGlvbikpIHtcclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd3c19pZCcsIHRoaXMuY29uZmlnLndzaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3R5cGUnLCB0eXBlLnRvU3RyaW5nKCkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVzb2x2ZV9pZCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaWQnLCBlc29sdmVfaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChzZWZfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlZl9kZXNjcmlwdGlvbicsIHNlZl9kZXNjcmlwdGlvbi50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXJ2aWNlL2dldC10cmVlLWl0ZW0ucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHwgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1RyZWVJdGVtKHJlc3BvbnNlLnJlY29yZHNbMF0pO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdJbnZhbGlkIG9wdGlvbnMnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHRyZWUgcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdC5cclxuICAgICAqIEBwYXJhbSB0cmVlX3JlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1RyZWUodHJlZV9yZWNvcmRzOiAoRXNvbHZlQ2F0ZWdvcnlSZWNvcmQgfCBFc29sdmVTdWJjYXRlZ29yeVJlY29yZClbXSk6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXSB7XHJcbiAgICAgICAgY29uc3QgdHJlZV9pdGVtczogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdID0gW107XHJcblxyXG4gICAgICAgIGlmICh0cmVlX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB0cmVlX3JlY29yZCBvZiB0cmVlX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGxldCBlc29sdmVfaWQ6IHN0cmluZyB8IG51bWJlciA9ICcnO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBhcmVudF9pZCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodHJlZV9yZWNvcmQudHlwZSA9PT0gJ2NhdGVnb3J5Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gdGhpcy5wcm9jZXNzVHJlZSh0cmVlX3JlY29yZC5jaGlsZHJlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gdHJlZV9yZWNvcmQubWVudV9pZDtcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRfaWQgPSB0cmVlX3JlY29yZC5vd25lcl9tZW51X2lkO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSB0cmVlX3JlY29yZC5pZDtcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRfaWQgPSB0cmVlX3JlY29yZC5tZW51X2lkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRyZWVfaXRlbXMucHVzaChuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCxcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5kaXNwbGF5X29ubHksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRyZWVfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJlZUl0ZW0ocmVjb3JkOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkKTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgICAgICByZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICByZWNvcmQucGFyZW50X2lkLFxyXG4gICAgICAgICAgICByZWNvcmQuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHJlY29yZC5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHJlY29yZC5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgcmVjb3JkLnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgIHJlY29yZC5hY3RpdmUsXHJcbiAgICAgICAgICAgIHJlY29yZC5kaXNwbGF5X29ubHksXHJcbiAgICAgICAgICAgICcnLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgIHJlY29yZC5zZW9fZGVzY3JpcHRpb25cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc0lEKGlkOiBzdHJpbmcpOiBFc29sdmVDYXRlZ29yeUlkZW50aWZpZXIgfCBudWxsIHtcclxuICAgICAgICBsZXQgdHlwZTogJ2NhdGVnb3J5JyB8ICdzdWJjYXRlZ29yeSc7XHJcbiAgICAgICAgbGV0IGVzb2x2ZV9pZDogbnVtYmVyIHwgc3RyaW5nO1xyXG5cclxuICAgICAgICBjb25zdCB0eXBlX2NvZGVfcmVnZXggPSAvXlxcPFxcPChDQVR8U1VCKVxcPlxcPi9nO1xyXG4gICAgICAgIGNvbnN0IG1hdGNoX3Jlc3VsdHMgPSBpZC5tYXRjaCh0eXBlX2NvZGVfcmVnZXgpO1xyXG5cclxuICAgICAgICBpZiAobWF0Y2hfcmVzdWx0cykge1xyXG4gICAgICAgICAgICBjb25zdCB0eXBlX2NvZGUgPSBtYXRjaF9yZXN1bHRzWzBdO1xyXG5cclxuICAgICAgICAgICAgdHlwZSA9ICh0eXBlX2NvZGUgPT09ICc8PENBVD4+JyA/ICdjYXRlZ29yeScgOiAnc3ViY2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgZXNvbHZlX2lkID0gaWQucmVwbGFjZSh0eXBlX2NvZGVfcmVnZXgsICcnKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICAgICAgZXNvbHZlX2lkXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9lc29sdmUtY2F0ZWdvcnktdHJlZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQVdyRSxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7O09BRUc7SUFDSSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sZUFBZSxDQUN4QzthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVE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Q0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzlELFNBQVMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU1QyxPQUFPO2dCQUNILElBQUk7Z0JBQ0osU0FBUzthQUNaLENBQUM7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O3NIQS9LUSx5QkFBeUIsa0JBRXRCLHFCQUFxQjswSEFGeEIseUJBQXlCLGNBRnRCLE1BQU07MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLXJlc3BvbnNlJztcclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZUNhdGVnb3J5UmVjb3JkLFxyXG4gICAgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkLFxyXG59IGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtIH0gZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtJztcclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbU9wdGlvbnMgfSBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0tb3B0aW9ucyc7XHJcblxyXG5pbnRlcmZhY2UgRXNvbHZlQ2F0ZWdvcnlJZGVudGlmaWVyIHtcclxuICAgIHR5cGU6ICdjYXRlZ29yeScgfCAnc3ViY2F0ZWdvcnknO1xyXG4gICAgZXNvbHZlX2lkOiBudW1iZXIgfCBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhdGVnb3J5VHJlZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgY2F0ZWdvcnkgdHJlZSBmcm9tIGVTb2x2ZSBpbnN0YW5jZSBhbmQgY292ZXJ0cyBpdCB0byB0aGUgY29ycmVjdCBmb3JtYXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDYXRlZ29yeVRyZWUoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8KEVzb2x2ZUNhdGVnb3J5UmVjb3JkIHwgRXNvbHZlU3ViY2F0ZWdvcnlSZWNvcmQpW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmVlLnBocGBcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1RyZWUocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIGRldGFpbHMgb2YgYSBjYXRlZ29yeSB0cmVlIGl0ZW0gZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIGFuZFxyXG4gICAgICogY29udmVydHMgaXQgdG8gdGhlIGNvcnJlY3QgZm9ybWF0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1PcHRpb25zXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0+IHtcclxuICAgICAgICBsZXQgdHlwZSE6ICdjYXRlZ29yeScgfCAnc3ViY2F0ZWdvcnknO1xyXG4gICAgICAgIGxldCBlc29sdmVfaWQhOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgICAgICAgbGV0IHNlZl9kZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuaWQpIHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnlJZGVudGlmaWVyID0gdGhpcy5wcm9jZXNzSUQob3B0aW9ucy5pZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2F0ZWdvcnlJZGVudGlmaWVyKSB7XHJcbiAgICAgICAgICAgICAgICB0eXBlID0gY2F0ZWdvcnlJZGVudGlmaWVyLnR5cGU7XHJcbiAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSBjYXRlZ29yeUlkZW50aWZpZXIuZXNvbHZlX2lkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnR5cGUpIHtcclxuICAgICAgICAgICAgdHlwZSA9IG9wdGlvbnMudHlwZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmVzb2x2ZV9pZCkge1xyXG4gICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gb3B0aW9ucy5lc29sdmVfaWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zZWZfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIHNlZl9kZXNjcmlwdGlvbiA9IG9wdGlvbnMuc2VmX2Rlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZSAmJiAoZXNvbHZlX2lkIHx8IHNlZl9kZXNjcmlwdGlvbikpIHtcclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0eXBlJywgdHlwZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZXNvbHZlX2lkKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpZCcsIGVzb2x2ZV9pZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChzZWZfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlZl9kZXNjcmlwdGlvbicsIHNlZl9kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyZWUtaXRlbS5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVHJlZUl0ZW0ocmVzcG9uc2UucmVjb3Jkc1swXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignSW52YWxpZCBvcHRpb25zJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHMgYW5kIGNvbnZlcnRzIHRoZW0gaW50byB0aGUgY29ycmVjdCBmb3JtYXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyZWVfcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJlZShcclxuICAgICAgICB0cmVlX3JlY29yZHM6IChFc29sdmVDYXRlZ29yeVJlY29yZCB8IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkKVtdXHJcbiAgICApOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10ge1xyXG4gICAgICAgIGNvbnN0IHRyZWVfaXRlbXM6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodHJlZV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdHJlZV9yZWNvcmQgb2YgdHJlZV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZXNvbHZlX2lkOiBzdHJpbmcgfCBudW1iZXIgPSAnJztcclxuICAgICAgICAgICAgICAgIGxldCBwYXJlbnRfaWQgPSAnJztcclxuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbjogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRyZWVfcmVjb3JkLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IHRoaXMucHJvY2Vzc1RyZWUodHJlZV9yZWNvcmQuY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCA9IHRyZWVfcmVjb3JkLm1lbnVfaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkID0gdHJlZV9yZWNvcmQub3duZXJfbWVudV9pZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gdHJlZV9yZWNvcmQuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkID0gdHJlZV9yZWNvcmQubWVudV9pZDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0cmVlX2l0ZW1zLnB1c2gobmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBlc29sdmVfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNlZl9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZW9fZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuZGlzcGxheV9vbmx5LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNlb19rZXl3b3JkcyxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cmVlX2l0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc1RyZWVJdGVtKHJlY29yZDogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZCk6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcclxuICAgICAgICAgICAgcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5pZCxcclxuICAgICAgICAgICAgcmVjb3JkLnBhcmVudF9pZCxcclxuICAgICAgICAgICAgcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICByZWNvcmQuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHJlY29yZC5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICByZWNvcmQuYWN0aXZlLFxyXG4gICAgICAgICAgICByZWNvcmQuZGlzcGxheV9vbmx5LFxyXG4gICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2Rlc2NyaXB0aW9uXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NJRChpZDogc3RyaW5nKTogRXNvbHZlQ2F0ZWdvcnlJZGVudGlmaWVyIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IHR5cGU6ICdjYXRlZ29yeScgfCAnc3ViY2F0ZWdvcnknO1xyXG4gICAgICAgIGxldCBlc29sdmVfaWQ6IG51bWJlciB8IHN0cmluZztcclxuXHJcbiAgICAgICAgY29uc3QgdHlwZV9jb2RlX3JlZ2V4ID0gL15cXDxcXDwoQ0FUfFNVQilcXD5cXD4vZztcclxuICAgICAgICBjb25zdCBtYXRjaF9yZXN1bHRzID0gaWQubWF0Y2godHlwZV9jb2RlX3JlZ2V4KTtcclxuXHJcbiAgICAgICAgaWYgKG1hdGNoX3Jlc3VsdHMpIHtcclxuICAgICAgICAgICAgY29uc3QgdHlwZV9jb2RlID0gbWF0Y2hfcmVzdWx0c1swXTtcclxuXHJcbiAgICAgICAgICAgIHR5cGUgPSAodHlwZV9jb2RlID09PSAnPDxDQVQ+PicgPyAnY2F0ZWdvcnknIDogJ3N1YmNhdGVnb3J5Jyk7XHJcbiAgICAgICAgICAgIGVzb2x2ZV9pZCA9IGlkLnJlcGxhY2UodHlwZV9jb2RlX3JlZ2V4LCAnJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgICAgIGVzb2x2ZV9pZFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,4 +1,3 @@
1
- import { HttpParams } from '@angular/common/http';
2
1
  import { Inject, Injectable } from '@angular/core';
3
2
  import { map } from 'rxjs/operators';
4
3
  import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect.config';
@@ -12,12 +11,13 @@ export class EsolveLocationsService {
12
11
  }
13
12
  /**
14
13
  * Retrieves a list of stock locations
14
+ *
15
15
  * @returns An `Observable` with an array of stock locations
16
16
  */
17
17
  getStockLocations() {
18
- let params = new HttpParams();
19
- params = params.set('ws_id', this.config.wsid);
20
- return this.http.get(`${this.config.api_url}/service/get-locations.php`, { params }).pipe(map(response => {
18
+ return this.http
19
+ .get(`${this.config.api_url}/get-locations.php`)
20
+ .pipe(map((response) => {
21
21
  if (response.records === undefined) {
22
22
  throw response;
23
23
  }
@@ -26,6 +26,7 @@ export class EsolveLocationsService {
26
26
  }
27
27
  /**
28
28
  * Processes the eSolve stock location records.
29
+ *
29
30
  * @param records Records to process
30
31
  * @returns An array of processed stock location records
31
32
  */
@@ -39,15 +40,15 @@ export class EsolveLocationsService {
39
40
  return stock_locations;
40
41
  }
41
42
  }
42
- EsolveLocationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveLocationsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
43
- EsolveLocationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveLocationsService, providedIn: 'root' });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveLocationsService, decorators: [{
43
+ EsolveLocationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveLocationsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
44
+ EsolveLocationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveLocationsService, providedIn: 'root' });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveLocationsService, decorators: [{
45
46
  type: Injectable,
46
47
  args: [{
47
- providedIn: 'root'
48
+ providedIn: 'root',
48
49
  }]
49
50
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
50
51
  type: Inject,
51
52
  args: [ESOLVE_CONNECT_CONFIG]
52
53
  }] }, { type: i1.HttpClient }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9sb2NhdGlvbnMvZXNvbHZlLWxvY2F0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFNOUQsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVMOzs7T0FHRztJQUNJLGlCQUFpQjtRQUNwQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLDRCQUE0QixFQUNsRCxFQUFFLE1BQU0sRUFBRSxDQUNiLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHFCQUFxQixDQUFDLE9BQW9DO1FBQzlELE1BQU0sZUFBZSxHQUEwQixFQUFFLENBQUM7UUFFbEQsSUFBSSxPQUFPLEVBQUU7WUFDVCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDekQ7U0FDSjtRQUVELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7O21IQTVDUSxzQkFBc0Isa0JBR25CLHFCQUFxQjt1SEFIeEIsc0JBQXNCLGNBRm5CLE1BQU07MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSVEsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tMb2NhdGlvbiB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWxvY2F0aW9uJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tMb2NhdGlvblJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWxvY2F0aW9uLXJlY29yZCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUxvY2F0aW9uc1NlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHN0b2NrIGxvY2F0aW9uc1xyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2Ygc3RvY2sgbG9jYXRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0xvY2F0aW9ucygpOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrTG9jYXRpb25bXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3dzX2lkJywgdGhpcy5jb25maWcud3NpZCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrTG9jYXRpb25SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXJ2aWNlL2dldC1sb2NhdGlvbnMucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tMb2NhdGlvbnMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHN0b2NrIGxvY2F0aW9uIHJlY29yZHMuXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBzdG9jayBsb2NhdGlvbiByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1N0b2NrTG9jYXRpb25zKHJlY29yZHM6IEVzb2x2ZVN0b2NrTG9jYXRpb25SZWNvcmRbXSk6IEVzb2x2ZVN0b2NrTG9jYXRpb25bXSB7XHJcbiAgICAgICAgY29uc3Qgc3RvY2tfbG9jYXRpb25zOiBFc29sdmVTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgc3RvY2tfbG9jYXRpb25zLnB1c2gobmV3IEVzb2x2ZVN0b2NrTG9jYXRpb24ocmVjb3JkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdG9ja19sb2NhdGlvbnM7XHJcbiAgICB9XHJcbn1cclxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9sb2NhdGlvbnMvZXNvbHZlLWxvY2F0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQU05RCxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLG9CQUFvQixDQUM3QzthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxPQUFvQztRQUM5RCxNQUFNLGVBQWUsR0FBMEIsRUFBRSxDQUFDO1FBRWxELElBQUksT0FBTyxFQUFFO1lBQ1QsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0o7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDOzttSEEzQ1Esc0JBQXNCLGtCQUVuQixxQkFBcUI7dUhBRnhCLHNCQUFzQixjQUZuQixNQUFNOzJGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTG9jYXRpb24gfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1sb2NhdGlvbic7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTG9jYXRpb25SZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1sb2NhdGlvbi1yZWNvcmQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTG9jYXRpb25zU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBzdG9jayBsb2NhdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBzdG9jayBsb2NhdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zKCk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tMb2NhdGlvbltdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrTG9jYXRpb25SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWxvY2F0aW9ucy5waHBgXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NTdG9ja0xvY2F0aW9ucyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBzdG9jayBsb2NhdGlvbiByZWNvcmRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHN0b2NrIGxvY2F0aW9uIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzU3RvY2tMb2NhdGlvbnMocmVjb3JkczogRXNvbHZlU3RvY2tMb2NhdGlvblJlY29yZFtdKTogRXNvbHZlU3RvY2tMb2NhdGlvbltdIHtcclxuICAgICAgICBjb25zdCBzdG9ja19sb2NhdGlvbnM6IEVzb2x2ZVN0b2NrTG9jYXRpb25bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBzdG9ja19sb2NhdGlvbnMucHVzaChuZXcgRXNvbHZlU3RvY2tMb2NhdGlvbihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHN0b2NrX2xvY2F0aW9ucztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWhlYWRpbmctcmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9tZWRpYS9lc29sdmUtaGVhZGluZy1yZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlSGVhZGluZ1JlY29yZCB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class EsolveHeading {
2
+ constructor(identifier, value) {
3
+ this.identifier = identifier;
4
+ this.value = value;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWhlYWRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1oZWFkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQ1csVUFBa0IsRUFDbEIsS0FBYTtRQURiLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNwQixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlSGVhZGluZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==
@@ -3,6 +3,7 @@ import { HttpParams } from '@angular/common/http';
3
3
  import { map } from 'rxjs/operators';
4
4
  import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect.config';
5
5
  import { EsolveMediaArticle } from './esolve-media-article';
6
+ import { EsolveHeading } from './esolve-heading';
6
7
  import { EsolveTag } from '../tags/esolve-tag';
7
8
  import { EsolveTopic } from '../topics/esolve-topic';
8
9
  import * as i0 from "@angular/core";
@@ -13,18 +14,16 @@ export class EsolveMediaService {
13
14
  this.http = http;
14
15
  }
15
16
  /**
16
- * Retrieves the media record from the eSolve instance using the identifier.
17
- * @param identifier String representing the eSolve media indentifier
17
+ * Retrieves the media record from the eSolve instance using the identifier
18
+ *
19
+ * @param identifier String representing the eSolve media identifier
18
20
  */
19
21
  getMediaArticle(identifier) {
20
- const params = new HttpParams({
21
- fromObject: {
22
- identifier
23
- }
24
- });
22
+ const params = new HttpParams({ fromObject: { identifier } });
25
23
  // TODO: Error Handling
26
- return this.getMediaRecords(params).pipe(map(response => {
27
- if ((response.records === undefined) || (response.records.length <= 0)) {
24
+ return this.getMediaRecords(params).pipe(map((response) => {
25
+ if ((response.records === undefined) ||
26
+ (response.records.length <= 0)) {
28
27
  throw response;
29
28
  }
30
29
  const mediaRecord = response.records[0];
@@ -35,18 +34,18 @@ export class EsolveMediaService {
35
34
  }));
36
35
  }
37
36
  /**
38
- * Retrieves a group of media records from the eSolve instance linked to a group.
37
+ * Retrieves a group of media records from the eSolve instance linked to a group
38
+ *
39
39
  * @param media_group String representing the eSolve media group
40
40
  */
41
41
  getGroupedMediaArticles(media_group) {
42
42
  const params = new HttpParams({
43
- fromObject: {
44
- media_group_sef: media_group
45
- }
43
+ fromObject: { media_group_sef: media_group }
46
44
  });
47
- return this.getMediaRecords(params).pipe(map(response => {
45
+ return this.getMediaRecords(params).pipe(map((response) => {
48
46
  const mediaArticles = [];
49
- if ((response.records !== undefined) && (response.records.length > 0)) {
47
+ if ((response.records !== undefined) &&
48
+ (response.records.length > 0)) {
50
49
  for (const mediaRecord of response.records) {
51
50
  if (mediaRecord.active) {
52
51
  mediaArticles.push(this.processMediaRecord(mediaRecord));
@@ -56,6 +55,34 @@ export class EsolveMediaService {
56
55
  return mediaArticles;
57
56
  }));
58
57
  }
58
+ /**
59
+ * Retrieves the media heading records from the eSolve instance using the identifiers
60
+ *
61
+ * @param identifiers Array of strings representing the eSolve heading identifiers
62
+ */
63
+ getHeadings(identifiers) {
64
+ return this.http
65
+ .get(`${this.config.api_url}/get-headings.php`, {
66
+ params: {
67
+ identifier: identifiers.join(','),
68
+ },
69
+ })
70
+ .pipe(map((response) => {
71
+ const headings = [];
72
+ if ((response.records !== undefined) &&
73
+ (response.records.length > 0)) {
74
+ for (const heading_record of response.records) {
75
+ headings.push(this.processHeadingRecord(heading_record));
76
+ }
77
+ }
78
+ return headings;
79
+ }));
80
+ }
81
+ /**
82
+ * Processes media article record
83
+ *
84
+ * @param record Record from eSolve instance
85
+ */
59
86
  processMediaRecord(record) {
60
87
  const tags = [];
61
88
  const topics = [];
@@ -71,24 +98,32 @@ export class EsolveMediaService {
71
98
  }
72
99
  return new EsolveMediaArticle(record.identifier, record.title, record.article, record.image_url, tags, topics, record.seo_page_title, record.seo_keywords, record.seo_description);
73
100
  }
101
+ /**
102
+ * Processes media heading record
103
+ *
104
+ * @param record Record from eSolve instance
105
+ */
106
+ processHeadingRecord(record) {
107
+ return new EsolveHeading(record.identifier, record.value);
108
+ }
74
109
  /**
75
110
  * Retrieves media records from eSolve instance.
76
- * @param params Header params
111
+ *
112
+ * @param params HTTP params
77
113
  */
78
114
  getMediaRecords(params) {
79
- params = params.set('ws_id', this.config.wsid);
80
- return this.http.get(`${this.config.api_url}/service/get-media.php`, { params });
115
+ return this.http.get(`${this.config.api_url}/get-media.php`, { params });
81
116
  }
82
117
  }
83
- EsolveMediaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveMediaService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
84
- EsolveMediaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveMediaService, providedIn: 'root' });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveMediaService, decorators: [{
118
+ EsolveMediaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveMediaService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
119
+ EsolveMediaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveMediaService, providedIn: 'root' });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveMediaService, decorators: [{
86
121
  type: Injectable,
87
122
  args: [{
88
- providedIn: 'root'
123
+ providedIn: 'root',
89
124
  }]
90
125
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
91
126
  type: Inject,
92
127
  args: [ESOLVE_CONNECT_CONFIG]
93
128
  }] }, { type: i1.HttpClient }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lZGlhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1tZWRpYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUtyRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLFVBQWtCO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDUixVQUFVO2FBQ2I7U0FDSixDQUFDLENBQUM7UUFFSCx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0s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QyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXlDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3SCxDQUFDOzsrR0E5R1Esa0JBQWtCLGtCQUVmLHFCQUFxQjttSEFGeEIsa0JBQWtCLGNBRmYsTUFBTTsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnLCBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVNZWRpYUFydGljbGUgfSBmcm9tICcuL2Vzb2x2ZS1tZWRpYS1hcnRpY2xlJztcclxuaW1wb3J0IHsgRXNvbHZlTWVkaWFSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1tZWRpYS1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi90YWdzL2Vzb2x2ZS10YWcnO1xyXG5pbXBvcnQgeyBFc29sdmVUb3BpYyB9IGZyb20gJy4uL3RvcGljcy9lc29sdmUtdG9waWMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVNZWRpYVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgbWVkaWEgcmVjb3JkIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyB0aGUgaWRlbnRpZmllci5cclxuICAgICAqIEBwYXJhbSBpZGVudGlmaWVyIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIGVTb2x2ZSBtZWRpYSBpbmRlbnRpZmllclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVkaWFBcnRpY2xlKGlkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFBcnRpY2xlPiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gVE9ETzogRXJyb3IgSGFuZGxpbmdcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZWRpYVJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8IChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IG1lZGlhUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIW1lZGlhUmVjb3JkLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZWRpYVJlY29yZChtZWRpYVJlY29yZCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGdyb3VwIG9mIG1lZGlhIHJlY29yZHMgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIGxpbmtlZCB0byBhIGdyb3VwLlxyXG4gICAgICogQHBhcmFtIG1lZGlhX2dyb3VwIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIGVTb2x2ZSBtZWRpYSBncm91cFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0R3JvdXBlZE1lZGlhQXJ0aWNsZXMobWVkaWFfZ3JvdXA6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFBcnRpY2xlW10+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIG1lZGlhX2dyb3VwX3NlZjogbWVkaWFfZ3JvdXBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZWRpYVJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWVkaWFBcnRpY2xlczogRXNvbHZlTWVkaWFBcnRpY2xlW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKHJlc3BvbnNlLnJlY29yZHMgIT09IHVuZGVmaW5lZCkgJiYgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1lZGlhUmVjb3JkIG9mIHJlc3BvbnNlLnJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lZGlhUmVjb3JkLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFBcnRpY2xlcy5wdXNoKHRoaXMucHJvY2Vzc01lZGlhUmVjb3JkKG1lZGlhUmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lZGlhQXJ0aWNsZXM7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NNZWRpYVJlY29yZChyZWNvcmQ6IEVzb2x2ZU1lZGlhUmVjb3JkKTogRXNvbHZlTWVkaWFBcnRpY2xlIHtcclxuICAgICAgICBjb25zdCB0YWdzOiBFc29sdmVUYWdbXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHRvcGljczogRXNvbHZlVG9waWNbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoKHJlY29yZC50YWdzKSAmJiAocmVjb3JkLnRhZ3MubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgcmVjb3JkLnRhZ3MpIHtcclxuICAgICAgICAgICAgICAgIHRhZ3MucHVzaChuZXcgRXNvbHZlVGFnKFxyXG4gICAgICAgICAgICAgICAgICAgICt0YWcuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFnLnRhZ19waHJhc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK3RhZy50YWdfd2VpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRhZy5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICgocmVjb3JkLnRvcGljcykgJiYgKHJlY29yZC50b3BpY3MubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB0b3BpYyBvZiByZWNvcmQudG9waWNzKSB7XHJcbiAgICAgICAgICAgICAgICB0b3BpY3MucHVzaChuZXcgRXNvbHZlVG9waWMoXHJcbiAgICAgICAgICAgICAgICAgICAgK3RvcGljLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvcGljLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgK3RvcGljLnNvcnRfcHJpb3JpdHlcclxuICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZU1lZGlhQXJ0aWNsZShcclxuICAgICAgICAgICAgcmVjb3JkLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgIHJlY29yZC50aXRsZSxcclxuICAgICAgICAgICAgcmVjb3JkLmFydGljbGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5pbWFnZV91cmwsXHJcbiAgICAgICAgICAgIHRhZ3MsXHJcbiAgICAgICAgICAgIHRvcGljcyxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2Rlc2NyaXB0aW9uXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBtZWRpYSByZWNvcmRzIGZyb20gZVNvbHZlIGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIHBhcmFtcyBIZWFkZXIgcGFyYW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0TWVkaWFSZWNvcmRzKHBhcmFtczogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTWVkaWFSZWNvcmRbXT4+IHtcclxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd3c19pZCcsIHRoaXMuY29uZmlnLndzaWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNZWRpYVJlY29yZFtdPj4oYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtbWVkaWEucGhwYCwgeyBwYXJhbXMgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lZGlhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1tZWRpYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLckQsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsVUFBa0I7UUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFOUQsdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFDSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtB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QUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRXNvbHZlTWVkaWFBcnRpY2xlIH0gZnJvbSAnLi9lc29sdmUtbWVkaWEtYXJ0aWNsZSc7XHJcbmltcG9ydCB7IEVzb2x2ZU1lZGlhUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbWVkaWEtcmVjb3JkJztcclxuaW1wb3J0IHsgRXNvbHZlSGVhZGluZyB9IGZyb20gJy4vZXNvbHZlLWhlYWRpbmcnO1xyXG5pbXBvcnQgeyBFc29sdmVIZWFkaW5nUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtaGVhZGluZy1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi90YWdzL2Vzb2x2ZS10YWcnO1xyXG5pbXBvcnQgeyBFc29sdmVUb3BpYyB9IGZyb20gJy4uL3RvcGljcy9lc29sdmUtdG9waWMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTWVkaWFTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIG1lZGlhIHJlY29yZCBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgdGhlIGlkZW50aWZpZXJcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaWRlbnRpZmllciBTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBlU29sdmUgbWVkaWEgaWRlbnRpZmllclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVkaWFBcnRpY2xlKGlkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFBcnRpY2xlPiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiB7IGlkZW50aWZpZXIgfSB9KTtcclxuXHJcbiAgICAgICAgLy8gVE9ETzogRXJyb3IgSGFuZGxpbmdcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZWRpYVJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IG1lZGlhUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIW1lZGlhUmVjb3JkLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZWRpYVJlY29yZChtZWRpYVJlY29yZCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGdyb3VwIG9mIG1lZGlhIHJlY29yZHMgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIGxpbmtlZCB0byBhIGdyb3VwXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG1lZGlhX2dyb3VwIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIGVTb2x2ZSBtZWRpYSBncm91cFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0R3JvdXBlZE1lZGlhQXJ0aWNsZXMobWVkaWFfZ3JvdXA6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFBcnRpY2xlW10+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHsgbWVkaWFfZ3JvdXBfc2VmOiBtZWRpYV9ncm91cCB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lZGlhUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1lZGlhQXJ0aWNsZXM6IEVzb2x2ZU1lZGlhQXJ0aWNsZVtdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzICE9PSB1bmRlZmluZWQpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWVkaWFSZWNvcmQgb2YgcmVzcG9uc2UucmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVkaWFSZWNvcmQuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYUFydGljbGVzLnB1c2godGhpcy5wcm9jZXNzTWVkaWFSZWNvcmQobWVkaWFSZWNvcmQpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFBcnRpY2xlcztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBtZWRpYSBoZWFkaW5nIHJlY29yZHMgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIHRoZSBpZGVudGlmaWVyc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZGVudGlmaWVycyBBcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgZVNvbHZlIGhlYWRpbmcgaWRlbnRpZmllcnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEhlYWRpbmdzKGlkZW50aWZpZXJzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8RXNvbHZlSGVhZGluZ1tdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUhlYWRpbmdSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWhlYWRpbmdzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXJzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRpbmdzOiBFc29sdmVIZWFkaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyAhPT0gdW5kZWZpbmVkKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGhlYWRpbmdfcmVjb3JkIG9mIHJlc3BvbnNlLnJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmdzLnB1c2godGhpcy5wcm9jZXNzSGVhZGluZ1JlY29yZChoZWFkaW5nX3JlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGVhZGluZ3M7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIG1lZGlhIGFydGljbGUgcmVjb3JkXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZCBSZWNvcmQgZnJvbSBlU29sdmUgaW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTWVkaWFSZWNvcmQocmVjb3JkOiBFc29sdmVNZWRpYVJlY29yZCk6IEVzb2x2ZU1lZGlhQXJ0aWNsZSB7XHJcbiAgICAgICAgY29uc3QgdGFnczogRXNvbHZlVGFnW10gPSBbXTtcclxuICAgICAgICBjb25zdCB0b3BpY3M6IEVzb2x2ZVRvcGljW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKChyZWNvcmQudGFncykgJiYgKHJlY29yZC50YWdzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHJlY29yZC50YWdzKSB7XHJcbiAgICAgICAgICAgICAgICB0YWdzLnB1c2gobmV3IEVzb2x2ZVRhZyhcclxuICAgICAgICAgICAgICAgICAgICArdGFnLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHRhZy50YWdfcGhyYXNlLFxyXG4gICAgICAgICAgICAgICAgICAgICt0YWcudGFnX3dlaWdodCxcclxuICAgICAgICAgICAgICAgICAgICB0YWcuZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKHJlY29yZC50b3BpY3MpICYmIChyZWNvcmQudG9waWNzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdG9waWMgb2YgcmVjb3JkLnRvcGljcykge1xyXG4gICAgICAgICAgICAgICAgdG9waWNzLnB1c2gobmV3IEVzb2x2ZVRvcGljKFxyXG4gICAgICAgICAgICAgICAgICAgICt0b3BpYy5pZCxcclxuICAgICAgICAgICAgICAgICAgICB0b3BpYy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvcGljLnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICt0b3BpYy5zb3J0X3ByaW9yaXR5XHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVNZWRpYUFydGljbGUoXHJcbiAgICAgICAgICAgIHJlY29yZC5pZGVudGlmaWVyLFxyXG4gICAgICAgICAgICByZWNvcmQudGl0bGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5hcnRpY2xlLFxyXG4gICAgICAgICAgICByZWNvcmQuaW1hZ2VfdXJsLFxyXG4gICAgICAgICAgICB0YWdzLFxyXG4gICAgICAgICAgICB0b3BpY3MsXHJcbiAgICAgICAgICAgIHJlY29yZC5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19rZXl3b3JkcyxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19kZXNjcmlwdGlvblxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgbWVkaWEgaGVhZGluZyByZWNvcmRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkIFJlY29yZCBmcm9tIGVTb2x2ZSBpbnN0YW5jZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NIZWFkaW5nUmVjb3JkKHJlY29yZDogRXNvbHZlSGVhZGluZ1JlY29yZCk6IEVzb2x2ZUhlYWRpbmcge1xyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlSGVhZGluZyhcclxuICAgICAgICAgICAgcmVjb3JkLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgIHJlY29yZC52YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgbWVkaWEgcmVjb3JkcyBmcm9tIGVTb2x2ZSBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGFyYW1zIEhUVFAgcGFyYW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0TWVkaWFSZWNvcmRzKHBhcmFtczogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTWVkaWFSZWNvcmRbXT4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNZWRpYVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1tZWRpYS5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,5 +1,4 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { HttpParams } from '@angular/common/http';
3
2
  import { map } from 'rxjs/operators';
4
3
  import { EsolveMenuItem } from './esolve-menu-item';
5
4
  import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect.config';
@@ -11,10 +10,9 @@ export class EsolveMenuService {
11
10
  this.http = http;
12
11
  }
13
12
  getMenuTree(identifier) {
14
- let menuParams = new HttpParams();
15
- menuParams = menuParams.set('identifier', identifier);
16
- menuParams = menuParams.set('ws_id', this.config.wsid);
17
- return this.http.get(`${this.config.api_url}/service/get-menu-tree.php`, { params: menuParams }).pipe(map(response => {
13
+ return this.http
14
+ .get(`${this.config.api_url}/get-menu-tree.php`, { params: { identifier } })
15
+ .pipe(map((response) => {
18
16
  if ((!response) || (response.records === undefined)) {
19
17
  throw response;
20
18
  }
@@ -34,15 +32,15 @@ export class EsolveMenuService {
34
32
  return menu;
35
33
  }
36
34
  }
37
- EsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveMenuService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
38
- EsolveMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveMenuService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveMenuService, decorators: [{
35
+ EsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveMenuService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ EsolveMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveMenuService, providedIn: 'root' });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveMenuService, decorators: [{
40
38
  type: Injectable,
41
39
  args: [{
42
- providedIn: 'root'
40
+ providedIn: 'root',
43
41
  }]
44
42
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
45
43
  type: Inject,
46
44
  args: [ESOLVE_CONNECT_CONFIG]
47
45
  }] }, { type: i1.HttpClient }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbWVudS9lc29sdmUtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhFLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBS3RGLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFRSxXQUFXLENBQUMsVUFBa0I7UUFDakMsSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNsQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDaEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sNEJBQTRCLEVBQUUsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLENBQzNFLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsRUFBRTtnQkFDakQsTUFBTSxRQUFRLENBQUM7YUFDbEI7aUJBQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQWdDO1FBQy9DLE1BQU0sSUFBSSxHQUFlLEVBQUUsQ0FBQztRQUU1QixJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUNoQyxLQUFLLE1BQU0sY0FBYyxJQUFJLE9BQU8sRUFBRTtnQkFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsQ0FDeEIsY0FBYyxDQUFDLE9BQU8sRUFDdEIsY0FBYyxDQUFDLElBQUksRUFDbkIsY0FBYyxDQUFDLE1BQU0sRUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQzNDLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs4R0F6Q1EsaUJBQWlCLGtCQUVkLHFCQUFxQjtrSEFGeEIsaUJBQWlCLGNBRmQsTUFBTTsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVNZW51VHJlZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLW1lbnUtdHJlZS1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVNZW51LCBFc29sdmVNZW51SXRlbSB9IGZyb20gJy4vZXNvbHZlLW1lbnUtaXRlbSc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZU1lbnVTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldE1lbnVUcmVlKGlkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVudT4ge1xyXG4gICAgICAgIGxldCBtZW51UGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICBtZW51UGFyYW1zID0gbWVudVBhcmFtcy5zZXQoJ2lkZW50aWZpZXInLCBpZGVudGlmaWVyKTtcclxuICAgICAgICBtZW51UGFyYW1zID0gbWVudVBhcmFtcy5zZXQoJ3dzX2lkJywgdGhpcy5jb25maWcud3NpZCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZU1lbnVUcmVlUmVjb3JkW10+PihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtbWVudS10cmVlLnBocGAsIHtwYXJhbXM6IG1lbnVQYXJhbXN9XHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCghcmVzcG9uc2UpIHx8IChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1lbnUocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZU1lbnUocmVjb3Jkcz86IEVzb2x2ZU1lbnVUcmVlUmVjb3JkW10pOiBFc29sdmVNZW51IHtcclxuICAgICAgICBjb25zdCBtZW51OiBFc29sdmVNZW51ID0gW107XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVjb3JkcyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBtZW51VHJlZVJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2gobmV3IEVzb2x2ZU1lbnVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVUcmVlUmVjb3JkLnNlZl91cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudVRyZWVSZWNvcmQubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBtZW51VHJlZVJlY29yZC50YXJnZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNZW51KG1lbnVUcmVlUmVjb3JkLmNoaWxkcmVuKVxyXG4gICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBtZW51O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbWVudS9lc29sdmUtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEUsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFLdEYsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVFLFdBQVcsQ0FBQyxVQUFrQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLG9CQUFvQixFQUMxQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQzdCO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxFQUFFO2dCQUNqRCxNQUFNLFFBQVEsQ0FBQzthQUNsQjtpQkFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBZ0M7UUFDL0MsTUFBTSxJQUFJLEdBQWUsRUFBRSxDQUFDO1FBRTVCLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQ2hDLEtBQUssTUFBTSxjQUFjLElBQUksT0FBTyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUN4QixjQUFjLENBQUMsT0FBTyxFQUN0QixjQUFjLENBQUMsSUFBSSxFQUNuQixjQUFjLENBQUMsTUFBTSxFQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FDM0MsQ0FBQyxDQUFDO2FBQ047U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzhHQXhDUSxpQkFBaUIsa0JBRWQscUJBQXFCO2tIQUZ4QixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU1lbnVUcmVlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbWVudS10cmVlLXJlY29yZCc7XHJcbmltcG9ydCB7IEVzb2x2ZU1lbnUsIEVzb2x2ZU1lbnVJdGVtIH0gZnJvbSAnLi9lc29sdmUtbWVudS1pdGVtJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZywgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZU1lbnVTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldE1lbnVUcmVlKGlkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVudT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNZW51VHJlZVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtbWVudS10cmVlLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBpZGVudGlmaWVyIH0gfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoIXJlc3BvbnNlKSB8fCAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1lbnUocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlTWVudShyZWNvcmRzPzogRXNvbHZlTWVudVRyZWVSZWNvcmRbXSk6IEVzb2x2ZU1lbnUge1xyXG4gICAgICAgIGNvbnN0IG1lbnU6IEVzb2x2ZU1lbnUgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiByZWNvcmRzICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1lbnVUcmVlUmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChuZXcgRXNvbHZlTWVudUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudVRyZWVSZWNvcmQuc2VmX3VybCxcclxuICAgICAgICAgICAgICAgICAgICBtZW51VHJlZVJlY29yZC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVUcmVlUmVjb3JkLnRhcmdldCxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1lbnUobWVudVRyZWVSZWNvcmQuY2hpbGRyZW4pXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG1lbnU7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -13,18 +13,11 @@ export class EsolveNewsService {
13
13
  this.config = config;
14
14
  this.http = http;
15
15
  }
16
- getNewsRecords(params) {
17
- params = params.set('ws_id', this.config.wsid);
18
- return this.http.get(`${this.config.api_url}/service/get-news.php`, { params });
19
- }
20
16
  getNewsArticle(identifier) {
21
- const params = new HttpParams({
22
- fromObject: {
23
- sef_title: identifier
24
- }
25
- });
17
+ const params = new HttpParams({ fromObject: { sef_title: identifier } });
26
18
  return this.getNewsRecords(params).pipe(map(response => {
27
- if ((response.records === undefined) || (response.records.length <= 0)) {
19
+ if ((response.records === undefined) ||
20
+ (response.records.length <= 0)) {
28
21
  throw response;
29
22
  }
30
23
  const newsRecord = response.records[0];
@@ -75,9 +68,9 @@ export class EsolveNewsService {
75
68
  }));
76
69
  }
77
70
  getNewsGroups() {
78
- let params = new HttpParams();
79
- params = params.set('ws_id', this.config.wsid);
80
- return this.http.get(`${this.config.api_url}/service/get-news-groups.php`, { params }).pipe(map(response => {
71
+ return this.http
72
+ .get(`${this.config.api_url}/get-news-groups.php`)
73
+ .pipe(map((response) => {
81
74
  if (response.records === undefined) {
82
75
  throw response;
83
76
  }
@@ -92,16 +85,19 @@ export class EsolveNewsService {
92
85
  const author = new EsolveNewsArticleAuthor(newsRecord.user.userid, newsRecord.user.email, newsRecord.user.firstname, newsRecord.user.surname);
93
86
  return new EsolveNewsArticle(newsRecord.id, newsRecord.title, newsRecord.sef_title, newsRecord.article, newsRecord.short_description, newsRecord.txdate, newsRecord.active, newsRecord.image, newsRecord.featured, author, newsRecord.seo_page_title, newsRecord.seo_keywords);
94
87
  }
88
+ getNewsRecords(params) {
89
+ return this.http.get(`${this.config.api_url}/get-news.php`, { params });
90
+ }
95
91
  }
96
- EsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveNewsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
97
- EsolveNewsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveNewsService, providedIn: 'root' });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: EsolveNewsService, decorators: [{
92
+ EsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveNewsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
93
+ EsolveNewsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveNewsService, providedIn: 'root' });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsolveNewsService, decorators: [{
99
95
  type: Injectable,
100
96
  args: [{
101
- providedIn: 'root'
97
+ providedIn: 'root',
102
98
  }]
103
99
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
104
100
  type: Inject,
105
101
  args: [ESOLVE_CONNECT_CONFIG]
106
102
  }] }, { type: i1.HttpClient }]; } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbmV3cy9lc29sdmUtbmV3cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBTW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFRyxjQUFjLENBQUMsTUFBa0I7UUFDckMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDaEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sdUJBQXVCLEVBQzdDLEVBQUUsTUFBTSxFQUFFLENBQ2IsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBa0I7UUFD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Q0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQW1DO1FBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQXVCLENBQ3RDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUN0QixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQ3pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUMxQixDQUFDO1FBRUYsT0FBTyxJQUFJLGlCQUFpQixDQUN4QixVQUFVLENBQUMsRUFBRSxFQUNiLFVBQVUsQ0FBQyxLQUFLLEVBQ2hCLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFVBQVUsQ0FBQyxPQUFPLEVBQ2xCLFVBQVUsQ0FBQyxpQkFBaUIsRUFDNUIsVUFBVSxDQUFDLE1BQU0sRUFDakIsVUFBVSxDQUFDLE1BQU0sRUFDakIsVUFBVSxDQUFDLEtBQUssRUFDaEIsVUFBVSxDQUFDLFFBQVEsRUFDbkIsTUFBTSxFQUNOLFVBQVUsQ0FBQyxjQUFjLEVBQ3pCLFVBQVUsQ0FBQyxZQUFZLENBQzFCLENBQUM7SUFDTixDQUFDOzs4R0FoSlEsaUJBQWlCLGtCQUdkLHFCQUFxQjtrSEFIeEIsaUJBQWlCLGNBRmQsTUFBTTsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFJUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnLCBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZSB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZSc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NHcm91cCB9IGZyb20gJy4vZXNvbHZlLW5ld3MtZ3JvdXAnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS1yZWNvcmQnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZUF1dGhvciB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS1hdXRob3InO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzR3JvdXBSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1uZXdzLWdyb3VwLXJlY29yZCc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlTGlzdCB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS1saXN0JztcclxuaW1wb3J0IHsgRXNvbHZlTmV3c0FydGljbGVPcHRpb25zIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlLW9wdGlvbnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVOZXdzU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldE5ld3NSZWNvcmRzKHBhcmFtczogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTmV3c0FydGljbGVSZWNvcmRbXT4+IHtcclxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd3c19pZCcsIHRoaXMuY29uZmlnLndzaWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVOZXdzQXJ0aWNsZVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NlcnZpY2UvZ2V0LW5ld3MucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmV3c0FydGljbGUoaWRlbnRpZmllcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVOZXdzQXJ0aWNsZT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgc2VmX3RpdGxlOiBpZGVudGlmaWVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmV3c1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8IChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld3NSZWNvcmQgPSByZXNwb25zZS5yZWNvcmRzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghbmV3c1JlY29yZC5hY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTmV3c0FydGljbGUobmV3c1JlY29yZCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROZXdzQXJ0aWNsZXMob3B0aW9uczogRXNvbHZlTmV3c0FydGljbGVPcHRpb25zKTogT2JzZXJ2YWJsZTxFc29sdmVOZXdzQXJ0aWNsZUxpc3Q+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubmV3c19ncm91cF9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCduZXdzX2dyb3VwX2lkJywgb3B0aW9ucy5uZXdzX2dyb3VwX2lkLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5uZXdzX2dyb3VwX3NlZikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCduZXdzX2dyb3VwX3NlZicsIG9wdGlvbnMubmV3c19ncm91cF9zZWYudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5wYWdlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBvcHRpb25zLnBhZ2UudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yb3dzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5mZWF0dXJlX29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmVhdHVyZV9vbmx5Jywgb3B0aW9ucy5mZWF0dXJlX29ubHkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ21hbnVmYWN0dXJlcnNfaWQnLCBvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yYW5nZXNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncmFuZ2VzX2lkJywgb3B0aW9ucy5yYW5nZXNfaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5mcm9tX2RhdGUpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZnJvbV9kYXRlJywgb3B0aW9ucy5mcm9tX2RhdGUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy50b19kYXRlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvX2RhdGUnLCBvcHRpb25zLnRvX2RhdGUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdzUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3c0FydGljbGVzOiBFc29sdmVOZXdzQXJ0aWNsZVtdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3Jkcy5mb3JFYWNoKG5ld3NBcnRpY2xlUmVjb3JkID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBuZXdzQXJ0aWNsZXMucHVzaCh0aGlzLnByb2Nlc3NOZXdzQXJ0aWNsZShuZXdzQXJ0aWNsZVJlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVOZXdzQXJ0aWNsZUxpc3QobmV3c0FydGljbGVzLCByZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3Jkcywgb3B0aW9ucy5wYWdlIHx8IDApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmV3c0dyb3VwcygpOiBPYnNlcnZhYmxlPEVzb2x2ZU5ld3NHcm91cFtdPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnd3NfaWQnLCB0aGlzLmNvbmZpZy53c2lkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTmV3c0dyb3VwUmVjb3JkW10+PihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2VydmljZS9nZXQtbmV3cy1ncm91cHMucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdzR3JvdXBzOiBFc29sdmVOZXdzR3JvdXBbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3Jkcy5mb3JFYWNoKG5ld3NHcm91cFJlY29yZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3c0dyb3Vwcy5wdXNoKG5ldyBFc29sdmVOZXdzR3JvdXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NHcm91cFJlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3c0dyb3VwUmVjb3JkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NHcm91cFJlY29yZC5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3c0dyb3VwUmVjb3JkLnNlZl9uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3c0dyb3VwcztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc05ld3NBcnRpY2xlKG5ld3NSZWNvcmQ6IEVzb2x2ZU5ld3NBcnRpY2xlUmVjb3JkKTogRXNvbHZlTmV3c0FydGljbGUge1xyXG4gICAgICAgIGNvbnN0IGF1dGhvciA9IG5ldyBFc29sdmVOZXdzQXJ0aWNsZUF1dGhvcihcclxuICAgICAgICAgICAgbmV3c1JlY29yZC51c2VyLnVzZXJpZCxcclxuICAgICAgICAgICAgbmV3c1JlY29yZC51c2VyLmVtYWlsLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLnVzZXIuZmlyc3RuYW1lLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLnVzZXIuc3VybmFtZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlTmV3c0FydGljbGUoXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuaWQsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQudGl0bGUsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuc2VmX3RpdGxlLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLmFydGljbGUsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQudHhkYXRlLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLmFjdGl2ZSxcclxuICAgICAgICAgICAgbmV3c1JlY29yZC5pbWFnZSxcclxuICAgICAgICAgICAgbmV3c1JlY29yZC5mZWF0dXJlZCxcclxuICAgICAgICAgICAgYXV0aG9yLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLnNlb19rZXl3b3Jkc1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbmV3cy9lc29sdmUtbmV3cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBTW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFRSxjQUFjLENBQUMsVUFBa0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMs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LENBQUMsT0FBTyxFQUNsQixVQUFVLENBQUMsaUJBQWlCLEVBQzVCLFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxLQUFLLEVBQ2hCLFVBQVUsQ0FBQyxRQUFRLEVBQ25CLE1BQU0sRUFDTixVQUFVLENBQUMsY0FBYyxFQUN6QixVQUFVLENBQUMsWUFBWSxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFrQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNoQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxlQUFlLEVBQ3JDLEVBQUUsTUFBTSxFQUFFLENBQ2IsQ0FBQztJQUNOLENBQUM7OzhHQWhKUSxpQkFBaUIsa0JBRWQscUJBQXFCO2tIQUZ4QixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcsIEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlJztcclxuaW1wb3J0IHsgRXNvbHZlTmV3c0dyb3VwIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1ncm91cCc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlLXJlY29yZCc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlQXV0aG9yIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlLWF1dGhvcic7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NHcm91cFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLW5ld3MtZ3JvdXAtcmVjb3JkJztcclxuaW1wb3J0IHsgRXNvbHZlTmV3c0FydGljbGVMaXN0IH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlLWxpc3QnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZU9wdGlvbnMgfSBmcm9tICcuL2Vzb2x2ZS1uZXdzLWFydGljbGUtb3B0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVOZXdzU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXROZXdzQXJ0aWNsZShpZGVudGlmaWVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZU5ld3NBcnRpY2xlPiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiB7IHNlZl90aXRsZTogaWRlbnRpZmllciB9fSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE5ld3NSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3c1JlY29yZCA9IHJlc3BvbnNlLnJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFuZXdzUmVjb3JkLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NOZXdzQXJ0aWNsZShuZXdzUmVjb3JkKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXROZXdzQXJ0aWNsZXMoXHJcbiAgICAgICAgb3B0aW9uczogRXNvbHZlTmV3c0FydGljbGVPcHRpb25zXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZU5ld3NBcnRpY2xlTGlzdD4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5uZXdzX2dyb3VwX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ25ld3NfZ3JvdXBfaWQnLCBvcHRpb25zLm5ld3NfZ3JvdXBfaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLm5ld3NfZ3JvdXBfc2VmKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ25ld3NfZ3JvdXBfc2VmJywgb3B0aW9ucy5uZXdzX2dyb3VwX3NlZi50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncm93cycsIG9wdGlvbnMucm93cy50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmZlYXR1cmVfb25seSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdmZWF0dXJlX29ubHknLCBvcHRpb25zLmZlYXR1cmVfb25seS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbWFudWZhY3R1cmVyc19pZCcsIG9wdGlvbnMubWFudWZhY3R1cmVyc19pZC50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyYW5nZXNfaWQnLCBvcHRpb25zLnJhbmdlc19pZC50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmZyb21fZGF0ZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdmcm9tX2RhdGUnLCBvcHRpb25zLmZyb21fZGF0ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRvX2RhdGUpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG9fZGF0ZScsIG9wdGlvbnMudG9fZGF0ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE5ld3NSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdzQXJ0aWNsZXM6IEVzb2x2ZU5ld3NBcnRpY2xlW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmZvckVhY2gobmV3c0FydGljbGVSZWNvcmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG5ld3NBcnRpY2xlcy5wdXNoKHRoaXMucHJvY2Vzc05ld3NBcnRpY2xlKG5ld3NBcnRpY2xlUmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZU5ld3NBcnRpY2xlTGlzdChcclxuICAgICAgICAgICAgICAgICAgICBuZXdzQXJ0aWNsZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlIHx8IDBcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0TmV3c0dyb3VwcygpOiBPYnNlcnZhYmxlPEVzb2x2ZU5ld3NHcm91cFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZU5ld3NHcm91cFJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtbmV3cy1ncm91cHMucGhwYFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdzR3JvdXBzOiBFc29sdmVOZXdzR3JvdXBbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMuZm9yRWFjaChuZXdzR3JvdXBSZWNvcmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdzR3JvdXBzLnB1c2gobmV3IEVzb2x2ZU5ld3NHcm91cChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NHcm91cFJlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NHcm91cFJlY29yZC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3c0dyb3VwUmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3c0dyb3VwUmVjb3JkLnNlZl9uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3c0dyb3VwcztcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTmV3c0FydGljbGUobmV3c1JlY29yZDogRXNvbHZlTmV3c0FydGljbGVSZWNvcmQpOiBFc29sdmVOZXdzQXJ0aWNsZSB7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gbmV3IEVzb2x2ZU5ld3NBcnRpY2xlQXV0aG9yKFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLnVzZXIudXNlcmlkLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLnVzZXIuZW1haWwsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQudXNlci5maXJzdG5hbWUsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQudXNlci5zdXJuYW1lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVOZXdzQXJ0aWNsZShcclxuICAgICAgICAgICAgbmV3c1JlY29yZC5pZCxcclxuICAgICAgICAgICAgbmV3c1JlY29yZC50aXRsZSxcclxuICAgICAgICAgICAgbmV3c1JlY29yZC5zZWZfdGl0bGUsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuYXJ0aWNsZSxcclxuICAgICAgICAgICAgbmV3c1JlY29yZC5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgbmV3c1JlY29yZC50eGRhdGUsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuYWN0aXZlLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLmltYWdlLFxyXG4gICAgICAgICAgICBuZXdzUmVjb3JkLmZlYXR1cmVkLFxyXG4gICAgICAgICAgICBhdXRob3IsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgIG5ld3NSZWNvcmQuc2VvX2tleXdvcmRzXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE5ld3NSZWNvcmRzKHBhcmFtczogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTmV3c0FydGljbGVSZWNvcmRbXT4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVOZXdzQXJ0aWNsZVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1uZXdzLnBocGAsXHJcbiAgICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==