@tilde-nlp/ngx-translate 2.1.13 → 2.1.15

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 (25) hide show
  1. package/esm2020/lib/factories/file-api-service.factory.mjs +4 -4
  2. package/esm2020/lib/factories/text-api-service.factory.mjs +2 -2
  3. package/esm2020/lib/i18n/en.mjs +3 -2
  4. package/esm2020/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.mjs +1 -1
  5. package/esm2020/lib/modules/tld-document/services/api-v2/file-api-v2.service.mjs +9 -4
  6. package/esm2020/lib/modules/tld-term/services/models/combined-collection-tooltip-key.enum.mjs +2 -1
  7. package/esm2020/lib/modules/tld-term/services/models/combined-collection.model.mjs +4 -2
  8. package/esm2020/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.mjs +3 -3
  9. package/esm2020/lib/modules/tld-text/models/translate-paragraph-params.model.mjs +1 -1
  10. package/esm2020/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.mjs +9 -4
  11. package/fesm2015/tilde-nlp-ngx-translate.mjs +28 -14
  12. package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
  13. package/fesm2020/tilde-nlp-ngx-translate.mjs +26 -14
  14. package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
  15. package/lib/factories/file-api-service.factory.d.ts +1 -1
  16. package/lib/i18n/en.d.ts +1 -0
  17. package/lib/modules/tld-document/services/api-v2/file-api-v2.service.d.ts +3 -1
  18. package/lib/modules/tld-term/services/models/combined-collection-tooltip-key.enum.d.ts +2 -1
  19. package/lib/modules/tld-term/services/models/combined-collection.model.d.ts +2 -0
  20. package/lib/modules/tld-text/models/translate-paragraph-params.model.d.ts +1 -0
  21. package/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.d.ts +3 -1
  22. package/package.json +1 -1
  23. package/src/assets/webcomponent/tld-translate.js +1 -1
  24. package/tilde-nlp-ngx-translate-2.1.15.tgz +0 -0
  25. package/tilde-nlp-ngx-translate-2.1.13.tgz +0 -0
@@ -92,9 +92,9 @@ export class TldTermCollectionListComponent {
92
92
  }
93
93
  }
94
94
  TldTermCollectionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermCollectionListComponent, deps: [{ token: i1.TerminologyService }, { token: i2.TldTranslateConfigService }, { token: i3.TldSystemService }, { token: i4.TermApiService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
95
- TldTermCollectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermCollectionListComponent, selector: "tld-term-collection-list", ngImport: i0, template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n\r\n <mat-spinner [matTooltip]=\"tooltipLocalizationKey + 'IMPORTING' | translate\" color=\"accent\" diameter=\"20\" *ngIf=\"collection.isImporting\"></mat-spinner>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i11.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i11.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i14.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i15.DateAgoPipe, name: "dateAgo" }] });
95
+ TldTermCollectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermCollectionListComponent, selector: "tld-term-collection-list", ngImport: i0, template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i11.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i11.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i12.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i12.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i12.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i13.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i14.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i15.DateAgoPipe, name: "dateAgo" }] });
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermCollectionListComponent, decorators: [{
97
97
  type: Component,
98
- args: [{ selector: 'tld-term-collection-list', template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n\r\n <mat-spinner [matTooltip]=\"tooltipLocalizationKey + 'IMPORTING' | translate\" color=\"accent\" diameter=\"20\" *ngIf=\"collection.isImporting\"></mat-spinner>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}\n"] }]
98
+ args: [{ selector: 'tld-term-collection-list', template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"] }]
99
99
  }], ctorParameters: function () { return [{ type: i1.TerminologyService }, { type: i2.TldTranslateConfigService }, { type: i3.TldSystemService }, { type: i4.TermApiService }, { type: i5.TranslateService }]; } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0L3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWdCLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLDhCQUE4QjtJQXlDekMsWUFBNkIsa0JBQXNDLEVBQ2hELE1BQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGNBQThCLEVBQzlCLGdCQUFrQztRQUp4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEI1QyxvQkFBZSxHQUFHLG1CQUFtQixDQUFDO1FBQ3RDLDJCQUFzQixHQUFHLDRCQUE0QixDQUFDO1FBQ3RELGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBVXRCLDBCQUFxQixHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQXFEbEQsNEJB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QUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3RGLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3hILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQzFILENBQUM7OzJIQTFGVSw4QkFBOEI7K0dBQTlCLDhCQUE4QixnRUNmM0MsZ3VIQWtFQTsyRkRuRGEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtdG9vbHRpcC9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWxzL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBUZXJtQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Rlcm0tYXBpL3Rlcm0tYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZXJtaW5vbG9neVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZXJtaW5vbG9neS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRlcm0tY29sbGVjdGlvbi1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVGVybUNvbGxlY3Rpb25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGdldCBzZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIHNldCBzZWxlY3RlZCh2YWw6IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc2VsZWN0ZWQgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBjb2xsZWN0aW9uczogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb25bXT47XHJcblxyXG4gIGdldCBoYXNBbnlDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5oYXNBbnlDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBpc1JlZnJlc2hpbmdDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1pbm9sb2d5U2VydmljZT8uaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRWRpdFBlcm1pc3Npb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmhhc0VkaXRQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIGdldCBhcHBOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwTmFtZTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGxvY2FsaXphdGlvbktleSA9IFwiVEVSTV9DT0xMRUNUSU9OUy5cIjtcclxuICByZWFkb25seSB0b29sdGlwTG9jYWxpemF0aW9uS2V5ID0gXCJURVJNX0NPTExFQ1RJT05TLlRPT0xUSVBTLlwiO1xyXG4gIHJlYWRvbmx5IHJlYWR5U3RhdHVzID0gXCJSZWFkeVwiO1xyXG4gIHByaXZhdGUgc291cmNlTGFuZ3VhZ2VDb2RlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSB0YXJnZXRMYW5ndWFnZUNvZGU6IHN0cmluZztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VUcmFuc2xhdGlvbnM6IGFueTtcclxuICBwcml2YXRlIGxhbmd1YWdlc1RyYW5zbGF0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBzb3VyY2VMYW5nVHJhbnNsYXRlZDogc3RyaW5nO1xyXG4gIHRhcmdldExhbmdUcmFuc2xhdGVkOiBzdHJpbmc7XHJcblxyXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25FcnJvclN0YXR1cyA9IE10Q29sbGVjdGlvblN0YXR1cy5FUlJPUjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0ZXJtaW5vbG9neVNlcnZpY2U6IFRlcm1pbm9sb2d5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0bGRTeXN0ZW06IFRsZFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1BcGlTZXJ2aWNlOiBUZXJtQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25zID0gdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuZGF0YVVwZGF0ZSgpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG5cclxuICAgICAgICAgIHJldHVybiBbLi4uZGF0YV0uc29ydCh0aGlzLmNvbGxlY3Rpb25zU29ydEZ1bmN0aW9uKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5sYW5ndWFnZXNUcmFuc2xhdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKFwiTEFOR1VBR0VTXCIpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5sYW5ndWFnZVRyYW5zbGF0aW9ucyA9IHJlc3BvbnNlO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVMYW5ndWFnZVRyYW5zbGF0aW9ucygpO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5zdWJzY3JpYmUoKGFjdGl2ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZSA9IGFjdGl2ZS5zb3VyY2VMYW5nLmxhbmc7XHJcbiAgICAgIHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlID0gYWN0aXZlLnRhcmdldExhbmcubGFuZztcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VUcmFuc2xhdGlvbnMoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmxhbmd1YWdlc1RyYW5zbGF0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdExpbmsoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQXBpU2VydmljZS5nZXRFZGl0TGluayhjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uPy5pZCwgdGhpcy5zb3VyY2VMYW5ndWFnZUNvZGUsIHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlKTtcclxuICB9XHJcblxyXG4gIGF0dGFjaChjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLnN5bmMoY29sbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxhbmd1YWdlVHJhbnNsYXRpb25zKCkge1xyXG4gICAgaWYgKCF0aGlzLmxhbmd1YWdlVHJhbnNsYXRpb25zIHx8ICF0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZSB8fCAhdGhpcy50YXJnZXRMYW5ndWFnZUNvZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc291cmNlTGFuZ1RyYW5zbGF0ZWQgPSB0aGlzLmxhbmd1YWdlVHJhbnNsYXRpb25zW3RoaXMuc291cmNlTGFuZ3VhZ2VDb2RlLnRvVXBwZXJDYXNlKCldID8/IHRoaXMuc291cmNlTGFuZ3VhZ2VDb2RlO1xyXG4gICAgdGhpcy50YXJnZXRMYW5nVHJhbnNsYXRlZCA9IHRoaXMubGFuZ3VhZ2VUcmFuc2xhdGlvbnNbdGhpcy50YXJnZXRMYW5ndWFnZUNvZGUudG9VcHBlckNhc2UoKV0gPz8gdGhpcy50YXJnZXRMYW5ndWFnZUNvZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbGxlY3Rpb25zU29ydEZ1bmN0aW9uID0gKGE6IENvbWJpbmVkQ29sbGVjdGlvbiwgYjogQ29tYmluZWRDb2xsZWN0aW9uKSA9PiB7XHJcbiAgICBpZiAoYS5kZWZhdWx0ID09PSBiLmRlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhLmRlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbGlzdC1oZWFkZXJcIj5cclxuICA8aDEgY2xhc3M9XCJ0ZXh0LWwtc2VtaS1ib2xkXCI+XHJcbiAgICA8c3Bhbj57e2xvY2FsaXphdGlvbktleSArICdUSVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2gxPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNBbnlDb2xsZWN0aW9uc1wiPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXJtLXdpbmRvdy1kZXNjcmlwdGlvbiB0ZXh0LXNcIj5cclxuICAgICAgPHNwYW4+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICA8L3A+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNBbnlDb2xsZWN0aW9uc1wiPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXJtLXdpbmRvdy1kZXNjcmlwdGlvbiB0ZXh0LXNcIiBmeEhpZGUubHQtc20+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT05fRU1QVFknIHwgdHJhbnNsYXRlOlxyXG4gICAgICB7c3JjTGFuZzpcclxuICAgICAgc291cmNlTGFuZ1RyYW5zbGF0ZWQsIHRyZ0xhbmc6IHRhcmdldExhbmdUcmFuc2xhdGVkfSB9fTwvcD5cclxuICAgIDxwIGNsYXNzPVwidGVybS13aW5kb3ctZGVzY3JpcHRpb24gdGV4dC1zXCIgZnhIaWRlLmd0LXhzPnt7bG9jYWxpemF0aW9uS2V5ICsgJ0RFU0NSSVBUSU9OX0VNUFRZX01PQklMRScgfCB0cmFuc2xhdGU6XHJcbiAgICAgIHthcHBOYW1lOiBhcHBOYW1lfSB9fTwvcD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9oZWFkZXI+XHJcbjxkaXYgKm5nSWY9XCJoYXNBbnlDb2xsZWN0aW9uc1wiIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbGlzdC1ib2R5XCI+XHJcbiAgPG1hdC1yYWRpby1ncm91cCBbYXR0ci5hcmlhLWxhYmVsXT1cImxvY2FsaXphdGlvbktleSArICdBUklBX0xBQkVMUy5SQURJT19HUk9VUCcgfCB0cmFuc2xhdGVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwibnVsbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tLXNlbWktYm9sZFwiPlxyXG4gICAgICAgICAge3tsb2NhbGl6YXRpb25LZXkgKyAnU0VMRUNURURfTk9ORScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvblwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiICpuZ0Zvcj1cImxldCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zIHwgYXN5bmNcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJjb2xsZWN0aW9uLnRlcm1Ub29sdGlwS2V5PyAodG9vbHRpcExvY2FsaXphdGlvbktleSArIGNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXkgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cImNvbGxlY3Rpb25cIiBmeEZsZXhcclxuICAgICAgICBbY2xhc3MubWF0LXJhZGlvLWNoZWNrZWRdPVwiY29sbGVjdGlvbi5kZWZhdWx0IHx8IGNvbGxlY3Rpb249PT1zZWxlY3RlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbGxlY3Rpb24udGVybUlkICE9PSBudWxsICYmIGNvbGxlY3Rpb24udGVybUVudHJpZXM8PTAgfHwgY29sbGVjdGlvbi5kZWZhdWx0XCJcclxuICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWwgdGV4dC1tLXNlbWktYm9sZFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXk/ICcnIDogY29sbGVjdGlvbi5uYW1lXCI+XHJcbiAgICAgICAgICAgIHt7Y29sbGVjdGlvbi5uYW1lfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVmYXVsdC1iYWRnZVwiICpuZ0lmPVwiY29sbGVjdGlvbi5kZWZhdWx0XCI+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVGQVVMVCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24udGVybUNvdW50XCIgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIHRleHQtc1wiPlxyXG4gICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdURVJNU19JTl9VU0UnKSB8IHRyYW5zbGF0ZTogeyB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24udGVybUNvdW50IH0gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLmxhc3RVcGRhdGVkXCIgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIHRleHQtc1wiPlxyXG4gICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdMQVNUX1VQREFURUQnKSB8IHRyYW5zbGF0ZTogeyBkYXRlOiBjb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHwgZGF0ZUFnbyB9IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcblxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiBjb2xsZWN0aW9uLm10U3RhdHVzID09PSBjb2xsZWN0aW9uRXJyb3JTdGF0dXNcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cclxuICAgICAgICBlcnJvclxyXG4gICAgICA8L3NwYW4+XHJcblxyXG4gICAgICA8bWF0LXNwaW5uZXIgW21hdFRvb2x0aXBdPVwidG9vbHRpcExvY2FsaXphdGlvbktleSArICdJTVBPUlRJTkcnIHwgdHJhbnNsYXRlXCIgIGNvbG9yPVwiYWNjZW50XCIgZGlhbWV0ZXI9XCIyMFwiICpuZ0lmPVwiY29sbGVjdGlvbi5pc0ltcG9ydGluZ1wiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNFZGl0UGVybWlzc2lvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJjb2xsZWN0aW9uLnN5bmNCdXR0b25WaXNpYmxlXCIgKGNsaWNrKT1cImF0dGFjaChjb2xsZWN0aW9uKVwiIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwTG9jYWxpemF0aW9uS2V5ICsgJ1NZTkMnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cImNvbGxlY3Rpb24uaXNJbXBvcnRpbmdcIj5cclxuICAgICAgICAgIHt7bG9jYWxpemF0aW9uS2V5ICsgKGNvbGxlY3Rpb25FcnJvclN0YXR1cyA9PT0gY29sbGVjdGlvbi5tdFN0YXR1cz8gJ1NZTkNfRVJST1InOiAnU1lOQycpIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YSBtYXQtaWNvbi1idXR0b24gdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXk/ICcnIDogKHRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnRURJVCcgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgIFthdHRyLmhyZWZdPVwiZ2V0RWRpdExpbmsoY29sbGVjdGlvbilcIiAqbmdJZj1cImNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb25cIiBmeEhpZGUubHQtc20+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1yYWRpby1ncm91cD5cclxuPC9kaXY+XHJcbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0L3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWdCLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLDhCQUE4QjtJQXlDekMsWUFBNkIsa0JBQXNDLEVBQ2hELE1BQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGNBQThCLEVBQzlCLGdCQUFrQztRQUp4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEI1QyxvQkFBZSxHQUFHLG1CQUFtQixDQUFDO1FBQ3RDLDJCQUFzQixHQUFHLDRCQUE0QixDQUFDO1FBQ3RELGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBVXRCLDBCQUFxQixHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQXFEbEQsNEJB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QUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3RGLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3hILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQzFILENBQUM7OzJIQTFGVSw4QkFBOEI7K0dBQTlCLDhCQUE4QixnRUNmM0MsMDdIQXdFQTsyRkR6RGEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtdG9vbHRpcC9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vc2VydmljZXMvbW9kZWxzL210LWNvbGxlY3Rpb24tc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBUZXJtQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Rlcm0tYXBpL3Rlcm0tYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZXJtaW5vbG9neVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZXJtaW5vbG9neS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRlcm0tY29sbGVjdGlvbi1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtdGVybS1jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVGVybUNvbGxlY3Rpb25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGdldCBzZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIHNldCBzZWxlY3RlZCh2YWw6IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc2VsZWN0ZWQgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBjb2xsZWN0aW9uczogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb25bXT47XHJcblxyXG4gIGdldCBoYXNBbnlDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5oYXNBbnlDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBpc1JlZnJlc2hpbmdDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1pbm9sb2d5U2VydmljZT8uaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRWRpdFBlcm1pc3Npb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmhhc0VkaXRQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIGdldCBhcHBOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwTmFtZTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGxvY2FsaXphdGlvbktleSA9IFwiVEVSTV9DT0xMRUNUSU9OUy5cIjtcclxuICByZWFkb25seSB0b29sdGlwTG9jYWxpemF0aW9uS2V5ID0gXCJURVJNX0NPTExFQ1RJT05TLlRPT0xUSVBTLlwiO1xyXG4gIHJlYWRvbmx5IHJlYWR5U3RhdHVzID0gXCJSZWFkeVwiO1xyXG4gIHByaXZhdGUgc291cmNlTGFuZ3VhZ2VDb2RlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSB0YXJnZXRMYW5ndWFnZUNvZGU6IHN0cmluZztcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VUcmFuc2xhdGlvbnM6IGFueTtcclxuICBwcml2YXRlIGxhbmd1YWdlc1RyYW5zbGF0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBzb3VyY2VMYW5nVHJhbnNsYXRlZDogc3RyaW5nO1xyXG4gIHRhcmdldExhbmdUcmFuc2xhdGVkOiBzdHJpbmc7XHJcblxyXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25FcnJvclN0YXR1cyA9IE10Q29sbGVjdGlvblN0YXR1cy5FUlJPUjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0ZXJtaW5vbG9neVNlcnZpY2U6IFRlcm1pbm9sb2d5U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0bGRTeXN0ZW06IFRsZFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1BcGlTZXJ2aWNlOiBUZXJtQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25zID0gdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuZGF0YVVwZGF0ZSgpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG5cclxuICAgICAgICAgIHJldHVybiBbLi4uZGF0YV0uc29ydCh0aGlzLmNvbGxlY3Rpb25zU29ydEZ1bmN0aW9uKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5sYW5ndWFnZXNUcmFuc2xhdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKFwiTEFOR1VBR0VTXCIpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5sYW5ndWFnZVRyYW5zbGF0aW9ucyA9IHJlc3BvbnNlO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVMYW5ndWFnZVRyYW5zbGF0aW9ucygpO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5zdWJzY3JpYmUoKGFjdGl2ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZSA9IGFjdGl2ZS5zb3VyY2VMYW5nLmxhbmc7XHJcbiAgICAgIHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlID0gYWN0aXZlLnRhcmdldExhbmcubGFuZztcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VUcmFuc2xhdGlvbnMoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmxhbmd1YWdlc1RyYW5zbGF0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdExpbmsoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQXBpU2VydmljZS5nZXRFZGl0TGluayhjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uPy5pZCwgdGhpcy5zb3VyY2VMYW5ndWFnZUNvZGUsIHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlKTtcclxuICB9XHJcblxyXG4gIGF0dGFjaChjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLnN5bmMoY29sbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxhbmd1YWdlVHJhbnNsYXRpb25zKCkge1xyXG4gICAgaWYgKCF0aGlzLmxhbmd1YWdlVHJhbnNsYXRpb25zIHx8ICF0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZSB8fCAhdGhpcy50YXJnZXRMYW5ndWFnZUNvZGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc291cmNlTGFuZ1RyYW5zbGF0ZWQgPSB0aGlzLmxhbmd1YWdlVHJhbnNsYXRpb25zW3RoaXMuc291cmNlTGFuZ3VhZ2VDb2RlLnRvVXBwZXJDYXNlKCldID8/IHRoaXMuc291cmNlTGFuZ3VhZ2VDb2RlO1xyXG4gICAgdGhpcy50YXJnZXRMYW5nVHJhbnNsYXRlZCA9IHRoaXMubGFuZ3VhZ2VUcmFuc2xhdGlvbnNbdGhpcy50YXJnZXRMYW5ndWFnZUNvZGUudG9VcHBlckNhc2UoKV0gPz8gdGhpcy50YXJnZXRMYW5ndWFnZUNvZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbGxlY3Rpb25zU29ydEZ1bmN0aW9uID0gKGE6IENvbWJpbmVkQ29sbGVjdGlvbiwgYjogQ29tYmluZWRDb2xsZWN0aW9uKSA9PiB7XHJcbiAgICBpZiAoYS5kZWZhdWx0ID09PSBiLmRlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhLmRlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbGlzdC1oZWFkZXJcIj5cclxuICA8aDEgY2xhc3M9XCJ0ZXh0LWwtc2VtaS1ib2xkXCI+XHJcbiAgICA8c3Bhbj57e2xvY2FsaXphdGlvbktleSArICdUSVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2gxPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNBbnlDb2xsZWN0aW9uc1wiPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXJtLXdpbmRvdy1kZXNjcmlwdGlvbiB0ZXh0LXNcIj5cclxuICAgICAgPHNwYW4+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICA8L3A+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNBbnlDb2xsZWN0aW9uc1wiPlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXJtLXdpbmRvdy1kZXNjcmlwdGlvbiB0ZXh0LXNcIiBmeEhpZGUubHQtc20+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVTQ1JJUFRJT05fRU1QVFknIHwgdHJhbnNsYXRlOlxyXG4gICAgICB7c3JjTGFuZzpcclxuICAgICAgc291cmNlTGFuZ1RyYW5zbGF0ZWQsIHRyZ0xhbmc6IHRhcmdldExhbmdUcmFuc2xhdGVkfSB9fTwvcD5cclxuICAgIDxwIGNsYXNzPVwidGVybS13aW5kb3ctZGVzY3JpcHRpb24gdGV4dC1zXCIgZnhIaWRlLmd0LXhzPnt7bG9jYWxpemF0aW9uS2V5ICsgJ0RFU0NSSVBUSU9OX0VNUFRZX01PQklMRScgfCB0cmFuc2xhdGU6XHJcbiAgICAgIHthcHBOYW1lOiBhcHBOYW1lfSB9fTwvcD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9oZWFkZXI+XHJcbjxkaXYgKm5nSWY9XCJoYXNBbnlDb2xsZWN0aW9uc1wiIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbGlzdC1ib2R5XCI+XHJcbiAgPG1hdC1yYWRpby1ncm91cCBbYXR0ci5hcmlhLWxhYmVsXT1cImxvY2FsaXphdGlvbktleSArICdBUklBX0xBQkVMUy5SQURJT19HUk9VUCcgfCB0cmFuc2xhdGVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwibnVsbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tLXNlbWktYm9sZFwiPlxyXG4gICAgICAgICAge3tsb2NhbGl6YXRpb25LZXkgKyAnU0VMRUNURURfTk9ORScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvblwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiICpuZ0Zvcj1cImxldCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zIHwgYXN5bmNcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJjb2xsZWN0aW9uLnRlcm1Ub29sdGlwS2V5PyAodG9vbHRpcExvY2FsaXphdGlvbktleSArIGNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXkgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cImNvbGxlY3Rpb25cIiBmeEZsZXhcclxuICAgICAgICBbY2xhc3MubWF0LXJhZGlvLWNoZWNrZWRdPVwiY29sbGVjdGlvbi5kZWZhdWx0IHx8IGNvbGxlY3Rpb249PT1zZWxlY3RlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbGxlY3Rpb24udGVybUlkICE9PSBudWxsICYmIGNvbGxlY3Rpb24udGVybUVudHJpZXM8PTAgfHwgY29sbGVjdGlvbi5kZWZhdWx0XCJcclxuICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWwgdGV4dC1tLXNlbWktYm9sZFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXk/ICcnIDogY29sbGVjdGlvbi5uYW1lXCI+XHJcbiAgICAgICAgICAgIHt7Y29sbGVjdGlvbi5uYW1lfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVmYXVsdC1iYWRnZVwiICpuZ0lmPVwiY29sbGVjdGlvbi5kZWZhdWx0XCI+e3tsb2NhbGl6YXRpb25LZXkgKyAnREVGQVVMVCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24udGVybUNvdW50XCIgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIHRleHQtc1wiPlxyXG4gICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdURVJNU19JTl9VU0UnKSB8IHRyYW5zbGF0ZTogeyB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24udGVybUNvdW50IH0gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLmxhc3RVcGRhdGVkXCIgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIHRleHQtc1wiPlxyXG4gICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgKCdMQVNUX1VQREFURUQnKSB8IHRyYW5zbGF0ZTogeyBkYXRlOiBjb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHwgZGF0ZUFnbyB9IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY29sbGVjdGlvbi1sYWJlbC1ibG9jayB0ZXh0LXNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIlxyXG4gICAgICAgICAgKm5nSWY9XCJjb2xsZWN0aW9uLmlzSW1wb3J0aW5nXCI+XHJcbiAgICAgICAgICA8bWF0LXNwaW5uZXIgY29sb3I9XCJhY2NlbnRcIiBkaWFtZXRlcj1cIjIwXCI+XHJcbiAgICAgICAgICA8L21hdC1zcGlubmVyPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgIHt7dG9vbHRpcExvY2FsaXphdGlvbktleSArICdJTVBPUlRJTkcnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IGNvbGxlY3Rpb25FcnJvclN0YXR1c1wiIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPlxyXG4gICAgICAgIGVycm9yXHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0VkaXRQZXJtaXNzaW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImNvbGxlY3Rpb24uc3luY0J1dHRvblZpc2libGVcIiAoY2xpY2spPVwiYXR0YWNoKGNvbGxlY3Rpb24pXCIgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnU1lOQycgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiY29sbGVjdGlvbi5pc0ltcG9ydGluZ1wiPlxyXG4gICAgICAgICAge3tsb2NhbGl6YXRpb25LZXkgKyAoY29sbGVjdGlvbkVycm9yU3RhdHVzID09PSBjb2xsZWN0aW9uLm10U3RhdHVzPyAnU1lOQ19FUlJPUic6ICdTWU5DJykgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sbGVjdGlvbi50ZXJtVG9vbHRpcEtleT8gJycgOiAodG9vbHRpcExvY2FsaXphdGlvbktleSArICdFRElUJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRFZGl0TGluayhjb2xsZWN0aW9uKVwiICpuZ0lmPVwiY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvblwiIGZ4SGlkZS5sdC1zbT5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLXBhcmFncmFwaC1wYXJhbXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9tb2RlbHMvdHJhbnNsYXRlLXBhcmFncmFwaC1wYXJhbXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0ZVBhcmFncmFwaFBhcmFtc3tcclxuICAgIHNyY0xhbmc6IHN0cmluZztcclxuICAgIHRyZ0xhbmc6IHN0cmluZztcclxuICAgIGRvbWFpbjogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nW107XHJcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLXBhcmFncmFwaC1wYXJhbXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9tb2RlbHMvdHJhbnNsYXRlLXBhcmFncmFwaC1wYXJhbXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0ZVBhcmFncmFwaFBhcmFtcyB7XHJcbiAgc3JjTGFuZzogc3RyaW5nO1xyXG4gIHRyZ0xhbmc6IHN0cmluZztcclxuICBkb21haW46IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmdbXTtcclxuICB0ZXJtQ29sbGVjdGlvbnM/OiBzdHJpbmdbXTtcclxufVxyXG4iXX0=
@@ -7,10 +7,12 @@ import { HighlightTreeType } from '../../models/highlight-tree-type.model';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common/http";
9
9
  import * as i2 from "../../../tld-common/services";
10
+ import * as i3 from "../../../tld-term/services";
10
11
  export class TldTranslateTextApiV2Service {
11
- constructor(http, config) {
12
+ constructor(http, config, treminologyService) {
12
13
  this.http = http;
13
14
  this.config = config;
15
+ this.treminologyService = treminologyService;
14
16
  }
15
17
  translateParagraph(params) {
16
18
  const requestParams = {
@@ -19,6 +21,9 @@ export class TldTranslateTextApiV2Service {
19
21
  text: [params.text],
20
22
  trgLang: params.system.targetLanguage
21
23
  };
24
+ if (this.treminologyService.selected) {
25
+ requestParams.termCollections = [this.treminologyService.selected.mtCollection?.id];
26
+ }
22
27
  const sourceText = params.text;
23
28
  const sourceTree = {
24
29
  text: Common.escapeHtmlString(sourceText),
@@ -99,12 +104,12 @@ export class TldTranslateTextApiV2Service {
99
104
  });
100
105
  }
101
106
  }
102
- TldTranslateTextApiV2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, deps: [{ token: i1.HttpClient }, { token: i2.TldTranslateConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
107
+ TldTranslateTextApiV2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, deps: [{ token: i1.HttpClient }, { token: i2.TldTranslateConfigService }, { token: i3.TerminologyService }], target: i0.ɵɵFactoryTarget.Injectable });
103
108
  TldTranslateTextApiV2Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, providedIn: 'root' });
104
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, decorators: [{
105
110
  type: Injectable,
106
111
  args: [{
107
112
  providedIn: 'root'
108
113
  }]
109
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TldTranslateConfigService }]; } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWFwaS12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRleHQvc2VydmljZXMvYXBpLXYyL3RsZC10cmFuc2xhdGUtdGV4dC1hcGktdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFpRSxNQUFNLDRCQUE0QixDQUFDO0FBR25ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQVMzRSxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLFlBQTZCLElBQWdCLEVBQzFCLE1BQWlDO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7SUFBSSxDQUFDO0lBRXpELGtCQUFrQixDQUFDLE1BQXdDO1FBQ3pELE1BQU0sYUFBYSxHQUE4QjtZQUMvQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzVCLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWM7WUFDckMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjO1NBQ3RDLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxH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QUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEI7d0JBQ0UsSUFBSSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7d0JBQzNDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO3dCQUM3QixJQUFJLEVBQUUsSUFBSTt3QkFDVixZQUFZO3FCQUNiLENBQUMsQ0FBQTtpQkFDTDtnQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzt5SEFwR1UsNEJBQTRCOzZIQUE1Qiw0QkFBNEIsY0FGM0IsTUFBTTsyRkFFUCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbW1vbiwgSVRsZFRyYW5zbGF0ZVRleHRBcGlTZXJ2aWNlLCBJVHJhbnNsYXRlUGFyYWdyYXBoUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJQ2hlY2tHcmFtbWFyUmVzcG9uc2VWMiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVjay1ncmFtbWFyLXJlc3BvbnNlLXYyLm1vZGVsJztcclxuaW1wb3J0IHsgSGlnaGxpZ2h0UGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpZ2hsaWdodC1wYXJhbXMubW9kZWwnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRUcmVlVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9oaWdobGlnaHQtdHJlZS10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgSUhpZ2hsaWdodFRyZWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlnaGxpZ2h0LXRyZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRlUGFyYWdyYXBoUGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zbGF0ZS1wYXJhZ3JhcGgtcGFyYW1zLm1vZGVsJztcclxuaW1wb3J0IHsgSVRyYW5zbGF0ZVBhcmFncmFwaFJlc3BvbnNlVjIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNsYXRlLXBhcmFncmFwaC1yZXNwb25zZS12Mi5tb2RlbCc7XHJcbmltcG9ydCB7IElUcmFuc2xhdGVQYXJhZ3JhcGhSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGUtcGFyYWdyYXBoLXJlc3BvbnNlLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVRleHRBcGlWMlNlcnZpY2UgaW1wbGVtZW50cyBJVGxkVHJhbnNsYXRlVGV4dEFwaVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSkgeyB9XHJcblxyXG4gIHRyYW5zbGF0ZVBhcmFncmFwaChwYXJhbXM6IElUcmFuc2xhdGVQYXJhZ3JhcGhSZXF1ZXN0UGFyYW1zKTogT2JzZXJ2YWJsZTxJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXM6IElUcmFuc2xhdGVQYXJhZ3JhcGhQYXJhbXMgPSB7XHJcbiAgICAgIGRvbWFpbjogcGFyYW1zLnN5c3RlbS5kb21haW4sXHJcbiAgICAgIHNyY0xhbmc6IHBhcmFtcy5zeXN0ZW0uc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgIHRleHQ6IFtwYXJhbXMudGV4dF0sXHJcbiAgICAgIHRyZ0xhbmc6IHBhcmFtcy5zeXN0ZW0udGFyZ2V0TGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICBjb25zdCBzb3VyY2VUZXh0ID0gcGFyYW1zLnRleHQ7XHJcbiAgICBjb25zdCBzb3VyY2VUcmVlOiBJSGlnaGxpZ2h0VHJlZSA9IHtcclxuICAgICAgdGV4dDogQ29tbW9uLmVzY2FwZUh0bWxTdHJpbmcoc291cmNlVGV4dCksXHJcbiAgICAgIHBhcmFncmFwaEl4OiBwYXJhbXMucGFyYWdyYXBoSXgsXHJcbiAgICAgIHR5cGU6IEhpZ2hsaWdodFRyZWVUeXBlLlBBUkFHUkFQSCxcclxuICAgICAgcm9vdDogbnVsbCxcclxuICAgICAgb3JpZ2luYWxUZXh0OiBzb3VyY2VUZXh0XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGVhZGVycyA9IENvbW1vbi5HZXRBcGlWMkF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcudGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgJiYgdGhpcy5jb25maWcudGV4dENvbmZpZy5ncmFtbWFyQ2hlY2tMYW5ndWFnZXMuaW5jbHVkZXMocGFyYW1zLnN5c3RlbS5zb3VyY2VMYW5ndWFnZSkpIHtcclxuICAgICAgdGhpcy5jaGVja0FuZEF0dGFjaEdyYW1tYXJUb1RyZWUocGFyYW1zLnRleHQsIHBhcmFtcy5zeXN0ZW0uc291cmNlTGFuZ3VhZ2UsIHNvdXJjZVRyZWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2VWMj4odGhpcy5jb25maWcuYXBpVjJDb25maWcudHJhbnNsYXRpb25VcmwsIHJlcXVlc3RQYXJhbXMsIHsgaGVhZGVycyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHRyYW5zbGF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IGAke3JlcXVlc3RQYXJhbXMuc3JjTGFuZ30tJHtyZXF1ZXN0UGFyYW1zLnRyZ0xhbmd9LSR7dHJhbnNsYXRpb25SZXNwb25zZS5kb21haW59YDtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbFRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25SZXNwb25zZS50cmFuc2xhdGlvbnNbMF0udHJhbnNsYXRpb247XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0VHJlZTogSUhpZ2hsaWdodFRyZWUgPSB7XHJcbiAgICAgICAgICB0ZXh0OiBDb21tb24uZXNjYXBlSHRtbFN0cmluZyhvcmlnaW5hbFRyYW5zbGF0aW9uKSxcclxuICAgICAgICAgIHBhcmFncmFwaEl4OiBwYXJhbXMucGFyYWdyYXBoSXgsXHJcbiAgICAgICAgICB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5QQVJBR1JBUEgsXHJcbiAgICAgICAgICByb290OiBudWxsLFxyXG4gICAgICAgICAgb3JpZ2luYWxUZXh0OiBvcmlnaW5hbFRyYW5zbGF0aW9uXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgc291cmNlVHJlZSxcclxuICAgICAgICAgIHRhcmdldFRyZWUsXHJcbiAgICAgICAgICBzeXN0ZW1JZFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tHcmFtbWFyKHRleHQ6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8SUNoZWNrR3JhbW1hclJlc3BvbnNlVjI+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQ2hlY2tHcmFtbWFyUmVzcG9uc2VWMj4odGhpcy5jb25maWcuYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsLCB7IHRleHQsIGxhbmd1YWdlIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0FuZEF0dGFjaEdyYW1tYXJUb1RyZWUodGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nLCB0cmVlOiBJSGlnaGxpZ2h0VHJlZSkge1xyXG4gICAgdGhpcy5jaGVja0dyYW1tYXIodGV4dCwgbGFuZ3VhZ2UpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZ3JhbW1hckNoZWNrUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZ3JhbW1hckNoZWNrUmVzcG9uc2U/LmNvcnJlY3Rpb25zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0cmVlLmNoaWxkcmVuID0gW107XHJcbiAgICAgICAgICBsZXQgbGFzdEl4ID0gMDtcclxuICAgICAgICAgIGdyYW1tYXJDaGVja1Jlc3BvbnNlLmNvcnJlY3Rpb25zLmZvckVhY2goKGNvcnJlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgd29yZFN0YXJ0SXggPSBjb3JyZWN0aW9uLnNwYW4uc3RhcnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHdvcmRFbmRJeCA9IGNvcnJlY3Rpb24uc3Bhbi5lbmQ7XHJcbiAgICAgICAgICAgIGlmIChsYXN0SXggPCB3b3JkU3RhcnRJeCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVGV4dCA9IHRleHQuc2xpY2UobGFzdEl4LCB3b3JkU3RhcnRJeCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZXNjYXBlZCA9IENvbW1vbi5lc2NhcGVIdG1sU3RyaW5nKG9yaWdpbmFsVGV4dCk7XHJcbiAgICAgICAgICAgICAgdHJlZS5jaGlsZHJlbi5wdXNoKHsgdGV4dDogZXNjYXBlZCwgb3JpZ2luYWxUZXh0LCB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5PVEhFUiwgcm9vdDogdHJlZSB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dC5zbGljZSh3b3JkU3RhcnRJeCwgd29yZEVuZEl4KTtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGQ6IElIaWdobGlnaHRUcmVlID0ge1xyXG4gICAgICAgICAgICAgIHRleHQ6IENvbW1vbi5lc2NhcGVIdG1sU3RyaW5nKHRleHQuc2xpY2Uod29yZFN0YXJ0SXgsIHdvcmRFbmRJeCkpLFxyXG4gICAgICAgICAgICAgIGNsYXNzOiBgJHtIaWdobGlnaHRQYXJhbXMuaW52YWxpZFBocmFzZUNsYXNzfWAsXHJcbiAgICAgICAgICAgICAgZ3JhbW1hck1ldGE6IHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0SXg6IHdvcmRTdGFydEl4LFxyXG4gICAgICAgICAgICAgICAgZW5kSXg6IHdvcmRFbmRJeCxcclxuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50czogY29ycmVjdGlvbi5yZXBsYWNlbWVudHMubWFwKGVsID0+IGVsLnZhbHVlKVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgdHlwZTogSGlnaGxpZ2h0VHJlZVR5cGUuT1RIRVIsXHJcbiAgICAgICAgICAgICAgcm9vdDogdHJlZSxcclxuICAgICAgICAgICAgICBvcmlnaW5hbFRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuLnB1c2goY2hpbGQpXHJcbiAgICAgICAgICAgIGxhc3RJeCA9IHdvcmRFbmRJeDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGxhc3RJeCAhPSB0ZXh0Lmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dC5zbGljZShsYXN0SXgsIHRleHQubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBDb21tb24uZXNjYXBlSHRtbFN0cmluZyhvcmlnaW5hbFRleHQpLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogSGlnaGxpZ2h0VHJlZVR5cGUuT1RIRVIsXHJcbiAgICAgICAgICAgICAgICByb290OiB0cmVlLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxUZXh0XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRyZWUuY2hpbGRyZW4ucHVzaCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
114
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TldTranslateConfigService }, { type: i3.TerminologyService }]; } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWFwaS12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRleHQvc2VydmljZXMvYXBpLXYyL3RsZC10cmFuc2xhdGUtdGV4dC1hcGktdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFpRSxNQUFNLDRCQUE0QixDQUFDO0FBR25ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFVM0UsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxZQUE2QixJQUFnQixFQUMxQixNQUFpQyxFQUNqQyxrQkFBc0M7UUFGNUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUksQ0FBQztJQUU5RCxrQkFBa0IsQ0FBQyxNQUF3QztRQUN6RCxNQUFNLGFBQWEsR0FBOEI7WUFDL0MsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUM1QixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjO1lBQ3JDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYztTQUN0QyxDQUFDO1FBRUYsSUFBSSxJ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O3dCQUNWLFlBQVk7cUJBQ2IsQ0FBQTtvQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFDekIsTUFBTSxHQUFHLFNBQVMsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQjt3QkFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQzt3QkFDM0MsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUs7d0JBQzdCLElBQUksRUFBRSxJQUFJO3dCQUNWLFlBQVk7cUJBQ2IsQ0FBQyxDQUFBO2lCQUNMO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3lIQTFHVSw0QkFBNEI7NkhBQTVCLDRCQUE0QixjQUYzQixNQUFNOzJGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tbW9uLCBJVGxkVHJhbnNsYXRlVGV4dEFwaVNlcnZpY2UsIElUcmFuc2xhdGVQYXJhZ3JhcGhSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElDaGVja0dyYW1tYXJSZXNwb25zZVYyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoZWNrLWdyYW1tYXItcmVzcG9uc2UtdjIubW9kZWwnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRQYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlnaGxpZ2h0LXBhcmFtcy5tb2RlbCc7XHJcbmltcG9ydCB7IEhpZ2hsaWdodFRyZWVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpZ2hsaWdodC10cmVlLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBJSGlnaGxpZ2h0VHJlZSB9IGZyb20gJy4uLy4uL21vZGVscy9oaWdobGlnaHQtdHJlZS5tb2RlbCc7XHJcbmltcG9ydCB7IElUcmFuc2xhdGVQYXJhZ3JhcGhQYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNsYXRlLXBhcmFncmFwaC1wYXJhbXMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2VWMiB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGUtcGFyYWdyYXBoLXJlc3BvbnNlLXYyLm1vZGVsJztcclxuaW1wb3J0IHsgSVRyYW5zbGF0ZVBhcmFncmFwaFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zbGF0ZS1wYXJhZ3JhcGgtcmVzcG9uc2UubW9kZWwnO1xyXG5pbXBvcnQgeyBUZXJtaW5vbG9neVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtdGVybS9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVUZXh0QXBpVjJTZXJ2aWNlIGltcGxlbWVudHMgSVRsZFRyYW5zbGF0ZVRleHRBcGlTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyZW1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlKSB7IH1cclxuXHJcbiAgdHJhbnNsYXRlUGFyYWdyYXBoKHBhcmFtczogSVRyYW5zbGF0ZVBhcmFncmFwaFJlcXVlc3RQYXJhbXMpOiBPYnNlcnZhYmxlPElUcmFuc2xhdGVQYXJhZ3JhcGhSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdFBhcmFtczogSVRyYW5zbGF0ZVBhcmFncmFwaFBhcmFtcyA9IHtcclxuICAgICAgZG9tYWluOiBwYXJhbXMuc3lzdGVtLmRvbWFpbixcclxuICAgICAgc3JjTGFuZzogcGFyYW1zLnN5c3RlbS5zb3VyY2VMYW5ndWFnZSxcclxuICAgICAgdGV4dDogW3BhcmFtcy50ZXh0XSxcclxuICAgICAgdHJnTGFuZzogcGFyYW1zLnN5c3RlbS50YXJnZXRMYW5ndWFnZVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy50cmVtaW5vbG9neVNlcnZpY2Uuc2VsZWN0ZWQpIHtcclxuICAgICAgcmVxdWVzdFBhcmFtcy50ZXJtQ29sbGVjdGlvbnMgPSBbdGhpcy50cmVtaW5vbG9neVNlcnZpY2Uuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5pZF1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzb3VyY2VUZXh0ID0gcGFyYW1zLnRleHQ7XHJcbiAgICBjb25zdCBzb3VyY2VUcmVlOiBJSGlnaGxpZ2h0VHJlZSA9IHtcclxuICAgICAgdGV4dDogQ29tbW9uLmVzY2FwZUh0bWxTdHJpbmcoc291cmNlVGV4dCksXHJcbiAgICAgIHBhcmFncmFwaEl4OiBwYXJhbXMucGFyYWdyYXBoSXgsXHJcbiAgICAgIHR5cGU6IEhpZ2hsaWdodFRyZWVUeXBlLlBBUkFHUkFQSCxcclxuICAgICAgcm9vdDogbnVsbCxcclxuICAgICAgb3JpZ2luYWxUZXh0OiBzb3VyY2VUZXh0XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGVhZGVycyA9IENvbW1vbi5HZXRBcGlWMkF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcudGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgJiYgdGhpcy5jb25maWcudGV4dENvbmZpZy5ncmFtbWFyQ2hlY2tMYW5ndWFnZXMuaW5jbHVkZXMocGFyYW1zLnN5c3RlbS5zb3VyY2VMYW5ndWFnZSkpIHtcclxuICAgICAgdGhpcy5jaGVja0FuZEF0dGFjaEdyYW1tYXJUb1RyZWUocGFyYW1zLnRleHQsIHBhcmFtcy5zeXN0ZW0uc291cmNlTGFuZ3VhZ2UsIHNvdXJjZVRyZWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2VWMj4odGhpcy5jb25maWcuYXBpVjJDb25maWcudHJhbnNsYXRpb25VcmwsIHJlcXVlc3RQYXJhbXMsIHsgaGVhZGVycyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHRyYW5zbGF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IGAke3JlcXVlc3RQYXJhbXMuc3JjTGFuZ30tJHtyZXF1ZXN0UGFyYW1zLnRyZ0xhbmd9LSR7dHJhbnNsYXRpb25SZXNwb25zZS5kb21haW59YDtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbFRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25SZXNwb25zZS50cmFuc2xhdGlvbnNbMF0udHJhbnNsYXRpb247XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0VHJlZTogSUhpZ2hsaWdodFRyZWUgPSB7XHJcbiAgICAgICAgICB0ZXh0OiBDb21tb24uZXNjYXBlSHRtbFN0cmluZyhvcmlnaW5hbFRyYW5zbGF0aW9uKSxcclxuICAgICAgICAgIHBhcmFncmFwaEl4OiBwYXJhbXMucGFyYWdyYXBoSXgsXHJcbiAgICAgICAgICB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5QQVJBR1JBUEgsXHJcbiAgICAgICAgICByb290OiBudWxsLFxyXG4gICAgICAgICAgb3JpZ2luYWxUZXh0OiBvcmlnaW5hbFRyYW5zbGF0aW9uXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgc291cmNlVHJlZSxcclxuICAgICAgICAgIHRhcmdldFRyZWUsXHJcbiAgICAgICAgICBzeXN0ZW1JZFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tHcmFtbWFyKHRleHQ6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8SUNoZWNrR3JhbW1hclJlc3BvbnNlVjI+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQ2hlY2tHcmFtbWFyUmVzcG9uc2VWMj4odGhpcy5jb25maWcuYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsLCB7IHRleHQsIGxhbmd1YWdlIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0FuZEF0dGFjaEdyYW1tYXJUb1RyZWUodGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nLCB0cmVlOiBJSGlnaGxpZ2h0VHJlZSkge1xyXG4gICAgdGhpcy5jaGVja0dyYW1tYXIodGV4dCwgbGFuZ3VhZ2UpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZ3JhbW1hckNoZWNrUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZ3JhbW1hckNoZWNrUmVzcG9uc2U/LmNvcnJlY3Rpb25zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0cmVlLmNoaWxkcmVuID0gW107XHJcbiAgICAgICAgICBsZXQgbGFzdEl4ID0gMDtcclxuICAgICAgICAgIGdyYW1tYXJDaGVja1Jlc3BvbnNlLmNvcnJlY3Rpb25zLmZvckVhY2goKGNvcnJlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgd29yZFN0YXJ0SXggPSBjb3JyZWN0aW9uLnNwYW4uc3RhcnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHdvcmRFbmRJeCA9IGNvcnJlY3Rpb24uc3Bhbi5lbmQ7XHJcbiAgICAgICAgICAgIGlmIChsYXN0SXggPCB3b3JkU3RhcnRJeCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVGV4dCA9IHRleHQuc2xpY2UobGFzdEl4LCB3b3JkU3RhcnRJeCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZXNjYXBlZCA9IENvbW1vbi5lc2NhcGVIdG1sU3RyaW5nKG9yaWdpbmFsVGV4dCk7XHJcbiAgICAgICAgICAgICAgdHJlZS5jaGlsZHJlbi5wdXNoKHsgdGV4dDogZXNjYXBlZCwgb3JpZ2luYWxUZXh0LCB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5PVEhFUiwgcm9vdDogdHJlZSB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dC5zbGljZSh3b3JkU3RhcnRJeCwgd29yZEVuZEl4KTtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGQ6IElIaWdobGlnaHRUcmVlID0ge1xyXG4gICAgICAgICAgICAgIHRleHQ6IENvbW1vbi5lc2NhcGVIdG1sU3RyaW5nKHRleHQuc2xpY2Uod29yZFN0YXJ0SXgsIHdvcmRFbmRJeCkpLFxyXG4gICAgICAgICAgICAgIGNsYXNzOiBgJHtIaWdobGlnaHRQYXJhbXMuaW52YWxpZFBocmFzZUNsYXNzfWAsXHJcbiAgICAgICAgICAgICAgZ3JhbW1hck1ldGE6IHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0SXg6IHdvcmRTdGFydEl4LFxyXG4gICAgICAgICAgICAgICAgZW5kSXg6IHdvcmRFbmRJeCxcclxuICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50czogY29ycmVjdGlvbi5yZXBsYWNlbWVudHMubWFwKGVsID0+IGVsLnZhbHVlKVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgdHlwZTogSGlnaGxpZ2h0VHJlZVR5cGUuT1RIRVIsXHJcbiAgICAgICAgICAgICAgcm9vdDogdHJlZSxcclxuICAgICAgICAgICAgICBvcmlnaW5hbFRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuLnB1c2goY2hpbGQpXHJcbiAgICAgICAgICAgIGxhc3RJeCA9IHdvcmRFbmRJeDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGxhc3RJeCAhPSB0ZXh0Lmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dC5zbGljZShsYXN0SXgsIHRleHQubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBDb21tb24uZXNjYXBlSHRtbFN0cmluZyhvcmlnaW5hbFRleHQpLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogSGlnaGxpZ2h0VHJlZVR5cGUuT1RIRVIsXHJcbiAgICAgICAgICAgICAgICByb290OiB0cmVlLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxUZXh0XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRyZWUuY2hpbGRyZW4ucHVzaCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -760,8 +760,9 @@ const i18n_en = {
760
760
  },
761
761
  "TOOLTIPS": {
762
762
  "EDIT": "Edit glossary in terminology portal",
763
- "IMPORTING": "Updating glossary, terms will be availble shortly.",
763
+ "IMPORTING": "Importing glossary",
764
764
  "NO_ENTRIES": "Term collection cannot be used: no terms in source language",
765
+ "DEFAULT_COLLECTION": "These terms are now in use. You can manage them through Default glossary management. ",
765
766
  "SYNC": "Update the term collection",
766
767
  "SYNCING": "Term collection is synced, the latest version of the collection will be used",
767
768
  "ATTACH_TO_SYSTEM_ERROR": "An error has occured while importing the term collection"
@@ -5724,6 +5725,7 @@ var EngineTermCollectionSubStatus;
5724
5725
  var CombinedCollectionTooltipKey;
5725
5726
  (function (CombinedCollectionTooltipKey) {
5726
5727
  CombinedCollectionTooltipKey["NO_ENTRIES"] = "NO_ENTRIES";
5728
+ CombinedCollectionTooltipKey["DEFAULT_COLLECTION"] = "DEFAULT_COLLECTION";
5727
5729
  })(CombinedCollectionTooltipKey || (CombinedCollectionTooltipKey = {}));
5728
5730
 
5729
5731
  var MtCollectionStatus;
@@ -5841,6 +5843,7 @@ class CombinedCollection {
5841
5843
  var _a;
5842
5844
  return (_a = this.mtCollection) === null || _a === void 0 ? void 0 : _a.termCount;
5843
5845
  }
5846
+ get isTermPortalCollection() { return this._isTermPortalCollection; }
5844
5847
  get isImporting() { return this._isImporting; }
5845
5848
  /**
5846
5849
  * Updates collection with values from new collection.
@@ -5855,6 +5858,7 @@ class CombinedCollection {
5855
5858
  if (collection === null || collection === void 0 ? void 0 : collection.mtCollection) {
5856
5859
  this.mtCollection = collection.mtCollection;
5857
5860
  }
5861
+ this._isTermPortalCollection = (this.termCollection || this.mtCollection.termId) ? true : false;
5858
5862
  if (initialRefresh) {
5859
5863
  this.updateEditables((_a = this.mtCollection) === null || _a === void 0 ? void 0 : _a.default, (_c = (_b = this.mtCollection) === null || _b === void 0 ? void 0 : _b.scope) !== null && _c !== void 0 ? _c : EngineTermCollectionScope.GLOBAL, (_d = this.mtCollection) === null || _d === void 0 ? void 0 : _d.order);
5860
5864
  }
@@ -5924,7 +5928,7 @@ class CombinedCollection {
5924
5928
  updateTooltipKey() {
5925
5929
  var _a;
5926
5930
  if (this.default) {
5927
- this.termTooltipKey = null;
5931
+ this.termTooltipKey = CombinedCollectionTooltipKey.DEFAULT_COLLECTION;
5928
5932
  }
5929
5933
  else if (((_a = this.termCollection) === null || _a === void 0 ? void 0 : _a.entryCount) === 0) {
5930
5934
  this.termTooltipKey = CombinedCollectionTooltipKey.NO_ENTRIES;
@@ -6538,10 +6542,10 @@ class TldTermCollectionListComponent {
6538
6542
  }
6539
6543
  }
6540
6544
  TldTermCollectionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermCollectionListComponent, deps: [{ token: TerminologyService }, { token: TldTranslateConfigService }, { token: TldSystemService }, { token: TermApiService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6541
- TldTermCollectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermCollectionListComponent, selector: "tld-term-collection-list", ngImport: i0, template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n\r\n <mat-spinner [matTooltip]=\"tooltipLocalizationKey + 'IMPORTING' | translate\" color=\"accent\" diameter=\"20\" *ngIf=\"collection.isImporting\"></mat-spinner>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}\n"], dependencies: [{ kind: "directive", type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i11$1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i11$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i14.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.DateAgoPipe, name: "dateAgo" }] });
6545
+ TldTermCollectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermCollectionListComponent, selector: "tld-term-collection-list", ngImport: i0, template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i4$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i11$1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i11$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "component", type: i14.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.DateAgoPipe, name: "dateAgo" }] });
6542
6546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermCollectionListComponent, decorators: [{
6543
6547
  type: Component,
6544
- args: [{ selector: 'tld-term-collection-list', template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n\r\n <mat-spinner [matTooltip]=\"tooltipLocalizationKey + 'IMPORTING' | translate\" color=\"accent\" diameter=\"20\" *ngIf=\"collection.isImporting\"></mat-spinner>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}\n"] }]
6548
+ args: [{ selector: 'tld-term-collection-list', template: "<header class=\"tld-collection-list-header\">\r\n <h1 class=\"text-l-semi-bold\">\r\n <span>{{localizationKey + 'TITLE' | translate}}</span>\r\n </h1>\r\n <ng-container *ngIf=\"hasAnyCollections\">\r\n <p class=\"term-window-description text-s\">\r\n <span>{{localizationKey + 'DESCRIPTION' | translate}}</span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasAnyCollections\">\r\n <p class=\"term-window-description text-s\" fxHide.lt-sm>{{localizationKey + 'DESCRIPTION_EMPTY' | translate:\r\n {srcLang:\r\n sourceLangTranslated, trgLang: targetLangTranslated} }}</p>\r\n <p class=\"term-window-description text-s\" fxHide.gt-xs>{{localizationKey + 'DESCRIPTION_EMPTY_MOBILE' | translate:\r\n {appName: appName} }}</p>\r\n </ng-container>\r\n</header>\r\n<div *ngIf=\"hasAnyCollections\" class=\"tld-collection-list-body\">\r\n <mat-radio-group [attr.aria-label]=\"localizationKey + 'ARIA_LABELS.RADIO_GROUP' | translate\" [(ngModel)]=\"selected\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button [value]=\"null\">\r\n <span class=\"text-m-semi-bold\">\r\n {{localizationKey + 'SELECTED_NONE' | translate}}\r\n </span>\r\n </mat-radio-button>\r\n </div>\r\n <div class=\"collection\" fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let collection of collections | async\"\r\n [matTooltip]=\"collection.termTooltipKey? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\">\r\n <mat-radio-button [value]=\"collection\" fxFlex\r\n [class.mat-radio-checked]=\"collection.default || collection===selected\"\r\n [disabled]=\"collection.termId !== null && collection.termEntries<=0 || collection.default\"\r\n fxLayoutAlign=\"center center\">\r\n <div>\r\n <span class=\"collection-label text-m-semi-bold\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : collection.name\">\r\n {{collection.name}}\r\n </span>\r\n <span class=\"default-badge\" *ngIf=\"collection.default\">{{localizationKey + 'DEFAULT' | translate}}</span>\r\n </div>\r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('TERMS_IN_USE') | translate: { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + ('LAST_UPDATED') | translate: { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n <span class=\"collection-label-block text-s\" fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"0.5rem\"\r\n *ngIf=\"collection.isImporting\">\r\n <mat-spinner color=\"accent\" diameter=\"20\">\r\n </mat-spinner>\r\n <span>\r\n {{tooltipLocalizationKey + 'IMPORTING' | translate}}\r\n </span>\r\n </span>\r\n </mat-radio-button>\r\n\r\n <span *ngIf=\" collection.mtStatus === collectionErrorStatus\" color=\"accent\" class=\"material-icons\">\r\n error\r\n </span>\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <button mat-button *ngIf=\"collection.syncButtonVisible\" (click)=\"attach(collection)\" color=\"primary\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\" [disabled]=\"collection.isImporting\">\r\n {{localizationKey + (collectionErrorStatus === collection.mtStatus? 'SYNC_ERROR': 'SYNC') | translate}}\r\n </button>\r\n <a mat-icon-button target=\"_blank\"\r\n [matTooltip]=\"collection.termTooltipKey? '' : (tooltipLocalizationKey + 'EDIT' | translate)\"\r\n [attr.href]=\"getEditLink(collection)\" *ngIf=\"collection.termCollection\" fxHide.lt-sm>\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </mat-radio-group>\r\n</div>\r\n", styles: [".tld-collection-list-body,.tld-collection-list-header{padding:1em .75em}.collection-label{max-width:215px;overflow:hidden;text-overflow:ellipsis}.collection-label-block{display:block}.default-badge{background-color:#9aa5b1;color:var(--base-100);font-size:10px;border-radius:12px;padding:4px 8px;line-height:16px;display:inline-block}:host ::ng-deep .mat-radio-button{overflow:hidden;padding:5px 0}:host ::ng-deep .mat-radio-button .mat-radio-ripple{display:none}:host ::ng-deep .mat-radio-button .mat-radio-label-content{overflow:hidden}.collection{min-height:70px;border-top:1px solid #cbd2d9}mat-spinner{display:inline-block}\n"] }]
6545
6549
  }], ctorParameters: function () { return [{ type: TerminologyService }, { type: TldTranslateConfigService }, { type: TldSystemService }, { type: TermApiService }, { type: i1$1.TranslateService }]; } });
6546
6550
 
6547
6551
  class WtwLinkParamsService {
@@ -10681,9 +10685,10 @@ var FileV2Category;
10681
10685
  })(FileV2Category || (FileV2Category = {}));
10682
10686
 
10683
10687
  class FileApiV2Service {
10684
- constructor(http, config) {
10688
+ constructor(http, config, terminologyService) {
10685
10689
  this.http = http;
10686
10690
  this.config = config;
10691
+ this.terminologyService = terminologyService;
10687
10692
  }
10688
10693
  get url() {
10689
10694
  return this.config.apiV2Config.fileTranslationUrl;
@@ -10697,11 +10702,15 @@ class FileApiV2Service {
10697
10702
  return this.http.get(`${this.url}/${properties.id}/${properties.fileMeta.id}`, { responseType: "blob", headers });
10698
10703
  }
10699
10704
  startTranslation(properties) {
10705
+ var _a;
10700
10706
  const formData = new FormData();
10701
10707
  formData.append("file", properties.file.file);
10702
10708
  formData.append("fileName", properties.file.originalFileName);
10703
10709
  formData.append("srcLang", properties.system.sourceLanguage);
10704
10710
  formData.append("trgLang", properties.system.targetLanguage);
10711
+ if (this.terminologyService.selected) {
10712
+ formData.append("termCollections", JSON.stringify([(_a = this.terminologyService.selected.mtCollection) === null || _a === void 0 ? void 0 : _a.id]));
10713
+ }
10705
10714
  if (properties.system.domain) {
10706
10715
  formData.append("domain", properties.system.domain);
10707
10716
  }
@@ -10750,21 +10759,21 @@ class FileApiV2Service {
10750
10759
  }));
10751
10760
  }
10752
10761
  }
10753
- FileApiV2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileApiV2Service, deps: [{ token: i1$3.HttpClient }, { token: TldTranslateConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
10762
+ FileApiV2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileApiV2Service, deps: [{ token: i1$3.HttpClient }, { token: TldTranslateConfigService }, { token: TerminologyService }], target: i0.ɵɵFactoryTarget.Injectable });
10754
10763
  FileApiV2Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileApiV2Service, providedIn: 'root' });
10755
10764
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FileApiV2Service, decorators: [{
10756
10765
  type: Injectable,
10757
10766
  args: [{
10758
10767
  providedIn: 'root'
10759
10768
  }]
10760
- }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: TldTranslateConfigService }]; } });
10769
+ }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: TldTranslateConfigService }, { type: TerminologyService }]; } });
10761
10770
 
10762
- function fileApiServiceFactory(version, config, http, collectionsService, alerts) {
10771
+ function fileApiServiceFactory(version, config, http, terminologyService, alerts) {
10763
10772
  if (version === TranslationApiVersion.V2) {
10764
- return new FileApiV2Service(http, config);
10773
+ return new FileApiV2Service(http, config, terminologyService);
10765
10774
  }
10766
10775
  else {
10767
- return new TldTranslateFileApiService(http, config, collectionsService, alerts);
10776
+ return new TldTranslateFileApiService(http, config, terminologyService, alerts);
10768
10777
  }
10769
10778
  }
10770
10779
 
@@ -10894,17 +10903,22 @@ function systemServiceFactory(version, config, http) {
10894
10903
  }
10895
10904
 
10896
10905
  class TldTranslateTextApiV2Service {
10897
- constructor(http, config) {
10906
+ constructor(http, config, treminologyService) {
10898
10907
  this.http = http;
10899
10908
  this.config = config;
10909
+ this.treminologyService = treminologyService;
10900
10910
  }
10901
10911
  translateParagraph(params) {
10912
+ var _a;
10902
10913
  const requestParams = {
10903
10914
  domain: params.system.domain,
10904
10915
  srcLang: params.system.sourceLanguage,
10905
10916
  text: [params.text],
10906
10917
  trgLang: params.system.targetLanguage
10907
10918
  };
10919
+ if (this.treminologyService.selected) {
10920
+ requestParams.termCollections = [(_a = this.treminologyService.selected.mtCollection) === null || _a === void 0 ? void 0 : _a.id];
10921
+ }
10908
10922
  const sourceText = params.text;
10909
10923
  const sourceTree = {
10910
10924
  text: Common.escapeHtmlString(sourceText),
@@ -10986,14 +11000,14 @@ class TldTranslateTextApiV2Service {
10986
11000
  });
10987
11001
  }
10988
11002
  }
10989
- TldTranslateTextApiV2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, deps: [{ token: i1$3.HttpClient }, { token: TldTranslateConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
11003
+ TldTranslateTextApiV2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, deps: [{ token: i1$3.HttpClient }, { token: TldTranslateConfigService }, { token: TerminologyService }], target: i0.ɵɵFactoryTarget.Injectable });
10990
11004
  TldTranslateTextApiV2Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, providedIn: 'root' });
10991
11005
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, decorators: [{
10992
11006
  type: Injectable,
10993
11007
  args: [{
10994
11008
  providedIn: 'root'
10995
11009
  }]
10996
- }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: TldTranslateConfigService }]; } });
11010
+ }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: TldTranslateConfigService }, { type: TerminologyService }]; } });
10997
11011
 
10998
11012
  class TldTranslateTextApiService {
10999
11013
  constructor(terminologyService, http, config, alerts) {
@@ -11177,7 +11191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
11177
11191
 
11178
11192
  function textApiServiceFactory(version, config, http, terminologyService, alerts) {
11179
11193
  if (version === TranslationApiVersion.V2) {
11180
- return new TldTranslateTextApiV2Service(http, config);
11194
+ return new TldTranslateTextApiV2Service(http, config, terminologyService);
11181
11195
  }
11182
11196
  else {
11183
11197
  return new TldTranslateTextApiService(terminologyService, http, config, alerts);