@tilde-nlp/ngx-translate 1.0.0
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.
- package/README.md +2 -0
- package/esm2020/lib/components/shared/extension-dialog/components/index.mjs +2 -0
- package/esm2020/lib/components/shared/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.mjs +24 -0
- package/esm2020/lib/components/shared/extension-dialog/extension-dialog.component.mjs +133 -0
- package/esm2020/lib/components/shared/extension-dialog/extension-dialog.module.mjs +51 -0
- package/esm2020/lib/components/shared/extension-dialog/index.mjs +6 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-categories.enum.mjs +9 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-extensions.enum.mjs +35 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-type-icons.enum.mjs +13 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-types.enum.mjs +13 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/index.mjs +5 -0
- package/esm2020/lib/components/shared/extension-dialog/models/index.mjs +3 -0
- package/esm2020/lib/components/shared/extension-dialog/models/interfaces/config.mjs +2 -0
- package/esm2020/lib/components/shared/extension-dialog/models/interfaces/dialog-data.model.mjs +2 -0
- package/esm2020/lib/components/shared/extension-dialog/models/interfaces/index.mjs +3 -0
- package/esm2020/lib/components/shared/extension-dialog/services/extension-dialog.service.mjs +22 -0
- package/esm2020/lib/components/shared/extension-dialog/services/index.mjs +2 -0
- package/esm2020/lib/components/shared/text-to-speech/index.mjs +3 -0
- package/esm2020/lib/components/shared/text-to-speech/models/text-to-speech-settings.model.mjs +2 -0
- package/esm2020/lib/components/shared/text-to-speech/text-to-speech.component.mjs +62 -0
- package/esm2020/lib/components/shared/text-to-speech/text-to-speech.module.mjs +36 -0
- package/esm2020/lib/components/shared/vendor-disclaimer/vendor-disclaimer.component.mjs +39 -0
- package/esm2020/lib/components/shared/vendor-disclaimer/vendor-disclaimer.module.mjs +28 -0
- package/esm2020/lib/factories/file-api-service.factory.mjs +12 -0
- package/esm2020/lib/factories/system-service.factory.mjs +12 -0
- package/esm2020/lib/factories/text-api-service.factory.mjs +12 -0
- package/esm2020/lib/i18n/available-languages.mjs +19 -0
- package/esm2020/lib/i18n/de.mjs +378 -0
- package/esm2020/lib/i18n/en.mjs +426 -0
- package/esm2020/lib/i18n/et.mjs +378 -0
- package/esm2020/lib/i18n/fi.mjs +383 -0
- package/esm2020/lib/i18n/lt.mjs +378 -0
- package/esm2020/lib/i18n/lv.mjs +391 -0
- package/esm2020/lib/i18n/models/available-languages.model.mjs +2 -0
- package/esm2020/lib/i18n/pl.mjs +378 -0
- package/esm2020/lib/i18n/sv.mjs +242 -0
- package/esm2020/lib/injection-tokens/file-api-service.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/index.mjs +6 -0
- package/esm2020/lib/injection-tokens/system-service.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/text-api-service.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/tld-translate-config.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/translation-api-version.token.mjs +2 -0
- package/esm2020/lib/modules/material.module.mjs +97 -0
- package/esm2020/lib/modules/tld-audio/index.mjs +4 -0
- package/esm2020/lib/modules/tld-audio/models/audio-error-case.model.mjs +13 -0
- package/esm2020/lib/modules/tld-audio/models/dictate-configurationi.model.mjs +2 -0
- package/esm2020/lib/modules/tld-audio/models/index.mjs +3 -0
- package/esm2020/lib/modules/tld-audio/models/transcription-update.model.mjs +2 -0
- package/esm2020/lib/modules/tld-audio/services/audio-record.service.mjs +116 -0
- package/esm2020/lib/modules/tld-audio/services/index.mjs +4 -0
- package/esm2020/lib/modules/tld-audio/services/tld-voice-input-api.service.mjs +48 -0
- package/esm2020/lib/modules/tld-audio/services/tld-voice-input.service.mjs +60 -0
- package/esm2020/lib/modules/tld-audio/tld-audio.module.mjs +41 -0
- package/esm2020/lib/modules/tld-audio/tld-dictate/tld-dictate.component.mjs +151 -0
- package/esm2020/lib/modules/tld-audio/tld-record/tld-record.component.mjs +87 -0
- package/esm2020/lib/modules/tld-common/animations/pulse.animation.mjs +11 -0
- package/esm2020/lib/modules/tld-common/components/index.mjs +10 -0
- package/esm2020/lib/modules/tld-common/components/open-close-button/open-close-button.component.mjs +41 -0
- package/esm2020/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.mjs +44 -0
- package/esm2020/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.mjs +103 -0
- package/esm2020/lib/modules/tld-common/components/tld-lang-list/tld-lang-list.component.mjs +193 -0
- package/esm2020/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.mjs +60 -0
- package/esm2020/lib/modules/tld-common/components/tld-loader/tld-loader.component.mjs +12 -0
- package/esm2020/lib/modules/tld-common/components/tld-message/tld-message.component.mjs +49 -0
- package/esm2020/lib/modules/tld-common/components/tld-translate-achievement/tld-translate-achievement.component.mjs +17 -0
- package/esm2020/lib/modules/tld-common/components/translate-button/tld-translate-button.service.mjs +30 -0
- package/esm2020/lib/modules/tld-common/components/translate-button/translate-button.component.mjs +59 -0
- package/esm2020/lib/modules/tld-common/directives/drag-and-drop.directive.mjs +57 -0
- package/esm2020/lib/modules/tld-common/directives/index.mjs +2 -0
- package/esm2020/lib/modules/tld-common/index.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/auth-options.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/common.mjs +107 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-audio-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-term-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-text-to-speech-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-api-v2-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-core-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-file-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-text-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-web-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/core/index.mjs +3 -0
- package/esm2020/lib/modules/tld-common/models/core/language-menu-version.enum.mjs +6 -0
- package/esm2020/lib/modules/tld-common/models/core/translation-api-version.model.mjs +6 -0
- package/esm2020/lib/modules/tld-common/models/errors/error-codes.enum.mjs +27 -0
- package/esm2020/lib/modules/tld-common/models/errors/error-codes.type.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/errors/error.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/file-upload.model.mjs +10 -0
- package/esm2020/lib/modules/tld-common/models/index.mjs +22 -0
- package/esm2020/lib/modules/tld-common/models/lang-list-item.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/language-with-translation.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/message.model.mjs +7 -0
- package/esm2020/lib/modules/tld-common/models/selected-language.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/download-file-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/file-api-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/file-meta.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/file-translation-substatus.model.mjs +9 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/get-file-status-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/get-file-translation-status-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/remove-file-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/source-file-preview-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/start-file-translation-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/translated-document-preview-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/index.mjs +19 -0
- package/esm2020/lib/modules/tld-common/models/services/system/system.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/system/tld-system-api-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/text-api/check-grammar-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/text-api/tld-translate-text-api-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job-state.model.mjs +7 -0
- package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-start-job-request-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/pipes/index.mjs +2 -0
- package/esm2020/lib/modules/tld-common/pipes/translate-domain.pipe.mjs +27 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icon.service.mjs +30 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/excel.icon.mjs +22 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/index.mjs +10 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/interchange.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/office-other.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/other.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/pdf.icon.mjs +12 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/powerpoint.icon.mjs +10 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/scanned.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/web.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/word.icon.mjs +11 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons.mjs +52 -0
- package/esm2020/lib/modules/tld-common/services/index.mjs +5 -0
- package/esm2020/lib/modules/tld-common/services/scroll/tld-scroll.service.mjs +43 -0
- package/esm2020/lib/modules/tld-common/services/tld-alert.service.mjs +139 -0
- package/esm2020/lib/modules/tld-common/services/tld-highlight.service.mjs +25 -0
- package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +226 -0
- package/esm2020/lib/modules/tld-common/services/wtw-link-params.service.mjs +33 -0
- package/esm2020/lib/modules/tld-common/tld-common.module.mjs +97 -0
- package/esm2020/lib/modules/tld-document/download-button/download-button.component.mjs +78 -0
- package/esm2020/lib/modules/tld-document/image-conversion-help/image-conversion-help.component.mjs +32 -0
- package/esm2020/lib/modules/tld-document/index.mjs +8 -0
- package/esm2020/lib/modules/tld-document/models/file-conversion-types.model.mjs +6 -0
- package/esm2020/lib/modules/tld-document/models/index.mjs +6 -0
- package/esm2020/lib/modules/tld-document/models/start-translation.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/models/translate-file.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/models/translation-statuss.model.mjs +15 -0
- package/esm2020/lib/modules/tld-document/models/upload-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/pdf-conversion-help/pdf-conversion-help.component.mjs +32 -0
- package/esm2020/lib/modules/tld-document/services/api/file-api.service.mjs +166 -0
- package/esm2020/lib/modules/tld-document/services/api/models/file-preview-v1-progress-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/api/models/file-preview-v1-response-body.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/api/models/get-file-translation-status-v1-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/api-v2/file-api-v2.service.mjs +87 -0
- package/esm2020/lib/modules/tld-document/services/api-v2/models/file-category-v2.model.mjs +6 -0
- package/esm2020/lib/modules/tld-document/services/api-v2/models/file-translation-status-v2-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/index.mjs +3 -0
- package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +398 -0
- package/esm2020/lib/modules/tld-document/tld-document.module.mjs +70 -0
- package/esm2020/lib/modules/tld-document/tld-file-translate-base.component.mjs +76 -0
- package/esm2020/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.mjs +94 -0
- package/esm2020/lib/modules/tld-term/index.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/converted-collection-tooltip-key.model.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/converted-collection-type.model.mjs +9 -0
- package/esm2020/lib/modules/tld-term/models/index.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/models/mt-collection-status.model.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/models/tld-converted-collection.model.mjs +114 -0
- package/esm2020/lib/modules/tld-term/services/index.mjs +4 -0
- package/esm2020/lib/modules/tld-term/services/mt-collections-api.service.mjs +33 -0
- package/esm2020/lib/modules/tld-term/services/term-api.service.mjs +34 -0
- package/esm2020/lib/modules/tld-term/services/tld-term-collections.service.mjs +253 -0
- package/esm2020/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.mjs +19 -0
- package/esm2020/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.mjs +99 -0
- package/esm2020/lib/modules/tld-term/tld-term-create-collection-dialog/tld-term-create-collection-dialog.component.mjs +47 -0
- package/esm2020/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.mjs +36 -0
- package/esm2020/lib/modules/tld-term/tld-term-promotion/tld-term-promotion.component.mjs +35 -0
- package/esm2020/lib/modules/tld-term/tld-term.module.mjs +67 -0
- package/esm2020/lib/modules/tld-text/components/highlight-tree/highlight-tree.component.mjs +109 -0
- package/esm2020/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.mjs +35 -0
- package/esm2020/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.mjs +153 -0
- package/esm2020/lib/modules/tld-text/components/tld-dictionary/tld-dictionary.component.mjs +56 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-source/tld-translate-source.component.mjs +60 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/dialog/suggest-translation.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/dialog/tld-translate-suggest-dialog.component.mjs +92 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/tld-translate-suggest.component.mjs +60 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs +272 -0
- package/esm2020/lib/modules/tld-text/index.mjs +9 -0
- package/esm2020/lib/modules/tld-text/models/check-grammar-response-v2.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/dictionary.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/get-sentence-v1-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-check-base.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-check-meta.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-check-replacement.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-correction-v2.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/highlight-params.model.mjs +11 -0
- package/esm2020/lib/modules/tld-text/models/highlight-tree-type.model.mjs +12 -0
- package/esm2020/lib/modules/tld-text/models/highlight-tree.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/highlight.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/index.mjs +11 -0
- package/esm2020/lib/modules/tld-text/models/retranslate-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/source-text-changed.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-response-v1.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-response-v2.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/untranslated-paragraph.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/services/api/tld-translate-text-api.service.mjs +187 -0
- package/esm2020/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.mjs +110 -0
- package/esm2020/lib/modules/tld-text/services/index.mjs +2 -0
- package/esm2020/lib/modules/tld-text/services/tld-translate-text.service.mjs +380 -0
- package/esm2020/lib/modules/tld-text/tld-text.module.mjs +95 -0
- package/esm2020/lib/modules/tld-text/utils/index.mjs +2 -0
- package/esm2020/lib/modules/tld-text/utils/models/existing-paragraph-info.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/utils/models/index.mjs +2 -0
- package/esm2020/lib/modules/tld-text/utils/tld-translate-text.utils.mjs +56 -0
- package/esm2020/lib/modules/tld-tooltip/index.mjs +5 -0
- package/esm2020/lib/modules/tld-tooltip/models/active-data.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/models/domain.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/models/index.mjs +5 -0
- package/esm2020/lib/modules/tld-tooltip/models/switcher-options.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/models/system-metadata-keys.model.mjs +7 -0
- package/esm2020/lib/modules/tld-tooltip/models/vendor.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/description.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/language.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/metadata.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/name.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/system.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/tld-system-api.service.mjs +57 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/error.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/get-langauge-direction.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/language-direction.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.mjs +60 -0
- package/esm2020/lib/modules/tld-tooltip/services/index.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/tld-system.service.mjs +302 -0
- package/esm2020/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.mjs +69 -0
- package/esm2020/lib/modules/tld-tooltip/tld-tooltip.module.mjs +95 -0
- package/esm2020/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs +188 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/dropdown/translation-system-picker-dropdown.component.mjs +179 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.mjs +209 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/filter/translation-system-picker-filter.component.mjs +48 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/index.mjs +8 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/language-list/translation-system-picker-language-list.component.mjs +31 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/dropdown-body-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/grouped-language-item.mjs +3 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/index.mjs +6 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/opened-menu.mjs +7 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/translated-language.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/translated-system.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/services/index.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/services/translation-system-picker.service.mjs +58 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/system-list/translation-system-picker-system-list.component.mjs +31 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/system-picker-button/translation-system-picker-button.component.mjs +27 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.mjs +79 -0
- package/esm2020/lib/modules/tld-translate-file/tld-translate-file.component.mjs +65 -0
- package/esm2020/lib/modules/tld-web/index.mjs +3 -0
- package/esm2020/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +499 -0
- package/esm2020/lib/modules/tld-web/tld-translate-web.service.mjs +16 -0
- package/esm2020/lib/modules/tld-web/tld-web.module.mjs +52 -0
- package/esm2020/lib/tld-translate-body/tld-translate-body.component.mjs +60 -0
- package/esm2020/lib/tld-translate.component.mjs +229 -0
- package/esm2020/lib/tld-translate.module.mjs +118 -0
- package/esm2020/public-api.mjs +43 -0
- package/esm2020/tilde-nlp-ngx-translate.mjs +5 -0
- package/fesm2015/tilde-nlp-ngx-translate.mjs +11019 -0
- package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -0
- package/fesm2020/tilde-nlp-ngx-translate.mjs +10912 -0
- package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/shared/extension-dialog/components/index.d.ts +1 -0
- package/lib/components/shared/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.d.ts +12 -0
- package/lib/components/shared/extension-dialog/extension-dialog.component.d.ts +15 -0
- package/lib/components/shared/extension-dialog/extension-dialog.module.d.ts +15 -0
- package/lib/components/shared/extension-dialog/index.d.ts +5 -0
- package/lib/components/shared/extension-dialog/models/enums/file-categories.enum.d.ts +7 -0
- package/lib/components/shared/extension-dialog/models/enums/file-extensions.enum.d.ts +33 -0
- package/lib/components/shared/extension-dialog/models/enums/file-type-icons.enum.d.ts +11 -0
- package/lib/components/shared/extension-dialog/models/enums/file-types.enum.d.ts +11 -0
- package/lib/components/shared/extension-dialog/models/enums/index.d.ts +4 -0
- package/lib/components/shared/extension-dialog/models/index.d.ts +2 -0
- package/lib/components/shared/extension-dialog/models/interfaces/config.d.ts +18 -0
- package/lib/components/shared/extension-dialog/models/interfaces/dialog-data.model.d.ts +3 -0
- package/lib/components/shared/extension-dialog/models/interfaces/index.d.ts +2 -0
- package/lib/components/shared/extension-dialog/services/extension-dialog.service.d.ts +9 -0
- package/lib/components/shared/extension-dialog/services/index.d.ts +1 -0
- package/lib/components/shared/text-to-speech/index.d.ts +2 -0
- package/lib/components/shared/text-to-speech/models/text-to-speech-settings.model.d.ts +23 -0
- package/lib/components/shared/text-to-speech/text-to-speech.component.d.ts +18 -0
- package/lib/components/shared/text-to-speech/text-to-speech.module.d.ts +11 -0
- package/lib/components/shared/vendor-disclaimer/vendor-disclaimer.component.d.ts +17 -0
- package/lib/components/shared/vendor-disclaimer/vendor-disclaimer.module.d.ts +9 -0
- package/lib/factories/file-api-service.factory.d.ts +7 -0
- package/lib/factories/system-service.factory.d.ts +6 -0
- package/lib/factories/text-api-service.factory.d.ts +6 -0
- package/lib/i18n/available-languages.d.ts +2 -0
- package/lib/i18n/de.d.ts +377 -0
- package/lib/i18n/en.d.ts +425 -0
- package/lib/i18n/et.d.ts +377 -0
- package/lib/i18n/fi.d.ts +382 -0
- package/lib/i18n/lt.d.ts +377 -0
- package/lib/i18n/lv.d.ts +390 -0
- package/lib/i18n/models/available-languages.model.d.ts +10 -0
- package/lib/i18n/pl.d.ts +377 -0
- package/lib/i18n/sv.d.ts +241 -0
- package/lib/injection-tokens/file-api-service.token.d.ts +1 -0
- package/lib/injection-tokens/index.d.ts +5 -0
- package/lib/injection-tokens/system-service.token.d.ts +1 -0
- package/lib/injection-tokens/text-api-service.token.d.ts +1 -0
- package/lib/injection-tokens/tld-translate-config.token.d.ts +1 -0
- package/lib/injection-tokens/translation-api-version.token.d.ts +1 -0
- package/lib/modules/material.module.d.ts +27 -0
- package/lib/modules/tld-audio/index.d.ts +3 -0
- package/lib/modules/tld-audio/models/audio-error-case.model.d.ts +11 -0
- package/lib/modules/tld-audio/models/dictate-configurationi.model.d.ts +6 -0
- package/lib/modules/tld-audio/models/index.d.ts +2 -0
- package/lib/modules/tld-audio/models/transcription-update.model.d.ts +4 -0
- package/lib/modules/tld-audio/services/audio-record.service.d.ts +35 -0
- package/lib/modules/tld-audio/services/index.d.ts +3 -0
- package/lib/modules/tld-audio/services/tld-voice-input-api.service.d.ts +16 -0
- package/lib/modules/tld-audio/services/tld-voice-input.service.d.ts +20 -0
- package/lib/modules/tld-audio/tld-audio.module.d.ts +14 -0
- package/lib/modules/tld-audio/tld-dictate/tld-dictate.component.d.ts +43 -0
- package/lib/modules/tld-audio/tld-record/tld-record.component.d.ts +32 -0
- package/lib/modules/tld-common/animations/pulse.animation.d.ts +1 -0
- package/lib/modules/tld-common/components/index.d.ts +9 -0
- package/lib/modules/tld-common/components/open-close-button/open-close-button.component.d.ts +15 -0
- package/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.d.ts +19 -0
- package/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.d.ts +28 -0
- package/lib/modules/tld-common/components/tld-lang-list/tld-lang-list.component.d.ts +52 -0
- package/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.d.ts +24 -0
- package/lib/modules/tld-common/components/tld-loader/tld-loader.component.d.ts +5 -0
- package/lib/modules/tld-common/components/tld-message/tld-message.component.d.ts +18 -0
- package/lib/modules/tld-common/components/tld-translate-achievement/tld-translate-achievement.component.d.ts +6 -0
- package/lib/modules/tld-common/components/translate-button/tld-translate-button.service.d.ts +12 -0
- package/lib/modules/tld-common/components/translate-button/translate-button.component.d.ts +22 -0
- package/lib/modules/tld-common/directives/drag-and-drop.directive.d.ts +14 -0
- package/lib/modules/tld-common/directives/index.d.ts +1 -0
- package/lib/modules/tld-common/index.d.ts +1 -0
- package/lib/modules/tld-common/models/auth-options.model.d.ts +4 -0
- package/lib/modules/tld-common/models/common.d.ts +28 -0
- package/lib/modules/tld-common/models/configs/tld-audio-config.model.d.ts +22 -0
- package/lib/modules/tld-common/models/configs/tld-term-config.model.d.ts +27 -0
- package/lib/modules/tld-common/models/configs/tld-text-to-speech-config.model.d.ts +11 -0
- package/lib/modules/tld-common/models/configs/tld-translate-api-v2-config.model.d.ts +11 -0
- package/lib/modules/tld-common/models/configs/tld-translate-config.model.d.ts +18 -0
- package/lib/modules/tld-common/models/configs/tld-translate-core-config.model.d.ts +42 -0
- package/lib/modules/tld-common/models/configs/tld-translate-file-config.model.d.ts +25 -0
- package/lib/modules/tld-common/models/configs/tld-translate-text-config.model.d.ts +39 -0
- package/lib/modules/tld-common/models/configs/tld-translate-web-config.model.d.ts +10 -0
- package/lib/modules/tld-common/models/core/index.d.ts +2 -0
- package/lib/modules/tld-common/models/core/language-menu-version.enum.d.ts +4 -0
- package/lib/modules/tld-common/models/core/translation-api-version.model.d.ts +4 -0
- package/lib/modules/tld-common/models/errors/error-codes.enum.d.ts +21 -0
- package/lib/modules/tld-common/models/errors/error-codes.type.d.ts +4 -0
- package/lib/modules/tld-common/models/errors/error.model.d.ts +3 -0
- package/lib/modules/tld-common/models/file-upload.model.d.ts +13 -0
- package/lib/modules/tld-common/models/index.d.ts +21 -0
- package/lib/modules/tld-common/models/lang-list-item.model.d.ts +6 -0
- package/lib/modules/tld-common/models/language-with-translation.model.d.ts +6 -0
- package/lib/modules/tld-common/models/message.model.d.ts +11 -0
- package/lib/modules/tld-common/models/selected-language.model.d.ts +4 -0
- package/lib/modules/tld-common/models/services/file-api/download-file-params.model.d.ts +5 -0
- package/lib/modules/tld-common/models/services/file-api/file-api-service.model.d.ts +17 -0
- package/lib/modules/tld-common/models/services/file-api/file-meta.model.d.ts +8 -0
- package/lib/modules/tld-common/models/services/file-api/file-translation-substatus.model.d.ts +7 -0
- package/lib/modules/tld-common/models/services/file-api/get-file-status-params.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/file-api/get-file-translation-status-response.model.d.ts +13 -0
- package/lib/modules/tld-common/models/services/file-api/remove-file-params.model.d.ts +4 -0
- package/lib/modules/tld-common/models/services/file-api/source-file-preview-response.model.d.ts +8 -0
- package/lib/modules/tld-common/models/services/file-api/start-file-translation-params.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/file-api/translated-document-preview-params.model.d.ts +4 -0
- package/lib/modules/tld-common/models/services/index.d.ts +18 -0
- package/lib/modules/tld-common/models/services/system/system.model.d.ts +17 -0
- package/lib/modules/tld-common/models/services/system/tld-system-api-service.model.d.ts +5 -0
- package/lib/modules/tld-common/models/services/text-api/check-grammar-response.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/text-api/tld-translate-text-api-service.model.d.ts +26 -0
- package/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job-state.model.d.ts +5 -0
- package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job.model.d.ts +21 -0
- package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-start-job-request-params.model.d.ts +7 -0
- package/lib/modules/tld-common/pipes/index.d.ts +1 -0
- package/lib/modules/tld-common/pipes/translate-domain.pipe.d.ts +13 -0
- package/lib/modules/tld-common/services/icon-service/icon.service.d.ts +12 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/excel.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/index.d.ts +9 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/interchange.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/office-other.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/other.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/pdf.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/powerpoint.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/scanned.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/web.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/word.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons.d.ts +3 -0
- package/lib/modules/tld-common/services/index.d.ts +4 -0
- package/lib/modules/tld-common/services/scroll/tld-scroll.service.d.ts +12 -0
- package/lib/modules/tld-common/services/tld-alert.service.d.ts +33 -0
- package/lib/modules/tld-common/services/tld-highlight.service.d.ts +14 -0
- package/lib/modules/tld-common/services/tld-translate-config.service.d.ts +39 -0
- package/lib/modules/tld-common/services/wtw-link-params.service.d.ts +13 -0
- package/lib/modules/tld-common/tld-common.module.d.ts +23 -0
- package/lib/modules/tld-document/download-button/download-button.component.d.ts +30 -0
- package/lib/modules/tld-document/image-conversion-help/image-conversion-help.component.d.ts +21 -0
- package/lib/modules/tld-document/index.d.ts +7 -0
- package/lib/modules/tld-document/models/file-conversion-types.model.d.ts +4 -0
- package/lib/modules/tld-document/models/index.d.ts +5 -0
- package/lib/modules/tld-document/models/start-translation.model.d.ts +16 -0
- package/lib/modules/tld-document/models/translate-file.model.d.ts +33 -0
- package/lib/modules/tld-document/models/translation-statuss.model.d.ts +12 -0
- package/lib/modules/tld-document/models/upload-response.model.d.ts +8 -0
- package/lib/modules/tld-document/pdf-conversion-help/pdf-conversion-help.component.d.ts +21 -0
- package/lib/modules/tld-document/services/api/file-api.service.d.ts +26 -0
- package/lib/modules/tld-document/services/api/models/file-preview-v1-progress-response.model.d.ts +6 -0
- package/lib/modules/tld-document/services/api/models/file-preview-v1-response-body.model.d.ts +8 -0
- package/lib/modules/tld-document/services/api/models/get-file-translation-status-v1-response.model.d.ts +11 -0
- package/lib/modules/tld-document/services/api-v2/file-api-v2.service.d.ts +22 -0
- package/lib/modules/tld-document/services/api-v2/models/file-category-v2.model.d.ts +4 -0
- package/lib/modules/tld-document/services/api-v2/models/file-translation-status-v2-response.model.d.ts +20 -0
- package/lib/modules/tld-document/services/index.d.ts +2 -0
- package/lib/modules/tld-document/services/tld-translate-file.service.d.ts +60 -0
- package/lib/modules/tld-document/tld-document.module.d.ts +19 -0
- package/lib/modules/tld-document/tld-file-translate-base.component.d.ts +29 -0
- package/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.d.ts +40 -0
- package/lib/modules/tld-term/index.d.ts +6 -0
- package/lib/modules/tld-term/models/converted-collection-tooltip-key.model.d.ts +5 -0
- package/lib/modules/tld-term/models/converted-collection-type.model.d.ts +7 -0
- package/lib/modules/tld-term/models/index.d.ts +6 -0
- package/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.d.ts +15 -0
- package/lib/modules/tld-term/models/mt-collection-status.model.d.ts +5 -0
- package/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.d.ts +11 -0
- package/lib/modules/tld-term/models/term-api/tld-term-collection.model.d.ts +46 -0
- package/lib/modules/tld-term/models/tld-converted-collection.model.d.ts +43 -0
- package/lib/modules/tld-term/services/index.d.ts +3 -0
- package/lib/modules/tld-term/services/mt-collections-api.service.d.ts +13 -0
- package/lib/modules/tld-term/services/term-api.service.d.ts +15 -0
- package/lib/modules/tld-term/services/tld-term-collections.service.d.ts +57 -0
- package/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.d.ts +9 -0
- package/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.d.ts +39 -0
- package/lib/modules/tld-term/tld-term-create-collection-dialog/tld-term-create-collection-dialog.component.d.ts +20 -0
- package/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.d.ts +13 -0
- package/lib/modules/tld-term/tld-term-promotion/tld-term-promotion.component.d.ts +17 -0
- package/lib/modules/tld-term/tld-term.module.d.ts +22 -0
- package/lib/modules/tld-text/components/highlight-tree/highlight-tree.component.d.ts +27 -0
- package/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.d.ts +20 -0
- package/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.d.ts +40 -0
- package/lib/modules/tld-text/components/tld-dictionary/tld-dictionary.component.d.ts +24 -0
- package/lib/modules/tld-text/components/tld-translate-source/tld-translate-source.component.d.ts +36 -0
- package/lib/modules/tld-text/components/tld-translate-suggest/dialog/suggest-translation.model.d.ts +11 -0
- package/lib/modules/tld-text/components/tld-translate-suggest/dialog/tld-translate-suggest-dialog.component.d.ts +33 -0
- package/lib/modules/tld-text/components/tld-translate-suggest/tld-translate-suggest.component.d.ts +24 -0
- package/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.d.ts +104 -0
- package/lib/modules/tld-text/index.d.ts +8 -0
- package/lib/modules/tld-text/models/check-grammar-response-v2.model.d.ts +4 -0
- package/lib/modules/tld-text/models/dictionary.model.d.ts +28 -0
- package/lib/modules/tld-text/models/get-sentence-v1-response.model.d.ts +5 -0
- package/lib/modules/tld-text/models/grammar-check-base.model.d.ts +6 -0
- package/lib/modules/tld-text/models/grammar-check-meta.model.d.ts +5 -0
- package/lib/modules/tld-text/models/grammar-check-replacement.model.d.ts +5 -0
- package/lib/modules/tld-text/models/grammar-correction-v2.model.d.ts +9 -0
- package/lib/modules/tld-text/models/highlight-params.model.d.ts +10 -0
- package/lib/modules/tld-text/models/highlight-tree-type.model.d.ts +10 -0
- package/lib/modules/tld-text/models/highlight-tree.model.d.ts +22 -0
- package/lib/modules/tld-text/models/highlight.model.d.ts +10 -0
- package/lib/modules/tld-text/models/index.d.ts +10 -0
- package/lib/modules/tld-text/models/retranslate-params.model.d.ts +4 -0
- package/lib/modules/tld-text/models/source-text-changed.model.d.ts +6 -0
- package/lib/modules/tld-text/models/translate-paragraph-params.model.d.ts +6 -0
- package/lib/modules/tld-text/models/translate-paragraph-response-v1.model.d.ts +15 -0
- package/lib/modules/tld-text/models/translate-paragraph-response-v2.model.d.ts +9 -0
- package/lib/modules/tld-text/models/translate-paragraph-response.model.d.ts +7 -0
- package/lib/modules/tld-text/models/untranslated-paragraph.model.d.ts +4 -0
- package/lib/modules/tld-text/services/api/tld-translate-text-api.service.d.ts +24 -0
- package/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.d.ts +17 -0
- package/lib/modules/tld-text/services/index.d.ts +1 -0
- package/lib/modules/tld-text/services/tld-translate-text.service.d.ts +104 -0
- package/lib/modules/tld-text/tld-text.module.d.ts +27 -0
- package/lib/modules/tld-text/utils/index.d.ts +1 -0
- package/lib/modules/tld-text/utils/models/existing-paragraph-info.model.d.ts +5 -0
- package/lib/modules/tld-text/utils/models/index.d.ts +1 -0
- package/lib/modules/tld-text/utils/tld-translate-text.utils.d.ts +9 -0
- package/lib/modules/tld-tooltip/index.d.ts +4 -0
- package/lib/modules/tld-tooltip/models/active-data.model.d.ts +24 -0
- package/lib/modules/tld-tooltip/models/domain.model.d.ts +8 -0
- package/lib/modules/tld-tooltip/models/index.d.ts +4 -0
- package/lib/modules/tld-tooltip/models/switcher-options.model.d.ts +14 -0
- package/lib/modules/tld-tooltip/models/system-metadata-keys.model.d.ts +5 -0
- package/lib/modules/tld-tooltip/models/vendor.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/description.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/language.model.d.ts +5 -0
- package/lib/modules/tld-tooltip/services/api/models/metadata.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/name.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/system.model.d.ts +14 -0
- package/lib/modules/tld-tooltip/services/api/tld-system-api.service.d.ts +15 -0
- package/lib/modules/tld-tooltip/services/api-v2/models/error.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api-v2/models/get-langauge-direction.d.ts +6 -0
- package/lib/modules/tld-tooltip/services/api-v2/models/language-direction.model.d.ts +7 -0
- package/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.d.ts +15 -0
- package/lib/modules/tld-tooltip/services/index.d.ts +1 -0
- package/lib/modules/tld-tooltip/services/tld-system.service.d.ts +57 -0
- package/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.d.ts +33 -0
- package/lib/modules/tld-tooltip/tld-tooltip.module.d.ts +25 -0
- package/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.d.ts +64 -0
- package/lib/modules/tld-tooltip/translation-system-picker/dropdown/translation-system-picker-dropdown.component.d.ts +44 -0
- package/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.d.ts +65 -0
- package/lib/modules/tld-tooltip/translation-system-picker/filter/translation-system-picker-filter.component.d.ts +17 -0
- package/lib/modules/tld-tooltip/translation-system-picker/index.d.ts +7 -0
- package/lib/modules/tld-tooltip/translation-system-picker/language-list/translation-system-picker-language-list.component.d.ts +14 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/dropdown-body-config.model.d.ts +11 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/grouped-language-item.d.ts +8 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/index.d.ts +5 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/opened-menu.d.ts +5 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/translated-language.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/translated-system.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/translation-system-picker/services/index.d.ts +1 -0
- package/lib/modules/tld-tooltip/translation-system-picker/services/translation-system-picker.service.d.ts +24 -0
- package/lib/modules/tld-tooltip/translation-system-picker/system-list/translation-system-picker-system-list.component.d.ts +13 -0
- package/lib/modules/tld-tooltip/translation-system-picker/system-picker-button/translation-system-picker-button.component.d.ts +10 -0
- package/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.d.ts +34 -0
- package/lib/modules/tld-translate-file/tld-translate-file.component.d.ts +37 -0
- package/lib/modules/tld-web/index.d.ts +2 -0
- package/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.d.ts +85 -0
- package/lib/modules/tld-web/tld-translate-web.service.d.ts +7 -0
- package/lib/modules/tld-web/tld-web.module.d.ts +14 -0
- package/lib/tld-translate-body/tld-translate-body.component.d.ts +23 -0
- package/lib/tld-translate.component.d.ts +65 -0
- package/lib/tld-translate.module.d.ts +23 -0
- package/package.json +40 -0
- package/public-api.d.ts +28 -0
- package/src/assets/webcomponent/styles.css +1 -0
- package/src/assets/webcomponent/tld-translate.js +3 -0
- package/src/assets/webtranslate/page-translate-widget.js +4934 -0
- package/src/assets/webtranslate/remove.png +0 -0
- package/src/assets/webtranslate/tilde_logo.png +0 -0
- package/src/assets/webtranslate/translate-website.js +393 -0
- package/src/assets/webtranslate/widget.css +139 -0
- package/src/styles/colors.scss +15 -0
- package/src/styles/fonts.scss +3 -0
- package/src/styles/mixin/border-default.scss +10 -0
- package/src/styles/mixin/tld-translate-accent-colors.scss +46 -0
- package/src/styles/mixin/tld-translate-colors.scss +7 -0
- package/src/styles/mixin/tld-translate-placeholders.scss +5 -0
- package/src/styles/mixin/tld-translate-primary-colors.scss +5 -0
- package/src/styles/styles.scss +377 -0
- package/src/styles/translator-borders.scss +28 -0
- package/tilde-nlp-ngx-translate-1.0.0.tgz +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { Common } from '../../../tld-common/models';
|
|
4
|
+
import { HighlightParams } from '../../models/highlight-params.model';
|
|
5
|
+
import { HighlightTreeType } from '../../models/highlight-tree-type.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../tld-term/services";
|
|
8
|
+
import * as i2 from "@angular/common/http";
|
|
9
|
+
import * as i3 from "../../../tld-common/services";
|
|
10
|
+
export class TldTranslateTextApiService {
|
|
11
|
+
constructor(collectionService, http, config, alerts) {
|
|
12
|
+
this.collectionService = collectionService;
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.alerts = alerts;
|
|
16
|
+
}
|
|
17
|
+
updateTranslation(options, systemID, text, translation) {
|
|
18
|
+
const url = this.config.textConfig.updateTranslationUrl;
|
|
19
|
+
const headers = Common.getAuthHeaders(this.config);
|
|
20
|
+
const params = {
|
|
21
|
+
appID: this.config.coreConfig.appId,
|
|
22
|
+
options,
|
|
23
|
+
systemID,
|
|
24
|
+
text,
|
|
25
|
+
translation
|
|
26
|
+
};
|
|
27
|
+
return this.http.post(url, params, { headers });
|
|
28
|
+
}
|
|
29
|
+
dictionaryTranslation(text, srcCode, trgCode) {
|
|
30
|
+
const authHeaders = Common.getAuthHeaders(this.config);
|
|
31
|
+
// TODO. Create type for params.
|
|
32
|
+
const params = {
|
|
33
|
+
word: text,
|
|
34
|
+
sourceLanguage: srcCode,
|
|
35
|
+
targetLanguage: trgCode
|
|
36
|
+
};
|
|
37
|
+
return this.http.get(this.config.textConfig.dictionaryUrl, { headers: authHeaders, params: params });
|
|
38
|
+
}
|
|
39
|
+
translateParagraph(requestParams) {
|
|
40
|
+
const headers = Common.getAuthHeaders(this.config);
|
|
41
|
+
// TODO. Create type for params.
|
|
42
|
+
const params = {
|
|
43
|
+
appID: this.config.coreConfig.appId,
|
|
44
|
+
options: "widget=text,alignment,markSentences",
|
|
45
|
+
systemID: requestParams.system.id,
|
|
46
|
+
text: requestParams.text,
|
|
47
|
+
};
|
|
48
|
+
const selectedCollectionId = this.collectionService.selectedIdForTranslation();
|
|
49
|
+
if (selectedCollectionId) {
|
|
50
|
+
params.options += `,termCorpusId=${selectedCollectionId}`;
|
|
51
|
+
}
|
|
52
|
+
return this.http.get(this.config?.textConfig?.translationUrl, { headers: headers, params: params }).pipe(map((response) => {
|
|
53
|
+
if (response.ErrorMessage) {
|
|
54
|
+
this.alerts.unhandeledError(response.ErrorMessage);
|
|
55
|
+
throw response.ErrorMessage;
|
|
56
|
+
}
|
|
57
|
+
const converted = this.convertParagraphResponse(requestParams, response);
|
|
58
|
+
return converted;
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
convertParagraphResponse(request, response) {
|
|
62
|
+
if (this.config.textConfig.highlight) {
|
|
63
|
+
return this.createHighlightTrees(request.text, response, request.paragraphIx);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return {
|
|
67
|
+
sourceTree: { text: request.text, paragraphIx: request.paragraphIx, type: HighlightTreeType.PARAGRAPH, root: null, originalText: request.text },
|
|
68
|
+
targetTree: { text: response.translation, paragraphIx: request.paragraphIx, type: HighlightTreeType.PARAGRAPH, root: null, originalText: response.translation }
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
createHighlightTrees(sourceText, response, paragraphIx) {
|
|
73
|
+
const targetTree = this.getSentence(response.translation, response.translationSentenceRanges, response.targetWordRanges, paragraphIx);
|
|
74
|
+
const sourceTree = this.getSentence(sourceText, response.originalSentenceRanges, response.sourceWordRanges, paragraphIx);
|
|
75
|
+
this.findSiblings(response.wordAlignment, sourceTree.words, targetTree.words);
|
|
76
|
+
return { sourceTree: sourceTree.tree, targetTree: targetTree.tree };
|
|
77
|
+
}
|
|
78
|
+
getSentence(text, sentenceRanges, wordRanges, paragraphIx) {
|
|
79
|
+
const tree = { text: text, children: [], paragraphIx, type: HighlightTreeType.PARAGRAPH, root: null, originalText: text };
|
|
80
|
+
const words = [];
|
|
81
|
+
let wordRangeIx = -1;
|
|
82
|
+
let lastProcessedCharIx = 0;
|
|
83
|
+
sentenceRanges.forEach((sentenceRange, sentenceIx) => {
|
|
84
|
+
const sentenceString = this.getSentenceFromRange(sentenceRange, text);
|
|
85
|
+
tree.children[sentenceIx] = {
|
|
86
|
+
text: sentenceString, children: [],
|
|
87
|
+
class: `${HighlightParams.sentenceClass} ${HighlightParams.sentenceClass}-${paragraphIx}-${sentenceIx}`,
|
|
88
|
+
elementId: sentenceIx.toString(),
|
|
89
|
+
type: HighlightTreeType.SENTENCE,
|
|
90
|
+
root: tree,
|
|
91
|
+
originalText: sentenceString
|
|
92
|
+
};
|
|
93
|
+
const sentenceStartIx = sentenceRange[0];
|
|
94
|
+
const sentenceEndIx = sentenceStartIx + sentenceRange[1];
|
|
95
|
+
let multipleWordWrapper;
|
|
96
|
+
for (let wordIx = wordRangeIx + 1; wordIx < wordRanges.length; wordIx++) {
|
|
97
|
+
const wordStartIx = wordRanges[wordIx][0];
|
|
98
|
+
const wordEndIx = wordRanges[wordIx][1];
|
|
99
|
+
const nextWordStartIx = wordRanges[wordIx + 1]?.[0];
|
|
100
|
+
if (wordStartIx >= sentenceStartIx && wordEndIx <= sentenceEndIx) {
|
|
101
|
+
wordRangeIx = wordIx;
|
|
102
|
+
if (lastProcessedCharIx < wordStartIx) {
|
|
103
|
+
// words are not together anymore.
|
|
104
|
+
multipleWordWrapper = null;
|
|
105
|
+
const originalText = text.slice(lastProcessedCharIx, wordStartIx);
|
|
106
|
+
// not a word.
|
|
107
|
+
const escaped = Common.escapeHtmlString(originalText);
|
|
108
|
+
tree.children[sentenceIx].children.push({
|
|
109
|
+
text: escaped,
|
|
110
|
+
type: HighlightTreeType.OTHER,
|
|
111
|
+
root: tree,
|
|
112
|
+
originalText
|
|
113
|
+
});
|
|
114
|
+
lastProcessedCharIx = wordStartIx;
|
|
115
|
+
}
|
|
116
|
+
const originalText = text.slice(wordStartIx, wordEndIx);
|
|
117
|
+
const escaped = Common.escapeHtmlString(originalText);
|
|
118
|
+
const elementId = `${paragraphIx}-${sentenceIx}-${wordIx}`;
|
|
119
|
+
const word = {
|
|
120
|
+
text: escaped,
|
|
121
|
+
class: `${HighlightParams.wordClass} ${HighlightParams.wordClass}-${elementId}`,
|
|
122
|
+
elementId: elementId,
|
|
123
|
+
type: originalText === "-" ? HighlightTreeType.HYPEN : HighlightTreeType.WORD,
|
|
124
|
+
root: tree,
|
|
125
|
+
originalText
|
|
126
|
+
};
|
|
127
|
+
if (word.type === HighlightTreeType.HYPEN) {
|
|
128
|
+
multipleWordWrapper = null;
|
|
129
|
+
}
|
|
130
|
+
else if (wordEndIx === nextWordStartIx) {
|
|
131
|
+
if (!multipleWordWrapper) {
|
|
132
|
+
multipleWordWrapper = {
|
|
133
|
+
originalText: "",
|
|
134
|
+
root: tree,
|
|
135
|
+
text: "",
|
|
136
|
+
type: HighlightTreeType.WORD_WRAPPER,
|
|
137
|
+
children: [],
|
|
138
|
+
class: HighlightParams.multipleWordWrapper
|
|
139
|
+
};
|
|
140
|
+
tree.children[sentenceIx].children.push(multipleWordWrapper);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (multipleWordWrapper) {
|
|
144
|
+
multipleWordWrapper.originalText += originalText;
|
|
145
|
+
multipleWordWrapper.text += escaped;
|
|
146
|
+
multipleWordWrapper.children.push(word);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
tree.children[sentenceIx].children.push(word);
|
|
150
|
+
}
|
|
151
|
+
words.push(word);
|
|
152
|
+
lastProcessedCharIx = wordEndIx;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
return { tree, words };
|
|
160
|
+
}
|
|
161
|
+
getSentenceFromRange(range, text) {
|
|
162
|
+
const start = range[0] == 0 ? range[0] : range[0] + 1;
|
|
163
|
+
const end = start + range[1];
|
|
164
|
+
return text.slice(start, end);
|
|
165
|
+
}
|
|
166
|
+
findSiblings(wordAlignment, sourceWords, targetWords) {
|
|
167
|
+
wordAlignment.forEach((range) => {
|
|
168
|
+
const sourceWordIx = range[0];
|
|
169
|
+
const targetWordIx = range[1];
|
|
170
|
+
const sourceWord = sourceWords[sourceWordIx];
|
|
171
|
+
const targetWord = targetWords[targetWordIx];
|
|
172
|
+
if (sourceWord && targetWord) {
|
|
173
|
+
sourceWord.class += ` ${HighlightParams.siblingClass}-${targetWord.elementId}`;
|
|
174
|
+
targetWord.class += ` ${HighlightParams.siblingClass}-${sourceWord.elementId}`;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
TldTranslateTextApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiService, deps: [{ token: i1.TldTermCollectionsService }, { token: i2.HttpClient }, { token: i3.TldTranslateConfigService }, { token: i3.TldAlertService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
180
|
+
TldTranslateTextApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiService, providedIn: 'root' });
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiService, decorators: [{
|
|
182
|
+
type: Injectable,
|
|
183
|
+
args: [{
|
|
184
|
+
providedIn: 'root'
|
|
185
|
+
}]
|
|
186
|
+
}], ctorParameters: function () { return [{ type: i1.TldTermCollectionsService }, { type: i2.HttpClient }, { type: i3.TldTranslateConfigService }, { type: i3.TldAlertService }]; } });
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRleHQvc2VydmljZXMvYXBpL3RsZC10cmFuc2xhdGUtdGV4dC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsTUFBTSxFQUFpRSxNQUFNLDRCQUE0QixDQUFDO0FBSW5ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFRM0UsTUFBTSxPQUFPLDBCQUEwQjtJQUVyQyxZQUE2QixpQkFBNEMsRUFDdEQsSUFBZ0IsRUFDaEIsTUFBaUMsRUFDakMsTUFBdUI7UUFIYixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTJCO1FBQ3RELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7SUFBSSxDQUFDO0lBRS9DLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxRQUFnQixFQUFFLElBQVksRUFBRSxXQUFtQjtRQUNwRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRztZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFL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Q0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sWUFBWSxDQUFDLGFBQXlCLEVBQUUsV0FBNkIsRUFBRSxXQUE2QjtRQUMxRyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTdDLElBQUksVUFBVSxJQUFJLFVBQVUsRUFBRTtnQkFDNUIsVUFBVSxDQUFDLEtBQUssSUFBSSxJQUFJLGVBQWUsQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvRSxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksZUFBZSxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDaEY7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7O3VIQTFMVSwwQkFBMEI7MkhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb21tb24sIElUbGRUcmFuc2xhdGVUZXh0QXBpU2VydmljZSwgSVRyYW5zbGF0ZVBhcmFncmFwaFJlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZEFsZXJ0U2VydmljZSwgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRUZXJtQ29sbGVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLXRlcm0vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJR2V0U2VudGVuY2VWMVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2V0LXNlbnRlbmNlLXYxLXJlc3BvbnNlLm1vZGVsJztcclxuaW1wb3J0IHsgSGlnaGxpZ2h0UGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpZ2hsaWdodC1wYXJhbXMubW9kZWwnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRUcmVlVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9oaWdobGlnaHQtdHJlZS10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgSUhpZ2hsaWdodFRyZWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlnaGxpZ2h0LXRyZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2VWMSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGUtcGFyYWdyYXBoLXJlc3BvbnNlLXYxLm1vZGVsJztcclxuaW1wb3J0IHsgSVRyYW5zbGF0ZVBhcmFncmFwaFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zbGF0ZS1wYXJhZ3JhcGgtcmVzcG9uc2UubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlVGV4dEFwaVNlcnZpY2UgaW1wbGVtZW50cyBJVGxkVHJhbnNsYXRlVGV4dEFwaVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbGxlY3Rpb25TZXJ2aWNlOiBUbGRUZXJtQ29sbGVjdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVGxkQWxlcnRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgdXBkYXRlVHJhbnNsYXRpb24ob3B0aW9uczogc3RyaW5nLCBzeXN0ZW1JRDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcsIHRyYW5zbGF0aW9uOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLnRleHRDb25maWcudXBkYXRlVHJhbnNsYXRpb25Vcmw7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gQ29tbW9uLmdldEF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgYXBwSUQ6IHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwSWQsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIHN5c3RlbUlELFxyXG4gICAgICB0ZXh0LFxyXG4gICAgICB0cmFuc2xhdGlvblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgcGFyYW1zLCB7IGhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxuICBkaWN0aW9uYXJ5VHJhbnNsYXRpb24odGV4dDogc3RyaW5nLCBzcmNDb2RlOiBzdHJpbmcsIHRyZ0NvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXV0aEhlYWRlcnMgPSBDb21tb24uZ2V0QXV0aEhlYWRlcnModGhpcy5jb25maWcpO1xyXG4gICAgLy8gVE9ETy4gQ3JlYXRlIHR5cGUgZm9yIHBhcmFtcy5cclxuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xyXG4gICAgICB3b3JkOiB0ZXh0LFxyXG4gICAgICBzb3VyY2VMYW5ndWFnZTogc3JjQ29kZSxcclxuICAgICAgdGFyZ2V0TGFuZ3VhZ2U6IHRyZ0NvZGVcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5jb25maWcudGV4dENvbmZpZy5kaWN0aW9uYXJ5VXJsLCB7IGhlYWRlcnM6IGF1dGhIZWFkZXJzLCBwYXJhbXM6IHBhcmFtcyB9KVxyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlUGFyYWdyYXBoKHJlcXVlc3RQYXJhbXM6IElUcmFuc2xhdGVQYXJhZ3JhcGhSZXF1ZXN0UGFyYW1zKTogT2JzZXJ2YWJsZTxJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBDb21tb24uZ2V0QXV0aEhlYWRlcnModGhpcy5jb25maWcpO1xyXG4gICAgLy8gVE9ETy4gQ3JlYXRlIHR5cGUgZm9yIHBhcmFtcy5cclxuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xyXG4gICAgICBhcHBJRDogdGhpcy5jb25maWcuY29yZUNvbmZpZy5hcHBJZCxcclxuICAgICAgb3B0aW9uczogXCJ3aWRnZXQ9dGV4dCxhbGlnbm1lbnQsbWFya1NlbnRlbmNlc1wiLFxyXG4gICAgICBzeXN0ZW1JRDogcmVxdWVzdFBhcmFtcy5zeXN0ZW0uaWQsXHJcbiAgICAgIHRleHQ6IHJlcXVlc3RQYXJhbXMudGV4dCxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRDb2xsZWN0aW9uSWQgPSB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlLnNlbGVjdGVkSWRGb3JUcmFuc2xhdGlvbigpO1xyXG4gICAgaWYgKHNlbGVjdGVkQ29sbGVjdGlvbklkKSB7XHJcbiAgICAgIHBhcmFtcy5vcHRpb25zICs9IGAsdGVybUNvcnB1c0lkPSR7c2VsZWN0ZWRDb2xsZWN0aW9uSWR9YDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2VWMT4odGhpcy5jb25maWc/LnRleHRDb25maWc/LnRyYW5zbGF0aW9uVXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHBhcmFtczogcGFyYW1zIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IElUcmFuc2xhdGVQYXJhZ3JhcGhSZXNwb25zZVYxKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yTWVzc2FnZSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB0aHJvdyByZXNwb25zZS5FcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IHRoaXMuY29udmVydFBhcmFncmFwaFJlc3BvbnNlKHJlcXVlc3RQYXJhbXMsIHJlc3BvbnNlKTtcclxuICAgICAgICByZXR1cm4gY29udmVydGVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRQYXJhZ3JhcGhSZXNwb25zZShyZXF1ZXN0OiBJVHJhbnNsYXRlUGFyYWdyYXBoUmVxdWVzdFBhcmFtcywgcmVzcG9uc2U6IElUcmFuc2xhdGVQYXJhZ3JhcGhSZXNwb25zZVYxKTogSVRyYW5zbGF0ZVBhcmFncmFwaFJlc3BvbnNlIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy50ZXh0Q29uZmlnLmhpZ2hsaWdodCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVIaWdobGlnaHRUcmVlcyhyZXF1ZXN0LnRleHQsIHJlc3BvbnNlLCByZXF1ZXN0LnBhcmFncmFwaEl4KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHNvdXJjZVRyZWU6IHsgdGV4dDogcmVxdWVzdC50ZXh0LCBwYXJhZ3JhcGhJeDogcmVxdWVzdC5wYXJhZ3JhcGhJeCwgdHlwZTogSGlnaGxpZ2h0VHJlZVR5cGUuUEFSQUdSQVBILCByb290OiBudWxsLCBvcmlnaW5hbFRleHQ6IHJlcXVlc3QudGV4dCB9LFxyXG4gICAgICAgIHRhcmdldFRyZWU6IHsgdGV4dDogcmVzcG9uc2UudHJhbnNsYXRpb24sIHBhcmFncmFwaEl4OiByZXF1ZXN0LnBhcmFncmFwaEl4LCB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5QQVJBR1JBUEgsIHJvb3Q6IG51bGwsIG9yaWdpbmFsVGV4dDogcmVzcG9uc2UudHJhbnNsYXRpb24gfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVIaWdobGlnaHRUcmVlcyhzb3VyY2VUZXh0OiBzdHJpbmcsIHJlc3BvbnNlOiBJVHJhbnNsYXRlUGFyYWdyYXBoUmVzcG9uc2VWMSwgcGFyYWdyYXBoSXg6IG51bWJlcik6IElUcmFuc2xhdGVQYXJhZ3JhcGhSZXNwb25zZSB7XHJcbiAgICBjb25zdCB0YXJnZXRUcmVlID0gdGhpcy5nZXRTZW50ZW5jZShyZXNwb25zZS50cmFuc2xhdGlvbiwgcmVzcG9uc2UudHJhbnNsYXRpb25TZW50ZW5jZVJhbmdlcywgcmVzcG9uc2UudGFyZ2V0V29yZFJhbmdlcywgcGFyYWdyYXBoSXgpO1xyXG4gICAgY29uc3Qgc291cmNlVHJlZSA9IHRoaXMuZ2V0U2VudGVuY2Uoc291cmNlVGV4dCwgcmVzcG9uc2Uub3JpZ2luYWxTZW50ZW5jZVJhbmdlcywgcmVzcG9uc2Uuc291cmNlV29yZFJhbmdlcywgcGFyYWdyYXBoSXgpO1xyXG4gICAgdGhpcy5maW5kU2libGluZ3MocmVzcG9uc2Uud29yZEFsaWdubWVudCwgc291cmNlVHJlZS53b3JkcywgdGFyZ2V0VHJlZS53b3Jkcyk7XHJcbiAgICByZXR1cm4geyBzb3VyY2VUcmVlOiBzb3VyY2VUcmVlLnRyZWUsIHRhcmdldFRyZWU6IHRhcmdldFRyZWUudHJlZSB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZW50ZW5jZSh0ZXh0OiBzdHJpbmcsIHNlbnRlbmNlUmFuZ2VzOiBudW1iZXJbXVtdLCB3b3JkUmFuZ2VzOiBudW1iZXJbXVtdLCBwYXJhZ3JhcGhJeDogbnVtYmVyKTogSUdldFNlbnRlbmNlVjFSZXNwb25zZU1vZGVsIHtcclxuICAgIGNvbnN0IHRyZWU6IElIaWdobGlnaHRUcmVlID0geyB0ZXh0OiB0ZXh0LCBjaGlsZHJlbjogW10sIHBhcmFncmFwaEl4LCB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5QQVJBR1JBUEgsIHJvb3Q6IG51bGwsIG9yaWdpbmFsVGV4dDogdGV4dCB9O1xyXG4gICAgY29uc3Qgd29yZHM6IElIaWdobGlnaHRUcmVlW10gPSBbXTtcclxuICAgIGxldCB3b3JkUmFuZ2VJeCA9IC0xO1xyXG4gICAgbGV0IGxhc3RQcm9jZXNzZWRDaGFySXggPSAwO1xyXG5cclxuICAgIHNlbnRlbmNlUmFuZ2VzLmZvckVhY2goKHNlbnRlbmNlUmFuZ2UsIHNlbnRlbmNlSXgpID0+IHtcclxuICAgICAgY29uc3Qgc2VudGVuY2VTdHJpbmcgPSB0aGlzLmdldFNlbnRlbmNlRnJvbVJhbmdlKHNlbnRlbmNlUmFuZ2UsIHRleHQpO1xyXG4gICAgICB0cmVlLmNoaWxkcmVuW3NlbnRlbmNlSXhdID0ge1xyXG4gICAgICAgIHRleHQ6IHNlbnRlbmNlU3RyaW5nLCBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgY2xhc3M6IGAke0hpZ2hsaWdodFBhcmFtcy5zZW50ZW5jZUNsYXNzfSAke0hpZ2hsaWdodFBhcmFtcy5zZW50ZW5jZUNsYXNzfS0ke3BhcmFncmFwaEl4fS0ke3NlbnRlbmNlSXh9YCxcclxuICAgICAgICBlbGVtZW50SWQ6IHNlbnRlbmNlSXgudG9TdHJpbmcoKSxcclxuICAgICAgICB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5TRU5URU5DRSxcclxuICAgICAgICByb290OiB0cmVlLFxyXG4gICAgICAgIG9yaWdpbmFsVGV4dDogc2VudGVuY2VTdHJpbmdcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnN0IHNlbnRlbmNlU3RhcnRJeCA9IHNlbnRlbmNlUmFuZ2VbMF07XHJcbiAgICAgIGNvbnN0IHNlbnRlbmNlRW5kSXggPSBzZW50ZW5jZVN0YXJ0SXggKyBzZW50ZW5jZVJhbmdlWzFdO1xyXG5cclxuICAgICAgbGV0IG11bHRpcGxlV29yZFdyYXBwZXI6IElIaWdobGlnaHRUcmVlO1xyXG4gICAgICBmb3IgKGxldCB3b3JkSXggPSB3b3JkUmFuZ2VJeCArIDE7IHdvcmRJeCA8IHdvcmRSYW5nZXMubGVuZ3RoOyB3b3JkSXgrKykge1xyXG4gICAgICAgIGNvbnN0IHdvcmRTdGFydEl4ID0gd29yZFJhbmdlc1t3b3JkSXhdWzBdO1xyXG4gICAgICAgIGNvbnN0IHdvcmRFbmRJeCA9IHdvcmRSYW5nZXNbd29yZEl4XVsxXTtcclxuICAgICAgICBjb25zdCBuZXh0V29yZFN0YXJ0SXggPSB3b3JkUmFuZ2VzW3dvcmRJeCArIDFdPy5bMF07XHJcblxyXG4gICAgICAgIGlmICh3b3JkU3RhcnRJeCA+PSBzZW50ZW5jZVN0YXJ0SXggJiYgd29yZEVuZEl4IDw9IHNlbnRlbmNlRW5kSXgpIHtcclxuICAgICAgICAgIHdvcmRSYW5nZUl4ID0gd29yZEl4O1xyXG4gICAgICAgICAgaWYgKGxhc3RQcm9jZXNzZWRDaGFySXggPCB3b3JkU3RhcnRJeCkge1xyXG4gICAgICAgICAgICAvLyB3b3JkcyBhcmUgbm90IHRvZ2V0aGVyIGFueW1vcmUuXHJcbiAgICAgICAgICAgIG11bHRpcGxlV29yZFdyYXBwZXIgPSBudWxsO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFRleHQgPSB0ZXh0LnNsaWNlKGxhc3RQcm9jZXNzZWRDaGFySXgsIHdvcmRTdGFydEl4KTtcclxuICAgICAgICAgICAgLy8gbm90IGEgd29yZC5cclxuICAgICAgICAgICAgY29uc3QgZXNjYXBlZCA9IENvbW1vbi5lc2NhcGVIdG1sU3RyaW5nKG9yaWdpbmFsVGV4dCk7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5bc2VudGVuY2VJeF0uY2hpbGRyZW4ucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogZXNjYXBlZCxcclxuICAgICAgICAgICAgICB0eXBlOiBIaWdobGlnaHRUcmVlVHlwZS5PVEhFUixcclxuICAgICAgICAgICAgICByb290OiB0cmVlLFxyXG4gICAgICAgICAgICAgIG9yaWdpbmFsVGV4dFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgbGFzdFByb2Nlc3NlZENoYXJJeCA9IHdvcmRTdGFydEl4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxUZXh0ID0gdGV4dC5zbGljZSh3b3JkU3RhcnRJeCwgd29yZEVuZEl4KTtcclxuICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSBDb21tb24uZXNjYXBlSHRtbFN0cmluZyhvcmlnaW5hbFRleHQpO1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudElkID0gYCR7cGFyYWdyYXBoSXh9LSR7c2VudGVuY2VJeH0tJHt3b3JkSXh9YDtcclxuICAgICAgICAgIGNvbnN0IHdvcmQ6IElIaWdobGlnaHRUcmVlID0ge1xyXG4gICAgICAgICAgICB0ZXh0OiBlc2NhcGVkLFxyXG4gICAgICAgICAgICBjbGFzczogYCR7SGlnaGxpZ2h0UGFyYW1zLndvcmRDbGFzc30gJHtIaWdobGlnaHRQYXJhbXMud29yZENsYXNzfS0ke2VsZW1lbnRJZH1gLFxyXG4gICAgICAgICAgICBlbGVtZW50SWQ6IGVsZW1lbnRJZCxcclxuICAgICAgICAgICAgdHlwZTogb3JpZ2luYWxUZXh0ID09PSBcIi1cIiA/IEhpZ2hsaWdodFRyZWVUeXBlLkhZUEVOIDogSGlnaGxpZ2h0VHJlZVR5cGUuV09SRCxcclxuICAgICAgICAgICAgcm9vdDogdHJlZSxcclxuICAgICAgICAgICAgb3JpZ2luYWxUZXh0XHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGlmICh3b3JkLnR5cGUgPT09IEhpZ2hsaWdodFRyZWVUeXBlLkhZUEVOKSB7XHJcbiAgICAgICAgICAgIG11bHRpcGxlV29yZFdyYXBwZXIgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAod29yZEVuZEl4ID09PSBuZXh0V29yZFN0YXJ0SXgpIHtcclxuICAgICAgICAgICAgaWYgKCFtdWx0aXBsZVdvcmRXcmFwcGVyKSB7XHJcbiAgICAgICAgICAgICAgbXVsdGlwbGVXb3JkV3JhcHBlciA9IHtcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsVGV4dDogXCJcIixcclxuICAgICAgICAgICAgICAgIHJvb3Q6IHRyZWUsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogSGlnaGxpZ2h0VHJlZVR5cGUuV09SRF9XUkFQUEVSLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICAgICAgY2xhc3M6IEhpZ2hsaWdodFBhcmFtcy5tdWx0aXBsZVdvcmRXcmFwcGVyXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5bc2VudGVuY2VJeF0uY2hpbGRyZW4ucHVzaChtdWx0aXBsZVdvcmRXcmFwcGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG11bHRpcGxlV29yZFdyYXBwZXIpIHtcclxuICAgICAgICAgICAgbXVsdGlwbGVXb3JkV3JhcHBlci5vcmlnaW5hbFRleHQgKz0gb3JpZ2luYWxUZXh0O1xyXG4gICAgICAgICAgICBtdWx0aXBsZVdvcmRXcmFwcGVyLnRleHQgKz0gZXNjYXBlZDtcclxuICAgICAgICAgICAgbXVsdGlwbGVXb3JkV3JhcHBlci5jaGlsZHJlbi5wdXNoKHdvcmQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRyZWUuY2hpbGRyZW5bc2VudGVuY2VJeF0uY2hpbGRyZW4ucHVzaCh3b3JkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHdvcmRzLnB1c2god29yZCk7XHJcbiAgICAgICAgICBsYXN0UHJvY2Vzc2VkQ2hhckl4ID0gd29yZEVuZEl4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiB7IHRyZWUsIHdvcmRzIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlbnRlbmNlRnJvbVJhbmdlKHJhbmdlOiBudW1iZXJbXSwgdGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2VbMF0gPT0gMCA/IHJhbmdlWzBdIDogcmFuZ2VbMF0gKyAxO1xyXG4gICAgY29uc3QgZW5kID0gc3RhcnQgKyByYW5nZVsxXTtcclxuICAgIHJldHVybiB0ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kU2libGluZ3Mod29yZEFsaWdubWVudDogbnVtYmVyW11bXSwgc291cmNlV29yZHM6IElIaWdobGlnaHRUcmVlW10sIHRhcmdldFdvcmRzOiBJSGlnaGxpZ2h0VHJlZVtdKSB7XHJcbiAgICB3b3JkQWxpZ25tZW50LmZvckVhY2goKHJhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNvdXJjZVdvcmRJeCA9IHJhbmdlWzBdO1xyXG4gICAgICBjb25zdCB0YXJnZXRXb3JkSXggPSByYW5nZVsxXTtcclxuICAgICAgY29uc3Qgc291cmNlV29yZCA9IHNvdXJjZVdvcmRzW3NvdXJjZVdvcmRJeF07XHJcbiAgICAgIGNvbnN0IHRhcmdldFdvcmQgPSB0YXJnZXRXb3Jkc1t0YXJnZXRXb3JkSXhdO1xyXG5cclxuICAgICAgaWYgKHNvdXJjZVdvcmQgJiYgdGFyZ2V0V29yZCkge1xyXG4gICAgICAgIHNvdXJjZVdvcmQuY2xhc3MgKz0gYCAke0hpZ2hsaWdodFBhcmFtcy5zaWJsaW5nQ2xhc3N9LSR7dGFyZ2V0V29yZC5lbGVtZW50SWR9YDtcclxuICAgICAgICB0YXJnZXRXb3JkLmNsYXNzICs9IGAgJHtIaWdobGlnaHRQYXJhbXMuc2libGluZ0NsYXNzfS0ke3NvdXJjZVdvcmQuZWxlbWVudElkfWA7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { catchError, map } from 'rxjs/operators';
|
|
4
|
+
import { Common } from '../../../tld-common/models';
|
|
5
|
+
import { HighlightParams } from '../../models/highlight-params.model';
|
|
6
|
+
import { HighlightTreeType } from '../../models/highlight-tree-type.model';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "../../../tld-common/services";
|
|
10
|
+
export class TldTranslateTextApiV2Service {
|
|
11
|
+
constructor(http, config) {
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.config = config;
|
|
14
|
+
}
|
|
15
|
+
translateParagraph(params) {
|
|
16
|
+
const requestParams = {
|
|
17
|
+
domain: params.system.domain,
|
|
18
|
+
srcLang: params.system.sourceLanguage,
|
|
19
|
+
text: [params.text],
|
|
20
|
+
trgLang: params.system.targetLanguage
|
|
21
|
+
};
|
|
22
|
+
const sourceText = params.text;
|
|
23
|
+
const sourceTree = {
|
|
24
|
+
text: Common.escapeHtmlString(sourceText),
|
|
25
|
+
paragraphIx: params.paragraphIx,
|
|
26
|
+
type: HighlightTreeType.PARAGRAPH,
|
|
27
|
+
root: null,
|
|
28
|
+
originalText: sourceText
|
|
29
|
+
};
|
|
30
|
+
const headers = Common.GetApiV2AuthHeaders(this.config);
|
|
31
|
+
if (this.config.textConfig.checkSourceGrammar && this.config.textConfig.grammarCheckLanguages.includes(params.system.sourceLanguage)) {
|
|
32
|
+
this.checkAndAttachGrammarToTree(params.text, params.system.sourceLanguage, sourceTree);
|
|
33
|
+
}
|
|
34
|
+
return this.http.post(this.config.apiV2Config.translationUrl, requestParams, { headers }).pipe(map((translationResponse) => {
|
|
35
|
+
const systemId = `${requestParams.srcLang}-${requestParams.trgLang}-${translationResponse.domain}`;
|
|
36
|
+
const originalTranslation = translationResponse.translations[0].translation;
|
|
37
|
+
const targetTree = {
|
|
38
|
+
text: Common.escapeHtmlString(originalTranslation),
|
|
39
|
+
paragraphIx: params.paragraphIx,
|
|
40
|
+
type: HighlightTreeType.PARAGRAPH,
|
|
41
|
+
root: null,
|
|
42
|
+
originalText: originalTranslation
|
|
43
|
+
};
|
|
44
|
+
return {
|
|
45
|
+
sourceTree,
|
|
46
|
+
targetTree,
|
|
47
|
+
systemId
|
|
48
|
+
};
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
checkGrammar(text, language) {
|
|
52
|
+
return this.http.post(this.config.apiV2Config.grammarCheckUrl, { text, language });
|
|
53
|
+
}
|
|
54
|
+
checkAndAttachGrammarToTree(text, language, tree) {
|
|
55
|
+
this.checkGrammar(text, language)
|
|
56
|
+
.pipe(catchError((error) => {
|
|
57
|
+
console.error(error);
|
|
58
|
+
return of(null);
|
|
59
|
+
}))
|
|
60
|
+
.subscribe((grammarCheckResponse) => {
|
|
61
|
+
if (grammarCheckResponse?.corrections?.length > 0) {
|
|
62
|
+
tree.children = [];
|
|
63
|
+
let lastIx = 0;
|
|
64
|
+
grammarCheckResponse.corrections.forEach((correction) => {
|
|
65
|
+
const wordStartIx = correction.span.start;
|
|
66
|
+
const wordEndIx = correction.span.end;
|
|
67
|
+
if (lastIx < wordStartIx) {
|
|
68
|
+
const originalText = text.slice(lastIx, wordStartIx);
|
|
69
|
+
const escaped = Common.escapeHtmlString(originalText);
|
|
70
|
+
tree.children.push({ text: escaped, originalText, type: HighlightTreeType.OTHER, root: tree });
|
|
71
|
+
}
|
|
72
|
+
const originalText = text.slice(wordStartIx, wordEndIx);
|
|
73
|
+
const child = {
|
|
74
|
+
text: Common.escapeHtmlString(text.slice(wordStartIx, wordEndIx)),
|
|
75
|
+
class: `${HighlightParams.invalidPhraseClass}`,
|
|
76
|
+
grammarMeta: {
|
|
77
|
+
startIx: wordStartIx,
|
|
78
|
+
endIx: wordEndIx,
|
|
79
|
+
replacements: correction.replacements.map(el => el.value)
|
|
80
|
+
},
|
|
81
|
+
type: HighlightTreeType.OTHER,
|
|
82
|
+
root: tree,
|
|
83
|
+
originalText
|
|
84
|
+
};
|
|
85
|
+
tree.children.push(child);
|
|
86
|
+
lastIx = wordEndIx;
|
|
87
|
+
});
|
|
88
|
+
if (lastIx != text.length - 1) {
|
|
89
|
+
const originalText = text.slice(lastIx, text.length - 1);
|
|
90
|
+
tree.children.push({
|
|
91
|
+
text: Common.escapeHtmlString(originalText),
|
|
92
|
+
type: HighlightTreeType.OTHER,
|
|
93
|
+
root: tree,
|
|
94
|
+
originalText
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
tree.children.push();
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
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 });
|
|
103
|
+
TldTranslateTextApiV2Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, providedIn: 'root' });
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateTextApiV2Service, decorators: [{
|
|
105
|
+
type: Injectable,
|
|
106
|
+
args: [{
|
|
107
|
+
providedIn: 'root'
|
|
108
|
+
}]
|
|
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
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './tld-translate-text.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90bGQtdHJhbnNsYXRlLXRleHQuc2VydmljZSc7XHJcbiJdfQ==
|