@yuuvis/client-framework 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/actions/lib/actions/delete-action/delete-action.d.ts +1 -0
  2. package/common/index.d.ts +1 -0
  3. package/common/lib/services/error-messages/error-messages.service.d.ts +7 -0
  4. package/common/lib/services/index.d.ts +1 -0
  5. package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +4 -10
  6. package/esm2022/common/index.mjs +2 -1
  7. package/esm2022/common/lib/directives/drag-select.directive.mjs +2 -2
  8. package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +68 -0
  9. package/esm2022/common/lib/services/index.mjs +2 -0
  10. package/esm2022/forms/index.mjs +9 -8
  11. package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +172 -0
  12. package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +95 -0
  13. package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +9 -0
  14. package/esm2022/forms/lib/elements/index.mjs +11 -0
  15. package/esm2022/forms/lib/elements/organization/organization.component.mjs +47 -29
  16. package/esm2022/icons/lib/icons.mjs +3 -2
  17. package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +5 -4
  18. package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +1 -1
  19. package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +7 -52
  20. package/esm2022/object-details/index.mjs +2 -1
  21. package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +5 -4
  22. package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +27 -0
  23. package/esm2022/object-form/index.mjs +1 -1
  24. package/esm2022/object-form/lib/object-form.component.mjs +2 -1
  25. package/esm2022/object-form/lib/object-form.service.mjs +5 -2
  26. package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +15 -13
  27. package/esm2022/pagination/lib/pagination.component.mjs +4 -6
  28. package/esm2022/sequence-list/index.mjs +1 -3
  29. package/esm2022/sequence-list/lib/sequence-list.component.mjs +11 -16
  30. package/esm2022/sequence-list/lib/sequence-list.interface.mjs +1 -1
  31. package/esm2022/tile-list/lib/tile/tile.component.mjs +3 -3
  32. package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +1 -1
  33. package/fesm2022/yuuvis-client-framework-actions.mjs +3 -9
  34. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  35. package/fesm2022/yuuvis-client-framework-common.mjs +69 -4
  36. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  37. package/fesm2022/yuuvis-client-framework-forms.mjs +1194 -909
  38. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  39. package/fesm2022/yuuvis-client-framework-icons.mjs +2 -1
  40. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  41. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +10 -55
  42. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  43. package/fesm2022/yuuvis-client-framework-object-details.mjs +26 -5
  44. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  45. package/fesm2022/yuuvis-client-framework-object-form.mjs +5 -1
  46. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  47. package/fesm2022/yuuvis-client-framework-object-summary.mjs +14 -12
  48. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  49. package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -5
  50. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  51. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +17 -296
  52. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  53. package/fesm2022/yuuvis-client-framework-tile-list.mjs +2 -2
  54. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  55. package/forms/index.d.ts +1 -7
  56. package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +38 -0
  57. package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +21 -0
  58. package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +14 -0
  59. package/forms/lib/elements/index.d.ts +10 -0
  60. package/forms/lib/elements/organization/organization.component.d.ts +13 -4
  61. package/lib/assets/i18n/de.json +131 -0
  62. package/lib/assets/i18n/en.json +131 -0
  63. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +0 -1
  64. package/object-details/index.d.ts +1 -0
  65. package/object-details/lib/retention-badge/retention-badge.component.d.ts +12 -0
  66. package/package.json +4 -4
  67. package/sequence-list/index.d.ts +0 -2
  68. package/sequence-list/lib/sequence-list.component.d.ts +2 -2
  69. package/sequence-list/lib/sequence-list.interface.d.ts +5 -4
  70. package/styles/client-framework.scss +55 -18
  71. package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +0 -183
  72. package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +0 -114
  73. package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +0 -52
  74. package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +0 -36
@@ -1,5 +1,5 @@
1
1
  import { Component } from '@angular/core';
2
- import { CatalogComponent, DatetimeComponent, DatetimeRangeComponent, FormInputComponent, NumberComponent, NumberRangeComponent, OrganizationComponent, StringComponent } from '@yuuvis/client-framework/forms';
2
+ import { CatalogComponent, DataGridComponent, DatetimeComponent, DatetimeRangeComponent, FormInputComponent, NumberComponent, NumberRangeComponent, OrganizationComponent, StringComponent } from '@yuuvis/client-framework/forms';
3
3
  import { MetadataElementTemplateDirective } from '../object-metadata-element-template.directive';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { ReactiveFormsModule } from '@angular/forms';
@@ -9,7 +9,7 @@ import * as i1 from "@angular/forms";
9
9
  import * as i2 from "@yuuvis/components/checkbox";
10
10
  export class MetadataDefaultTemplatesComponent {
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDefaultTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataDefaultTemplatesComponent, isStandalone: true, selector: "yuv-metadata-default-templates", ngImport: i0, template: "<!-- form element templates -->\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n <yuv-string\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n >\n </yuv-string>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <yuv-organization\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n switch=\"true\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime>\n } @else {\n <yuv-datetime-range\n [situation]=\"ctx.situation\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range>\n }\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["placeholder", "situation", "multiselect", "classifications", "readonly", "autofocus", "appendTo", "excludeMe", "withMetadata"], outputs: ["userSelect"] }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "component", type: NumberRangeComponent, selector: "yuv-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly", "classifications", "minValue", "maxValue"] }, { kind: "component", type: DatetimeComponent, selector: "yuv-datetime", inputs: ["onlyFutureDates", "readonly", "withTime"] }, { kind: "component", type: DatetimeRangeComponent, selector: "yuv-datetime-range", inputs: ["withTime", "readonly", "operator", "situation"] }, { kind: "directive", type: MetadataElementTemplateDirective, selector: "[yuvMetadataElementTemplate]", inputs: ["yuvMetadataElementTemplate", "propertyType", "situation"] }, { kind: "ngmodule", type: YvcCheckboxModule }, { kind: "component", type: i2.CheckboxComponent, selector: "yvc-checkbox", inputs: ["tristate", "readonly"] }] }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataDefaultTemplatesComponent, isStandalone: true, selector: "yuv-metadata-default-templates", ngImport: i0, template: "<!-- form element templates -->\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n <yuv-string\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n >\n </yuv-string>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <yuv-organization\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n switch=\"true\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime>\n } @else {\n <yuv-datetime-range\n [situation]=\"ctx.situation\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range>\n }\n</ng-template>\n\n<!-- TABLE -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"table\" let-ctx>\n <yuv-data-grid\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [formElement]=\"ctx.field\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-data-grid>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "component", type: DataGridComponent, selector: "yuv-data-grid", inputs: ["situation", "formElement", "formControl", "classifications", "readonly", "size"] }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["placeholder", "situation", "multiselect", "classifications", "readonly", "autofocus", "appendTo", "excludeMe", "withMetadata"], outputs: ["userSelect"] }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "component", type: NumberRangeComponent, selector: "yuv-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly", "classifications", "minValue", "maxValue"] }, { kind: "component", type: DatetimeComponent, selector: "yuv-datetime", inputs: ["onlyFutureDates", "readonly", "withTime"] }, { kind: "component", type: DatetimeRangeComponent, selector: "yuv-datetime-range", inputs: ["withTime", "readonly", "operator", "situation"] }, { kind: "directive", type: MetadataElementTemplateDirective, selector: "[yuvMetadataElementTemplate]", inputs: ["yuvMetadataElementTemplate", "propertyType", "situation"] }, { kind: "ngmodule", type: YvcCheckboxModule }, { kind: "component", type: i2.CheckboxComponent, selector: "yvc-checkbox", inputs: ["tristate", "readonly"] }] }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDefaultTemplatesComponent, decorators: [{
15
15
  type: Component,
@@ -19,6 +19,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
19
19
  FormInputComponent,
20
20
  CatalogComponent,
21
21
  StringComponent,
22
+ DataGridComponent,
22
23
  OrganizationComponent,
23
24
  NumberComponent,
24
25
  NumberRangeComponent,
@@ -26,6 +27,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26
27
  DatetimeRangeComponent,
27
28
  MetadataElementTemplateDirective,
28
29
  YvcCheckboxModule
29
- ], template: "<!-- form element templates -->\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n <yuv-string\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n >\n </yuv-string>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <yuv-organization\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n switch=\"true\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime>\n } @else {\n <yuv-datetime-range\n [situation]=\"ctx.situation\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range>\n }\n</ng-template>\n" }]
30
+ ], template: "<!-- form element templates -->\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n <yuv-string\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n >\n </yuv-string>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <yuv-organization\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <yvc-checkbox\n [formControl]=\"ctx.ngControl\"\n switch=\"true\"\n [attr.data-name]=\"ctx.field.name\"\n [readonly]=\"ctx.field.readonly\"\n [tristate]=\"ctx.field.tristate === false ? false : true\"\n ></yvc-checkbox>\n</ng-template>\n\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime>\n } @else {\n <yuv-datetime-range\n [situation]=\"ctx.situation\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ngControl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range>\n }\n</ng-template>\n\n<!-- TABLE -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"table\" let-ctx>\n <yuv-data-grid\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ngControl\"\n [formElement]=\"ctx.field\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-data-grid>\n</ng-template>\n" }]
30
31
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDaEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFzQmhFLE1BQU0sT0FBTyxpQ0FBaUM7K0dBQWpDLGlDQUFpQzttR0FBakMsaUNBQWlDLDBGQ3BDOUMsMDlJQXFJQSx5RERqSEksWUFBWSw4QkFDWixtQkFBbUIsbWRBR25CLGVBQWUsb0xBQ2YscUJBQXFCLGdPQUNyQixlQUFlLDBLQUNmLG9CQUFvQiwyS0FDcEIsaUJBQWlCLDhHQUNqQixzQkFBc0IsMEhBQ3RCLGdDQUFnQyw2SUFDaEMsaUJBQWlCOzs0RkFLUixpQ0FBaUM7a0JBcEI3QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixnQ0FBZ0M7d0JBQ2hDLGlCQUFpQjtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhdGFsb2dDb21wb25lbnQsXG4gIERhdGV0aW1lQ29tcG9uZW50LFxuICBEYXRldGltZVJhbmdlQ29tcG9uZW50LFxuICBGb3JtSW5wdXRDb21wb25lbnQsXG4gIE51bWJlckNvbXBvbmVudCxcbiAgTnVtYmVyUmFuZ2VDb21wb25lbnQsXG4gIE9yZ2FuaXphdGlvbkNvbXBvbmVudCxcbiAgU3RyaW5nQ29tcG9uZW50XG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9mb3Jtcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL29iamVjdC1tZXRhZGF0YS1lbGVtZW50LXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFl2Y0NoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2NoZWNrYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW1ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBDYXRhbG9nQ29tcG9uZW50LFxuICAgIFN0cmluZ0NvbXBvbmVudCxcbiAgICBPcmdhbml6YXRpb25Db21wb25lbnQsXG4gICAgTnVtYmVyQ29tcG9uZW50LFxuICAgIE51bWJlclJhbmdlQ29tcG9uZW50LFxuICAgIERhdGV0aW1lQ29tcG9uZW50LFxuICAgIERhdGV0aW1lUmFuZ2VDb21wb25lbnQsXG4gICAgTWV0YWRhdGFFbGVtZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgWXZjQ2hlY2tib3hNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YURlZmF1bHRUZW1wbGF0ZXNDb21wb25lbnQge31cbiIsIjwhLS0gZm9ybSBlbGVtZW50IHRlbXBsYXRlcyAtLT5cbjwhLS0gU1RSSU5HIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cInN0cmluZ1wiIGxldC1jdHg+XG4gIDx5dXYtc3RyaW5nXG4gICAgW3NpdHVhdGlvbl09XCJjdHguc2l0dWF0aW9uXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICBbbXVsdGlzZWxlY3RdPVwiY3R4LmZpZWxkLmNhcmRpbmFsaXR5ID09PSAnbXVsdGknIHx8IGN0eC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnXCJcbiAgICBbcm93c109XCJjdHguZmllbGQucm93c1wiXG4gICAgW2NsYXNzaWZpY2F0aW9uc109XCJjdHguZmllbGQuY2xhc3NpZmljYXRpb25zXCJcbiAgICBbcmVnZXhdPVwiY3R4LmZpZWxkLnJlZ2V4XCJcbiAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICBbbWluTGVuZ3RoXT1cImN0eC5maWVsZC5taW5MZW5ndGhcIlxuICAgIFttYXhMZW5ndGhdPVwiY3R4LmZpZWxkLm1heExlbmd0aFwiXG4gID5cbiAgPC95dXYtc3RyaW5nPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBPUkdBTklaQVRJT04gLS0+XG48bmctdGVtcGxhdGUgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU9XCJkZWZhdWx0XCIgcHJvcGVydHlUeXBlPVwic3RyaW5nOm9yZ2FuaXphdGlvblwiIGxldC1jdHg+XG4gIDx5dXYtb3JnYW5pemF0aW9uXG4gICAgW3NpdHVhdGlvbl09XCJjdHguc2l0dWF0aW9uXCJcbiAgICBbbXVsdGlzZWxlY3RdPVwiY3R4LmZpZWxkLmNhcmRpbmFsaXR5ID09PSAnbXVsdGknIHx8IGN0eC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnXCJcbiAgICAodXNlclNlbGVjdCk9XCJjdHguZmllbGQuZGF0YU1ldGEgPSAkZXZlbnRcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgIFtjbGFzc2lmaWNhdGlvbnNdPVwiY3R4LmZpZWxkLmNsYXNzaWZpY2F0aW9uc1wiXG4gICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gID5cbiAgPC95dXYtb3JnYW5pemF0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBJTlRFR0VSIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImludGVnZXJcIiBsZXQtY3R4PlxuICBAaWYgKGN0eC5zaXR1YXRpb24gIT09ICdTRUFSQ0gnKSB7XG4gICAgPHl1di1udW1iZXJcbiAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgW3ByZWNpc2lvbl09XCJjdHguZmllbGQucHJlY2lzaW9uXCJcbiAgICAgIFtzY2FsZV09XCIwXCJcbiAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgW21pblZhbHVlXT1cImN0eC5maWVsZC5taW5WYWx1ZVwiXG4gICAgICBbbWF4VmFsdWVdPVwiY3R4LmZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgICBbY2xhc3NpZmljYXRpb25zXT1cImN0eC5maWVsZC5jbGFzc2lmaWNhdGlvbnNcIlxuICAgID5cbiAgICA8L3l1di1udW1iZXI+XG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtbnVtYmVyLXJhbmdlXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFtwcmVjaXNpb25dPVwiY3R4LmZpZWxkLnByZWNpc2lvblwiXG4gICAgICBbc2NhbGVdPVwiMFwiXG4gICAgICBbZ3JvdXBpbmddPVwiY3R4LmZpZWxkLmdyb3VwaW5nXCJcbiAgICAgIFttaW5WYWx1ZV09XCJjdHguZmllbGQubWluVmFsdWVcIlxuICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICBbcGF0dGVybl09XCJjdHguZmllbGQucGF0dGVyblwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgICAgW2NsYXNzaWZpY2F0aW9uc109XCJjdHguZmllbGQuY2xhc3NpZmljYXRpb25zXCJcbiAgICA+PC95dXYtbnVtYmVyLXJhbmdlPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIERFQ0lNQUwgLS0+XG48bmctdGVtcGxhdGUgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU9XCJkZWZhdWx0XCIgcHJvcGVydHlUeXBlPVwiZGVjaW1hbFwiIGxldC1jdHg+XG4gIEBpZiAoY3R4LnNpdHVhdGlvbiAhPT0gJ1NFQVJDSCcpIHtcbiAgICA8eXV2LW51bWJlclxuICAgICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgICBbcHJlY2lzaW9uXT1cImN0eC5maWVsZC5wcmVjaXNpb25cIlxuICAgICAgW3NjYWxlXT1cImN0eC5maWVsZC5zY2FsZVwiXG4gICAgICBbZ3JvdXBpbmddPVwiY3R4LmZpZWxkLmdyb3VwaW5nXCJcbiAgICAgIFtwYXR0ZXJuXT1cImN0eC5maWVsZC5wYXR0ZXJuXCJcbiAgICAgIFttaW5WYWx1ZV09XCJjdHguZmllbGQubWluVmFsdWVcIlxuICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgID5cbiAgICAgID5cbiAgICA8L3l1di1udW1iZXI+XG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtbnVtYmVyLXJhbmdlXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFtwcmVjaXNpb25dPVwiY3R4LmZpZWxkLnByZWNpc2lvblwiXG4gICAgICBbc2NhbGVdPVwiY3R4LmZpZWxkLnNjYWxlXCJcbiAgICAgIFtwYXR0ZXJuXT1cImN0eC5maWVsZC5wYXR0ZXJuXCJcbiAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgW21pblZhbHVlXT1cImN0eC5maWVsZC5taW5WYWx1ZVwiXG4gICAgICBbbWF4VmFsdWVdPVwiY3R4LmZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgPjwveXV2LW51bWJlci1yYW5nZT5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBCT09MRUFOIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImJvb2xlYW5cIiBsZXQtY3R4PlxuICA8eXZjLWNoZWNrYm94XG4gICAgW2Zvcm1Db250cm9sXT1cImN0eC5uZ0NvbnRyb2xcIlxuICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgW3RyaXN0YXRlXT1cImN0eC5maWVsZC50cmlzdGF0ZSA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWVcIlxuICA+PC95dmMtY2hlY2tib3g+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIEJPT0xFQU4gU1dJVENIIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImJvb2xlYW46c3dpdGNoXCIgbGV0LWN0eD5cbiAgPHl2Yy1jaGVja2JveFxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBzd2l0Y2g9XCJ0cnVlXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgIFt0cmlzdGF0ZV09XCJjdHguZmllbGQudHJpc3RhdGUgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlXCJcbiAgPjwveXZjLWNoZWNrYm94PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImRhdGV0aW1lXCIgbGV0LWN0eD5cbiAgQGlmIChjdHguc2l0dWF0aW9uICE9PSAnU0VBUkNIJykge1xuICAgIDx5dXYtZGF0ZXRpbWVcbiAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgW3dpdGhUaW1lXT1cImN0eC5maWVsZC5yZXNvbHV0aW9uICE9PSAnZGF0ZSdcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImN0eC5uZ0NvbnRyb2xcIlxuICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICA+PC95dXYtZGF0ZXRpbWU+XG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtZGF0ZXRpbWUtcmFuZ2VcbiAgICAgIFtzaXR1YXRpb25dPVwiY3R4LnNpdHVhdGlvblwiXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFt3aXRoVGltZV09XCJjdHguZmllbGQucmVzb2x1dGlvbiAhPT0gJ2RhdGUnXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgPjwveXV2LWRhdGV0aW1lLXJhbmdlPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMvbWV0YWRhdGEtZGVmYXVsdC10ZW1wbGF0ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixlQUFlLEVBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBdUJoRSxNQUFNLE9BQU8saUNBQWlDOytHQUFqQyxpQ0FBaUM7bUdBQWpDLGlDQUFpQywwRkN0QzlDLDAySkFrSkEseUREN0hJLFlBQVksOEJBQ1osbUJBQW1CLG1kQUduQixlQUFlLG9MQUNmLGlCQUFpQixzSkFDakIscUJBQXFCLGdPQUNyQixlQUFlLDBLQUNmLG9CQUFvQiwyS0FDcEIsaUJBQWlCLDhHQUNqQixzQkFBc0IsMEhBQ3RCLGdDQUFnQyw2SUFDaEMsaUJBQWlCOzs0RkFLUixpQ0FBaUM7a0JBckI3QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLGdDQUFnQzt3QkFDaEMsaUJBQWlCO3FCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ0NvbXBvbmVudCxcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERhdGV0aW1lQ29tcG9uZW50LFxuICBEYXRldGltZVJhbmdlQ29tcG9uZW50LFxuICBGb3JtSW5wdXRDb21wb25lbnQsXG4gIE51bWJlckNvbXBvbmVudCxcbiAgTnVtYmVyUmFuZ2VDb21wb25lbnQsXG4gIE9yZ2FuaXphdGlvbkNvbXBvbmVudCxcbiAgU3RyaW5nQ29tcG9uZW50XG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9mb3Jtcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uL29iamVjdC1tZXRhZGF0YS1lbGVtZW50LXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFl2Y0NoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2NoZWNrYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW1ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBDYXRhbG9nQ29tcG9uZW50LFxuICAgIFN0cmluZ0NvbXBvbmVudCxcbiAgICBEYXRhR3JpZENvbXBvbmVudCxcbiAgICBPcmdhbml6YXRpb25Db21wb25lbnQsXG4gICAgTnVtYmVyQ29tcG9uZW50LFxuICAgIE51bWJlclJhbmdlQ29tcG9uZW50LFxuICAgIERhdGV0aW1lQ29tcG9uZW50LFxuICAgIERhdGV0aW1lUmFuZ2VDb21wb25lbnQsXG4gICAgTWV0YWRhdGFFbGVtZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgWXZjQ2hlY2tib3hNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21ldGFkYXRhLWRlZmF1bHQtdGVtcGxhdGVzLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YURlZmF1bHRUZW1wbGF0ZXNDb21wb25lbnQge31cbiIsIjwhLS0gZm9ybSBlbGVtZW50IHRlbXBsYXRlcyAtLT5cbjwhLS0gU1RSSU5HIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cInN0cmluZ1wiIGxldC1jdHg+XG4gIDx5dXYtc3RyaW5nXG4gICAgW3NpdHVhdGlvbl09XCJjdHguc2l0dWF0aW9uXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICBbbXVsdGlzZWxlY3RdPVwiY3R4LmZpZWxkLmNhcmRpbmFsaXR5ID09PSAnbXVsdGknIHx8IGN0eC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnXCJcbiAgICBbcm93c109XCJjdHguZmllbGQucm93c1wiXG4gICAgW2NsYXNzaWZpY2F0aW9uc109XCJjdHguZmllbGQuY2xhc3NpZmljYXRpb25zXCJcbiAgICBbcmVnZXhdPVwiY3R4LmZpZWxkLnJlZ2V4XCJcbiAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICBbbWluTGVuZ3RoXT1cImN0eC5maWVsZC5taW5MZW5ndGhcIlxuICAgIFttYXhMZW5ndGhdPVwiY3R4LmZpZWxkLm1heExlbmd0aFwiXG4gID5cbiAgPC95dXYtc3RyaW5nPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBPUkdBTklaQVRJT04gLS0+XG48bmctdGVtcGxhdGUgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU9XCJkZWZhdWx0XCIgcHJvcGVydHlUeXBlPVwic3RyaW5nOm9yZ2FuaXphdGlvblwiIGxldC1jdHg+XG4gIDx5dXYtb3JnYW5pemF0aW9uXG4gICAgW3NpdHVhdGlvbl09XCJjdHguc2l0dWF0aW9uXCJcbiAgICBbbXVsdGlzZWxlY3RdPVwiY3R4LmZpZWxkLmNhcmRpbmFsaXR5ID09PSAnbXVsdGknIHx8IGN0eC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnXCJcbiAgICAodXNlclNlbGVjdCk9XCJjdHguZmllbGQuZGF0YU1ldGEgPSAkZXZlbnRcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgIFtjbGFzc2lmaWNhdGlvbnNdPVwiY3R4LmZpZWxkLmNsYXNzaWZpY2F0aW9uc1wiXG4gICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gID5cbiAgPC95dXYtb3JnYW5pemF0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBJTlRFR0VSIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImludGVnZXJcIiBsZXQtY3R4PlxuICBAaWYgKGN0eC5zaXR1YXRpb24gIT09ICdTRUFSQ0gnKSB7XG4gICAgPHl1di1udW1iZXJcbiAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgW3ByZWNpc2lvbl09XCJjdHguZmllbGQucHJlY2lzaW9uXCJcbiAgICAgIFtzY2FsZV09XCIwXCJcbiAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgW21pblZhbHVlXT1cImN0eC5maWVsZC5taW5WYWx1ZVwiXG4gICAgICBbbWF4VmFsdWVdPVwiY3R4LmZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgICBbY2xhc3NpZmljYXRpb25zXT1cImN0eC5maWVsZC5jbGFzc2lmaWNhdGlvbnNcIlxuICAgID5cbiAgICA8L3l1di1udW1iZXI+XG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtbnVtYmVyLXJhbmdlXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFtwcmVjaXNpb25dPVwiY3R4LmZpZWxkLnByZWNpc2lvblwiXG4gICAgICBbc2NhbGVdPVwiMFwiXG4gICAgICBbZ3JvdXBpbmddPVwiY3R4LmZpZWxkLmdyb3VwaW5nXCJcbiAgICAgIFttaW5WYWx1ZV09XCJjdHguZmllbGQubWluVmFsdWVcIlxuICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICBbcGF0dGVybl09XCJjdHguZmllbGQucGF0dGVyblwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgICAgW2NsYXNzaWZpY2F0aW9uc109XCJjdHguZmllbGQuY2xhc3NpZmljYXRpb25zXCJcbiAgICA+PC95dXYtbnVtYmVyLXJhbmdlPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIERFQ0lNQUwgLS0+XG48bmctdGVtcGxhdGUgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU9XCJkZWZhdWx0XCIgcHJvcGVydHlUeXBlPVwiZGVjaW1hbFwiIGxldC1jdHg+XG4gIEBpZiAoY3R4LnNpdHVhdGlvbiAhPT0gJ1NFQVJDSCcpIHtcbiAgICA8eXV2LW51bWJlclxuICAgICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgICBbcHJlY2lzaW9uXT1cImN0eC5maWVsZC5wcmVjaXNpb25cIlxuICAgICAgW3NjYWxlXT1cImN0eC5maWVsZC5zY2FsZVwiXG4gICAgICBbZ3JvdXBpbmddPVwiY3R4LmZpZWxkLmdyb3VwaW5nXCJcbiAgICAgIFtwYXR0ZXJuXT1cImN0eC5maWVsZC5wYXR0ZXJuXCJcbiAgICAgIFttaW5WYWx1ZV09XCJjdHguZmllbGQubWluVmFsdWVcIlxuICAgICAgW21heFZhbHVlXT1cImN0eC5maWVsZC5tYXhWYWx1ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY3R4Lm5nQ29udHJvbFwiXG4gICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgID5cbiAgICAgID5cbiAgICA8L3l1di1udW1iZXI+XG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtbnVtYmVyLXJhbmdlXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFtwcmVjaXNpb25dPVwiY3R4LmZpZWxkLnByZWNpc2lvblwiXG4gICAgICBbc2NhbGVdPVwiY3R4LmZpZWxkLnNjYWxlXCJcbiAgICAgIFtwYXR0ZXJuXT1cImN0eC5maWVsZC5wYXR0ZXJuXCJcbiAgICAgIFtncm91cGluZ109XCJjdHguZmllbGQuZ3JvdXBpbmdcIlxuICAgICAgW21pblZhbHVlXT1cImN0eC5maWVsZC5taW5WYWx1ZVwiXG4gICAgICBbbWF4VmFsdWVdPVwiY3R4LmZpZWxkLm1heFZhbHVlXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgPjwveXV2LW51bWJlci1yYW5nZT5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBCT09MRUFOIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImJvb2xlYW5cIiBsZXQtY3R4PlxuICA8eXZjLWNoZWNrYm94XG4gICAgW2Zvcm1Db250cm9sXT1cImN0eC5uZ0NvbnRyb2xcIlxuICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gICAgW3RyaXN0YXRlXT1cImN0eC5maWVsZC50cmlzdGF0ZSA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWVcIlxuICA+PC95dmMtY2hlY2tib3g+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIEJPT0xFQU4gU1dJVENIIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImJvb2xlYW46c3dpdGNoXCIgbGV0LWN0eD5cbiAgPHl2Yy1jaGVja2JveFxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBzd2l0Y2g9XCJ0cnVlXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgIFt0cmlzdGF0ZV09XCJjdHguZmllbGQudHJpc3RhdGUgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlXCJcbiAgPjwveXZjLWNoZWNrYm94PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cImRhdGV0aW1lXCIgbGV0LWN0eD5cbiAgQGlmIChjdHguc2l0dWF0aW9uICE9PSAnU0VBUkNIJykge1xuICAgIDx5dXYtZGF0ZXRpbWVcbiAgICAgIFtyZWFkb25seV09XCJjdHguZmllbGQucmVhZG9ubHlcIlxuICAgICAgW3dpdGhUaW1lXT1cImN0eC5maWVsZC5yZXNvbHV0aW9uICE9PSAnZGF0ZSdcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImN0eC5uZ0NvbnRyb2xcIlxuICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImN0eC5maWVsZC5uYW1lXCJcbiAgICA+PC95dXYtZGF0ZXRpbWU+XG4gIH0gQGVsc2Uge1xuICAgIDx5dXYtZGF0ZXRpbWUtcmFuZ2VcbiAgICAgIFtzaXR1YXRpb25dPVwiY3R4LnNpdHVhdGlvblwiXG4gICAgICBbcmVhZG9ubHldPVwiY3R4LmZpZWxkLnJlYWRvbmx5XCJcbiAgICAgIFt3aXRoVGltZV09XCJjdHguZmllbGQucmVzb2x1dGlvbiAhPT0gJ2RhdGUnXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJjdHguZmllbGQubmFtZVwiXG4gICAgPjwveXV2LWRhdGV0aW1lLXJhbmdlPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIFRBQkxFIC0tPlxuPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlPVwiZGVmYXVsdFwiIHByb3BlcnR5VHlwZT1cInRhYmxlXCIgbGV0LWN0eD5cbiAgPHl1di1kYXRhLWdyaWRcbiAgICBbc2l0dWF0aW9uXT1cImN0eC5zaXR1YXRpb25cIlxuICAgIFtmb3JtQ29udHJvbF09XCJjdHgubmdDb250cm9sXCJcbiAgICBbZm9ybUVsZW1lbnRdPVwiY3R4LmZpZWxkXCJcbiAgICBbYXR0ci5kYXRhLW5hbWVdPVwiY3R4LmZpZWxkLm5hbWVcIlxuICAgIFtjbGFzc2lmaWNhdGlvbnNdPVwiY3R4LmZpZWxkLmNsYXNzaWZpY2F0aW9uc1wiXG4gICAgW3JlYWRvbmx5XT1cImN0eC5maWVsZC5yZWFkb25seVwiXG4gID5cbiAgPC95dXYtZGF0YS1ncmlkPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
96
96
  providedIn: 'root'
97
97
  }]
98
98
  }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFaEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBSHhDO1FBSVUsY0FBUyxHQUFpRCxFQUFFLENBQUM7UUFFN0QsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsWUFBTyxHQUFpRCxFQUFFLENBQUM7UUFDM0QsWUFBTyxHQUFpRCxFQUFFLENBQUM7S0FnRnBFO0lBOUVDOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxZQUFvQixTQUFTLENBQUMsSUFBSTtRQUN6RSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTTtZQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDNUYsSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU07WUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLFdBQTZCLEVBQUUsWUFBdUIsU0FBUyxDQUFDLElBQUk7UUFDM0csSUFBSSxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQkFDekMsTUFBTTtnQkFDUixDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsWUFBb0IsRUFBRSxZQUF1QixTQUFTLENBQUMsSUFBSTtRQUMvRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLFdBQTZCO1FBQzVFLElBQUksWUFBWSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBcEZVLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l0dWF0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogUmVnaXN0cmF0aW9uIHNlcnZpY2UgZm9yIGZvcm0gZWxlbWVudHMgcmVuZGVyZWQgd2l0aGluIGFuIG9iamVjdCBmb3JtLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkge1xuICBwcml2YXRlIF9kZWZhdWx0czogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICBwcml2YXRlIF9lZGl0OiB7IFtwcm9wZXJ0eVR5cGU6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfSA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2g6IHsgW3Byb3BlcnR5VHlwZTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG4gIHByaXZhdGUgX2NyZWF0ZTogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICAvKipcbiAgICogR2V0IGEgdGVtcGxhdGUgdG8gcmVuZGVyIGEgY2VydGFpbiBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBnZXQgdGhlIHRlbXBsYXRlIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uXG4gICAqIEByZXR1cm5zIFRlbXBsYXRlUmVmIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZyA9IFNpdHVhdGlvbi5FRElUKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNtcHMgPSB7IC4uLnRoaXMuX2RlZmF1bHRzLCAuLi50aGlzLl9lZGl0IH07XG4gICAgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLlNFQVJDSCkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX3NlYXJjaCB9O1xuICAgIGVsc2UgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLkNSRUFURSkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX2NyZWF0ZSB9O1xuICAgIHJldHVybiBjbXBzW3Byb3BlcnR5VHlwZV07XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gb2JqZWN0IGZvcm0gZWxlbWVudCBmb3IgYSBjZXJ0YWluIGludGVybmFsIHR5cGUuIFlvdSBtaWdodCBhZGQgYSBuZXcgY29tcG9uZW50XG4gICAqIG9yIG92ZXJ3cml0ZSBhbiBleGlzdHVuZyBvbmUuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcHJvdmlkZSB0aGUgY29tcG9uZW50IGZvclxuICAgKiBAcGFyYW0gY29tcG9uZW50IFRoZSBjb21wb25lbnRcbiAgICogQHBhcmFtIHNpdHVhdGlvbiBGb3JtIHNpdHVhdGlvbiB0byBwcm92aWRlIHRoZXcgZm9ybSBlbGVtZW50IGZvciAoZGVmYXVsdHMgdG8gRURJVClcbiAgICovXG4gIGFkZEVsZW1lbnRUZW1wbGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHNpdHVhdGlvbjogU2l0dWF0aW9uID0gU2l0dWF0aW9uLkVESVQpOiB2b2lkIHtcbiAgICBpZiAocHJvcGVydHlUeXBlICYmIHRlbXBsYXRlUmVmKSB7XG4gICAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgICBjYXNlIFNpdHVhdGlvbi5TRUFSQ0g6IHtcbiAgICAgICAgICB0aGlzLl9zZWFyY2hbcHJvcGVydHlUeXBlXSA9IHRlbXBsYXRlUmVmO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgU2l0dWF0aW9uLkNSRUFURToge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZVtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHRoaXMuX2VkaXRbcHJvcGVydHlUeXBlXSA9IHRlbXBsYXRlUmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHJlZ2lzdGVyZWQgZm9ybSBlbGVtZW50LlxuICAgKiBAcGFyYW0gcHJvcGVydHlUeXBlIFRoZSBpbnRlcm5hbCB0eXBlIHRvIHJlbW92ZSB0aGUgY29tcG9uZW50IGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uIHRvIHByb3ZpZGUgdGhldyBmb3JtIGVsZW1lbnQgZm9yIChkZWZhdWx0cyB0byBFRElUKVxuICAgKi9cbiAgcmVtb3ZlRWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IFNpdHVhdGlvbiA9IFNpdHVhdGlvbi5FRElUKSB7XG4gICAgc3dpdGNoIChzaXR1YXRpb24pIHtcbiAgICAgIGNhc2UgU2l0dWF0aW9uLlNFQVJDSDoge1xuICAgICAgICBkZWxldGUgdGhpcy5fc2VhcmNoW3Byb3BlcnR5VHlwZV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTaXR1YXRpb24uQ1JFQVRFOiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9jcmVhdGVbcHJvcGVydHlUeXBlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9lZGl0W3Byb3BlcnR5VHlwZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGRlZmF1bHQgZm9ybSBlbGVtZW50IGNvbXBvbmVudC4gVXN1YWxseSB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgb2JqZWN0XG4gICAqIGZvcm0gY29tcG9uZW50IGl0c2VsZi5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBwcm92aWRlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGRlZmF1bHQgY29tcG9uZW50XG4gICAqL1xuICBfYWRkRGVmYXVsdEVsZW1lbnRUZW1wbGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pOiB2b2lkIHtcbiAgICBpZiAocHJvcGVydHlUeXBlICYmIHRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0c1twcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHJlZ2lzdGVyZWQgZGVmYXVsdCBmb3JtIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcmVtb3ZlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqL1xuICBfcmVtb3ZlRGVmYXVsdEVsZW1lbnRUZW1wbGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZykge1xuICAgIGRlbGV0ZSB0aGlzLl9kZWZhdWx0c1twcm9wZXJ0eVR5cGVdO1xuICB9XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFaEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBSHhDO1FBSVUsY0FBUyxHQUFpRCxFQUFFLENBQUM7UUFFN0QsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsWUFBTyxHQUFpRCxFQUFFLENBQUM7UUFDM0QsWUFBTyxHQUFpRCxFQUFFLENBQUM7S0FpRnBFO0lBL0VDOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxZQUFvQixTQUFTLENBQUMsSUFBSTtRQUN6RSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTTtZQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDNUYsSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU07WUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXRHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLFdBQTZCLEVBQUUsWUFBdUIsU0FBUyxDQUFDLElBQUk7UUFDM0csSUFBSSxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQkFDekMsTUFBTTtnQkFDUixDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsWUFBb0IsRUFBRSxZQUF1QixTQUFTLENBQUMsSUFBSTtRQUMvRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLFdBQTZCO1FBQzVFLElBQUksWUFBWSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBckZVLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l0dWF0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogUmVnaXN0cmF0aW9uIHNlcnZpY2UgZm9yIGZvcm0gZWxlbWVudHMgcmVuZGVyZWQgd2l0aGluIGFuIG9iamVjdCBmb3JtLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkge1xuICBwcml2YXRlIF9kZWZhdWx0czogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICBwcml2YXRlIF9lZGl0OiB7IFtwcm9wZXJ0eVR5cGU6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfSA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2g6IHsgW3Byb3BlcnR5VHlwZTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG4gIHByaXZhdGUgX2NyZWF0ZTogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICAvKipcbiAgICogR2V0IGEgdGVtcGxhdGUgdG8gcmVuZGVyIGEgY2VydGFpbiBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBnZXQgdGhlIHRlbXBsYXRlIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uXG4gICAqIEByZXR1cm5zIFRlbXBsYXRlUmVmIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZyA9IFNpdHVhdGlvbi5FRElUKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNtcHMgPSB7IC4uLnRoaXMuX2RlZmF1bHRzLCAuLi50aGlzLl9lZGl0IH07XG4gICAgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLlNFQVJDSCkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX3NlYXJjaCB9O1xuICAgIGVsc2UgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLkNSRUFURSkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX2NyZWF0ZSB9O1xuXG4gICAgcmV0dXJuIGNtcHNbcHJvcGVydHlUeXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBvYmplY3QgZm9ybSBlbGVtZW50IGZvciBhIGNlcnRhaW4gaW50ZXJuYWwgdHlwZS4gWW91IG1pZ2h0IGFkZCBhIG5ldyBjb21wb25lbnRcbiAgICogb3Igb3ZlcndyaXRlIGFuIGV4aXN0dW5nIG9uZS5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBwcm92aWRlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uIHRvIHByb3ZpZGUgdGhldyBmb3JtIGVsZW1lbnQgZm9yIChkZWZhdWx0cyB0byBFRElUKVxuICAgKi9cbiAgYWRkRWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Piwgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVCk6IHZvaWQge1xuICAgIGlmIChwcm9wZXJ0eVR5cGUgJiYgdGVtcGxhdGVSZWYpIHtcbiAgICAgIHN3aXRjaCAoc2l0dWF0aW9uKSB7XG4gICAgICAgIGNhc2UgU2l0dWF0aW9uLlNFQVJDSDoge1xuICAgICAgICAgIHRoaXMuX3NlYXJjaFtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBTaXR1YXRpb24uQ1JFQVRFOiB7XG4gICAgICAgICAgdGhpcy5fY3JlYXRlW3Byb3BlcnR5VHlwZV0gPSB0ZW1wbGF0ZVJlZjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgdGhpcy5fZWRpdFtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgcmVnaXN0ZXJlZCBmb3JtIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcmVtb3ZlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gRm9ybSBzaXR1YXRpb24gdG8gcHJvdmlkZSB0aGV3IGZvcm0gZWxlbWVudCBmb3IgKGRlZmF1bHRzIHRvIEVESVQpXG4gICAqL1xuICByZW1vdmVFbGVtZW50VGVtcGxhdGUocHJvcGVydHlUeXBlOiBzdHJpbmcsIHNpdHVhdGlvbjogU2l0dWF0aW9uID0gU2l0dWF0aW9uLkVESVQpIHtcbiAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgY2FzZSBTaXR1YXRpb24uU0VBUkNIOiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9zZWFyY2hbcHJvcGVydHlUeXBlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNpdHVhdGlvbi5DUkVBVEU6IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2NyZWF0ZVtwcm9wZXJ0eVR5cGVdO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2VkaXRbcHJvcGVydHlUeXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgZGVmYXVsdCBmb3JtIGVsZW1lbnQgY29tcG9uZW50LiBVc3VhbGx5IHRoaXMgd2lsbCBiZSBkb25lIGJ5IHRoZSBvYmplY3RcbiAgICogZm9ybSBjb21wb25lbnQgaXRzZWxmLlxuICAgKiBAcGFyYW0gcHJvcGVydHlUeXBlIFRoZSBpbnRlcm5hbCB0eXBlIHRvIHByb3ZpZGUgdGhlIGNvbXBvbmVudCBmb3JcbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgZGVmYXVsdCBjb21wb25lbnRcbiAgICovXG4gIF9hZGREZWZhdWx0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xuICAgIGlmIChwcm9wZXJ0eVR5cGUgJiYgdGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX2RlZmF1bHRzW3Byb3BlcnR5VHlwZV0gPSB0ZW1wbGF0ZVJlZjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgcmVnaXN0ZXJlZCBkZWZhdWx0IGZvcm0gZWxlbWVudC5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byByZW1vdmUgdGhlIGNvbXBvbmVudCBmb3JcbiAgICovXG4gIF9yZW1vdmVEZWZhdWx0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nKSB7XG4gICAgZGVsZXRlIHRoaXMuX2RlZmF1bHRzW3Byb3BlcnR5VHlwZV07XG4gIH1cbn1cbiJdfQ==
@@ -4,6 +4,7 @@ import { Situation, SystemService, TranslateService, Utils } from '@yuuvis/clien
4
4
  import { injectNgControl, NoopValueAccessorDirective } from '@yuuvis/client-framework/common';
5
5
  import { FormInputComponent } from '@yuuvis/client-framework/forms';
6
6
  import { MetadataFormElementRegistry } from '../metadata-form-element-registry.service';
7
+ import { ErrorMessagesService } from '@yuuvis/client-framework/common';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@yuuvis/client-framework/common";
9
10
  export class MetadataFormFieldComponent {
@@ -11,6 +12,7 @@ export class MetadataFormFieldComponent {
11
12
  this.#registry = inject(MetadataFormElementRegistry);
12
13
  this.#system = inject(SystemService);
13
14
  this.translate = inject(TranslateService);
15
+ this.#errorMassge = inject(ErrorMessagesService);
14
16
  this._subs = [];
15
17
  this.ngControl = injectNgControl();
16
18
  this.elementTemplate = signal(undefined);
@@ -38,6 +40,7 @@ export class MetadataFormFieldComponent {
38
40
  }
39
41
  #registry;
40
42
  #system;
43
+ #errorMassge;
41
44
  #fieldEffect;
42
45
  fetchTags() {
43
46
  this.tag = undefined;
@@ -55,60 +58,12 @@ export class MetadataFormFieldComponent {
55
58
  };
56
59
  }
57
60
  }
58
- _getErrorLabel(error, params) {
59
- switch (error) {
60
- case 'daterange':
61
- return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);
62
- case 'daterangeorder':
63
- return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);
64
- case 'numberrange':
65
- return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);
66
- case 'numberrangeorder':
67
- return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);
68
- case 'number':
69
- return this.translate.instant('yuv.object-form-element.error.number', params);
70
- case 'precision':
71
- return this.translate.instant('yuv.object-form-element.error.number.precision', params);
72
- case 'scale':
73
- return this.translate.instant('yuv.object-form-element.error.number.scale', params);
74
- case 'regex':
75
- return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
76
- case 'pattern':
77
- return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
78
- case 'classificationemail':
79
- return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);
80
- case 'classificationphone':
81
- return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);
82
- case 'classificationurl':
83
- return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);
84
- case 'onlyWhitespaces':
85
- return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);
86
- case 'datecontrol':
87
- return this.translate.instant('yuv.object-form-element.error.date.invalid', params);
88
- case 'required':
89
- return this.translate.instant('yuv.object-form-element.error.required', params);
90
- case 'maxlength':
91
- return this.translate.instant('yuv.object-form-element.error.maxlength', params);
92
- case 'minlength':
93
- return this.translate.instant('yuv.object-form-element.error.minlength', params);
94
- case 'minmax':
95
- return this.translate.instant('yuv.object-form-element.error.minmax', params);
96
- case 'minvalue':
97
- return this.translate.instant('yuv.object-form-element.error.minvalue', params);
98
- case 'maxvalue':
99
- return this.translate.instant('yuv.object-form-element.error.maxvalue', params);
100
- case 'empty':
101
- return this.translate.instant('yuv.object-form-element.recent-activities.list.empty', params);
102
- default:
103
- return this.translate.instant(error, params);
104
- }
105
- }
106
61
  ngOnInit() {
107
62
  if (this.ngControl.statusChanges)
108
63
  this._subs.push(this.ngControl.statusChanges.subscribe(() => {
109
64
  this.errors = this.ngControl.control.errors
110
65
  ? Object.keys(this.ngControl.control.errors).map((key) => {
111
- return this.ngControl.control.errors ? this._getErrorLabel(key, this.ngControl.control.errors[key].params) : null;
66
+ return this.ngControl.control.errors ? this.#errorMassge.getErrorLabel(key, this.ngControl.control.errors[key].params) : null;
112
67
  })
113
68
  : null;
114
69
  }));
@@ -117,12 +72,12 @@ export class MetadataFormFieldComponent {
117
72
  this._subs.forEach((s) => s.unsubscribe());
118
73
  }
119
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataFormFieldComponent, isStandalone: true, selector: "yuv-metadata-form-field", inputs: { formField: { classPropertyName: "formField", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, situation: { classPropertyName: "situation", publicName: "situation", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-metadata-form-field" }, hostDirectives: [{ directive: i1.NoopValueAccessorDirective }], ngImport: i0, template: "@let field = formField();\n@if (field) {\n @let et = elementTemplate();\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormInputComponent, selector: "yuv-form-input", inputs: ["label", "tag", "description", "invalid", "disabled", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataFormFieldComponent, isStandalone: true, selector: "yuv-metadata-form-field", inputs: { formField: { classPropertyName: "formField", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, situation: { classPropertyName: "situation", publicName: "situation", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-metadata-form-field" }, hostDirectives: [{ directive: i1.NoopValueAccessorDirective }], ngImport: i0, template: "@let field = formField();\n\n@if (field) {\n @let et = elementTemplate();\n\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n @if (field._internalType === 'table') {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n } @else {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n }\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormInputComponent, selector: "yuv-form-input", inputs: ["label", "tag", "description", "invalid", "disabled", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
121
76
  }
122
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, decorators: [{
123
78
  type: Component,
124
79
  args: [{ selector: 'yuv-metadata-form-field', standalone: true, imports: [NgClass, NgTemplateOutlet, FormInputComponent], hostDirectives: [NoopValueAccessorDirective], encapsulation: ViewEncapsulation.None, host: {
125
80
  class: 'yuv-metadata-form-field'
126
- }, template: "@let field = formField();\n@if (field) {\n @let et = elementTemplate();\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
81
+ }, template: "@let field = formField();\n\n@if (field) {\n @let et = elementTemplate();\n\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n @if (field._internalType === 'table') {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n } @else {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n }\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
127
82
  }] });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWZpZWxkL21ldGFkYXRhLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZm9ybS1maWVsZC9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBbUIsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQWN4RixNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYVcsY0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxD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LFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTTtvQkFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ3JELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDcEgsQ0FBQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQzsrR0E3SFUsMEJBQTBCO21HQUExQiwwQkFBMEIsdWRDckJ2Qyw2a0NBb0NBLGdvQ0R4QlksT0FBTyxvRkFBRSxnQkFBZ0Isb0pBQUUsa0JBQWtCOzs0RkFTNUMsMEJBQTBCO2tCQVp0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsa0JBR3hDLENBQUMsMEJBQTBCLENBQUMsaUJBQzdCLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHlCQUF5QjtxQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiwgdW50cmFja2VkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9iamVjdFR5cGVGaWVsZCwgU2l0dWF0aW9uLCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TmdDb250cm9sLCBOb29wVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWV0YWRhdGFGb3JtRWxlbWVudFJlZ2lzdHJ5IH0gZnJvbSAnLi4vbWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbWV0YWRhdGEtZm9ybS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBGb3JtSW5wdXRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOb29wVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3l1di1tZXRhZGF0YS1mb3JtLWZpZWxkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjcmVnaXN0cnkgPSBpbmplY3QoTWV0YWRhdGFGb3JtRWxlbWVudFJlZ2lzdHJ5KTtcbiAgcmVhZG9ubHkgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgbmdDb250cm9sID0gaW5qZWN0TmdDb250cm9sKCk7XG4gIGVsZW1lbnRUZW1wbGF0ZSA9IHNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgbGFiZWwgPSAnJztcbiAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgcmVxdWlyZWQgPSBmYWxzZTtcbiAgdGFnOlxuICAgIHwge1xuICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9maWVsZCE6IE9iamVjdFR5cGVGaWVsZDtcblxuICBmb3JtRmllbGQgPSBpbnB1dC5yZXF1aXJlZDxPYmplY3RUeXBlRmllbGQ+KHsgYWxpYXM6ICdmaWVsZCcgfSk7XG5cbiAgI2ZpZWxkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZm9ybUZpZWxkKCk7XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50VGVtcGxhdGUuc2V0KHRoaXMuI3JlZ2lzdHJ5LmdldEVsZW1lbnRUZW1wbGF0ZShmaWVsZC5faW50ZXJuYWxUeXBlLCB0aGlzLnNpdHVhdGlvbigpKSk7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy4jc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGZpZWxkLm5hbWUpIHx8IGZpZWxkLm5hbWU7XG5cbiAgICAgIC8vIFRPRE86IHNldCByZWFkb25seSBzdGF0ZSBiYXNlZCBvbiAuLi4/Pz8/Li4uIHNjaGVtYT9cbiAgICAgIHRoaXMucmVhZG9ubHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnNpdHVhdGlvbigpICE9PSBTaXR1YXRpb24uU0VBUkNIID8gZmllbGQucmVxdWlyZWQgOiBmYWxzZTtcbiAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXM7XG4gICAgICB0aGlzLmZldGNoVGFncygpO1xuICAgIH0pO1xuICB9KTtcblxuICAvKipcbiAgICogRm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xuICAgKi9cbiAgc2l0dWF0aW9uID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPihTaXR1YXRpb24uRURJVCk7XG5cbiAgZmV0Y2hUYWdzKCkge1xuICAgIHRoaXMudGFnID0gdW5kZWZpbmVkO1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2l0dWF0aW9uKCkgPT09IFNpdHVhdGlvbi5DUkVBVEUgJiZcbiAgICAgIChVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlZnVuY3Rpb24nKSB8fCBVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlJykpXG4gICAgKSB7XG4gICAgICB0aGlzLnRhZyA9XG4gICAgICAgICh0aGlzLmZvcm1GaWVsZCgpIGFzIGFueSkuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdFWFRSQUNUSU9OJ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsYWJlbDogJ2V4JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LnRhZy5leCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZGYnLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQudGFnLmRmJylcbiAgICAgICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RXJyb3JMYWJlbChlcnJvcjogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGVycm9yKSB7XG4gICAgICBjYXNlICdkYXRlcmFuZ2UnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IuZGF0ZXJhbmdlLmludmFsaWQnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnZGF0ZXJhbmdlb3JkZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IuZGF0ZXJhbmdlb3JkZXIuaW52YWxpZCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdudW1iZXJyYW5nZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5udW1iZXJyYW5nZS5pbnZhbGlkJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ251bWJlcnJhbmdlb3JkZXInOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubnVtYmVycmFuZ2VvcmRlci5pbnZhbGlkJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5udW1iZXInLCBwYXJhbXMpO1xuICAgICAgY2FzZSAncHJlY2lzaW9uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm51bWJlci5wcmVjaXNpb24nLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnc2NhbGUnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubnVtYmVyLnNjYWxlJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ3JlZ2V4JzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLnN0cmluZy5yZWdleC5ub21hdGNoJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ3BhdHRlcm4nOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3Iuc3RyaW5nLnJlZ2V4Lm5vbWF0Y2gnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnY2xhc3NpZmljYXRpb25lbWFpbCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5zdHJpbmcuY2xhc3NpZmljYXRpb24uZW1haWwnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnY2xhc3NpZmljYXRpb25waG9uZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5zdHJpbmcuY2xhc3NpZmljYXRpb24ucGhvbmUnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnY2xhc3NpZmljYXRpb251cmwnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3Iuc3RyaW5nLmNsYXNzaWZpY2F0aW9uLnVybCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdvbmx5V2hpdGVzcGFjZXMnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3Iuc3RyaW5nLndoaXRlc3BhY2VzJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ2RhdGVjb250cm9sJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLmRhdGUuaW52YWxpZCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5yZXF1aXJlZCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdtYXhsZW5ndGgnOlxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQuZXJyb3IubWF4bGVuZ3RoJywgcGFyYW1zKTtcbiAgICAgIGNhc2UgJ21pbmxlbmd0aCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5taW5sZW5ndGgnLCBwYXJhbXMpO1xuICAgICAgY2FzZSAnbWlubWF4JzpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LmVycm9yLm1pbm1heCcsIHBhcmFtcyk7XG4gICAgICBjYXNlICdtaW52YWx1ZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5taW52YWx1ZScsIHBhcmFtcyk7XG4gICAgICBjYXNlICdtYXh2YWx1ZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5lcnJvci5tYXh2YWx1ZScsIHBhcmFtcyk7XG4gICAgICBjYXNlICdlbXB0eSc6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LWZvcm0tZWxlbWVudC5yZWNlbnQtYWN0aXZpdGllcy5saXN0LmVtcHR5JywgcGFyYW1zKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGVycm9yLCBwYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzKVxuICAgICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9yc1xuICAgICAgICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9ycykubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgPyB0aGlzLl9nZXRFcnJvckxhYmVsKGtleSwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5lcnJvcnNba2V5XS5wYXJhbXMpIDogbnVsbDtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIkBsZXQgZmllbGQgPSBmb3JtRmllbGQoKTtcbkBpZiAoZmllbGQpIHtcbiAgQGxldCBldCA9IGVsZW1lbnRUZW1wbGF0ZSgpO1xuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCB0LXt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX1cIiAjZm9ybUZpZWxkIFthdHRyLmRhdGEtbmFtZV09XCJmaWVsZC5uYW1lXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogISFyZWFkb25seSB9XCI+XG4gICAgQGlmIChldCkge1xuICAgICAgPHl1di1mb3JtLWlucHV0XG4gICAgICAgIFtuZ0NsYXNzXT1cInsgY2hlY2tib3g6IGZpZWxkLl9pbnRlcm5hbFR5cGUgPT09ICdib29sZWFuJyB9XCJcbiAgICAgICAgW3RhZ109XCJ0YWdcIlxuICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbaW52YWxpZF09XCIhIWVycm9yc1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJldDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2l0dWF0aW9uOiBzaXR1YXRpb24oKSwgbmdDb250cm9sOiBuZ0NvbnRyb2wuY29udHJvbCwgZmllbGQgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3l1di1mb3JtLWlucHV0PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGVtPlxuICAgICAgICA8c3Ryb25nPnt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX08L3N0cm9uZz5cbiAgICAgIDwvZW0+XG4gICAgfVxuXG4gICAgPCEtLSB0aGUgZmllbGRzIGRlc2NyaXB0aW9uIC0tPlxuICAgIEBpZiAoZmllbGQuZGVzY3JpcHRpb24pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBmaWVsZC5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBlcnJvci92YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgIEBpZiAoZXJyb3JzKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiPlxuICAgICAgICA8ZGl2Pnt7IGVycm9yc1tlcnJvcnNbJ2xlbmd0aCddIC0gMV0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWZpZWxkL21ldGFkYXRhLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZm9ybS1maWVsZC9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBbUIsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQWN2RSxNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYVcsY0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFD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QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU07b0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNyRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNoSSxDQUFDLENBQUM7b0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQTdFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1ZEN0QnZDLHUwQ0EwQ0EsZ29DRDdCWSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQVM1QywwQkFBMEI7a0JBWnRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxrQkFHeEMsQ0FBQywwQkFBMEIsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUseUJBQXlCO3FCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JqZWN0VHlwZUZpZWxkLCBTaXR1YXRpb24sIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ0NvbnRyb2wsIE5vb3BWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkgfSBmcm9tICcuLi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbWV0YWRhdGEtZm9ybS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBGb3JtSW5wdXRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOb29wVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3l1di1tZXRhZGF0YS1mb3JtLWZpZWxkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjcmVnaXN0cnkgPSBpbmplY3QoTWV0YWRhdGFGb3JtRWxlbWVudFJlZ2lzdHJ5KTtcbiAgcmVhZG9ubHkgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHJlYWRvbmx5ICNlcnJvck1hc3NnZSA9IGluamVjdChFcnJvck1lc3NhZ2VzU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgbmdDb250cm9sID0gaW5qZWN0TmdDb250cm9sKCk7XG4gIGVsZW1lbnRUZW1wbGF0ZSA9IHNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgbGFiZWwgPSAnJztcbiAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgcmVxdWlyZWQgPSBmYWxzZTtcbiAgdGFnOlxuICAgIHwge1xuICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9maWVsZCE6IE9iamVjdFR5cGVGaWVsZDtcblxuICBmb3JtRmllbGQgPSBpbnB1dC5yZXF1aXJlZDxPYmplY3RUeXBlRmllbGQ+KHsgYWxpYXM6ICdmaWVsZCcgfSk7XG5cbiAgI2ZpZWxkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZm9ybUZpZWxkKCk7XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50VGVtcGxhdGUuc2V0KHRoaXMuI3JlZ2lzdHJ5LmdldEVsZW1lbnRUZW1wbGF0ZShmaWVsZC5faW50ZXJuYWxUeXBlLCB0aGlzLnNpdHVhdGlvbigpKSk7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy4jc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGZpZWxkLm5hbWUpIHx8IGZpZWxkLm5hbWU7XG5cbiAgICAgIC8vIFRPRE86IHNldCByZWFkb25seSBzdGF0ZSBiYXNlZCBvbiAuLi4/Pz8/Li4uIHNjaGVtYT9cbiAgICAgIHRoaXMucmVhZG9ubHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnNpdHVhdGlvbigpICE9PSBTaXR1YXRpb24uU0VBUkNIID8gZmllbGQucmVxdWlyZWQgOiBmYWxzZTtcbiAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXM7XG4gICAgICB0aGlzLmZldGNoVGFncygpO1xuICAgIH0pO1xuICB9KTtcblxuICAvKipcbiAgICogRm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xuICAgKi9cbiAgc2l0dWF0aW9uID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPihTaXR1YXRpb24uRURJVCk7XG5cbiAgZmV0Y2hUYWdzKCkge1xuICAgIHRoaXMudGFnID0gdW5kZWZpbmVkO1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2l0dWF0aW9uKCkgPT09IFNpdHVhdGlvbi5DUkVBVEUgJiZcbiAgICAgIChVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlZnVuY3Rpb24nKSB8fCBVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlJykpXG4gICAgKSB7XG4gICAgICB0aGlzLnRhZyA9XG4gICAgICAgICh0aGlzLmZvcm1GaWVsZCgpIGFzIGFueSkuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdFWFRSQUNUSU9OJ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsYWJlbDogJ2V4JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LnRhZy5leCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZGYnLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQudGFnLmRmJylcbiAgICAgICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpXG4gICAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzXG4gICAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9ycyA/IHRoaXMuI2Vycm9yTWFzc2dlLmdldEVycm9yTGFiZWwoa2V5LCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9yc1trZXldLnBhcmFtcykgOiBudWxsO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiQGxldCBmaWVsZCA9IGZvcm1GaWVsZCgpO1xuXG5AaWYgKGZpZWxkKSB7XG4gIEBsZXQgZXQgPSBlbGVtZW50VGVtcGxhdGUoKTtcblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCB0LXt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX1cIiAjZm9ybUZpZWxkIFthdHRyLmRhdGEtbmFtZV09XCJmaWVsZC5uYW1lXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogISFyZWFkb25seSB9XCI+XG4gICAgQGlmIChldCkge1xuICAgICAgQGlmIChmaWVsZC5faW50ZXJuYWxUeXBlID09PSAndGFibGUnKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJldDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2l0dWF0aW9uOiBzaXR1YXRpb24oKSwgbmdDb250cm9sOiBuZ0NvbnRyb2wuY29udHJvbCwgZmllbGQgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHl1di1mb3JtLWlucHV0XG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBjaGVja2JveDogZmllbGQuX2ludGVybmFsVHlwZSA9PT0gJ2Jvb2xlYW4nIH1cIlxuICAgICAgICAgIFt0YWddPVwidGFnXCJcbiAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiISFlcnJvcnNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IHNpdHVhdGlvbjogc2l0dWF0aW9uKCksIG5nQ29udHJvbDogbmdDb250cm9sLmNvbnRyb2wsIGZpZWxkIH0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3l1di1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgPGVtPlxuICAgICAgICA8c3Ryb25nPnt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX08L3N0cm9uZz5cbiAgICAgIDwvZW0+XG4gICAgfVxuXG4gICAgPCEtLSB0aGUgZmllbGRzIGRlc2NyaXB0aW9uIC0tPlxuICAgIEBpZiAoZmllbGQuZGVzY3JpcHRpb24pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBmaWVsZC5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBlcnJvci92YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgIEBpZiAoZXJyb3JzKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiPlxuICAgICAgICA8ZGl2Pnt7IGVycm9yc1tlcnJvcnNbJ2xlbmd0aCddIC0gMV0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -4,4 +4,5 @@ export * from './lib/object-metadata/object-metadata.interface';
4
4
  export * from './lib/object-audit/object-audit.component';
5
5
  export * from './lib/object-metadata/object-metadata.component';
6
6
  export * from './lib/object-details-shell/object-details-shell.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyREFBMkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1kZXRhaWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvZm9ybS1zZWN0aW9uLWdyb3VwLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LW1ldGFkYXRhL29iamVjdC1tZXRhZGF0YS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWF1ZGl0L29iamVjdC1hdWRpdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LW1ldGFkYXRhL29iamVjdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWRldGFpbHMtc2hlbGwvb2JqZWN0LWRldGFpbHMtc2hlbGwuY29tcG9uZW50JztcbiJdfQ==
7
+ export * from './lib/retention-badge/retention-badge.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1tZXRhZGF0YS9mb3JtLXNlY3Rpb24tZ3JvdXAucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtZGV0YWlscy1zaGVsbC9vYmplY3QtZGV0YWlscy1zaGVsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXRlbnRpb24tYmFkZ2UvcmV0ZW50aW9uLWJhZGdlLmNvbXBvbmVudCc7XG4iXX0=
@@ -82,7 +82,7 @@ export class ObjectMetadataComponent {
82
82
  ? {
83
83
  formModel: res[object.objectTypeId],
84
84
  data: object.data,
85
- disabled: this.formDisabled || !object.permissions?.writeIndexData,
85
+ disabled: this.formDisabled || !object.permissions?.writeIndexData
86
86
  }
87
87
  : undefined);
88
88
  this.flavorFormOptions.set(Object.keys(res)
@@ -96,6 +96,7 @@ export class ObjectMetadataComponent {
96
96
  data: object.data
97
97
  }
98
98
  })));
99
+ console.log(this.flavorFormOptions());
99
100
  this.empty.set(!this.mainFormOptions() && !this.flavorFormOptions().length);
100
101
  }
101
102
  });
@@ -186,16 +187,16 @@ export class ObjectMetadataComponent {
186
187
  this.#formSubscriptions.forEach((s) => s.unsubscribe());
187
188
  }
188
189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
189
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectMetadataComponent, isStandalone: true, selector: "yuv-object-metadata", inputs: { situation: { classPropertyName: "situation", publicName: "situation", isSignal: false, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: false, isRequired: false, transformFunction: null }, dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, flavoredDmsObject: { classPropertyName: "flavoredDmsObject", publicName: "flavoredDmsObject", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexDataSaved: "indexDataSaved", statusChanged: "statusChanged" }, host: { properties: { "class.empty": "empty()" } }, viewQueries: [{ propertyName: "objectForms", predicate: ObjectFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n", styles: [":host{--om-footer-background: var(--panel-background);--om-footer-border-color: var(--panel-divider-color);--om-section-max-width: 70ch;display:flex;height:100%;overflow:hidden;position:relative;background-color:var(--panel-background-grey)}:host.empty main{justify-content:center;align-items:center}:host main{overflow-y:auto;width:100%;display:flex;flex-flow:column}:host footer{position:absolute;bottom:0;left:0;right:0;grid-area:footer;background:var(--om-footer-background);border-top:1px solid var(--om-footer-border-color);opacity:0;display:flex;align-items:center;justify-content:end;gap:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 2)}:host footer.visible{animation:controlsAppear .2s ease-in-out forwards}:host main{padding:var(--app-pane-padding)}:host main details{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:var(--om-section-max-width);max-width:100%;margin-inline:auto;box-sizing:border-box}:host main details:not(:last-child){margin-block-end:var(--app-pane-padding)}:host main details[open] yvc-icon.arr{transform:rotate(180deg)}:host main details summary{padding:calc(var(--app-pane-padding) / 2);cursor:pointer;display:flex;align-items:center;font-weight:700;color:var(--text-color-caption);position:relative}:host main details summary::marker{display:none}:host main details summary yvc-icon{--icon-size: 18px;margin-inline-end:calc(var(--app-pane-padding) / 2)}:host main details summary yvc-icon.arr{position:absolute;inset-inline-end:0}@keyframes controlsAppear{0%{opacity:0;translate:0 var(--app-pane-padding)}to{opacity:1;translate:0 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ObjectFormComponent, selector: "yuv-object-form", inputs: ["formOptions", "inert", "elementExtensions", "isInnerTableForm"], outputs: ["statusChanged", "onFormReady"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i3.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectMetadataComponent, isStandalone: true, selector: "yuv-object-metadata", inputs: { situation: { classPropertyName: "situation", publicName: "situation", isSignal: false, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: false, isRequired: false, transformFunction: null }, dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, flavoredDmsObject: { classPropertyName: "flavoredDmsObject", publicName: "flavoredDmsObject", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { indexDataSaved: "indexDataSaved", statusChanged: "statusChanged" }, host: { properties: { "class.empty": "empty()" } }, viewQueries: [{ propertyName: "objectForms", predicate: ObjectFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n", styles: [":host{--om-footer-background: var(--panel-background);--om-footer-border-color: var(--panel-divider-color);--om-section-max-width: 70ch;display:flex;height:100%;overflow:hidden;position:relative;background-color:var(--panel-background-grey)}:host.empty main{justify-content:center;align-items:center}:host main{overflow-y:auto;width:100%;display:flex;flex-flow:column}:host footer{position:absolute;bottom:0;left:0;right:0;grid-area:footer;background:var(--om-footer-background);border-top:1px solid var(--om-footer-border-color);opacity:0;display:flex;align-items:center;justify-content:end;gap:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 2)}:host footer.visible{animation:controlsAppear .2s ease-in-out forwards}:host main{padding:var(--app-pane-padding)}:host main details{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:var(--om-section-max-width);max-width:100%;margin-inline:auto;box-sizing:border-box}:host main details:not(:last-child){margin-block-end:var(--app-pane-padding)}:host main details[open] yvc-icon.arr{transform:rotate(180deg)}:host main details summary{padding:calc(var(--app-pane-padding) / 2);cursor:pointer;display:flex;align-items:center;font-weight:700;color:var(--text-color-caption);position:relative}:host main details summary::marker{display:none}:host main details summary yvc-icon{--icon-size: 18px;margin-inline-end:calc(var(--app-pane-padding) / 2)}:host main details summary yvc-icon.arr{position:absolute;inset-inline-end:0}@keyframes controlsAppear{0%{opacity:0;translate:0 var(--app-pane-padding)}to{opacity:1;translate:0 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ObjectFormComponent, selector: "yuv-object-form", inputs: ["formOptions", "inert", "elementExtensions", "isInnerTableForm"], outputs: ["statusChanged", "onFormReady"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i3.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
190
191
  }
191
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectMetadataComponent, decorators: [{
192
193
  type: Component,
193
194
  args: [{ selector: 'yuv-object-metadata', standalone: true, imports: [CommonModule, ObjectFormComponent, TranslateModule, ReactiveFormsModule, YvcIconModule], host: {
194
195
  '[class.empty]': 'empty()'
195
- }, template: "<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n", styles: [":host{--om-footer-background: var(--panel-background);--om-footer-border-color: var(--panel-divider-color);--om-section-max-width: 70ch;display:flex;height:100%;overflow:hidden;position:relative;background-color:var(--panel-background-grey)}:host.empty main{justify-content:center;align-items:center}:host main{overflow-y:auto;width:100%;display:flex;flex-flow:column}:host footer{position:absolute;bottom:0;left:0;right:0;grid-area:footer;background:var(--om-footer-background);border-top:1px solid var(--om-footer-border-color);opacity:0;display:flex;align-items:center;justify-content:end;gap:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 2)}:host footer.visible{animation:controlsAppear .2s ease-in-out forwards}:host main{padding:var(--app-pane-padding)}:host main details{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:var(--om-section-max-width);max-width:100%;margin-inline:auto;box-sizing:border-box}:host main details:not(:last-child){margin-block-end:var(--app-pane-padding)}:host main details[open] yvc-icon.arr{transform:rotate(180deg)}:host main details summary{padding:calc(var(--app-pane-padding) / 2);cursor:pointer;display:flex;align-items:center;font-weight:700;color:var(--text-color-caption);position:relative}:host main details summary::marker{display:none}:host main details summary yvc-icon{--icon-size: 18px;margin-inline-end:calc(var(--app-pane-padding) / 2)}:host main details summary yvc-icon.arr{position:absolute;inset-inline-end:0}@keyframes controlsAppear{0%{opacity:0;translate:0 var(--app-pane-padding)}to{opacity:1;translate:0 0}}\n"] }]
196
+ }, template: "<main>\n @if (empty()) {\n <div class=\"empty\">\n <p>{{ 'yuv.object-metadata.empty.message' | translate }}</p>\n </div>\n } @else {\n <yuv-object-form [formOptions]=\"mainFormOptions()\" (statusChanged)=\"onFormStatusChanged('main', $event)\"></yuv-object-form>\n\n @for (fo of flavorFormOptions(); track $index) {\n <details [attr.open]=\"$index === 0\">\n <summary><yvc-icon [svg]=\"fo.icon\"></yvc-icon> {{ fo.label }}<yvc-icon class=\"arr\" [svg]=\"arrow\"></yvc-icon></summary>\n <yuv-object-form [formOptions]=\"fo.formOptions\" (statusChanged)=\"onFormStatusChanged(fo.id, $event)\"></yuv-object-form>\n </details>\n }\n }\n</main>\n<footer [ngClass]=\"{ visible: controlsVisible() }\">\n <button class=\"secondary\" (click)=\"resetForm()\" [hidden]=\"!combinedFormState?.dirty\" [disabled]=\"!combinedFormState?.dirty\">\n {{ 'yuv.object-metadata.button.reset' | translate }}\n </button>\n <button class=\"primary\" [ngClass]=\"{ spinning: busy() }\" (click)=\"save()\" [disabled]=\"!combinedFormState?.dirty || combinedFormState?.invalid\">\n {{ 'yuv.object-metadata.button.save' | translate }}\n </button>\n</footer>\n", styles: [":host{--om-footer-background: var(--panel-background);--om-footer-border-color: var(--panel-divider-color);--om-section-max-width: 70ch;display:flex;height:100%;overflow:hidden;position:relative;background-color:var(--panel-background-grey)}:host.empty main{justify-content:center;align-items:center}:host main{overflow-y:auto;width:100%;display:flex;flex-flow:column}:host footer{position:absolute;bottom:0;left:0;right:0;grid-area:footer;background:var(--om-footer-background);border-top:1px solid var(--om-footer-border-color);opacity:0;display:flex;align-items:center;justify-content:end;gap:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 2)}:host footer.visible{animation:controlsAppear .2s ease-in-out forwards}:host main{padding:var(--app-pane-padding)}:host main details{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);width:var(--om-section-max-width);max-width:100%;margin-inline:auto;box-sizing:border-box}:host main details:not(:last-child){margin-block-end:var(--app-pane-padding)}:host main details[open] yvc-icon.arr{transform:rotate(180deg)}:host main details summary{padding:calc(var(--app-pane-padding) / 2);cursor:pointer;display:flex;align-items:center;font-weight:700;color:var(--text-color-caption);position:relative}:host main details summary::marker{display:none}:host main details summary yvc-icon{--icon-size: 18px;margin-inline-end:calc(var(--app-pane-padding) / 2)}:host main details summary yvc-icon.arr{position:absolute;inset-inline-end:0}@keyframes controlsAppear{0%{opacity:0;translate:0 var(--app-pane-padding)}to{opacity:1;translate:0 0}}\n"] }]
196
197
  }], propDecorators: { situation: [{
197
198
  type: Input
198
199
  }], formDisabled: [{
199
200
  type: Input
200
201
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBRUwsVUFBVSxFQUVWLG1CQUFtQixFQUVuQixxQkFBcUIsRUFDckIsU0FBUyxFQUNULGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUEwQixtQkFBbUIsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0SCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQWEvRCxNQUFNLE9BQU8sdUJBQXVCO0lBVnBDO1FBV0Usb0JBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsTUFB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QUFDLENBQUM7UUFDNUgsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBaE1VLHVCQUF1QjttR0FBdkIsdUJBQXVCLGl6QkFPYyxtQkFBbUIsZ0VDcENyRSxxcUNBd0JBLCtwRERGWSxZQUFZLDZIQUFFLG1CQUFtQixpTEFBRSxlQUFlLDJGQUFFLG1CQUFtQiw4QkFBRSxhQUFhOzs0RkFPckYsdUJBQXVCO2tCQVZuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxRQUczRjt3QkFDSixlQUFlLEVBQUUsU0FBUztxQkFDM0I7OEJBc0NRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCwgdmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBGbGF2b3JlZERtc09iamVjdCxcbiAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgT2JqZWN0VHlwZUZsYXZvcixcbiAgUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICBTaXR1YXRpb24sXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQsIE9iamVjdEZvcm1Db21wb25lbnQsIE9iamVjdEZvcm1PcHRpb25zIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW9iamVjdC1tZXRhZGF0YScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9iamVjdEZvcm1Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWXZjSWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZW1wdHldJzogJ2VtcHR5KCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0TWV0YWRhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAjcGVuZGluZ0NoYW5nZXMgPSBpbmplY3QoUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKTtcbiAgI25vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG4gIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG5cbiAgb2JqZWN0Rm9ybXMgPSB2aWV3Q2hpbGRyZW48T2JqZWN0Rm9ybUNvbXBvbmVudD4oT2JqZWN0Rm9ybUNvbXBvbmVudCk7XG5cbiAgI3BlbmRpbmdUYXNrSWQ/OiBzdHJpbmc7XG4gICNkbXNPYmplY3Q/OiBEbXNPYmplY3Q7XG4gICNmb3JtU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgI2luaXRpYWxEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gIGFycm93ID0gSUNPTlMuYXJyb3dEb3duO1xuICBidXN5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgZW1wdHkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb250cm9sc1Zpc2libGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIGZvcm0gb2YgdGhlIGRtcyBvYmplY3QgaXRzZWxmXG4gIG1haW5Gb3JtT3B0aW9ucyA9IHNpZ25hbDxPYmplY3RGb3JtT3B0aW9ucyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgLy8gZm9ybXMgb2ZmIGFsbHBpZWQgZmxhdm9yc1xuICBmbGF2b3JGb3JtT3B0aW9ucyA9IHNpZ25hbDxcbiAgICB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gICAgfVtdXG4gID4oW10pO1xuICAvLyBzdGF0ZSBvZiBhbGwgaW5kaXZpZHVhbCBmb3Jtc1xuICAjZm9ybVN0YXRlczogTWFwPHN0cmluZywgRm9ybVN0YXR1c0NoYW5nZWRFdmVudD4gPSBuZXcgTWFwPHN0cmluZywgRm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcblxuICAvKipcbiAgICogRm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xuICAgKi9cbiAgQElucHV0KCkgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVDtcbiAgLyoqXG4gICAqIFNldCB0byAndHJ1ZScgdG8gcHJldmVudCBhbGwgbWV0YWRhdGEgZnJvbSBiZWluZyBlZGl0ZWRcbiAgICovXG4gIEBJbnB1dCgpIGZvcm1EaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGRtc09iamVjdCA9IGlucHV0PERtc09iamVjdCB8IHVuZGVmaW5lZD4oKTtcbiAgI2Rtc09iamVjdEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy4jaW5pdCh0aGlzLmRtc09iamVjdCgpKTtcbiAgfSk7XG5cbiAgZmxhdm9yZWREbXNPYmplY3QgPSBpbnB1dDxGbGF2b3JlZERtc09iamVjdCB8IHVuZGVmaW5lZD4oKTtcbiAgI2ZsYXZvcmVkRG1zT2JqZWN0RWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmbGF2b3JlZERtc09iamVjdCA9IHRoaXMuZmxhdm9yZWREbXNPYmplY3QoKTtcbiAgICB0aGlzLiNpbml0KGZsYXZvcmVkRG1zT2JqZWN0Py5vYmplY3QsIGZsYXZvcmVkRG1zT2JqZWN0Py5mbGF2b3JzKTtcbiAgfSk7XG4gIGNvbWJpbmVkRm9ybVN0YXRlPzogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHVwZGF0ZWQgYERtc09iamVjdGAgd2hlbiBtZXRhZGF0YSBoYXZlIGJlZW4gc2F2ZWQuXG4gICAqL1xuICBpbmRleERhdGFTYXZlZCA9IG91dHB1dDxEbXNPYmplY3Q+KCk7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWV0YWRhdGEgZm9ybS5cbiAgICovXG4gIHN0YXR1c0NoYW5nZWQgPSBvdXRwdXQ8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcblxuICAjaW5pdChvYmplY3Q/OiBEbXNPYmplY3QsIGZsYXZvcnM/OiBPYmplY3RUeXBlRmxhdm9yW10pIHtcbiAgICBpZiAob2JqZWN0ICYmICghdGhpcy4jZG1zT2JqZWN0IHx8IHRoaXMuI2Rtc09iamVjdCAhPT0gb2JqZWN0KSkge1xuICAgICAgdGhpcy4jaW5pdGlhbERhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUob2JqZWN0LmRhdGEpO1xuICAgICAgdGhpcy4jb2JqZWN0VG9Gb3JtKG9iamVjdCwgZmxhdm9ycyk7XG4gICAgfVxuICAgIHRoaXMuI2Rtc09iamVjdCA9IG9iamVjdDtcbiAgfVxuXG4gICNvYmplY3RUb0Zvcm0ob2JqZWN0PzogRG1zT2JqZWN0LCBmbGF2b3JzPzogT2JqZWN0VHlwZUZsYXZvcltdKSB7XG4gICAgaWYgKG9iamVjdCkge1xuICAgICAgY29uc3QgbWFwcGVkRmxhdm9yczogUmVjb3JkPHN0cmluZywgT2JqZWN0VHlwZUZsYXZvcj4gPSAoZmxhdm9ycyB8fCBbXSkucmVkdWNlKChhY2MsIGN1cnIpID0+ICh7IC4uLmFjYywgW2N1cnIuc290XTogY3VyciB9KSwge30pO1xuICAgICAgdGhpcy4jc3lzdGVtLmdldE9iamVjdFR5cGVGb3Jtcyhbb2JqZWN0Lm9iamVjdFR5cGVJZCwgLi4uKGZsYXZvcnMgfHwgW10pLm1hcCgoZikgPT4gZi5zb3QpXSwgdGhpcy5zaXR1YXRpb24pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLm1haW5Gb3JtT3B0aW9ucy5zZXQoXG4gICAgICAgICAgICByZXNbb2JqZWN0Lm9iamVjdFR5cGVJZF1cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmb3JtTW9kZWw6IHJlc1tvYmplY3Qub2JqZWN0VHlwZUlkXSxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IG9iamVjdC5kYXRhLFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZm9ybURpc2FibGVkIHx8ICFvYmplY3QucGVybWlzc2lvbnM/LndyaXRlSW5kZXhEYXRhLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZmxhdm9yRm9ybU9wdGlvbnMuc2V0KFxuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzKVxuICAgICAgICAgICAgICAuZmlsdGVyKChpZCkgPT4gaWQgIT09IG9iamVjdC5vYmplY3RUeXBlSWQpXG4gICAgICAgICAgICAgIC5tYXAoKGlkKSA9PiAoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGxhYmVsOiByZXNbaWRdLmxhYmVsLFxuICAgICAgICAgICAgICAgIGljb246IG1hcHBlZEZsYXZvcnNbaWRdPy5pY29uLFxuICAgICAgICAgICAgICAgIGZvcm1PcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBmb3JtTW9kZWw6IHJlc1tpZF0sXG4gICAgICAgICAgICAgICAgICBkYXRhOiBvYmplY3QuZGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuZW1wdHkuc2V0KCF0aGlzLm1haW5Gb3JtT3B0aW9ucygpICYmICF0aGlzLmZsYXZvckZvcm1PcHRpb25zKCkubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChmb3JtSWQ6IHN0cmluZywgZXZ0OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy4jZm9ybVN0YXRlcy5zZXQoZm9ybUlkLCBldnQpO1xuICAgIHRoaXMuI2dldENvbWJpbmVkRm9ybVN0YXRlKCk7XG4gICAgaWYgKHRoaXMuY29tYmluZWRGb3JtU3RhdGU/LmRpcnR5KSB0aGlzLiNzdGFydFBlbmRpbmcoKTtcbiAgICBlbHNlIHRoaXMuI2ZpbmlzaFBlbmRpbmcoKTtcbiAgICB0aGlzLmNvbnRyb2xzVmlzaWJsZS5zZXQoISF0aGlzLmNvbWJpbmVkRm9ybVN0YXRlPy5kaXJ0eSk7XG4gICAgaWYgKHRoaXMuY29tYmluZWRGb3JtU3RhdGUpIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHRoaXMuY29tYmluZWRGb3JtU3RhdGUpO1xuICB9XG5cbiAgI2dldENvbWJpbmVkRm9ybVN0YXRlKCk6IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQge1xuICAgIGNvbnN0IGNvbWJpbmVkRm9ybVN0YXRlID0ge1xuICAgICAgZGlydHk6IGZhbHNlLFxuICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogZmFsc2UsXG4gICAgICBpbnZhbGlkOiBmYWxzZSxcbiAgICAgIGRhdGE6IHt9XG4gICAgfTtcbiAgICB0aGlzLiNmb3JtU3RhdGVzLmZvckVhY2goKHMpID0+IHtcbiAgICAgIGlmIChzLmRpcnR5KSB7XG4gICAgICAgIGNvbWJpbmVkRm9ybVN0YXRlLmRpcnR5ID0gcy5kaXJ0eTtcbiAgICAgIH1cbiAgICAgIGlmIChzLmluZGV4ZGF0YUNoYW5nZWQpIHtcbiAgICAgICAgY29tYmluZWRGb3JtU3RhdGUuaW5kZXhkYXRhQ2hhbmdlZCA9IHMuaW5kZXhkYXRhQ2hhbmdlZDtcbiAgICAgIH1cbiAgICAgIGlmIChzLmludmFsaWQpIHtcbiAgICAgICAgY29tYmluZWRGb3JtU3RhdGUuaW52YWxpZCA9IHMuaW52YWxpZDtcbiAgICAgIH1cbiAgICAgIGNvbWJpbmVkRm9ybVN0YXRlLmRhdGEgPSB7IC4uLmNvbWJpbmVkRm9ybVN0YXRlLmRhdGEsIC4uLnMuZGF0YSB9O1xuICAgIH0pO1xuICAgIHRoaXMuY29tYmluZWRGb3JtU3RhdGUgPSBjb21iaW5lZEZvcm1TdGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb21iaW5lZEZvcm1TdGF0ZTtcbiAgfVxuXG4gICNzZXRDb21iaW5lZEZvcm1QcmlzdGluZSgpIHtcbiAgICB0aGlzLm9iamVjdEZvcm1zKCkuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZi5zZXRGb3JtUHJpc3RpbmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgaWYgKHRoaXMuI2Rtc09iamVjdCAmJiB0aGlzLmNvbWJpbmVkRm9ybVN0YXRlKSB7XG4gICAgICB0aGlzLmJ1c3kuc2V0KHRydWUpO1xuICAgICAgdGhpcy4jZG1zU2VydmljZS51cGRhdGVEbXNPYmplY3QodGhpcy4jZG1zT2JqZWN0LmlkLCB0aGlzLmNvbWJpbmVkRm9ybVN0YXRlLmRhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLiNzZXRDb21iaW5lZEZvcm1QcmlzdGluZSgpO1xuICAgICAgICAgIHRoaXMuaW5kZXhEYXRhU2F2ZWQuZW1pdCh0aGlzLiNkbXNPYmplY3QhKTtcbiAgICAgICAgICB0aGlzLiNmaW5pc2hQZW5kaW5nKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgLy8gdGhpcy5fZG1zT2JqZWN0Py50aXRsZSB8fCAnJyxcbiAgICAgICAgICAgIGVyci5zdGF0dXMgPT09IDQwNCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtbWV0YWRhdGEuY29udGV4dC5sb2FkLmVycm9yJykgOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LW1ldGFkYXRhLnNhdmUuZXJyb3InKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250cm9sc1Zpc2libGUuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXNldCB0ZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gICAqL1xuICByZXNldEZvcm0oKSB7XG4gICAgaWYgKHRoaXMub2JqZWN0Rm9ybXMoKT8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm9iamVjdEZvcm1zKCkuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICBmLnJlc2V0Rm9ybSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLiNmb3JtU3RhdGVzLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgI3N0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLiNwZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLiNwZW5kaW5nVGFza0lkIHx8ICcgJykpIHtcbiAgICAgIHRoaXMuI3BlbmRpbmdUYXNrSWQgPSB0aGlzLiNwZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2sodGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1tZXRhZGF0YS5wZW5kaW5nLWNoYW5nZXMuYWxlcnQnKSk7XG4gICAgfVxuICB9XG5cbiAgI2ZpbmlzaFBlbmRpbmcoKSB7XG4gICAgaWYgKHRoaXMuI3BlbmRpbmdUYXNrSWQpIHRoaXMuI3BlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy4jcGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNmb3JtU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8bWFpbj5cbiAgQGlmIChlbXB0eSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICA8cD57eyAneXV2Lm9iamVjdC1tZXRhZGF0YS5lbXB0eS5tZXNzYWdlJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPHl1di1vYmplY3QtZm9ybSAgW2Zvcm1PcHRpb25zXT1cIm1haW5Gb3JtT3B0aW9ucygpXCIgKHN0YXR1c0NoYW5nZWQpPVwib25Gb3JtU3RhdHVzQ2hhbmdlZCgnbWFpbicsICRldmVudClcIj48L3l1di1vYmplY3QtZm9ybT5cblxuICAgIEBmb3IgKGZvIG9mIGZsYXZvckZvcm1PcHRpb25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRldGFpbHMgW2F0dHIub3Blbl09XCIkaW5kZXggPT09IDBcIj5cbiAgICAgICAgPHN1bW1hcnk+PHl2Yy1pY29uIFtzdmddPVwiZm8uaWNvblwiPjwveXZjLWljb24+IHt7IGZvLmxhYmVsIH19PHl2Yy1pY29uIGNsYXNzPVwiYXJyXCIgW3N2Z109XCJhcnJvd1wiPjwveXZjLWljb24+PC9zdW1tYXJ5PlxuICAgICAgICA8eXV2LW9iamVjdC1mb3JtIFtmb3JtT3B0aW9uc109XCJmby5mb3JtT3B0aW9uc1wiIChzdGF0dXNDaGFuZ2VkKT1cIm9uRm9ybVN0YXR1c0NoYW5nZWQoZm8uaWQsICRldmVudClcIj48L3l1di1vYmplY3QtZm9ybT5cbiAgICAgIDwvZGV0YWlscz5cbiAgICB9XG4gIH1cbjwvbWFpbj5cbjxmb290ZXIgW25nQ2xhc3NdPVwieyB2aXNpYmxlOiBjb250cm9sc1Zpc2libGUoKSB9XCI+XG4gIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVzZXRGb3JtKClcIiBbaGlkZGVuXT1cIiFjb21iaW5lZEZvcm1TdGF0ZT8uZGlydHlcIiBbZGlzYWJsZWRdPVwiIWNvbWJpbmVkRm9ybVN0YXRlPy5kaXJ0eVwiPlxuICAgIHt7ICd5dXYub2JqZWN0LW1ldGFkYXRhLmJ1dHRvbi5yZXNldCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW25nQ2xhc3NdPVwieyBzcGlubmluZzogYnVzeSgpIH1cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFjb21iaW5lZEZvcm1TdGF0ZT8uZGlydHkgfHwgY29tYmluZWRGb3JtU3RhdGU/LmludmFsaWRcIj5cbiAgICB7eyAneXV2Lm9iamVjdC1tZXRhZGF0YS5idXR0b24uc2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Zvb3Rlcj5cbiJdfQ==
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBRUwsVUFBVSxFQUVWLG1CQUFtQixFQUVuQixxQkFBcUIsRUFDckIsU0FBUyxFQUNULGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUEwQixtQkFBbUIsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0SCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQWEvRCxNQUFNLE9BQU8sdUJBQXVCO0lBVnBDO1FBV0Usb0JBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsTUFB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LENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDJDQUEyQyxDQUFDLENBQUMsQ0FBQztRQUM1SCxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzsrR0FqTVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsaXpCQU9jLG1CQUFtQixnRUNwQ3JFLG9xQ0F3QkEsK3BEREZZLFlBQVksNkhBQUUsbUJBQW1CLGlMQUFFLGVBQWUsMkZBQUUsbUJBQW1CLDhCQUFFLGFBQWE7OzRGQU9yRix1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLFFBRzNGO3dCQUNKLGVBQWUsRUFBRSxTQUFTO3FCQUMzQjs4QkFzQ1EsU0FBUztzQkFBakIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBGbGF2b3JlZERtc09iamVjdCxcbiAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgT2JqZWN0VHlwZUZsYXZvcixcbiAgUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICBTaXR1YXRpb24sXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQsIE9iamVjdEZvcm1Db21wb25lbnQsIE9iamVjdEZvcm1PcHRpb25zIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1vYmplY3QtbWV0YWRhdGEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPYmplY3RGb3JtQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFl2Y0ljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1tZXRhZGF0YS5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmVtcHR5XSc6ICdlbXB0eSgpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdE1ldGFkYXRhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgI3BlbmRpbmdDaGFuZ2VzID0gaW5qZWN0KFBlbmRpbmdDaGFuZ2VzU2VydmljZSk7XG4gICNub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICNzeXN0ZW0gPSBpbmplY3QoU3lzdGVtU2VydmljZSk7XG4gICNkbXNTZXJ2aWNlID0gaW5qZWN0KERtc1NlcnZpY2UpO1xuXG4gIG9iamVjdEZvcm1zID0gdmlld0NoaWxkcmVuPE9iamVjdEZvcm1Db21wb25lbnQ+KE9iamVjdEZvcm1Db21wb25lbnQpO1xuXG4gICNwZW5kaW5nVGFza0lkPzogc3RyaW5nO1xuICAjZG1zT2JqZWN0PzogRG1zT2JqZWN0O1xuICAjZm9ybVN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gICNpbml0aWFsRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBhcnJvdyA9IElDT05TLmFycm93RG93bjtcbiAgYnVzeSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGVtcHR5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29udHJvbHNWaXNpYmxlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBmb3JtIG9mIHRoZSBkbXMgb2JqZWN0IGl0c2VsZlxuICBtYWluRm9ybU9wdGlvbnMgPSBzaWduYWw8T2JqZWN0Rm9ybU9wdGlvbnMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIC8vIGZvcm1zIG9mZiBhbGxwaWVkIGZsYXZvcnNcbiAgZmxhdm9yRm9ybU9wdGlvbnMgPSBzaWduYWw8XG4gICAge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICBpY29uPzogc3RyaW5nO1xuICAgICAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICAgIH1bXVxuICA+KFtdKTtcbiAgLy8gc3RhdGUgb2YgYWxsIGluZGl2aWR1YWwgZm9ybXNcbiAgI2Zvcm1TdGF0ZXM6IE1hcDxzdHJpbmcsIEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ+ID0gbmV3IE1hcDxzdHJpbmcsIEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEZvcm0gc2l0dWF0aW9uLCBpZiBub3Qgc2V0IGRlZmF1bHQgd2lsbCBiZSAnRURJVCdcbiAgICovXG4gIEBJbnB1dCgpIHNpdHVhdGlvbjogU2l0dWF0aW9uID0gU2l0dWF0aW9uLkVESVQ7XG4gIC8qKlxuICAgKiBTZXQgdG8gJ3RydWUnIHRvIHByZXZlbnQgYWxsIG1ldGFkYXRhIGZyb20gYmVpbmcgZWRpdGVkXG4gICAqL1xuICBASW5wdXQoKSBmb3JtRGlzYWJsZWQgPSBmYWxzZTtcblxuICBkbXNPYmplY3QgPSBpbnB1dDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KCk7XG4gICNkbXNPYmplY3RFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuI2luaXQodGhpcy5kbXNPYmplY3QoKSk7XG4gIH0pO1xuXG4gIGZsYXZvcmVkRG1zT2JqZWN0ID0gaW5wdXQ8Rmxhdm9yZWREbXNPYmplY3QgfCB1bmRlZmluZWQ+KCk7XG4gICNmbGF2b3JlZERtc09iamVjdEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmxhdm9yZWREbXNPYmplY3QgPSB0aGlzLmZsYXZvcmVkRG1zT2JqZWN0KCk7XG4gICAgdGhpcy4jaW5pdChmbGF2b3JlZERtc09iamVjdD8ub2JqZWN0LCBmbGF2b3JlZERtc09iamVjdD8uZmxhdm9ycyk7XG4gIH0pO1xuICBjb21iaW5lZEZvcm1TdGF0ZT86IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSB1cGRhdGVkIGBEbXNPYmplY3RgIHdoZW4gbWV0YWRhdGEgaGF2ZSBiZWVuIHNhdmVkLlxuICAgKi9cbiAgaW5kZXhEYXRhU2F2ZWQgPSBvdXRwdXQ8RG1zT2JqZWN0PigpO1xuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIG1ldGFkYXRhIGZvcm0uXG4gICAqL1xuICBzdGF0dXNDaGFuZ2VkID0gb3V0cHV0PEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgI2luaXQob2JqZWN0PzogRG1zT2JqZWN0LCBmbGF2b3JzPzogT2JqZWN0VHlwZUZsYXZvcltdKSB7XG4gICAgaWYgKG9iamVjdCAmJiAoIXRoaXMuI2Rtc09iamVjdCB8fCB0aGlzLiNkbXNPYmplY3QgIT09IG9iamVjdCkpIHtcbiAgICAgIHRoaXMuI2luaXRpYWxEYXRhID0gc3RydWN0dXJlZENsb25lKG9iamVjdC5kYXRhKTtcbiAgICAgIHRoaXMuI29iamVjdFRvRm9ybShvYmplY3QsIGZsYXZvcnMpO1xuICAgIH1cbiAgICB0aGlzLiNkbXNPYmplY3QgPSBvYmplY3Q7XG4gIH1cblxuICAjb2JqZWN0VG9Gb3JtKG9iamVjdD86IERtc09iamVjdCwgZmxhdm9ycz86IE9iamVjdFR5cGVGbGF2b3JbXSkge1xuICAgIGlmIChvYmplY3QpIHtcbiAgICAgIGNvbnN0IG1hcHBlZEZsYXZvcnM6IFJlY29yZDxzdHJpbmcsIE9iamVjdFR5cGVGbGF2b3I+ID0gKGZsYXZvcnMgfHwgW10pLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiAoeyAuLi5hY2MsIFtjdXJyLnNvdF06IGN1cnIgfSksIHt9KTtcbiAgICAgIHRoaXMuI3N5c3RlbS5nZXRPYmplY3RUeXBlRm9ybXMoW29iamVjdC5vYmplY3RUeXBlSWQsIC4uLihmbGF2b3JzIHx8IFtdKS5tYXAoKGYpID0+IGYuc290KV0sIHRoaXMuc2l0dWF0aW9uKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5tYWluRm9ybU9wdGlvbnMuc2V0KFxuICAgICAgICAgICAgcmVzW29iamVjdC5vYmplY3RUeXBlSWRdXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgZm9ybU1vZGVsOiByZXNbb2JqZWN0Lm9iamVjdFR5cGVJZF0sXG4gICAgICAgICAgICAgICAgICBkYXRhOiBvYmplY3QuZGF0YSxcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmZvcm1EaXNhYmxlZCB8fCAhb2JqZWN0LnBlcm1pc3Npb25zPy53cml0ZUluZGV4RGF0YVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5mbGF2b3JGb3JtT3B0aW9ucy5zZXQoXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyZXMpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gb2JqZWN0Lm9iamVjdFR5cGVJZClcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHJlc1tpZF0ubGFiZWwsXG4gICAgICAgICAgICAgICAgaWNvbjogbWFwcGVkRmxhdm9yc1tpZF0/Lmljb24sXG4gICAgICAgICAgICAgICAgZm9ybU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGZvcm1Nb2RlbDogcmVzW2lkXSxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IG9iamVjdC5kYXRhXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmxhdm9yRm9ybU9wdGlvbnMoKSk7XG4gICAgICAgICAgdGhpcy5lbXB0eS5zZXQoIXRoaXMubWFpbkZvcm1PcHRpb25zKCkgJiYgIXRoaXMuZmxhdm9yRm9ybU9wdGlvbnMoKS5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkZvcm1TdGF0dXNDaGFuZ2VkKGZvcm1JZDogc3RyaW5nLCBldnQ6IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLiNmb3JtU3RhdGVzLnNldChmb3JtSWQsIGV2dCk7XG4gICAgdGhpcy4jZ2V0Q29tYmluZWRGb3JtU3RhdGUoKTtcbiAgICBpZiAodGhpcy5jb21iaW5lZEZvcm1TdGF0ZT8uZGlydHkpIHRoaXMuI3N0YXJ0UGVuZGluZygpO1xuICAgIGVsc2UgdGhpcy4jZmluaXNoUGVuZGluZygpO1xuICAgIHRoaXMuY29udHJvbHNWaXNpYmxlLnNldCghIXRoaXMuY29tYmluZWRGb3JtU3RhdGU/LmRpcnR5KTtcbiAgICBpZiAodGhpcy5jb21iaW5lZEZvcm1TdGF0ZSkgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQodGhpcy5jb21iaW5lZEZvcm1TdGF0ZSk7XG4gIH1cblxuICAjZ2V0Q29tYmluZWRGb3JtU3RhdGUoKTogRm9ybVN0YXR1c0NoYW5nZWRFdmVudCB7XG4gICAgY29uc3QgY29tYmluZWRGb3JtU3RhdGUgPSB7XG4gICAgICBkaXJ0eTogZmFsc2UsXG4gICAgICBpbmRleGRhdGFDaGFuZ2VkOiBmYWxzZSxcbiAgICAgIGludmFsaWQ6IGZhbHNlLFxuICAgICAgZGF0YToge31cbiAgICB9O1xuICAgIHRoaXMuI2Zvcm1TdGF0ZXMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgaWYgKHMuZGlydHkpIHtcbiAgICAgICAgY29tYmluZWRGb3JtU3RhdGUuZGlydHkgPSBzLmRpcnR5O1xuICAgICAgfVxuICAgICAgaWYgKHMuaW5kZXhkYXRhQ2hhbmdlZCkge1xuICAgICAgICBjb21iaW5lZEZvcm1TdGF0ZS5pbmRleGRhdGFDaGFuZ2VkID0gcy5pbmRleGRhdGFDaGFuZ2VkO1xuICAgICAgfVxuICAgICAgaWYgKHMuaW52YWxpZCkge1xuICAgICAgICBjb21iaW5lZEZvcm1TdGF0ZS5pbnZhbGlkID0gcy5pbnZhbGlkO1xuICAgICAgfVxuICAgICAgY29tYmluZWRGb3JtU3RhdGUuZGF0YSA9IHsgLi4uY29tYmluZWRGb3JtU3RhdGUuZGF0YSwgLi4ucy5kYXRhIH07XG4gICAgfSk7XG4gICAgdGhpcy5jb21iaW5lZEZvcm1TdGF0ZSA9IGNvbWJpbmVkRm9ybVN0YXRlO1xuICAgIHJldHVybiB0aGlzLmNvbWJpbmVkRm9ybVN0YXRlO1xuICB9XG5cbiAgI3NldENvbWJpbmVkRm9ybVByaXN0aW5lKCkge1xuICAgIHRoaXMub2JqZWN0Rm9ybXMoKS5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBmLnNldEZvcm1QcmlzdGluZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAodGhpcy4jZG1zT2JqZWN0ICYmIHRoaXMuY29tYmluZWRGb3JtU3RhdGUpIHtcbiAgICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLiNkbXNTZXJ2aWNlLnVwZGF0ZURtc09iamVjdCh0aGlzLiNkbXNPYmplY3QuaWQsIHRoaXMuY29tYmluZWRGb3JtU3RhdGUuZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3NldENvbWJpbmVkRm9ybVByaXN0aW5lKCk7XG4gICAgICAgICAgdGhpcy5pbmRleERhdGFTYXZlZC5lbWl0KHRoaXMuI2Rtc09iamVjdCEpO1xuICAgICAgICAgIHRoaXMuI2ZpbmlzaFBlbmRpbmcoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLiNub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAvLyB0aGlzLl9kbXNPYmplY3Q/LnRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgZXJyLnN0YXR1cyA9PT0gNDA0ID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1tZXRhZGF0YS5jb250ZXh0LmxvYWQuZXJyb3InKSA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtbWV0YWRhdGEuc2F2ZS5lcnJvcicpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzVmlzaWJsZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuYnVzeS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlc2V0IHRlIGZvcm0gdG8gaXRzIGluaXRpYWwgc3RhdGVcbiAgICovXG4gIHJlc2V0Rm9ybSgpIHtcbiAgICBpZiAodGhpcy5vYmplY3RGb3JtcygpPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMub2JqZWN0Rm9ybXMoKS5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgIGYucmVzZXRGb3JtKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuI2Zvcm1TdGF0ZXMuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICAjc3RhcnRQZW5kaW5nKCkge1xuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcbiAgICAvLyBwZW5kaW5nIHRhc2sgd2lsbCBvbmx5IGJlIHN0YXJ0ZWQgb25jZSB1bnRpbCBpdCB3YXMgZmluaXNoZWRcbiAgICBpZiAoIXRoaXMuI3BlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMuI3BlbmRpbmdUYXNrSWQgfHwgJyAnKSkge1xuICAgICAgdGhpcy4jcGVuZGluZ1Rhc2tJZCA9IHRoaXMuI3BlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzayh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LW1ldGFkYXRhLnBlbmRpbmctY2hhbmdlcy5hbGVydCcpKTtcbiAgICB9XG4gIH1cblxuICAjZmluaXNoUGVuZGluZygpIHtcbiAgICBpZiAodGhpcy4jcGVuZGluZ1Rhc2tJZCkgdGhpcy4jcGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLiNwZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2Zvcm1TdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIjxtYWluPlxuICBAaWYgKGVtcHR5KCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICAgIDxwPnt7ICd5dXYub2JqZWN0LW1ldGFkYXRhLmVtcHR5Lm1lc3NhZ2UnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8eXV2LW9iamVjdC1mb3JtIFtmb3JtT3B0aW9uc109XCJtYWluRm9ybU9wdGlvbnMoKVwiIChzdGF0dXNDaGFuZ2VkKT1cIm9uRm9ybVN0YXR1c0NoYW5nZWQoJ21haW4nLCAkZXZlbnQpXCI+PC95dXYtb2JqZWN0LWZvcm0+XG5cbiAgICBAZm9yIChmbyBvZiBmbGF2b3JGb3JtT3B0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxkZXRhaWxzIFthdHRyLm9wZW5dPVwiJGluZGV4ID09PSAwXCI+XG4gICAgICAgIDxzdW1tYXJ5Pjx5dmMtaWNvbiBbc3ZnXT1cImZvLmljb25cIj48L3l2Yy1pY29uPiB7eyBmby5sYWJlbCB9fTx5dmMtaWNvbiBjbGFzcz1cImFyclwiIFtzdmddPVwiYXJyb3dcIj48L3l2Yy1pY29uPjwvc3VtbWFyeT5cbiAgICAgICAgPHl1di1vYmplY3QtZm9ybSBbZm9ybU9wdGlvbnNdPVwiZm8uZm9ybU9wdGlvbnNcIiAoc3RhdHVzQ2hhbmdlZCk9XCJvbkZvcm1TdGF0dXNDaGFuZ2VkKGZvLmlkLCAkZXZlbnQpXCI+PC95dXYtb2JqZWN0LWZvcm0+XG4gICAgICA8L2RldGFpbHM+XG4gICAgfVxuICB9XG48L21haW4+XG48Zm9vdGVyIFtuZ0NsYXNzXT1cInsgdmlzaWJsZTogY29udHJvbHNWaXNpYmxlKCkgfVwiPlxuICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlc2V0Rm9ybSgpXCIgW2hpZGRlbl09XCIhY29tYmluZWRGb3JtU3RhdGU/LmRpcnR5XCIgW2Rpc2FibGVkXT1cIiFjb21iaW5lZEZvcm1TdGF0ZT8uZGlydHlcIj5cbiAgICB7eyAneXV2Lm9iamVjdC1tZXRhZGF0YS5idXR0b24ucmVzZXQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIFtuZ0NsYXNzXT1cInsgc3Bpbm5pbmc6IGJ1c3koKSB9XCIgKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhY29tYmluZWRGb3JtU3RhdGU/LmRpcnR5IHx8IGNvbWJpbmVkRm9ybVN0YXRlPy5pbnZhbGlkXCI+XG4gICAge3sgJ3l1di5vYmplY3QtbWV0YWRhdGEuYnV0dG9uLnNhdmUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9mb290ZXI+XG4iXX0=