@sapphire-ion/framework 1.0.17 → 1.0.20

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 (99) hide show
  1. package/esm2022/lib/classes/inputs/table-field-form-builder.mjs +1 -1
  2. package/esm2022/lib/components/default/default-list/abstract-list.mjs +1 -1
  3. package/esm2022/lib/components/default/default-list/default-list.component.mjs +4 -4
  4. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +1 -1
  5. package/esm2022/lib/components/default/default-list/list.mjs +1 -1
  6. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +5 -5
  7. package/esm2022/lib/components/default/default-table/default-table.component.mjs +161 -163
  8. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +3 -3
  9. package/esm2022/lib/components/default/default-view/abstract-view.mjs +1 -1
  10. package/esm2022/lib/components/default/default-view/default-view.component.mjs +3 -3
  11. package/esm2022/lib/components/default/default-view/view.mjs +19 -6
  12. package/esm2022/lib/components/default-page/default.page.mjs +3 -3
  13. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +3 -3
  14. package/esm2022/lib/components/drawer/drawer.component.mjs +5 -5
  15. package/esm2022/lib/components/filter/filter.component.mjs +8 -3
  16. package/esm2022/lib/components/inputs/custom-input.mjs +1 -1
  17. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +11 -5
  18. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +19 -10
  19. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +15 -8
  20. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +46 -15
  21. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +12 -6
  22. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +11 -5
  23. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +14 -6
  24. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +12 -6
  25. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +1 -1
  26. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +1 -3
  27. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +1 -1
  28. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +13 -5
  29. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +5 -5
  30. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +12 -6
  31. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +22 -11
  32. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +12 -6
  33. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +2 -2
  34. package/esm2022/lib/components/login/login.component.mjs +4 -4
  35. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +15 -4
  36. package/esm2022/lib/components/sion-card/sion-card.component.mjs +26 -0
  37. package/esm2022/lib/components/stepper/stepper.component.mjs +4 -4
  38. package/esm2022/lib/guards/error.interceptor.mjs +3 -3
  39. package/esm2022/lib/index.mjs +4 -2
  40. package/esm2022/lib/services/generic.service.mjs +84 -0
  41. package/esm2022/lib/services/usuario.service.mjs +3 -3
  42. package/esm2022/lib/services/web/http.ativo.service.mjs +4 -22
  43. package/esm2022/lib/services/web/http.service.mjs +26 -15
  44. package/esm2022/lib/services/web/storage.service.mjs +3 -3
  45. package/fesm2022/sapphire-ion-framework.mjs +662 -510
  46. package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
  47. package/lib/classes/inputs/table-field-form-builder.d.ts +1 -1
  48. package/lib/components/default/default-list/abstract-list.d.ts +1 -1
  49. package/lib/components/default/default-list/default-list.component.d.ts +1 -1
  50. package/lib/components/default/default-list/list.d.ts +1 -1
  51. package/lib/components/default/default-pagination/default-pagination.component.d.ts +1 -1
  52. package/lib/components/default/default-table/default-table.component.d.ts +60 -44
  53. package/lib/components/default/default-view/abstract-view.d.ts +1 -1
  54. package/lib/components/default/default-view/default-view.component.d.ts +1 -1
  55. package/lib/components/default/default-view/view.d.ts +5 -2
  56. package/lib/components/default-page/default.page.d.ts +1 -1
  57. package/lib/components/drawer/drawer-group/drawer-group.component.d.ts +1 -1
  58. package/lib/components/drawer/drawer.component.d.ts +1 -1
  59. package/lib/components/inputs/custom-input.d.ts +1 -1
  60. package/lib/components/inputs/input-bool/input-bool.component.d.ts +1 -1
  61. package/lib/components/inputs/input-cep/input-cep.component.d.ts +3 -3
  62. package/lib/components/inputs/input-color/input-color.component.d.ts +2 -2
  63. package/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.d.ts +3 -4
  64. package/lib/components/inputs/input-date/input-date.component.d.ts +1 -1
  65. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +1 -1
  66. package/lib/components/inputs/input-file/input-file.component.d.ts +1 -1
  67. package/lib/components/inputs/input-icon/input-icon.component.d.ts +1 -1
  68. package/lib/components/inputs/input-select/directives/sion-label-template.directive.d.ts +6 -0
  69. package/lib/components/inputs/input-select/directives/sion-option-template.directive.d.ts +4 -1
  70. package/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.d.ts +8 -2
  71. package/lib/components/inputs/input-select/input-select.component.d.ts +1 -1
  72. package/lib/components/inputs/input-select/input.select.configuration.d.ts +1 -1
  73. package/lib/components/inputs/input-string/input-string.component.d.ts +1 -1
  74. package/lib/components/inputs/input-telefone/input-telefone.component.d.ts +2 -1
  75. package/lib/components/inputs/input-textarea/input-textarea.component.d.ts +1 -1
  76. package/lib/components/login/login.component.d.ts +1 -1
  77. package/lib/components/popover/sion-popover/sion-popover.component.d.ts +1 -0
  78. package/lib/components/sion-card/sion-card.component.d.ts +11 -0
  79. package/lib/components/stepper/stepper.component.d.ts +2 -2
  80. package/lib/guards/error.interceptor.d.ts +1 -1
  81. package/lib/index.d.ts +2 -1
  82. package/lib/services/usuario.service.d.ts +1 -1
  83. package/lib/services/web/http.ativo.service.d.ts +1 -12
  84. package/lib/services/web/http.service.d.ts +16 -7
  85. package/lib/services/web/storage.service.d.ts +1 -1
  86. package/package.json +5 -5
  87. package/themes/compiled-styles.scss +17 -6
  88. package/themes/components/default/default-pagination/default-pagination.component.scss +1 -4
  89. package/themes/components/default/default-table/default-table.component.scss +3 -19
  90. package/themes/components/inputs/inputs.scss +1 -1
  91. package/themes/components/popover/sion-popover/sion-popover.component.scss +1 -1
  92. package/themes/components/sion-card/sion-card.component.scss +0 -0
  93. package/themes/styles/core.styles.scss +16 -12
  94. package/themes/styles/login-default.scss +1 -1
  95. package/themes/styles/styles.scss +1 -1
  96. package/esm2022/lib/components/inputs/input-cep/input-cep.configuration.mjs +0 -6
  97. package/esm2022/lib/services/generics.service.mjs +0 -84
  98. package/lib/components/inputs/input-cep/input-cep.configuration.d.ts +0 -5
  99. /package/lib/services/{generics.service.d.ts → generic.service.d.ts} +0 -0
@@ -1,28 +1,10 @@
1
- import { NavController } from '@ionic/angular';
2
- import { FormBuilder } from '@angular/forms';
3
- import { HttpClient } from '@angular/common/http';
4
1
  import { Injectable } from '@angular/core';
5
2
  import { InputBoolConfiguration, InputBoolType } from '../../components/inputs/input-bool/input-bool.configuration';
6
3
  import { HttpService } from './http.service';
7
- import { ApiUrlProviderService } from './api-url-provider.service';
8
- import { GenericService } from '../generics.service';
9
4
  import { TableField } from '../../classes/inputs/table-field';
10
5
  import { InputType } from '../../components/inputs/input-type';
11
6
  import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/common/http";
13
- import * as i2 from "@angular/forms";
14
- import * as i3 from "../generics.service";
15
- import * as i4 from "@ionic/angular";
16
- import * as i5 from "./api-url-provider.service";
17
7
  export class HttpServiceAtivo extends HttpService {
18
- constructor(http, fb, genericService, navController, apiUrlProviderService) {
19
- super(http, fb, genericService, navController, apiUrlProviderService);
20
- this.http = http;
21
- this.fb = fb;
22
- this.genericService = genericService;
23
- this.navController = navController;
24
- this.apiUrlProviderService = apiUrlProviderService;
25
- }
26
8
  /**
27
9
  * Troca o status de ativo da entidade
28
10
  */
@@ -36,14 +18,14 @@ export class HttpServiceAtivo extends HttpService {
36
18
  ListAtivo(vFilter) {
37
19
  return this.http.post(this.fullRoute + `/listAtivo`, vFilter);
38
20
  }
39
- /** Table Field padrão de ativo */
21
+ /** Table Field padrão de ativo */
40
22
  get defaultAtivo() {
41
23
  var control = this.fb.control(true);
42
24
  const field = new TableField("Ativo", "ativo", control, InputType.Bool);
43
25
  field.configuration = new InputBoolConfiguration(InputBoolType.Toggle);
44
26
  return field;
45
27
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpServiceAtivo, deps: [{ token: i1.HttpClient }, { token: i2.FormBuilder }, { token: i3.GenericService }, { token: i4.NavController }, { token: i5.ApiUrlProviderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpServiceAtivo, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
47
29
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpServiceAtivo, providedIn: 'root' }); }
48
30
  }
49
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HttpServiceAtivo, decorators: [{
@@ -51,5 +33,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
51
33
  args: [{
52
34
  providedIn: 'root'
53
35
  }]
54
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.FormBuilder }, { type: i3.GenericService }, { type: i4.NavController }, { type: i5.ApiUrlProviderService }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5hdGl2by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5hdGl2by5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQUsvRCxNQUFNLE9BQWdCLGdCQUEwQixTQUFRLFdBQWM7SUFFcEUsWUFDcUIsSUFBMEIsRUFDMUIsRUFBMkIsRUFDM0IsY0FBOEIsRUFDOUIsYUFBNkIsRUFDN0IscUJBQTRDO1FBRS9ELEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQU5uRCxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFHakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFVLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFrQixPQUFxQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsSUFBSSxZQUFZO1FBQ2QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWpDbUIsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGeEIsTUFBTTs7NEZBRUUsZ0JBQWdCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IElucHV0Qm9vbENvbmZpZ3VyYXRpb24sIElucHV0Qm9vbFR5cGV9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UsIFZpZXdSZXRvcm5vIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFZpZXdGaWx0cm9zIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ZpZXctZmlsdHJvcyc7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFNlcnZpY2VBdGl2bzxWID0gYW55PiBleHRlbmRzIEh0dHBTZXJ2aWNlPFY+IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaHR0cCAgICAgICAgICA6IEh0dHBDbGllbnQsXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmIgICAgICAgICAgICA6IEZvcm1CdWlsZGVyLCBcclxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmF2Q29udHJvbGxlciA6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgKSB7IFxyXG4gICAgc3VwZXIoaHR0cCwgZmIsIGdlbmVyaWNTZXJ2aWNlLCBuYXZDb250cm9sbGVyLCBhcGlVcmxQcm92aWRlclNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJvY2EgbyBzdGF0dXMgZGUgYXRpdm8gZGEgZW50aWRhZGVcclxuICAgKi9cclxuICBBdGl2YXIoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGJvb2xlYW4+KHRoaXMuZnVsbFJvdXRlICsgYC9hdGl2YXIvJHtpZH1gLCB7fSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMaXN0YSB0b2RvcyBvcyBkYWRvcyBhdGl2b3NcclxuICAgKiBAcGFyYW0gdkZpbHRlclxyXG4gICAqL1xyXG4gIExpc3RBdGl2bzxUID0gVmlld1JldG9ybm8+KHZGaWx0ZXI/OiBWaWV3RmlsdHJvcyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuZnVsbFJvdXRlICsgYC9saXN0QXRpdm9gLCB2RmlsdGVyKTtcclxuICB9XHJcblxyXG4gIC8qKiAgVGFibGUgRmllbGQgcGFkcsOjbyBkZSBhdGl2byAqL1xyXG4gIGdldCBkZWZhdWx0QXRpdm8oKTogVGFibGVGaWVsZCB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh0cnVlKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJBdGl2b1wiLCBcImF0aXZvXCIsIGNvbnRyb2wsIElucHV0VHlwZS5Cb29sKTtcclxuICAgIGZpZWxkLmNvbmZpZ3VyYXRpb24gPSBuZXcgSW5wdXRCb29sQ29uZmlndXJhdGlvbihJbnB1dEJvb2xUeXBlLlRvZ2dsZSk7IFxyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH1cclxufSJdfQ==
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5hdGl2by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5hdGl2by5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUsvRCxNQUFNLE9BQWdCLGdCQUEwQixTQUFRLFdBQWM7SUFFcEU7O09BRUc7SUFDSCxNQUFNLENBQUMsRUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVUsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQWtCLE9BQXFCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLFlBQVk7UUFDZCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBdkJtQixnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZ4QixNQUFNOzs0RkFFRSxnQkFBZ0I7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJbnB1dEJvb2xDb25maWd1cmF0aW9uLCBJbnB1dEJvb2xUeXBlfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1ib29sL2lucHV0LWJvb2wuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlLCBWaWV3UmV0b3JubyB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIdHRwU2VydmljZUF0aXZvPFYgPSBhbnk+IGV4dGVuZHMgSHR0cFNlcnZpY2U8Vj4ge1xyXG5cclxuICAvKipcclxuICAgKiBUcm9jYSBvIHN0YXR1cyBkZSBhdGl2byBkYSBlbnRpZGFkZVxyXG4gICAqL1xyXG4gIEF0aXZhcihpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Ym9vbGVhbj4odGhpcy5mdWxsUm91dGUgKyBgL2F0aXZhci8ke2lkfWAsIHt9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RhIHRvZG9zIG9zIGRhZG9zIGF0aXZvc1xyXG4gICAqIEBwYXJhbSB2RmlsdGVyXHJcbiAgICovXHJcbiAgTGlzdEF0aXZvPFQgPSBWaWV3UmV0b3Jubz4odkZpbHRlcj86IFZpZXdGaWx0cm9zKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5mdWxsUm91dGUgKyBgL2xpc3RBdGl2b2AsIHZGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRhYmxlIEZpZWxkIHBhZHLDo28gZGUgYXRpdm8gKi9cclxuICBnZXQgZGVmYXVsdEF0aXZvKCk6IFRhYmxlRmllbGQge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2wodHJ1ZSk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiQXRpdm9cIiwgXCJhdGl2b1wiLCBjb250cm9sLCBJbnB1dFR5cGUuQm9vbCk7XHJcbiAgICBmaWVsZC5jb25maWd1cmF0aW9uID0gbmV3IElucHV0Qm9vbENvbmZpZ3VyYXRpb24oSW5wdXRCb29sVHlwZS5Ub2dnbGUpOyBcclxuICAgIHJldHVybiBmaWVsZDtcclxuICB9XHJcbn0iXX0=
@@ -1,16 +1,16 @@
1
1
  import { BehaviorSubject, firstValueFrom } from 'rxjs';
2
2
  import { HttpClient, HttpEventType } from '@angular/common/http';
3
3
  import { FormBuilder, FormGroup } from '@angular/forms';
4
- import { Injectable } from '@angular/core';
4
+ import { Injectable, inject } from '@angular/core';
5
5
  import { NavController } from '@ionic/angular';
6
6
  import { ApiUrlProviderService } from './api-url-provider.service';
7
- import { GenericService } from '../../services/generics.service';
7
+ import { GenericService } from '../generic.service';
8
8
  import { TableField } from '../../classes/inputs/table-field';
9
9
  import { InputType } from '../../components/inputs/input-type';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/common/http";
12
12
  import * as i2 from "@angular/forms";
13
- import * as i3 from "../../services/generics.service";
13
+ import * as i3 from "../generic.service";
14
14
  import * as i4 from "@ionic/angular";
15
15
  import * as i5 from "./api-url-provider.service";
16
16
  export class HttpService {
@@ -20,7 +20,17 @@ export class HttpService {
20
20
  this.genericService = genericService;
21
21
  this.navController = navController;
22
22
  this.apiUrlProviderService = apiUrlProviderService;
23
+ this.http = inject(HttpClient);
24
+ this.fb = inject(FormBuilder);
25
+ this.genericService = inject(GenericService);
26
+ this.navController = inject(NavController);
27
+ this.apiUrlProviderService = inject(ApiUrlProviderService);
23
28
  }
29
+ /**
30
+ * Retorna a rota completa do serviço
31
+ * @return string
32
+ * @example 'https://api.example.com/{route}'
33
+ */
24
34
  get fullRoute() {
25
35
  return this.apiUrlProviderService.apiUrl + this.route;
26
36
  }
@@ -45,11 +55,11 @@ export class HttpService {
45
55
  var object = obj;
46
56
  if (obj instanceof FormGroup) {
47
57
  if (obj.invalid) {
48
- const r = new BehaviorSubject(null);
49
- r.error("[ Invalid Form ]");
50
- r.complete();
58
+ const subject = new BehaviorSubject(null);
59
+ subject.error("[ Invalid Form ]");
60
+ subject.complete();
51
61
  this.genericService.PresentToast("Verifique os campos!");
52
- return r;
62
+ return subject;
53
63
  }
54
64
  object = obj.value;
55
65
  }
@@ -57,7 +67,7 @@ export class HttpService {
57
67
  formData.append('view', JSON.stringify(object));
58
68
  //Check in the case it has a file and the view is not passed
59
69
  if (Object.entries(object).find(p => p[1] instanceof File) && this.hasFileForm && !view) {
60
- console.error("[ FormGroup contains file, but view isnt passed ]");
70
+ console.error("[ FormGroup contains file, but view isnt a valid parameter ]");
61
71
  }
62
72
  else if (view) {
63
73
  return this._Save(formData, view);
@@ -72,8 +82,11 @@ export class HttpService {
72
82
  Load(vFiltros) {
73
83
  return firstValueFrom(this.List(vFiltros));
74
84
  }
85
+ /** Retorna os campos da tabela */
75
86
  get lstTableFields() { return []; }
87
+ /** Retorna os campos da tabela para visualização/edição (se vazio retornara o padrão (lstTableFields)) */
76
88
  get lstTableFieldsView() { return this.lstTableFields; }
89
+ /** Retora o TableField padrão de id */
77
90
  get defaultId() {
78
91
  var control = this.fb.control(0);
79
92
  const field = new TableField("id", "id", control, InputType.Number);
@@ -81,6 +94,7 @@ export class HttpService {
81
94
  field.hiddenView = true;
82
95
  return field;
83
96
  }
97
+ /** Retora o TableField padrão de idEmpresa */
84
98
  get defaultIdEmpresa() {
85
99
  var control = this.fb.control(0);
86
100
  const field = new TableField("Empresa", "idEmpresa", control, InputType.Select);
@@ -92,10 +106,7 @@ export class HttpService {
92
106
  _Save(formData, view) {
93
107
  view.loading = true;
94
108
  const subject = new BehaviorSubject(null);
95
- this.http.post(this.fullRoute + `/save`, formData, {
96
- reportProgress: true,
97
- observe: 'events',
98
- }).subscribe({
109
+ this.http.post(this.fullRoute + `/save`, formData, { reportProgress: true, observe: 'events' }).subscribe({
99
110
  next: (rez) => {
100
111
  if (rez.type == HttpEventType.UploadProgress) {
101
112
  const res = rez.loaded / rez.total;
@@ -107,8 +118,8 @@ export class HttpService {
107
118
  view.submitted = false;
108
119
  view.Refresh();
109
120
  const id = Number(rez.body);
110
- //[ Redirect to view/id | redirectPath ]
111
- if (view.id == 0) {
121
+ //[ Redirect to view/:id | redirectPath ]
122
+ if (!view.id && id) {
112
123
  this.RedirectRoute(id, view.redirectPath, view.GetCurrentRouting());
113
124
  }
114
125
  }
@@ -163,4 +174,4 @@ export class ViewRetorno {
163
174
  this.lstDados = [];
164
175
  }
165
176
  }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQU0vRCxNQUFNLE9BQWdCLFdBQVc7SUFLL0IsWUFDWSxJQUEwQixFQUMxQixFQUEyQixFQUMzQixjQUE4QixFQUM5QixhQUE2QixFQUM3QixxQkFBNEM7UUFKNUMsU0FBSSxHQUFKLElBQUksQ0FBc0I7UUFDMUIsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQ3BELENBQUM7SUFFTCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDdkQsQ0FBQztJQUVEOzs7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QUFDO29CQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQTNKbUIsV0FBVzttSEFBWCxXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQStKRCxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNFLGFBQVEsR0FBUSxFQUFFLENBQUM7SUFFckIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgQXBpVXJsUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dlbmVyaWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWV3RmlsdHJvcyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy92aWV3LWZpbHRyb3MnO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGQnO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC10eXBlJztcclxuaW1wb3J0IHsgVmlldyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvdmlldyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIdHRwU2VydmljZTxWID0gYW55PiB7XHJcblxyXG4gIHB1YmxpYyBhYnN0cmFjdCByb3V0ZTogc3RyaW5nOyBcclxuICBwdWJsaWMgYWJzdHJhY3QgdGl0bGU6IHN0cmluZzsgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGh0dHAgICAgICAgICAgOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGZiICAgICAgICAgICAgOiBGb3JtQnVpbGRlciwgXHJcbiAgICBwcm90ZWN0ZWQgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIG5hdkNvbnRyb2xsZXIgOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJvdGVjdGVkIGFwaVVybFByb3ZpZGVyU2VydmljZTogQXBpVXJsUHJvdmlkZXJTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZnVsbFJvdXRlKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmwgKyB0aGlzLnJvdXRlXHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogUmV0b3JuYSBvcyBkYWRvcyBkZSBhY29yZG8gY29tIG9zIGZpbHRyb3MgXHJcbiAgICogQHBhcmFtIHZGaWx0ZXIgRmlsdHJhIG9zIGRhZG9zIChQZXNxdWlzYSwgUGFnaW5hw6fDo28gZSBJQ29tcGFyaXNvbilcclxuICAqL1xyXG4gIExpc3QodkZpbHRlcj86IFZpZXdGaWx0cm9zKTogT2JzZXJ2YWJsZTxWaWV3UmV0b3JubzxWPj57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Vmlld1JldG9ybm88Vj4+KHRoaXMuZnVsbFJvdXRlICsgYC9saXN0YCwgdkZpbHRlcik7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSBvIGRhZG8gZGEgdGFiZWxhIGFzc29jaWFkYSBjb20gYSByb3RhIGNvbSBvIGlkIGluZGljYWRvIFxyXG4gICAqIEBwYXJhbSBpZCBpZCBkbyBkYWRvXHJcbiAgKi9cclxuICBHZXQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Vj4geyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFY+KHRoaXMuZnVsbFJvdXRlICtgL2dldC8ke2lkfWApO1xyXG4gIH1cclxuICBcclxuICAvKiogU2FsdmEgYXMgYWx0ZXJhw6fDtWVzIG5vIGRhZG8gcmVjZWJpZG8gKi9cclxuICBTYXZlPFQgPSBudW1iZXI+KG9iajogYW55IHwgRm9ybUdyb3VwIHwgViwgdmlldz86IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxUPntcclxuICAgIGlmKHZpZXcpeyB2aWV3LnN1Ym1pdHRlZCA9IHRydWU7IH1cclxuXHJcbiAgICB2YXIgb2JqZWN0ID0gb2JqO1xyXG4gICAgXHJcbiAgICBpZihvYmogaW5zdGFuY2VvZiBGb3JtR3JvdXApeyBcclxuICAgICAgaWYob2JqLmludmFsaWQpeyBcclxuICAgICAgICBjb25zdCByID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxyXG4gICAgICAgIHIuZXJyb3IoXCJbIEludmFsaWQgRm9ybSBdXCIpO1xyXG4gICAgICAgIHIuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdChcIlZlcmlmaXF1ZSBvcyBjYW1wb3MhXCIpXHJcbiAgICAgICAgcmV0dXJuIHI7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBvYmplY3QgPSBvYmoudmFsdWU7IFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5GaWxlc1RvRm9ybShvYmplY3QpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCd2aWV3JywgSlNPTi5zdHJpbmdpZnkob2JqZWN0KSk7XHJcblxyXG4gICAgLy9DaGVjayBpbiB0aGUgY2FzZSBpdCBoYXMgYSBmaWxlIGFuZCB0aGUgdmlldyBpcyBub3QgcGFzc2VkXHJcbiAgICBpZihPYmplY3QuZW50cmllcyhvYmplY3QpLmZpbmQocCA9PiBwWzFdIGluc3RhbmNlb2YgRmlsZSkgJiYgdGhpcy5oYXNGaWxlRm9ybSAmJiAhdmlldyl7IFxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiWyBGb3JtR3JvdXAgY29udGFpbnMgZmlsZSwgYnV0IHZpZXcgaXNudCBwYXNzZWQgXVwiKSBcclxuICAgIH0gZWxzZSBcclxuICAgIGlmKHZpZXcpeyBcclxuICAgICAgcmV0dXJuIHRoaXMuX1NhdmUoZm9ybURhdGEsIHZpZXcpOyBcclxuICAgIH0gXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEV4Y2x1aSBhIGVudGlkYWRlICovXHJcbiAgRGVsZXRlKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHRoaXMuZnVsbFJvdXRlICsgYC9kZWxldGUvYCtpZCk7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSB0b2RvcyBvcyBkYWRvcyAqL1xyXG4gIHB1YmxpYyBMb2FkKHZGaWx0cm9zPzogVmlld0ZpbHRyb3MpOiBQcm9taXNlPFZpZXdSZXRvcm5vPFY+PntcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLkxpc3QodkZpbHRyb3MpKTtcclxuICB9XHJcblxyXG4gIGdldCBsc3RUYWJsZUZpZWxkcygpICAgIDogVGFibGVGaWVsZFtdIHsgcmV0dXJuIFtdOyB9IFxyXG4gIGdldCBsc3RUYWJsZUZpZWxkc1ZpZXcoKTogVGFibGVGaWVsZFtdIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHM7IH0gXHJcblxyXG4gIGdldCBkZWZhdWx0SWQoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJpZFwiLCBcImlkXCIsIGNvbnRyb2wsIElucHV0VHlwZS5OdW1iZXIpOyBcclxuICAgIGZpZWxkLmhpZGRlbiA9IHRydWU7XHJcbiAgICBmaWVsZC5oaWRkZW5WaWV3ID0gdHJ1ZTtcclxuICAgIHJldHVybiBmaWVsZFxyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRJZEVtcHJlc2EoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJFbXByZXNhXCIsIFwiaWRFbXByZXNhXCIsIGNvbnRyb2wsIElucHV0VHlwZS5TZWxlY3QpOyBcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuICAgICA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBoYXNGaWxlRm9ybSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHNWaWV3LmZpbHRlcihwID0+IHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkubGVuZ3RoID4gMDsgfSBcclxuXHJcbiAgcHJvdGVjdGVkIF9TYXZlKGZvcm1EYXRhOiBGb3JtRGF0YSwgdmlldzogVmlldzxIdHRwU2VydmljZT4pOiBPYnNlcnZhYmxlPGFueSB8IHZvaWQ+e1xyXG4gICAgdmlldy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5mdWxsUm91dGUgK2Avc2F2ZWAsIGZvcm1EYXRhLCB7XHJcbiAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXopID0+IHsgXHJcbiAgICAgICAgaWYocmV6LnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcyl7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSByZXoubG9hZGVkIC8gcmV6LnRvdGFsITsgXHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQocmV6KTtcclxuICAgICAgICAgIHZpZXcucHJvZ3Jlc3MgPSByZXM7ICBcclxuICAgICAgICB9ZWxzZSBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKXtcclxuICAgICAgICAgIHZpZXcubG9hZGluZyAgID0gZmFsc2U7IFxyXG4gICAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LlJlZnJlc2goKTsgXHJcblxyXG4gICAgICAgICAgY29uc3QgaWQ6IG51bWJlciA9IE51bWJlcihyZXouYm9keSlcclxuICAgICAgICAgIC8vWyBSZWRpcmVjdCB0byB2aWV3L2lkIHwgcmVkaXJlY3RQYXRoIF1cclxuICAgICAgICAgIGlmKHZpZXcuaWQgPT0gMCl7IHRoaXMuUmVkaXJlY3RSb3V0ZShpZCwgdmlldy5yZWRpcmVjdFBhdGgsIHZpZXcuR2V0Q3VycmVudFJvdXRpbmcoKSk7IH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpID0+IHsgXHJcbiAgICAgICAgc3ViamVjdC5lcnJvcihlcnIpOyBcclxuICAgICAgICB2aWV3LmxvYWRpbmcgICA9IGZhbHNlOyBcclxuICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTooKSA9PiB7IFxyXG4gICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0U3VjY2VzcygpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTsgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBSZWRpcmVjdFJvdXRlKGlkOiBudW1iZXIsIHJlZGlyZWN0UGF0aDogc3RyaW5nLCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcclxuICAgIGlmKCFyZWRpcmVjdFBhdGgpeyByZXR1cm47IH1cclxuICAgIGNvbnN0IHBhdGggPSByZWRpcmVjdFBhdGgucmVwbGFjZShcIjppZFwiLCBpZC50b1N0cmluZygpKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW2AuLi8ke3BhdGh9YF0sIHsgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUgfSlcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgRmlsZXNUb0Zvcm0ob2JqZWN0OiBWLCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSwgbHN0VGFibGVGaWVsZHNWaWV3OiBUYWJsZUZpZWxkW10gfCBudWxsID0gbnVsbCk6IEZvcm1EYXRhIHtcclxuICAgIGlmKCFsc3RUYWJsZUZpZWxkc1ZpZXcpeyBsc3RUYWJsZUZpZWxkc1ZpZXcgPSB0aGlzLmxzdFRhYmxlRmllbGRzVmlldy5maWx0ZXIocCA9PiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpOyB9XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqZWN0KSkge1xyXG4gICAgICBpZihsc3RUYWJsZUZpZWxkc1ZpZXcuZmluZChwID0+IHAuaW5kZXggPT0ga2V5ICYmIHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkpe1xyXG4gICAgICAgIGlmKHZhbHVlICYmIHR5cGVvZih2YWx1ZSkgIT0gXCJzdHJpbmdcIil7XHJcbiAgICAgICAgICBjb25zdCBmaWxlID0gdmFsdWUgYXMgRmlsZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBgZmlsZS0ke2tleX1gO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICAgICAgICBvYmplY3Rba2V5XSA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybURhdGE7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmlld1JldG9ybm88VCA9IGFueT4ge1xyXG4gIGxzdERhZG9zOiBUW10gPSBbXTtcclxuICB0b3RhbDogbnVtYmVyO1xyXG59Il19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFnQixXQUFXO0lBSy9CLFlBQ1ksSUFBMkIsRUFDM0IsRUFBNEIsRUFDNUIsY0FBK0IsRUFDL0IsYUFBOEIsRUFDOUIscUJBQTZDO1FBSjdDLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQVUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxhQUFhLEdBQVcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUN2RCxDQUFDO0lBRUQ7OztNQUdFO0lBQ0ssSUFBSSxDQUFDLE9BQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWlCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7TUFFRTtJQUNLLEdBQUcsQ0FBQyxFQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLFNBQVMsR0FBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELDJDQUEyQztJQUNwQyxJQUFJLENBQWEsR0FBd0IsRUFBRSxJQUF3QjtRQUN4RSxJQUFHLElBQUksRUFBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBRWxDLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFHLEdBQUcsWUFBWSxTQUFTLEVBQUMsQ0FBQztZQUMzQixJQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUMsQ0FBQztnQkFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQUE7Z0JBQ3hELE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUM7WUFFRCxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFaEQsNERBQTREO1FBQzVELElBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDO1lBQ3RGLE9BQU8sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUNoRixDQUFDO2FBQ0QsSUFBRyxJQUFJLEVBQUMsQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELHdCQUF3QjtJQUNqQixNQUFNLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxHQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCw2QkFBNkI7SUFDdEIsSUFBSSxDQUFDLFFBQXNCO1FBQ2hDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLElBQUksY0FBYyxLQUF1QixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsMEdBQTBHO0lBQzFHLElBQUksa0JBQWtCLEtBQW1CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFFdEUsdUNBQXVDO0lBQ3ZDLElBQUksU0FBUztRQUNYLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxLQUFLLENBQUMsTUFBTSxHQUFPLElBQUksQ0FBQztRQUN4QixLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxNQUFNLEdBQU8sSUFBSSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQVksV0FBVyxLQUFjLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdHLEtBQUssQ0FBQyxRQUFrQixFQUFFLElBQXVCO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN4RyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLGNBQWMsRUFBQyxDQUFDO29CQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFNLENBQUM7b0JBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO2dCQUN0QixDQUFDO3FCQUNELElBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUssS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUVmLE1BQU0sRUFBRSxHQUFXLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBRW5DLHlDQUF5QztvQkFDekMsSUFBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFDLENBQUM7d0JBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztvQkFDdEUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUssS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFDRCxRQUFRLEVBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ08sYUFBYSxDQUFDLEVBQVUsRUFBRSxZQUFvQixFQUFFLGNBQThCO1FBQ3BGLElBQUcsQ0FBQyxZQUFZLEVBQUMsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUE7SUFDakYsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUFTLEVBQUUsV0FBcUIsSUFBSSxRQUFRLEVBQUUsRUFBRSxxQkFBMEMsSUFBSTtRQUMvRyxJQUFHLENBQUMsa0JBQWtCLEVBQUMsQ0FBQztZQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUFDLENBQUM7UUFFOUcsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7Z0JBQzNFLElBQUcsS0FBSyxJQUFJLE9BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLEVBQUMsQ0FBQztvQkFDckMsTUFBTSxJQUFJLEdBQUcsS0FBYSxDQUFDO29CQUMzQixNQUFNLElBQUksR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUMzQixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQXpLbUIsV0FBVzttSEFBWCxXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQTZLRCxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNFLGFBQVEsR0FBUSxFQUFFLENBQUM7SUFFckIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L3ZpZXcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFNlcnZpY2U8ViA9IGFueT4ge1xyXG5cclxuICBwdWJsaWMgYWJzdHJhY3Qgcm91dGU6IHN0cmluZzsgXHJcbiAgcHVibGljIGFic3RyYWN0IHRpdGxlOiBzdHJpbmc7IFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwPyAgICAgICAgICA6IEh0dHBDbGllbnQsXHJcbiAgICBwcm90ZWN0ZWQgZmI/ICAgICAgICAgICAgOiBGb3JtQnVpbGRlciwgXHJcbiAgICBwcm90ZWN0ZWQgZ2VuZXJpY1NlcnZpY2U/OiBHZW5lcmljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBuYXZDb250cm9sbGVyPyA6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcm90ZWN0ZWQgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlPzogQXBpVXJsUHJvdmlkZXJTZXJ2aWNlLFxyXG4gICkgeyBcclxuICAgIHRoaXMuaHR0cCAgICAgICAgICAgICAgICAgID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gICAgdGhpcy5mYiAgICAgICAgICAgICAgICAgICAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZSAgICAgICAgPSBpbmplY3QoR2VuZXJpY1NlcnZpY2UpO1xyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyICAgICAgICAgPSBpbmplY3QoTmF2Q29udHJvbGxlcik7XHJcbiAgICB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZSA9IGluamVjdChBcGlVcmxQcm92aWRlclNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBhIHJvdGEgY29tcGxldGEgZG8gc2VydmnDp29cclxuICAgKiBAcmV0dXJuIHN0cmluZ1xyXG4gICAqIEBleGFtcGxlICdodHRwczovL2FwaS5leGFtcGxlLmNvbS97cm91dGV9J1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZnVsbFJvdXRlKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmwgKyB0aGlzLnJvdXRlXHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogUmV0b3JuYSBvcyBkYWRvcyBkZSBhY29yZG8gY29tIG9zIGZpbHRyb3MgXHJcbiAgICogQHBhcmFtIHZGaWx0ZXIgRmlsdHJhIG9zIGRhZG9zIChQZXNxdWlzYSwgUGFnaW5hw6fDo28gZSBJQ29tcGFyaXNvbilcclxuICAqL1xyXG4gIHB1YmxpYyBMaXN0KHZGaWx0ZXI/OiBWaWV3RmlsdHJvcyk6IE9ic2VydmFibGU8Vmlld1JldG9ybm88Vj4+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFZpZXdSZXRvcm5vPFY+Pih0aGlzLmZ1bGxSb3V0ZSArIGAvbGlzdGAsIHZGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgbyBkYWRvIGRhIHRhYmVsYSBhc3NvY2lhZGEgY29tIGEgcm90YSBjb20gbyBpZCBpbmRpY2FkbyBcclxuICAgKiBAcGFyYW0gaWQgaWQgZG8gZGFkb1xyXG4gICovXHJcbiAgcHVibGljIEdldChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxWPiB7IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Vj4odGhpcy5mdWxsUm91dGUgK2AvZ2V0LyR7aWR9YCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKiBTYWx2YSBhcyBhbHRlcmHDp8O1ZXMgbm8gZGFkbyByZWNlYmlkbyAqL1xyXG4gIHB1YmxpYyBTYXZlPFQgPSBudW1iZXI+KG9iajogYW55IHwgRm9ybUdyb3VwIHwgViwgdmlldz86IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxUPntcclxuICAgIGlmKHZpZXcpeyB2aWV3LnN1Ym1pdHRlZCA9IHRydWU7IH1cclxuXHJcbiAgICB2YXIgb2JqZWN0ID0gb2JqO1xyXG4gICAgXHJcbiAgICBpZihvYmogaW5zdGFuY2VvZiBGb3JtR3JvdXApeyBcclxuICAgICAgaWYob2JqLmludmFsaWQpeyBcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoXCJbIEludmFsaWQgRm9ybSBdXCIpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdChcIlZlcmlmaXF1ZSBvcyBjYW1wb3MhXCIpXHJcbiAgICAgICAgcmV0dXJuIHN1YmplY3Q7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBvYmplY3QgPSBvYmoudmFsdWU7IFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5GaWxlc1RvRm9ybShvYmplY3QpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCd2aWV3JywgSlNPTi5zdHJpbmdpZnkob2JqZWN0KSk7XHJcblxyXG4gICAgLy9DaGVjayBpbiB0aGUgY2FzZSBpdCBoYXMgYSBmaWxlIGFuZCB0aGUgdmlldyBpcyBub3QgcGFzc2VkXHJcbiAgICBpZihPYmplY3QuZW50cmllcyhvYmplY3QpLmZpbmQocCA9PiBwWzFdIGluc3RhbmNlb2YgRmlsZSkgJiYgdGhpcy5oYXNGaWxlRm9ybSAmJiAhdmlldyl7IFxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiWyBGb3JtR3JvdXAgY29udGFpbnMgZmlsZSwgYnV0IHZpZXcgaXNudCBhIHZhbGlkIHBhcmFtZXRlciBdXCIpOyBcclxuICAgIH0gZWxzZSBcclxuICAgIGlmKHZpZXcpeyBcclxuICAgICAgcmV0dXJuIHRoaXMuX1NhdmUoZm9ybURhdGEsIHZpZXcpOyBcclxuICAgIH0gXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEV4Y2x1aSBhIGVudGlkYWRlICovXHJcbiAgcHVibGljIERlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih0aGlzLmZ1bGxSb3V0ZSArIGAvZGVsZXRlL2AraWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdG9kb3Mgb3MgZGFkb3MgKi9cclxuICBwdWJsaWMgTG9hZCh2RmlsdHJvcz86IFZpZXdGaWx0cm9zKTogUHJvbWlzZTxWaWV3UmV0b3JubzxWPj57XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5MaXN0KHZGaWx0cm9zKSk7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSBvcyBjYW1wb3MgZGEgdGFiZWxhICovXHJcbiAgZ2V0IGxzdFRhYmxlRmllbGRzKCkgICAgOiBUYWJsZUZpZWxkW10geyByZXR1cm4gW107IH1cclxuICAvKiogUmV0b3JuYSBvcyBjYW1wb3MgZGEgdGFiZWxhIHBhcmEgdmlzdWFsaXphw6fDo28vZWRpw6fDo28gKHNlIHZhemlvIHJldG9ybmFyYSBvIHBhZHLDo28gKGxzdFRhYmxlRmllbGRzKSkgKi8gXHJcbiAgZ2V0IGxzdFRhYmxlRmllbGRzVmlldygpOiBUYWJsZUZpZWxkW10geyByZXR1cm4gdGhpcy5sc3RUYWJsZUZpZWxkczsgfSBcclxuXHJcbiAgLyoqIFJldG9yYSBvIFRhYmxlRmllbGQgcGFkcsOjbyBkZSBpZCAqL1xyXG4gIGdldCBkZWZhdWx0SWQoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJpZFwiLCBcImlkXCIsIGNvbnRyb2wsIElucHV0VHlwZS5OdW1iZXIpOyBcclxuICAgIGZpZWxkLmhpZGRlbiAgICAgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuVmlldyA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGRcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcmEgbyBUYWJsZUZpZWxkIHBhZHLDo28gZGUgaWRFbXByZXNhICovXHJcbiAgZ2V0IGRlZmF1bHRJZEVtcHJlc2EoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJFbXByZXNhXCIsIFwiaWRFbXByZXNhXCIsIGNvbnRyb2wsIElucHV0VHlwZS5TZWxlY3QpOyBcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuICAgICA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBoYXNGaWxlRm9ybSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHNWaWV3LmZpbHRlcihwID0+IHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkubGVuZ3RoID4gMDsgfSBcclxuXHJcbiAgcHJvdGVjdGVkIF9TYXZlKGZvcm1EYXRhOiBGb3JtRGF0YSwgdmlldzogVmlldzxIdHRwU2VydmljZT4pOiBPYnNlcnZhYmxlPGFueSB8IHZvaWQ+e1xyXG4gICAgdmlldy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIdHRwRXZlbnQ8YW55Pj4obnVsbCk7XHJcblxyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5mdWxsUm91dGUgKyBgL3NhdmVgLCBmb3JtRGF0YSwgeyByZXBvcnRQcm9ncmVzczogdHJ1ZSwgb2JzZXJ2ZTogJ2V2ZW50cycgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJleikgPT4geyBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKXtcclxuICAgICAgICAgIGNvbnN0IHJlcyA9IHJlei5sb2FkZWQgLyByZXoudG90YWwhOyBcclxuICAgICAgICAgIHN1YmplY3QubmV4dChyZXopO1xyXG4gICAgICAgICAgdmlldy5wcm9ncmVzcyA9IHJlczsgIFxyXG4gICAgICAgIH1lbHNlIFxyXG4gICAgICAgIGlmKHJlei50eXBlID09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2Upe1xyXG4gICAgICAgICAgdmlldy5sb2FkaW5nICAgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICAgIHZpZXcuUmVmcmVzaCgpOyBcclxuXHJcbiAgICAgICAgICBjb25zdCBpZDogbnVtYmVyID0gTnVtYmVyKHJlei5ib2R5KVxyXG5cclxuICAgICAgICAgIC8vWyBSZWRpcmVjdCB0byB2aWV3LzppZCB8IHJlZGlyZWN0UGF0aCBdXHJcbiAgICAgICAgICBpZighdmlldy5pZCAmJiBpZCl7IFxyXG4gICAgICAgICAgICB0aGlzLlJlZGlyZWN0Um91dGUoaWQsIHZpZXcucmVkaXJlY3RQYXRoLCB2aWV3LkdldEN1cnJlbnRSb3V0aW5nKCkpOyBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpID0+IHsgXHJcbiAgICAgICAgc3ViamVjdC5lcnJvcihlcnIpOyBcclxuICAgICAgICB2aWV3LmxvYWRpbmcgICA9IGZhbHNlOyBcclxuICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTooKSA9PiB7IFxyXG4gICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0U3VjY2VzcygpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTsgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuICBwcml2YXRlIFJlZGlyZWN0Um91dGUoaWQ6IG51bWJlciwgcmVkaXJlY3RQYXRoOiBzdHJpbmcsIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHZvaWQge1xyXG4gICAgaWYoIXJlZGlyZWN0UGF0aCl7IHJldHVybjsgfVxyXG4gICAgY29uc3QgcGF0aCA9IHJlZGlyZWN0UGF0aC5yZXBsYWNlKFwiOmlkXCIsIGlkLnRvU3RyaW5nKCkpO1xyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbYC4uLyR7cGF0aH1gXSwgeyByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEZpbGVzVG9Gb3JtKG9iamVjdDogViwgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksIGxzdFRhYmxlRmllbGRzVmlldzogVGFibGVGaWVsZFtdIHwgbnVsbCA9IG51bGwpOiBGb3JtRGF0YSB7XHJcbiAgICBpZighbHN0VGFibGVGaWVsZHNWaWV3KXsgbHN0VGFibGVGaWVsZHNWaWV3ID0gdGhpcy5sc3RUYWJsZUZpZWxkc1ZpZXcuZmlsdGVyKHAgPT4gcC50eXBlID09IElucHV0VHlwZS5GaWxlKTsgfVxyXG5cclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpIHtcclxuICAgICAgaWYobHN0VGFibGVGaWVsZHNWaWV3LmZpbmQocCA9PiBwLmluZGV4ID09IGtleSAmJiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpKXtcclxuICAgICAgICBpZih2YWx1ZSAmJiB0eXBlb2YodmFsdWUpICE9IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgY29uc3QgZmlsZSA9IHZhbHVlIGFzIEZpbGU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gYGZpbGUtJHtrZXl9YDtcclxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChuYW1lLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgb2JqZWN0W2tleV0gPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1EYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdSZXRvcm5vPFQgPSBhbnk+IHtcclxuICBsc3REYWRvczogVFtdID0gW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxufSJdfQ==
@@ -2,11 +2,11 @@ import { HttpClient, HttpEventType } from '@angular/common/http';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { ApiUrlProviderService } from './api-url-provider.service';
5
- import { GenericService } from '../generics.service';
5
+ import { GenericService } from '../generic.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common/http";
8
8
  import * as i2 from "./api-url-provider.service";
9
- import * as i3 from "../generics.service";
9
+ import * as i3 from "../generic.service";
10
10
  export class StorageService {
11
11
  constructor(http, apiUrlProviderService, genericService) {
12
12
  this.http = http;
@@ -125,4 +125,4 @@ function DownloadFile(data, fileUrl) {
125
125
  });
126
126
  linkElement.dispatchEvent(me);
127
127
  }
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1EsSUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFHOUIseUJBQW9CLEdBQWUsRUFBRSxDQUFDO0lBRjFDLENBQUM7SUFJRSxXQUFXLENBQUMsSUFBWTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNwRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQVksRUFBRSxPQUFnQixLQUFLO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElB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QTdGVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFpR0QsTUFBTSxPQUFPLFFBQVE7SUFHbkIsWUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFEL0IsYUFBUSxHQUFpQixPQUFPLENBQUM7SUFDQSxDQUFDO0NBQ25DO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBd0IsRUFBRSxPQUFPO0lBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV2RSxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFL0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzdCLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxyXG4gIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRseURvd25sb2FkaW5nOiBEb3dubG9hZFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9ncmVzcyhmaWxlOiBzdHJpbmcpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBEb3dubG9hZCA9IHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKVxyXG4gICAgcmV0dXJuIERvd25sb2FkID8gRG93bmxvYWQucHJvZ3Jlc3MgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXJ0RG93bmxvYWQoZmlsZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IERvd25sb2FkIHtcclxuICAgIGlmKCF0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmZpbmQocCA9PiBwLmZpbGUgPT0gZmlsZSkpe1xyXG4gICAgICBjb25zdCBkb3dubG9hZCA9IG5ldyBEb3dubG9hZChmaWxlKTtcclxuICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5wdXNoKGRvd25sb2FkKTtcclxuICAgICAgdGhpcy5IYW5kbGVEb3dubG9hZChkb3dubG9hZCwgcGFyYW1zLCBwb3N0KTtcclxuICAgICAgcmV0dXJuIGRvd25sb2FkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgSGFuZGxlRG93bmxvYWQoZG93bmxvYWQ6IERvd25sb2FkLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSl7XHJcbiAgICB2YXIgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5HZXRGaWxlKGRvd25sb2FkLmZpbGUsIHBhcmFtcywgcG9zdCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFByb2dlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgICBkb3dubG9hZC5yZXF1ZXN0UHJvZ2VzcyA9IHJlcXVlc3RQcm9nZXNzO1xyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7IFxyXG4gICAgICAgICAgZG93bmxvYWQucHJvZ3Jlc3MgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5uZXh0KGRvd25sb2FkLnByb2dyZXNzKTtcclxuICAgICAgICB9IGVsc2UgXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIERvd25sb2FkRmlsZShldmVudCwgZG93bmxvYWQuZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnNwbGljZSh0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmluZGV4T2YoZG93bmxvYWQpLCAxKTtcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmNvbXBsZXRlKCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihldmVudC5zdGF0dXMgPT0gNDA0KXtcclxuICAgICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiQXJxdWl2byBuw6NvIGVuY29udHJhZG8gLyBVcmwgaW52w6FsaWRhXCIpXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5lcnJvcihldmVudCk7IFxyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIFNhbml0aXplRmlsZU5hbWUodik6IHN0cmluZ3tcclxuICAgIHRyeXtcclxuICAgICAgdmFyIGZpbGVuYW1lRW5kOiBzdHJpbmcgID0gdi5zcGxpdCgnLycpLmF0KC0xKTtcclxuICAgICAgXHJcbiAgICAgIGlmKGZpbGVuYW1lRW5kLnNwbGl0KCcuJykubGVuZ3RoIDw9IDIpe1xyXG4gICAgICAgIHJldHVybiBmaWxlbmFtZUVuZDtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdmFyIGxzdCA9IGZpbGVuYW1lRW5kLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgbHN0WzBdID0gJyc7XHJcbiAgICAgICAgcmV0dXJuIGxzdC5qb2luKCcuJykucmVwbGFjZSgnLicsICcnKTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICByZXR1cm4gdjtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgR2V0RmlsZShmaWxlVXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgcG9zdDogYm9vbGVhbiA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHZhciB1cmw6IHN0cmluZztcclxuICAgIGlmKGZpbGVVcmxbMF0gPT0gJy8nKXsgXHJcbiAgICAgIHVybCA9IGZpbGVVcmwuc2xpY2UoMSwgZmlsZVVybC5sZW5ndGggLSAxKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB1cmwgPSBgJHt0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmx9JHtmaWxlVXJsfWA7XHJcbiAgICB9XHJcbiAgICB1cmwgPSBlbmNvZGVVUkkodXJsKS5yZXBsYWNlKC8jL2csICclMjMnKVxyXG5cclxuICAgIGlmKCFwb3N0KXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgcGFyYW1zLCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWQge1xyXG4gIHJlcXVlc3RQcm9nZXNzOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgcHJvZ3Jlc3MgICAgICA6IG51bWJlciA9IDAuMDAwMDE7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGZpbGU6IHN0cmluZyl7fVxyXG59XHJcblxyXG5mdW5jdGlvbiBEb3dubG9hZEZpbGUoZGF0YTogSHR0cFJlc3BvbnNlPEJsb2I+LCBmaWxlVXJsKSB7XHJcbiAgY29uc3QgZG93bmxvYWRlZEZpbGUgPSBuZXcgQmxvYihbZGF0YS5ib2R5XSwgeyB0eXBlOiBkYXRhLmJvZHkudHlwZSB9KTtcclxuXHJcbiAgdmFyIGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvd25sb2FkZWRGaWxlKTtcclxuICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImhyZWZcIiwgZmlsZVVSTCk7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIFwiX2JsYW5rXCIpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIFN0b3JhZ2VTZXJ2aWNlLlNhbml0aXplRmlsZU5hbWUoZmlsZVVybCkpO1xyXG5cclxuICBsZXQgbWUgPSBuZXcgTW91c2VFdmVudChcImNsaWNrXCIsIHtcclxuICAgICAgdmlldzogd2luZG93LFxyXG4gICAgICBidWJibGVzOiB0cnVlLFxyXG4gICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcclxuICB9KTtcclxuXHJcbiAgbGlua0VsZW1lbnQuZGlzcGF0Y2hFdmVudChtZSk7XHJcbn0iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBT3BELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1EsSUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFHOUIseUJBQW9CLEdBQWUsRUFBRSxDQUFDO0lBRjFDLENBQUM7SUFJRSxXQUFXLENBQUMsSUFBWTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNwRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQVksRUFBRSxPQUFnQixLQUFLO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElB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QTdGVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFpR0QsTUFBTSxPQUFPLFFBQVE7SUFHbkIsWUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFEL0IsYUFBUSxHQUFpQixPQUFPLENBQUM7SUFDQSxDQUFDO0NBQ25DO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBd0IsRUFBRSxPQUFPO0lBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV2RSxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFL0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzdCLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi91dGlscy5zZXJ2aWNlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gIHByaXZhdGUgaHR0cCA6IEh0dHBDbGllbnQsXHJcbiAgcHJpdmF0ZSBhcGlVcmxQcm92aWRlclNlcnZpY2U6IEFwaVVybFByb3ZpZGVyU2VydmljZSxcclxuICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHByaXZhdGUgY3VycmVudGx5RG93bmxvYWRpbmc6IERvd25sb2FkW10gPSBbXTtcclxuXHJcbiAgcHVibGljIEdldFByb2dyZXNzKGZpbGU6IHN0cmluZyk6IG51bWJlcntcclxuICAgIGNvbnN0IERvd25sb2FkID0gdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5maW5kKHAgPT4gcC5maWxlID09IGZpbGUpXHJcbiAgICByZXR1cm4gRG93bmxvYWQgPyBEb3dubG9hZC5wcm9ncmVzcyA6IDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU3RhcnREb3dubG9hZChmaWxlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgcG9zdDogYm9vbGVhbiA9IGZhbHNlKTogRG93bmxvYWQge1xyXG4gICAgaWYoIXRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKSl7XHJcbiAgICAgIGNvbnN0IGRvd25sb2FkID0gbmV3IERvd25sb2FkKGZpbGUpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnB1c2goZG93bmxvYWQpO1xyXG4gICAgICB0aGlzLkhhbmRsZURvd25sb2FkKGRvd25sb2FkLCBwYXJhbXMsIHBvc3QpO1xyXG4gICAgICByZXR1cm4gZG93bmxvYWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5maW5kKHAgPT4gcC5maWxlID09IGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBIYW5kbGVEb3dubG9hZChkb3dubG9hZDogRG93bmxvYWQsIHBhcmFtcz86IGFueSwgcG9zdDogYm9vbGVhbiA9IGZhbHNlKXtcclxuICAgIHZhciByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLkdldEZpbGUoZG93bmxvYWQuZmlsZSwgcGFyYW1zLCBwb3N0KTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0UHJvZ2VzcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICAgIGRvd25sb2FkLnJlcXVlc3RQcm9nZXNzID0gcmVxdWVzdFByb2dlc3M7XHJcbiAgICByZXF1ZXN0LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MpIHsgXHJcbiAgICAgICAgICBkb3dubG9hZC5wcm9ncmVzcyA9IGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsOyBcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLm5leHQoZG93bmxvYWQucHJvZ3Jlc3MpO1xyXG4gICAgICAgIH0gZWxzZSBcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xyXG4gICAgICAgICAgRG93bmxvYWRGaWxlKGV2ZW50LCBkb3dubG9hZC5maWxlKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpO1xyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGV2ZW50LnN0YXR1cyA9PSA0MDQpe1xyXG4gICAgICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJBcnF1aXZvIG7Do28gZW5jb250cmFkbyAvIFVybCBpbnbDoWxpZGFcIilcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmVycm9yKGV2ZW50KTsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5jb21wbGV0ZSgpOyBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5zcGxpY2UodGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5pbmRleE9mKGRvd25sb2FkKSwgMSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgU2FuaXRpemVGaWxlTmFtZSh2KTogc3RyaW5ne1xyXG4gICAgdHJ5e1xyXG4gICAgICB2YXIgZmlsZW5hbWVFbmQ6IHN0cmluZyAgPSB2LnNwbGl0KCcvJykuYXQoLTEpO1xyXG4gICAgICBcclxuICAgICAgaWYoZmlsZW5hbWVFbmQuc3BsaXQoJy4nKS5sZW5ndGggPD0gMil7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lRW5kO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB2YXIgbHN0ID0gZmlsZW5hbWVFbmQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsc3RbMF0gPSAnJztcclxuICAgICAgICByZXR1cm4gbHN0LmpvaW4oJy4nKS5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlKGZpbGVVcmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBwb3N0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdmFyIHVybDogc3RyaW5nO1xyXG4gICAgaWYoZmlsZVVybFswXSA9PSAnLycpeyBcclxuICAgICAgdXJsID0gZmlsZVVybC5zbGljZSgxLCBmaWxlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHVybCA9IGAke3RoaXMuYXBpVXJsUHJvdmlkZXJTZXJ2aWNlLmFwaVVybH0ke2ZpbGVVcmx9YDtcclxuICAgIH1cclxuICAgIHVybCA9IGVuY29kZVVSSSh1cmwpLnJlcGxhY2UoLyMvZywgJyUyMycpXHJcblxyXG4gICAgaWYoIXBvc3Qpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZCB7XHJcbiAgcmVxdWVzdFByb2dlc3M6IE9ic2VydmFibGU8YW55PjtcclxuICBwcm9ncmVzcyAgICAgIDogbnVtYmVyID0gMC4wMDAwMTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsZTogc3RyaW5nKXt9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIERvd25sb2FkRmlsZShkYXRhOiBIdHRwUmVzcG9uc2U8QmxvYj4sIGZpbGVVcmwpIHtcclxuICBjb25zdCBkb3dubG9hZGVkRmlsZSA9IG5ldyBCbG9iKFtkYXRhLmJvZHldLCB7IHR5cGU6IGRhdGEuYm9keS50eXBlIH0pO1xyXG5cclxuICB2YXIgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZG93bmxvYWRlZEZpbGUpO1xyXG4gIGNvbnN0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBmaWxlVVJMKTtcclxuICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YXJnZXRcIiwgXCJfYmxhbmtcIik7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgU3RvcmFnZVNlcnZpY2UuU2FuaXRpemVGaWxlTmFtZShmaWxlVXJsKSk7XHJcblxyXG4gIGxldCBtZSA9IG5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIiwge1xyXG4gICAgICB2aWV3OiB3aW5kb3csXHJcbiAgICAgIGJ1YmJsZXM6IHRydWUsXHJcbiAgICAgIGNhbmNlbGFibGU6IGZhbHNlLFxyXG4gIH0pO1xyXG5cclxuICBsaW5rRWxlbWVudC5kaXNwYXRjaEV2ZW50KG1lKTtcclxufSJdfQ==