geonetwork-ui 2.4.0 → 2.4.1-dev.2804667fa

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 (153) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +6 -62
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +19 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +24 -17
  4. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +27 -1
  5. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  6. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +7 -1
  7. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  8. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +15 -14
  9. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +10 -4
  10. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +6 -4
  11. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +2 -2
  12. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  13. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +3 -3
  14. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +2 -2
  15. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +45 -9
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +7 -12
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +16 -12
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +7 -13
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +3 -3
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +36 -60
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +3 -3
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +3 -3
  23. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +11 -15
  24. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +9 -5
  25. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +3 -4
  26. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +3 -3
  27. package/esm2022/libs/ui/elements/src/index.mjs +3 -2
  28. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +213 -0
  29. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +19 -13
  30. package/esm2022/libs/ui/inputs/src/index.mjs +5 -6
  31. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -1
  32. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +5 -5
  33. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +19 -25
  34. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +6 -6
  35. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +3 -6
  36. package/esm2022/translations/de.json +47 -17
  37. package/esm2022/translations/en.json +27 -16
  38. package/esm2022/translations/es.json +45 -15
  39. package/esm2022/translations/fr.json +31 -20
  40. package/esm2022/translations/it.json +261 -231
  41. package/esm2022/translations/nl.json +45 -15
  42. package/esm2022/translations/pt.json +45 -15
  43. package/fesm2022/geonetwork-ui.mjs +1352 -1160
  44. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  45. package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -1
  46. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  47. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +3 -3
  48. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  49. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
  50. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  51. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -3
  52. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  53. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +3 -0
  54. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  55. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -2
  56. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  57. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +3 -2
  58. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  59. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +3 -2
  60. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  61. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +1 -1
  62. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  63. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +1 -1
  64. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  65. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +11 -2
  66. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  67. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +1 -4
  68. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  69. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +5 -4
  70. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  71. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +1 -4
  72. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  73. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +1 -1
  74. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  75. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  76. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -1
  77. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  78. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +0 -1
  79. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  80. package/libs/ui/elements/src/index.d.ts +2 -1
  81. package/libs/ui/elements/src/index.d.ts.map +1 -1
  82. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -0
  83. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  84. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  85. package/libs/ui/inputs/src/index.d.ts +4 -5
  86. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  87. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  88. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  89. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +1 -1
  90. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
  91. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +6 -7
  92. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  93. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -2
  94. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  95. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +1 -2
  96. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  97. package/package.json +1 -1
  98. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.ts +9 -62
  99. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +18 -0
  100. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +47 -28
  101. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +29 -7
  102. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -3
  103. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +162 -0
  104. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +24 -4
  105. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -1
  106. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +42 -31
  107. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +10 -9
  108. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +12 -12
  109. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +5 -5
  110. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  111. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +1 -1
  112. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +31 -6
  113. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +47 -2
  114. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +1 -10
  115. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +1 -7
  116. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +3 -18
  117. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +12 -8
  118. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +0 -9
  119. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +3 -9
  120. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +6 -6
  121. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +46 -74
  122. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +4 -1
  123. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +3 -6
  124. package/src/libs/feature/editor/src/lib/fields.config.ts +10 -14
  125. package/src/libs/feature/editor/src/lib/services/editor.service.ts +18 -16
  126. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +0 -1
  127. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +0 -3
  128. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +1 -0
  129. package/src/libs/ui/elements/src/index.ts +2 -1
  130. package/src/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.html +4 -19
  131. package/src/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.ts +13 -9
  132. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +13 -10
  133. package/src/libs/ui/inputs/src/index.ts +4 -5
  134. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -1
  135. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +1 -1
  136. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +22 -25
  137. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +5 -3
  138. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -1
  139. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +8 -4
  140. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +0 -1
  141. package/translations/de.json +47 -17
  142. package/translations/en.json +27 -16
  143. package/translations/es.json +45 -15
  144. package/translations/fr.json +31 -20
  145. package/translations/it.json +261 -231
  146. package/translations/nl.json +45 -15
  147. package/translations/pt.json +45 -15
  148. package/translations/sk.json +45 -15
  149. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +0 -214
  150. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +0 -1
  151. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/update-frequency.mapper.ts +0 -67
  152. /package/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.d.ts +0 -0
  153. /package/src/libs/ui/{inputs → elements}/src/lib/image-input/image-input.component.css +0 -0
@@ -1,18 +1,14 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
3
- import { ImageInputComponent } from '../../../../../../../../../libs/ui/inputs/src';
3
+ import { ImageInputComponent } from '../../../../../../../../../libs/ui/elements/src';
4
4
  import { PlatformServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/platform.service.interface';
5
5
  import { NotificationsService } from '../../../../../../../../../libs/feature/notifications/src';
6
6
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
7
- import { map } from 'rxjs';
8
7
  import { MAX_UPLOAD_SIZE_MB } from '../../../../fields.config';
9
- import { EditorFacade } from '../../../../+state/editor.facade';
10
8
  import * as i0 from "@angular/core";
11
9
  import * as i1 from "../../../../../../../../../libs/common/domain/src/lib/platform.service.interface";
12
10
  import * as i2 from "../../../../../../../../../libs/feature/notifications/src";
13
11
  import * as i3 from "@ngx-translate/core";
14
- import * as i4 from "../../../../+state/editor.facade";
15
- import * as i5 from "@angular/common";
16
12
  export class FormFieldOverviewsComponent {
17
13
  get firstOverview() {
18
14
  return (this.value[0] ?? {
@@ -20,14 +16,12 @@ export class FormFieldOverviewsComponent {
20
16
  description: '',
21
17
  });
22
18
  }
23
- constructor(platformService, notificationsService, translateService, cd, editorFacade) {
19
+ constructor(platformService, notificationsService, translateService, cd) {
24
20
  this.platformService = platformService;
25
21
  this.notificationsService = notificationsService;
26
22
  this.translateService = translateService;
27
23
  this.cd = cd;
28
- this.editorFacade = editorFacade;
29
24
  this.valueChange = new EventEmitter();
30
- this.disabled$ = this.editorFacade.alreadySavedOnce$.pipe(map((alreadySavedOnce) => !alreadySavedOnce));
31
25
  this.uploadProgress = undefined;
32
26
  this.uploadSubscription = null;
33
27
  this.MAX_UPLOAD_SIZE_MB = MAX_UPLOAD_SIZE_MB;
@@ -94,17 +88,17 @@ export class FormFieldOverviewsComponent {
94
88
  emitOverview(overView) {
95
89
  this.valueChange.emit(overView ? [overView] : []);
96
90
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOverviewsComponent, deps: [{ token: i1.PlatformServiceInterface }, { token: i2.NotificationsService }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i4.EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOverviewsComponent, isStandalone: true, selector: "gn-ui-form-field-overviews", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-image-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n [previewUrl]=\"firstOverview.url\"\n [altText]=\"firstOverview.description\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n [uploadProgress]=\"uploadProgress\"\n (uploadCancel)=\"handleUploadCancel()\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-image-input>\n <div\n *ngIf=\"disabled$ | async\"\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n data-test=\"disabled-message\"\n >\n editor.record.form.field.draft.only.disabled\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: ImageInputComponent, selector: "gn-ui-image-input", inputs: ["maxSizeMB", "previewUrl", "altText", "uploadProgress", "uploadError", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel", "delete", "altTextChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOverviewsComponent, deps: [{ token: i1.PlatformServiceInterface }, { token: i2.NotificationsService }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOverviewsComponent, isStandalone: true, selector: "gn-ui-form-field-overviews", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-image-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n [previewUrl]=\"firstOverview.url\"\n [altText]=\"firstOverview.description\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n [uploadProgress]=\"uploadProgress\"\n (uploadCancel)=\"handleUploadCancel()\"\n ></gn-ui-image-input>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ImageInputComponent, selector: "gn-ui-image-input", inputs: ["maxSizeMB", "previewUrl", "altText", "uploadProgress", "uploadError", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel", "delete", "altTextChange"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99
93
  }
100
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOverviewsComponent, decorators: [{
101
95
  type: Component,
102
- args: [{ selector: 'gn-ui-form-field-overviews', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ImageInputComponent, TranslateModule], template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-image-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n [previewUrl]=\"firstOverview.url\"\n [altText]=\"firstOverview.description\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n [uploadProgress]=\"uploadProgress\"\n (uploadCancel)=\"handleUploadCancel()\"\n [disabled]=\"disabled$ | async\"\n ></gn-ui-image-input>\n <div\n *ngIf=\"disabled$ | async\"\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n data-test=\"disabled-message\"\n >\n editor.record.form.field.draft.only.disabled\n </div>\n</div>\n" }]
103
- }], ctorParameters: () => [{ type: i1.PlatformServiceInterface }, { type: i2.NotificationsService }, { type: i3.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i4.EditorFacade }], propDecorators: { metadataUuid: [{
96
+ args: [{ selector: 'gn-ui-form-field-overviews', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ImageInputComponent, TranslateModule], template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-image-input\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n [previewUrl]=\"firstOverview.url\"\n [altText]=\"firstOverview.description\"\n (fileChange)=\"handleFileChange($event)\"\n (urlChange)=\"handleUrlChange($event)\"\n (altTextChange)=\"handleAltTextChange($event)\"\n (delete)=\"handleDelete()\"\n [uploadProgress]=\"uploadProgress\"\n (uploadCancel)=\"handleUploadCancel()\"\n ></gn-ui-image-input>\n</div>\n" }]
97
+ }], ctorParameters: () => [{ type: i1.PlatformServiceInterface }, { type: i2.NotificationsService }, { type: i3.TranslateService }, { type: i0.ChangeDetectorRef }], propDecorators: { metadataUuid: [{
104
98
  type: Input
105
99
  }], value: [{
106
100
  type: Input
107
101
  }], valueChange: [{
108
102
  type: Output
109
103
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vdmVydmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLW92ZXJ2aWV3cy9mb3JtLWZpZWxkLW92ZXJ2aWV3cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb3ZlcnZpZXdzL2Zvcm0tZmllbGQtb3ZlcnZpZXdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTs7Ozs7OztBQVUvRCxNQUFNLE9BQU8sMkJBQTJCO0lBZXRDLElBQUksYUFBYTtRQUNmLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUk7WUFDVCxXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsWUFDVSxlQUF5QyxFQUN6QyxvQkFBMEMsRUFDMUMsZ0JBQWtDLEVBQ2xDLEVBQXFCLEVBQ3JCLFlBQTBCO1FBSjFCLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtRQUN6Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUExQjFCLGdCQUFXLEdBQ25CLElBQUksWUFBWSxFQUFFLENBQUE7UUFFcEIsY0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUM3QyxDQUFBO1FBRUQsbUJBQWMsR0FBRyxTQUFTLENBQUE7UUFDMUIsdUJBQWtCLEdBQWlCLElBQUksQ0FBQTtRQUU3Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQTtRQTJFekMsZ0JBQVcsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFBO1lBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUE7WUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUN4QztnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FDbEMsbUNBQW1DLENBQ3BDO2dCQUNELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3BDLGtDQUFrQyxDQUNuQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUN6QywwQ0FBMEMsQ0FDM0M7YUFDRixFQUNELFNBQVMsRUFDVCxLQUFLLENBQ04sQ0FBQTtRQUNILENBQUMsQ0FBQTtJQTdFRSxDQUFDO0lBRUosZ0JBQWdCLENBQUMsSUFBVTtRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQTtRQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWU7YUFDM0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUM7YUFDM0MsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUE7b0JBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ3pCLENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQTtvQkFDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtvQkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQzt3QkFDaEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRzt3QkFDekIsV0FBVyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUTtxQkFDdkMsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztTQUNqRCxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUE7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUNoQixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNqQixXQUFXLEVBQUUsUUFBUTthQUN0QixDQUFDLENBQUE7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBVSxDQUFDLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUc7WUFDM0IsV0FBVyxFQUFFLFVBQVU7U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0M7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuRCxDQUFDOytHQXRGVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix5TEMxQnhDLHN2QkFzQkEseURERVksWUFBWSx3TEFBRSxtQkFBbUIsMk9BQUUsZUFBZTs7NEZBRWpELDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQzswTkFHcEQsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBHcmFwaGljT3ZlcnZpZXcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBJbWFnZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9ub3RpZmljYXRpb25zL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNQVhfVVBMT0FEX1NJWkVfTUIgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMuY29uZmlnJ1xuaW1wb3J0IHsgRWRpdG9yRmFjYWRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vK3N0YXRlL2VkaXRvci5mYWNhZGUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtb3ZlcnZpZXdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb3ZlcnZpZXdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1vdmVydmlld3MuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW1hZ2VJbnB1dENvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkT3ZlcnZpZXdzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbWV0YWRhdGFVdWlkOiBzdHJpbmdcbiAgQElucHV0KCkgdmFsdWU6IEFycmF5PEdyYXBoaWNPdmVydmlldz5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QXJyYXk8R3JhcGhpY092ZXJ2aWV3Pj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGRpc2FibGVkJCA9IHRoaXMuZWRpdG9yRmFjYWRlLmFscmVhZHlTYXZlZE9uY2UkLnBpcGUoXG4gICAgbWFwKChhbHJlYWR5U2F2ZWRPbmNlKSA9PiAhYWxyZWFkeVNhdmVkT25jZSlcbiAgKVxuXG4gIHVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gIHVwbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbFxuXG4gIHByb3RlY3RlZCBNQVhfVVBMT0FEX1NJWkVfTUIgPSBNQVhfVVBMT0FEX1NJWkVfTUJcblxuICBnZXQgZmlyc3RPdmVydmlldygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy52YWx1ZVswXSA/PyB7XG4gICAgICAgIHVybDogbnVsbCxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zU2VydmljZTogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWRpdG9yRmFjYWRlOiBFZGl0b3JGYWNhZGVcbiAgKSB7fVxuXG4gIGhhbmRsZUZpbGVDaGFuZ2UoZmlsZTogRmlsZSkge1xuICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSAwXG4gICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLnBsYXRmb3JtU2VydmljZVxuICAgICAgLmF0dGFjaEZpbGVUb1JlY29yZCh0aGlzLm1ldGFkYXRhVXVpZCwgZmlsZSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Byb2dyZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IGV2ZW50LnByb2dyZXNzXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgICAgdGhpcy5lbWl0T3ZlcnZpZXcoe1xuICAgICAgICAgICAgICB1cmw6IGV2ZW50LmF0dGFjaG1lbnQudXJsLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZXZlbnQuYXR0YWNobWVudC5maWxlTmFtZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHVybC5zcGxpdCgnLycpLnBvcCgpXG4gICAgICB0aGlzLmVtaXRPdmVydmlldyh7XG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgICBkZXNjcmlwdGlvbjogZmlsZW5hbWUsXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSBhcyBFcnJvcilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVBbHRUZXh0Q2hhbmdlKG5ld0FsdFRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuZW1pdE92ZXJ2aWV3KHtcbiAgICAgIHVybDogdGhpcy5maXJzdE92ZXJ2aWV3LnVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXdBbHRUZXh0LFxuICAgIH0pXG4gIH1cblxuICBoYW5kbGVEZWxldGUoKSB7XG4gICAgdGhpcy5lbWl0T3ZlcnZpZXcobnVsbClcbiAgfVxuXG4gIGVtaXRPdmVydmlldyhvdmVyVmlldzogR3JhcGhpY092ZXJ2aWV3IHwgbnVsbCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvdmVyVmlldyA/IFtvdmVyVmlld10gOiBbXSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnZWRpdG9yLnJlY29yZC5yZXNvdXJjZUVycm9yLnRpdGxlJ1xuICAgICAgICApLFxuICAgICAgICB0ZXh0OiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnZWRpdG9yLnJlY29yZC5yZXNvdXJjZUVycm9yLmJvZHknXG4gICAgICAgICl9ICR7ZXJyb3IubWVzc2FnZX1gLFxuICAgICAgICBjbG9zZU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLnJlc291cmNlRXJyb3IuY2xvc2VNZXNzYWdlJ1xuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGVycm9yXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICA8Z24tdWktaW1hZ2UtaW5wdXRcbiAgICBbbWF4U2l6ZU1CXT1cIk1BWF9VUExPQURfU0laRV9NQlwiXG4gICAgW3ByZXZpZXdVcmxdPVwiZmlyc3RPdmVydmlldy51cmxcIlxuICAgIFthbHRUZXh0XT1cImZpcnN0T3ZlcnZpZXcuZGVzY3JpcHRpb25cIlxuICAgIChmaWxlQ2hhbmdlKT1cImhhbmRsZUZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHVybENoYW5nZSk9XCJoYW5kbGVVcmxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGFsdFRleHRDaGFuZ2UpPVwiaGFuZGxlQWx0VGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICAoZGVsZXRlKT1cImhhbmRsZURlbGV0ZSgpXCJcbiAgICBbdXBsb2FkUHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICh1cGxvYWRDYW5jZWwpPVwiaGFuZGxlVXBsb2FkQ2FuY2VsKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gID48L2duLXVpLWltYWdlLWlucHV0PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgY2xhc3M9XCJwLTQgdGV4dC1zbSBib3JkZXIgYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeS1saWdodGVzdCByb3VuZGVkLWxnXCJcbiAgICB0cmFuc2xhdGVcbiAgICBkYXRhLXRlc3Q9XCJkaXNhYmxlZC1tZXNzYWdlXCJcbiAgPlxuICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5kcmFmdC5vbmx5LmRpc2FibGVkXG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vdmVydmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLW92ZXJ2aWV3cy9mb3JtLWZpZWxkLW92ZXJ2aWV3cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb3ZlcnZpZXdzL2Zvcm0tZmllbGQtb3ZlcnZpZXdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUE7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBOzs7OztBQVU5RCxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDLElBQUksYUFBYTtRQUNmLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUk7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QUNoQixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNqQixXQUFXLEVBQUUsUUFBUTthQUN0QixDQUFDLENBQUE7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBVSxDQUFDLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUc7WUFDM0IsV0FBVyxFQUFFLFVBQVU7U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0M7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuRCxDQUFDOytHQWpGVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix5TEN6QnhDLG1lQWFBLHlERFVZLFlBQVksK0JBQUUsbUJBQW1CLDJPQUFFLGVBQWU7OzRGQUVqRCwyQkFBMkI7a0JBUnZDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUM7K0xBR3BELFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgR3JhcGhpY092ZXJ2aWV3IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgSW1hZ2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9ub3RpZmljYXRpb25zL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vdmVydmlld3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC1vdmVydmlld3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLW92ZXJ2aWV3cy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJbWFnZUlucHV0Q29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPdmVydmlld3NDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSB2YWx1ZTogQXJyYXk8R3JhcGhpY092ZXJ2aWV3PlxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBcnJheTxHcmFwaGljT3ZlcnZpZXc+PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgdXBsb2FkUHJvZ3Jlc3MgPSB1bmRlZmluZWRcbiAgdXBsb2FkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsXG5cbiAgcHJvdGVjdGVkIE1BWF9VUExPQURfU0laRV9NQiA9IE1BWF9VUExPQURfU0laRV9NQlxuXG4gIGdldCBmaXJzdE92ZXJ2aWV3KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnZhbHVlWzBdID8/IHtcbiAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIGhhbmRsZUZpbGVDaGFuZ2UoZmlsZTogRmlsZSkge1xuICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSAwXG4gICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLnBsYXRmb3JtU2VydmljZVxuICAgICAgLmF0dGFjaEZpbGVUb1JlY29yZCh0aGlzLm1ldGFkYXRhVXVpZCwgZmlsZSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Byb2dyZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IGV2ZW50LnByb2dyZXNzXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gdW5kZWZpbmVkXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICAgICAgICAgICAgdGhpcy5lbWl0T3ZlcnZpZXcoe1xuICAgICAgICAgICAgICB1cmw6IGV2ZW50LmF0dGFjaG1lbnQudXJsLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZXZlbnQuYXR0YWNobWVudC5maWxlTmFtZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHVybC5zcGxpdCgnLycpLnBvcCgpXG4gICAgICB0aGlzLmVtaXRPdmVydmlldyh7XG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgICBkZXNjcmlwdGlvbjogZmlsZW5hbWUsXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSBhcyBFcnJvcilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVBbHRUZXh0Q2hhbmdlKG5ld0FsdFRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuZW1pdE92ZXJ2aWV3KHtcbiAgICAgIHVybDogdGhpcy5maXJzdE92ZXJ2aWV3LnVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXdBbHRUZXh0LFxuICAgIH0pXG4gIH1cblxuICBoYW5kbGVEZWxldGUoKSB7XG4gICAgdGhpcy5lbWl0T3ZlcnZpZXcobnVsbClcbiAgfVxuXG4gIGVtaXRPdmVydmlldyhvdmVyVmlldzogR3JhcGhpY092ZXJ2aWV3IHwgbnVsbCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvdmVyVmlldyA/IFtvdmVyVmlld10gOiBbXSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IgPSAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnZWRpdG9yLnJlY29yZC5yZXNvdXJjZUVycm9yLnRpdGxlJ1xuICAgICAgICApLFxuICAgICAgICB0ZXh0OiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnZWRpdG9yLnJlY29yZC5yZXNvdXJjZUVycm9yLmJvZHknXG4gICAgICAgICl9ICR7ZXJyb3IubWVzc2FnZX1gLFxuICAgICAgICBjbG9zZU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLnJlc291cmNlRXJyb3IuY2xvc2VNZXNzYWdlJ1xuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGVycm9yXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICA8Z24tdWktaW1hZ2UtaW5wdXRcbiAgICBbbWF4U2l6ZU1CXT1cIk1BWF9VUExPQURfU0laRV9NQlwiXG4gICAgW3ByZXZpZXdVcmxdPVwiZmlyc3RPdmVydmlldy51cmxcIlxuICAgIFthbHRUZXh0XT1cImZpcnN0T3ZlcnZpZXcuZGVzY3JpcHRpb25cIlxuICAgIChmaWxlQ2hhbmdlKT1cImhhbmRsZUZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHVybENoYW5nZSk9XCJoYW5kbGVVcmxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGFsdFRleHRDaGFuZ2UpPVwiaGFuZGxlQWx0VGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICAoZGVsZXRlKT1cImhhbmRsZURlbGV0ZSgpXCJcbiAgICBbdXBsb2FkUHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICh1cGxvYWRDYW5jZWwpPVwiaGFuZGxlVXBsb2FkQ2FuY2VsKClcIlxuICA+PC9nbi11aS1pbWFnZS1pbnB1dD5cbjwvZGl2PlxuIl19
@@ -109,7 +109,7 @@ export class FormFieldSpatialExtentComponent {
109
109
  this.editorFacade.updateRecordField('spatialExtents', spatialExtents);
110
110
  }
111
111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldSpatialExtentComponent, deps: [{ token: i1.PlatformServiceInterface }, { token: i2.EditorFacade }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder", "allowSubmit"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "component", type: FormFieldMapContainerComponent, selector: "gn-ui-form-field-map-container", inputs: ["spatialExtents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n <div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder", "allowSubmit"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "component", type: FormFieldMapContainerComponent, selector: "gn-ui-form-field-map-container", inputs: ["spatialExtents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
113
113
  }
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldSpatialExtentComponent, decorators: [{
115
115
  type: Component,
@@ -117,6 +117,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
117
117
  CommonModule,
118
118
  GenericKeywordsComponent,
119
119
  FormFieldMapContainerComponent,
120
- ], template: "<div class=\"flex flex-col gap-8\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n" }]
120
+ ], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n <div class=\"w-full h-96 mt-2\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n </div>\n</div>\n" }]
121
121
  }], ctorParameters: () => [{ type: i1.PlatformServiceInterface }, { type: i2.EditorFacade }, { type: i3.TranslateService }] });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUtsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQTtBQUMvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENB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QztTQUNoQyxDQUFZLENBQ2hCLENBQUE7UUFFSCxNQUFNLDJCQUEyQixHQUFHLE1BQU0sY0FBYyxDQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3BCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU87WUFDbEIsY0FBYyxDQUFDLElBQUksQ0FDakIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUM7YUFDbkYsQ0FDSixDQUNGLENBQ0YsQ0FDRixDQUFBO1FBRUQsTUFBTSxXQUFXLEdBQUc7WUFDbEIsR0FBRywyQkFBMkI7WUFDOUIsR0FBRyxxQkFBcUI7U0FDekIsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDdkUsQ0FBQzsrR0EzSVUsK0JBQStCO21HQUEvQiwrQkFBK0IsMkZDeEM1Qyx3ZkFlQSx5RERvQkksWUFBWSxvRkFDWix3QkFBd0IsdU1BQ3hCLDhCQUE4Qjs7NEZBR3JCLCtCQUErQjtrQkFaM0MsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qiw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBEYXRhc2V0U3BhdGlhbEV4dGVudCxcbiAgS2V5d29yZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgR2VuZXJpY0tleXdvcmRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2VuZXJpYy1rZXl3b3Jkcy9nZW5lcmljLWtleXdvcmRzLmNvbXBvbmVudCdcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRWRpdG9yRmFjYWRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vK3N0YXRlL2VkaXRvci5mYWNhZGUnXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEZvcm1GaWVsZE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQtbWFwLWNvbnRhaW5lci9mb3JtLWZpZWxkLW1hcC1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTUEFUSUFMX1NDT1BFUyB9IGZyb20gJy4uLy4uLy4uLy4uL2ZpZWxkcy5jb25maWcnXG5cbi8vIFRoaXMgaW50ZXJtZWRpYXJ5IHR5cGUgd2lsbCBsZXQgdXMga2VlcCB0cmFjayBvZiB3aGljaCBrZXl3b3JkIGlzIGJvdW5kIHRvXG4vLyB3aGljaCBleHRlbnQ7IHRoZXNlIHByb3BlcnRpZXMgd2lsbCBub3QgYmUgcGVyc2lzdGVkXG50eXBlIEtleXdvcmRXaXRoRXh0ZW50ID0gS2V5d29yZCAmIHtcbiAgX2xpbmtlZEV4dGVudDogRGF0YXNldFNwYXRpYWxFeHRlbnRcbiAgX2RvTm90U2F2ZTogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZm9ybSBmaWVsZCBpcyBub3QgbGlrZSB0aGUgb3RoZXJzLCBhcyBpdCB3aWxsIHJlYWQgZGlyZWN0bHkgZnJvbSB0aGUgc3RhdGUgdG8gaGFuZGxlIGJvdGggc3BhdGlhbCBleHRlbnRzXG4gKiBhbmQgcGxhY2Uga2V5d29yZHMuXG4gKiBPdGhlciB0eXBlcyBvZiBrZXl3b3JkcyB3aWxsIG5vdCBiZSB0b3VjaGVkIGJ5IHRoaXMgZmllbGQuXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEdlbmVyaWNLZXl3b3Jkc0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRNYXBDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZFNwYXRpYWxFeHRlbnRDb21wb25lbnQge1xuICBzcGF0aWFsRXh0ZW50cyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+ICgnc3BhdGlhbEV4dGVudHMnIGluIHJlY29yZCA/IHJlY29yZD8uc3BhdGlhbEV4dGVudHMgOiBbXSkpXG4gIClcblxuICBhbGxLZXl3b3JkcyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+IHJlY29yZD8ua2V5d29yZHMpXG4gIClcblxuICBzaG93bktleXdvcmRzJCA9IHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5rZXl3b3Jkcy5maWx0ZXIoKGspID0+IGsudHlwZSA9PT0gJ3BsYWNlJykpLFxuICAgIC8vIGxvb2sgZm9yIGZ1bGwga2V5d29yZHMgaW4gdGhlIHRoZXNhdXJpXG4gICAgc3dpdGNoTWFwKChrZXl3b3JkcykgPT5cbiAgICAgIFByb21pc2UuYWxsKFxuICAgICAgICBrZXl3b3Jkcy5tYXAoYXN5bmMgKGtleXdvcmQpID0+IHtcbiAgICAgICAgICBpZiAoIWtleXdvcmQudGhlc2F1cnVzKSByZXR1cm4ga2V5d29yZFxuICAgICAgICAgIGNvbnN0IGFsbEtleXdvcmRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5zZWFyY2hLZXl3b3Jkc0luVGhlc2F1cnVzKFxuICAgICAgICAgICAgICBrZXl3b3JkLmxhYmVsLFxuICAgICAgICAgICAgICBrZXl3b3JkLnRoZXNhdXJ1cy5pZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IGFsbEtleXdvcmRzLmZpbmQoKGspID0+IGsubGFiZWwgPT09IGtleXdvcmQubGFiZWwpXG4gICAgICAgICAgcmV0dXJuIGZvdW5kID8/IGtleXdvcmRcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIC8vIGFkZCBhZGRpdGlvbmFsIFwidW5uYW1lZFwiIGtleXdvcmRzIGZvciBleHRlbnRzIHdpdGhvdXQgYSBtYXRjaGluZyBrZXl3b3JkXG4gICAgc3dpdGNoTWFwKGFzeW5jIChrZXl3b3JkcykgPT4ge1xuICAgICAgY29uc3Qgc3BhdGlhbEV4dGVudHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNwYXRpYWxFeHRlbnRzJClcbiAgICAgIGNvbnN0IGtleXdvcmRzRnJvbUV4dGVudHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgc3BhdGlhbEV4dGVudHMubWFwKGFzeW5jIChleHRlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0tleXdvcmQgPVxuICAgICAgICAgICAgZXh0ZW50LmRlc2NyaXB0aW9uICYmXG4gICAgICAgICAgICAoa2V5d29yZHMuZmluZChcbiAgICAgICAgICAgICAgKGspID0+IGsua2V5ID09PSBleHRlbnQuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICkgYXMgS2V5d29yZFdpdGhFeHRlbnQpXG4gICAgICAgICAgaWYgKGV4aXN0aW5nS2V5d29yZCkge1xuICAgICAgICAgICAgZXhpc3RpbmdLZXl3b3JkLl9saW5rZWRFeHRlbnQgPSBleHRlbnRcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICAgIGxldCBiYm94ID0gbnVsbFxuICAgICAgICAgIGlmICgnZ2VvbWV0cnknIGluIGV4dGVudCkge1xuICAgICAgICAgICAgYmJveCA9IGV4dGVudC5nZW9tZXRyeSAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBiYm94IHRvbyBidXQgZm9yIG5vdyBpdCB3b3Jrcy4uLlxuICAgICAgICAgIH0gZWxzZSBpZiAoJ2Jib3gnIGluIGV4dGVudCkge1xuICAgICAgICAgICAgYmJveCA9IGV4dGVudC5iYm94XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdlZGl0b3IucmVjb3JkLnBsYWNlS2V5d29yZFdpdGhvdXRMYWJlbCcpXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHR5cGU6ICdwbGFjZScsXG4gICAgICAgICAgICAuLi4oYmJveCAmJiB7IGJib3ggfSksXG4gICAgICAgICAgICBfbGlua2VkRXh0ZW50OiBleHRlbnQsXG4gICAgICAgICAgICBfZG9Ob3RTYXZlOiB0cnVlLFxuICAgICAgICAgIH0gYXMgS2V5d29yZFdpdGhFeHRlbnRcbiAgICAgICAgfSlcbiAgICAgICkudGhlbigoa2V5d29yZHMpID0+IGtleXdvcmRzLmZpbHRlcigoaykgPT4gISFrKSlcblxuICAgICAgcmV0dXJuIFsuLi5rZXl3b3JkcywgLi4ua2V5d29yZHNGcm9tRXh0ZW50c11cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGVkaXRvckZhY2FkZTogRWRpdG9yRmFjYWRlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgaGFuZGxlS2V5d29yZERlbGV0ZShrZXl3b3JkOiBLZXl3b3JkKSB7XG4gICAgY29uc3Qgc3BhdGlhbEV4dGVudHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNwYXRpYWxFeHRlbnRzJClcbiAgICBjb25zdCBzaG93bktleXdvcmRzID0gKGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5zaG93bktleXdvcmRzJFxuICAgICkpIGFzIEtleXdvcmRXaXRoRXh0ZW50W11cbiAgICBjb25zdCBuZXdLZXl3b3JkcyA9IHNob3duS2V5d29yZHMuZmlsdGVyKChrKSA9PiBrICE9PSBrZXl3b3JkKVxuICAgIGNvbnN0IGxpbmtlZEV4dGVudCA9XG4gICAgICAnX2xpbmtlZEV4dGVudCcgaW4ga2V5d29yZCA/IGtleXdvcmQuX2xpbmtlZEV4dGVudCA6IG51bGxcbiAgICBjb25zdCBuZXdFeHRlbnRzID0gbGlua2VkRXh0ZW50XG4gICAgICA/IHNwYXRpYWxFeHRlbnRzLmZpbHRlcigoZXh0ZW50KSA9PiBsaW5rZWRFeHRlbnQgIT09IGV4dGVudClcbiAgICAgIDogc3BhdGlhbEV4dGVudHNcbiAgICByZXR1cm4gdGhpcy5lbWl0Q2hhbmdlcyhuZXdLZXl3b3JkcywgbmV3RXh0ZW50cylcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUtleXdvcmRBZGQoa2V5d29yZDogS2V5d29yZCkge1xuICAgIGNvbnN0IHNwYXRpYWxFeHRlbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zcGF0aWFsRXh0ZW50cyQpXG4gICAgY29uc3Qgc2hvd25LZXl3b3JkcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2hvd25LZXl3b3JkcyQpXG4gICAgY29uc3QgbmV3S2V5d29yZHMgPSBbLi4uc2hvd25LZXl3b3Jkcywga2V5d29yZF0gYXMgS2V5d29yZFdpdGhFeHRlbnRbXVxuICAgIGxldCBuZXdFeHRlbnRzID0gc3BhdGlhbEV4dGVudHNcbiAgICBpZiAoa2V5d29yZC5iYm94KSB7XG4gICAgICBuZXdFeHRlbnRzID0gW1xuICAgICAgICAuLi5zcGF0aWFsRXh0ZW50cyxcbiAgICAgICAge1xuICAgICAgICAgIGJib3g6IGtleXdvcmQuYmJveCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjoga2V5d29yZC5rZXkgPz8gdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbWl0Q2hhbmdlcyhuZXdLZXl3b3JkcywgbmV3RXh0ZW50cylcbiAgfVxuXG4gIGFzeW5jIGVtaXRDaGFuZ2VzKFxuICAgIHBsYWNlS2V5d29yZHM6IEtleXdvcmRXaXRoRXh0ZW50W10sXG4gICAgc3BhdGlhbEV4dGVudHM6IERhdGFzZXRTcGF0aWFsRXh0ZW50W11cbiAgKSB7XG4gICAgLy8gc29tZSBrZXl3b3JkcyBhcmUgb25seSBwcmVzZW50IHRvIGFsbG93IGNvbnRyb2wgb3ZlciBleHRlbnRzOyB0aGV5ICoqc2hvdWxkIG5vdCoqIGJlIHNhdmVkIVxuICAgIGNvbnN0IGZpbHRlcmVkUGxhY2VLZXl3b3JkcyA9IHBsYWNlS2V5d29yZHNcbiAgICAgIC5maWx0ZXIoKGtleXdvcmQpID0+ICFrZXl3b3JkLl9kb05vdFNhdmUpXG4gICAgICAubWFwKFxuICAgICAgICAoeyBsYWJlbCwgdGhlc2F1cnVzLCB0eXBlIH0pID0+XG4gICAgICAgICAgKHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIC4uLih0aGVzYXVydXMgJiYgeyB0aGVzYXVydXMgfSksXG4gICAgICAgICAgfSkgYXMgS2V5d29yZFxuICAgICAgKVxuXG4gICAgY29uc3Qgbm90UGxhY2VLd0FuZFNwYXRpYWxTY29wZUt3ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgICAgIG1hcCgocmVjb3JkKSA9PlxuICAgICAgICAgIHJlY29yZC5rZXl3b3Jkcy5maWx0ZXIoXG4gICAgICAgICAgICAoaykgPT5cbiAgICAgICAgICAgICAgay50eXBlICE9PSAncGxhY2UnIHx8XG4gICAgICAgICAgICAgIFNQQVRJQUxfU0NPUEVTLnNvbWUoXG4gICAgICAgICAgICAgICAgKHNwYXRpYWxTY29wZSkgPT4gc3BhdGlhbFNjb3BlLmxhYmVsID09PSBrLmxhYmVsIC8vIGdldCBiYWNrIHNwYXRpYWxTY29wZSBrZXl3b3Jkc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuXG4gICAgY29uc3QgYWxsS2V5d29yZHMgPSBbXG4gICAgICAuLi5ub3RQbGFjZUt3QW5kU3BhdGlhbFNjb3BlS3csXG4gICAgICAuLi5maWx0ZXJlZFBsYWNlS2V5d29yZHMsXG4gICAgXVxuXG4gICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoJ2tleXdvcmRzJywgYWxsS2V5d29yZHMpXG4gICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoJ3NwYXRpYWxFeHRlbnRzJywgc3BhdGlhbEV4dGVudHMpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC04XCI+XG4gIDxnbi11aS1nZW5lcmljLWtleXdvcmRzXG4gICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggZm9yIHBsYWNlIGtleXdvcmRzJ1wiXG4gICAgW2tleXdvcmRzXT1cInNob3duS2V5d29yZHMkIHwgYXN5bmNcIlxuICAgIFtrZXl3b3JkVHlwZXNdPVwiWydwbGFjZSddXCJcbiAgICAoZGVsZXRlZEtleXdvcmQpPVwiaGFuZGxlS2V5d29yZERlbGV0ZSgkZXZlbnQpXCJcbiAgICAoYWRkZWRLZXl3b3JkKT1cImhhbmRsZUtleXdvcmRBZGQoJGV2ZW50KVwiXG4gID5cbiAgPC9nbi11aS1nZW5lcmljLWtleXdvcmRzPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidy1mdWxsIGgtOTYgbXQtMlwiPlxuICA8Z24tdWktZm9ybS1maWVsZC1tYXAtY29udGFpbmVyXG4gICAgW3NwYXRpYWxFeHRlbnRzXT1cInNwYXRpYWxFeHRlbnRzJCB8IGFzeW5jXCJcbiAgPjwvZ24tdWktZm9ybS1maWVsZC1tYXAtY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUtsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQTtBQUMvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENB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QztTQUNoQyxDQUFZLENBQ2hCLENBQUE7UUFFSCxNQUFNLDJCQUEyQixHQUFHLE1BQU0sY0FBYyxDQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3BCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU87WUFDbEIsY0FBYyxDQUFDLElBQUksQ0FDakIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUM7YUFDbkYsQ0FDSixDQUNGLENBQ0YsQ0FDRixDQUFBO1FBRUQsTUFBTSxXQUFXLEdBQUc7WUFDbEIsR0FBRywyQkFBMkI7WUFDOUIsR0FBRyxxQkFBcUI7U0FDekIsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDdkUsQ0FBQzsrR0EzSVUsK0JBQStCO21HQUEvQiwrQkFBK0IsMkZDeEM1QyxrZ0JBZUEseUREb0JJLFlBQVksb0ZBQ1osd0JBQXdCLHVNQUN4Qiw4QkFBOEI7OzRGQUdyQiwrQkFBK0I7a0JBWjNDLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsOEJBQThCO3FCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNwYXRpYWxFeHRlbnQsXG4gIEtleXdvcmQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEdlbmVyaWNLZXl3b3Jkc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2dlbmVyaWMta2V5d29yZHMvZ2VuZXJpYy1rZXl3b3Jkcy5jb21wb25lbnQnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBGb3JtRmllbGRNYXBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkLW1hcC1jb250YWluZXIvZm9ybS1maWVsZC1tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgU1BBVElBTF9TQ09QRVMgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMuY29uZmlnJ1xuXG4vLyBUaGlzIGludGVybWVkaWFyeSB0eXBlIHdpbGwgbGV0IHVzIGtlZXAgdHJhY2sgb2Ygd2hpY2gga2V5d29yZCBpcyBib3VuZCB0b1xuLy8gd2hpY2ggZXh0ZW50OyB0aGVzZSBwcm9wZXJ0aWVzIHdpbGwgbm90IGJlIHBlcnNpc3RlZFxudHlwZSBLZXl3b3JkV2l0aEV4dGVudCA9IEtleXdvcmQgJiB7XG4gIF9saW5rZWRFeHRlbnQ6IERhdGFzZXRTcGF0aWFsRXh0ZW50XG4gIF9kb05vdFNhdmU6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGZvcm0gZmllbGQgaXMgbm90IGxpa2UgdGhlIG90aGVycywgYXMgaXQgd2lsbCByZWFkIGRpcmVjdGx5IGZyb20gdGhlIHN0YXRlIHRvIGhhbmRsZSBib3RoIHNwYXRpYWwgZXh0ZW50c1xuICogYW5kIHBsYWNlIGtleXdvcmRzLlxuICogT3RoZXIgdHlwZXMgb2Yga2V5d29yZHMgd2lsbCBub3QgYmUgdG91Y2hlZCBieSB0aGlzIGZpZWxkLlxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBHZW5lcmljS2V5d29yZHNDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRTcGF0aWFsRXh0ZW50Q29tcG9uZW50IHtcbiAgc3BhdGlhbEV4dGVudHMkID0gdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiAoJ3NwYXRpYWxFeHRlbnRzJyBpbiByZWNvcmQgPyByZWNvcmQ/LnNwYXRpYWxFeHRlbnRzIDogW10pKVxuICApXG5cbiAgYWxsS2V5d29yZHMkID0gdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiByZWNvcmQ/LmtleXdvcmRzKVxuICApXG5cbiAgc2hvd25LZXl3b3JkcyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+IHJlY29yZD8ua2V5d29yZHMuZmlsdGVyKChrKSA9PiBrLnR5cGUgPT09ICdwbGFjZScpKSxcbiAgICAvLyBsb29rIGZvciBmdWxsIGtleXdvcmRzIGluIHRoZSB0aGVzYXVyaVxuICAgIHN3aXRjaE1hcCgoa2V5d29yZHMpID0+XG4gICAgICBQcm9taXNlLmFsbChcbiAgICAgICAga2V5d29yZHMubWFwKGFzeW5jIChrZXl3b3JkKSA9PiB7XG4gICAgICAgICAgaWYgKCFrZXl3b3JkLnRoZXNhdXJ1cykgcmV0dXJuIGtleXdvcmRcbiAgICAgICAgICBjb25zdCBhbGxLZXl3b3JkcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybVNlcnZpY2Uuc2VhcmNoS2V5d29yZHNJblRoZXNhdXJ1cyhcbiAgICAgICAgICAgICAga2V5d29yZC5sYWJlbCxcbiAgICAgICAgICAgICAga2V5d29yZC50aGVzYXVydXMuaWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgZm91bmQgPSBhbGxLZXl3b3Jkcy5maW5kKChrKSA9PiBrLmxhYmVsID09PSBrZXl3b3JkLmxhYmVsKVxuICAgICAgICAgIHJldHVybiBmb3VuZCA/PyBrZXl3b3JkXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgICAvLyBhZGQgYWRkaXRpb25hbCBcInVubmFtZWRcIiBrZXl3b3JkcyBmb3IgZXh0ZW50cyB3aXRob3V0IGEgbWF0Y2hpbmcga2V5d29yZFxuICAgIHN3aXRjaE1hcChhc3luYyAoa2V5d29yZHMpID0+IHtcbiAgICAgIGNvbnN0IHNwYXRpYWxFeHRlbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zcGF0aWFsRXh0ZW50cyQpXG4gICAgICBjb25zdCBrZXl3b3Jkc0Zyb21FeHRlbnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHNwYXRpYWxFeHRlbnRzLm1hcChhc3luYyAoZXh0ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdLZXl3b3JkID1cbiAgICAgICAgICAgIGV4dGVudC5kZXNjcmlwdGlvbiAmJlxuICAgICAgICAgICAgKGtleXdvcmRzLmZpbmQoXG4gICAgICAgICAgICAgIChrKSA9PiBrLmtleSA9PT0gZXh0ZW50LmRlc2NyaXB0aW9uXG4gICAgICAgICAgICApIGFzIEtleXdvcmRXaXRoRXh0ZW50KVxuICAgICAgICAgIGlmIChleGlzdGluZ0tleXdvcmQpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nS2V5d29yZC5fbGlua2VkRXh0ZW50ID0gZXh0ZW50XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgYmJveCA9IG51bGxcbiAgICAgICAgICBpZiAoJ2dlb21ldHJ5JyBpbiBleHRlbnQpIHtcbiAgICAgICAgICAgIGJib3ggPSBleHRlbnQuZ2VvbWV0cnkgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIGEgYmJveCB0b28gYnV0IGZvciBub3cgaXQgd29ya3MuLi5cbiAgICAgICAgICB9IGVsc2UgaWYgKCdiYm94JyBpbiBleHRlbnQpIHtcbiAgICAgICAgICAgIGJib3ggPSBleHRlbnQuYmJveFxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBsYWJlbCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZWRpdG9yLnJlY29yZC5wbGFjZUtleXdvcmRXaXRob3V0TGFiZWwnKVxuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB0eXBlOiAncGxhY2UnLFxuICAgICAgICAgICAgLi4uKGJib3ggJiYgeyBiYm94IH0pLFxuICAgICAgICAgICAgX2xpbmtlZEV4dGVudDogZXh0ZW50LFxuICAgICAgICAgICAgX2RvTm90U2F2ZTogdHJ1ZSxcbiAgICAgICAgICB9IGFzIEtleXdvcmRXaXRoRXh0ZW50XG4gICAgICAgIH0pXG4gICAgICApLnRoZW4oKGtleXdvcmRzKSA9PiBrZXl3b3Jkcy5maWx0ZXIoKGspID0+ICEhaykpXG5cbiAgICAgIHJldHVybiBbLi4ua2V5d29yZHMsIC4uLmtleXdvcmRzRnJvbUV4dGVudHNdXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBlZGl0b3JGYWNhZGU6IEVkaXRvckZhY2FkZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGhhbmRsZUtleXdvcmREZWxldGUoa2V5d29yZDogS2V5d29yZCkge1xuICAgIGNvbnN0IHNwYXRpYWxFeHRlbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zcGF0aWFsRXh0ZW50cyQpXG4gICAgY29uc3Qgc2hvd25LZXl3b3JkcyA9IChhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc2hvd25LZXl3b3JkcyRcbiAgICApKSBhcyBLZXl3b3JkV2l0aEV4dGVudFtdXG4gICAgY29uc3QgbmV3S2V5d29yZHMgPSBzaG93bktleXdvcmRzLmZpbHRlcigoaykgPT4gayAhPT0ga2V5d29yZClcbiAgICBjb25zdCBsaW5rZWRFeHRlbnQgPVxuICAgICAgJ19saW5rZWRFeHRlbnQnIGluIGtleXdvcmQgPyBrZXl3b3JkLl9saW5rZWRFeHRlbnQgOiBudWxsXG4gICAgY29uc3QgbmV3RXh0ZW50cyA9IGxpbmtlZEV4dGVudFxuICAgICAgPyBzcGF0aWFsRXh0ZW50cy5maWx0ZXIoKGV4dGVudCkgPT4gbGlua2VkRXh0ZW50ICE9PSBleHRlbnQpXG4gICAgICA6IHNwYXRpYWxFeHRlbnRzXG4gICAgcmV0dXJuIHRoaXMuZW1pdENoYW5nZXMobmV3S2V5d29yZHMsIG5ld0V4dGVudHMpXG4gIH1cblxuICBhc3luYyBoYW5kbGVLZXl3b3JkQWRkKGtleXdvcmQ6IEtleXdvcmQpIHtcbiAgICBjb25zdCBzcGF0aWFsRXh0ZW50cyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc3BhdGlhbEV4dGVudHMkKVxuICAgIGNvbnN0IHNob3duS2V5d29yZHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNob3duS2V5d29yZHMkKVxuICAgIGNvbnN0IG5ld0tleXdvcmRzID0gWy4uLnNob3duS2V5d29yZHMsIGtleXdvcmRdIGFzIEtleXdvcmRXaXRoRXh0ZW50W11cbiAgICBsZXQgbmV3RXh0ZW50cyA9IHNwYXRpYWxFeHRlbnRzXG4gICAgaWYgKGtleXdvcmQuYmJveCkge1xuICAgICAgbmV3RXh0ZW50cyA9IFtcbiAgICAgICAgLi4uc3BhdGlhbEV4dGVudHMsXG4gICAgICAgIHtcbiAgICAgICAgICBiYm94OiBrZXl3b3JkLmJib3gsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGtleXdvcmQua2V5ID8/IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZW1pdENoYW5nZXMobmV3S2V5d29yZHMsIG5ld0V4dGVudHMpXG4gIH1cblxuICBhc3luYyBlbWl0Q2hhbmdlcyhcbiAgICBwbGFjZUtleXdvcmRzOiBLZXl3b3JkV2l0aEV4dGVudFtdLFxuICAgIHNwYXRpYWxFeHRlbnRzOiBEYXRhc2V0U3BhdGlhbEV4dGVudFtdXG4gICkge1xuICAgIC8vIHNvbWUga2V5d29yZHMgYXJlIG9ubHkgcHJlc2VudCB0byBhbGxvdyBjb250cm9sIG92ZXIgZXh0ZW50czsgdGhleSAqKnNob3VsZCBub3QqKiBiZSBzYXZlZCFcbiAgICBjb25zdCBmaWx0ZXJlZFBsYWNlS2V5d29yZHMgPSBwbGFjZUtleXdvcmRzXG4gICAgICAuZmlsdGVyKChrZXl3b3JkKSA9PiAha2V5d29yZC5fZG9Ob3RTYXZlKVxuICAgICAgLm1hcChcbiAgICAgICAgKHsgbGFiZWwsIHRoZXNhdXJ1cywgdHlwZSB9KSA9PlxuICAgICAgICAgICh7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAuLi4odGhlc2F1cnVzICYmIHsgdGhlc2F1cnVzIH0pLFxuICAgICAgICAgIH0pIGFzIEtleXdvcmRcbiAgICAgIClcblxuICAgIGNvbnN0IG5vdFBsYWNlS3dBbmRTcGF0aWFsU2NvcGVLdyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgICAgICBtYXAoKHJlY29yZCkgPT5cbiAgICAgICAgICByZWNvcmQua2V5d29yZHMuZmlsdGVyKFxuICAgICAgICAgICAgKGspID0+XG4gICAgICAgICAgICAgIGsudHlwZSAhPT0gJ3BsYWNlJyB8fFxuICAgICAgICAgICAgICBTUEFUSUFMX1NDT1BFUy5zb21lKFxuICAgICAgICAgICAgICAgIChzcGF0aWFsU2NvcGUpID0+IHNwYXRpYWxTY29wZS5sYWJlbCA9PT0gay5sYWJlbCAvLyBnZXQgYmFjayBzcGF0aWFsU2NvcGUga2V5d29yZHNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcblxuICAgIGNvbnN0IGFsbEtleXdvcmRzID0gW1xuICAgICAgLi4ubm90UGxhY2VLd0FuZFNwYXRpYWxTY29wZUt3LFxuICAgICAgLi4uZmlsdGVyZWRQbGFjZUtleXdvcmRzLFxuICAgIF1cblxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKCdrZXl3b3JkcycsIGFsbEtleXdvcmRzKVxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKCdzcGF0aWFsRXh0ZW50cycsIHNwYXRpYWxFeHRlbnRzKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8Z24tdWktZ2VuZXJpYy1rZXl3b3Jkc1xuICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIGZvciBwbGFjZSBrZXl3b3JkcydcIlxuICAgIFtrZXl3b3Jkc109XCJzaG93bktleXdvcmRzJCB8IGFzeW5jXCJcbiAgICBba2V5d29yZFR5cGVzXT1cIlsncGxhY2UnXVwiXG4gICAgKGRlbGV0ZWRLZXl3b3JkKT1cImhhbmRsZUtleXdvcmREZWxldGUoJGV2ZW50KVwiXG4gICAgKGFkZGVkS2V5d29yZCk9XCJoYW5kbGVLZXl3b3JkQWRkKCRldmVudClcIlxuICA+XG4gIDwvZ24tdWktZ2VuZXJpYy1rZXl3b3Jkcz5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBoLTk2IG10LTJcIj5cbiAgICA8Z24tdWktZm9ybS1maWVsZC1tYXAtY29udGFpbmVyXG4gICAgICBbc3BhdGlhbEV4dGVudHNdPVwic3BhdGlhbEV4dGVudHMkIHwgYXN5bmNcIlxuICAgID48L2duLXVpLWZvcm0tZmllbGQtbWFwLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,12 +1,14 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { updateFrequencyCodeValues, } from '../../../../../../../../../libs/common/domain/src/lib/model/record';
2
3
  import { CheckToggleComponent, DropdownSelectorComponent, } from '../../../../../../../../../libs/ui/inputs/src';
3
4
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
4
5
  import { firstValueFrom } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@ngx-translate/core";
8
+ const initialListValues = updateFrequencyCodeValues.filter((code) => !['unknown', 'notPlanned', 'asNeeded', 'irregular'].includes(code));
7
9
  export class FormFieldUpdateFrequencyComponent {
8
10
  get planned() {
9
- return typeof this.value !== 'string';
11
+ return this.value && this.value !== 'notPlanned' && this.value !== 'unknown';
10
12
  }
11
13
  constructor(translateService) {
12
14
  this.translateService = translateService;
@@ -15,13 +17,26 @@ export class FormFieldUpdateFrequencyComponent {
15
17
  }
16
18
  async ngOnInit() {
17
19
  this.choices = await this.getInitialChoices();
20
+ if (!this.planned) {
21
+ return;
22
+ }
23
+ if (typeof this.value === 'string' &&
24
+ !this.choices.map((choice) => choice.value).includes(this.value)) {
25
+ this.choices = [
26
+ {
27
+ value: this.value,
28
+ label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${this.value}`)),
29
+ },
30
+ ...this.choices,
31
+ ];
32
+ }
18
33
  if (typeof this.value === 'string') {
19
34
  return;
20
35
  }
21
36
  const updatedTimes = this.value.updatedTimes;
22
37
  const per = this.value.per;
23
38
  // the update frequency is not in the list; make it appear there
24
- if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
39
+ if (updatedTimes) {
25
40
  this.choices = [
26
41
  {
27
42
  value: `${per}.${updatedTimes}`,
@@ -38,73 +53,34 @@ export class FormFieldUpdateFrequencyComponent {
38
53
  this.valueChange.emit('notPlanned');
39
54
  }
40
55
  else {
41
- this.valueChange.emit({ updatedTimes: 1, per: 'day' });
56
+ this.valueChange.emit(this.choices[0].value);
42
57
  }
43
58
  }
44
59
  get selectedFrequency() {
45
- if (!this.value || typeof this.value === 'string')
60
+ if (!this.value)
46
61
  return null;
62
+ if (typeof this.value === 'string')
63
+ return this.value;
47
64
  const { updatedTimes, per } = this.value;
48
65
  return `${per}.${updatedTimes}`;
49
66
  }
50
67
  onSelectFrequencyValue(value) {
51
- const split = value.split('.');
52
- this.valueChange.emit({
53
- updatedTimes: Number(split[1]),
54
- per: split[0],
55
- });
68
+ if (!value.includes('.')) {
69
+ this.valueChange.emit(value);
70
+ }
71
+ else {
72
+ const split = value.split('.');
73
+ this.valueChange.emit({
74
+ updatedTimes: Number(split[1]),
75
+ per: split[0],
76
+ });
77
+ }
56
78
  }
57
79
  async getInitialChoices() {
58
- return [
59
- {
60
- value: 'day.1',
61
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
62
- count: 1,
63
- })),
64
- },
65
- {
66
- value: 'day.2',
67
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.day', {
68
- count: 2,
69
- })),
70
- },
71
- {
72
- value: 'week.1',
73
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
74
- count: 1,
75
- })),
76
- },
77
- {
78
- value: 'week.2',
79
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.week', {
80
- count: 2,
81
- })),
82
- },
83
- {
84
- value: 'month.1',
85
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
86
- count: 1,
87
- })),
88
- },
89
- {
90
- value: 'month.2',
91
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.month', {
92
- count: 2,
93
- })),
94
- },
95
- {
96
- value: 'year.1',
97
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
98
- count: 1,
99
- })),
100
- },
101
- {
102
- value: 'year.2',
103
- label: await firstValueFrom(this.translateService.get('domain.record.updateFrequency.year', {
104
- count: 2,
105
- })),
106
- },
107
- ];
80
+ return Promise.all(initialListValues.map(async (value) => ({
81
+ value,
82
+ label: await firstValueFrom(this.translateService.get(`domain.record.updateFrequency.${value}`)),
83
+ })));
108
84
  }
109
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldUpdateFrequencyComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
110
86
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-2\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n ></gn-ui-check-toggle>\n <gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n [extraBtnClass]=\"'input-as-button gn-ui-text-input'\"\n >\n </gn-ui-dropdown-selector>\n</div>\n", styles: ["gn-ui-dropdown-selector{max-width:calc(50% - 16px)}\n"], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -117,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
117
93
  }], valueChange: [{
118
94
  type: Output
119
95
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFLdEIsT0FBTyxFQUNMLG9CQUFvQixFQUVwQix5QkFBeUIsR0FDMUIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7O0FBVXJDLE1BQU0sT0FBTyxpQ0FBaUM7SUFNNUMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVI1QyxnQkFBVyxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBRS9ELFlBQU8sR0FBcUIsRUFBRSxDQUFBO0lBTWlCLENBQUM7SUFFMUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDN0MsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTTtRQUNSLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQTtRQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQTtRQUMxQixnRUFBZ0U7UUFDaEUsSUFBSSxZQUFZLElBQUksWUFBWSxLQUFLLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYjtvQkFDRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksWUFBWSxFQUFFO29CQUMvQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxFQUFFO3dCQUNoRSxLQUFLLEVBQUUsWUFBWTtxQkFDcEIsQ0FBQyxDQUNIO2lCQUNGO2dCQUNELEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEIsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFBO1FBQzlELE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN4QyxPQUFPLEdBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFjO1FBQ25DLE1BQU0sS0FBSyxHQUFJLEtBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLFlBQVksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFpQztTQUM5QyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQjtRQUM3QixPQUFPO1lBQ0w7Z0JBQ0UsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxFQUFFO29CQUM3RCxLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQ0g7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxPQUFPO2dCQUNkLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRTtvQkFDN0QsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUNIO2FBQ0Y7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUU7b0JBQzlELEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUMsQ0FDSDthQUNGO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFO29CQUM5RCxLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQ0g7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUU7b0JBQy9ELEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUMsQ0FDSDthQUNGO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsRUFBRTtvQkFDL0QsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUNIO2FBQ0Y7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUU7b0JBQzlELEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUMsQ0FDSDthQUNGO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFO29CQUM5RCxLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQ0g7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDOytHQTVIVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyxrS0M1QjlDLGtqQkFpQkEsK0dEU1ksb0JBQW9CLG1JQUFFLHlCQUF5QixvTkFBRSxlQUFlOzs0RkFFL0QsaUNBQWlDO2tCQVI3QyxTQUFTOytCQUNFLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxlQUFlLENBQUM7cUZBR2xFLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBVcGRhdGVGcmVxdWVuY3ksXG4gIFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQ2hlY2tUb2dnbGVDb21wb25lbnQsXG4gIERyb3Bkb3duQ2hvaWNlLFxuICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDaGVja1RvZ2dsZUNvbXBvbmVudCwgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkVXBkYXRlRnJlcXVlbmN5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmFsdWU6IFVwZGF0ZUZyZXF1ZW5jeVxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxVcGRhdGVGcmVxdWVuY3k+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgcHJvdGVjdGVkIGNob2ljZXM6IERyb3Bkb3duQ2hvaWNlW10gPSBbXVxuXG4gIGdldCBwbGFubmVkKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy52YWx1ZSAhPT0gJ3N0cmluZydcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNob2ljZXMgPSBhd2FpdCB0aGlzLmdldEluaXRpYWxDaG9pY2VzKClcbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZFRpbWVzID0gdGhpcy52YWx1ZS51cGRhdGVkVGltZXNcbiAgICBjb25zdCBwZXIgPSB0aGlzLnZhbHVlLnBlclxuICAgIC8vIHRoZSB1cGRhdGUgZnJlcXVlbmN5IGlzIG5vdCBpbiB0aGUgbGlzdDsgbWFrZSBpdCBhcHBlYXIgdGhlcmVcbiAgICBpZiAodXBkYXRlZFRpbWVzICYmIHVwZGF0ZWRUaW1lcyAhPT0gMSAmJiB1cGRhdGVkVGltZXMgIT09IDIpIHtcbiAgICAgIHRoaXMuY2hvaWNlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBgJHtwZXJ9LiR7dXBkYXRlZFRpbWVzfWAsXG4gICAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChgZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuJHtwZXJ9YCwge1xuICAgICAgICAgICAgICBjb3VudDogdXBkYXRlZFRpbWVzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLmNob2ljZXMsXG4gICAgICBdXG4gICAgfVxuICB9XG5cbiAgb25QbGFubmVkVG9nZ2xlZCgpIHtcbiAgICBpZiAodGhpcy5wbGFubmVkKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoJ25vdFBsYW5uZWQnKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoeyB1cGRhdGVkVGltZXM6IDEsIHBlcjogJ2RheScgfSlcbiAgICB9XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRGcmVxdWVuY3koKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFsdWUgfHwgdHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgdXBkYXRlZFRpbWVzLCBwZXIgfSA9IHRoaXMudmFsdWVcbiAgICByZXR1cm4gYCR7cGVyfS4ke3VwZGF0ZWRUaW1lc31gXG4gIH1cblxuICBvblNlbGVjdEZyZXF1ZW5jeVZhbHVlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgY29uc3Qgc3BsaXQgPSAodmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLicpXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgIHVwZGF0ZWRUaW1lczogTnVtYmVyKHNwbGl0WzFdKSxcbiAgICAgIHBlcjogc3BsaXRbMF0gYXMgVXBkYXRlRnJlcXVlbmN5Q3VzdG9tWydwZXInXSxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJbml0aWFsQ2hvaWNlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogJ2RheS4xJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmRheScsIHtcbiAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ2RheS4yJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmRheScsIHtcbiAgICAgICAgICAgIGNvdW50OiAyLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ3dlZWsuMScsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS53ZWVrJywge1xuICAgICAgICAgICAgY291bnQ6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnd2Vlay4yJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LndlZWsnLCB7XG4gICAgICAgICAgICBjb3VudDogMixcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdtb250aC4xJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5Lm1vbnRoJywge1xuICAgICAgICAgICAgY291bnQ6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnbW9udGguMicsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5tb250aCcsIHtcbiAgICAgICAgICAgIGNvdW50OiAyLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ3llYXIuMScsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS55ZWFyJywge1xuICAgICAgICAgICAgY291bnQ6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAneWVhci4yJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnllYXInLCB7XG4gICAgICAgICAgICBjb3VudDogMixcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICBdXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gIDxnbi11aS1jaGVjay10b2dnbGVcbiAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS51cGRhdGVGcmVxdWVuY3kucGxhbm5lZCcgfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJwbGFubmVkXCJcbiAgICAodG9nZ2xlZCk9XCJvblBsYW5uZWRUb2dnbGVkKClcIlxuICA+PC9nbi11aS1jaGVjay10b2dnbGU+XG4gIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgIHRpdGxlPVwidXBkYXRlRnJlcXVlbmN5XCJcbiAgICBbc2hvd1RpdGxlXT1cImZhbHNlXCJcbiAgICBbY2hvaWNlc109XCJjaG9pY2VzXCJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRGcmVxdWVuY3lcIlxuICAgIChzZWxlY3RWYWx1ZSk9XCJvblNlbGVjdEZyZXF1ZW5jeVZhbHVlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCIhcGxhbm5lZFwiXG4gICAgW2V4dHJhQnRuQ2xhc3NdPVwiJ2lucHV0LWFzLWJ1dHRvbiBnbi11aS10ZXh0LWlucHV0J1wiXG4gID5cbiAgPC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbjwvZGl2PlxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUdMLHlCQUF5QixHQUUxQixNQUFNLG9FQUFvRSxDQUFBO0FBQzNFLE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIseUJBQXlCLEdBQzFCLE1BQU0sK0NBQStDLENBQUE7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUE7OztBQUVyQyxNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FDeEQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQzdFLENBQUE7QUFVRCxNQUFN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LENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQTRCLENBQUMsQ0FBQTtRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxHQUFJLEtBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQWlDO2FBQzlDLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQjtRQUM3QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLEtBQUs7WUFDTCxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEtBQUssRUFBRSxDQUFDLENBQ3BFO1NBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FBQTtJQUNILENBQUM7K0dBMUZVLGlDQUFpQzttR0FBakMsaUNBQWlDLGtLQ2xDOUMsa2pCQWlCQSwrR0RlWSxvQkFBb0IsbUlBQUUseUJBQXlCLG9OQUFFLGVBQWU7OzRGQUUvRCxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0UsbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLGVBQWUsQ0FBQztxRkFHbEUsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIFVwZGF0ZUZyZXF1ZW5jeSxcbiAgVXBkYXRlRnJlcXVlbmN5Q29kZSxcbiAgdXBkYXRlRnJlcXVlbmN5Q29kZVZhbHVlcyxcbiAgVXBkYXRlRnJlcXVlbmN5Q3VzdG9tLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGVja1RvZ2dsZUNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnXG5cbmNvbnN0IGluaXRpYWxMaXN0VmFsdWVzID0gdXBkYXRlRnJlcXVlbmN5Q29kZVZhbHVlcy5maWx0ZXIoXG4gIChjb2RlKSA9PiAhWyd1bmtub3duJywgJ25vdFBsYW5uZWQnLCAnYXNOZWVkZWQnLCAnaXJyZWd1bGFyJ10uaW5jbHVkZXMoY29kZSlcbilcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2hlY2tUb2dnbGVDb21wb25lbnQsIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZFVwZGF0ZUZyZXF1ZW5jeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHZhbHVlOiBVcGRhdGVGcmVxdWVuY3lcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VXBkYXRlRnJlcXVlbmN5PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIHByb3RlY3RlZCBjaG9pY2VzOiBEcm9wZG93bkNob2ljZVtdID0gW11cblxuICBnZXQgcGxhbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9PSAnbm90UGxhbm5lZCcgJiYgdGhpcy52YWx1ZSAhPT0gJ3Vua25vd24nXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jaG9pY2VzID0gYXdhaXQgdGhpcy5nZXRJbml0aWFsQ2hvaWNlcygpXG4gICAgaWYgKCF0aGlzLnBsYW5uZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICF0aGlzLmNob2ljZXMubWFwKChjaG9pY2UpID0+IGNob2ljZS52YWx1ZSkuaW5jbHVkZXModGhpcy52YWx1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuY2hvaWNlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoXG4gICAgICAgICAgICAgIGBkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS4ke3RoaXMudmFsdWV9YFxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMuY2hvaWNlcyxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZWRUaW1lcyA9IHRoaXMudmFsdWUudXBkYXRlZFRpbWVzXG4gICAgY29uc3QgcGVyID0gdGhpcy52YWx1ZS5wZXJcbiAgICAvLyB0aGUgdXBkYXRlIGZyZXF1ZW5jeSBpcyBub3QgaW4gdGhlIGxpc3Q7IG1ha2UgaXQgYXBwZWFyIHRoZXJlXG4gICAgaWYgKHVwZGF0ZWRUaW1lcykge1xuICAgICAgdGhpcy5jaG9pY2VzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGAke3Blcn0uJHt1cGRhdGVkVGltZXN9YCxcbiAgICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGBkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS4ke3Blcn1gLCB7XG4gICAgICAgICAgICAgIGNvdW50OiB1cGRhdGVkVGltZXMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMuY2hvaWNlcyxcbiAgICAgIF1cbiAgICB9XG4gIH1cblxuICBvblBsYW5uZWRUb2dnbGVkKCkge1xuICAgIGlmICh0aGlzLnBsYW5uZWQpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgnbm90UGxhbm5lZCcpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmNob2ljZXNbMF0udmFsdWUgYXMgVXBkYXRlRnJlcXVlbmN5Q29kZSlcbiAgICB9XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRGcmVxdWVuY3koKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHJldHVybiBudWxsXG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIHRoaXMudmFsdWVcbiAgICBjb25zdCB7IHVwZGF0ZWRUaW1lcywgcGVyIH0gPSB0aGlzLnZhbHVlXG4gICAgcmV0dXJuIGAke3Blcn0uJHt1cGRhdGVkVGltZXN9YFxuICB9XG5cbiAgb25TZWxlY3RGcmVxdWVuY3lWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUgYXMgVXBkYXRlRnJlcXVlbmN5Q29kZSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3BsaXQgPSAodmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLicpXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICB1cGRhdGVkVGltZXM6IE51bWJlcihzcGxpdFsxXSksXG4gICAgICAgIHBlcjogc3BsaXRbMF0gYXMgVXBkYXRlRnJlcXVlbmN5Q3VzdG9tWydwZXInXSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJbml0aWFsQ2hvaWNlcygpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBpbml0aWFsTGlzdFZhbHVlcy5tYXAoYXN5bmMgKHZhbHVlKSA9PiAoe1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoYGRvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LiR7dmFsdWV9YClcbiAgICAgICAgKSxcbiAgICAgIH0pKVxuICAgIClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgPGduLXVpLWNoZWNrLXRvZ2dsZVxuICAgIFtsYWJlbF09XCInZWRpdG9yLnJlY29yZC5mb3JtLnVwZGF0ZUZyZXF1ZW5jeS5wbGFubmVkJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlXT1cInBsYW5uZWRcIlxuICAgICh0b2dnbGVkKT1cIm9uUGxhbm5lZFRvZ2dsZWQoKVwiXG4gID48L2duLXVpLWNoZWNrLXRvZ2dsZT5cbiAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgdGl0bGU9XCJ1cGRhdGVGcmVxdWVuY3lcIlxuICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgIFtjaG9pY2VzXT1cImNob2ljZXNcIlxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZEZyZXF1ZW5jeVwiXG4gICAgKHNlbGVjdFZhbHVlKT1cIm9uU2VsZWN0RnJlcXVlbmN5VmFsdWUoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cIiFwbGFubmVkXCJcbiAgICBbZXh0cmFCdG5DbGFzc109XCInaW5wdXQtYXMtYnV0dG9uIGduLXVpLXRleHQtaW5wdXQnXCJcbiAgPlxuICA8L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuPC9kaXY+XG4iXX0=