@tilde-nlp/ngx-translate 7.0.2 → 7.0.3

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.
@@ -6106,11 +6106,11 @@ class TldTranslateFileMultipleComponent extends TldFileTranslateBaseComponent {
6106
6106
  this.showVendorNotification = this.config.fileConfig.progressIndicatorTitleVisibleForVendors.includes(vendor);
6107
6107
  }
6108
6108
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TldTranslateFileMultipleComponent, deps: [{ token: TldTranslateFileService }, { token: TldTranslateConfigService }, { token: i2$2.MatDialog }, { token: TldTranslateButtonService }, { token: TldTranslateSystemManagementService }, { token: i5.AlertService }], target: i0.ɵɵFactoryTarget.Component });
6109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TldTranslateFileMultipleComponent, selector: "tld-translate-file-multiple", inputs: { translationFiles: "translationFiles" }, usesInheritance: true, ngImport: i0, template: "<div class=\"tld-translate-file-container\" [ngClass.xs]=\"'tld-multiple-mobile'\" fxLayout=\"column\" fxFlex\r\n fxLayoutAlign=\"start center\">\r\n <div class=\"cdk-visually-hidden\" aria-live=\"polite\">\r\n {{'MULTIPLE_FILES.SCREEN_READER_ANNOUNCEMENT' | translate: {translated:translatedFilesCount , total: fileCount} }}\r\n </div>\r\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" fxFlex class=\"multiple-files-body\">\r\n <div *ngFor=\"let file of translationFiles\" class=\"file-row\" [ngClass.gt-sm]=\"'extra-width'\" fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\" fxLayoutAlign.xs=\"flex-start center\">\r\n <div fxLayout=\"column\" fxFlex>\r\n <div fxLayout=\"row\" fxLayoutAlign.xs=\"space-between center\" fxLayoutAlign=\"space-between center\">\r\n <div class=\"file-name\">\r\n {{file.originalFileName}}\r\n </div>\r\n <div fxLayout=\"row\" class=\"file-actions\">\r\n <tld-translate-file-download-button (tldClick)=\"download(file, $event)\" *ngIf=\"file.downloadAvailable\"\r\n [sourceDownload]=\"true\" [disabled]=\"file.isDownloading\" [file]=\"file\">\r\n </tld-translate-file-download-button>\r\n <tld-close-button [tooltip]=\"'FILE_UPLOAD.CLEAR'\" (tldClick)=\"remove(file)\"></tld-close-button>\r\n </div>\r\n </div>\r\n <mat-progress-bar *ngIf=\"file.translationStatuss===translatingStatuss\" color=\"accent\" mode=\"determinate\"\r\n [value]=\"file.progress\"></mat-progress-bar>\r\n <div class=\"progress-message text-s\"\r\n *ngIf=\"(file.translationStatuss !== errorTranslatingStatuss) && (file.translationStatuss !== completedTranslatingStatuss) && (file.translationStatuss !== uploadedTranslatingStatuss)\">\r\n {{'MULTIPLE_FILES.STATUSS_' + file.translationStatuss | translate: {percent: file.progress} }}\r\n </div>\r\n <ng-container *ngIf=\"file.messages.length>0\">\r\n <lib-inline-message *ngFor=\"let message of file.messages\" [message]=\"message\"></lib-inline-message>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <tld-file-upload *ngIf=\"!translationStarted\" fxFlex class=\"tld-append-files\" (fileChange)=\"fileChange($event)\"\r\n [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [multiple]=\"multipleFiles\"\r\n [disabled]=\"disableAppendFiles\" (errorEvent)=\"fileUploadError($event)\" [extendedAcceptList]=\"extendedFileTypes\">\r\n {{'MULTIPLE_FILES.APPEND' | translate}} ({{fileCount}}/{{maxFileCount}})\r\n </tld-file-upload>\r\n </div>\r\n <ng-container *ngIf=\"sourceDownloadPDF\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.PDF_DISCLAIMER', dialogParams: pdfConversion, buttonText: 'MULTIPLE_FILES.PDF_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"sourceDownloadImage\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.IMAGE_DISCLAIMER', dialogParams: imageConversion, buttonText: 'MULTIPLE_FILES.IMAGE_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showVendorNotification\">\r\n <vendor-disclaimer></vendor-disclaimer>\r\n </ng-container>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayout.xs=\"column\" fxLayuotGap.xs=\"1rem\" class=\"button-container\">\r\n <tld-translate-button [disabled]=\"disableTranslateButton\" (clicked)=\"translateButtonClick()\"\r\n *ngIf=\"!translationStarted\"></tld-translate-button>\r\n <button (click)=\"clearAll()\" mat-stroked-button color=\"accent\"\r\n class=\"cancel-button border-accent\">{{'MULTIPLE_FILES.CLEAR_ALL' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #conversionMessage let-messageKey=\"messageKey\" let-dialogParams=\"dialogParams\" let-buttonText=\"buttonText\">\r\n\r\n <p class=\"conversion-disclaimer text-m\" [ngClass.gt-sm]=\"'conversion-info-margins-gt-sm'\">\r\n <span class=\"material-icons\">\r\n info\r\n </span>\r\n <span>\r\n {{messageKey | translate }}\r\n </span>\r\n <button class=\"conversion-message-action text-m-semi-bold\" (click)=\"conversionDialog(dialogParams)\">{{buttonText |\r\n translate}}</button>\r\n</ng-template>\r\n", styles: [".semi-bold,.text-s-semi-bold,.text-m-semi-bold,.text-l-semi-bold,.text-xl-semi-bold,.text-2-xl,.text-3-xl,.text-4-xl{font-weight:600}@media (min-width: 600px){.text-4-xl{font-size:2.75rem;line-height:3.375rem}}@media (min-width: 0) and (max-width: 599.9px){.text-4-xl{font-size:2rem;line-height:2.625rem}}.text-3-xl{font-size:2rem;line-height:2.625rem}.text-2-xl{font-size:1.5rem;line-height:2.125rem}.text-xl,.text-xl-semi-bold{font-size:1.25rem;line-height:2rem}.text-l,.cancel-button,.text-l-semi-bold{font-size:1rem;line-height:1.625rem}.text-m,.text-m-semi-bold{font-size:.875rem;line-height:1.4375rem}.text-s,.text-s-semi-bold{font-size:.75rem;line-height:1.25rem}.tld-translate-file-container{padding:3em;width:100%}.tld-translate-file-container .file-row{min-height:4rem;width:100%;padding:.5em 0;border-bottom:1px solid var(--base-70)}.tld-translate-file-container .file-row .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tld-translate-file-container .file-row lib-inline-message{margin-top:.5rem}.tld-translate-file-container .file-row .file-actions{margin-left:.5rem}.tld-append-files{font-size:1em;margin-top:1rem}:host ::ng-deep .tld-append-files .upload-button{justify-content:center!important;min-height:3.5rem!important}.conversion-disclaimer.conversion-info-margins-gt-sm{margin:.5em 20%}.conversion-disclaimer:not(.conversion-info-margins-gt-sm){text-align:center}tld-translate-button{margin:1em}.tld-multiple-mobile{padding:1rem}.tld-multiple-mobile tld-translate-button{margin:1rem 0 0;width:100%}.tld-multiple-mobile .file-row,.tld-multiple-mobile .multiple-files-body,.tld-multiple-mobile .cancel-button,.tld-multiple-mobile .button-container{width:100%}.multiple-files-body ::ng-deep tld-file-upload .file-upload .upload-button{text-align:center}.download-file{cursor:pointer}.material-icons{vertical-align:middle;color:var(--base-40)}.conversion-message-action{background:transparent;color:var(--accent);border:none;cursor:pointer}.extra-width{min-width:30rem}.progress-message{color:var(--base-40)}mat-progress-bar{margin:.375rem 0}.cancel-button{padding:.375rem 1.5rem}vendor-disclaimer{margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TldTranslateButtonComponent, selector: "tld-translate-button", inputs: ["disabled", "enablePulseAnimation"], outputs: ["clicked"] }, { kind: "directive", type: i3.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: i3.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: i3.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: i3.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$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i5.InlineMessageComponent, selector: "lib-inline-message", inputs: ["iconName", "message"] }, { kind: "component", type: VendorDisclaimerComponent, selector: "vendor-disclaimer" }, { kind: "component", type: i5.FileUploadComponent, selector: "tld-file-upload", inputs: ["accept", "maxSize", "multiple", "filePreviewProgress", "allowEmpty", "disabled", "uploadIconName", "extendedAcceptList"], outputs: ["fileChange", "errorEvent"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i1$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: TldTranslateFileDownloadButtonComponent, selector: "tld-translate-file-download-button", inputs: ["file", "disabled", "sourceDownload"], outputs: ["tldClick"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
6109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TldTranslateFileMultipleComponent, selector: "tld-translate-file-multiple", inputs: { translationFiles: "translationFiles" }, usesInheritance: true, ngImport: i0, template: "<div class=\"tld-translate-file-container\" [ngClass.xs]=\"'tld-multiple-mobile'\" fxLayout=\"column\" fxFlex\r\n fxLayoutAlign=\"start center\">\r\n <div class=\"cdk-visually-hidden\" aria-live=\"polite\">\r\n {{'MULTIPLE_FILES.SCREEN_READER_ANNOUNCEMENT' | translate: {translated:translatedFilesCount , total: fileCount} }}\r\n </div>\r\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" fxFlex class=\"multiple-files-body\">\r\n <div *ngFor=\"let file of translationFiles\" class=\"file-row\" [ngClass.gt-sm]=\"'extra-width'\" fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\" fxLayoutAlign.xs=\"flex-start center\">\r\n <div fxLayout=\"column\" fxFlex>\r\n <div fxLayout=\"row\" fxLayoutAlign.xs=\"space-between center\" fxLayoutAlign=\"space-between center\">\r\n <div class=\"file-name\">\r\n {{file.originalFileName}}\r\n </div>\r\n <div fxLayout=\"row\" class=\"file-actions\">\r\n <tld-translate-file-download-button (tldClick)=\"download(file, $event)\" *ngIf=\"file.downloadAvailable\"\r\n [sourceDownload]=\"true\" [disabled]=\"file.isDownloading\" [file]=\"file\">\r\n </tld-translate-file-download-button>\r\n <tld-close-button [tooltip]=\"'FILE_UPLOAD.CLEAR'\" (tldClick)=\"remove(file)\"></tld-close-button>\r\n </div>\r\n </div>\r\n <mat-progress-bar *ngIf=\"file.translationStatuss===translatingStatuss\" color=\"accent\" mode=\"determinate\"\r\n [value]=\"file.progress\"></mat-progress-bar>\r\n <div class=\"progress-message text-s\"\r\n *ngIf=\"(file.translationStatuss !== errorTranslatingStatuss) && (file.translationStatuss !== completedTranslatingStatuss) && (file.translationStatuss !== uploadedTranslatingStatuss)\">\r\n {{'MULTIPLE_FILES.STATUSS_' + file.translationStatuss | translate: {percent: file.progress} }}\r\n </div>\r\n <ng-container *ngIf=\"file.messages.length>0\">\r\n <lib-inline-message *ngFor=\"let message of file.messages\" [message]=\"message\"></lib-inline-message>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <lib-file-upload *ngIf=\"!translationStarted\" fxFlex class=\"tld-append-files\" (fileChange)=\"fileChange($event)\"\r\n [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [multiple]=\"multipleFiles\"\r\n [disabled]=\"disableAppendFiles\" (errorEvent)=\"fileUploadError($event)\" [extendedAcceptList]=\"extendedFileTypes\">\r\n {{'MULTIPLE_FILES.APPEND' | translate}} ({{fileCount}}/{{maxFileCount}})\r\n </lib-file-upload>\r\n </div>\r\n <ng-container *ngIf=\"sourceDownloadPDF\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.PDF_DISCLAIMER', dialogParams: pdfConversion, buttonText: 'MULTIPLE_FILES.PDF_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"sourceDownloadImage\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.IMAGE_DISCLAIMER', dialogParams: imageConversion, buttonText: 'MULTIPLE_FILES.IMAGE_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showVendorNotification\">\r\n <vendor-disclaimer></vendor-disclaimer>\r\n </ng-container>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayout.xs=\"column\" fxLayuotGap.xs=\"1rem\" class=\"button-container\">\r\n <tld-translate-button [disabled]=\"disableTranslateButton\" (clicked)=\"translateButtonClick()\"\r\n *ngIf=\"!translationStarted\"></tld-translate-button>\r\n <button (click)=\"clearAll()\" mat-stroked-button color=\"accent\"\r\n class=\"cancel-button border-accent\">{{'MULTIPLE_FILES.CLEAR_ALL' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #conversionMessage let-messageKey=\"messageKey\" let-dialogParams=\"dialogParams\" let-buttonText=\"buttonText\">\r\n\r\n <p class=\"conversion-disclaimer text-m\" [ngClass.gt-sm]=\"'conversion-info-margins-gt-sm'\">\r\n <span class=\"material-icons\">\r\n info\r\n </span>\r\n <span>\r\n {{messageKey | translate }}\r\n </span>\r\n <button class=\"conversion-message-action text-m-semi-bold\" (click)=\"conversionDialog(dialogParams)\">{{buttonText |\r\n translate}}</button>\r\n</ng-template>\r\n", styles: [".semi-bold,.text-s-semi-bold,.text-m-semi-bold,.text-l-semi-bold,.text-xl-semi-bold,.text-2-xl,.text-3-xl,.text-4-xl{font-weight:600}@media (min-width: 600px){.text-4-xl{font-size:2.75rem;line-height:3.375rem}}@media (min-width: 0) and (max-width: 599.9px){.text-4-xl{font-size:2rem;line-height:2.625rem}}.text-3-xl{font-size:2rem;line-height:2.625rem}.text-2-xl{font-size:1.5rem;line-height:2.125rem}.text-xl,.text-xl-semi-bold{font-size:1.25rem;line-height:2rem}.text-l,.cancel-button,.text-l-semi-bold{font-size:1rem;line-height:1.625rem}.text-m,.text-m-semi-bold{font-size:.875rem;line-height:1.4375rem}.text-s,.text-s-semi-bold{font-size:.75rem;line-height:1.25rem}.tld-translate-file-container{padding:3em;width:100%}.tld-translate-file-container .file-row{min-height:4rem;width:100%;padding:.5em 0;border-bottom:1px solid var(--base-70)}.tld-translate-file-container .file-row .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tld-translate-file-container .file-row lib-inline-message{margin-top:.5rem}.tld-translate-file-container .file-row .file-actions{margin-left:.5rem}.tld-append-files{font-size:1em;margin-top:1rem}:host ::ng-deep .tld-append-files .upload-button{justify-content:center!important;min-height:3.5rem!important}.conversion-disclaimer.conversion-info-margins-gt-sm{margin:.5em 20%}.conversion-disclaimer:not(.conversion-info-margins-gt-sm){text-align:center}tld-translate-button{margin:1em}.tld-multiple-mobile{padding:1rem}.tld-multiple-mobile tld-translate-button{margin:1rem 0 0;width:100%}.tld-multiple-mobile .file-row,.tld-multiple-mobile .multiple-files-body,.tld-multiple-mobile .cancel-button,.tld-multiple-mobile .button-container{width:100%}.multiple-files-body ::ng-deep lib-file-upload .file-upload .upload-button{text-align:center}.download-file{cursor:pointer}.material-icons{vertical-align:middle;color:var(--base-40)}.conversion-message-action{background:transparent;color:var(--accent);border:none;cursor:pointer}.extra-width{min-width:30rem}.progress-message{color:var(--base-40)}mat-progress-bar{margin:.375rem 0}.cancel-button{padding:.375rem 1.5rem}vendor-disclaimer{margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TldTranslateButtonComponent, selector: "tld-translate-button", inputs: ["disabled", "enablePulseAnimation"], outputs: ["clicked"] }, { kind: "directive", type: i3.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: i3.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: i3.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: i3.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$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i5.InlineMessageComponent, selector: "lib-inline-message", inputs: ["iconName", "message"] }, { kind: "component", type: VendorDisclaimerComponent, selector: "vendor-disclaimer" }, { kind: "component", type: i5.FileUploadComponent, selector: "lib-file-upload", inputs: ["accept", "useCompactUpload", "maxSize", "multiple", "filePreviewProgress", "allowEmpty", "disabled", "dragZoneLabel", "uploadIconName", "uploadButtonLabel", "openExtensionPopupLabel", "extendedAcceptList"], outputs: ["fileChange", "errorEvent"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i1$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: TldTranslateFileDownloadButtonComponent, selector: "tld-translate-file-download-button", inputs: ["file", "disabled", "sourceDownload"], outputs: ["tldClick"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
6110
6110
  }
6111
6111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TldTranslateFileMultipleComponent, decorators: [{
6112
6112
  type: Component,
6113
- args: [{ selector: 'tld-translate-file-multiple', template: "<div class=\"tld-translate-file-container\" [ngClass.xs]=\"'tld-multiple-mobile'\" fxLayout=\"column\" fxFlex\r\n fxLayoutAlign=\"start center\">\r\n <div class=\"cdk-visually-hidden\" aria-live=\"polite\">\r\n {{'MULTIPLE_FILES.SCREEN_READER_ANNOUNCEMENT' | translate: {translated:translatedFilesCount , total: fileCount} }}\r\n </div>\r\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" fxFlex class=\"multiple-files-body\">\r\n <div *ngFor=\"let file of translationFiles\" class=\"file-row\" [ngClass.gt-sm]=\"'extra-width'\" fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\" fxLayoutAlign.xs=\"flex-start center\">\r\n <div fxLayout=\"column\" fxFlex>\r\n <div fxLayout=\"row\" fxLayoutAlign.xs=\"space-between center\" fxLayoutAlign=\"space-between center\">\r\n <div class=\"file-name\">\r\n {{file.originalFileName}}\r\n </div>\r\n <div fxLayout=\"row\" class=\"file-actions\">\r\n <tld-translate-file-download-button (tldClick)=\"download(file, $event)\" *ngIf=\"file.downloadAvailable\"\r\n [sourceDownload]=\"true\" [disabled]=\"file.isDownloading\" [file]=\"file\">\r\n </tld-translate-file-download-button>\r\n <tld-close-button [tooltip]=\"'FILE_UPLOAD.CLEAR'\" (tldClick)=\"remove(file)\"></tld-close-button>\r\n </div>\r\n </div>\r\n <mat-progress-bar *ngIf=\"file.translationStatuss===translatingStatuss\" color=\"accent\" mode=\"determinate\"\r\n [value]=\"file.progress\"></mat-progress-bar>\r\n <div class=\"progress-message text-s\"\r\n *ngIf=\"(file.translationStatuss !== errorTranslatingStatuss) && (file.translationStatuss !== completedTranslatingStatuss) && (file.translationStatuss !== uploadedTranslatingStatuss)\">\r\n {{'MULTIPLE_FILES.STATUSS_' + file.translationStatuss | translate: {percent: file.progress} }}\r\n </div>\r\n <ng-container *ngIf=\"file.messages.length>0\">\r\n <lib-inline-message *ngFor=\"let message of file.messages\" [message]=\"message\"></lib-inline-message>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <tld-file-upload *ngIf=\"!translationStarted\" fxFlex class=\"tld-append-files\" (fileChange)=\"fileChange($event)\"\r\n [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [multiple]=\"multipleFiles\"\r\n [disabled]=\"disableAppendFiles\" (errorEvent)=\"fileUploadError($event)\" [extendedAcceptList]=\"extendedFileTypes\">\r\n {{'MULTIPLE_FILES.APPEND' | translate}} ({{fileCount}}/{{maxFileCount}})\r\n </tld-file-upload>\r\n </div>\r\n <ng-container *ngIf=\"sourceDownloadPDF\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.PDF_DISCLAIMER', dialogParams: pdfConversion, buttonText: 'MULTIPLE_FILES.PDF_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"sourceDownloadImage\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.IMAGE_DISCLAIMER', dialogParams: imageConversion, buttonText: 'MULTIPLE_FILES.IMAGE_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showVendorNotification\">\r\n <vendor-disclaimer></vendor-disclaimer>\r\n </ng-container>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayout.xs=\"column\" fxLayuotGap.xs=\"1rem\" class=\"button-container\">\r\n <tld-translate-button [disabled]=\"disableTranslateButton\" (clicked)=\"translateButtonClick()\"\r\n *ngIf=\"!translationStarted\"></tld-translate-button>\r\n <button (click)=\"clearAll()\" mat-stroked-button color=\"accent\"\r\n class=\"cancel-button border-accent\">{{'MULTIPLE_FILES.CLEAR_ALL' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #conversionMessage let-messageKey=\"messageKey\" let-dialogParams=\"dialogParams\" let-buttonText=\"buttonText\">\r\n\r\n <p class=\"conversion-disclaimer text-m\" [ngClass.gt-sm]=\"'conversion-info-margins-gt-sm'\">\r\n <span class=\"material-icons\">\r\n info\r\n </span>\r\n <span>\r\n {{messageKey | translate }}\r\n </span>\r\n <button class=\"conversion-message-action text-m-semi-bold\" (click)=\"conversionDialog(dialogParams)\">{{buttonText |\r\n translate}}</button>\r\n</ng-template>\r\n", styles: [".semi-bold,.text-s-semi-bold,.text-m-semi-bold,.text-l-semi-bold,.text-xl-semi-bold,.text-2-xl,.text-3-xl,.text-4-xl{font-weight:600}@media (min-width: 600px){.text-4-xl{font-size:2.75rem;line-height:3.375rem}}@media (min-width: 0) and (max-width: 599.9px){.text-4-xl{font-size:2rem;line-height:2.625rem}}.text-3-xl{font-size:2rem;line-height:2.625rem}.text-2-xl{font-size:1.5rem;line-height:2.125rem}.text-xl,.text-xl-semi-bold{font-size:1.25rem;line-height:2rem}.text-l,.cancel-button,.text-l-semi-bold{font-size:1rem;line-height:1.625rem}.text-m,.text-m-semi-bold{font-size:.875rem;line-height:1.4375rem}.text-s,.text-s-semi-bold{font-size:.75rem;line-height:1.25rem}.tld-translate-file-container{padding:3em;width:100%}.tld-translate-file-container .file-row{min-height:4rem;width:100%;padding:.5em 0;border-bottom:1px solid var(--base-70)}.tld-translate-file-container .file-row .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tld-translate-file-container .file-row lib-inline-message{margin-top:.5rem}.tld-translate-file-container .file-row .file-actions{margin-left:.5rem}.tld-append-files{font-size:1em;margin-top:1rem}:host ::ng-deep .tld-append-files .upload-button{justify-content:center!important;min-height:3.5rem!important}.conversion-disclaimer.conversion-info-margins-gt-sm{margin:.5em 20%}.conversion-disclaimer:not(.conversion-info-margins-gt-sm){text-align:center}tld-translate-button{margin:1em}.tld-multiple-mobile{padding:1rem}.tld-multiple-mobile tld-translate-button{margin:1rem 0 0;width:100%}.tld-multiple-mobile .file-row,.tld-multiple-mobile .multiple-files-body,.tld-multiple-mobile .cancel-button,.tld-multiple-mobile .button-container{width:100%}.multiple-files-body ::ng-deep tld-file-upload .file-upload .upload-button{text-align:center}.download-file{cursor:pointer}.material-icons{vertical-align:middle;color:var(--base-40)}.conversion-message-action{background:transparent;color:var(--accent);border:none;cursor:pointer}.extra-width{min-width:30rem}.progress-message{color:var(--base-40)}mat-progress-bar{margin:.375rem 0}.cancel-button{padding:.375rem 1.5rem}vendor-disclaimer{margin-bottom:1rem}\n"] }]
6113
+ args: [{ selector: 'tld-translate-file-multiple', template: "<div class=\"tld-translate-file-container\" [ngClass.xs]=\"'tld-multiple-mobile'\" fxLayout=\"column\" fxFlex\r\n fxLayoutAlign=\"start center\">\r\n <div class=\"cdk-visually-hidden\" aria-live=\"polite\">\r\n {{'MULTIPLE_FILES.SCREEN_READER_ANNOUNCEMENT' | translate: {translated:translatedFilesCount , total: fileCount} }}\r\n </div>\r\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" fxFlex class=\"multiple-files-body\">\r\n <div *ngFor=\"let file of translationFiles\" class=\"file-row\" [ngClass.gt-sm]=\"'extra-width'\" fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\" fxLayoutAlign.xs=\"flex-start center\">\r\n <div fxLayout=\"column\" fxFlex>\r\n <div fxLayout=\"row\" fxLayoutAlign.xs=\"space-between center\" fxLayoutAlign=\"space-between center\">\r\n <div class=\"file-name\">\r\n {{file.originalFileName}}\r\n </div>\r\n <div fxLayout=\"row\" class=\"file-actions\">\r\n <tld-translate-file-download-button (tldClick)=\"download(file, $event)\" *ngIf=\"file.downloadAvailable\"\r\n [sourceDownload]=\"true\" [disabled]=\"file.isDownloading\" [file]=\"file\">\r\n </tld-translate-file-download-button>\r\n <tld-close-button [tooltip]=\"'FILE_UPLOAD.CLEAR'\" (tldClick)=\"remove(file)\"></tld-close-button>\r\n </div>\r\n </div>\r\n <mat-progress-bar *ngIf=\"file.translationStatuss===translatingStatuss\" color=\"accent\" mode=\"determinate\"\r\n [value]=\"file.progress\"></mat-progress-bar>\r\n <div class=\"progress-message text-s\"\r\n *ngIf=\"(file.translationStatuss !== errorTranslatingStatuss) && (file.translationStatuss !== completedTranslatingStatuss) && (file.translationStatuss !== uploadedTranslatingStatuss)\">\r\n {{'MULTIPLE_FILES.STATUSS_' + file.translationStatuss | translate: {percent: file.progress} }}\r\n </div>\r\n <ng-container *ngIf=\"file.messages.length>0\">\r\n <lib-inline-message *ngFor=\"let message of file.messages\" [message]=\"message\"></lib-inline-message>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <lib-file-upload *ngIf=\"!translationStarted\" fxFlex class=\"tld-append-files\" (fileChange)=\"fileChange($event)\"\r\n [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [multiple]=\"multipleFiles\"\r\n [disabled]=\"disableAppendFiles\" (errorEvent)=\"fileUploadError($event)\" [extendedAcceptList]=\"extendedFileTypes\">\r\n {{'MULTIPLE_FILES.APPEND' | translate}} ({{fileCount}}/{{maxFileCount}})\r\n </lib-file-upload>\r\n </div>\r\n <ng-container *ngIf=\"sourceDownloadPDF\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.PDF_DISCLAIMER', dialogParams: pdfConversion, buttonText: 'MULTIPLE_FILES.PDF_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"sourceDownloadImage\">\r\n <ng-container\r\n *ngTemplateOutlet=\"conversionMessage; context: { messageKey:'MULTIPLE_FILES.IMAGE_DISCLAIMER', dialogParams: imageConversion, buttonText: 'MULTIPLE_FILES.IMAGE_DISCLAIMER_LINK'}\">\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showVendorNotification\">\r\n <vendor-disclaimer></vendor-disclaimer>\r\n </ng-container>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayout.xs=\"column\" fxLayuotGap.xs=\"1rem\" class=\"button-container\">\r\n <tld-translate-button [disabled]=\"disableTranslateButton\" (clicked)=\"translateButtonClick()\"\r\n *ngIf=\"!translationStarted\"></tld-translate-button>\r\n <button (click)=\"clearAll()\" mat-stroked-button color=\"accent\"\r\n class=\"cancel-button border-accent\">{{'MULTIPLE_FILES.CLEAR_ALL' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #conversionMessage let-messageKey=\"messageKey\" let-dialogParams=\"dialogParams\" let-buttonText=\"buttonText\">\r\n\r\n <p class=\"conversion-disclaimer text-m\" [ngClass.gt-sm]=\"'conversion-info-margins-gt-sm'\">\r\n <span class=\"material-icons\">\r\n info\r\n </span>\r\n <span>\r\n {{messageKey | translate }}\r\n </span>\r\n <button class=\"conversion-message-action text-m-semi-bold\" (click)=\"conversionDialog(dialogParams)\">{{buttonText |\r\n translate}}</button>\r\n</ng-template>\r\n", styles: [".semi-bold,.text-s-semi-bold,.text-m-semi-bold,.text-l-semi-bold,.text-xl-semi-bold,.text-2-xl,.text-3-xl,.text-4-xl{font-weight:600}@media (min-width: 600px){.text-4-xl{font-size:2.75rem;line-height:3.375rem}}@media (min-width: 0) and (max-width: 599.9px){.text-4-xl{font-size:2rem;line-height:2.625rem}}.text-3-xl{font-size:2rem;line-height:2.625rem}.text-2-xl{font-size:1.5rem;line-height:2.125rem}.text-xl,.text-xl-semi-bold{font-size:1.25rem;line-height:2rem}.text-l,.cancel-button,.text-l-semi-bold{font-size:1rem;line-height:1.625rem}.text-m,.text-m-semi-bold{font-size:.875rem;line-height:1.4375rem}.text-s,.text-s-semi-bold{font-size:.75rem;line-height:1.25rem}.tld-translate-file-container{padding:3em;width:100%}.tld-translate-file-container .file-row{min-height:4rem;width:100%;padding:.5em 0;border-bottom:1px solid var(--base-70)}.tld-translate-file-container .file-row .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tld-translate-file-container .file-row lib-inline-message{margin-top:.5rem}.tld-translate-file-container .file-row .file-actions{margin-left:.5rem}.tld-append-files{font-size:1em;margin-top:1rem}:host ::ng-deep .tld-append-files .upload-button{justify-content:center!important;min-height:3.5rem!important}.conversion-disclaimer.conversion-info-margins-gt-sm{margin:.5em 20%}.conversion-disclaimer:not(.conversion-info-margins-gt-sm){text-align:center}tld-translate-button{margin:1em}.tld-multiple-mobile{padding:1rem}.tld-multiple-mobile tld-translate-button{margin:1rem 0 0;width:100%}.tld-multiple-mobile .file-row,.tld-multiple-mobile .multiple-files-body,.tld-multiple-mobile .cancel-button,.tld-multiple-mobile .button-container{width:100%}.multiple-files-body ::ng-deep lib-file-upload .file-upload .upload-button{text-align:center}.download-file{cursor:pointer}.material-icons{vertical-align:middle;color:var(--base-40)}.conversion-message-action{background:transparent;color:var(--accent);border:none;cursor:pointer}.extra-width{min-width:30rem}.progress-message{color:var(--base-40)}mat-progress-bar{margin:.375rem 0}.cancel-button{padding:.375rem 1.5rem}vendor-disclaimer{margin-bottom:1rem}\n"] }]
6114
6114
  }], ctorParameters: () => [{ type: TldTranslateFileService }, { type: TldTranslateConfigService }, { type: i2$2.MatDialog }, { type: TldTranslateButtonService }, { type: TldTranslateSystemManagementService }, { type: i5.AlertService }], propDecorators: { translationFiles: [{
6115
6115
  type: Input
6116
6116
  }] } });
@@ -8299,11 +8299,11 @@ class TldTranslateTextComponent {
8299
8299
  });
8300
8300
  }
8301
8301
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TldTranslateTextComponent, deps: [{ token: TldTranslateTextService }, { token: i2$3.Clipboard }, { token: i5.AlertService }, { token: TldTranslateConfigService }, { token: TldScrollService }, { token: TldTranslateSystemManagementService }, { token: AudioRecordService }, { token: TldVoiceInputService }, { token: TldTranslateFileService }, { token: i8.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
8302
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TldTranslateTextComponent, selector: "tld-translate-text", inputs: { filePreviewProgress: "filePreviewProgress" }, outputs: { onFileChange: "onFileChange" }, viewQueries: [{ propertyName: "sourceComponent", first: true, predicate: ["sourceComponent"], descendants: true }, { propertyName: "dictateComponent", first: true, predicate: ["dictate"], descendants: true }], ngImport: i0, template: "<!-- NOTE. tld-source-and-target-wrapper uses multiple content projections, so might seem confusing first, but elements are displayed at their places based on tld-source-and-target-wrapper component\r\nhttps://angular.io/guide/content-projection#multi-slot-content-projection\r\n-->\r\n<tld-source-and-target-wrapper [textToSpeechSourceSettings]=\"textToSpeechSourceSettings\"\r\n [clearSourceVisible]=\"source?.length>0\" (onSourceClear)=\"clearSource()\"\r\n [clearDisabled]=\"textareaDisabled\" [clearSourceTooltip]=\"'TLD_TRANSLATE.CLEAR_SOURCE_TOOLTIP'\"\r\n [ngClass]=\"{'highlight-active': highlight, 'gramcheck-active': gramCheck, 'empty-target': isEmptyTarget}\">\r\n <div sourceMain class=\"source-main\" fxLayout=\"column\">\r\n <tld-translate-source [textareaDisabled]=\"textareaDisabled\" #sourceComponent fxFlex\r\n [sourceParagraphs]=\"sourceParagraphs\"></tld-translate-source>\r\n </div>\r\n <ng-container sourceActions *ngIf=\"!hideSourceActions\">\r\n <div fxLayoutAlign=\"start center\" class=\"basic-padding\" fxLayoutGap=\"1em\">\r\n <ng-container *ngIf=\"audioInputVisible\">\r\n <tld-dictate #dictate [configuration]=\"dictateConfig\" [ngClass]=\"{'full-width' : !fileUpload}\"\r\n (isDictating)=\"dictateStartStop($event)\" (result)=\"dictateResult($event)\"\r\n (partialResult)=\"dictatePartialResult($event)\" (onError)=\"dictateError($event)\" [language]=\"sourceLanguage\">\r\n </tld-dictate>\r\n </ng-container>\r\n <div *ngIf=\"fileUpload\" class=\"file-upload-wrapper\">\r\n <tld-file-upload (fileChange)=\"fileChange($event)\" [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [uploadIconName]=\"uploadIconName\"\r\n [extendedAcceptList]=\"extendedFileTypes\" [multiple]=\"multipleFiles\" (errorEvent)=\"fileUploadError($event)\"\r\n [filePreviewProgress]=\"filePreviewProgress\" [disabled]=\"fileUploadDisabled\">\r\n <span class=\"upload-file-text\">\r\n <div fxLayout=\"row\">\r\n <span class=\"info text-l-semi-bold\">\r\n <span [innerHTML]=\"'FILE_UPLOAD.UPLOAD' | translate\" class=\"accent-color\"></span>\r\n <span>&nbsp;</span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.DRAG_AND_DROP' | translate\" fxHide.lt-sm></span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.'+ (multipleFiles? 'FILES' : 'FILE') | translate\"\r\n [ngClass.lt-sm]=\"'accent-color'\"></span>\r\n </span>\r\n </div>\r\n <div fxLayout=\"row\">\r\n <span class=\"file-upload-extensions text-m\">\r\n (\r\n <span>{{visibleExtensions}}. </span>\r\n <span *ngIf=\"maxSizeMB\" [innerHTML]=\"'FILE_UPLOAD.LIMITS_MB' | translate: {maxSizeMB: maxSizeMB}\"></span>\r\n )\r\n </span>\r\n </div>\r\n </span>\r\n </tld-file-upload>\r\n <lib-open-extension-dialog *ngIf=\"showExtensionPopup\" [extensions]=\"allowedTypesWithoutDots\">\r\n </lib-open-extension-dialog>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div targetMain class=\"target-main\">\r\n <ng-container *ngIf=\"isEmptyTarget; else translatedTextBlock\">\r\n <p *ngIf=\"showTargetPlaceholder\" class=\"description-text target-empty\"\r\n [innerHtml]=\"'TLD_TRANSLATE.TARGET_DESCRIPTION' | translate\">\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container targetActions>\r\n <div class=\"tld-translate-target-footer basic-padding\" *ngIf=\"showSuggestions || showProgressIndicator\">\r\n <tld-translate-suggest *ngIf=\"showSuggestions\" [systemId]=\"systemId\" [target]=\"targetParagraphs\"\r\n [source]=\"sourceParagraphs\">\r\n </tld-translate-suggest>\r\n <progress-indicator (onClose)=\"closeProgressIndicator()\" *ngIf=\"showProgressIndicator\"></progress-indicator>\r\n </div>\r\n </ng-container>\r\n</tld-source-and-target-wrapper>\r\n\r\n\r\n<!-- templates used for else blocks in target container -->\r\n<ng-template #translatedTextBlock>\r\n <div [class.translated-source-overflow]=\"targetWrapperOverflow\" class=\"translated-source\" [class.selectable-sentence]=\"showSuggestions\">\r\n <ng-container *ngIf=\"!urlToTranslate\">\r\n <div class=\"target-wrapper-action-buttons\">\r\n <button *ngIf=\"firstParagraphTranslated\" mat-icon-button class=\"tld-copy-translation\" (click)=\"copy()\"\r\n matTooltip=\"{{'TOOLTIPS.COPY' | translate}}\" [attr.aria-describedby]=\"copyMessageId\"\r\n (keydown.Tab)=\"switchFocusFromCopy($event)\" [attr.Id]=\"copyButtonId\">\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.COPY' | translate\">\r\n content_copy\r\n </span>\r\n </button>\r\n <button *ngIf=\"firstParagraphTranslated || translationError\" mat-icon-button class=\"tld-refresh-translation\" (click)=\"refresh()\"\r\n matTooltip=\"{{'TOOLTIPS.REFRESH' | translate}}\"\r\n >\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.REFRESH' | translate\">\r\n refresh\r\n </span>\r\n </button>\r\n <tld-text-to-speech *ngIf=\"textToSpeechTargetSettings && firstParagraphTranslated\" [settings]=\"textToSpeechTargetSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div *ngFor=\"let paragraph of targetParagraphs\">\r\n <tld-highlight-tree [highlight]=\"highlight\" [tree]=\"paragraph\" [selectSentence]=\"showSuggestions\">\r\n </tld-highlight-tree>\r\n </div>\r\n\r\n <div *ngIf=\"firstParagraphTranslated\" class=\"dictionary-wrapper\">\r\n <tld-dictionary [dictionary]=\"dictionaryEntry\"></tld-dictionary>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"urlToTranslate\" class=\"target-url-container\">\r\n <a [attr.href]=\"translateUrlRedirect\" target=\"_blank\" fxLayoutAlign=\"start center\" class=\"go-to-webtranslate\">\r\n {{urlToTranslate}}\r\n <span class=\"material-icons\" color=\"accent\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.OPEN_IN_NEW'\">\r\n open_in_new\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".go-to-webtranslate{word-break:break-all;display:inline}.basic-padding,.target-empty,.target-translated-text{padding:1em}.source-container{border-right:1px solid #cbd2d9;padding:0;overflow:auto}.target-description{margin-top:0}.target-container{position:relative}.translated-source{overflow-y:auto;overflow-x:hidden;flex:1 1 0!important;padding:1em 3.5em 1em 2em!important}.translated-source.selectable-sentence{cursor:pointer}::ng-deep .target-highlight .tld-highlight-container{padding:1em}.target-wrapper-action-buttons{position:absolute;top:.2em;right:.2em}.target-wrapper-action-buttons .tld-copy-translation,.target-wrapper-action-buttons .tld-refresh-translation,.target-wrapper-action-buttons tld-text-to-speech{display:block}.target-empty,.target-translated-text{margin:0}tld-dictionary{overflow-y:auto;flex:1 1 0!important}.source-main,.target-main{height:100%}.upload-file-text{display:inline-block;text-align:left}.file-upload-wrapper{width:100%}.file-upload-wrapper .file-upload-extensions{font-weight:400}.dictionary-wrapper{margin-top:2rem}@media (max-width: 768px){.translated-source{padding:1em 3em 1em 1em!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SourceAndTargetWrapperComponent, selector: "tld-source-and-target-wrapper", inputs: ["clearSourceVisible", "clearSourceTooltip", "clearDisabled", "textToSpeechSourceSettings"], outputs: ["onSourceClear"] }, { kind: "component", type: TldDictateComponent, selector: "tld-dictate", inputs: ["configuration", "language"], outputs: ["result", "partialResult", "isDictating", "onError"] }, { kind: "component", type: i5.OpenExtensionDialogComponent, selector: "lib-open-extension-dialog", inputs: ["extensions"] }, { kind: "component", type: TextToSpeechComponent, selector: "tld-text-to-speech", inputs: ["settings"] }, { kind: "component", type: i5.FileUploadComponent, selector: "tld-file-upload", inputs: ["accept", "maxSize", "multiple", "filePreviewProgress", "allowEmpty", "disabled", "uploadIconName", "extendedAcceptList"], outputs: ["fileChange", "errorEvent"] }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3.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: i3.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: i3.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: i3.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$1.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: "directive", type: i5$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TldTranslateSourceComponent, selector: "tld-translate-source", inputs: ["textareaDisabled", "sourceParagraphs"] }, { kind: "component", type: TldTranslateSuggestComponent, selector: "tld-translate-suggest", inputs: ["target", "source", "dictionary", "systemId", "options", "selectedSentence"] }, { kind: "component", type: TldDictionaryComponent, selector: "tld-dictionary", inputs: ["dictionary"] }, { kind: "component", type: HighlightTreeComponent, selector: "tld-highlight-tree", inputs: ["tree", "isSource", "correctionsEnabled", "highlight", "gramCheck", "selectSentence"], outputs: ["onReplace"] }, { kind: "component", type: ProgressIndicatorComponent, selector: "progress-indicator", outputs: ["onClose"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
8302
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: TldTranslateTextComponent, selector: "tld-translate-text", inputs: { filePreviewProgress: "filePreviewProgress" }, outputs: { onFileChange: "onFileChange" }, viewQueries: [{ propertyName: "sourceComponent", first: true, predicate: ["sourceComponent"], descendants: true }, { propertyName: "dictateComponent", first: true, predicate: ["dictate"], descendants: true }], ngImport: i0, template: "<!-- NOTE. tld-source-and-target-wrapper uses multiple content projections, so might seem confusing first, but elements are displayed at their places based on tld-source-and-target-wrapper component\r\nhttps://angular.io/guide/content-projection#multi-slot-content-projection\r\n-->\r\n<tld-source-and-target-wrapper [textToSpeechSourceSettings]=\"textToSpeechSourceSettings\"\r\n [clearSourceVisible]=\"source?.length>0\" (onSourceClear)=\"clearSource()\"\r\n [clearDisabled]=\"textareaDisabled\" [clearSourceTooltip]=\"'TLD_TRANSLATE.CLEAR_SOURCE_TOOLTIP'\"\r\n [ngClass]=\"{'highlight-active': highlight, 'gramcheck-active': gramCheck, 'empty-target': isEmptyTarget}\">\r\n <div sourceMain class=\"source-main\" fxLayout=\"column\">\r\n <tld-translate-source [textareaDisabled]=\"textareaDisabled\" #sourceComponent fxFlex\r\n [sourceParagraphs]=\"sourceParagraphs\"></tld-translate-source>\r\n </div>\r\n <ng-container sourceActions *ngIf=\"!hideSourceActions\">\r\n <div fxLayoutAlign=\"start center\" class=\"basic-padding\" fxLayoutGap=\"1em\">\r\n <ng-container *ngIf=\"audioInputVisible\">\r\n <tld-dictate #dictate [configuration]=\"dictateConfig\" [ngClass]=\"{'full-width' : !fileUpload}\"\r\n (isDictating)=\"dictateStartStop($event)\" (result)=\"dictateResult($event)\"\r\n (partialResult)=\"dictatePartialResult($event)\" (onError)=\"dictateError($event)\" [language]=\"sourceLanguage\">\r\n </tld-dictate>\r\n </ng-container>\r\n <div *ngIf=\"fileUpload\" class=\"file-upload-wrapper\">\r\n <lib-file-upload (fileChange)=\"fileChange($event)\" [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [uploadIconName]=\"uploadIconName\"\r\n [extendedAcceptList]=\"extendedFileTypes\" [multiple]=\"multipleFiles\" (errorEvent)=\"fileUploadError($event)\"\r\n [filePreviewProgress]=\"filePreviewProgress\" [disabled]=\"fileUploadDisabled\">\r\n <span class=\"upload-file-text\">\r\n <div fxLayout=\"row\">\r\n <span class=\"info text-l-semi-bold\">\r\n <span [innerHTML]=\"'FILE_UPLOAD.UPLOAD' | translate\" class=\"accent-color\"></span>\r\n <span>&nbsp;</span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.DRAG_AND_DROP' | translate\" fxHide.lt-sm></span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.'+ (multipleFiles? 'FILES' : 'FILE') | translate\"\r\n [ngClass.lt-sm]=\"'accent-color'\"></span>\r\n </span>\r\n </div>\r\n <div fxLayout=\"row\">\r\n <span class=\"file-upload-extensions text-m\">\r\n (\r\n <span>{{visibleExtensions}}. </span>\r\n <span *ngIf=\"maxSizeMB\" [innerHTML]=\"'FILE_UPLOAD.LIMITS_MB' | translate: {maxSizeMB: maxSizeMB}\"></span>\r\n )\r\n </span>\r\n </div>\r\n </span>\r\n </lib-file-upload>\r\n <lib-open-extension-dialog *ngIf=\"showExtensionPopup\" [extensions]=\"allowedTypesWithoutDots\">\r\n </lib-open-extension-dialog>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div targetMain class=\"target-main\">\r\n <ng-container *ngIf=\"isEmptyTarget; else translatedTextBlock\">\r\n <p *ngIf=\"showTargetPlaceholder\" class=\"description-text target-empty\"\r\n [innerHtml]=\"'TLD_TRANSLATE.TARGET_DESCRIPTION' | translate\">\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container targetActions>\r\n <div class=\"tld-translate-target-footer basic-padding\" *ngIf=\"showSuggestions || showProgressIndicator\">\r\n <tld-translate-suggest *ngIf=\"showSuggestions\" [systemId]=\"systemId\" [target]=\"targetParagraphs\"\r\n [source]=\"sourceParagraphs\">\r\n </tld-translate-suggest>\r\n <progress-indicator (onClose)=\"closeProgressIndicator()\" *ngIf=\"showProgressIndicator\"></progress-indicator>\r\n </div>\r\n </ng-container>\r\n</tld-source-and-target-wrapper>\r\n\r\n\r\n<!-- templates used for else blocks in target container -->\r\n<ng-template #translatedTextBlock>\r\n <div [class.translated-source-overflow]=\"targetWrapperOverflow\" class=\"translated-source\" [class.selectable-sentence]=\"showSuggestions\">\r\n <ng-container *ngIf=\"!urlToTranslate\">\r\n <div class=\"target-wrapper-action-buttons\">\r\n <button *ngIf=\"firstParagraphTranslated\" mat-icon-button class=\"tld-copy-translation\" (click)=\"copy()\"\r\n matTooltip=\"{{'TOOLTIPS.COPY' | translate}}\" [attr.aria-describedby]=\"copyMessageId\"\r\n (keydown.Tab)=\"switchFocusFromCopy($event)\" [attr.Id]=\"copyButtonId\">\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.COPY' | translate\">\r\n content_copy\r\n </span>\r\n </button>\r\n <button *ngIf=\"firstParagraphTranslated || translationError\" mat-icon-button class=\"tld-refresh-translation\" (click)=\"refresh()\"\r\n matTooltip=\"{{'TOOLTIPS.REFRESH' | translate}}\"\r\n >\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.REFRESH' | translate\">\r\n refresh\r\n </span>\r\n </button>\r\n <tld-text-to-speech *ngIf=\"textToSpeechTargetSettings && firstParagraphTranslated\" [settings]=\"textToSpeechTargetSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div *ngFor=\"let paragraph of targetParagraphs\">\r\n <tld-highlight-tree [highlight]=\"highlight\" [tree]=\"paragraph\" [selectSentence]=\"showSuggestions\">\r\n </tld-highlight-tree>\r\n </div>\r\n\r\n <div *ngIf=\"firstParagraphTranslated\" class=\"dictionary-wrapper\">\r\n <tld-dictionary [dictionary]=\"dictionaryEntry\"></tld-dictionary>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"urlToTranslate\" class=\"target-url-container\">\r\n <a [attr.href]=\"translateUrlRedirect\" target=\"_blank\" fxLayoutAlign=\"start center\" class=\"go-to-webtranslate\">\r\n {{urlToTranslate}}\r\n <span class=\"material-icons\" color=\"accent\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.OPEN_IN_NEW'\">\r\n open_in_new\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".go-to-webtranslate{word-break:break-all;display:inline}.basic-padding,.target-empty,.target-translated-text{padding:1em}.source-container{border-right:1px solid #cbd2d9;padding:0;overflow:auto}.target-description{margin-top:0}.target-container{position:relative}.translated-source{overflow-y:auto;overflow-x:hidden;flex:1 1 0!important;padding:1em 3.5em 1em 2em!important}.translated-source.selectable-sentence{cursor:pointer}::ng-deep .target-highlight .tld-highlight-container{padding:1em}.target-wrapper-action-buttons{position:absolute;top:.2em;right:.2em}.target-wrapper-action-buttons .tld-copy-translation,.target-wrapper-action-buttons .tld-refresh-translation,.target-wrapper-action-buttons tld-text-to-speech{display:block}.target-empty,.target-translated-text{margin:0}tld-dictionary{overflow-y:auto;flex:1 1 0!important}.source-main,.target-main{height:100%}.upload-file-text{display:inline-block;text-align:left}.file-upload-wrapper{width:100%}.file-upload-wrapper .file-upload-extensions{font-weight:400}.dictionary-wrapper{margin-top:2rem}@media (max-width: 768px){.translated-source{padding:1em 3em 1em 1em!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SourceAndTargetWrapperComponent, selector: "tld-source-and-target-wrapper", inputs: ["clearSourceVisible", "clearSourceTooltip", "clearDisabled", "textToSpeechSourceSettings"], outputs: ["onSourceClear"] }, { kind: "component", type: TldDictateComponent, selector: "tld-dictate", inputs: ["configuration", "language"], outputs: ["result", "partialResult", "isDictating", "onError"] }, { kind: "component", type: i5.OpenExtensionDialogComponent, selector: "lib-open-extension-dialog", inputs: ["extensions"] }, { kind: "component", type: TextToSpeechComponent, selector: "tld-text-to-speech", inputs: ["settings"] }, { kind: "component", type: i5.FileUploadComponent, selector: "lib-file-upload", inputs: ["accept", "useCompactUpload", "maxSize", "multiple", "filePreviewProgress", "allowEmpty", "disabled", "dragZoneLabel", "uploadIconName", "uploadButtonLabel", "openExtensionPopupLabel", "extendedAcceptList"], outputs: ["fileChange", "errorEvent"] }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3.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: i3.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: i3.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: i3.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$1.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: "directive", type: i5$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TldTranslateSourceComponent, selector: "tld-translate-source", inputs: ["textareaDisabled", "sourceParagraphs"] }, { kind: "component", type: TldTranslateSuggestComponent, selector: "tld-translate-suggest", inputs: ["target", "source", "dictionary", "systemId", "options", "selectedSentence"] }, { kind: "component", type: TldDictionaryComponent, selector: "tld-dictionary", inputs: ["dictionary"] }, { kind: "component", type: HighlightTreeComponent, selector: "tld-highlight-tree", inputs: ["tree", "isSource", "correctionsEnabled", "highlight", "gramCheck", "selectSentence"], outputs: ["onReplace"] }, { kind: "component", type: ProgressIndicatorComponent, selector: "progress-indicator", outputs: ["onClose"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
8303
8303
  }
8304
8304
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TldTranslateTextComponent, decorators: [{
8305
8305
  type: Component,
8306
- args: [{ selector: 'tld-translate-text', template: "<!-- NOTE. tld-source-and-target-wrapper uses multiple content projections, so might seem confusing first, but elements are displayed at their places based on tld-source-and-target-wrapper component\r\nhttps://angular.io/guide/content-projection#multi-slot-content-projection\r\n-->\r\n<tld-source-and-target-wrapper [textToSpeechSourceSettings]=\"textToSpeechSourceSettings\"\r\n [clearSourceVisible]=\"source?.length>0\" (onSourceClear)=\"clearSource()\"\r\n [clearDisabled]=\"textareaDisabled\" [clearSourceTooltip]=\"'TLD_TRANSLATE.CLEAR_SOURCE_TOOLTIP'\"\r\n [ngClass]=\"{'highlight-active': highlight, 'gramcheck-active': gramCheck, 'empty-target': isEmptyTarget}\">\r\n <div sourceMain class=\"source-main\" fxLayout=\"column\">\r\n <tld-translate-source [textareaDisabled]=\"textareaDisabled\" #sourceComponent fxFlex\r\n [sourceParagraphs]=\"sourceParagraphs\"></tld-translate-source>\r\n </div>\r\n <ng-container sourceActions *ngIf=\"!hideSourceActions\">\r\n <div fxLayoutAlign=\"start center\" class=\"basic-padding\" fxLayoutGap=\"1em\">\r\n <ng-container *ngIf=\"audioInputVisible\">\r\n <tld-dictate #dictate [configuration]=\"dictateConfig\" [ngClass]=\"{'full-width' : !fileUpload}\"\r\n (isDictating)=\"dictateStartStop($event)\" (result)=\"dictateResult($event)\"\r\n (partialResult)=\"dictatePartialResult($event)\" (onError)=\"dictateError($event)\" [language]=\"sourceLanguage\">\r\n </tld-dictate>\r\n </ng-container>\r\n <div *ngIf=\"fileUpload\" class=\"file-upload-wrapper\">\r\n <tld-file-upload (fileChange)=\"fileChange($event)\" [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [uploadIconName]=\"uploadIconName\"\r\n [extendedAcceptList]=\"extendedFileTypes\" [multiple]=\"multipleFiles\" (errorEvent)=\"fileUploadError($event)\"\r\n [filePreviewProgress]=\"filePreviewProgress\" [disabled]=\"fileUploadDisabled\">\r\n <span class=\"upload-file-text\">\r\n <div fxLayout=\"row\">\r\n <span class=\"info text-l-semi-bold\">\r\n <span [innerHTML]=\"'FILE_UPLOAD.UPLOAD' | translate\" class=\"accent-color\"></span>\r\n <span>&nbsp;</span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.DRAG_AND_DROP' | translate\" fxHide.lt-sm></span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.'+ (multipleFiles? 'FILES' : 'FILE') | translate\"\r\n [ngClass.lt-sm]=\"'accent-color'\"></span>\r\n </span>\r\n </div>\r\n <div fxLayout=\"row\">\r\n <span class=\"file-upload-extensions text-m\">\r\n (\r\n <span>{{visibleExtensions}}. </span>\r\n <span *ngIf=\"maxSizeMB\" [innerHTML]=\"'FILE_UPLOAD.LIMITS_MB' | translate: {maxSizeMB: maxSizeMB}\"></span>\r\n )\r\n </span>\r\n </div>\r\n </span>\r\n </tld-file-upload>\r\n <lib-open-extension-dialog *ngIf=\"showExtensionPopup\" [extensions]=\"allowedTypesWithoutDots\">\r\n </lib-open-extension-dialog>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div targetMain class=\"target-main\">\r\n <ng-container *ngIf=\"isEmptyTarget; else translatedTextBlock\">\r\n <p *ngIf=\"showTargetPlaceholder\" class=\"description-text target-empty\"\r\n [innerHtml]=\"'TLD_TRANSLATE.TARGET_DESCRIPTION' | translate\">\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container targetActions>\r\n <div class=\"tld-translate-target-footer basic-padding\" *ngIf=\"showSuggestions || showProgressIndicator\">\r\n <tld-translate-suggest *ngIf=\"showSuggestions\" [systemId]=\"systemId\" [target]=\"targetParagraphs\"\r\n [source]=\"sourceParagraphs\">\r\n </tld-translate-suggest>\r\n <progress-indicator (onClose)=\"closeProgressIndicator()\" *ngIf=\"showProgressIndicator\"></progress-indicator>\r\n </div>\r\n </ng-container>\r\n</tld-source-and-target-wrapper>\r\n\r\n\r\n<!-- templates used for else blocks in target container -->\r\n<ng-template #translatedTextBlock>\r\n <div [class.translated-source-overflow]=\"targetWrapperOverflow\" class=\"translated-source\" [class.selectable-sentence]=\"showSuggestions\">\r\n <ng-container *ngIf=\"!urlToTranslate\">\r\n <div class=\"target-wrapper-action-buttons\">\r\n <button *ngIf=\"firstParagraphTranslated\" mat-icon-button class=\"tld-copy-translation\" (click)=\"copy()\"\r\n matTooltip=\"{{'TOOLTIPS.COPY' | translate}}\" [attr.aria-describedby]=\"copyMessageId\"\r\n (keydown.Tab)=\"switchFocusFromCopy($event)\" [attr.Id]=\"copyButtonId\">\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.COPY' | translate\">\r\n content_copy\r\n </span>\r\n </button>\r\n <button *ngIf=\"firstParagraphTranslated || translationError\" mat-icon-button class=\"tld-refresh-translation\" (click)=\"refresh()\"\r\n matTooltip=\"{{'TOOLTIPS.REFRESH' | translate}}\"\r\n >\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.REFRESH' | translate\">\r\n refresh\r\n </span>\r\n </button>\r\n <tld-text-to-speech *ngIf=\"textToSpeechTargetSettings && firstParagraphTranslated\" [settings]=\"textToSpeechTargetSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div *ngFor=\"let paragraph of targetParagraphs\">\r\n <tld-highlight-tree [highlight]=\"highlight\" [tree]=\"paragraph\" [selectSentence]=\"showSuggestions\">\r\n </tld-highlight-tree>\r\n </div>\r\n\r\n <div *ngIf=\"firstParagraphTranslated\" class=\"dictionary-wrapper\">\r\n <tld-dictionary [dictionary]=\"dictionaryEntry\"></tld-dictionary>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"urlToTranslate\" class=\"target-url-container\">\r\n <a [attr.href]=\"translateUrlRedirect\" target=\"_blank\" fxLayoutAlign=\"start center\" class=\"go-to-webtranslate\">\r\n {{urlToTranslate}}\r\n <span class=\"material-icons\" color=\"accent\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.OPEN_IN_NEW'\">\r\n open_in_new\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".go-to-webtranslate{word-break:break-all;display:inline}.basic-padding,.target-empty,.target-translated-text{padding:1em}.source-container{border-right:1px solid #cbd2d9;padding:0;overflow:auto}.target-description{margin-top:0}.target-container{position:relative}.translated-source{overflow-y:auto;overflow-x:hidden;flex:1 1 0!important;padding:1em 3.5em 1em 2em!important}.translated-source.selectable-sentence{cursor:pointer}::ng-deep .target-highlight .tld-highlight-container{padding:1em}.target-wrapper-action-buttons{position:absolute;top:.2em;right:.2em}.target-wrapper-action-buttons .tld-copy-translation,.target-wrapper-action-buttons .tld-refresh-translation,.target-wrapper-action-buttons tld-text-to-speech{display:block}.target-empty,.target-translated-text{margin:0}tld-dictionary{overflow-y:auto;flex:1 1 0!important}.source-main,.target-main{height:100%}.upload-file-text{display:inline-block;text-align:left}.file-upload-wrapper{width:100%}.file-upload-wrapper .file-upload-extensions{font-weight:400}.dictionary-wrapper{margin-top:2rem}@media (max-width: 768px){.translated-source{padding:1em 3em 1em 1em!important}}\n"] }]
8306
+ args: [{ selector: 'tld-translate-text', template: "<!-- NOTE. tld-source-and-target-wrapper uses multiple content projections, so might seem confusing first, but elements are displayed at their places based on tld-source-and-target-wrapper component\r\nhttps://angular.io/guide/content-projection#multi-slot-content-projection\r\n-->\r\n<tld-source-and-target-wrapper [textToSpeechSourceSettings]=\"textToSpeechSourceSettings\"\r\n [clearSourceVisible]=\"source?.length>0\" (onSourceClear)=\"clearSource()\"\r\n [clearDisabled]=\"textareaDisabled\" [clearSourceTooltip]=\"'TLD_TRANSLATE.CLEAR_SOURCE_TOOLTIP'\"\r\n [ngClass]=\"{'highlight-active': highlight, 'gramcheck-active': gramCheck, 'empty-target': isEmptyTarget}\">\r\n <div sourceMain class=\"source-main\" fxLayout=\"column\">\r\n <tld-translate-source [textareaDisabled]=\"textareaDisabled\" #sourceComponent fxFlex\r\n [sourceParagraphs]=\"sourceParagraphs\"></tld-translate-source>\r\n </div>\r\n <ng-container sourceActions *ngIf=\"!hideSourceActions\">\r\n <div fxLayoutAlign=\"start center\" class=\"basic-padding\" fxLayoutGap=\"1em\">\r\n <ng-container *ngIf=\"audioInputVisible\">\r\n <tld-dictate #dictate [configuration]=\"dictateConfig\" [ngClass]=\"{'full-width' : !fileUpload}\"\r\n (isDictating)=\"dictateStartStop($event)\" (result)=\"dictateResult($event)\"\r\n (partialResult)=\"dictatePartialResult($event)\" (onError)=\"dictateError($event)\" [language]=\"sourceLanguage\">\r\n </tld-dictate>\r\n </ng-container>\r\n <div *ngIf=\"fileUpload\" class=\"file-upload-wrapper\">\r\n <lib-file-upload (fileChange)=\"fileChange($event)\" [accept]=\"allowedFileTypes\" [maxSize]=\"maxFileUploadSize\" [uploadIconName]=\"uploadIconName\"\r\n [extendedAcceptList]=\"extendedFileTypes\" [multiple]=\"multipleFiles\" (errorEvent)=\"fileUploadError($event)\"\r\n [filePreviewProgress]=\"filePreviewProgress\" [disabled]=\"fileUploadDisabled\">\r\n <span class=\"upload-file-text\">\r\n <div fxLayout=\"row\">\r\n <span class=\"info text-l-semi-bold\">\r\n <span [innerHTML]=\"'FILE_UPLOAD.UPLOAD' | translate\" class=\"accent-color\"></span>\r\n <span>&nbsp;</span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.DRAG_AND_DROP' | translate\" fxHide.lt-sm></span>\r\n <span [innerHTML]=\"'FILE_UPLOAD.'+ (multipleFiles? 'FILES' : 'FILE') | translate\"\r\n [ngClass.lt-sm]=\"'accent-color'\"></span>\r\n </span>\r\n </div>\r\n <div fxLayout=\"row\">\r\n <span class=\"file-upload-extensions text-m\">\r\n (\r\n <span>{{visibleExtensions}}. </span>\r\n <span *ngIf=\"maxSizeMB\" [innerHTML]=\"'FILE_UPLOAD.LIMITS_MB' | translate: {maxSizeMB: maxSizeMB}\"></span>\r\n )\r\n </span>\r\n </div>\r\n </span>\r\n </lib-file-upload>\r\n <lib-open-extension-dialog *ngIf=\"showExtensionPopup\" [extensions]=\"allowedTypesWithoutDots\">\r\n </lib-open-extension-dialog>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div targetMain class=\"target-main\">\r\n <ng-container *ngIf=\"isEmptyTarget; else translatedTextBlock\">\r\n <p *ngIf=\"showTargetPlaceholder\" class=\"description-text target-empty\"\r\n [innerHtml]=\"'TLD_TRANSLATE.TARGET_DESCRIPTION' | translate\">\r\n </p>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container targetActions>\r\n <div class=\"tld-translate-target-footer basic-padding\" *ngIf=\"showSuggestions || showProgressIndicator\">\r\n <tld-translate-suggest *ngIf=\"showSuggestions\" [systemId]=\"systemId\" [target]=\"targetParagraphs\"\r\n [source]=\"sourceParagraphs\">\r\n </tld-translate-suggest>\r\n <progress-indicator (onClose)=\"closeProgressIndicator()\" *ngIf=\"showProgressIndicator\"></progress-indicator>\r\n </div>\r\n </ng-container>\r\n</tld-source-and-target-wrapper>\r\n\r\n\r\n<!-- templates used for else blocks in target container -->\r\n<ng-template #translatedTextBlock>\r\n <div [class.translated-source-overflow]=\"targetWrapperOverflow\" class=\"translated-source\" [class.selectable-sentence]=\"showSuggestions\">\r\n <ng-container *ngIf=\"!urlToTranslate\">\r\n <div class=\"target-wrapper-action-buttons\">\r\n <button *ngIf=\"firstParagraphTranslated\" mat-icon-button class=\"tld-copy-translation\" (click)=\"copy()\"\r\n matTooltip=\"{{'TOOLTIPS.COPY' | translate}}\" [attr.aria-describedby]=\"copyMessageId\"\r\n (keydown.Tab)=\"switchFocusFromCopy($event)\" [attr.Id]=\"copyButtonId\">\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.COPY' | translate\">\r\n content_copy\r\n </span>\r\n </button>\r\n <button *ngIf=\"firstParagraphTranslated || translationError\" mat-icon-button class=\"tld-refresh-translation\" (click)=\"refresh()\"\r\n matTooltip=\"{{'TOOLTIPS.REFRESH' | translate}}\"\r\n >\r\n <span class=\"material-icons\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.REFRESH' | translate\">\r\n refresh\r\n </span>\r\n </button>\r\n <tld-text-to-speech *ngIf=\"textToSpeechTargetSettings && firstParagraphTranslated\" [settings]=\"textToSpeechTargetSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div *ngFor=\"let paragraph of targetParagraphs\">\r\n <tld-highlight-tree [highlight]=\"highlight\" [tree]=\"paragraph\" [selectSentence]=\"showSuggestions\">\r\n </tld-highlight-tree>\r\n </div>\r\n\r\n <div *ngIf=\"firstParagraphTranslated\" class=\"dictionary-wrapper\">\r\n <tld-dictionary [dictionary]=\"dictionaryEntry\"></tld-dictionary>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"urlToTranslate\" class=\"target-url-container\">\r\n <a [attr.href]=\"translateUrlRedirect\" target=\"_blank\" fxLayoutAlign=\"start center\" class=\"go-to-webtranslate\">\r\n {{urlToTranslate}}\r\n <span class=\"material-icons\" color=\"accent\" aria-hidden=\"false\" [attr.aria-label]=\"'ARIA_LABELS.OPEN_IN_NEW'\">\r\n open_in_new\r\n </span>\r\n </a>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".go-to-webtranslate{word-break:break-all;display:inline}.basic-padding,.target-empty,.target-translated-text{padding:1em}.source-container{border-right:1px solid #cbd2d9;padding:0;overflow:auto}.target-description{margin-top:0}.target-container{position:relative}.translated-source{overflow-y:auto;overflow-x:hidden;flex:1 1 0!important;padding:1em 3.5em 1em 2em!important}.translated-source.selectable-sentence{cursor:pointer}::ng-deep .target-highlight .tld-highlight-container{padding:1em}.target-wrapper-action-buttons{position:absolute;top:.2em;right:.2em}.target-wrapper-action-buttons .tld-copy-translation,.target-wrapper-action-buttons .tld-refresh-translation,.target-wrapper-action-buttons tld-text-to-speech{display:block}.target-empty,.target-translated-text{margin:0}tld-dictionary{overflow-y:auto;flex:1 1 0!important}.source-main,.target-main{height:100%}.upload-file-text{display:inline-block;text-align:left}.file-upload-wrapper{width:100%}.file-upload-wrapper .file-upload-extensions{font-weight:400}.dictionary-wrapper{margin-top:2rem}@media (max-width: 768px){.translated-source{padding:1em 3em 1em 1em!important}}\n"] }]
8307
8307
  }], ctorParameters: () => [{ type: TldTranslateTextService }, { type: i2$3.Clipboard }, { type: i5.AlertService }, { type: TldTranslateConfigService }, { type: TldScrollService }, { type: TldTranslateSystemManagementService }, { type: AudioRecordService }, { type: TldVoiceInputService }, { type: TldTranslateFileService }, { type: i8.BreakpointObserver }], propDecorators: { sourceComponent: [{
8308
8308
  type: ViewChild,
8309
8309
  args: ["sourceComponent"]