@ecodev/natural 60.1.1 → 61.0.1

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 (123) hide show
  1. package/esm2022/lib/classes/abstract-detail.mjs +2 -3
  2. package/esm2022/lib/classes/abstract-editable-list.mjs +3 -5
  3. package/esm2022/lib/classes/abstract-list.mjs +6 -5
  4. package/esm2022/lib/classes/abstract-navigable-list.mjs +4 -3
  5. package/esm2022/lib/classes/rxjs.mjs +11 -5
  6. package/esm2022/lib/modules/alert/alert.service.mjs +9 -9
  7. package/esm2022/lib/modules/alert/confirm.component.mjs +6 -9
  8. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +9 -9
  9. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +30 -35
  10. package/esm2022/lib/modules/columns-picker/public-api.mjs +1 -1
  11. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +7 -7
  12. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +16 -19
  13. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +7 -7
  14. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +7 -7
  15. package/esm2022/lib/modules/common/public-api.mjs +2 -2
  16. package/esm2022/lib/modules/common/services/seo.service.mjs +13 -22
  17. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +10 -10
  18. package/esm2022/lib/modules/dropdown-components/public-api.mjs +3 -3
  19. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +10 -13
  20. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +14 -19
  21. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +14 -20
  22. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +14 -16
  23. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +10 -10
  24. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +14 -16
  25. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +12 -14
  26. package/esm2022/lib/modules/file/abstract-file.mjs +3 -6
  27. package/esm2022/lib/modules/file/component/file.component.mjs +14 -17
  28. package/esm2022/lib/modules/file/file-drop.directive.mjs +6 -4
  29. package/esm2022/lib/modules/file/file.service.mjs +6 -9
  30. package/esm2022/lib/modules/file/public-api.mjs +1 -1
  31. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +9 -8
  32. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +19 -20
  33. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +6 -6
  34. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +8 -10
  35. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +7 -7
  36. package/esm2022/lib/modules/icon/icon.directive.mjs +12 -20
  37. package/esm2022/lib/modules/logger/error-handler.mjs +10 -24
  38. package/esm2022/lib/modules/logger/public-api.mjs +2 -2
  39. package/esm2022/lib/modules/matomo/matomo.service.mjs +11 -19
  40. package/esm2022/lib/modules/panels/abstract-panel.mjs +9 -9
  41. package/esm2022/lib/modules/panels/panels.component.mjs +9 -8
  42. package/esm2022/lib/modules/panels/panels.service.mjs +13 -17
  43. package/esm2022/lib/modules/relations/relations.component.mjs +34 -34
  44. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +12 -15
  45. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +8 -9
  46. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +11 -14
  47. package/esm2022/lib/modules/search/input/input.component.mjs +26 -27
  48. package/esm2022/lib/modules/search/public-api.mjs +1 -1
  49. package/esm2022/lib/modules/search/search/search.component.mjs +19 -20
  50. package/esm2022/lib/modules/select/abstract-select.component.mjs +3 -5
  51. package/esm2022/lib/modules/select/select/select.component.mjs +7 -5
  52. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +15 -18
  53. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +16 -19
  54. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +9 -10
  55. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +18 -23
  56. package/esm2022/lib/services/enum.service.mjs +7 -8
  57. package/esm2022/lib/services/link-mutation.service.mjs +7 -8
  58. package/esm2022/lib/services/persistence.service.mjs +9 -19
  59. package/esm2022/public-api.mjs +2 -3
  60. package/fesm2022/ecodev-natural.mjs +377 -504
  61. package/fesm2022/ecodev-natural.mjs.map +1 -1
  62. package/lib/classes/abstract-detail.d.ts +0 -1
  63. package/lib/classes/abstract-editable-list.d.ts +1 -2
  64. package/lib/classes/abstract-list.d.ts +2 -2
  65. package/lib/classes/abstract-navigable-list.d.ts +2 -2
  66. package/lib/classes/rxjs.d.ts +9 -2
  67. package/lib/modules/alert/alert.service.d.ts +1 -3
  68. package/lib/modules/alert/confirm.component.d.ts +1 -2
  69. package/lib/modules/avatar/component/avatar.component.d.ts +0 -2
  70. package/lib/modules/columns-picker/columns-picker.component.d.ts +3 -6
  71. package/lib/modules/columns-picker/public-api.d.ts +1 -1
  72. package/lib/modules/common/directives/background-density.directive.d.ts +0 -2
  73. package/lib/modules/common/directives/linkable-tab.directive.d.ts +3 -5
  74. package/lib/modules/common/directives/src-density.directive.d.ts +0 -2
  75. package/lib/modules/common/pipes/enum.pipe.d.ts +0 -2
  76. package/lib/modules/common/public-api.d.ts +2 -1
  77. package/lib/modules/common/services/seo.service.d.ts +2 -3
  78. package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +3 -3
  79. package/lib/modules/dropdown-components/public-api.d.ts +9 -9
  80. package/lib/modules/dropdown-components/type-boolean/type-boolean.component.d.ts +1 -3
  81. package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +1 -3
  82. package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +2 -3
  83. package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +1 -2
  84. package/lib/modules/dropdown-components/type-options/type-options.component.d.ts +3 -3
  85. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +4 -5
  86. package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +1 -2
  87. package/lib/modules/file/abstract-file.d.ts +1 -2
  88. package/lib/modules/file/component/file.component.d.ts +0 -3
  89. package/lib/modules/file/file-drop.directive.d.ts +1 -0
  90. package/lib/modules/file/file.service.d.ts +0 -1
  91. package/lib/modules/file/public-api.d.ts +1 -1
  92. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +1 -2
  93. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -4
  94. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +0 -2
  95. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +1 -2
  96. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +1 -2
  97. package/lib/modules/icon/icon.directive.d.ts +3 -5
  98. package/lib/modules/logger/error-handler.d.ts +3 -4
  99. package/lib/modules/logger/public-api.d.ts +2 -1
  100. package/lib/modules/matomo/matomo.service.d.ts +2 -5
  101. package/lib/modules/panels/abstract-panel.d.ts +3 -2
  102. package/lib/modules/panels/panels.component.d.ts +1 -3
  103. package/lib/modules/panels/panels.service.d.ts +2 -6
  104. package/lib/modules/relations/relations.component.d.ts +4 -6
  105. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +3 -4
  106. package/lib/modules/search/dropdown-container/dropdown.service.d.ts +1 -3
  107. package/lib/modules/search/facet-selector/facet-selector.component.d.ts +1 -2
  108. package/lib/modules/search/input/input.component.d.ts +1 -3
  109. package/lib/modules/search/public-api.d.ts +5 -5
  110. package/lib/modules/search/search/search.component.d.ts +0 -2
  111. package/lib/modules/select/abstract-select.component.d.ts +2 -3
  112. package/lib/modules/select/select/select.component.d.ts +3 -2
  113. package/lib/modules/select/select-enum/select-enum.component.d.ts +4 -4
  114. package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +6 -6
  115. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +0 -1
  116. package/lib/modules/sidenav/sidenav.service.d.ts +3 -8
  117. package/lib/services/enum.service.d.ts +0 -2
  118. package/lib/services/link-mutation.service.d.ts +0 -2
  119. package/lib/services/persistence.service.d.ts +2 -4
  120. package/package.json +1 -1
  121. package/public-api.d.ts +3 -3
  122. package/esm2022/lib/classes/abstract-controller.mjs +0 -31
  123. package/lib/classes/abstract-controller.d.ts +0 -21
@@ -1,6 +1,8 @@
1
- import { Component, EventEmitter, HostBinding, Inject, Input, Output, } from '@angular/core';
1
+ import { Component, EventEmitter, HostBinding, Input, Output, inject, } from '@angular/core';
2
2
  import { of, Subject, tap } from 'rxjs';
3
+ import { NaturalFileService } from '../file.service';
3
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
+ import { NaturalAlertService } from '../../alert/alert.service';
4
6
  import { NaturalCapitalizePipe } from '../../common/pipes/capitalize.pipe';
5
7
  import { NaturalIconDirective } from '../../icon/icon.directive';
6
8
  import { MatIconModule } from '@angular/material/icon';
@@ -8,17 +10,15 @@ import { MatRippleModule } from '@angular/material/core';
8
10
  import { NaturalFileDropDirective } from '../file-drop.directive';
9
11
  import { NaturalBackgroundDensityDirective } from '../../common/directives/background-density.directive';
10
12
  import * as i0 from "@angular/core";
11
- import * as i1 from "../file.service";
12
- import * as i2 from "../../alert/alert.service";
13
- import * as i3 from "@angular/material/core";
14
- import * as i4 from "@angular/common";
15
- import * as i5 from "@angular/material/icon";
13
+ import * as i1 from "@angular/material/core";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "@angular/material/icon";
16
16
  // @dynamic
17
17
  export class NaturalFileComponent {
18
- constructor(naturalFileService, alertService, document) {
19
- this.naturalFileService = naturalFileService;
20
- this.alertService = alertService;
21
- this.document = document;
18
+ constructor() {
19
+ this.naturalFileService = inject(NaturalFileService);
20
+ this.alertService = inject(NaturalAlertService);
21
+ this.document = inject(DOCUMENT);
22
22
  this.height = 250;
23
23
  this.action = null;
24
24
  this.backgroundSize = 'contain';
@@ -123,8 +123,8 @@ export class NaturalFileComponent {
123
123
  reader.readAsBinaryString(file);
124
124
  return subject.asObservable();
125
125
  }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, deps: [{ token: i1.NaturalFileService }, { token: i2.NaturalAlertService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
127
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFileComponent, isStandalone: true, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept", uploader: "uploader", model: "model", formCtrl: "formCtrl" }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "this.height" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"], dependencies: [{ kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }, { kind: "directive", type: NaturalBackgroundDensityDirective, selector: "[naturalBackgroundDensity]", inputs: ["naturalBackgroundDensity"] }] }); }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFileComponent, isStandalone: true, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept", uploader: "uploader", model: "model", formCtrl: "formCtrl" }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "this.height" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"], dependencies: [{ kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }, { kind: "directive", type: NaturalBackgroundDensityDirective, selector: "[naturalBackgroundDensity]", inputs: ["naturalBackgroundDensity"] }] }); }
128
128
  }
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, decorators: [{
130
130
  type: Component,
@@ -137,10 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
137
137
  NaturalCapitalizePipe,
138
138
  NaturalBackgroundDensityDirective,
139
139
  ], template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"] }]
140
- }], ctorParameters: () => [{ type: i1.NaturalFileService }, { type: i2.NaturalAlertService }, { type: Document, decorators: [{
141
- type: Inject,
142
- args: [DOCUMENT]
143
- }] }], propDecorators: { height: [{
140
+ }], propDecorators: { height: [{
144
141
  type: HostBinding,
145
142
  args: ['style.height.px']
146
143
  }, {
@@ -160,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
160
157
  }], modelChange: [{
161
158
  type: Output
162
159
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL2NvbXBvbmVudC9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvY29tcG9uZW50L2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7QUFFdkcsV0FBVztBQWdCWCxNQUFNLE9BQU8sb0JBQW9CO0lBZ0Q3QixZQUNxQixrQkFBc0MsRUFDdEMsWUFBaUMsRUFDZixRQUFrQjtRQUZwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNmLGFBQVEsR0FBUixR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b0JBQW9CLDhGQUNwQixxQkFBcUIsbURBQ3JCLGlDQUFpQzs7MkZBRzVCLG9CQUFvQjtrQkFmaEMsU0FBUzsrQkFDSSxjQUFjLGNBR1osSUFBSSxXQUNQO3dCQUNMLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGlDQUFpQztxQkFDcEM7OzBCQXFESSxNQUFNOzJCQUFDLFFBQVE7eUNBbEQ0QixNQUFNO3NCQUFyRCxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFFdEIsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxjQUFjO3NCQUE3QixLQUFLO2dCQVFVLE1BQU07c0JBQXJCLEtBQUs7Z0JBZ0JVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVUsS0FBSztzQkFBcEIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQU1vQixXQUFXO3NCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOYXR1cmFsRmlsZVNlcnZpY2V9IGZyb20gJy4uL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0ZpbGVNb2RlbH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWxlcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbENhcGl0YWxpemVQaXBlfSBmcm9tICcuLi8uLi9jb21tb24vcGlwZXMvY2FwaXRhbGl6ZS5waXBlJztcbmltcG9ydCB7TmF0dXJhbEljb25EaXJlY3RpdmV9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0UmlwcGxlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TmF0dXJhbEZpbGVEcm9wRGlyZWN0aXZlfSBmcm9tICcuLi9maWxlLWRyb3AuZGlyZWN0aXZlJztcbmltcG9ydCB7TmF0dXJhbEJhY2tncm91bmREZW5zaXR5RGlyZWN0aXZlfSBmcm9tICcuLi8uLi9jb21tb24vZGlyZWN0aXZlcy9iYWNrZ3JvdW5kLWRlbnNpdHkuZGlyZWN0aXZlJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1maWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ZpbGUuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOYXR1cmFsRmlsZURyb3BEaXJlY3RpdmUsXG4gICAgICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBOYXR1cmFsSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgTmF0dXJhbENhcGl0YWxpemVQaXBlLFxuICAgICAgICBOYXR1cmFsQmFja2dyb3VuZERlbnNpdHlEaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0ID0gMjUwO1xuXG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbjogJ3VwbG9hZCcgfCAnZG93bmxvYWQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgYmFja2dyb3VuZFNpemUgPSAnY29udGFpbic7XG5cbiAgICAvKipcbiAgICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuIExpa2UgdGhlIG5hdGl2ZSBlbGVtZW50LFxuICAgICAqIGl0IGNhbiBiZSBhIG1peCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJ2ltYWdlL2JtcCxpbWFnZS9naWYsaW1hZ2UvanBlZyxpbWFnZS9wanBlZyxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS9zdmcsaW1hZ2Uvd2VicCc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHNlbGVjdGVkLiBUaGUgY2FsbGJhY2sgc2hvdWxkIHR5cGljYWxseSB1cGxvYWQgdGhlIGZpbGVcbiAgICAgKiB0byB0aGUgc2VydmVyIGFuZCBsaW5rIHRoZSBuZXdseSB1cGxvYWRlZCBmaWxlIHRvIHRoZSBleGlzdGluZyByZWxhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIFRoZSBjYWxsYmFjayAqKm11c3QqKiBiZSBhYmxlIHRvIHJ1biBldmVuIGlmIHRoZSBjYWxsaW5nIGNvbXBvbmVudCBoYXMgYmVlbiBkZXN0cm95ZWQuIFRoYXQgbWVhbnMgaW4gbW9zdFxuICAgICAqIGNhc2VzIHlvdSAqKm11c3QqKiBgYmluZCgpYCB0aGUgY2FsbGJhY2sgZXhwbGljaXRseSwgbGlrZSBzbzpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmF0dXJhbC1maWxlIFt1cGxvYWRlcl09XCJteUNhbGxiYWNrLmJpbmQodGhpcylcIiAvPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQWxzbywgeW91IHByb2JhYmx5ICoqc2hvdWxkKiogc2V0IGEgYFtmb3JtQ3RybF1gIHNvIHRoYXQgdGhlIGZvcm0gaXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5LCBpbnN0ZWFkIG9mIGRvaW5nXG4gICAgICogaXQgbWFudWFsbHkgd2l0aGluIHRoZSBjYWxsYmFjay5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkZXI/OiAoZmlsZTogRmlsZSkgPT4gT2JzZXJ2YWJsZTxGaWxlTW9kZWw+O1xuXG4gICAgQElucHV0KCkgcHVibGljIG1vZGVsOiBGaWxlTW9kZWwgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIElmIHByb3ZpZGVkLCBpdHMgdmFsdWUgd2lsbCBnZXQgdXBkYXRlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzLlxuICAgICAqIEJ1dCBpdHMgdmFsdWUgaXMgbmV2ZXIgcmVhZCwgc28gaWYgeW91IHdhbnQgdG8gc2V0IGEgdmFsdWUgdXNlIGBbbW9kZWxdYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmb3JtQ3RybDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzICoqbXVzdCBub3QqKiBiZSB1c2VkIHRvIG11dGF0ZSB0aGUgc2VydmVyLCBiZWNhdXNlIGl0IGlzIHZlcnkgbGlrZWx5IGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmIHRoZVxuICAgICAqIGh1bWFuIG5hdmlnYXRlcyBhd2F5IGZyb20gdGhlIHBhZ2UgYmVmb3JlIHRoZSB1cGxvYWQgaXMgZmluaXNoZWQuIEluc3RlYWQsIHlvdSBzaG91bGQgdXNlIGBbdXBsb2FkZXJdYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTW9kZWw+KCk7XG5cbiAgICBwdWJsaWMgaW1hZ2VQcmV2aWV3ID0gJyc7XG4gICAgcHVibGljIGZpbGVQcmV2aWV3OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuYXR1cmFsRmlsZVNlcnZpY2U6IE5hdHVyYWxGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm1vZGVsICYmIGNoYW5nZXMubW9kZWwucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlbC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbWFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0ge2ZpbGU6IGZpbGV9O1xuICAgICAgICB0aGlzLnVwZGF0ZUltYWdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID1cbiAgICAgICAgICAgIHRoaXMudXBsb2FkZXI/LihmaWxlKS5waXBlKHRhcCgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBNaXMgw6Agam91cmApKSkgPz8gb2YodGhpcy5tb2RlbCk7XG5cbiAgICAgICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSByZXN1bHQ7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ3RybCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERvd25sb2FkTGluaygpOiBudWxsIHwgc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uICE9PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWxGaWxlU2VydmljZS5nZXREb3dubG9hZExpbmsodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJbWFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSAnJztcbiAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IG51bGw7XG4gICAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwuZmlsZT8udHlwZS5pbmNsdWRlcygnaW1hZ2UvJykpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGZyb20gdXBsb2FkIChiZWZvcmUgc2F2aW5nKVxuICAgICAgICAgICAgdGhpcy5nZXRCYXNlNjQodGhpcy5tb2RlbC5maWxlKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbD8uZmlsZT8udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gJ3VybChkYXRhOicgKyB0aGlzLm1vZGVsPy5maWxlPy50eXBlICsgJztiYXNlNjQsJyArIHJlc3VsdCArICcpJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuZmlsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwuZmlsZS50eXBlLnNwbGl0KCcvJylbMV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbC5fX3R5cGVuYW1lID09PSAnSW1hZ2UnICYmIHRoaXMubW9kZWwuaWQpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGltYWdlIHdpdGggaWQsIHVzZSBzcGVjaWZpYyBBUEkgdG8gcmVuZGVyIGltYWdlIGJ5IHNpemVcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHNob3cgaW1hZ2UgcHJldmlldyBiZWNhdXNlIGB3aW5kb3dgIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb2MgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmhlaWdodCA/ICcvJyArIHRoaXMuaGVpZ2h0IDogJyc7XG5cbiAgICAgICAgICAgIC8vIGNyZWF0ZSBpbWFnZSB1cmwgd2l0aG91dCBwb3J0IHRvIHN0YXkgY29tcGF0aWJsZSB3aXRoIGRldiBtb2RlXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGxvYy5wcm90b2NvbCArICcvLycgKyBsb2MuaG9zdG5hbWUgKyAnL2FwaS9pbWFnZS8nICsgdGhpcy5tb2RlbC5pZCArIGhlaWdodDtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gaW1hZ2U7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbD8ubWltZSAmJiBbJ0ZpbGUnLCAnQWNjb3VudGluZ0RvY3VtZW50J10uaW5jbHVkZXModGhpcy5tb2RlbC5fX3R5cGVuYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwubWltZS5zcGxpdCgnLycpWzFdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuc3JjKSB7XG4gICAgICAgICAgICAvLyBleHRlcm5hbCB1cmxcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gdGhpcy5tb2RlbC5zcmM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhc2U2NChmaWxlOiBGaWxlIHwgbnVsbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICAgICAgc3ViamVjdC5uZXh0KGJ0b2EoZXYudGFyZ2V0LnJlc3VsdCkpO1xuICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcblxuICAgICAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iLCI8YVxuICAgIChmaWxlQ2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCJcbiAgICBuYXR1cmFsRmlsZURyb3BcbiAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW2F0dHIuaHJlZl09XCJnZXREb3dubG9hZExpbmsoKVwiXG4gICAgW2NsYXNzLmhhcy1hY3Rpb25dPVwiISFhY3Rpb25cIlxuICAgIFtjbGFzcy5zdWdnZXN0LXVwbG9hZF09XCIhbW9kZWwgJiYgYWN0aW9uID09PSAndXBsb2FkJ1wiXG4gICAgW2ZpbGVTZWxlY3Rpb25EaXNhYmxlZF09XCJhY3Rpb24gIT09ICd1cGxvYWQnXCJcbiAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIWFjdGlvblwiXG4gICAgW25hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eV09XCJpbWFnZVByZXZpZXdcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kU2l6ZV09XCJiYWNrZ3JvdW5kU2l6ZVwiXG4gICAgbWF0UmlwcGxlXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbj5cbiAgICBAaWYgKGZpbGVQcmV2aWV3KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXdcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjMzXCIgbmF0dXJhbEljb249XCJhdHRhY2htZW50XCIgLz5cbiAgICAgICAgICAgIHt7IGZpbGVQcmV2aWV3IHwgdXBwZXJjYXNlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tb3ZlcmxheVwiPlxuICAgICAgICBAaWYgKGFjdGlvbiA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjY2XCIgbmF0dXJhbEljb249XCJjbG91ZF91cGxvYWRcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYWN0aW9uID09PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICA8bWF0LWljb24gW3NpemVdPVwiaGVpZ2h0ICogMC42NlwiIG5hdHVyYWxJY29uPVwiZ2V0X2FwcFwiIC8+XG4gICAgICAgIH1cbiAgICAgICAge3sgYWN0aW9uIHwgY2FwaXRhbGl6ZSB9fVxuICAgIDwvZGl2PlxuPC9hPlxuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL2NvbXBvbmVudC9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvY29tcG9uZW50L2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7O0FBRXZHLFdBQVc7QUFnQlgsTUFBTSxPQUFPLG9CQUFvQjtJQWZqQztRQWdCcUIsdUJBQWtCLEdBQUcsTUFBTSxD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cEIsb0JBQW9CLGtXQ3hDakMsd2dDQWdDQSw2dkJERFEsd0JBQXdCLDZHQUN4QixlQUFlLGtTQUNmLFlBQVksMkZBQ1osYUFBYSxvTEFDYixvQkFBb0IsOEZBQ3BCLHFCQUFxQixtREFDckIsaUNBQWlDOzsyRkFHNUIsb0JBQW9CO2tCQWZoQyxTQUFTOytCQUNJLGNBQWMsY0FHWixJQUFJLFdBQ1A7d0JBQ0wsd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsaUNBQWlDO3FCQUNwQzs4QkFPK0MsTUFBTTtzQkFBckQsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBRXRCLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsY0FBYztzQkFBN0IsS0FBSztnQkFRVSxNQUFNO3NCQUFyQixLQUFLO2dCQWdCVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFNb0IsV0FBVztzQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TmF0dXJhbEZpbGVTZXJ2aWNlfSBmcm9tICcuLi9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGUsIERPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtGaWxlTW9kZWx9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7TmF0dXJhbEFsZXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxDYXBpdGFsaXplUGlwZX0gZnJvbSAnLi4vLi4vY29tbW9uL3BpcGVzL2NhcGl0YWxpemUucGlwZSc7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdFJpcHBsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge05hdHVyYWxGaWxlRHJvcERpcmVjdGl2ZX0gZnJvbSAnLi4vZmlsZS1kcm9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eURpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vY29tbW9uL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC1kZW5zaXR5LmRpcmVjdGl2ZSc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtZmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9maWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmF0dXJhbEZpbGVEcm9wRGlyZWN0aXZlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE5hdHVyYWxDYXBpdGFsaXplUGlwZSxcbiAgICAgICAgTmF0dXJhbEJhY2tncm91bmREZW5zaXR5RGlyZWN0aXZlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxGaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0dXJhbEZpbGVTZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxGaWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2UgPSBpbmplY3QoTmF0dXJhbEFsZXJ0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0ID0gMjUwO1xuXG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbjogJ3VwbG9hZCcgfCAnZG93bmxvYWQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgYmFja2dyb3VuZFNpemUgPSAnY29udGFpbic7XG5cbiAgICAvKipcbiAgICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuIExpa2UgdGhlIG5hdGl2ZSBlbGVtZW50LFxuICAgICAqIGl0IGNhbiBiZSBhIG1peCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJ2ltYWdlL2JtcCxpbWFnZS9naWYsaW1hZ2UvanBlZyxpbWFnZS9wanBlZyxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS9zdmcsaW1hZ2Uvd2VicCc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHNlbGVjdGVkLiBUaGUgY2FsbGJhY2sgc2hvdWxkIHR5cGljYWxseSB1cGxvYWQgdGhlIGZpbGVcbiAgICAgKiB0byB0aGUgc2VydmVyIGFuZCBsaW5rIHRoZSBuZXdseSB1cGxvYWRlZCBmaWxlIHRvIHRoZSBleGlzdGluZyByZWxhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIFRoZSBjYWxsYmFjayAqKm11c3QqKiBiZSBhYmxlIHRvIHJ1biBldmVuIGlmIHRoZSBjYWxsaW5nIGNvbXBvbmVudCBoYXMgYmVlbiBkZXN0cm95ZWQuIFRoYXQgbWVhbnMgaW4gbW9zdFxuICAgICAqIGNhc2VzIHlvdSAqKm11c3QqKiBgYmluZCgpYCB0aGUgY2FsbGJhY2sgZXhwbGljaXRseSwgbGlrZSBzbzpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmF0dXJhbC1maWxlIFt1cGxvYWRlcl09XCJteUNhbGxiYWNrLmJpbmQodGhpcylcIiAvPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQWxzbywgeW91IHByb2JhYmx5ICoqc2hvdWxkKiogc2V0IGEgYFtmb3JtQ3RybF1gIHNvIHRoYXQgdGhlIGZvcm0gaXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5LCBpbnN0ZWFkIG9mIGRvaW5nXG4gICAgICogaXQgbWFudWFsbHkgd2l0aGluIHRoZSBjYWxsYmFjay5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkZXI/OiAoZmlsZTogRmlsZSkgPT4gT2JzZXJ2YWJsZTxGaWxlTW9kZWw+O1xuXG4gICAgQElucHV0KCkgcHVibGljIG1vZGVsOiBGaWxlTW9kZWwgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIElmIHByb3ZpZGVkLCBpdHMgdmFsdWUgd2lsbCBnZXQgdXBkYXRlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzLlxuICAgICAqIEJ1dCBpdHMgdmFsdWUgaXMgbmV2ZXIgcmVhZCwgc28gaWYgeW91IHdhbnQgdG8gc2V0IGEgdmFsdWUgdXNlIGBbbW9kZWxdYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmb3JtQ3RybDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzICoqbXVzdCBub3QqKiBiZSB1c2VkIHRvIG11dGF0ZSB0aGUgc2VydmVyLCBiZWNhdXNlIGl0IGlzIHZlcnkgbGlrZWx5IGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmIHRoZVxuICAgICAqIGh1bWFuIG5hdmlnYXRlcyBhd2F5IGZyb20gdGhlIHBhZ2UgYmVmb3JlIHRoZSB1cGxvYWQgaXMgZmluaXNoZWQuIEluc3RlYWQsIHlvdSBzaG91bGQgdXNlIGBbdXBsb2FkZXJdYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTW9kZWw+KCk7XG5cbiAgICBwdWJsaWMgaW1hZ2VQcmV2aWV3ID0gJyc7XG4gICAgcHVibGljIGZpbGVQcmV2aWV3OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm1vZGVsICYmIGNoYW5nZXMubW9kZWwucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlbC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbWFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0ge2ZpbGU6IGZpbGV9O1xuICAgICAgICB0aGlzLnVwZGF0ZUltYWdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID1cbiAgICAgICAgICAgIHRoaXMudXBsb2FkZXI/LihmaWxlKS5waXBlKHRhcCgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBNaXMgw6Agam91cmApKSkgPz8gb2YodGhpcy5tb2RlbCk7XG5cbiAgICAgICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSByZXN1bHQ7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ3RybCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERvd25sb2FkTGluaygpOiBudWxsIHwgc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uICE9PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWxGaWxlU2VydmljZS5nZXREb3dubG9hZExpbmsodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJbWFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSAnJztcbiAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IG51bGw7XG4gICAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwuZmlsZT8udHlwZS5pbmNsdWRlcygnaW1hZ2UvJykpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGZyb20gdXBsb2FkIChiZWZvcmUgc2F2aW5nKVxuICAgICAgICAgICAgdGhpcy5nZXRCYXNlNjQodGhpcy5tb2RlbC5maWxlKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbD8uZmlsZT8udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gJ3VybChkYXRhOicgKyB0aGlzLm1vZGVsPy5maWxlPy50eXBlICsgJztiYXNlNjQsJyArIHJlc3VsdCArICcpJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuZmlsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwuZmlsZS50eXBlLnNwbGl0KCcvJylbMV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbC5fX3R5cGVuYW1lID09PSAnSW1hZ2UnICYmIHRoaXMubW9kZWwuaWQpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGltYWdlIHdpdGggaWQsIHVzZSBzcGVjaWZpYyBBUEkgdG8gcmVuZGVyIGltYWdlIGJ5IHNpemVcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHNob3cgaW1hZ2UgcHJldmlldyBiZWNhdXNlIGB3aW5kb3dgIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb2MgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmhlaWdodCA/ICcvJyArIHRoaXMuaGVpZ2h0IDogJyc7XG5cbiAgICAgICAgICAgIC8vIGNyZWF0ZSBpbWFnZSB1cmwgd2l0aG91dCBwb3J0IHRvIHN0YXkgY29tcGF0aWJsZSB3aXRoIGRldiBtb2RlXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGxvYy5wcm90b2NvbCArICcvLycgKyBsb2MuaG9zdG5hbWUgKyAnL2FwaS9pbWFnZS8nICsgdGhpcy5tb2RlbC5pZCArIGhlaWdodDtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gaW1hZ2U7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbD8ubWltZSAmJiBbJ0ZpbGUnLCAnQWNjb3VudGluZ0RvY3VtZW50J10uaW5jbHVkZXModGhpcy5tb2RlbC5fX3R5cGVuYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwubWltZS5zcGxpdCgnLycpWzFdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuc3JjKSB7XG4gICAgICAgICAgICAvLyBleHRlcm5hbCB1cmxcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gdGhpcy5tb2RlbC5zcmM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhc2U2NChmaWxlOiBGaWxlIHwgbnVsbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICAgICAgc3ViamVjdC5uZXh0KGJ0b2EoZXYudGFyZ2V0LnJlc3VsdCkpO1xuICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcblxuICAgICAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iLCI8YVxuICAgIChmaWxlQ2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCJcbiAgICBuYXR1cmFsRmlsZURyb3BcbiAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW2F0dHIuaHJlZl09XCJnZXREb3dubG9hZExpbmsoKVwiXG4gICAgW2NsYXNzLmhhcy1hY3Rpb25dPVwiISFhY3Rpb25cIlxuICAgIFtjbGFzcy5zdWdnZXN0LXVwbG9hZF09XCIhbW9kZWwgJiYgYWN0aW9uID09PSAndXBsb2FkJ1wiXG4gICAgW2ZpbGVTZWxlY3Rpb25EaXNhYmxlZF09XCJhY3Rpb24gIT09ICd1cGxvYWQnXCJcbiAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIWFjdGlvblwiXG4gICAgW25hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eV09XCJpbWFnZVByZXZpZXdcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kU2l6ZV09XCJiYWNrZ3JvdW5kU2l6ZVwiXG4gICAgbWF0UmlwcGxlXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbj5cbiAgICBAaWYgKGZpbGVQcmV2aWV3KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXdcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjMzXCIgbmF0dXJhbEljb249XCJhdHRhY2htZW50XCIgLz5cbiAgICAgICAgICAgIHt7IGZpbGVQcmV2aWV3IHwgdXBwZXJjYXNlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tb3ZlcmxheVwiPlxuICAgICAgICBAaWYgKGFjdGlvbiA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjY2XCIgbmF0dXJhbEljb249XCJjbG91ZF91cGxvYWRcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYWN0aW9uID09PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICA8bWF0LWljb24gW3NpemVdPVwiaGVpZ2h0ICogMC42NlwiIG5hdHVyYWxJY29uPVwiZ2V0X2FwcFwiIC8+XG4gICAgICAgIH1cbiAgICAgICAge3sgYWN0aW9uIHwgY2FwaXRhbGl6ZSB9fVxuICAgIDwvZGl2PlxuPC9hPlxuIl19
@@ -1,8 +1,9 @@
1
- import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';
1
+ import { DestroyRef, Directive, EventEmitter, HostBinding, HostListener, inject, Output } from '@angular/core';
2
2
  import { NaturalAbstractFile } from './abstract-file';
3
3
  import { eventToFiles, stopEvent } from './utils';
4
4
  import { asyncScheduler, Subject } from 'rxjs';
5
- import { takeUntil, throttleTime } from 'rxjs/operators';
5
+ import { throttleTime } from 'rxjs/operators';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * This directive has all options to select files, and adds support for drag'n'drop.
@@ -20,6 +21,7 @@ import * as i0 from "@angular/core";
20
21
  export class NaturalFileDropDirective extends NaturalAbstractFile {
21
22
  constructor() {
22
23
  super(...arguments);
24
+ this.destroyRef = inject(DestroyRef);
23
25
  this.fileOverClass = false;
24
26
  /**
25
27
  * Emits whenever files are being dragged over
@@ -34,7 +36,7 @@ export class NaturalFileDropDirective extends NaturalAbstractFile {
34
36
  // It's not absolutely perfect and if dragging slowly and precisely we can
35
37
  // still see flicker, but it should be better for most normal usages.
36
38
  this.rawFileOver
37
- .pipe(takeUntil(this.ngUnsubscribe), throttleTime(200, asyncScheduler, {
39
+ .pipe(takeUntilDestroyed(this.destroyRef), throttleTime(200, asyncScheduler, {
38
40
  leading: true,
39
41
  trailing: true,
40
42
  }))
@@ -109,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
109
111
  type: HostListener,
110
112
  args: ['dragleave', ['$event']]
111
113
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvZmlsZS1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUV2RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBSmpFOztRQUttRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUVyRTs7V0FFRztRQUN1QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVoRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7S0FrRnpEO0lBaEZtQixRQUFRO1FBQ3BCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixvRUFBb0U7UUFDcEUsNEVBQTRFO1FBQzVFLDBFQUEwRTtRQUMxRSxxRUFBcUU7UUFDckUsSUFBSSxDQUFDLFdBQVc7YUFDWCxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsWUFBWSxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUU7WUFDOUIsT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBR00sTUFBTSxDQUFDLEtBQWdCO1FBQzFCLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFFRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBR00sVUFBVSxDQUFDLEtBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNYLENBQUM7UUFFRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsZ0JBQWdCO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDcEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHTSxXQUFXLENBQUMsS0FBZ0I7UUFDL0IsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUVELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFlBQVk7UUFDaEIsT0FBTyxDQUNILElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDekIsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQ3BFLENBQUM7SUFDTixDQUFDOzhHQXpGUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBRWtELGFBQWE7c0JBQTNELFdBQVc7dUJBQUMseUJBQXlCO2dCQUtaLFFBQVE7c0JBQWpDLE1BQU07Z0JBMEJBLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBa0J6QixVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEwQjdCLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RGaWxlfSBmcm9tICcuL2Fic3RyYWN0LWZpbGUnO1xuaW1wb3J0IHtldmVudFRvRmlsZXMsIHN0b3BFdmVudH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge2FzeW5jU2NoZWR1bGVyLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBoYXMgYWxsIG9wdGlvbnMgdG8gc2VsZWN0IGZpbGVzLCBhbmQgYWRkcyBzdXBwb3J0IGZvciBkcmFnJ24nZHJvcC5cbiAqXG4gKiBJdCB3aWxsIGFkZCB0aGUgQ1NTIGNsYXNzIGBuYXR1cmFsLWZpbGUtb3ZlcmAgb24gdGhlIGNvbXBvbmVudCB3aGVuIGEgZmlsZSBpc1xuICogZHJhZ2dlZCBvdmVyLiBJdCBpcyB1cCB0byB0aGUgY29tcG9uZW50IHRvIGhhdmUgc29tZSBzcGVjaWZpYyBzdHlsaW5nIGJ5IHVzaW5nXG4gKiB0aGlzIGNsYXNzLlxuICpcbiAqIEluIG1vc3QgY2FzZXMgeW91IHByb2JhYmx5IGFsc28gd2FudCBjbGljay10by1zZWxlY3QsIHNvIHlvdSBzaG91bGQgdXNlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbmF0dXJhbEZpbGVEcm9wIFtzZWxlY3RhYmxlXT1cInRydWVcIj48L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJzpub3QoW25hdHVyYWxGaWxlU2VsZWN0XSlbbmF0dXJhbEZpbGVEcm9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpbGVEcm9wRGlyZWN0aXZlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0RmlsZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uYXR1cmFsLWZpbGUtb3ZlcicpIHB1YmxpYyBmaWxlT3ZlckNsYXNzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuZXZlciBmaWxlcyBhcmUgYmVpbmcgZHJhZ2dlZCBvdmVyXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBmaWxlT3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3RmlsZU92ZXIgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIC8vIEF1dG9tYXRpY2FsbHkgY2hhbmdlIHRoZSBjbGFzcywgYnV0IG5vdCB0b28gb2Z0ZW4gdG8gYXZvaWQgdmlzdWFsXG4gICAgICAgIC8vIGZsaWNrZXJpbmcgaW4gQ2hyb21lIHdoZW4gaG92ZXJpbmcgYWNyb3NzIGNoaWxkIEhUTUwgZWxlbWVudCBvZiBvdXIgaG9zdC5cbiAgICAgICAgLy8gSXQncyBub3QgYWJzb2x1dGVseSBwZXJmZWN0IGFuZCBpZiBkcmFnZ2luZyBzbG93bHkgYW5kIHByZWNpc2VseSB3ZSBjYW5cbiAgICAgICAgLy8gc3RpbGwgc2VlIGZsaWNrZXIsIGJ1dCBpdCBzaG91bGQgYmUgYmV0dGVyIGZvciBtb3N0IG5vcm1hbCB1c2FnZXMuXG4gICAgICAgIHRoaXMucmF3RmlsZU92ZXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgyMDAsIGFzeW5jU2NoZWR1bGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIGxlYWRpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShmaWxlT3ZlciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlT3Zlci5lbWl0KGZpbGVPdmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVPdmVyQ2xhc3MgPSBmaWxlT3ZlcjtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWxlU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xvc2VEcmFncygpO1xuXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnRUb0ZpbGVzKGV2ZW50KTtcbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oYXNPYnNlcnZlcnMoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuXG4gICAgICAgIC8vIENoYW5nZSBjdXJzb3JcbiAgICAgICAgY29uc3QgdHJhbnNmZXIgPSBldmVudC5kYXRhVHJhbnNmZXI7XG4gICAgICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgICAgICAgdHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmF3RmlsZU92ZXIubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlRHJhZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmF3RmlsZU92ZXIubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWxlU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuY2xvc2VEcmFncygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzT2JzZXJ2ZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLm9ic2VydmVkIHx8XG4gICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlLm9ic2VydmVkIHx8XG4gICAgICAgICAgICAodGhpcy5icm9hZGNhc3QgJiYgdGhpcy5uYXR1cmFsRmlsZVNlcnZpY2UuZmlsZXNDaGFuZ2VkLm9ic2VydmVkKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvZmlsZS1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBS0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjtJQUpqRTs7UUFLcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNGLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXJFOztXQUVHO1FBQ3VCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQWtGekQ7SUFoRm1CLFFBQVE7UUFDcEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLG9FQUFvRTtRQUNwRSw0RUFBNEU7UUFDNUUsMEVBQTBFO1FBQzFFLHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsV0FBVzthQUNYLElBQUksQ0FDRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ25DLFlBQVksQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFO1lBQzlCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUdNLE1BQU0sQ0FBQyxLQUFnQjtRQUMxQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBRUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdNLFVBQVUsQ0FBQyxLQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDWCxDQUFDO1FBRUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpCLGdCQUFnQjtRQUNoQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3BDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBR00sV0FBVyxDQUFDLEtBQWdCO1FBQy9CLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNYLENBQUM7UUFFRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLE9BQU8sQ0FDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO1lBQ3pCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUNwRSxDQUFDO0lBQ04sQ0FBQzs4R0ExRlEsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRDQUE0QztvQkFDdEQsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQUdrRCxhQUFhO3NCQUEzRCxXQUFXO3VCQUFDLHlCQUF5QjtnQkFLWixRQUFRO3NCQUFqQyxNQUFNO2dCQTBCQSxNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWtCekIsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMEI3QixXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RGaWxlfSBmcm9tICcuL2Fic3RyYWN0LWZpbGUnO1xuaW1wb3J0IHtldmVudFRvRmlsZXMsIHN0b3BFdmVudH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge2FzeW5jU2NoZWR1bGVyLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGhhcyBhbGwgb3B0aW9ucyB0byBzZWxlY3QgZmlsZXMsIGFuZCBhZGRzIHN1cHBvcnQgZm9yIGRyYWcnbidkcm9wLlxuICpcbiAqIEl0IHdpbGwgYWRkIHRoZSBDU1MgY2xhc3MgYG5hdHVyYWwtZmlsZS1vdmVyYCBvbiB0aGUgY29tcG9uZW50IHdoZW4gYSBmaWxlIGlzXG4gKiBkcmFnZ2VkIG92ZXIuIEl0IGlzIHVwIHRvIHRoZSBjb21wb25lbnQgdG8gaGF2ZSBzb21lIHNwZWNpZmljIHN0eWxpbmcgYnkgdXNpbmdcbiAqIHRoaXMgY2xhc3MuXG4gKlxuICogSW4gbW9zdCBjYXNlcyB5b3UgcHJvYmFibHkgYWxzbyB3YW50IGNsaWNrLXRvLXNlbGVjdCwgc28geW91IHNob3VsZCB1c2U6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBuYXR1cmFsRmlsZURyb3AgW3NlbGVjdGFibGVdPVwidHJ1ZVwiPjwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnOm5vdChbbmF0dXJhbEZpbGVTZWxlY3RdKVtuYXR1cmFsRmlsZURyb3BdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRmlsZURyb3BEaXJlY3RpdmUgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RGaWxlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uYXR1cmFsLWZpbGUtb3ZlcicpIHB1YmxpYyBmaWxlT3ZlckNsYXNzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuZXZlciBmaWxlcyBhcmUgYmVpbmcgZHJhZ2dlZCBvdmVyXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBmaWxlT3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF3RmlsZU92ZXIgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIC8vIEF1dG9tYXRpY2FsbHkgY2hhbmdlIHRoZSBjbGFzcywgYnV0IG5vdCB0b28gb2Z0ZW4gdG8gYXZvaWQgdmlzdWFsXG4gICAgICAgIC8vIGZsaWNrZXJpbmcgaW4gQ2hyb21lIHdoZW4gaG92ZXJpbmcgYWNyb3NzIGNoaWxkIEhUTUwgZWxlbWVudCBvZiBvdXIgaG9zdC5cbiAgICAgICAgLy8gSXQncyBub3QgYWJzb2x1dGVseSBwZXJmZWN0IGFuZCBpZiBkcmFnZ2luZyBzbG93bHkgYW5kIHByZWNpc2VseSB3ZSBjYW5cbiAgICAgICAgLy8gc3RpbGwgc2VlIGZsaWNrZXIsIGJ1dCBpdCBzaG91bGQgYmUgYmV0dGVyIGZvciBtb3N0IG5vcm1hbCB1c2FnZXMuXG4gICAgICAgIHRoaXMucmF3RmlsZU92ZXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgyMDAsIGFzeW5jU2NoZWR1bGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIGxlYWRpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShmaWxlT3ZlciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlT3Zlci5lbWl0KGZpbGVPdmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVPdmVyQ2xhc3MgPSBmaWxlT3ZlcjtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWxlU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xvc2VEcmFncygpO1xuXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnRUb0ZpbGVzKGV2ZW50KTtcbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oYXNPYnNlcnZlcnMoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuXG4gICAgICAgIC8vIENoYW5nZSBjdXJzb3JcbiAgICAgICAgY29uc3QgdHJhbnNmZXIgPSBldmVudC5kYXRhVHJhbnNmZXI7XG4gICAgICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgICAgICAgdHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmF3RmlsZU92ZXIubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlRHJhZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmF3RmlsZU92ZXIubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWxlU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuY2xvc2VEcmFncygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzT2JzZXJ2ZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLm9ic2VydmVkIHx8XG4gICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlLm9ic2VydmVkIHx8XG4gICAgICAgICAgICAodGhpcy5icm9hZGNhc3QgJiYgdGhpcy5uYXR1cmFsRmlsZVNlcnZpY2UuZmlsZXNDaGFuZ2VkLm9ic2VydmVkKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
- import { Inject, Injectable } from '@angular/core';
1
+ import { Injectable, inject } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { DOCUMENT } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  // @dynamic
6
6
  export class NaturalFileService {
7
- constructor(document) {
8
- this.document = document;
7
+ constructor() {
8
+ this.document = inject(DOCUMENT);
9
9
  /**
10
10
  * Allow to subscribe to selected files in the entire application. So a
11
11
  * child component is able to receive a file that was dropped on a parent
@@ -33,7 +33,7 @@ export class NaturalFileService {
33
33
  }
34
34
  return null;
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
37
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, providedIn: 'root' }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, decorators: [{
@@ -41,8 +41,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
41
41
  args: [{
42
42
  providedIn: 'root',
43
43
  }]
44
- }], ctorParameters: () => [{ type: Document, decorators: [{
45
- type: Inject,
46
- args: [DOCUMENT]
47
- }] }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXpDLFdBQVc7QUFJWCxNQUFNLE9BQU8sa0JBQWtCO0lBVzNCLFlBQXNELFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFWeEU7Ozs7Ozs7V0FPRztRQUNhLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7SUFFZSxDQUFDO0lBRXJFLGVBQWUsQ0FBQyxLQUF1QjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUU1RSxJQUFJLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxRQUFRLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BELE9BQU8sUUFBUSxHQUFHLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsR0FBRyxhQUFhLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0E5QlEsa0JBQWtCLGtCQVdBLFFBQVE7a0hBWDFCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVl1QixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWxlU2VsZWN0aW9ufSBmcm9tICcuL2Fic3RyYWN0LWZpbGUnO1xuaW1wb3J0IHtGaWxlTW9kZWx9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gQGR5bmFtaWNcbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxGaWxlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQWxsb3cgdG8gc3Vic2NyaWJlIHRvIHNlbGVjdGVkIGZpbGVzIGluIHRoZSBlbnRpcmUgYXBwbGljYXRpb24uIFNvIGFcbiAgICAgKiBjaGlsZCBjb21wb25lbnQgaXMgYWJsZSB0byByZWNlaXZlIGEgZmlsZSB0aGF0IHdhcyBkcm9wcGVkIG9uIGEgcGFyZW50XG4gICAgICogY29tcG9uZW50LlxuICAgICAqXG4gICAgICogVHlwaWNhbGx5IHVzZWZ1bCB0byBkcm9wIGEgZmlsZSBvbiB0aGUgZW50aXJlIHNjcmVlbiwgaW5zdGVhZCBvZiBhIHByZWNpc2VcbiAgICAgKiBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGVzQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PEZpbGVTZWxlY3Rpb24+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQpIHt9XG5cbiAgICBwdWJsaWMgZ2V0RG93bmxvYWRMaW5rKG1vZGVsOiBGaWxlTW9kZWwgfCBudWxsKTogbnVsbCB8IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgICAgIGlmICghd2luZG93KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBidWlsZCBkb3dubG9hZCBsaW5rIGJlY2F1c2UgYHdpbmRvd2AgaXMgdW5kZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5cbiAgICAgICAgaWYgKG1vZGVsPy5fX3R5cGVuYW1lID09PSAnRmlsZScpIHtcbiAgICAgICAgICAgIHJldHVybiBob3N0bmFtZSArICcvYXBpL2ZpbGUvJyArIG1vZGVsLmlkO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGVsPy5fX3R5cGVuYW1lID09PSAnQWNjb3VudGluZ0RvY3VtZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIGhvc3RuYW1lICsgJy9hcGkvYWNjb3VudGluZy1kb2N1bWVudC8nICsgbW9kZWwuaWQ7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZWw/Ll9fdHlwZW5hbWUgPT09ICdJbWFnZScpIHtcbiAgICAgICAgICAgIHJldHVybiBob3N0bmFtZSArICcvYXBpL2ltYWdlLycgKyBtb2RlbC5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXpDLFdBQVc7QUFJWCxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBSXFCLGFBQVEsR0FBRyxNQUFNLENBQVcsUUFBUSxDQUFDLENBQUM7UUFFdkQ7Ozs7Ozs7V0FPRztRQUNhLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7S0FvQi9EO0lBbEJVLGVBQWUsQ0FBQyxLQUF1QjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUU1RSxJQUFJLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxRQUFRLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BELE9BQU8sUUFBUSxHQUFHLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsR0FBRyxhQUFhLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0E5QlEsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGZixNQUFNOzsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsZVNlbGVjdGlvbn0gZnJvbSAnLi9hYnN0cmFjdC1maWxlJztcbmltcG9ydCB7RmlsZU1vZGVsfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIEBkeW5hbWljXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRmlsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcblxuICAgIC8qKlxuICAgICAqIEFsbG93IHRvIHN1YnNjcmliZSB0byBzZWxlY3RlZCBmaWxlcyBpbiB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLiBTbyBhXG4gICAgICogY2hpbGQgY29tcG9uZW50IGlzIGFibGUgdG8gcmVjZWl2ZSBhIGZpbGUgdGhhdCB3YXMgZHJvcHBlZCBvbiBhIHBhcmVudFxuICAgICAqIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSB1c2VmdWwgdG8gZHJvcCBhIGZpbGUgb24gdGhlIGVudGlyZSBzY3JlZW4sIGluc3RlYWQgb2YgYSBwcmVjaXNlXG4gICAgICogY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmaWxlc0NoYW5nZWQgPSBuZXcgU3ViamVjdDxGaWxlU2VsZWN0aW9uPigpO1xuXG4gICAgcHVibGljIGdldERvd25sb2FkTGluayhtb2RlbDogRmlsZU1vZGVsIHwgbnVsbCk6IG51bGwgfCBzdHJpbmcge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgICAgICBpZiAoIXdpbmRvdykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYnVpbGQgZG93bmxvYWQgbGluayBiZWNhdXNlIGB3aW5kb3dgIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG4gICAgICAgIGlmIChtb2RlbD8uX190eXBlbmFtZSA9PT0gJ0ZpbGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gaG9zdG5hbWUgKyAnL2FwaS9maWxlLycgKyBtb2RlbC5pZDtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlbD8uX190eXBlbmFtZSA9PT0gJ0FjY291bnRpbmdEb2N1bWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiBob3N0bmFtZSArICcvYXBpL2FjY291bnRpbmctZG9jdW1lbnQvJyArIG1vZGVsLmlkO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGVsPy5fX3R5cGVuYW1lID09PSAnSW1hZ2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gaG9zdG5hbWUgKyAnL2FwaS9pbWFnZS8nICsgbW9kZWwuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -6,4 +6,4 @@ export * from './file-select.directive';
6
6
  export * from './file.service';
7
7
  export * from './component/file.component';
8
8
  export * from './types';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5hdHVyYWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtZHJvcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXNlbGVjdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLnNlcnZpY2UnO1xuZXhwb3J0IHtJbnZhbGlkRmlsZSwgRmlsZVNlbGVjdGlvbn0gZnJvbSAnLi9hYnN0cmFjdC1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50L2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5hdHVyYWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtZHJvcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXNlbGVjdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge0ludmFsaWRGaWxlLCBGaWxlU2VsZWN0aW9ufSBmcm9tICcuL2Fic3RyYWN0LWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
@@ -1,10 +1,10 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
2
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
4
  import { MatTooltipModule } from '@angular/material/tooltip';
4
5
  import { NaturalFixedButtonComponent } from '../fixed-button/fixed-button.component';
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- import * as i2 from "@angular/material/tooltip";
7
+ import * as i1 from "@angular/material/tooltip";
8
8
  export class NaturalFixedButtonDetailComponent {
9
9
  get model() {
10
10
  return this._model;
@@ -16,11 +16,12 @@ export class NaturalFixedButtonDetailComponent {
16
16
  this.canChange = false;
17
17
  }
18
18
  }
19
- constructor(route) {
19
+ constructor() {
20
20
  this.canChange = true;
21
21
  this.isCreation = false;
22
22
  this.create = new EventEmitter();
23
23
  this.delete = new EventEmitter();
24
+ const route = inject(ActivatedRoute);
24
25
  route.params.pipe(takeUntilDestroyed()).subscribe(() => (this.canChange = true));
25
26
  }
26
27
  clickCreate() {
@@ -33,13 +34,13 @@ export class NaturalFixedButtonDetailComponent {
33
34
  this.delete.emit();
34
35
  }
35
36
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFixedButtonDetailComponent, isStandalone: true, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n", styles: [""], dependencies: [{ kind: "component", type: NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFixedButtonDetailComponent, isStandalone: true, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n", styles: [""], dependencies: [{ kind: "component", type: NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
38
39
  }
39
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonDetailComponent, decorators: [{
40
41
  type: Component,
41
42
  args: [{ selector: 'natural-fixed-button-detail', standalone: true, imports: [NaturalFixedButtonComponent, MatTooltipModule], template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n" }]
42
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }], propDecorators: { model: [{
43
+ }], ctorParameters: () => [], propDecorators: { model: [{
43
44
  type: Input,
44
45
  args: [{ required: true }]
45
46
  }], form: [{
@@ -50,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
50
51
  }], delete: [{
51
52
  type: Output
52
53
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maXhlZC1idXR0b24tZGV0YWlsL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFnQm5GLE1BQU0sT0FBTyxpQ0FBaUM7SUFJMUMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNXLEtBQUssQ0FBQyxLQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQVNELFlBQW1CLEtBQXFCO1FBdkJoQyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFtQkEsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHeEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDOzhHQXRDUSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxrTENyQjlDLGlvQkFzQkEsMERESGMsMkJBQTJCLCtHQUFFLGdCQUFnQjs7MkZBRTlDLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFDSSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsZ0JBQWdCLENBQUM7bUZBVzdDLEtBQUs7c0JBRGYsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBV1MsSUFBSTtzQkFBbkMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBRUcsTUFBTTtzQkFBL0IsTUFBTTtnQkFDbUIsTUFBTTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7TmF0dXJhbEZpeGVkQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9maXhlZC1idXR0b24vZml4ZWQtYnV0dG9uLmNvbXBvbmVudCc7XG5cbnR5cGUgTW9kZWwgPSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM/OiB7XG4gICAgICAgIGRlbGV0ZTogYm9vbGVhbjtcbiAgICB9O1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWZpeGVkLWJ1dHRvbi1kZXRhaWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmF0dXJhbEZpeGVkQnV0dG9uQ29tcG9uZW50LCBNYXRUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpeGVkQnV0dG9uRGV0YWlsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGNhbkNoYW5nZSA9IHRydWU7XG4gICAgcHVibGljIGlzQ3JlYXRpb24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKTogTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogTW9kZWwpIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuY2FuQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ3JlYXRpb24gPSAhdGhpcy5fbW9kZWwuaWQ7XG4gICAgICAgICAgICB0aGlzLmNhbkNoYW5nZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW9kZWwhOiBNb2RlbDtcblxuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZm9ybSE6IEZvcm1Hcm91cDtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICByb3V0ZS5wYXJhbXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmNhbkNoYW5nZSA9IHRydWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tDcmVhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoaXNDcmVhdGlvbikge1xuICAgIDxuYXR1cmFsLWZpeGVkLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiY2xpY2tDcmVhdGUoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmRpc2FibGVkXCJcbiAgICAgICAgW2NvbG9yXT1cImZvcm0udmFsaWQgPyAnYWNjZW50JyA6ICd3YXJuJ1wiXG4gICAgICAgIGNsYXNzPVwiZGV0YWlsLXNwZWVkLWRpYWxcIlxuICAgICAgICBpY29uPVwic2F2ZVwiXG4gICAgLz5cbn1cblxuQGlmICghaXNDcmVhdGlvbiAmJiAoIW1vZGVsLnBlcm1pc3Npb25zIHx8IG1vZGVsLnBlcm1pc3Npb25zLmRlbGV0ZSkpIHtcbiAgICA8bmF0dXJhbC1maXhlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNsaWNrRGVsZXRlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiXG4gICAgICAgIGNsYXNzPVwiZGV0YWlsLXNwZWVkLWRpYWxcIlxuICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICBpY29uPVwiZGVsZXRlX2ZvcmV2ZXJcIlxuICAgICAgICBpMThuLW1hdFRvb2x0aXBcbiAgICAgICAgbWF0VG9vbHRpcD1cIlN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICAvPlxufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maXhlZC1idXR0b24tZGV0YWlsL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBZ0JuRixNQUFNLE9BQU8saUNBQWlDO0lBSTFDLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDVyxLQUFLLENBQUMsS0FBWTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFTRDtRQXZCUSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFtQkEsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXJDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQzs4R0F4Q1EsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsa0xDckI5Qyxpb0JBc0JBLDBEREhjLDJCQUEyQiwrR0FBRSxnQkFBZ0I7OzJGQUU5QyxpQ0FBaUM7a0JBUDdDLFNBQVM7K0JBQ0ksNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLDJCQUEyQixFQUFFLGdCQUFnQixDQUFDO3dEQVc3QyxLQUFLO3NCQURmLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQVdTLElBQUk7c0JBQW5DLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUVHLE1BQU07c0JBQS9CLE1BQU07Z0JBQ21CLE1BQU07c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7TmF0dXJhbEZpeGVkQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9maXhlZC1idXR0b24vZml4ZWQtYnV0dG9uLmNvbXBvbmVudCc7XG5cbnR5cGUgTW9kZWwgPSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM/OiB7XG4gICAgICAgIGRlbGV0ZTogYm9vbGVhbjtcbiAgICB9O1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWZpeGVkLWJ1dHRvbi1kZXRhaWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmF0dXJhbEZpeGVkQnV0dG9uQ29tcG9uZW50LCBNYXRUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpeGVkQnV0dG9uRGV0YWlsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGNhbkNoYW5nZSA9IHRydWU7XG4gICAgcHVibGljIGlzQ3JlYXRpb24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKTogTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogTW9kZWwpIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuY2FuQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ3JlYXRpb24gPSAhdGhpcy5fbW9kZWwuaWQ7XG4gICAgICAgICAgICB0aGlzLmNhbkNoYW5nZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW9kZWwhOiBNb2RlbDtcblxuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZm9ybSE6IEZvcm1Hcm91cDtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgICAgICAgcm91dGUucGFyYW1zLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiAodGhpcy5jYW5DaGFuZ2UgPSB0cnVlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0RlbGV0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGlzQ3JlYXRpb24pIHtcbiAgICA8bmF0dXJhbC1maXhlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNsaWNrQ3JlYXRlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiXG4gICAgICAgIFtjb2xvcl09XCJmb3JtLnZhbGlkID8gJ2FjY2VudCcgOiAnd2FybidcIlxuICAgICAgICBjbGFzcz1cImRldGFpbC1zcGVlZC1kaWFsXCJcbiAgICAgICAgaWNvbj1cInNhdmVcIlxuICAgIC8+XG59XG5cbkBpZiAoIWlzQ3JlYXRpb24gJiYgKCFtb2RlbC5wZXJtaXNzaW9ucyB8fCBtb2RlbC5wZXJtaXNzaW9ucy5kZWxldGUpKSB7XG4gICAgPG5hdHVyYWwtZml4ZWQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJjbGlja0RlbGV0ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cImRldGFpbC1zcGVlZC1kaWFsXCJcbiAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgaWNvbj1cImRlbGV0ZV9mb3JldmVyXCJcbiAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgIG1hdFRvb2x0aXA9XCJTdXBwcmltZXIgZMOpZmluaXRpdmVtZW50XCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgLz5cbn1cbiJdfQ==