@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
package/esm2020/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../tld-common/services";
|
|
6
|
+
import * as i2 from "../services/tld-system.service";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/flex-layout/flex";
|
|
9
|
+
import * as i5 from "@angular/flex-layout/extended";
|
|
10
|
+
import * as i6 from "@angular/material/button";
|
|
11
|
+
import * as i7 from "@angular/material/tooltip";
|
|
12
|
+
import * as i8 from "../../tld-common/components/tld-lang-list/tld-lang-list.component";
|
|
13
|
+
import * as i9 from "../../tld-common/components/tld-loader/tld-loader.component";
|
|
14
|
+
import * as i10 from "../../tld-common/components/translate-button/translate-button.component";
|
|
15
|
+
import * as i11 from "../../tld-common/components/tld-list-menu/tld-list-menu.component";
|
|
16
|
+
import * as i12 from "../../tld-term/tld-term-menu/tld-term-menu.component";
|
|
17
|
+
import * as i13 from "../tld-domain-list/tld-domain-list.component";
|
|
18
|
+
import * as i14 from "@ngx-translate/core";
|
|
19
|
+
export class TldTranslateSwitcherComponent {
|
|
20
|
+
constructor(config, tldSystem, elRef) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
this.tldSystem = tldSystem;
|
|
23
|
+
this.elRef = elRef;
|
|
24
|
+
this.buttonDisabled = false;
|
|
25
|
+
this.showTranslateButton = true;
|
|
26
|
+
this.hideOnSmallScreens = true;
|
|
27
|
+
this.hideLangMenuLabels = false;
|
|
28
|
+
this.onDomainChange = new EventEmitter();
|
|
29
|
+
this.onActionClick = new EventEmitter();
|
|
30
|
+
this.onSourceLanguageChange = new EventEmitter();
|
|
31
|
+
this.onTargetLanguageChange = new EventEmitter();
|
|
32
|
+
this.onLanguageSwap = new EventEmitter();
|
|
33
|
+
this.onVendorChange = new EventEmitter();
|
|
34
|
+
this.destroy$ = new Subject();
|
|
35
|
+
this.srcLangTestId = "src-lang-menu";
|
|
36
|
+
this.trgLangTestId = "trg-lang-menu";
|
|
37
|
+
}
|
|
38
|
+
onResize() {
|
|
39
|
+
const pxPerLanguage = 110;
|
|
40
|
+
const componentWidth = this.getElementRefWidth(this.wrapper);
|
|
41
|
+
const parentWidth = this.elRef?.nativeElement?.parentElement.offsetWidth || 0;
|
|
42
|
+
const wrapperWidth = this.useParentWidth ? parentWidth : componentWidth;
|
|
43
|
+
const fromWidth = this.getElementRefWidth(this.fromLabel);
|
|
44
|
+
const sourceAsideWidth = this.getElementRefWidth(this.sourceAside);
|
|
45
|
+
const toWidth = this.getElementRefWidth(this.toLabel);
|
|
46
|
+
const domainsWidth = this.getElementRefWidth(this.domainWrapper);
|
|
47
|
+
const vendorsWidth = this.getElementRefWidth(this.vendorWrapper);
|
|
48
|
+
const collectionsWidth = this.getElementRefWidth(this.collectionWrapper);
|
|
49
|
+
// additional px to distract because swap lang button and dropdown icons.
|
|
50
|
+
const extra = 100;
|
|
51
|
+
const freeWidth = wrapperWidth - fromWidth - sourceAsideWidth - toWidth - domainsWidth - vendorsWidth - collectionsWidth - extra;
|
|
52
|
+
const languageCount = Math.floor(freeWidth / 2 / pxPerLanguage);
|
|
53
|
+
this.languageCountByScreenSize = languageCount > 0 ? languageCount : 1;
|
|
54
|
+
}
|
|
55
|
+
get visibleLanguageCount() {
|
|
56
|
+
if (this.languageCountByScreenSize && this.languageCountByScreenSize < this.maxDisplayedLanguages) {
|
|
57
|
+
return this.languageCountByScreenSize;
|
|
58
|
+
}
|
|
59
|
+
return this.maxDisplayedLanguages;
|
|
60
|
+
}
|
|
61
|
+
get collectionsVisible() {
|
|
62
|
+
return this.isCollectionsActivated
|
|
63
|
+
&& this.isTerminologySupported;
|
|
64
|
+
}
|
|
65
|
+
get showVendors() {
|
|
66
|
+
return this.config?.coreConfig.showVendors && this.settings.vendors?.length > 0;
|
|
67
|
+
}
|
|
68
|
+
get showDomains() {
|
|
69
|
+
return this.config?.coreConfig.showDomains &&
|
|
70
|
+
!this.showDomainsWithLanguageName &&
|
|
71
|
+
this.settings?.domains?.domains?.length > 1 &&
|
|
72
|
+
this.settings?.source;
|
|
73
|
+
}
|
|
74
|
+
get isSwapLanguagesDisabled() {
|
|
75
|
+
return this.disabled || !this.settings.swapActive;
|
|
76
|
+
}
|
|
77
|
+
get domainSide() { return this.config.coreConfig.domainSide; }
|
|
78
|
+
get swapIconPosition() { return this.config.coreConfig.swapIconPosition; }
|
|
79
|
+
ngOnInit() {
|
|
80
|
+
this.subscribeToActiveData();
|
|
81
|
+
}
|
|
82
|
+
ngAfterViewInit() {
|
|
83
|
+
this.onResize();
|
|
84
|
+
}
|
|
85
|
+
ngOnDestroy() {
|
|
86
|
+
this.destroy$.next(null);
|
|
87
|
+
this.destroy$.complete();
|
|
88
|
+
}
|
|
89
|
+
actionClick() {
|
|
90
|
+
this.onActionClick.emit();
|
|
91
|
+
}
|
|
92
|
+
domainChange(systemId) {
|
|
93
|
+
this.onDomainChange.emit(systemId);
|
|
94
|
+
}
|
|
95
|
+
sourceLangChange(language) {
|
|
96
|
+
this.onSourceLanguageChange.emit(language);
|
|
97
|
+
}
|
|
98
|
+
swapSourceAndTarget() {
|
|
99
|
+
this.onLanguageSwap.emit();
|
|
100
|
+
}
|
|
101
|
+
targetLangChange(language) {
|
|
102
|
+
this.onTargetLanguageChange.emit(language);
|
|
103
|
+
}
|
|
104
|
+
vendorChange(systemId) {
|
|
105
|
+
this.onVendorChange.emit(systemId);
|
|
106
|
+
}
|
|
107
|
+
getElementRefWidth(element) {
|
|
108
|
+
return element?.nativeElement.offsetWidth || 0;
|
|
109
|
+
}
|
|
110
|
+
subscribeToActiveData() {
|
|
111
|
+
this.tldSystem.getActiveData()
|
|
112
|
+
.pipe(takeUntil(this.destroy$))
|
|
113
|
+
.subscribe((active) => {
|
|
114
|
+
if (!active) {
|
|
115
|
+
this.isTerminologySupported = false;
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.isTerminologySupported = this.tldSystem.isTerminologySupported(active.system);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
TldTranslateSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateSwitcherComponent, deps: [{ token: i1.TldTranslateConfigService }, { token: i2.TldSystemService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
+
TldTranslateSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTranslateSwitcherComponent, selector: "tld-translate-switcher", inputs: { buttonDisabled: "buttonDisabled", showTranslateButton: "showTranslateButton", hideOnSmallScreens: "hideOnSmallScreens", disabled: "disabled", hideLangMenuLabels: "hideLangMenuLabels", maxDisplayedLanguages: "maxDisplayedLanguages", collections: "collections", showDomainsWithLanguageName: "showDomainsWithLanguageName", isCollectionsActivated: "isCollectionsActivated", useParentWidth: "useParentWidth", loader: "loader", settings: "settings" }, outputs: { onDomainChange: "onDomainChange", onActionClick: "onActionClick", onSourceLanguageChange: "onSourceLanguageChange", onTargetLanguageChange: "onTargetLanguageChange", onLanguageSwap: "onLanguageSwap", onVendorChange: "onVendorChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "fromLabel", first: true, predicate: ["fromLabel"], descendants: true }, { propertyName: "sourceAside", first: true, predicate: ["sourceAside"], descendants: true }, { propertyName: "toLabel", first: true, predicate: ["toLabel"], descendants: true }, { propertyName: "domainWrapper", first: true, predicate: ["domainWrapper"], descendants: true }, { propertyName: "vendorWrapper", first: true, predicate: ["vendorWrapper"], descendants: true }, { propertyName: "collectionWrapper", first: true, predicate: ["collectionWrapper"], descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"tld-translate-switcher-container\" #wrapper\r\n [ngClass.lt-md]=\"'tld-translate-switcher-container-tablet'\"\r\n [ngClass.lt-sm]=\"'tld-translate-switcher-container-mobile'\"\r\n [class.tld-switcher-with-collections]='collectionsVisible'>\r\n\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #fromLabel>{{'TLD_TRANSLATE.FROM' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list id=\"tld-source-language-list\" [disabled]=\"disabled\" [testId]=\"srcLangTestId\"\r\n [languages]=\"settings.sourceLanguageList\" (onLanguageChange)=\"sourceLangChange($event)\"\r\n [selected]=\"settings.source\" [maxDisplayedLanguages]=\"visibleLanguageCount\"></tld-lang-list>\r\n <ng-container *ngIf=\"domainSide==='src'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div #sourceAside *ngIf=\"swapIconPosition==='src'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"swapIconPosition==='center'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutAlign.lt-sm=\"end center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #toLabel>{{'TLD_TRANSLATE.TO' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list [disabled]=\"disabled\" id=\"tld-target-language-list\" [languages]=\"settings.targetLanguageList\"\r\n (onLanguageChange)=\"targetLangChange($event)\" [selected]=\"settings.target\"\r\n [maxDisplayedLanguages]=\"visibleLanguageCount\" [testId]=\"trgLangTestId\" (onDomainChange)=\"domainChange($event)\"\r\n [showDomainsWithLanguageName]=\"showDomainsWithLanguageName\">\r\n <ng-container *ngIf=\"domainSide==='trg'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"tld-translate-vendor-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showVendors\" #vendorWrapper>\r\n <tld-list-menu (selectionChange)=\"domainChange($event)\" [list]=\"settings.vendors\" [titleKey]=\"'title'\"\r\n [valueKey]=\"'systemId'\" testId=\"tld-vendor-list\" [disabled]=\"disabled\" [showContent]=\"false\"\r\n [ariaLabel]=\"'TLD_TRANSLATE.VENDORS_ARIA_LABEL' | translate\" [selectedValue]=\"settings.systemId\">\r\n </tld-list-menu>\r\n </div>\r\n </tld-lang-list>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutGap.gt-xs=\"16px\">\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper>\r\n <tld-term-menu></tld-term-menu>\r\n </div>\r\n <tld-loader *ngIf=\"loader\" fxHide.lt-sm></tld-loader>\r\n <tld-translate-button [enablePulseAnimation]=\"true\" *ngIf=\"showTranslateButton && !loader\" class=\"switcher-translate-button\"\r\n [fxHide.lt-sm]=\"hideOnSmallScreens\" [disabled]=\"buttonDisabled\"></tld-translate-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #swapButtonTemplate>\r\n <button [disabled]=\"isSwapLanguagesDisabled\" class=\"swap-languages-button\" mat-icon-button\r\n (click)=\"swapSourceAndTarget()\" aria-label=\"swap languages\" color=\"primary\"\r\n matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #domainTemplate>\r\n <div class=\"tld-translate-domain-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showDomains\" #domainWrapper>\r\n <tld-domain-list fxLayoutAlign=\"center center\" (selectionChange)=\"domainChange($event)\"\r\n [list]=\"settings.domains.domains\" [selected]=\"settings.domains.active\" [selected]=\"settings.domains.active\"\r\n [disabled]=\"disabled\"></tld-domain-list>\r\n </div>\r\n</ng-template>\r\n", styles: [".tld-translate-switcher-container:not(.tld-translate-switcher-container-tablet,.tld-translate-switcher-container-mobile) tld-lang-list{margin:0 10px}.tld-translate-switcher-container-mobile :host ::ng-deep button{padding:0!important}.swap-icon{color:#5a6672}.switcher-translate-button{min-width:100px}mat-select{min-width:75px;max-width:125px}.swap-languages-button[disabled]{cursor:not-allowed}.tld-translate-domain-selection,tld-translate-vendor-selection{height:100%}tld-loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i5.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: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i8.TldLangListComponent, selector: "tld-lang-list", inputs: ["disabled", "pxPerLanguage", "languages", "testId", "selected", "maxDisplayedLanguages", "showDomainsWithLanguageName"], outputs: ["onLanguageChange", "onDomainChange"] }, { kind: "component", type: i9.TldLoaderComponent, selector: "tld-loader" }, { kind: "component", type: i10.TldTranslateButtonComponent, selector: "tld-translate-button", inputs: ["disabled", "enablePulseAnimation"], outputs: ["clicked"] }, { kind: "component", type: i11.TldListMenuComponent, selector: "tld-list-menu", inputs: ["titleKey", "list", "showContent", "selectedValue", "disabled", "ariaLabel", "valueKey", "testId"], outputs: ["selectionChange"] }, { kind: "component", type: i12.TldTermMenuComponent, selector: "tld-term-menu" }, { kind: "component", type: i13.TldDomainListComponent, selector: "tld-domain-list", inputs: ["list", "selected", "disabled"], outputs: ["selectionChange"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateSwitcherComponent, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{ selector: 'tld-translate-switcher', template: "<div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"tld-translate-switcher-container\" #wrapper\r\n [ngClass.lt-md]=\"'tld-translate-switcher-container-tablet'\"\r\n [ngClass.lt-sm]=\"'tld-translate-switcher-container-mobile'\"\r\n [class.tld-switcher-with-collections]='collectionsVisible'>\r\n\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #fromLabel>{{'TLD_TRANSLATE.FROM' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list id=\"tld-source-language-list\" [disabled]=\"disabled\" [testId]=\"srcLangTestId\"\r\n [languages]=\"settings.sourceLanguageList\" (onLanguageChange)=\"sourceLangChange($event)\"\r\n [selected]=\"settings.source\" [maxDisplayedLanguages]=\"visibleLanguageCount\"></tld-lang-list>\r\n <ng-container *ngIf=\"domainSide==='src'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div #sourceAside *ngIf=\"swapIconPosition==='src'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"swapIconPosition==='center'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutAlign.lt-sm=\"end center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #toLabel>{{'TLD_TRANSLATE.TO' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list [disabled]=\"disabled\" id=\"tld-target-language-list\" [languages]=\"settings.targetLanguageList\"\r\n (onLanguageChange)=\"targetLangChange($event)\" [selected]=\"settings.target\"\r\n [maxDisplayedLanguages]=\"visibleLanguageCount\" [testId]=\"trgLangTestId\" (onDomainChange)=\"domainChange($event)\"\r\n [showDomainsWithLanguageName]=\"showDomainsWithLanguageName\">\r\n <ng-container *ngIf=\"domainSide==='trg'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"tld-translate-vendor-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showVendors\" #vendorWrapper>\r\n <tld-list-menu (selectionChange)=\"domainChange($event)\" [list]=\"settings.vendors\" [titleKey]=\"'title'\"\r\n [valueKey]=\"'systemId'\" testId=\"tld-vendor-list\" [disabled]=\"disabled\" [showContent]=\"false\"\r\n [ariaLabel]=\"'TLD_TRANSLATE.VENDORS_ARIA_LABEL' | translate\" [selectedValue]=\"settings.systemId\">\r\n </tld-list-menu>\r\n </div>\r\n </tld-lang-list>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutGap.gt-xs=\"16px\">\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper>\r\n <tld-term-menu></tld-term-menu>\r\n </div>\r\n <tld-loader *ngIf=\"loader\" fxHide.lt-sm></tld-loader>\r\n <tld-translate-button [enablePulseAnimation]=\"true\" *ngIf=\"showTranslateButton && !loader\" class=\"switcher-translate-button\"\r\n [fxHide.lt-sm]=\"hideOnSmallScreens\" [disabled]=\"buttonDisabled\"></tld-translate-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #swapButtonTemplate>\r\n <button [disabled]=\"isSwapLanguagesDisabled\" class=\"swap-languages-button\" mat-icon-button\r\n (click)=\"swapSourceAndTarget()\" aria-label=\"swap languages\" color=\"primary\"\r\n matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #domainTemplate>\r\n <div class=\"tld-translate-domain-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showDomains\" #domainWrapper>\r\n <tld-domain-list fxLayoutAlign=\"center center\" (selectionChange)=\"domainChange($event)\"\r\n [list]=\"settings.domains.domains\" [selected]=\"settings.domains.active\" [selected]=\"settings.domains.active\"\r\n [disabled]=\"disabled\"></tld-domain-list>\r\n </div>\r\n</ng-template>\r\n", styles: [".tld-translate-switcher-container:not(.tld-translate-switcher-container-tablet,.tld-translate-switcher-container-mobile) tld-lang-list{margin:0 10px}.tld-translate-switcher-container-mobile :host ::ng-deep button{padding:0!important}.swap-icon{color:#5a6672}.switcher-translate-button{min-width:100px}mat-select{min-width:75px;max-width:125px}.swap-languages-button[disabled]{cursor:not-allowed}.tld-translate-domain-selection,tld-translate-vendor-selection{height:100%}tld-loader{margin:auto}\n"] }]
|
|
127
|
+
}], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.TldSystemService }, { type: i0.ElementRef }]; }, propDecorators: { wrapper: [{
|
|
128
|
+
type: ViewChild,
|
|
129
|
+
args: ["wrapper"]
|
|
130
|
+
}], fromLabel: [{
|
|
131
|
+
type: ViewChild,
|
|
132
|
+
args: ["fromLabel"]
|
|
133
|
+
}], sourceAside: [{
|
|
134
|
+
type: ViewChild,
|
|
135
|
+
args: ["sourceAside"]
|
|
136
|
+
}], toLabel: [{
|
|
137
|
+
type: ViewChild,
|
|
138
|
+
args: ["toLabel"]
|
|
139
|
+
}], domainWrapper: [{
|
|
140
|
+
type: ViewChild,
|
|
141
|
+
args: ["domainWrapper"]
|
|
142
|
+
}], vendorWrapper: [{
|
|
143
|
+
type: ViewChild,
|
|
144
|
+
args: ["vendorWrapper"]
|
|
145
|
+
}], collectionWrapper: [{
|
|
146
|
+
type: ViewChild,
|
|
147
|
+
args: ["collectionWrapper"]
|
|
148
|
+
}], onResize: [{
|
|
149
|
+
type: HostListener,
|
|
150
|
+
args: ['window:resize']
|
|
151
|
+
}], buttonDisabled: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], showTranslateButton: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], hideOnSmallScreens: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], disabled: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], hideLangMenuLabels: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], maxDisplayedLanguages: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], collections: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], showDomainsWithLanguageName: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], isCollectionsActivated: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], useParentWidth: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], loader: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], settings: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], onDomainChange: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}], onActionClick: [{
|
|
178
|
+
type: Output
|
|
179
|
+
}], onSourceLanguageChange: [{
|
|
180
|
+
type: Output
|
|
181
|
+
}], onTargetLanguageChange: [{
|
|
182
|
+
type: Output
|
|
183
|
+
}], onLanguageSwap: [{
|
|
184
|
+
type: Output
|
|
185
|
+
}], onVendorChange: [{
|
|
186
|
+
type: Output
|
|
187
|
+
}] } });
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC90bGQtdHJhbnNsYXRlLXN3aXRjaGVyL3RsZC10cmFuc2xhdGUtc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci90bGQtdHJhbnNsYXRlLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBVTNDLE1BQU0sT0FBTyw2QkFBNkI7SUEyRnhDLFlBQ21CLE1BQWlDLEVBQ2pDLFNBQTJCLEVBQ3BDLEtBQWlCO1FBRlIsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWpFbEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFZMUIsbUJBQWMsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFD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QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJU3dpdGNoZXJUcmFuc2xhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvc3dpdGNoZXItb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90bGQtc3lzdGVtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdHJhbnNsYXRlLXN3aXRjaGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVTd2l0Y2hlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZnJvbUxhYmVsXCIpIGZyb21MYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwic291cmNlQXNpZGVcIikgc291cmNlQXNpZGU6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInRvTGFiZWxcIikgdG9MYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZG9tYWluV3JhcHBlclwiKSBkb21haW5XcmFwcGVyOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoXCJ2ZW5kb3JXcmFwcGVyXCIpIHZlbmRvcldyYXBwZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImNvbGxlY3Rpb25XcmFwcGVyXCIpIGNvbGxlY3Rpb25XcmFwcGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGNvbnN0IHB4UGVyTGFuZ3VhZ2UgPSAxMTA7XHJcbiAgICBjb25zdCBjb21wb25lbnRXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMud3JhcHBlcik7XHJcbiAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMuZWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMDtcclxuICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMudXNlUGFyZW50V2lkdGggPyBwYXJlbnRXaWR0aCA6IGNvbXBvbmVudFdpZHRoO1xyXG4gICAgY29uc3QgZnJvbVdpZHRoID0gdGhpcy5nZXRFbGVtZW50UmVmV2lkdGgodGhpcy5mcm9tTGFiZWwpO1xyXG4gICAgY29uc3Qgc291cmNlQXNpZGVXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMuc291cmNlQXNpZGUpO1xyXG4gICAgY29uc3QgdG9XaWR0aCA9IHRoaXMuZ2V0RWxlbWVudFJlZldpZHRoKHRoaXMudG9MYWJlbCk7XHJcbiAgICBjb25zdCBkb21haW5zV2lkdGggPSB0aGlzLmdldEVsZW1lbnRSZWZXaWR0aCh0aGlzLmRvbWFpbldyYXBwZXIpO1xyXG4gICAgY29uc3QgdmVuZG9yc1dpZHRoID0gdGhpcy5nZXRFbGVtZW50UmVmV2lkdGgodGhpcy52ZW5kb3JXcmFwcGVyKTtcclxuICAgIGNvbnN0IGNvbGxlY3Rpb25zV2lkdGggPSB0aGlzLmdldEVsZW1lbnRSZWZXaWR0aCh0aGlzLmNvbGxlY3Rpb25XcmFwcGVyKTtcclxuICAgIC8vIGFkZGl0aW9uYWwgcHggdG8gZGlzdHJhY3QgYmVjYXVzZSBzd2FwIGxhbmcgYnV0dG9uIGFuZCBkcm9wZG93biBpY29ucy5cclxuICAgIGNvbnN0IGV4dHJhID0gMTAwO1xyXG4gICAgY29uc3QgZnJlZVdpZHRoID0gd3JhcHBlcldpZHRoIC0gZnJvbVdpZHRoIC0gc291cmNlQXNpZGVXaWR0aCAtIHRvV2lkdGggLSBkb21haW5zV2lkdGggLSB2ZW5kb3JzV2lkdGggLSBjb2xsZWN0aW9uc1dpZHRoIC0gZXh0cmE7XHJcbiAgICBjb25zdCBsYW5ndWFnZUNvdW50ID0gTWF0aC5mbG9vcihmcmVlV2lkdGggLyAyIC8gcHhQZXJMYW5ndWFnZSk7XHJcbiAgICB0aGlzLmxhbmd1YWdlQ291bnRCeVNjcmVlblNpemUgPSBsYW5ndWFnZUNvdW50ID4gMCA/IGxhbmd1YWdlQ291bnQgOiAxO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93VHJhbnNsYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBoaWRlT25TbWFsbFNjcmVlbnMgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVMYW5nTWVudUxhYmVscyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heERpc3BsYXllZExhbmd1YWdlczogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGNvbGxlY3Rpb25zOiBhbnlbXTtcclxuICBASW5wdXQoKSBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDogYm9vbGVhbjtcclxuICAvKiogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgY29tcG9uZW50IHBhcmVudCBpcyBjaGVja2VkIGZvciBkaXNwbGF5ZWQgbGFuZ3VhZ2UgY291bnQuICovXHJcbiAgQElucHV0KCkgdXNlUGFyZW50V2lkdGg6IGJvb2xlYW47XHJcbiAgLyoqIFNob3cgbG9hZGVyIGluc3RlYWQgb2YgdHJhbnNsYXRlIGJ1dHRvbiAqL1xyXG4gIEBJbnB1dCgpIGxvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucztcclxuXHJcbiAgQE91dHB1dCgpIG9uRG9tYWluQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU291cmNlTGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblRhcmdldExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25MYW5ndWFnZVN3YXA6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblZlbmRvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGxhbmd1YWdlQ291bnRCeVNjcmVlblNpemU6IG51bWJlcjtcclxuXHJcbiAgZ2V0IHZpc2libGVMYW5ndWFnZUNvdW50KCkge1xyXG4gICAgaWYgKHRoaXMubGFuZ3VhZ2VDb3VudEJ5U2NyZWVuU2l6ZSAmJiB0aGlzLmxhbmd1YWdlQ291bnRCeVNjcmVlblNpemUgPCB0aGlzLm1heERpc3BsYXllZExhbmd1YWdlcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUNvdW50QnlTY3JlZW5TaXplO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbGxlY3Rpb25zVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWRcclxuICAgICAgJiYgdGhpcy5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1ZlbmRvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmNvcmVDb25maWcuc2hvd1ZlbmRvcnMgJiYgdGhpcy5zZXR0aW5ncy52ZW5kb3JzPy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLnNob3dEb21haW5zICYmXHJcbiAgICAgICF0aGlzLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSAmJlxyXG4gICAgICB0aGlzLnNldHRpbmdzPy5kb21haW5zPy5kb21haW5zPy5sZW5ndGggPiAxICYmXHJcbiAgICAgIHRoaXMuc2V0dGluZ3M/LnNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1N3YXBMYW5ndWFnZXNEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLnNldHRpbmdzLnN3YXBBY3RpdmU7XHJcbiAgfVxyXG5cclxuICBnZXQgZG9tYWluU2lkZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlnLmNvcmVDb25maWcuZG9tYWluU2lkZTsgfVxyXG4gIGdldCBzd2FwSWNvblBvc2l0aW9uKCkgeyByZXR1cm4gdGhpcy5jb25maWcuY29yZUNvbmZpZy5zd2FwSWNvblBvc2l0aW9uOyB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICByZWFkb25seSBzcmNMYW5nVGVzdElkID0gXCJzcmMtbGFuZy1tZW51XCI7XHJcbiAgcmVhZG9ubHkgdHJnTGFuZ1Rlc3RJZCA9IFwidHJnLWxhbmctbWVudVwiO1xyXG5cclxuICBwcml2YXRlIGlzVGVybWlub2xvZ3lTdXBwb3J0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHtcclxuICB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9BY3RpdmVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLm9uUmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dChudWxsKVxyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uQ2xpY2soKSB7XHJcbiAgICB0aGlzLm9uQWN0aW9uQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZG9tYWluQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25Eb21haW5DaGFuZ2UuZW1pdChzeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBzb3VyY2VMYW5nQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25Tb3VyY2VMYW5ndWFnZUNoYW5nZS5lbWl0KGxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIHN3YXBTb3VyY2VBbmRUYXJnZXQoKSB7XHJcbiAgICB0aGlzLm9uTGFuZ3VhZ2VTd2FwLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHRhcmdldExhbmdDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5vblRhcmdldExhbmd1YWdlQ2hhbmdlLmVtaXQobGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgdmVuZG9yQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25WZW5kb3JDaGFuZ2UuZW1pdChzeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVsZW1lbnRSZWZXaWR0aChlbGVtZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICByZXR1cm4gZWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0FjdGl2ZURhdGEoKXtcclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnN1YnNjcmliZSgoYWN0aXZlKSA9PiB7XHJcbiAgICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzVGVybWlub2xvZ3lTdXBwb3J0ZWQgPSB0aGlzLnRsZFN5c3RlbS5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkKGFjdGl2ZS5zeXN0ZW0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwidGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci1jb250YWluZXJcIiAjd3JhcHBlclxyXG4gIFtuZ0NsYXNzLmx0LW1kXT1cIid0bGQtdHJhbnNsYXRlLXN3aXRjaGVyLWNvbnRhaW5lci10YWJsZXQnXCJcclxuICBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1zd2l0Y2hlci1jb250YWluZXItbW9iaWxlJ1wiXHJcbiAgW2NsYXNzLnRsZC1zd2l0Y2hlci13aXRoLWNvbGxlY3Rpb25zXT0nY29sbGVjdGlvbnNWaXNpYmxlJz5cclxuXHJcbiAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICA8ZGl2IGZ4SGlkZS5sdC1tZCAqbmdJZj1cIiFoaWRlTGFuZ01lbnVMYWJlbHNcIiAjZnJvbUxhYmVsPnt7J1RMRF9UUkFOU0xBVEUuRlJPTScgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgIDx0bGQtbGFuZy1saXN0IGlkPVwidGxkLXNvdXJjZS1sYW5ndWFnZS1saXN0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3Rlc3RJZF09XCJzcmNMYW5nVGVzdElkXCJcclxuICAgICAgICBbbGFuZ3VhZ2VzXT1cInNldHRpbmdzLnNvdXJjZUxhbmd1YWdlTGlzdFwiIChvbkxhbmd1YWdlQ2hhbmdlKT1cInNvdXJjZUxhbmdDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cInNldHRpbmdzLnNvdXJjZVwiIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwidmlzaWJsZUxhbmd1YWdlQ291bnRcIj48L3RsZC1sYW5nLWxpc3Q+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb21haW5TaWRlPT09J3NyYydcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZG9tYWluVGVtcGxhdGU7XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICNzb3VyY2VBc2lkZSAqbmdJZj1cInN3YXBJY29uUG9zaXRpb249PT0nc3JjJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3dhcEJ1dHRvblRlbXBsYXRlO1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInN3YXBJY29uUG9zaXRpb249PT0nY2VudGVyJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN3YXBCdXR0b25UZW1wbGF0ZTtcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEFsaWduLmx0LXNtPVwiZW5kIGNlbnRlclwiPlxyXG4gICAgPGRpdiBmeEhpZGUubHQtbWQgKm5nSWY9XCIhaGlkZUxhbmdNZW51TGFiZWxzXCIgI3RvTGFiZWw+e3snVExEX1RSQU5TTEFURS5UTycgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgIDx0bGQtbGFuZy1saXN0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGlkPVwidGxkLXRhcmdldC1sYW5ndWFnZS1saXN0XCIgW2xhbmd1YWdlc109XCJzZXR0aW5ncy50YXJnZXRMYW5ndWFnZUxpc3RcIlxyXG4gICAgICAgIChvbkxhbmd1YWdlQ2hhbmdlKT1cInRhcmdldExhbmdDaGFuZ2UoJGV2ZW50KVwiIFtzZWxlY3RlZF09XCJzZXR0aW5ncy50YXJnZXRcIlxyXG4gICAgICAgIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwidmlzaWJsZUxhbmd1YWdlQ291bnRcIiBbdGVzdElkXT1cInRyZ0xhbmdUZXN0SWRcIiAob25Eb21haW5DaGFuZ2UpPVwiZG9tYWluQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVdPVwic2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvbWFpblNpZGU9PT0ndHJnJ1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRvbWFpblRlbXBsYXRlO1wiPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtdmVuZG9yLXNlbGVjdGlvblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgKm5nSWY9XCJzaG93VmVuZG9yc1wiICN2ZW5kb3JXcmFwcGVyPlxyXG4gICAgICAgICAgPHRsZC1saXN0LW1lbnUgKHNlbGVjdGlvbkNoYW5nZSk9XCJkb21haW5DaGFuZ2UoJGV2ZW50KVwiIFtsaXN0XT1cInNldHRpbmdzLnZlbmRvcnNcIiBbdGl0bGVLZXldPVwiJ3RpdGxlJ1wiXHJcbiAgICAgICAgICAgIFt2YWx1ZUtleV09XCInc3lzdGVtSWQnXCIgdGVzdElkPVwidGxkLXZlbmRvci1saXN0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3Nob3dDb250ZW50XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInVExEX1RSQU5TTEFURS5WRU5ET1JTX0FSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCIgW3NlbGVjdGVkVmFsdWVdPVwic2V0dGluZ3Muc3lzdGVtSWRcIj5cclxuICAgICAgICAgIDwvdGxkLWxpc3QtbWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90bGQtbGFuZy1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXAuZ3QteHM9XCIxNnB4XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb2xsZWN0aW9uc1Zpc2libGVcIiAjY29sbGVjdGlvbldyYXBwZXI+XHJcbiAgICAgICAgPHRsZC10ZXJtLW1lbnU+PC90bGQtdGVybS1tZW51PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHRsZC1sb2FkZXIgKm5nSWY9XCJsb2FkZXJcIiBmeEhpZGUubHQtc20+PC90bGQtbG9hZGVyPlxyXG4gICAgICA8dGxkLXRyYW5zbGF0ZS1idXR0b24gW2VuYWJsZVB1bHNlQW5pbWF0aW9uXT1cInRydWVcIiAqbmdJZj1cInNob3dUcmFuc2xhdGVCdXR0b24gJiYgIWxvYWRlclwiIGNsYXNzPVwic3dpdGNoZXItdHJhbnNsYXRlLWJ1dHRvblwiXHJcbiAgICAgICAgW2Z4SGlkZS5sdC1zbV09XCJoaWRlT25TbWFsbFNjcmVlbnNcIiBbZGlzYWJsZWRdPVwiYnV0dG9uRGlzYWJsZWRcIj48L3RsZC10cmFuc2xhdGUtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzd2FwQnV0dG9uVGVtcGxhdGU+XHJcbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNTd2FwTGFuZ3VhZ2VzRGlzYWJsZWRcIiBjbGFzcz1cInN3YXAtbGFuZ3VhZ2VzLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgKGNsaWNrKT1cInN3YXBTb3VyY2VBbmRUYXJnZXQoKVwiIGFyaWEtbGFiZWw9XCJzd2FwIGxhbmd1YWdlc1wiIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICBtYXRUb29sdGlwPVwie3snVE9PTFRJUFMuU1dBUF9MQU5HVUFHRVMnIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuU1dBUF9MQU5HVUFHRVMnIHwgdHJhbnNsYXRlXCI+c3dhcF9ob3Jpejwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZG9tYWluVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtZG9tYWluLXNlbGVjdGlvblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgKm5nSWY9XCJzaG93RG9tYWluc1wiICNkb21haW5XcmFwcGVyPlxyXG4gICAgPHRsZC1kb21haW4tbGlzdCBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiZG9tYWluQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbbGlzdF09XCJzZXR0aW5ncy5kb21haW5zLmRvbWFpbnNcIiBbc2VsZWN0ZWRdPVwic2V0dGluZ3MuZG9tYWlucy5hY3RpdmVcIiBbc2VsZWN0ZWRdPVwic2V0dGluZ3MuZG9tYWlucy5hY3RpdmVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48L3RsZC1kb21haW4tbGlzdD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { Breakpoints } from '@angular/cdk/layout';
|
|
2
|
+
import { Component, HostListener, ViewChild } from '@angular/core';
|
|
3
|
+
import { TranslationSystemPickerDropdownBodyComponent } from '../dropdown-body/translation-system-picker-dropdown-body.component';
|
|
4
|
+
import { TranslationSystemPickerFilterComponent } from '../filter/translation-system-picker-filter.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../services/translation-system-picker.service";
|
|
7
|
+
import * as i2 from "@angular/cdk/layout";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/material/button";
|
|
10
|
+
import * as i5 from "@angular/material/icon";
|
|
11
|
+
import * as i6 from "@tilde-nlp/ngx-common";
|
|
12
|
+
import * as i7 from "../filter/translation-system-picker-filter.component";
|
|
13
|
+
import * as i8 from "../dropdown-body/translation-system-picker-dropdown-body.component";
|
|
14
|
+
import * as i9 from "@ngx-translate/core";
|
|
15
|
+
export class TranslationSystemPickerDropdownComponent {
|
|
16
|
+
constructor(systemPickerService, breakPointObserver) {
|
|
17
|
+
this.systemPickerService = systemPickerService;
|
|
18
|
+
this.breakPointObserver = breakPointObserver;
|
|
19
|
+
this.currentStep = 0;
|
|
20
|
+
this.mobileTargetConfig = [
|
|
21
|
+
{
|
|
22
|
+
hideLanguages: false,
|
|
23
|
+
hideSystems: true,
|
|
24
|
+
headerTitle: "SYSTEM_PICKER.TARGET",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
hideLanguages: true,
|
|
28
|
+
hideSystems: false,
|
|
29
|
+
headerTitle: "SYSTEM_PICKER.SELECT_DOMAIN",
|
|
30
|
+
hideSystemTitle: true
|
|
31
|
+
}
|
|
32
|
+
];
|
|
33
|
+
this.mobileSourceConfig = [
|
|
34
|
+
{
|
|
35
|
+
hideLanguages: false,
|
|
36
|
+
hideSystems: false,
|
|
37
|
+
headerTitle: "SYSTEM_PICKER.SOURCE",
|
|
38
|
+
showLanguageTitle: true
|
|
39
|
+
}
|
|
40
|
+
];
|
|
41
|
+
this.desktopTargetConfig = [
|
|
42
|
+
{
|
|
43
|
+
hideLanguages: false,
|
|
44
|
+
hideSystems: false,
|
|
45
|
+
leaveOpenOnLanguageClick: true
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
onKeydownHandler() {
|
|
50
|
+
this.close();
|
|
51
|
+
}
|
|
52
|
+
get selectedBodyConfig() {
|
|
53
|
+
return this.bodyConfigArr?.[this.currentStep];
|
|
54
|
+
}
|
|
55
|
+
get currentConfig() { return this.bodyConfigArr?.[this.currentStep]; }
|
|
56
|
+
ngOnInit() {
|
|
57
|
+
this.subscribeToBreakpointObserver();
|
|
58
|
+
this.subscribeToMenuToggle();
|
|
59
|
+
}
|
|
60
|
+
onSystemClick() {
|
|
61
|
+
if (!this.selectedBodyConfig?.leaveOpenOnSystemClick) {
|
|
62
|
+
this.nextStep();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
onLanguageClick() {
|
|
66
|
+
if (!this.selectedBodyConfig?.leaveOpenOnLanguageClick) {
|
|
67
|
+
this.nextStep();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onFilteredLanguageClick() {
|
|
71
|
+
// should not close menu, but only clear the filter
|
|
72
|
+
this.filter.clear(null);
|
|
73
|
+
if (!this.selectedBodyConfig?.leaveOpenOnLanguageClick) {
|
|
74
|
+
this.nextStep();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
close() {
|
|
78
|
+
this.systemPickerService.closeOpened();
|
|
79
|
+
}
|
|
80
|
+
filterChange(filter) {
|
|
81
|
+
this.filterText = filter;
|
|
82
|
+
}
|
|
83
|
+
ngOnDestroy() {
|
|
84
|
+
this.breakpointSubscription.unsubscribe();
|
|
85
|
+
this.menuToggleSubscription.unsubscribe();
|
|
86
|
+
}
|
|
87
|
+
toggleFilter() {
|
|
88
|
+
this.showMobFilter = !this.showMobFilter;
|
|
89
|
+
this.clearFilter();
|
|
90
|
+
}
|
|
91
|
+
clearFilter() {
|
|
92
|
+
this.filterText = "";
|
|
93
|
+
}
|
|
94
|
+
back() {
|
|
95
|
+
if (this.isMobile) {
|
|
96
|
+
if (this.showMobFilter) {
|
|
97
|
+
this.toggleFilter();
|
|
98
|
+
}
|
|
99
|
+
else if (this.currentStep) {
|
|
100
|
+
// if step bigger than zero, then go one step back.
|
|
101
|
+
this.currentStep += -1;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// if step is zero, close menu
|
|
105
|
+
this.close();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
nextStep() {
|
|
110
|
+
if (this.bodyConfigArr?.[this.currentStep + 1]) {
|
|
111
|
+
this.currentStep += 1;
|
|
112
|
+
this.clearFilter();
|
|
113
|
+
this.showMobFilter = false;
|
|
114
|
+
// systems visible only. At time of writing, mobile target view after language select.
|
|
115
|
+
if (this.currentConfig.hideLanguages && !this.currentConfig.hideSystems) {
|
|
116
|
+
if (this.dropdownBody.systemList?.length <= 1) {
|
|
117
|
+
this.nextStep();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.close();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
clickOutside() {
|
|
126
|
+
// it shouldn't be possible to click outside on mob because it should be 100vw and 100vh.
|
|
127
|
+
// NOTE that this method gets triggered also on system select, because active system changes, rerenders ui elements and clicked element doesn't exist anymore in this container
|
|
128
|
+
if (this.isMobile) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
this.close();
|
|
132
|
+
}
|
|
133
|
+
subscribeToBreakpointObserver() {
|
|
134
|
+
this.breakpointSubscription = this.breakPointObserver.observe([Breakpoints.XSmall]).subscribe((res) => {
|
|
135
|
+
this.isMobile = res.breakpoints[Breakpoints.XSmall];
|
|
136
|
+
this.selectBodyConfig();
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
selectBodyConfig() {
|
|
140
|
+
this.currentStep = 0;
|
|
141
|
+
if (this.isMobile) {
|
|
142
|
+
if (this.systemPickerService.isTargetOpened) {
|
|
143
|
+
this.bodyConfigArr = this.mobileTargetConfig;
|
|
144
|
+
}
|
|
145
|
+
else if (this.systemPickerService.isSourceOpened) {
|
|
146
|
+
this.bodyConfigArr = this.mobileSourceConfig;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
if (this.systemPickerService.isTargetOpened) {
|
|
151
|
+
this.bodyConfigArr = this.desktopTargetConfig;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.bodyConfigArr = null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
subscribeToMenuToggle() {
|
|
159
|
+
this.menuToggleSubscription = this.systemPickerService.menuToggled().subscribe(() => {
|
|
160
|
+
this.selectBodyConfig();
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
TranslationSystemPickerDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslationSystemPickerDropdownComponent, deps: [{ token: i1.TranslationSystemPickerService }, { token: i2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
165
|
+
TranslationSystemPickerDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TranslationSystemPickerDropdownComponent, selector: "tld-translation-system-picker-dropdown", host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "dropdownBody", first: true, predicate: TranslationSystemPickerDropdownBodyComponent, descendants: true }, { propertyName: "filter", first: true, predicate: TranslationSystemPickerFilterComponent, descendants: true }], ngImport: i0, template: "<div class=\"dropdown-content-wrapper\" [class.mobile]=\"isMobile\" (clickOutside)=\"clickOutside()\">\r\n <div *ngIf=\"isMobile\" class=\"system-picker-header\">\r\n <button mat-icon-button (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <ng-container *ngIf=\"!showMobFilter; else filter\">\r\n <h1 class=\" text-l-semi-bold\">{{currentConfig?.headerTitle | translate}}</h1>\r\n <button mat-icon-button (click)=\"toggleFilter()\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"system-picker-dropdown-content\">\r\n <ng-container *ngIf=\"!isMobile\">\r\n <ng-container *ngTemplateOutlet=\"filter\"></ng-container>\r\n </ng-container>\r\n <tld-translation-system-picker-dropdown-body [config]=\"currentConfig\" [filterText]=\"filterText\"\r\n (onSystemClick)=\"onSystemClick()\" (onLanguageClick)=\"onLanguageClick()\"\r\n (onFilteredLanguageClick)=\"onFilteredLanguageClick()\">\r\n </tld-translation-system-picker-dropdown-body>\r\n </div>\r\n</div>\r\n\r\n<ng-template #filter>\r\n <tld-translation-system-picker-filter (filterChanged)=\"filterChange($event)\">\r\n </tld-translation-system-picker-filter>\r\n</ng-template>", styles: [":host{background-color:var(--base-100);overflow-y:auto;height:100%;width:100%;box-sizing:border-box}:host .system-picker-dropdown-content{padding:1rem 1.5rem}:host .system-picker-header{background-color:var(--base-95);padding:.5rem 1rem .5rem .75rem;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid var(--base-70)}:host .system-picker-header h1{margin:0;flex:1 1 100%}:host .dropdown-content-wrapper:not(.mobile) tld-translation-system-picker-filter{margin-bottom:1.25rem}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: i7.TranslationSystemPickerFilterComponent, selector: "tld-translation-system-picker-filter", outputs: ["filterChanged"] }, { kind: "component", type: i8.TranslationSystemPickerDropdownBodyComponent, selector: "tld-translation-system-picker-dropdown-body", inputs: ["filterText", "config"], outputs: ["onSystemClick", "onLanguageClick", "onFilteredLanguageClick"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslationSystemPickerDropdownComponent, decorators: [{
|
|
167
|
+
type: Component,
|
|
168
|
+
args: [{ selector: 'tld-translation-system-picker-dropdown', template: "<div class=\"dropdown-content-wrapper\" [class.mobile]=\"isMobile\" (clickOutside)=\"clickOutside()\">\r\n <div *ngIf=\"isMobile\" class=\"system-picker-header\">\r\n <button mat-icon-button (click)=\"back()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <ng-container *ngIf=\"!showMobFilter; else filter\">\r\n <h1 class=\" text-l-semi-bold\">{{currentConfig?.headerTitle | translate}}</h1>\r\n <button mat-icon-button (click)=\"toggleFilter()\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"system-picker-dropdown-content\">\r\n <ng-container *ngIf=\"!isMobile\">\r\n <ng-container *ngTemplateOutlet=\"filter\"></ng-container>\r\n </ng-container>\r\n <tld-translation-system-picker-dropdown-body [config]=\"currentConfig\" [filterText]=\"filterText\"\r\n (onSystemClick)=\"onSystemClick()\" (onLanguageClick)=\"onLanguageClick()\"\r\n (onFilteredLanguageClick)=\"onFilteredLanguageClick()\">\r\n </tld-translation-system-picker-dropdown-body>\r\n </div>\r\n</div>\r\n\r\n<ng-template #filter>\r\n <tld-translation-system-picker-filter (filterChanged)=\"filterChange($event)\">\r\n </tld-translation-system-picker-filter>\r\n</ng-template>", styles: [":host{background-color:var(--base-100);overflow-y:auto;height:100%;width:100%;box-sizing:border-box}:host .system-picker-dropdown-content{padding:1rem 1.5rem}:host .system-picker-header{background-color:var(--base-95);padding:.5rem 1rem .5rem .75rem;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid var(--base-70)}:host .system-picker-header h1{margin:0;flex:1 1 100%}:host .dropdown-content-wrapper:not(.mobile) tld-translation-system-picker-filter{margin-bottom:1.25rem}\n"] }]
|
|
169
|
+
}], ctorParameters: function () { return [{ type: i1.TranslationSystemPickerService }, { type: i2.BreakpointObserver }]; }, propDecorators: { onKeydownHandler: [{
|
|
170
|
+
type: HostListener,
|
|
171
|
+
args: ['document:keydown.escape', ['$event']]
|
|
172
|
+
}], dropdownBody: [{
|
|
173
|
+
type: ViewChild,
|
|
174
|
+
args: [TranslationSystemPickerDropdownBodyComponent]
|
|
175
|
+
}], filter: [{
|
|
176
|
+
type: ViewChild,
|
|
177
|
+
args: [TranslationSystemPickerFilterComponent]
|
|
178
|
+
}] } });
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL2Ryb3Bkb3duL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci9kcm9wZG93bi90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFTOUcsTUFBTSxPQUFPLHdDQUF3QztJQXNEbkQsWUFBNkIsbUJBQW1ELEVBQzdELGtCQUFzQztRQUQ1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQWdDO1FBQzdELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUEzQ2pELGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBV1AsdUJBQWtCLEdBQXlCO1lBQzFEO2dCQUNFLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLHNCQUFzQjthQUNwQztZQUNEO2dC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LENBQUMsa0JBQWtCLENBQUM7YUFDOUM7aUJBQ0ksSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFO2dCQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQzthQUM5QztTQUNGO2FBQ0k7WUFDSCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2FBQy9DO2lCQUNJO2dCQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2FBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7O3FJQXBMVSx3Q0FBd0M7eUhBQXhDLHdDQUF3Qyw0TUFLeEMsNENBQTRDLHlFQUM1QyxzQ0FBc0MsZ0RDbkJuRCx5dkNBMEJjOzJGRGJELHdDQUF3QztrQkFMcEQsU0FBUzsrQkFDRSx3Q0FBd0M7c0pBS0csZ0JBQWdCO3NCQUFwRSxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlNLFlBQVk7c0JBQXBFLFNBQVM7dUJBQUMsNENBQTRDO2dCQUNKLE1BQU07c0JBQXhELFNBQVM7dUJBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TeXN0ZW1QaWNrZXJEcm9wZG93bkJvZHlDb21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi1ib2R5L3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24tYm9keS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblN5c3RlbVBpY2tlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkJvZHlDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24tYm9keS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblN5c3RlbVBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25TeXN0ZW1QaWNrZXJEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pIG9uS2V5ZG93bkhhbmRsZXIoKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyRHJvcGRvd25Cb2R5Q29tcG9uZW50KSBkcm9wZG93bkJvZHk6IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyRHJvcGRvd25Cb2R5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoVHJhbnNsYXRpb25TeXN0ZW1QaWNrZXJGaWx0ZXJDb21wb25lbnQpIGZpbHRlcjogVHJhbnNsYXRpb25TeXN0ZW1QaWNrZXJGaWx0ZXJDb21wb25lbnQ7XHJcblxyXG4gIGZpbHRlclRleHQ6IHN0cmluZztcclxuICBpc01vYmlsZTogYm9vbGVhbjtcclxuICBzaG93TW9iRmlsdGVyOiBib29sZWFuO1xyXG5cclxuICBwcml2YXRlIGN1cnJlbnRTdGVwID0gMDtcclxuICBwcml2YXRlIGJyZWFrcG9pbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG1lbnVUb2dnbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkQm9keUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLmJvZHlDb25maWdBcnI/Llt0aGlzLmN1cnJlbnRTdGVwXTtcclxuICB9XHJcblxyXG4gIGJvZHlDb25maWdBcnI6IERyb3Bkb3duQm9keUNvbmZpZ1tdO1xyXG4gIGdldCBjdXJyZW50Q29uZmlnKCkgeyByZXR1cm4gdGhpcy5ib2R5Q29uZmlnQXJyPy5bdGhpcy5jdXJyZW50U3RlcF07IH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVUYXJnZXRDb25maWc6IERyb3Bkb3duQm9keUNvbmZpZ1tdID0gW1xyXG4gICAge1xyXG4gICAgICBoaWRlTGFuZ3VhZ2VzOiBmYWxzZSxcclxuICAgICAgaGlkZVN5c3RlbXM6IHRydWUsXHJcbiAgICAgIGhlYWRlclRpdGxlOiBcIlNZU1RFTV9QSUNLRVIuVEFSR0VUXCIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoaWRlTGFuZ3VhZ2VzOiB0cnVlLFxyXG4gICAgICBoaWRlU3lzdGVtczogZmFsc2UsXHJcbiAgICAgIGhlYWRlclRpdGxlOiBcIlNZU1RFTV9QSUNLRVIuU0VMRUNUX0RPTUFJTlwiLFxyXG4gICAgICBoaWRlU3lzdGVtVGl0bGU6IHRydWVcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZVNvdXJjZUNvbmZpZzogRHJvcGRvd25Cb2R5Q29uZmlnW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGhpZGVMYW5ndWFnZXM6IGZhbHNlLFxyXG4gICAgICBoaWRlU3lzdGVtczogZmFsc2UsXHJcbiAgICAgIGhlYWRlclRpdGxlOiBcIlNZU1RFTV9QSUNLRVIuU09VUkNFXCIsXHJcbiAgICAgIHNob3dMYW5ndWFnZVRpdGxlOiB0cnVlXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXNrdG9wVGFyZ2V0Q29uZmlnOiBEcm9wZG93bkJvZHlDb25maWdbXSA9IFtcclxuICAgIHtcclxuICAgICAgaGlkZUxhbmd1YWdlczogZmFsc2UsXHJcbiAgICAgIGhpZGVTeXN0ZW1zOiBmYWxzZSxcclxuICAgICAgbGVhdmVPcGVuT25MYW5ndWFnZUNsaWNrOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN5c3RlbVBpY2tlclNlcnZpY2U6IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtQb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0JyZWFrcG9pbnRPYnNlcnZlcigpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb01lbnVUb2dnbGUoKTtcclxuICB9XHJcblxyXG5cclxuICBvblN5c3RlbUNsaWNrKCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQm9keUNvbmZpZz8ubGVhdmVPcGVuT25TeXN0ZW1DbGljaykge1xyXG4gICAgICB0aGlzLm5leHRTdGVwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxhbmd1YWdlQ2xpY2soKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRCb2R5Q29uZmlnPy5sZWF2ZU9wZW5Pbkxhbmd1YWdlQ2xpY2spIHtcclxuICAgICAgdGhpcy5uZXh0U3RlcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXJlZExhbmd1YWdlQ2xpY2soKSB7XHJcbiAgICAvLyBzaG91bGQgbm90IGNsb3NlIG1lbnUsIGJ1dCBvbmx5IGNsZWFyIHRoZSBmaWx0ZXJcclxuICAgIHRoaXMuZmlsdGVyLmNsZWFyKG51bGwpO1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQm9keUNvbmZpZz8ubGVhdmVPcGVuT25MYW5ndWFnZUNsaWNrKSB7XHJcbiAgICAgIHRoaXMubmV4dFN0ZXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLmNsb3NlT3BlbmVkKCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJDaGFuZ2UoZmlsdGVyOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9IGZpbHRlcjtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVha3BvaW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm1lbnVUb2dnbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUZpbHRlcigpIHtcclxuICAgIHRoaXMuc2hvd01vYkZpbHRlciA9ICF0aGlzLnNob3dNb2JGaWx0ZXI7XHJcbiAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcigpIHtcclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBiYWNrKCkge1xyXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd01vYkZpbHRlcikge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlRmlsdGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5jdXJyZW50U3RlcCkge1xyXG4gICAgICAgIC8vIGlmIHN0ZXAgYmlnZ2VyIHRoYW4gemVybywgdGhlbiBnbyBvbmUgc3RlcCBiYWNrLlxyXG4gICAgICAgIHRoaXMuY3VycmVudFN0ZXAgKz0gLTE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgLy8gaWYgc3RlcCBpcyB6ZXJvLCBjbG9zZSBtZW51XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZXh0U3RlcCgpIHtcclxuICAgIGlmICh0aGlzLmJvZHlDb25maWdBcnI/Llt0aGlzLmN1cnJlbnRTdGVwICsgMV0pIHtcclxuICAgICAgdGhpcy5jdXJyZW50U3RlcCArPSAxO1xyXG4gICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XHJcbiAgICAgIHRoaXMuc2hvd01vYkZpbHRlciA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gc3lzdGVtcyB2aXNpYmxlIG9ubHkuIEF0IHRpbWUgb2Ygd3JpdGluZywgbW9iaWxlIHRhcmdldCB2aWV3IGFmdGVyIGxhbmd1YWdlIHNlbGVjdC5cclxuICAgICAgaWYgKHRoaXMuY3VycmVudENvbmZpZy5oaWRlTGFuZ3VhZ2VzICYmICF0aGlzLmN1cnJlbnRDb25maWcuaGlkZVN5c3RlbXMpIHtcclxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkJvZHkuc3lzdGVtTGlzdD8ubGVuZ3RoIDw9IDEpIHtcclxuICAgICAgICAgIHRoaXMubmV4dFN0ZXAoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGlja091dHNpZGUoKSB7XHJcbiAgICAvLyBpdCBzaG91bGRuJ3QgYmUgcG9zc2libGUgdG8gY2xpY2sgb3V0c2lkZSBvbiBtb2IgYmVjYXVzZSBpdCBzaG91bGQgYmUgMTAwdncgYW5kIDEwMHZoLlxyXG4gICAgLy8gTk9URSB0aGF0IHRoaXMgbWV0aG9kIGdldHMgdHJpZ2dlcmVkIGFsc28gb24gc3lzdGVtIHNlbGVjdCwgYmVjYXVzZSBhY3RpdmUgc3lzdGVtIGNoYW5nZXMsIHJlcmVuZGVycyB1aSBlbGVtZW50cyBhbmQgY2xpY2tlZCBlbGVtZW50IGRvZXNuJ3QgZXhpc3QgYW55bW9yZSBpbiB0aGlzIGNvbnRhaW5lclxyXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0JyZWFrcG9pbnRPYnNlcnZlcigpIHtcclxuICAgIHRoaXMuYnJlYWtwb2ludFN1YnNjcmlwdGlvbiA9IHRoaXMuYnJlYWtQb2ludE9ic2VydmVyLm9ic2VydmUoW0JyZWFrcG9pbnRzLlhTbWFsbF0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSByZXMuYnJlYWtwb2ludHNbQnJlYWtwb2ludHMuWFNtYWxsXTtcclxuICAgICAgdGhpcy5zZWxlY3RCb2R5Q29uZmlnKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RCb2R5Q29uZmlnKCkge1xyXG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IDA7XHJcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xyXG4gICAgICBpZiAodGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLmlzVGFyZ2V0T3BlbmVkKSB7XHJcbiAgICAgICAgdGhpcy5ib2R5Q29uZmlnQXJyID0gdGhpcy5tb2JpbGVUYXJnZXRDb25maWc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLmlzU291cmNlT3BlbmVkKSB7XHJcbiAgICAgICAgdGhpcy5ib2R5Q29uZmlnQXJyID0gdGhpcy5tb2JpbGVTb3VyY2VDb25maWc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLmlzVGFyZ2V0T3BlbmVkKSB7XHJcbiAgICAgICAgdGhpcy5ib2R5Q29uZmlnQXJyID0gdGhpcy5kZXNrdG9wVGFyZ2V0Q29uZmlnO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYm9keUNvbmZpZ0FyciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9NZW51VG9nZ2xlKCkge1xyXG4gICAgdGhpcy5tZW51VG9nZ2xlU3Vic2NyaXB0aW9uID0gdGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLm1lbnVUb2dnbGVkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RCb2R5Q29uZmlnKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnQtd3JhcHBlclwiIFtjbGFzcy5tb2JpbGVdPVwiaXNNb2JpbGVcIiAoY2xpY2tPdXRzaWRlKT1cImNsaWNrT3V0c2lkZSgpXCI+XHJcbiAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgY2xhc3M9XCJzeXN0ZW0tcGlja2VyLWhlYWRlclwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImJhY2soKVwiPlxyXG4gICAgICA8bWF0LWljb24+YXJyb3dfYmFjazwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd01vYkZpbHRlcjsgZWxzZSBmaWx0ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwiIHRleHQtbC1zZW1pLWJvbGRcIj57e2N1cnJlbnRDb25maWc/LmhlYWRlclRpdGxlIHwgdHJhbnNsYXRlfX08L2gxPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlRmlsdGVyKClcIj5cclxuICAgICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic3lzdGVtLXBpY2tlci1kcm9wZG93bi1jb250ZW50XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPHRsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLWRyb3Bkb3duLWJvZHkgW2NvbmZpZ109XCJjdXJyZW50Q29uZmlnXCIgW2ZpbHRlclRleHRdPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgIChvblN5c3RlbUNsaWNrKT1cIm9uU3lzdGVtQ2xpY2soKVwiIChvbkxhbmd1YWdlQ2xpY2spPVwib25MYW5ndWFnZUNsaWNrKClcIlxyXG4gICAgICAob25GaWx0ZXJlZExhbmd1YWdlQ2xpY2spPVwib25GaWx0ZXJlZExhbmd1YWdlQ2xpY2soKVwiPlxyXG4gICAgPC90bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1kcm9wZG93bi1ib2R5PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZmlsdGVyPlxyXG4gIDx0bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1maWx0ZXIgKGZpbHRlckNoYW5nZWQpPVwiZmlsdGVyQ2hhbmdlKCRldmVudClcIj5cclxuICA8L3RsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLWZpbHRlcj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|