@alfresco/adf-core 8.1.0-15902121227 → 8.1.0-15928551305

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 (85) hide show
  1. package/esm2022/breadcrumbs/components/breadcrumb/breadcrumb.component.mjs +5 -6
  2. package/esm2022/feature-flags/lib/components/flags/flags.component.mjs +4 -5
  3. package/esm2022/lib/about/about-extension-list/about-extension-list.component.mjs +4 -5
  4. package/esm2022/lib/about/about-license-list/about-license-list.component.mjs +5 -6
  5. package/esm2022/lib/about/about-module-list/module-list.component.mjs +5 -6
  6. package/esm2022/lib/about/about-package/package-list.component.mjs +5 -6
  7. package/esm2022/lib/about/about-repository-info/about-repository-info.component.mjs +4 -5
  8. package/esm2022/lib/about/about-server-settings/about-server-settings.component.mjs +5 -6
  9. package/esm2022/lib/about/about-status-list/about-status-list.component.mjs +5 -6
  10. package/esm2022/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +8 -9
  11. package/esm2022/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +4 -5
  12. package/esm2022/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +9 -10
  13. package/esm2022/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +9 -10
  14. package/esm2022/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +4 -5
  15. package/esm2022/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +10 -11
  16. package/esm2022/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +6 -7
  17. package/esm2022/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +10 -11
  18. package/esm2022/lib/clipboard/clipboard.directive.mjs +4 -5
  19. package/esm2022/lib/clipboard/clipboard.module.mjs +2 -2
  20. package/esm2022/lib/comments/comment-list/comment-list.component.mjs +4 -5
  21. package/esm2022/lib/comments/comments.component.mjs +8 -9
  22. package/esm2022/lib/context-menu/context-menu-list.component.mjs +6 -7
  23. package/esm2022/lib/core.module.mjs +3 -3
  24. package/esm2022/lib/datatable/components/columns-selector/columns-selector.component.mjs +9 -10
  25. package/esm2022/lib/datatable/components/datatable/datatable.component.mjs +7 -8
  26. package/esm2022/lib/dialogs/dialog/dialog.component.mjs +6 -7
  27. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.mjs +9 -8
  28. package/esm2022/lib/dialogs/edit-json/edit-json.dialog.module.mjs +6 -10
  29. package/esm2022/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +8 -9
  30. package/esm2022/lib/dynamic-chip-list/dynamic-chip-list.component.mjs +6 -7
  31. package/esm2022/lib/form/components/form-renderer.component.mjs +4 -5
  32. package/esm2022/lib/form/components/widgets/amount/amount.widget.mjs +4 -5
  33. package/esm2022/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +4 -5
  34. package/esm2022/lib/form/components/widgets/checkbox/checkbox.widget.mjs +4 -5
  35. package/esm2022/lib/form/components/widgets/date/date.widget.mjs +7 -8
  36. package/esm2022/lib/form/components/widgets/date-time/date-time.widget.mjs +8 -9
  37. package/esm2022/lib/form/components/widgets/decimal/decimal.component.mjs +7 -8
  38. package/esm2022/lib/form/components/widgets/display-text/display-text.widget.mjs +4 -5
  39. package/esm2022/lib/form/components/widgets/error/error.component.mjs +4 -5
  40. package/esm2022/lib/form/components/widgets/header/header.widget.mjs +5 -6
  41. package/esm2022/lib/form/components/widgets/hyperlink/hyperlink.widget.mjs +4 -6
  42. package/esm2022/lib/form/components/widgets/json/json.widget.mjs +5 -6
  43. package/esm2022/lib/form/components/widgets/multiline-text/multiline-text.widget.mjs +7 -8
  44. package/esm2022/lib/form/components/widgets/number/number.widget.mjs +7 -8
  45. package/esm2022/lib/form/components/widgets/text/text.widget.mjs +7 -8
  46. package/esm2022/lib/form/form-base.module.mjs +2 -2
  47. package/esm2022/lib/identity-user-info/identity-user-info.component.mjs +4 -5
  48. package/esm2022/lib/info-drawer/info-drawer.component.mjs +6 -7
  49. package/esm2022/lib/language-menu/language-picker.component.mjs +5 -6
  50. package/esm2022/lib/layout/components/header/header.component.mjs +4 -5
  51. package/esm2022/lib/login/components/login/login.component.mjs +10 -11
  52. package/esm2022/lib/login/components/login-dialog/login-dialog.component.mjs +5 -6
  53. package/esm2022/lib/notifications/components/notification-history.component.mjs +7 -8
  54. package/esm2022/lib/notifications/services/notification.service.mjs +1 -1
  55. package/esm2022/lib/pagination/infinite-pagination.component.mjs +4 -5
  56. package/esm2022/lib/pagination/pagination.component.mjs +4 -4
  57. package/esm2022/lib/search-text/search-text-input.component.mjs +7 -18
  58. package/esm2022/lib/snackbar-content/snackbar-content.component.mjs +9 -8
  59. package/esm2022/lib/snackbar-content/snackbar-content.module.mjs +5 -10
  60. package/esm2022/lib/sorting-picker/sorting-picker.component.mjs +9 -10
  61. package/esm2022/lib/templates/empty-content/empty-content.component.mjs +4 -5
  62. package/esm2022/lib/templates/error-content/error-content.component.mjs +4 -5
  63. package/esm2022/lib/toolbar/toolbar.component.mjs +4 -5
  64. package/esm2022/lib/viewer/components/download-prompt-dialog/download-prompt-dialog.component.mjs +5 -6
  65. package/esm2022/lib/viewer/components/img-viewer/img-viewer.component.mjs +6 -7
  66. package/esm2022/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +5 -6
  67. package/esm2022/lib/viewer/components/pdf-viewer-password-dialog/pdf-viewer-password-dialog.mjs +5 -6
  68. package/esm2022/lib/viewer/components/pdf-viewer-thumb/pdf-viewer-thumb.component.mjs +4 -5
  69. package/esm2022/lib/viewer/components/unknown-format/unknown-format.component.mjs +4 -5
  70. package/esm2022/lib/viewer/components/viewer-render/viewer-render.component.mjs +5 -6
  71. package/esm2022/lib/viewer/components/viewer.component.mjs +6 -7
  72. package/esm2022/lib/viewer/viewer.module.mjs +1 -3
  73. package/fesm2022/adf-core.mjs +272 -283
  74. package/fesm2022/adf-core.mjs.map +1 -1
  75. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs +4 -5
  76. package/fesm2022/alfresco-adf-core-breadcrumbs.mjs.map +1 -1
  77. package/fesm2022/alfresco-adf-core-feature-flags.mjs +3 -4
  78. package/fesm2022/alfresco-adf-core-feature-flags.mjs.map +1 -1
  79. package/lib/dialogs/edit-json/edit-json.dialog.d.ts +1 -1
  80. package/lib/dialogs/edit-json/edit-json.dialog.module.d.ts +1 -6
  81. package/lib/form/components/widgets/hyperlink/hyperlink.widget.d.ts +16 -0
  82. package/lib/notifications/services/notification.service.d.ts +1 -1
  83. package/lib/snackbar-content/snackbar-content.component.d.ts +1 -1
  84. package/lib/snackbar-content/snackbar-content.module.d.ts +2 -6
  85. package/package.json +4 -4
@@ -23,7 +23,7 @@ import { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/f
23
23
  import { debounceTime, filter } from 'rxjs/operators';
24
24
  import { CommonModule } from '@angular/common';
25
25
  import { MatFormFieldModule } from '@angular/material/form-field';
26
- import { TranslateModule } from '@ngx-translate/core';
26
+ import { TranslatePipe } from '@ngx-translate/core';
27
27
  import { MatInputModule } from '@angular/material/input';
28
28
  import { MatIconModule } from '@angular/material/icon';
29
29
  import { MatButtonModule } from '@angular/material/button';
@@ -34,13 +34,12 @@ import * as i1 from "../../../clipboard/clipboard.service";
34
34
  import * as i2 from "../../../translation/translation.service";
35
35
  import * as i3 from "@angular/common";
36
36
  import * as i4 from "@angular/material/form-field";
37
- import * as i5 from "@ngx-translate/core";
38
- import * as i6 from "@angular/material/input";
39
- import * as i7 from "@angular/cdk/text-field";
40
- import * as i8 from "@angular/forms";
41
- import * as i9 from "@angular/material/chips";
42
- import * as i10 from "@angular/material/icon";
43
- import * as i11 from "@angular/material/button";
37
+ import * as i5 from "@angular/material/input";
38
+ import * as i6 from "@angular/cdk/text-field";
39
+ import * as i7 from "@angular/forms";
40
+ import * as i8 from "@angular/material/chips";
41
+ import * as i9 from "@angular/material/icon";
42
+ import * as i10 from "@angular/material/button";
44
43
  export const DEFAULT_SEPARATOR = ', ';
45
44
  const templateTypes = {
46
45
  clickableTemplate: 'clickableTemplate',
@@ -210,14 +209,14 @@ export class CardViewTextItemComponent extends BaseCardView {
210
209
  return String(Math.trunc(Number(value)));
211
210
  }
212
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardViewTextItemComponent, deps: [{ token: i1.ClipboardService }, { token: i2.TranslationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CardViewTextItemComponent, isStandalone: true, selector: "adf-card-view-textitem", inputs: { displayEmpty: "displayEmpty", copyToClipboardAction: "copyToClipboardAction", useChipsForMultiValueProperty: "useChipsForMultiValueProperty", multiValueSeparator: "multiValueSeparator", displayLabelForChips: "displayLabelForChips" }, host: { classAttribute: "adf-card-view-textitem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <mat-form-field\n class=\"adf-property-field adf-card-textitem-field\"\n [ngClass]=\"{\n 'adf-property-read-only': !isEditable\n }\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n\n <input\n matInput\n *ngIf=\"!property.multiline\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n (dblclick)=\"copyToClipboard(property.displayValue)\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n (keydown)=\"undoText($event)\"\n />\n <textarea\n matInput\n *ngIf=\"property.multiline\"\n title=\"{{ property.label | translate }}\"\n [cdkTextareaAutosize]=\"true\"\n [cdkAutosizeMinRows]=\"1\"\n [cdkAutosizeMaxRows]=\"5\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n >\n </textarea>\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'chipsTemplate'\"\n class=\"adf-property-field adf-textitem-chip-list-container\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <mat-label\n *ngIf=\"showLabelForChips\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <mat-chip-grid #chipElement class=\"adf-textitem-chip-list\">\n <mat-chip-row *ngFor=\"let propertyValue of editedValue; let idx = index\" [removable]=\"isEditable\" (removed)=\"removeValueFromList(idx)\">\n {{ propertyValue }}\n <mat-icon *ngIf=\"isEditable\" matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n </mat-chip-grid>\n\n <mat-form-field\n *ngIf=\"isEditable\"\n class=\"adf-property-field adf-textitem-chip-list-input\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <input\n matInput\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"editedValue ? '' : (property.default | translate)\"\n [attr.aria-label]=\"property.label | translate\"\n [matChipInputFor]=\"chipElement\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValueToList($event)\"\n [attr.data-automation-id]=\"'card-textitem-editchipinput-' + property.key\"\n />\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'clickableTemplate'\"\n role=\"button\"\n class=\"adf-textitem-clickable\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [attr.data-automation-id]=\"'card-textitem-toggle-' + property.key\"\n tabindex=\"0\"\n (keyup.enter)=\"clicked()\"\n (click)=\"clicked()\"\n >\n <mat-form-field class=\"adf-property-field adf-card-textitem-field\" [floatLabel]=\"property.default ? 'always' : null\">\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [type]=\"property.inputType\"\n class=\"adf-property-value\"\n title=\"{{ property.label | translate }}\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-textitem-clickable-value': isClickable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-has-icon-suffix': showClickableIcon\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [(ngModel)]=\"editedValue\"\n (blur)=\"update()\"\n (keydown.enter)=\"update()\"\n [readonly]=\"!isEditable\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n />\n <button\n mat-icon-button\n matSuffix\n *ngIf=\"showClickableIcon\"\n class=\"adf-textitem-action\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.EDIT' | translate\"\n [attr.data-automation-id]=\"'card-textitem-clickable-icon-' + property.key\"\n >\n <mat-icon class=\"adf-textitem-icon\">{{ property?.icon }}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'emptyTemplate'\">\n <span class=\"adf-textitem-default-value\">{{ property.default | translate }}</span>\n </div>\n\n <mat-error *ngIf=\"isEditable && hasErrors\" class=\"adf-textitem-error\" [attr.data-automation-id]=\"'card-textitem-error-' + property.key\">\n <ul>\n <li *ngFor=\"let error of errors\">{{ error.message | translate : error }}</li>\n </ul>\n </mat-error>\n</div>\n", styles: [".adf-card-view-textitem .adf-textitem-error{font-size:var(--theme-caption-font-size);padding-top:6px}.adf-card-view-textitem .adf-textitem-error ul{margin:0;padding:0;list-style-type:none}.adf-card-view-textitem .adf-textitem-error ul li{margin:0;padding:0}.adf-card-view-textitem .adf-textitem-action{width:30px;height:30px;padding:0;line-height:20px;color:var(--adf-theme-foreground-text-color-025)}.adf-card-view-textitem .adf-textitem-action:hover,.adf-card-view-textitem .adf-textitem-action:focus{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-action .mat-mdc-button-touch-target{width:30px;height:30px}.adf-card-view-textitem .mat-mdc-form-field-icon-suffix{position:absolute;right:1px;bottom:7px}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-floating-label{margin-top:6px}.adf-card-view-textitem .adf-textitem-clickable{cursor:pointer;padding-top:3px}.adf-card-view-textitem .adf-textitem-clickable .adf-textitem-action:hover{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-clickable .adf-property-field .mat-mdc-input-element{color:var(--theme-primary-color);cursor:pointer}.adf-card-view-textitem .adf-textitem-default-value{color:var(--adf-theme-foreground-text-color-054)}.adf-card-view-textitem .adf-property-read-only:not(:has(.adf-property-readonly-value)){border-bottom:1px solid var(--adf-metadata-property-panel-border-color)}.adf-card-view-textitem .adf-property-readonly-value:disabled{color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-editable:not(:disabled){color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-has-icon-suffix{padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adf-card-view-textitem .mdc-line-ripple:before,.adf-card-view-textitem .mdc-line-ripple:after{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i9.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i9.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i9.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i9.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatSnackBarModule }], encapsulation: i0.ViewEncapsulation.None }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CardViewTextItemComponent, isStandalone: true, selector: "adf-card-view-textitem", inputs: { displayEmpty: "displayEmpty", copyToClipboardAction: "copyToClipboardAction", useChipsForMultiValueProperty: "useChipsForMultiValueProperty", multiValueSeparator: "multiValueSeparator", displayLabelForChips: "displayLabelForChips" }, host: { classAttribute: "adf-card-view-textitem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngSwitch]=\"templateType\">\n <div *ngSwitchDefault>\n <mat-form-field\n class=\"adf-property-field adf-card-textitem-field\"\n [ngClass]=\"{\n 'adf-property-read-only': !isEditable\n }\"\n >\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n >\n {{ property.label | translate }}\n </mat-label>\n\n <input\n matInput\n *ngIf=\"!property.multiline\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n (dblclick)=\"copyToClipboard(property.displayValue)\"\n [title]=\"'CORE.METADATA.ACTIONS.COPY_TO_CLIPBOARD' | translate\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n (keydown)=\"undoText($event)\"\n />\n <textarea\n matInput\n *ngIf=\"property.multiline\"\n title=\"{{ property.label | translate }}\"\n [cdkTextareaAutosize]=\"true\"\n [cdkAutosizeMinRows]=\"1\"\n [cdkAutosizeMaxRows]=\"5\"\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [formControl]=\"textInput\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n >\n </textarea>\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'chipsTemplate'\"\n class=\"adf-property-field adf-textitem-chip-list-container\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <mat-label\n *ngIf=\"showLabelForChips\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <mat-chip-grid #chipElement class=\"adf-textitem-chip-list\">\n <mat-chip-row *ngFor=\"let propertyValue of editedValue; let idx = index\" [removable]=\"isEditable\" (removed)=\"removeValueFromList(idx)\">\n {{ propertyValue }}\n <mat-icon *ngIf=\"isEditable\" matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n </mat-chip-grid>\n\n <mat-form-field\n *ngIf=\"isEditable\"\n class=\"adf-property-field adf-textitem-chip-list-input\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n >\n <input\n matInput\n class=\"adf-property-value\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-property-readonly-value': isReadonlyProperty\n }\"\n title=\"{{ property.label | translate }}\"\n [placeholder]=\"editedValue ? '' : (property.default | translate)\"\n [attr.aria-label]=\"property.label | translate\"\n [matChipInputFor]=\"chipElement\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addValueToList($event)\"\n [attr.data-automation-id]=\"'card-textitem-editchipinput-' + property.key\"\n />\n </mat-form-field>\n </div>\n\n <div\n *ngSwitchCase=\"'clickableTemplate'\"\n role=\"button\"\n class=\"adf-textitem-clickable\"\n [ngClass]=\"{ 'adf-property-read-only': !isEditable }\"\n [attr.data-automation-id]=\"'card-textitem-toggle-' + property.key\"\n tabindex=\"0\"\n (keyup.enter)=\"clicked()\"\n (click)=\"clicked()\"\n >\n <mat-form-field class=\"adf-property-field adf-card-textitem-field\" [floatLabel]=\"property.default ? 'always' : null\">\n <mat-label\n *ngIf=\"showProperty || isEditable\"\n [attr.data-automation-id]=\"'card-textitem-label-' + property.key\"\n class=\"adf-property-label\"\n [ngClass]=\"{ 'adf-property-value-editable': editable }\"\n >\n {{ property.label | translate }}\n </mat-label>\n <input\n matInput\n [type]=\"property.inputType\"\n class=\"adf-property-value\"\n title=\"{{ property.label | translate }}\"\n [ngClass]=\"{\n 'adf-property-value-editable': editable,\n 'adf-textitem-clickable-value': isClickable,\n 'adf-property-readonly-value': isReadonlyProperty,\n 'adf-property-value-has-error': isEditable && hasErrors,\n 'adf-property-value-has-icon-suffix': showClickableIcon\n }\"\n [placeholder]=\"property.default\"\n [attr.aria-label]=\"property.label | translate\"\n [(ngModel)]=\"editedValue\"\n (blur)=\"update()\"\n (keydown.enter)=\"update()\"\n [readonly]=\"!isEditable\"\n [attr.data-automation-id]=\"'card-textitem-value-' + property.key\"\n />\n <button\n mat-icon-button\n matSuffix\n *ngIf=\"showClickableIcon\"\n class=\"adf-textitem-action\"\n [attr.title]=\"'CORE.METADATA.ACTIONS.EDIT' | translate\"\n [attr.data-automation-id]=\"'card-textitem-clickable-icon-' + property.key\"\n >\n <mat-icon class=\"adf-textitem-icon\">{{ property?.icon }}</mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'emptyTemplate'\">\n <span class=\"adf-textitem-default-value\">{{ property.default | translate }}</span>\n </div>\n\n <mat-error *ngIf=\"isEditable && hasErrors\" class=\"adf-textitem-error\" [attr.data-automation-id]=\"'card-textitem-error-' + property.key\">\n <ul>\n <li *ngFor=\"let error of errors\">{{ error.message | translate : error }}</li>\n </ul>\n </mat-error>\n</div>\n", styles: [".adf-card-view-textitem .adf-textitem-error{font-size:var(--theme-caption-font-size);padding-top:6px}.adf-card-view-textitem .adf-textitem-error ul{margin:0;padding:0;list-style-type:none}.adf-card-view-textitem .adf-textitem-error ul li{margin:0;padding:0}.adf-card-view-textitem .adf-textitem-action{width:30px;height:30px;padding:0;line-height:20px;color:var(--adf-theme-foreground-text-color-025)}.adf-card-view-textitem .adf-textitem-action:hover,.adf-card-view-textitem .adf-textitem-action:focus{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-action .mat-mdc-button-touch-target{width:30px;height:30px}.adf-card-view-textitem .mat-mdc-form-field-icon-suffix{position:absolute;right:1px;bottom:7px}.adf-card-view-textitem .adf-textitem-chip-list-container .mat-mdc-floating-label{margin-top:6px}.adf-card-view-textitem .adf-textitem-clickable{cursor:pointer;padding-top:3px}.adf-card-view-textitem .adf-textitem-clickable .adf-textitem-action:hover{color:var(--adf-theme-foreground-text-color)}.adf-card-view-textitem .adf-textitem-clickable .adf-property-field .mat-mdc-input-element{color:var(--theme-primary-color);cursor:pointer}.adf-card-view-textitem .adf-textitem-default-value{color:var(--adf-theme-foreground-text-color-054)}.adf-card-view-textitem .adf-property-read-only:not(:has(.adf-property-readonly-value)){border-bottom:1px solid var(--adf-metadata-property-panel-border-color)}.adf-card-view-textitem .adf-property-readonly-value:disabled{color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-editable:not(:disabled){color:var(--adf-metadata-property-panel-title-color)}.adf-card-view-textitem .adf-property-value-has-icon-suffix{padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adf-card-view-textitem .mdc-line-ripple:before,.adf-card-view-textitem .mdc-line-ripple:after{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i8.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i8.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i8.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatSnackBarModule }], encapsulation: i0.ViewEncapsulation.None }); }
214
213
  }
215
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardViewTextItemComponent, decorators: [{
216
215
  type: Component,
217
216
  args: [{ selector: 'adf-card-view-textitem', standalone: true, imports: [
218
217
  CommonModule,
219
218
  MatFormFieldModule,
220
- TranslateModule,
219
+ TranslatePipe,
221
220
  MatInputModule,
222
221
  ReactiveFormsModule,
223
222
  MatChipsModule,
@@ -237,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
237
236
  }], displayLabelForChips: [{
238
237
  type: Input
239
238
  }] } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC12aWV3LXRleHRpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY2FyZC12aWV3L2NvbXBvbmVudHMvY2FyZC12aWV3LXRleHRpdGVtL2NhcmQtdmlldy10ZXh0aXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NhcmQtdmlldy9jb21wb25lbnRzL2NhcmQtdmlldy10ZXh0aXRlbS9jYXJkLXZpZXctdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUs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ZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhcmQtdmlldy10ZXh0aXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2FyZFZpZXcgfSBmcm9tICcuLi9iYXNlLWNhcmQtdmlldyc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FyZFZpZXdJdGVtVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jYXJkLXZpZXctaXRlbS12YWxpZGF0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVBBUkFUT1IgPSAnLCAnO1xuY29uc3QgdGVtcGxhdGVUeXBlcyA9IHtcbiAgICBjbGlja2FibGVUZW1wbGF0ZTogJ2NsaWNrYWJsZVRlbXBsYXRlJyxcbiAgICBtdWx0aWxpbmVUZW1wbGF0ZTogJ211bHRpbGluZVRlbXBsYXRlJyxcbiAgICBjaGlwc1RlbXBsYXRlOiAnY2hpcHNUZW1wbGF0ZScsXG4gICAgZW1wdHlUZW1wbGF0ZTogJ2VtcHR5VGVtcGxhdGUnLFxuICAgIGRlZmF1bHRUZW1wbGF0ZTogJ2RlZmF1bHRUZW1wbGF0ZSdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNhcmQtdmlldy10ZXh0aXRlbScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRDaGlwc01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0U25hY2tCYXJNb2R1bGVcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLXZpZXctdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhcmQtdmlldy10ZXh0aXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1jYXJkLXZpZXctdGV4dGl0ZW0nIH1cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZFZpZXdUZXh0SXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VDYXJkVmlldzxDYXJkVmlld1RleHRJdGVtTW9kZWw+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlFbXB0eSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvcHlUb0NsaXBib2FyZEFjdGlvbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHVzZUNoaXBzRm9yTXVsdGlWYWx1ZVByb3BlcnR5ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlWYWx1ZVNlcGFyYXRvcjogc3RyaW5nID0gREVGQVVMVF9TRVBBUkFUT1I7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlMYWJlbEZvckNoaXBzID0gZmFsc2U7XG5cbiAgICBlZGl0ZWRWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgZXJyb3JzOiBDYXJkVmlld0l0ZW1WYWxpZGF0b3JbXTtcbiAgICB0ZW1wbGF0ZVR5cGU6IHN0cmluZztcbiAgICB0ZXh0SW5wdXQgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMucHJvcGVydHk/LmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRJbnB1dC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCh0ZXh0SW5wdXRWYWx1ZSkgPT4gdGV4dElucHV0VmFsdWUgIT09IHRoaXMuZWRpdGVkVmFsdWUgJiYgdGV4dElucHV0VmFsdWUgIT09IG51bGwpLFxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh0ZXh0SW5wdXRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRlZFZhbHVlID0gdGV4dElucHV0VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5zZXRUZW1wbGF0ZVR5cGUoKTtcblxuICAgICAgICBpZiAoY2hhbmdlcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGV4dElucHV0LmVuYWJsZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRleHRJbnB1dC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRlbXBsYXRlVHlwZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1Byb3BlcnR5IHx8IHRoaXMuaXNFZGl0YWJsZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNDbGlja2FibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlVHlwZSA9IHRlbXBsYXRlVHlwZXMuY2xpY2thYmxlVGVtcGxhdGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNDaGlwVmlld0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlVHlwZSA9IHRlbXBsYXRlVHlwZXMuY2hpcHNUZW1wbGF0ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSB0ZW1wbGF0ZVR5cGVzLmRlZmF1bHRUZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVUeXBlID0gdGVtcGxhdGVUeXBlcy5lbXB0eVRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDaGlwVmlld0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGVkVmFsdWUgPSB0aGlzLnByb3BlcnR5LnZhbHVlID8gQXJyYXkuZnJvbSh0aGlzLnByb3BlcnR5LnZhbHVlKSA6IFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkuZGlzcGxheVZhbHVlO1xuICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXQuc2V0VmFsdWUodGhpcy5lZGl0ZWRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0RXJyb3JNZXNzYWdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRFcnJvck1lc3NhZ2VzKCkge1xuICAgICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgIH1cblxuICAgIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldEVycm9yTWVzc2FnZXMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LmlzVmFsaWQodGhpcy5lZGl0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnR5LnZhbHVlID0gdGhpcy5wcmVwYXJlVmFsdWVGb3JVcGxvYWQodGhpcy5wcm9wZXJ0eSwgdGhpcy5lZGl0ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UudXBkYXRlKHsgLi4udGhpcy5wcm9wZXJ0eSwgaXNWYWxpZFZhbHVlOiB0cnVlIH0gYXMgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsLCB0aGlzLnByb3BlcnR5LnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLnByb3BlcnR5LmdldFZhbGlkYXRpb25FcnJvcnModGhpcy5lZGl0ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UudXBkYXRlKHsgLi4udGhpcy5wcm9wZXJ0eSwgaXNWYWxpZFZhbHVlOiBmYWxzZSB9IGFzIENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCwgdGhpcy5lZGl0ZWRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmVwYXJlVmFsdWVGb3JVcGxvYWQocHJvcGVydHk6IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCwgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5Lm11bHRpdmFsdWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KHRoaXMubXVsdGlWYWx1ZVNlcGFyYXRvci50cmltKCkpLm1hcCgoaXRlbSkgPT4gaXRlbS50cmltKCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnaW50JyB8fCBwcm9wZXJ0eS50eXBlID09PSAnbG9uZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlSW50TG9uZ1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmVtb3ZlVmFsdWVGcm9tTGlzdChpdGVtSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmVkaXRlZFZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0ZWRWYWx1ZS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZFZhbHVlVG9MaXN0KG5ld0xpc3RJdGVtOiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgICAgICBjb25zdCBjaGlwSW5wdXQgPSBuZXdMaXN0SXRlbS5jaGlwSW5wdXQuaW5wdXRFbGVtZW50O1xuICAgICAgICBsZXQgY2hpcFZhbHVlID0gbmV3TGlzdEl0ZW0udmFsdWUudHJpbSgpIHx8ICcnO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lZGl0ZWRWYWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LmlzVmFsaWQoY2hpcFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmIChjaGlwVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudHlwZSA9PT0gJ2ludCcgfHwgdGhpcy5wcm9wZXJ0eS50eXBlID09PSAnbG9uZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaXBWYWx1ZSA9IHRoaXMucHJlcGFyZUludExvbmdWYWx1ZShjaGlwVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdGVkVmFsdWUucHVzaChjaGlwVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlwSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpcElucHV0LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMucHJvcGVydHkuZ2V0VmFsaWRhdGlvbkVycm9ycyhjaGlwVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BlcnR5LmNsaWNrQ2FsbEJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHkuY2xpY2tDYWxsQmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UuY2xpY2tlZCh0aGlzLnByb3BlcnR5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyVmFsdWUoKSB7XG4gICAgICAgIHRoaXMuZWRpdGVkVmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy50ZXh0SW5wdXQuc2V0VmFsdWUoJycpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIGNvcHlUb0NsaXBib2FyZCh2YWx1ZVRvQ29weTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvcHlUb0NsaXBib2FyZEFjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY2xpcGJvYXJkTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT1JFLk1FVEFEQVRBLkFDQ0VTU0lCSUxJVFkuQ09QWV9UT19DTElQQk9BUkRfTUVTU0FHRScpO1xuICAgICAgICAgICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNvcHlDb250ZW50VG9DbGlwYm9hcmQodmFsdWVUb0NvcHksIGNsaXBib2FyZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5kb1RleHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpICYmIGV2ZW50LmNvZGUgPT09ICdLZXlaJyAmJiB0aGlzLnRleHRJbnB1dC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXQuc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHNob3dQcm9wZXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheUVtcHR5IHx8ICF0aGlzLnByb3BlcnR5LmlzRW1wdHkoKTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0NsaWNrYWJsZUljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0ljb24gJiYgdGhpcy5lZGl0YWJsZTtcbiAgICB9XG5cbiAgICBnZXQgaXNDbGlja2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5LmNsaWNrYWJsZTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmVycm9ycz8ubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBpc0NoaXBWaWV3RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHkubXVsdGl2YWx1ZWQgJiYgdGhpcy51c2VDaGlwc0Zvck11bHRpVmFsdWVQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0xhYmVsRm9yQ2hpcHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlMYWJlbEZvckNoaXBzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlcGFyZUludExvbmdWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhNYXRoLnRydW5jKE51bWJlcih2YWx1ZSkpKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtuZ1N3aXRjaF09XCJ0ZW1wbGF0ZVR5cGVcIj5cbiAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktZmllbGQgYWRmLWNhcmQtdGV4dGl0ZW0tZmllbGRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktcmVhZC1vbmx5JzogIWlzRWRpdGFibGVcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWxhYmVsXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UHJvcGVydHkgfHwgaXNFZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWxhYmVsLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXByb3BlcnR5LWxhYmVsXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktdmFsdWUtZWRpdGFibGUnOiBlZGl0YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgJ2FkZi1wcm9wZXJ0eS1yZWFkb25seS12YWx1ZSc6IGlzUmVhZG9ubHlQcm9wZXJ0eVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cblxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFwcm9wZXJ0eS5tdWx0aWxpbmVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXByb3BlcnR5LXZhbHVlXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktdmFsdWUtZWRpdGFibGUnOiBlZGl0YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgJ2FkZi1wcm9wZXJ0eS1yZWFkb25seS12YWx1ZSc6IGlzUmVhZG9ubHlQcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICAgICAgJ2FkZi1wcm9wZXJ0eS12YWx1ZS1oYXMtZXJyb3InOiBpc0VkaXRhYmxlICYmIGhhc0Vycm9yc1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgcHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wZXJ0eS5kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGV4dElucHV0XCJcbiAgICAgICAgICAgICAgICAoZGJsY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKHByb3BlcnR5LmRpc3BsYXlWYWx1ZSlcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQ09SRS5NRVRBREFUQS5BQ1RJT05TLkNPUFlfVE9fQ0xJUEJPQVJEJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLXZhbHVlLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cInVuZG9UZXh0KCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9wZXJ0eS5tdWx0aWxpbmVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgcHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFtjZGtUZXh0YXJlYUF1dG9zaXplXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjZGtBdXRvc2l6ZU1pblJvd3NdPVwiMVwiXG4gICAgICAgICAgICAgICAgW2Nka0F1dG9zaXplTWF4Um93c109XCI1XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS12YWx1ZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWVkaXRhYmxlJzogZWRpdGFibGUsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktcmVhZG9ubHktdmFsdWUnOiBpc1JlYWRvbmx5UHJvcGVydHlcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcGVydHkuZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInRleHRJbnB1dFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLXZhbHVlLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidjaGlwc1RlbXBsYXRlJ1wiXG4gICAgICAgIGNsYXNzPVwiYWRmLXByb3BlcnR5LWZpZWxkIGFkZi10ZXh0aXRlbS1jaGlwLWxpc3QtY29udGFpbmVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYWRmLXByb3BlcnR5LXJlYWQtb25seSc6ICFpc0VkaXRhYmxlIH1cIlxuICAgID5cbiAgICAgICAgPG1hdC1sYWJlbFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TGFiZWxGb3JDaGlwc1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tbGFiZWwtJyArIHByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS1sYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhZGYtcHJvcGVydHktdmFsdWUtZWRpdGFibGUnOiBlZGl0YWJsZSB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgcHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwRWxlbWVudCBjbGFzcz1cImFkZi10ZXh0aXRlbS1jaGlwLWxpc3RcIj5cbiAgICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IHByb3BlcnR5VmFsdWUgb2YgZWRpdGVkVmFsdWU7IGxldCBpZHggPSBpbmRleFwiIFtyZW1vdmFibGVdPVwiaXNFZGl0YWJsZVwiIChyZW1vdmVkKT1cInJlbW92ZVZhbHVlRnJvbUxpc3QoaWR4KVwiPlxuICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5VmFsdWUgfX1cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpc0VkaXRhYmxlXCIgbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICpuZ0lmPVwiaXNFZGl0YWJsZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS1maWVsZCBhZGYtdGV4dGl0ZW0tY2hpcC1saXN0LWlucHV0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FkZi1wcm9wZXJ0eS1yZWFkLW9ubHknOiAhaXNFZGl0YWJsZSB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS12YWx1ZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWVkaXRhYmxlJzogZWRpdGFibGUsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktcmVhZG9ubHktdmFsdWUnOiBpc1JlYWRvbmx5UHJvcGVydHlcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IHByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZWRpdGVkVmFsdWUgPyAnJyA6IChwcm9wZXJ0eS5kZWZhdWx0IHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwRWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkVmFsdWVUb0xpc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVkaXRjaGlwaW5wdXQtJyArIHByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NsaWNrYWJsZVRlbXBsYXRlJ1wiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImFkZi10ZXh0aXRlbS1jbGlja2FibGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdhZGYtcHJvcGVydHktcmVhZC1vbmx5JzogIWlzRWRpdGFibGUgfVwiXG4gICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS10b2dnbGUtJyArIHByb3BlcnR5LmtleVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJjbGlja2VkKClcIlxuICAgICAgICAoY2xpY2spPVwiY2xpY2tlZCgpXCJcbiAgICA+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1wcm9wZXJ0eS1maWVsZCBhZGYtY2FyZC10ZXh0aXRlbS1maWVsZFwiIFtmbG9hdExhYmVsXT1cInByb3BlcnR5LmRlZmF1bHQgPyAnYWx3YXlzJyA6IG51bGxcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWxcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dQcm9wZXJ0eSB8fCBpc0VkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tbGFiZWwtJyArIHByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktbGFiZWxcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FkZi1wcm9wZXJ0eS12YWx1ZS1lZGl0YWJsZSc6IGVkaXRhYmxlIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgW3R5cGVdPVwicHJvcGVydHkuaW5wdXRUeXBlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS12YWx1ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWVkaXRhYmxlJzogZWRpdGFibGUsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtdGV4dGl0ZW0tY2xpY2thYmxlLXZhbHVlJzogaXNDbGlja2FibGUsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktcmVhZG9ubHktdmFsdWUnOiBpc1JlYWRvbmx5UHJvcGVydHksXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktdmFsdWUtaGFzLWVycm9yJzogaXNFZGl0YWJsZSAmJiBoYXNFcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktdmFsdWUtaGFzLWljb24tc3VmZml4Jzogc2hvd0NsaWNrYWJsZUljb25cbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcGVydHkuZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0ZWRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwidXBkYXRlKClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInVwZGF0ZSgpXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiIWlzRWRpdGFibGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS12YWx1ZS0nICsgcHJvcGVydHkua2V5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Q2xpY2thYmxlSWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdGV4dGl0ZW0tYWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCInQ09SRS5NRVRBREFUQS5BQ1RJT05TLkVESVQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tY2xpY2thYmxlLWljb24tJyArIHByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLXRleHRpdGVtLWljb25cIj57eyBwcm9wZXJ0eT8uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidlbXB0eVRlbXBsYXRlJ1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi10ZXh0aXRlbS1kZWZhdWx0LXZhbHVlXCI+e3sgcHJvcGVydHkuZGVmYXVsdCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0VkaXRhYmxlICYmIGhhc0Vycm9yc1wiIGNsYXNzPVwiYWRmLXRleHRpdGVtLWVycm9yXCIgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVycm9yLScgKyBwcm9wZXJ0eS5rZXlcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnNcIj57eyBlcnJvci5tZXNzYWdlIHwgdHJhbnNsYXRlIDogZXJyb3IgfX08L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbWF0LWVycm9yPlxuPC9kaXY+XG4iXX0=
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC12aWV3LXRleHRpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY2FyZC12aWV3L2NvbXBvbmVudHMvY2FyZC12aWV3LXRleHRpdGVtL2NhcmQtdmlldy10ZXh0aXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NhcmQtdmlldy9jb21wb25lbnRzL2NhcmQtdmlldy10ZXh0aXRlbS9jYXJkLXZpZXctdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUs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c0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXJkVmlld1RleHRJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FyZC12aWV3LXRleHRpdGVtLm1vZGVsJztcbmltcG9ydCB7IEJhc2VDYXJkVmlldyB9IGZyb20gJy4uL2Jhc2UtY2FyZC12aWV3JztcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50LCBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jbGlwYm9hcmQvY2xpcGJvYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYXJkVmlld0l0ZW1WYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NhcmQtdmlldy1pdGVtLXZhbGlkYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVBBUkFUT1IgPSAnLCAnO1xuY29uc3QgdGVtcGxhdGVUeXBlcyA9IHtcbiAgICBjbGlja2FibGVUZW1wbGF0ZTogJ2NsaWNrYWJsZVRlbXBsYXRlJyxcbiAgICBtdWx0aWxpbmVUZW1wbGF0ZTogJ211bHRpbGluZVRlbXBsYXRlJyxcbiAgICBjaGlwc1RlbXBsYXRlOiAnY2hpcHNUZW1wbGF0ZScsXG4gICAgZW1wdHlUZW1wbGF0ZTogJ2VtcHR5VGVtcGxhdGUnLFxuICAgIGRlZmF1bHRUZW1wbGF0ZTogJ2RlZmF1bHRUZW1wbGF0ZSdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNhcmQtdmlldy10ZXh0aXRlbScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdFNuYWNrQmFyTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC12aWV3LXRleHRpdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJkLXZpZXctdGV4dGl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtY2FyZC12aWV3LXRleHRpdGVtJyB9XG59KVxuZXhwb3J0IGNsYXNzIENhcmRWaWV3VGV4dEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ2FyZFZpZXc8Q2FyZFZpZXdUZXh0SXRlbU1vZGVsPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5RW1wdHkgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBjb3B5VG9DbGlwYm9hcmRBY3Rpb24gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICB1c2VDaGlwc0Zvck11bHRpVmFsdWVQcm9wZXJ0eSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIG11bHRpVmFsdWVTZXBhcmF0b3I6IHN0cmluZyA9IERFRkFVTFRfU0VQQVJBVE9SO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5TGFiZWxGb3JDaGlwcyA9IGZhbHNlO1xuXG4gICAgZWRpdGVkVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIGVycm9yczogQ2FyZFZpZXdJdGVtVmFsaWRhdG9yW107XG4gICAgdGVtcGxhdGVUeXBlOiBzdHJpbmc7XG4gICAgdGV4dElucHV0ID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnByb3BlcnR5Py5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXQudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigodGV4dElucHV0VmFsdWUpID0+IHRleHRJbnB1dFZhbHVlICE9PSB0aGlzLmVkaXRlZFZhbHVlICYmIHRleHRJbnB1dFZhbHVlICE9PSBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodGV4dElucHV0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IHRleHRJbnB1dFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuc2V0VGVtcGxhdGVUeXBlKCk7XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRWRpdGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRleHRJbnB1dC5lbmFibGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXQuZGlzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUZW1wbGF0ZVR5cGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dQcm9wZXJ0eSB8fCB0aGlzLmlzRWRpdGFibGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ2xpY2thYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSB0ZW1wbGF0ZVR5cGVzLmNsaWNrYWJsZVRlbXBsYXRlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzQ2hpcFZpZXdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSB0ZW1wbGF0ZVR5cGVzLmNoaXBzVGVtcGxhdGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVUeXBlID0gdGVtcGxhdGVUeXBlcy5kZWZhdWx0VGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlVHlwZSA9IHRlbXBsYXRlVHlwZXMuZW1wdHlUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0VmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2hpcFZpZXdFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRlZFZhbHVlID0gdGhpcy5wcm9wZXJ0eS52YWx1ZSA/IEFycmF5LmZyb20odGhpcy5wcm9wZXJ0eS52YWx1ZSkgOiBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGVkVmFsdWUgPSB0aGlzLnByb3BlcnR5LmRpc3BsYXlWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMudGV4dElucHV0LnNldFZhbHVlKHRoaXMuZWRpdGVkVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXNldEVycm9yTWVzc2FnZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0RXJyb3JNZXNzYWdlcygpIHtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICB9XG5cbiAgICB1cGRhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS5pc1ZhbGlkKHRoaXMuZWRpdGVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eS52YWx1ZSA9IHRoaXMucHJlcGFyZVZhbHVlRm9yVXBsb2FkKHRoaXMucHJvcGVydHksIHRoaXMuZWRpdGVkVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLnVwZGF0ZSh7IC4uLnRoaXMucHJvcGVydHksIGlzVmFsaWRWYWx1ZTogdHJ1ZSB9IGFzIENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCwgdGhpcy5wcm9wZXJ0eS52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5wcm9wZXJ0eS5nZXRWYWxpZGF0aW9uRXJyb3JzKHRoaXMuZWRpdGVkVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLnVwZGF0ZSh7IC4uLnRoaXMucHJvcGVydHksIGlzVmFsaWRWYWx1ZTogZmFsc2UgfSBhcyBDYXJkVmlld1RleHRJdGVtTW9kZWwsIHRoaXMuZWRpdGVkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJlcGFyZVZhbHVlRm9yVXBsb2FkKHByb3BlcnR5OiBDYXJkVmlld1RleHRJdGVtTW9kZWwsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5tdWx0aXZhbHVlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCh0aGlzLm11bHRpVmFsdWVTZXBhcmF0b3IudHJpbSgpKS5tYXAoKGl0ZW0pID0+IGl0ZW0udHJpbSgpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkudHlwZSA9PT0gJ2ludCcgfHwgcHJvcGVydHkudHlwZSA9PT0gJ2xvbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJlcGFyZUludExvbmdWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJlbW92ZVZhbHVlRnJvbUxpc3QoaXRlbUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lZGl0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGVkVmFsdWUuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRWYWx1ZVRvTGlzdChuZXdMaXN0SXRlbTogTWF0Q2hpcElucHV0RXZlbnQpIHtcbiAgICAgICAgY29uc3QgY2hpcElucHV0ID0gbmV3TGlzdEl0ZW0uY2hpcElucHV0LmlucHV0RWxlbWVudDtcbiAgICAgICAgbGV0IGNoaXBWYWx1ZSA9IG5ld0xpc3RJdGVtLnZhbHVlLnRyaW0oKSB8fCAnJztcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZWRpdGVkVmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS5pc1ZhbGlkKGNoaXBWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hpcFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnR5cGUgPT09ICdpbnQnIHx8IHRoaXMucHJvcGVydHkudHlwZSA9PT0gJ2xvbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlwVmFsdWUgPSB0aGlzLnByZXBhcmVJbnRMb25nVmFsdWUoY2hpcFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRlZFZhbHVlLnB1c2goY2hpcFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpcElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaXBJbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLnByb3BlcnR5LmdldFZhbGlkYXRpb25FcnJvcnMoY2hpcFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wZXJ0eS5jbGlja0NhbGxCYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5LmNsaWNrQ2FsbEJhY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2FyZFZpZXdVcGRhdGVTZXJ2aWNlLmNsaWNrZWQodGhpcy5wcm9wZXJ0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclZhbHVlKCkge1xuICAgICAgICB0aGlzLmVkaXRlZFZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMudGV4dElucHV0LnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBjb3B5VG9DbGlwYm9hcmQodmFsdWVUb0NvcHk6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb3B5VG9DbGlwYm9hcmRBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGNsaXBib2FyZE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09SRS5NRVRBREFUQS5BQ0NFU1NJQklMSVRZLkNPUFlfVE9fQ0xJUEJPQVJEX01FU1NBR0UnKTtcbiAgICAgICAgICAgIHRoaXMuY2xpcGJvYXJkU2VydmljZS5jb3B5Q29udGVudFRvQ2xpcGJvYXJkKHZhbHVlVG9Db3B5LCBjbGlwYm9hcmRNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuZG9UZXh0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSAmJiBldmVudC5jb2RlID09PSAnS2V5WicgJiYgdGhpcy50ZXh0SW5wdXQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dElucHV0LnNldFZhbHVlKCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBzaG93UHJvcGVydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlFbXB0eSB8fCAhdGhpcy5wcm9wZXJ0eS5pc0VtcHR5KCk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dDbGlja2FibGVJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJY29uICYmIHRoaXMuZWRpdGFibGU7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ2xpY2thYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS5jbGlja2FibGU7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5lcnJvcnM/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaXNDaGlwVmlld0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5Lm11bHRpdmFsdWVkICYmIHRoaXMudXNlQ2hpcHNGb3JNdWx0aVZhbHVlUHJvcGVydHk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dMYWJlbEZvckNoaXBzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5TGFiZWxGb3JDaGlwcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVJbnRMb25nVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBTdHJpbmcoTWF0aC50cnVuYyhOdW1iZXIodmFsdWUpKSk7XG4gICAgfVxufVxuIiwiPGRpdiBbbmdTd2l0Y2hdPVwidGVtcGxhdGVUeXBlXCI+XG4gICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXByb3BlcnR5LWZpZWxkIGFkZi1jYXJkLXRleHRpdGVtLWZpZWxkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXJlYWQtb25seSc6ICFpc0VkaXRhYmxlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1sYWJlbFxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1Byb3BlcnR5IHx8IGlzRWRpdGFibGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1sYWJlbC0nICsgcHJvcGVydHkua2V5XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWVkaXRhYmxlJzogZWRpdGFibGUsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktcmVhZG9ubHktdmFsdWUnOiBpc1JlYWRvbmx5UHJvcGVydHlcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvcGVydHkubXVsdGlsaW5lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS12YWx1ZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWVkaXRhYmxlJzogZWRpdGFibGUsXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktcmVhZG9ubHktdmFsdWUnOiBpc1JlYWRvbmx5UHJvcGVydHksXG4gICAgICAgICAgICAgICAgICAgICdhZGYtcHJvcGVydHktdmFsdWUtaGFzLWVycm9yJzogaXNFZGl0YWJsZSAmJiBoYXNFcnJvcnNcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IHByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcGVydHkuZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInRleHRJbnB1dFwiXG4gICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZChwcm9wZXJ0eS5kaXNwbGF5VmFsdWUpXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPUkUuTUVUQURBVEEuQUNUSU9OUy5DT1BZX1RPX0NMSVBCT0FSRCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS12YWx1ZS0nICsgcHJvcGVydHkua2V5XCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJ1bmRvVGV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvcGVydHkubXVsdGlsaW5lXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IHByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBbY2RrVGV4dGFyZWFBdXRvc2l6ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2RrQXV0b3NpemVNaW5Sb3dzXT1cIjFcIlxuICAgICAgICAgICAgICAgIFtjZGtBdXRvc2l6ZU1heFJvd3NdPVwiNVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktdmFsdWVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2FkZi1wcm9wZXJ0eS12YWx1ZS1lZGl0YWJsZSc6IGVkaXRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXJlYWRvbmx5LXZhbHVlJzogaXNSZWFkb25seVByb3BlcnR5XG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BlcnR5LmRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0ZXh0SW5wdXRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS12YWx1ZS0nICsgcHJvcGVydHkua2V5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInY2hpcHNUZW1wbGF0ZSdcIlxuICAgICAgICBjbGFzcz1cImFkZi1wcm9wZXJ0eS1maWVsZCBhZGYtdGV4dGl0ZW0tY2hpcC1saXN0LWNvbnRhaW5lclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FkZi1wcm9wZXJ0eS1yZWFkLW9ubHknOiAhaXNFZGl0YWJsZSB9XCJcbiAgICA+XG4gICAgICAgIDxtYXQtbGFiZWxcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0xhYmVsRm9yQ2hpcHNcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWxhYmVsLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktbGFiZWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWRmLXByb3BlcnR5LXZhbHVlLWVkaXRhYmxlJzogZWRpdGFibGUgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LWNoaXAtZ3JpZCAjY2hpcEVsZW1lbnQgY2xhc3M9XCJhZGYtdGV4dGl0ZW0tY2hpcC1saXN0XCI+XG4gICAgICAgICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCBwcm9wZXJ0eVZhbHVlIG9mIGVkaXRlZFZhbHVlOyBsZXQgaWR4ID0gaW5kZXhcIiBbcmVtb3ZhYmxlXT1cImlzRWRpdGFibGVcIiAocmVtb3ZlZCk9XCJyZW1vdmVWYWx1ZUZyb21MaXN0KGlkeClcIj5cbiAgICAgICAgICAgICAgICB7eyBwcm9wZXJ0eVZhbHVlIH19XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXNFZGl0YWJsZVwiIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxuICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAqbmdJZj1cImlzRWRpdGFibGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktZmllbGQgYWRmLXRleHRpdGVtLWNoaXAtbGlzdC1pbnB1dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhZGYtcHJvcGVydHktcmVhZC1vbmx5JzogIWlzRWRpdGFibGUgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktdmFsdWVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2FkZi1wcm9wZXJ0eS12YWx1ZS1lZGl0YWJsZSc6IGVkaXRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXJlYWRvbmx5LXZhbHVlJzogaXNSZWFkb25seVByb3BlcnR5XG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVkaXRlZFZhbHVlID8gJycgOiAocHJvcGVydHkuZGVmYXVsdCB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcEVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImFkZFZhbHVlVG9MaXN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1lZGl0Y2hpcGlucHV0LScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidjbGlja2FibGVUZW1wbGF0ZSdcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhZGYtdGV4dGl0ZW0tY2xpY2thYmxlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYWRmLXByb3BlcnR5LXJlYWQtb25seSc6ICFpc0VkaXRhYmxlIH1cIlxuICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tdG9nZ2xlLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwiY2xpY2tlZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrZWQoKVwiXG4gICAgPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtcHJvcGVydHktZmllbGQgYWRmLWNhcmQtdGV4dGl0ZW0tZmllbGRcIiBbZmxvYXRMYWJlbF09XCJwcm9wZXJ0eS5kZWZhdWx0ID8gJ2Fsd2F5cycgOiBudWxsXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UHJvcGVydHkgfHwgaXNFZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWxhYmVsLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXByb3BlcnR5LWxhYmVsXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhZGYtcHJvcGVydHktdmFsdWUtZWRpdGFibGUnOiBlZGl0YWJsZSB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBwcm9wZXJ0eS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInByb3BlcnR5LmlucHV0VHlwZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvcGVydHktdmFsdWVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgcHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ2FkZi1wcm9wZXJ0eS12YWx1ZS1lZGl0YWJsZSc6IGVkaXRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAnYWRmLXRleHRpdGVtLWNsaWNrYWJsZS12YWx1ZSc6IGlzQ2xpY2thYmxlLFxuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXJlYWRvbmx5LXZhbHVlJzogaXNSZWFkb25seVByb3BlcnR5LFxuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWhhcy1lcnJvcic6IGlzRWRpdGFibGUgJiYgaGFzRXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAnYWRmLXByb3BlcnR5LXZhbHVlLWhhcy1pY29uLXN1ZmZpeCc6IHNob3dDbGlja2FibGVJY29uXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BlcnR5LmRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcGVydHkubGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGVkVmFsdWVcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cInVwZGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ1cGRhdGUoKVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiFpc0VkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tdmFsdWUtJyArIHByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0NsaWNrYWJsZUljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXRleHRpdGVtLWFjdGlvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ0NPUkUuTUVUQURBVEEuQUNUSU9OUy5FRElUJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWNsaWNrYWJsZS1pY29uLScgKyBwcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi10ZXh0aXRlbS1pY29uXCI+e3sgcHJvcGVydHk/Lmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZW1wdHlUZW1wbGF0ZSdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtdGV4dGl0ZW0tZGVmYXVsdC12YWx1ZVwiPnt7IHByb3BlcnR5LmRlZmF1bHQgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNFZGl0YWJsZSAmJiBoYXNFcnJvcnNcIiBjbGFzcz1cImFkZi10ZXh0aXRlbS1lcnJvclwiIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1lcnJvci0nICsgcHJvcGVydHkua2V5XCI+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3sgZXJyb3IubWVzc2FnZSB8IHRyYW5zbGF0ZSA6IGVycm9yIH19PC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L21hdC1lcnJvcj5cbjwvZGl2PlxuIl19
@@ -16,10 +16,9 @@
16
16
  */
17
17
  import { Directive, Input, HostListener, Component, ViewContainerRef, ViewEncapsulation } from '@angular/core';
18
18
  import { ClipboardService } from './clipboard.service';
19
- import { TranslateModule } from '@ngx-translate/core';
19
+ import { TranslatePipe } from '@ngx-translate/core';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "./clipboard.service";
22
- import * as i2 from "@ngx-translate/core";
23
22
  export class ClipboardDirective {
24
23
  constructor(clipboardService, viewContainerRef) {
25
24
  this.clipboardService = clipboardService;
@@ -84,16 +83,16 @@ export class ClipboardComponent {
84
83
  this.placeholder = this.placeholder || 'CLIPBOARD.CLICK_TO_COPY';
85
84
  }
86
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ClipboardComponent, isStandalone: true, selector: "adf-copy-content-tooltip", ngImport: i0, template: `<span class="adf-copy-tooltip">{{ placeholder | translate }} </span>`, isInline: true, dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ClipboardComponent, isStandalone: true, selector: "adf-copy-content-tooltip", ngImport: i0, template: `<span class="adf-copy-tooltip">{{ placeholder | translate }} </span>`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
88
87
  }
89
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardComponent, decorators: [{
90
89
  type: Component,
91
90
  args: [{
92
91
  selector: 'adf-copy-content-tooltip',
93
92
  standalone: true,
94
- imports: [TranslateModule],
93
+ imports: [TranslatePipe],
95
94
  template: `<span class="adf-copy-tooltip">{{ placeholder | translate }} </span>`,
96
95
  encapsulation: ViewEncapsulation.None
97
96
  }]
98
97
  }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY2xpcGJvYXJkL2NsaXBib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFPdEQsTUFBTSxPQUFPLGtCQUFrQjtJQWMzQixZQUFvQixnQkFBa0MsRUFBUyxnQkFBa0M7UUFBN0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBR3JHLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3hGLFlBQVksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNoRCxDQUFDO0lBQ0wsQ0FBQztJQUdELFlBQVk7UUFDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUlELGVBQWUsQ0FBQyxLQUFpQztRQUM3QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZFLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLE9BQWU7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQzsrR0E5Q1Esa0JBQWtCO21HQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO2lCQUMzQjtvSEFLRyxXQUFXO3NCQURWLEtBQUs7dUJBQUMsZUFBZTtnQkFLdEIsTUFBTTtzQkFETCxLQUFLO2dCQUsyQixPQUFPO3NCQUF2QyxLQUFLO3VCQUFDLHdCQUF3QjtnQkFLL0IsV0FBVztzQkFEVixZQUFZO3VCQUFDLFlBQVk7Z0JBUzFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQU8xQixlQUFlO3NCQUZkLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDeEMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBMEJyQyxNQUFNLE9BQU8sa0JBQWtCO0lBRzNCLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUkseUJBQXlCLENBQUM7SUFDckUsQ0FBQzsrR0FMUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixvRkFIakIsc0VBQXNFLDJEQUR0RSxlQUFlOzs0RkFJaEIsa0JBQWtCO2tCQVA5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLFFBQVEsRUFBRSxzRUFBc0U7b0JBQ2hGLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBDb21wb25lbnQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICcuL2NsaXBib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thZGYtY2xpcGJvYXJkXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ2FkZkNsaXBib2FyZCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpcGJvYXJkRGlyZWN0aXZlIHtcbiAgICAvKiogVHJhbnNsYXRpb24ga2V5IG9yIG1lc3NhZ2UgZm9yIHRoZSB0b29sdGlwLiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdhZGYtY2xpcGJvYXJkJylcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgSFRNTCBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIHRleHQgdG8gY29weS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhcmdldDogSFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG5cbiAgICAvKiogVHJhbnNsYXRpb24ga2V5IG9yIG1lc3NhZ2UgZm9yIHNuYWNrYmFyIG5vdGlmaWNhdGlvbi4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnY2xpcGJvYXJkLW5vdGlmaWNhdGlvbicpIG1lc3NhZ2U6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSwgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBzaG93VG9vbHRpcCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoQ2xpcGJvYXJkQ29tcG9uZW50KS5pbnN0YW5jZTtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBjbG9zZVRvb2x0aXAoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgY29weVRvQ2xpcGJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBjb25zdCBpc1ZhbGlkVGFyZ2V0ID0gdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmlzVGFyZ2V0VmFsaWQodGhpcy50YXJnZXQpO1xuXG4gICAgICAgIGlmIChpc1ZhbGlkVGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZFNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHRoaXMudGFyZ2V0LCB0aGlzLm1lc3NhZ2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb3B5Q29udGVudFRvQ2xpcGJvYXJkKHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29weUNvbnRlbnRUb0NsaXBib2FyZChjb250ZW50OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNvcHlDb250ZW50VG9DbGlwYm9hcmQoY29udGVudCwgdGhpcy5tZXNzYWdlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNvcHktY29udGVudC10b29sdGlwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgPHNwYW4gY2xhc3M9XCJhZGYtY29weS10b29sdGlwXCI+e3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX0gPC9zcGFuPmAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgJ0NMSVBCT0FSRC5DTElDS19UT19DT1BZJztcbiAgICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY2xpcGJvYXJkL2NsaXBib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU9wRCxNQUFNLE9BQU8sa0JBQWtCO0lBYzNCLFlBQW9CLGdCQUFrQyxFQUFTLGdCQUFrQztRQUE3RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFHckcsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEYsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2hELENBQUM7SUFDTCxDQUFDO0lBR0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBSUQsZUFBZSxDQUFDLEtBQWlDO1FBQzdDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkUsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBZTtRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOytHQTlDUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7aUJBQzNCO29IQUtHLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxlQUFlO2dCQUt0QixNQUFNO3NCQURMLEtBQUs7Z0JBSzJCLE9BQU87c0JBQXZDLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUsvQixXQUFXO3NCQURWLFlBQVk7dUJBQUMsWUFBWTtnQkFTMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTzFCLGVBQWU7c0JBRmQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUEwQnJDLE1BQU0sT0FBTyxrQkFBa0I7SUFHM0IsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSx5QkFBeUIsQ0FBQztJQUNyRSxDQUFDOytHQUxRLGtCQUFrQjttR0FBbEIsa0JBQWtCLG9GQUhqQixzRUFBc0UsdURBRHRFLGFBQWE7OzRGQUlkLGtCQUFrQjtrQkFQOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixRQUFRLEVBQUUsc0VBQXNFO29CQUNoRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgQ29tcG9uZW50LCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9jbGlwYm9hcmQuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FkZi1jbGlwYm9hcmRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiAnYWRmQ2xpcGJvYXJkJ1xufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmREaXJlY3RpdmUge1xuICAgIC8qKiBUcmFuc2xhdGlvbiBrZXkgb3IgbWVzc2FnZSBmb3IgdGhlIHRvb2x0aXAuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2FkZi1jbGlwYm9hcmQnKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogUmVmZXJlbmNlIHRvIHRoZSBIVE1MIGVsZW1lbnQgY29udGFpbmluZyB0aGUgdGV4dCB0byBjb3B5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFyZ2V0OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudDtcblxuICAgIC8qKiBUcmFuc2xhdGlvbiBrZXkgb3IgbWVzc2FnZSBmb3Igc25hY2tiYXIgbm90aWZpY2F0aW9uLiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdjbGlwYm9hcmQtbm90aWZpY2F0aW9uJykgbWVzc2FnZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLCBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICAgIHNob3dUb29sdGlwKCkge1xuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChDbGlwYm9hcmRDb21wb25lbnQpLmluc3RhbmNlO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICAgIGNsb3NlVG9vbHRpcCgpIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBjb3B5VG9DbGlwYm9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsaWRUYXJnZXQgPSB0aGlzLmNsaXBib2FyZFNlcnZpY2UuaXNUYXJnZXRWYWxpZCh0aGlzLnRhcmdldCk7XG5cbiAgICAgICAgaWYgKGlzVmFsaWRUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xpcGJvYXJkU2VydmljZS5jb3B5VG9DbGlwYm9hcmQodGhpcy50YXJnZXQsIHRoaXMubWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvcHlDb250ZW50VG9DbGlwYm9hcmQodGhpcy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3B5Q29udGVudFRvQ2xpcGJvYXJkKGNvbnRlbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNsaXBib2FyZFNlcnZpY2UuY29weUNvbnRlbnRUb0NsaXBib2FyZChjb250ZW50LCB0aGlzLm1lc3NhZ2UpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtY29weS1jb250ZW50LXRvb2x0aXAnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZVBpcGVdLFxuICAgIHRlbXBsYXRlOiBgPHNwYW4gY2xhc3M9XCJhZGYtY29weS10b29sdGlwXCI+e3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX0gPC9zcGFuPmAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgJ0NMSVBCT0FSRC5DTElDS19UT19DT1BZJztcbiAgICB9XG59XG4iXX0=
@@ -22,7 +22,7 @@ export const CLIPBOARD_DIRECTIVES = [ClipboardDirective, ClipboardComponent];
22
22
  export class ClipboardModule {
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
24
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ClipboardModule, imports: [ClipboardDirective, ClipboardComponent], exports: [ClipboardDirective, ClipboardComponent] }); }
25
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardModule, imports: [ClipboardComponent] }); }
25
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardModule }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardModule, decorators: [{
28
28
  type: NgModule,
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
31
31
  exports: [...CLIPBOARD_DIRECTIVES]
32
32
  }]
33
33
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY2xpcGJvYXJkL2NsaXBib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBVSxDQUFDO0FBRXRGLGdGQUFnRjtBQUtoRixNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO2dIQUFmLGVBQWUsWUFQUyxrQkFBa0IsRUFBRSxrQkFBa0IsYUFBdEMsa0JBQWtCLEVBQUUsa0JBQWtCO2dIQU85RCxlQUFlLFlBUDZCLGtCQUFrQjs7NEZBTzlELGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlwYm9hcmREaXJlY3RpdmUsIENsaXBib2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2xpcGJvYXJkLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBDTElQQk9BUkRfRElSRUNUSVZFUyA9IFtDbGlwYm9hcmREaXJlY3RpdmUsIENsaXBib2FyZENvbXBvbmVudF0gYXMgY29uc3Q7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgYC4uLkNMSVBCT0FSRF9ESVJFQ1RJVkVTYCBvciBpbXBvcnQgc3RhbmRhbG9uZSBkaXJlY3RpdmVzICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFsuLi5DTElQQk9BUkRfRElSRUNUSVZFU10sXG4gICAgZXhwb3J0czogWy4uLkNMSVBCT0FSRF9ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRNb2R1bGUge31cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY2xpcGJvYXJkL2NsaXBib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFL0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBVSxDQUFDO0FBRXRGLGdGQUFnRjtBQUtoRixNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO2dIQUFmLGVBQWUsWUFQUyxrQkFBa0IsRUFBRSxrQkFBa0IsYUFBdEMsa0JBQWtCLEVBQUUsa0JBQWtCO2dIQU85RCxlQUFlOzs0RkFBZixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLEdBQUcsb0JBQW9CLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLEdBQUcsb0JBQW9CLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkRGlyZWN0aXZlLCBDbGlwYm9hcmRDb21wb25lbnQgfSBmcm9tICcuL2NsaXBib2FyZC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgQ0xJUEJPQVJEX0RJUkVDVElWRVMgPSBbQ2xpcGJvYXJkRGlyZWN0aXZlLCBDbGlwYm9hcmRDb21wb25lbnRdIGFzIGNvbnN0O1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGAuLi5DTElQQk9BUkRfRElSRUNUSVZFU2Agb3IgaW1wb3J0IHN0YW5kYWxvbmUgZGlyZWN0aXZlcyAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbLi4uQ0xJUEJPQVJEX0RJUkVDVElWRVNdLFxuICAgIGV4cG9ydHM6IFsuLi5DTElQQk9BUkRfRElSRUNUSVZFU11cbn0pXG5leHBvcnQgY2xhc3MgQ2xpcGJvYXJkTW9kdWxlIHt9XG4iXX0=
@@ -20,12 +20,11 @@ import { CommonModule } from '@angular/common';
20
20
  import { MatListModule } from '@angular/material/list';
21
21
  import { MatLineModule } from '@angular/material/core';
22
22
  import { TimeAgoPipe } from '../../pipes';
23
- import { TranslateModule } from '@ngx-translate/core';
23
+ import { TranslatePipe } from '@ngx-translate/core';
24
24
  import * as i0 from "@angular/core";
25
25
  import * as i1 from "@angular/common";
26
26
  import * as i2 from "@angular/material/list";
27
27
  import * as i3 from "@angular/material/core";
28
- import * as i4 from "@ngx-translate/core";
29
28
  export class CommentListComponent {
30
29
  constructor() {
31
30
  /** Emitted when the user clicks on one of the comment rows. */
@@ -39,15 +38,15 @@ export class CommentListComponent {
39
38
  return this.commentsService.getUserImage(userId);
40
39
  }
41
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentListComponent, isStandalone: true, selector: "adf-comment-list", inputs: { comments: "comments" }, outputs: { clickRow: "clickRow" }, ngImport: i0, template: " <mat-list class=\"adf-comment-list\">\n <mat-list-item *ngFor=\"let comment of comments\"\n (click)=\"selectComment(comment)\"\n class=\"adf-comment-list-item\">\n <div class=\"adf-comment-img-container\">\n <div *ngIf=\"!comment.hasAvatarPicture\" class=\"adf-comment-user-icon\">{{ comment.userInitials }}</div>\n <img *ngIf=\"comment.hasAvatarPicture\" class=\"adf-people-img\"\n [alt]=\"'COMMENTS.PROFILE_IMAGE' | translate\"\n [src]=\"getUserImage(comment.createdBy.id.toString())\" />\n </div>\n <div class=\"adf-comment-contents\">\n <div matLine class=\"adf-comment-user-name\">{{ comment.userDisplayName }}</div>\n <div matLine class=\"adf-comment-message\">{{ comment.message }}</div>\n <div matLine class=\"adf-comment-message-time\">{{ comment.created | adfTimeAgo }}</div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: [".adf-comment-list{padding-bottom:0}.adf-comment-list .adf-comment-img-container{width:40px;height:100%;display:flex;align-self:flex-start;padding-top:18px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container){white-space:initial;display:table-row-group;padding-top:12px;overflow:hidden;height:100%;background-position:center}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents{width:100%;padding-top:12px;padding-left:5px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents .adf-comment-message{width:100%;padding:2px 10px;white-space:pre-line;font-size:var(--theme-body-1-font-size);letter-spacing:-.2px;line-height:1.43;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-comment-user-icon{padding:10px 5px;width:30px;background-color:var(--theme-primary-color);color:var(--theme-primary-color-default-contrast);border-radius:50%;font-size:var(--theme-subheading-2-font-size);text-align:center;height:20px;background-size:cover}.adf-comment-list .adf-comment-user-name{width:100%;padding:2px 10px;font-weight:600;font-size:var(--theme-body-1-font-size)}.adf-comment-list .adf-comment-message-time{margin-top:5px;width:100%;padding:2px 10px;font-size:unset;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-people-img{border-radius:90%;width:40px;height:40px;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i3.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: TimeAgoPipe, name: "adfTimeAgo" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentListComponent, isStandalone: true, selector: "adf-comment-list", inputs: { comments: "comments" }, outputs: { clickRow: "clickRow" }, ngImport: i0, template: " <mat-list class=\"adf-comment-list\">\n <mat-list-item *ngFor=\"let comment of comments\"\n (click)=\"selectComment(comment)\"\n class=\"adf-comment-list-item\">\n <div class=\"adf-comment-img-container\">\n <div *ngIf=\"!comment.hasAvatarPicture\" class=\"adf-comment-user-icon\">{{ comment.userInitials }}</div>\n <img *ngIf=\"comment.hasAvatarPicture\" class=\"adf-people-img\"\n [alt]=\"'COMMENTS.PROFILE_IMAGE' | translate\"\n [src]=\"getUserImage(comment.createdBy.id.toString())\" />\n </div>\n <div class=\"adf-comment-contents\">\n <div matLine class=\"adf-comment-user-name\">{{ comment.userDisplayName }}</div>\n <div matLine class=\"adf-comment-message\">{{ comment.message }}</div>\n <div matLine class=\"adf-comment-message-time\">{{ comment.created | adfTimeAgo }}</div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: [".adf-comment-list{padding-bottom:0}.adf-comment-list .adf-comment-img-container{width:40px;height:100%;display:flex;align-self:flex-start;padding-top:18px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container){white-space:initial;display:table-row-group;padding-top:12px;overflow:hidden;height:100%;background-position:center}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents{width:100%;padding-top:12px;padding-left:5px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents .adf-comment-message{width:100%;padding:2px 10px;white-space:pre-line;font-size:var(--theme-body-1-font-size);letter-spacing:-.2px;line-height:1.43;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-comment-user-icon{padding:10px 5px;width:30px;background-color:var(--theme-primary-color);color:var(--theme-primary-color-default-contrast);border-radius:50%;font-size:var(--theme-subheading-2-font-size);text-align:center;height:20px;background-size:cover}.adf-comment-list .adf-comment-user-name{width:100%;padding:2px 10px;font-weight:600;font-size:var(--theme-body-1-font-size)}.adf-comment-list .adf-comment-message-time{margin-top:5px;width:100%;padding:2px 10px;font-size:unset;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-people-img{border-radius:90%;width:40px;height:40px;vertical-align:middle}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i3.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: TimeAgoPipe, name: "adfTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
43
42
  }
44
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentListComponent, decorators: [{
45
44
  type: Component,
46
- args: [{ selector: 'adf-comment-list', standalone: true, imports: [CommonModule, MatListModule, MatLineModule, TimeAgoPipe, TranslateModule], encapsulation: ViewEncapsulation.None, template: " <mat-list class=\"adf-comment-list\">\n <mat-list-item *ngFor=\"let comment of comments\"\n (click)=\"selectComment(comment)\"\n class=\"adf-comment-list-item\">\n <div class=\"adf-comment-img-container\">\n <div *ngIf=\"!comment.hasAvatarPicture\" class=\"adf-comment-user-icon\">{{ comment.userInitials }}</div>\n <img *ngIf=\"comment.hasAvatarPicture\" class=\"adf-people-img\"\n [alt]=\"'COMMENTS.PROFILE_IMAGE' | translate\"\n [src]=\"getUserImage(comment.createdBy.id.toString())\" />\n </div>\n <div class=\"adf-comment-contents\">\n <div matLine class=\"adf-comment-user-name\">{{ comment.userDisplayName }}</div>\n <div matLine class=\"adf-comment-message\">{{ comment.message }}</div>\n <div matLine class=\"adf-comment-message-time\">{{ comment.created | adfTimeAgo }}</div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: [".adf-comment-list{padding-bottom:0}.adf-comment-list .adf-comment-img-container{width:40px;height:100%;display:flex;align-self:flex-start;padding-top:18px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container){white-space:initial;display:table-row-group;padding-top:12px;overflow:hidden;height:100%;background-position:center}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents{width:100%;padding-top:12px;padding-left:5px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents .adf-comment-message{width:100%;padding:2px 10px;white-space:pre-line;font-size:var(--theme-body-1-font-size);letter-spacing:-.2px;line-height:1.43;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-comment-user-icon{padding:10px 5px;width:30px;background-color:var(--theme-primary-color);color:var(--theme-primary-color-default-contrast);border-radius:50%;font-size:var(--theme-subheading-2-font-size);text-align:center;height:20px;background-size:cover}.adf-comment-list .adf-comment-user-name{width:100%;padding:2px 10px;font-weight:600;font-size:var(--theme-body-1-font-size)}.adf-comment-list .adf-comment-message-time{margin-top:5px;width:100%;padding:2px 10px;font-size:unset;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-people-img{border-radius:90%;width:40px;height:40px;vertical-align:middle}\n"] }]
45
+ args: [{ selector: 'adf-comment-list', standalone: true, imports: [CommonModule, MatListModule, MatLineModule, TimeAgoPipe, TranslatePipe], encapsulation: ViewEncapsulation.None, template: " <mat-list class=\"adf-comment-list\">\n <mat-list-item *ngFor=\"let comment of comments\"\n (click)=\"selectComment(comment)\"\n class=\"adf-comment-list-item\">\n <div class=\"adf-comment-img-container\">\n <div *ngIf=\"!comment.hasAvatarPicture\" class=\"adf-comment-user-icon\">{{ comment.userInitials }}</div>\n <img *ngIf=\"comment.hasAvatarPicture\" class=\"adf-people-img\"\n [alt]=\"'COMMENTS.PROFILE_IMAGE' | translate\"\n [src]=\"getUserImage(comment.createdBy.id.toString())\" />\n </div>\n <div class=\"adf-comment-contents\">\n <div matLine class=\"adf-comment-user-name\">{{ comment.userDisplayName }}</div>\n <div matLine class=\"adf-comment-message\">{{ comment.message }}</div>\n <div matLine class=\"adf-comment-message-time\">{{ comment.created | adfTimeAgo }}</div>\n </div>\n </mat-list-item>\n</mat-list>\n", styles: [".adf-comment-list{padding-bottom:0}.adf-comment-list .adf-comment-img-container{width:40px;height:100%;display:flex;align-self:flex-start;padding-top:18px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container){white-space:initial;display:table-row-group;padding-top:12px;overflow:hidden;height:100%;background-position:center}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents{width:100%;padding-top:12px;padding-left:5px}.adf-comment-list .adf-comment-list-item:has(.adf-comment-img-container) .adf-comment-contents .adf-comment-message{width:100%;padding:2px 10px;white-space:pre-line;font-size:var(--theme-body-1-font-size);letter-spacing:-.2px;line-height:1.43;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-comment-user-icon{padding:10px 5px;width:30px;background-color:var(--theme-primary-color);color:var(--theme-primary-color-default-contrast);border-radius:50%;font-size:var(--theme-subheading-2-font-size);text-align:center;height:20px;background-size:cover}.adf-comment-list .adf-comment-user-name{width:100%;padding:2px 10px;font-weight:600;font-size:var(--theme-body-1-font-size)}.adf-comment-list .adf-comment-message-time{margin-top:5px;width:100%;padding:2px 10px;font-size:unset;color:var(--adf-theme-foreground-text-color)}.adf-comment-list .adf-people-img{border-radius:90%;width:40px;height:40px;vertical-align:middle}\n"] }]
47
46
  }], propDecorators: { comments: [{
48
47
  type: Input,
49
48
  args: [{ required: true }]
50
49
  }], clickRow: [{
51
50
  type: Output
52
51
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY29tbWVudHMvY29tbWVudC1saXN0L2NvbW1lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1lbnRzL2NvbW1lbnQtbGlzdC9jb21tZW50LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQVV0RCxNQUFNLE9BQU8sb0JBQW9CO0lBUmpDO1FBYUksK0RBQStEO1FBRS9ELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVwQyxvQkFBZSxHQUFHLE1BQU0sQ0FBa0Isb0JBQW9CLENBQUMsQ0FBQztLQVMzRTtJQVBHLGFBQWEsQ0FBQyxPQUFxQjtRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQWpCUSxvQkFBb0I7bUdBQXBCLG9CQUFvQixpSkNuQ2pDLDA5QkFpQkEsdzhDRGFjLFlBQVksK1BBQUUsYUFBYSx1UkFBRSxhQUFhLHNHQUFFLFdBQVcsa0RBQUUsZUFBZTs7NEZBS3pFLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxpQkFHcEUsaUJBQWlCLENBQUMsSUFBSTs4QkFLckMsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFLekIsUUFBUTtzQkFEUCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb21tZW50cy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBREZfQ09NTUVOVFNfU0VSVklDRSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29tbWVudHMudG9rZW4nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdExpbmVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IFRpbWVBZ29QaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNvbW1lbnQtbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRMaXN0TW9kdWxlLCBNYXRMaW5lTW9kdWxlLCBUaW1lQWdvUGlwZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRMaXN0Q29tcG9uZW50IHtcbiAgICAvKiogVGhlIGNvbW1lbnRzIGRhdGEgdXNlZCB0byBwb3B1bGF0ZSB0aGUgbGlzdC4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGNvbW1lbnRzOiBDb21tZW50TW9kZWxbXTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIG9uZSBvZiB0aGUgY29tbWVudCByb3dzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsaWNrUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TW9kZWw+KCk7XG5cbiAgICBwcml2YXRlIGNvbW1lbnRzU2VydmljZSA9IGluamVjdDxDb21tZW50c1NlcnZpY2U+KEFERl9DT01NRU5UU19TRVJWSUNFKTtcblxuICAgIHNlbGVjdENvbW1lbnQoY29tbWVudDogQ29tbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xpY2tSb3cuZW1pdChjb21tZW50KTtcbiAgICB9XG5cbiAgICBnZXRVc2VySW1hZ2UodXNlcklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21tZW50c1NlcnZpY2UuZ2V0VXNlckltYWdlKHVzZXJJZCk7XG4gICAgfVxufVxuIiwiIDxtYXQtbGlzdCBjbGFzcz1cImFkZi1jb21tZW50LWxpc3RcIj5cbiAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgY29tbWVudCBvZiBjb21tZW50c1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q29tbWVudChjb21tZW50KVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1jb21tZW50LWxpc3QtaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWNvbW1lbnQtaW1nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb21tZW50Lmhhc0F2YXRhclBpY3R1cmVcIiBjbGFzcz1cImFkZi1jb21tZW50LXVzZXItaWNvblwiPnt7IGNvbW1lbnQudXNlckluaXRpYWxzIH19PC9kaXY+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiY29tbWVudC5oYXNBdmF0YXJQaWN0dXJlXCIgY2xhc3M9XCJhZGYtcGVvcGxlLWltZ1wiXG4gICAgICAgICAgICAgICAgIFthbHRdPVwiJ0NPTU1FTlRTLlBST0ZJTEVfSU1BR0UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRVc2VySW1hZ2UoY29tbWVudC5jcmVhdGVkQnkuaWQudG9TdHJpbmcoKSlcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1jb21tZW50LWNvbnRlbnRzXCI+XG4gICAgICAgICAgICA8ZGl2IG1hdExpbmUgY2xhc3M9XCJhZGYtY29tbWVudC11c2VyLW5hbWVcIj57eyBjb21tZW50LnVzZXJEaXNwbGF5TmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBtYXRMaW5lIGNsYXNzPVwiYWRmLWNvbW1lbnQtbWVzc2FnZVwiPnt7IGNvbW1lbnQubWVzc2FnZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBtYXRMaW5lIGNsYXNzPVwiYWRmLWNvbW1lbnQtbWVzc2FnZS10aW1lXCI+e3sgY29tbWVudC5jcmVhdGVkIHwgYWRmVGltZUFnbyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG48L21hdC1saXN0PlxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvY29tbWVudHMvY29tbWVudC1saXN0L2NvbW1lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1lbnRzL2NvbW1lbnQtbGlzdC9jb21tZW50LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBVXBELE1BQU0sT0FBTyxvQkFBb0I7SUFSakM7UUFhSSwrREFBK0Q7UUFFL0QsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRXBDLG9CQUFlLEdBQUcsTUFBTSxDQUFrQixvQkFBb0IsQ0FBQyxDQUFDO0tBUzNFO0lBUEcsYUFBYSxDQUFDLE9BQXFCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBakJRLG9CQUFvQjttR0FBcEIsb0JBQW9CLGlKQ25DakMsMDlCQWlCQSx3OENEYWMsWUFBWSwrUEFBRSxhQUFhLHVSQUFFLGFBQWEsc0dBQUUsV0FBVyw4Q0FBRSxhQUFhOzs0RkFLdkUsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNJLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLGlCQUdsRSxpQkFBaUIsQ0FBQyxJQUFJOzhCQUtyQyxRQUFRO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUt6QixRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tZW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbW1lbnRzLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFERl9DT01NRU5UU19TRVJWSUNFIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb21tZW50cy50b2tlbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0TGluZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVGltZUFnb1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNvbW1lbnQtbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRMaXN0TW9kdWxlLCBNYXRMaW5lTW9kdWxlLCBUaW1lQWdvUGlwZSwgVHJhbnNsYXRlUGlwZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29tbWVudC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50TGlzdENvbXBvbmVudCB7XG4gICAgLyoqIFRoZSBjb21tZW50cyBkYXRhIHVzZWQgdG8gcG9wdWxhdGUgdGhlIGxpc3QuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBjb21tZW50czogQ29tbWVudE1vZGVsW107XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiBvbmUgb2YgdGhlIGNvbW1lbnQgcm93cy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbGlja1JvdyA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudE1vZGVsPigpO1xuXG4gICAgcHJpdmF0ZSBjb21tZW50c1NlcnZpY2UgPSBpbmplY3Q8Q29tbWVudHNTZXJ2aWNlPihBREZfQ09NTUVOVFNfU0VSVklDRSk7XG5cbiAgICBzZWxlY3RDb21tZW50KGNvbW1lbnQ6IENvbW1lbnRNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsaWNrUm93LmVtaXQoY29tbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0VXNlckltYWdlKHVzZXJJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldFVzZXJJbWFnZSh1c2VySWQpO1xuICAgIH1cbn1cbiIsIiA8bWF0LWxpc3QgY2xhc3M9XCJhZGYtY29tbWVudC1saXN0XCI+XG4gICAgPG1hdC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IGNvbW1lbnQgb2YgY29tbWVudHNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENvbW1lbnQoY29tbWVudClcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtY29tbWVudC1saXN0LWl0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1jb21tZW50LWltZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhY29tbWVudC5oYXNBdmF0YXJQaWN0dXJlXCIgY2xhc3M9XCJhZGYtY29tbWVudC11c2VyLWljb25cIj57eyBjb21tZW50LnVzZXJJbml0aWFscyB9fTwvZGl2PlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImNvbW1lbnQuaGFzQXZhdGFyUGljdHVyZVwiIGNsYXNzPVwiYWRmLXBlb3BsZS1pbWdcIlxuICAgICAgICAgICAgICAgICBbYWx0XT1cIidDT01NRU5UUy5QUk9GSUxFX0lNQUdFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0VXNlckltYWdlKGNvbW1lbnQuY3JlYXRlZEJ5LmlkLnRvU3RyaW5nKCkpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29tbWVudC1jb250ZW50c1wiPlxuICAgICAgICAgICAgPGRpdiBtYXRMaW5lIGNsYXNzPVwiYWRmLWNvbW1lbnQtdXNlci1uYW1lXCI+e3sgY29tbWVudC51c2VyRGlzcGxheU5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbWF0TGluZSBjbGFzcz1cImFkZi1jb21tZW50LW1lc3NhZ2VcIj57eyBjb21tZW50Lm1lc3NhZ2UgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbWF0TGluZSBjbGFzcz1cImFkZi1jb21tZW50LW1lc3NhZ2UtdGltZVwiPnt7IGNvbW1lbnQuY3JlYXRlZCB8IGFkZlRpbWVBZ28gfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuPC9tYXQtbGlzdD5cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
2
2
  import { ADF_COMMENTS_SERVICE } from './interfaces/comments.token';
3
3
  import { CommonModule } from '@angular/common';
4
- import { TranslateModule } from '@ngx-translate/core';
4
+ import { TranslatePipe } from '@ngx-translate/core';
5
5
  import { MatFormFieldModule } from '@angular/material/form-field';
6
6
  import { MatInputModule } from '@angular/material/input';
7
7
  import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -9,11 +9,10 @@ import { MatButtonModule } from '@angular/material/button';
9
9
  import { CommentListComponent } from './comment-list';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/common";
12
- import * as i2 from "@ngx-translate/core";
13
- import * as i3 from "@angular/material/form-field";
14
- import * as i4 from "@angular/material/input";
15
- import * as i5 from "@angular/forms";
16
- import * as i6 from "@angular/material/button";
12
+ import * as i2 from "@angular/material/form-field";
13
+ import * as i3 from "@angular/material/input";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "@angular/material/button";
17
16
  export class CommentsComponent {
18
17
  constructor() {
19
18
  /** Are the comments read only? */
@@ -104,13 +103,13 @@ export class CommentsComponent {
104
103
  return commentControl.value?.trim() ? null : { emptyComment: true };
105
104
  }
106
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsComponent, isStandalone: true, selector: "adf-comments", inputs: { id: "id", readOnly: "readOnly" }, outputs: { error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-comments-container\">\n <div id=\"comment-header\" class=\"adf-comments-header adf-comments-divider\">\n {{'COMMENTS.HEADER' | translate: { count: comments?.length } }}\n </div>\n <div *ngIf=\"!readOnly\" class=\"adf-comments-input-container adf-comments-divider\">\n <mat-form-field>\n <textarea\n matInput\n id=\"comment-input\"\n class=\"adf-text-text-area\"\n [placeholder]='(\"COMMENTS.ADD\" | translate) + \"*\"'\n [attr.aria-label]=\"'COMMENTS.ADD' | translate\"\n [formControl]=\"commentControl\"\n (keydown.escape)=\"clearMessage($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"commentControl.invalid && commentControl.touched\">{{ 'COMMENTS.EMPTY_ERROR' | translate }}</mat-error>\n </mat-form-field>\n\n <div class=\"adf-comments-input-actions\">\n <button\n mat-button\n data-automation-id=\"comments-input-add\"\n color=\"primary\"\n (click)=\"addComment()\"\n [disabled]=\"commentControl.invalid\"\n >\n {{ 'COMMENTS.ADD' | translate }}\n </button>\n </div>\n </div>\n\n <adf-comment-list *ngIf=\"comments?.length > 0\" [comments]=\"comments\" />\n</div>\n", styles: ["adf-comments .adf-comments-container{height:100%;width:100%;overflow:auto}adf-comments .adf-comments-container .adf-comments-input-container{width:100%;padding-bottom:8px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field{width:100%}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element::placeholder,adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element:focus::placeholder{color:var(--theme-warn-color)}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:2px;padding-top:25px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-input-element:focus::placeholder{color:var(--theme-primary-color);-webkit-font-smoothing:subpixel-antialiased}adf-comments .adf-comments-container .adf-comments-input-container textarea{resize:vertical;height:20px}adf-comments .adf-comments-divider{border-bottom:1px solid var(--adf-theme-foreground-divider-color)}adf-comments .adf-comments-header{padding:10px 0;font-size:var(--theme-body-1-font-size);font-weight:600}adf-comments .adf-comments-input-actions{padding-top:16px;display:flex;justify-content:flex-end}adf-comments .mat-mdc-list-item-unscoped-content{display:flex;padding:0 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CommentListComponent, selector: "adf-comment-list", inputs: ["comments"], outputs: ["clickRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsComponent, isStandalone: true, selector: "adf-comments", inputs: { id: "id", readOnly: "readOnly" }, outputs: { error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-comments-container\">\n <div id=\"comment-header\" class=\"adf-comments-header adf-comments-divider\">\n {{'COMMENTS.HEADER' | translate: { count: comments?.length } }}\n </div>\n <div *ngIf=\"!readOnly\" class=\"adf-comments-input-container adf-comments-divider\">\n <mat-form-field>\n <textarea\n matInput\n id=\"comment-input\"\n class=\"adf-text-text-area\"\n [placeholder]='(\"COMMENTS.ADD\" | translate) + \"*\"'\n [attr.aria-label]=\"'COMMENTS.ADD' | translate\"\n [formControl]=\"commentControl\"\n (keydown.escape)=\"clearMessage($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"commentControl.invalid && commentControl.touched\">{{ 'COMMENTS.EMPTY_ERROR' | translate }}</mat-error>\n </mat-form-field>\n\n <div class=\"adf-comments-input-actions\">\n <button\n mat-button\n data-automation-id=\"comments-input-add\"\n color=\"primary\"\n (click)=\"addComment()\"\n [disabled]=\"commentControl.invalid\"\n >\n {{ 'COMMENTS.ADD' | translate }}\n </button>\n </div>\n </div>\n\n <adf-comment-list *ngIf=\"comments?.length > 0\" [comments]=\"comments\" />\n</div>\n", styles: ["adf-comments .adf-comments-container{height:100%;width:100%;overflow:auto}adf-comments .adf-comments-container .adf-comments-input-container{width:100%;padding-bottom:8px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field{width:100%}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element::placeholder,adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element:focus::placeholder{color:var(--theme-warn-color)}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:2px;padding-top:25px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-input-element:focus::placeholder{color:var(--theme-primary-color);-webkit-font-smoothing:subpixel-antialiased}adf-comments .adf-comments-container .adf-comments-input-container textarea{resize:vertical;height:20px}adf-comments .adf-comments-divider{border-bottom:1px solid var(--adf-theme-foreground-divider-color)}adf-comments .adf-comments-header{padding:10px 0;font-size:var(--theme-body-1-font-size);font-weight:600}adf-comments .adf-comments-input-actions{padding-top:16px;display:flex;justify-content:flex-end}adf-comments .mat-mdc-list-item-unscoped-content{display:flex;padding:0 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CommentListComponent, selector: "adf-comment-list", inputs: ["comments"], outputs: ["clickRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
108
107
  }
109
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsComponent, decorators: [{
110
109
  type: Component,
111
110
  args: [{ selector: 'adf-comments', standalone: true, imports: [
112
111
  CommonModule,
113
- TranslateModule,
112
+ TranslatePipe,
114
113
  MatFormFieldModule,
115
114
  MatInputModule,
116
115
  FormsModule,
@@ -125,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
125
124
  }], error: [{
126
125
  type: Output
127
126
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQW1CdEQsTUFBTSxPQUFPLGlCQUFpQjtJQWpCOUI7UUFzQkksa0NBQWtDO1FBRWxDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsc0VBQXNFO1FBRXRFLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWhDLGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFcEIsb0JBQWUsR0FBRyxNQUFN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QUFpQjtrQkFqQjdCLFNBQVM7K0JBQ0ksY0FBYyxjQUNaLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG1CQUFtQjtxQkFDdEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs4QkFLckMsRUFBRTtzQkFERCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbW1lbnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9jb21tZW50Lm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFERl9DT01NRU5UU19TRVJWSUNFIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbW1lbnRzLnRva2VuJztcbmltcG9ydCB7IENvbW1lbnRzU2VydmljZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb21tZW50cy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IENvbW1lbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWxpc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jb21tZW50cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBDb21tZW50TGlzdENvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50cy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKiBUaGUgbnVtZXJpYyBJRCBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICAvKiogQXJlIHRoZSBjb21tZW50cyByZWFkIG9ubHk/ICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZGlzcGxheWluZy9hZGRpbmcgYSBjb21tZW50LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjb21tZW50czogQ29tbWVudE1vZGVsW10gPSBbXTtcbiAgICBiZWluZ0FkZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGNvbW1lbnRzU2VydmljZSA9IGluamVjdDxDb21tZW50c1NlcnZpY2U+KEFERl9DT01NRU5UU19TRVJWSUNFKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbW1lbnRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbdGhpcy52YWxpZGF0ZUVtcHR5Q29tbWVudF0pO1xuXG4gICAgZ2V0IGNvbW1lbnRDb250cm9sKCk6IEZvcm1Db250cm9sPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tbWVudENvbnRyb2w7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gbnVsbDtcblxuICAgICAgICB0aGlzLmlkID0gY2hhbmdlc1snaWQnXSA/IGNoYW5nZXNbJ2lkJ10uY3VycmVudFZhbHVlIDogbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQ29tbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb21tZW50cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZENvbW1lbnRzKCkge1xuICAgICAgICB0aGlzLnJlc2V0Q29tbWVudHMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzSWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb21tZW50c1NlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoY29tbWVudHMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNBcnJheUluc3RhbmNlKGNvbW1lbnRzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29tbWVudHMgPSB0aGlzLnNvcnRlZENvbW1lbnRzKGNvbW1lbnRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW1lbnRzLnB1c2goLi4uY29tbWVudHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZENvbW1lbnQoKSB7XG4gICAgICAgIGlmICghdGhpcy5jYW5BZGRDb21tZW50KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmVpbmdBZGRlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5jb21tZW50c1NlcnZpY2UuYWRkKHRoaXMuaWQsIHRoaXMuY29tbWVudENvbnRyb2wudmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRUb0NvbW1lbnRzKHJlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50Q29udHJvbC5yZXNldCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJlaW5nQWRkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2xlYXJNZXNzYWdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5jb21tZW50Q29udHJvbC5yZXNldCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVG9Db21tZW50cyhjb21tZW50OiBDb21tZW50TW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21tZW50cy51bnNoaWZ0KGNvbW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FuQWRkQ29tbWVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzSWQoKSAmJiB0aGlzLmNvbW1lbnRDb250cm9sLnZhbHVlPy50cmltKCkgJiYgIXRoaXMuYmVpbmdBZGRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0lkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBcnJheUluc3RhbmNlKGVudGl0eTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBlbnRpdHkgJiYgZW50aXR5IGluc3RhbmNlb2YgQXJyYXk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0ZWRDb21tZW50cyhjb21tZW50czogQ29tbWVudE1vZGVsW10pOiBDb21tZW50TW9kZWxbXSB7XG4gICAgICAgIHJldHVybiBjb21tZW50cy5zb3J0KChjb21tZW50MSwgY29tbWVudDIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoY29tbWVudDEuY3JlYXRlZCk7XG4gICAgICAgICAgICBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKGNvbW1lbnQyLmNyZWF0ZWQpO1xuXG4gICAgICAgICAgICByZXR1cm4gZGF0ZTEgPiBkYXRlMiA/IC0xIDogZGF0ZTEgPCBkYXRlMiA/IDEgOiAwO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0Q29tbWVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tbWVudHMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRW1wdHlDb21tZW50KGNvbW1lbnRDb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmc+KTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgICAgIHJldHVybiBjb21tZW50Q29udHJvbC52YWx1ZT8udHJpbSgpID8gbnVsbCA6IHsgZW1wdHlDb21tZW50OiB0cnVlIH07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1jb21tZW50cy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGlkPVwiY29tbWVudC1oZWFkZXJcIiBjbGFzcz1cImFkZi1jb21tZW50cy1oZWFkZXIgYWRmLWNvbW1lbnRzLWRpdmlkZXJcIj5cbiAgICAgICAge3snQ09NTUVOVFMuSEVBREVSJyB8IHRyYW5zbGF0ZTogeyBjb3VudDogY29tbWVudHM/Lmxlbmd0aCB9IH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFyZWFkT25seVwiIGNsYXNzPVwiYWRmLWNvbW1lbnRzLWlucHV0LWNvbnRhaW5lciBhZGYtY29tbWVudHMtZGl2aWRlclwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBpZD1cImNvbW1lbnQtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi10ZXh0LXRleHQtYXJlYVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09JyhcIkNPTU1FTlRTLkFERFwiIHwgdHJhbnNsYXRlKSArIFwiKlwiJ1xuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDT01NRU5UUy5BREQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbW1lbnRDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cImNsZWFyTWVzc2FnZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29tbWVudENvbnRyb2wuaW52YWxpZCAmJiBjb21tZW50Q29udHJvbC50b3VjaGVkXCI+e3sgJ0NPTU1FTlRTLkVNUFRZX0VSUk9SJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1jb21tZW50cy1pbnB1dC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbW1lbnRzLWlucHV0LWFkZFwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRDb21tZW50KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29tbWVudENvbnRyb2wuaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQ09NTUVOVFMuQUREJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8YWRmLWNvbW1lbnQtbGlzdCAqbmdJZj1cImNvbW1lbnRzPy5sZW5ndGggPiAwXCIgW2NvbW1lbnRzXT1cImNvbW1lbnRzXCIgLz5cbjwvZGl2PlxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBbUJ0RCxNQUFNLE9BQU8saUJBQWlCO0lBakI5QjtRQXNCSSxrQ0FBa0M7UUFFbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixzRUFBc0U7UUFFdEUsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEMsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFDOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVwQixvQkFBZSxHQUFHLE1BQU0s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QWlCO2tCQWpCN0IsU0FBUzsrQkFDSSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3FCQUN0QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUtyQyxFQUFFO3NCQURELEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tbWVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQURGX0NPTU1FTlRTX1NFUlZJQ0UgfSBmcm9tICcuL2ludGVyZmFjZXMvY29tbWVudHMudG9rZW4nO1xuaW1wb3J0IHsgQ29tbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbW1lbnRzLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IENvbW1lbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWxpc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jb21tZW50cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ29tbWVudExpc3RDb21wb25lbnQsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29tbWVudHMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKiogVGhlIG51bWVyaWMgSUQgb2YgdGhlIHRhc2suICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqIEFyZSB0aGUgY29tbWVudHMgcmVhZCBvbmx5PyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGRpc3BsYXlpbmcvYWRkaW5nIGEgY29tbWVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29tbWVudHM6IENvbW1lbnRNb2RlbFtdID0gW107XG4gICAgYmVpbmdBZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBjb21tZW50c1NlcnZpY2UgPSBpbmplY3Q8Q29tbWVudHNTZXJ2aWNlPihBREZfQ09NTUVOVFNfU0VSVklDRSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21tZW50Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW3RoaXMudmFsaWRhdGVFbXB0eUNvbW1lbnRdKTtcblxuICAgIGdldCBjb21tZW50Q29udHJvbCgpOiBGb3JtQ29udHJvbDxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbW1lbnRDb250cm9sO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pZCA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5pZCA9IGNoYW5nZXNbJ2lkJ10gPyBjaGFuZ2VzWydpZCddLmN1cnJlbnRWYWx1ZSA6IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZENvbW1lbnRzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Q29tbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRDb21tZW50cygpIHtcbiAgICAgICAgdGhpcy5yZXNldENvbW1lbnRzKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0lkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKGNvbW1lbnRzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXlJbnN0YW5jZShjb21tZW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbW1lbnRzID0gdGhpcy5zb3J0ZWRDb21tZW50cyhjb21tZW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50cy5wdXNoKC4uLmNvbW1lbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRDb21tZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FuQWRkQ29tbWVudCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJlaW5nQWRkZWQgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmFkZCh0aGlzLmlkLCB0aGlzLmNvbW1lbnRDb250cm9sLnZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9Db21tZW50cyhyZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbWVudENvbnRyb2wucmVzZXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWluZ0FkZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsZWFyTWVzc2FnZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY29tbWVudENvbnRyb2wucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRvQ29tbWVudHMoY29tbWVudDogQ29tbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkFkZENvbW1lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0lkKCkgJiYgdGhpcy5jb21tZW50Q29udHJvbC52YWx1ZT8udHJpbSgpICYmICF0aGlzLmJlaW5nQWRkZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNJZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQXJyYXlJbnN0YW5jZShlbnRpdHk6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZW50aXR5ICYmIGVudGl0eSBpbnN0YW5jZW9mIEFycmF5O1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydGVkQ29tbWVudHMoY29tbWVudHM6IENvbW1lbnRNb2RlbFtdKTogQ29tbWVudE1vZGVsW10ge1xuICAgICAgICByZXR1cm4gY29tbWVudHMuc29ydCgoY29tbWVudDEsIGNvbW1lbnQyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRlMSA9IG5ldyBEYXRlKGNvbW1lbnQxLmNyZWF0ZWQpO1xuICAgICAgICAgICAgY29uc3QgZGF0ZTIgPSBuZXcgRGF0ZShjb21tZW50Mi5jcmVhdGVkKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRhdGUxID4gZGF0ZTIgPyAtMSA6IGRhdGUxIDwgZGF0ZTIgPyAxIDogMDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbW1lbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbW1lbnRzID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUVtcHR5Q29tbWVudChjb21tZW50Q29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nPik6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgICAgICByZXR1cm4gY29tbWVudENvbnRyb2wudmFsdWU/LnRyaW0oKSA/IG51bGwgOiB7IGVtcHR5Q29tbWVudDogdHJ1ZSB9O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtY29tbWVudHMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBpZD1cImNvbW1lbnQtaGVhZGVyXCIgY2xhc3M9XCJhZGYtY29tbWVudHMtaGVhZGVyIGFkZi1jb21tZW50cy1kaXZpZGVyXCI+XG4gICAgICAgIHt7J0NPTU1FTlRTLkhFQURFUicgfCB0cmFuc2xhdGU6IHsgY291bnQ6IGNvbW1lbnRzPy5sZW5ndGggfSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhcmVhZE9ubHlcIiBjbGFzcz1cImFkZi1jb21tZW50cy1pbnB1dC1jb250YWluZXIgYWRmLWNvbW1lbnRzLWRpdmlkZXJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21tZW50LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdGV4dC10ZXh0LWFyZWFcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPScoXCJDT01NRU5UUy5BRERcIiB8IHRyYW5zbGF0ZSkgKyBcIipcIidcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09NTUVOVFMuQUREJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb21tZW50Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbGVhck1lc3NhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRDb250cm9sLmludmFsaWQgJiYgY29tbWVudENvbnRyb2wudG91Y2hlZFwiPnt7ICdDT01NRU5UUy5FTVBUWV9FUlJPUicgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29tbWVudHMtaW5wdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21tZW50cy1pbnB1dC1hZGRcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ29tbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbW1lbnRDb250cm9sLmludmFsaWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0NPTU1FTlRTLkFERCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGFkZi1jb21tZW50LWxpc3QgKm5nSWY9XCJjb21tZW50cz8ubGVuZ3RoID4gMFwiIFtjb21tZW50c109XCJjb21tZW50c1wiIC8+XG48L2Rpdj5cbiJdfQ==