@tilde-nlp/ngx-translate 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/esm2020/lib/components/shared/extension-dialog/components/index.mjs +2 -0
- package/esm2020/lib/components/shared/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.mjs +24 -0
- package/esm2020/lib/components/shared/extension-dialog/extension-dialog.component.mjs +133 -0
- package/esm2020/lib/components/shared/extension-dialog/extension-dialog.module.mjs +51 -0
- package/esm2020/lib/components/shared/extension-dialog/index.mjs +6 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-categories.enum.mjs +9 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-extensions.enum.mjs +35 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-type-icons.enum.mjs +13 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/file-types.enum.mjs +13 -0
- package/esm2020/lib/components/shared/extension-dialog/models/enums/index.mjs +5 -0
- package/esm2020/lib/components/shared/extension-dialog/models/index.mjs +3 -0
- package/esm2020/lib/components/shared/extension-dialog/models/interfaces/config.mjs +2 -0
- package/esm2020/lib/components/shared/extension-dialog/models/interfaces/dialog-data.model.mjs +2 -0
- package/esm2020/lib/components/shared/extension-dialog/models/interfaces/index.mjs +3 -0
- package/esm2020/lib/components/shared/extension-dialog/services/extension-dialog.service.mjs +22 -0
- package/esm2020/lib/components/shared/extension-dialog/services/index.mjs +2 -0
- package/esm2020/lib/components/shared/text-to-speech/index.mjs +3 -0
- package/esm2020/lib/components/shared/text-to-speech/models/text-to-speech-settings.model.mjs +2 -0
- package/esm2020/lib/components/shared/text-to-speech/text-to-speech.component.mjs +62 -0
- package/esm2020/lib/components/shared/text-to-speech/text-to-speech.module.mjs +36 -0
- package/esm2020/lib/components/shared/vendor-disclaimer/vendor-disclaimer.component.mjs +39 -0
- package/esm2020/lib/components/shared/vendor-disclaimer/vendor-disclaimer.module.mjs +28 -0
- package/esm2020/lib/factories/file-api-service.factory.mjs +12 -0
- package/esm2020/lib/factories/system-service.factory.mjs +12 -0
- package/esm2020/lib/factories/text-api-service.factory.mjs +12 -0
- package/esm2020/lib/i18n/available-languages.mjs +19 -0
- package/esm2020/lib/i18n/de.mjs +378 -0
- package/esm2020/lib/i18n/en.mjs +426 -0
- package/esm2020/lib/i18n/et.mjs +378 -0
- package/esm2020/lib/i18n/fi.mjs +383 -0
- package/esm2020/lib/i18n/lt.mjs +378 -0
- package/esm2020/lib/i18n/lv.mjs +391 -0
- package/esm2020/lib/i18n/models/available-languages.model.mjs +2 -0
- package/esm2020/lib/i18n/pl.mjs +378 -0
- package/esm2020/lib/i18n/sv.mjs +242 -0
- package/esm2020/lib/injection-tokens/file-api-service.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/index.mjs +6 -0
- package/esm2020/lib/injection-tokens/system-service.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/text-api-service.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/tld-translate-config.token.mjs +2 -0
- package/esm2020/lib/injection-tokens/translation-api-version.token.mjs +2 -0
- package/esm2020/lib/modules/material.module.mjs +97 -0
- package/esm2020/lib/modules/tld-audio/index.mjs +4 -0
- package/esm2020/lib/modules/tld-audio/models/audio-error-case.model.mjs +13 -0
- package/esm2020/lib/modules/tld-audio/models/dictate-configurationi.model.mjs +2 -0
- package/esm2020/lib/modules/tld-audio/models/index.mjs +3 -0
- package/esm2020/lib/modules/tld-audio/models/transcription-update.model.mjs +2 -0
- package/esm2020/lib/modules/tld-audio/services/audio-record.service.mjs +116 -0
- package/esm2020/lib/modules/tld-audio/services/index.mjs +4 -0
- package/esm2020/lib/modules/tld-audio/services/tld-voice-input-api.service.mjs +48 -0
- package/esm2020/lib/modules/tld-audio/services/tld-voice-input.service.mjs +60 -0
- package/esm2020/lib/modules/tld-audio/tld-audio.module.mjs +41 -0
- package/esm2020/lib/modules/tld-audio/tld-dictate/tld-dictate.component.mjs +151 -0
- package/esm2020/lib/modules/tld-audio/tld-record/tld-record.component.mjs +87 -0
- package/esm2020/lib/modules/tld-common/animations/pulse.animation.mjs +11 -0
- package/esm2020/lib/modules/tld-common/components/index.mjs +10 -0
- package/esm2020/lib/modules/tld-common/components/open-close-button/open-close-button.component.mjs +41 -0
- package/esm2020/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.mjs +44 -0
- package/esm2020/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.mjs +103 -0
- package/esm2020/lib/modules/tld-common/components/tld-lang-list/tld-lang-list.component.mjs +193 -0
- package/esm2020/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.mjs +60 -0
- package/esm2020/lib/modules/tld-common/components/tld-loader/tld-loader.component.mjs +12 -0
- package/esm2020/lib/modules/tld-common/components/tld-message/tld-message.component.mjs +49 -0
- package/esm2020/lib/modules/tld-common/components/tld-translate-achievement/tld-translate-achievement.component.mjs +17 -0
- package/esm2020/lib/modules/tld-common/components/translate-button/tld-translate-button.service.mjs +30 -0
- package/esm2020/lib/modules/tld-common/components/translate-button/translate-button.component.mjs +59 -0
- package/esm2020/lib/modules/tld-common/directives/drag-and-drop.directive.mjs +57 -0
- package/esm2020/lib/modules/tld-common/directives/index.mjs +2 -0
- package/esm2020/lib/modules/tld-common/index.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/auth-options.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/common.mjs +107 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-audio-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-term-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-text-to-speech-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-api-v2-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-core-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-file-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-text-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/configs/tld-translate-web-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/core/index.mjs +3 -0
- package/esm2020/lib/modules/tld-common/models/core/language-menu-version.enum.mjs +6 -0
- package/esm2020/lib/modules/tld-common/models/core/translation-api-version.model.mjs +6 -0
- package/esm2020/lib/modules/tld-common/models/errors/error-codes.enum.mjs +27 -0
- package/esm2020/lib/modules/tld-common/models/errors/error-codes.type.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/errors/error.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/file-upload.model.mjs +10 -0
- package/esm2020/lib/modules/tld-common/models/index.mjs +22 -0
- package/esm2020/lib/modules/tld-common/models/lang-list-item.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/language-with-translation.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/message.model.mjs +7 -0
- package/esm2020/lib/modules/tld-common/models/selected-language.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/download-file-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/file-api-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/file-meta.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/file-translation-substatus.model.mjs +9 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/get-file-status-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/get-file-translation-status-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/remove-file-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/source-file-preview-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/start-file-translation-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/file-api/translated-document-preview-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/index.mjs +19 -0
- package/esm2020/lib/modules/tld-common/models/services/system/system.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/system/tld-system-api-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/text-api/check-grammar-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/text-api/tld-translate-text-api-service.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job-state.model.mjs +7 -0
- package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-start-job-request-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-common/pipes/index.mjs +2 -0
- package/esm2020/lib/modules/tld-common/pipes/translate-domain.pipe.mjs +27 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icon.service.mjs +30 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/excel.icon.mjs +22 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/index.mjs +10 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/interchange.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/office-other.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/other.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/pdf.icon.mjs +12 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/powerpoint.icon.mjs +10 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/scanned.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/web.icon.mjs +6 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/word.icon.mjs +11 -0
- package/esm2020/lib/modules/tld-common/services/icon-service/icons.mjs +52 -0
- package/esm2020/lib/modules/tld-common/services/index.mjs +5 -0
- package/esm2020/lib/modules/tld-common/services/scroll/tld-scroll.service.mjs +43 -0
- package/esm2020/lib/modules/tld-common/services/tld-alert.service.mjs +139 -0
- package/esm2020/lib/modules/tld-common/services/tld-highlight.service.mjs +25 -0
- package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +226 -0
- package/esm2020/lib/modules/tld-common/services/wtw-link-params.service.mjs +33 -0
- package/esm2020/lib/modules/tld-common/tld-common.module.mjs +97 -0
- package/esm2020/lib/modules/tld-document/download-button/download-button.component.mjs +78 -0
- package/esm2020/lib/modules/tld-document/image-conversion-help/image-conversion-help.component.mjs +32 -0
- package/esm2020/lib/modules/tld-document/index.mjs +8 -0
- package/esm2020/lib/modules/tld-document/models/file-conversion-types.model.mjs +6 -0
- package/esm2020/lib/modules/tld-document/models/index.mjs +6 -0
- package/esm2020/lib/modules/tld-document/models/start-translation.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/models/translate-file.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/models/translation-statuss.model.mjs +15 -0
- package/esm2020/lib/modules/tld-document/models/upload-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/pdf-conversion-help/pdf-conversion-help.component.mjs +32 -0
- package/esm2020/lib/modules/tld-document/services/api/file-api.service.mjs +166 -0
- package/esm2020/lib/modules/tld-document/services/api/models/file-preview-v1-progress-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/api/models/file-preview-v1-response-body.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/api/models/get-file-translation-status-v1-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/api-v2/file-api-v2.service.mjs +87 -0
- package/esm2020/lib/modules/tld-document/services/api-v2/models/file-category-v2.model.mjs +6 -0
- package/esm2020/lib/modules/tld-document/services/api-v2/models/file-translation-status-v2-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-document/services/index.mjs +3 -0
- package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +398 -0
- package/esm2020/lib/modules/tld-document/tld-document.module.mjs +70 -0
- package/esm2020/lib/modules/tld-document/tld-file-translate-base.component.mjs +76 -0
- package/esm2020/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.mjs +94 -0
- package/esm2020/lib/modules/tld-term/index.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/converted-collection-tooltip-key.model.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/converted-collection-type.model.mjs +9 -0
- package/esm2020/lib/modules/tld-term/models/index.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/models/mt-collection-status.model.mjs +7 -0
- package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection.model.mjs +2 -0
- package/esm2020/lib/modules/tld-term/models/tld-converted-collection.model.mjs +114 -0
- package/esm2020/lib/modules/tld-term/services/index.mjs +4 -0
- package/esm2020/lib/modules/tld-term/services/mt-collections-api.service.mjs +33 -0
- package/esm2020/lib/modules/tld-term/services/term-api.service.mjs +34 -0
- package/esm2020/lib/modules/tld-term/services/tld-term-collections.service.mjs +253 -0
- package/esm2020/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.mjs +19 -0
- package/esm2020/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.mjs +99 -0
- package/esm2020/lib/modules/tld-term/tld-term-create-collection-dialog/tld-term-create-collection-dialog.component.mjs +47 -0
- package/esm2020/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.mjs +36 -0
- package/esm2020/lib/modules/tld-term/tld-term-promotion/tld-term-promotion.component.mjs +35 -0
- package/esm2020/lib/modules/tld-term/tld-term.module.mjs +67 -0
- package/esm2020/lib/modules/tld-text/components/highlight-tree/highlight-tree.component.mjs +109 -0
- package/esm2020/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.mjs +35 -0
- package/esm2020/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.mjs +153 -0
- package/esm2020/lib/modules/tld-text/components/tld-dictionary/tld-dictionary.component.mjs +56 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-source/tld-translate-source.component.mjs +60 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/dialog/suggest-translation.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/dialog/tld-translate-suggest-dialog.component.mjs +92 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/tld-translate-suggest.component.mjs +60 -0
- package/esm2020/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs +272 -0
- package/esm2020/lib/modules/tld-text/index.mjs +9 -0
- package/esm2020/lib/modules/tld-text/models/check-grammar-response-v2.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/dictionary.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/get-sentence-v1-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-check-base.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-check-meta.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-check-replacement.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/grammar-correction-v2.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/highlight-params.model.mjs +11 -0
- package/esm2020/lib/modules/tld-text/models/highlight-tree-type.model.mjs +12 -0
- package/esm2020/lib/modules/tld-text/models/highlight-tree.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/highlight.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/index.mjs +11 -0
- package/esm2020/lib/modules/tld-text/models/retranslate-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/source-text-changed.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-params.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-response-v1.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-response-v2.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/translate-paragraph-response.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/models/untranslated-paragraph.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/services/api/tld-translate-text-api.service.mjs +187 -0
- package/esm2020/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.mjs +110 -0
- package/esm2020/lib/modules/tld-text/services/index.mjs +2 -0
- package/esm2020/lib/modules/tld-text/services/tld-translate-text.service.mjs +380 -0
- package/esm2020/lib/modules/tld-text/tld-text.module.mjs +95 -0
- package/esm2020/lib/modules/tld-text/utils/index.mjs +2 -0
- package/esm2020/lib/modules/tld-text/utils/models/existing-paragraph-info.model.mjs +2 -0
- package/esm2020/lib/modules/tld-text/utils/models/index.mjs +2 -0
- package/esm2020/lib/modules/tld-text/utils/tld-translate-text.utils.mjs +56 -0
- package/esm2020/lib/modules/tld-tooltip/index.mjs +5 -0
- package/esm2020/lib/modules/tld-tooltip/models/active-data.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/models/domain.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/models/index.mjs +5 -0
- package/esm2020/lib/modules/tld-tooltip/models/switcher-options.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/models/system-metadata-keys.model.mjs +7 -0
- package/esm2020/lib/modules/tld-tooltip/models/vendor.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/description.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/language.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/metadata.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/name.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/models/system.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api/tld-system-api.service.mjs +57 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/error.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/get-langauge-direction.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/language-direction.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.mjs +60 -0
- package/esm2020/lib/modules/tld-tooltip/services/index.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/services/tld-system.service.mjs +302 -0
- package/esm2020/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.mjs +69 -0
- package/esm2020/lib/modules/tld-tooltip/tld-tooltip.module.mjs +95 -0
- package/esm2020/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs +188 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/dropdown/translation-system-picker-dropdown.component.mjs +179 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.mjs +209 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/filter/translation-system-picker-filter.component.mjs +48 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/index.mjs +8 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/language-list/translation-system-picker-language-list.component.mjs +31 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/dropdown-body-config.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/grouped-language-item.mjs +3 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/index.mjs +6 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/opened-menu.mjs +7 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/translated-language.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/translated-system.model.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/services/index.mjs +2 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/services/translation-system-picker.service.mjs +58 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/system-list/translation-system-picker-system-list.component.mjs +31 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/system-picker-button/translation-system-picker-button.component.mjs +27 -0
- package/esm2020/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.mjs +79 -0
- package/esm2020/lib/modules/tld-translate-file/tld-translate-file.component.mjs +65 -0
- package/esm2020/lib/modules/tld-web/index.mjs +3 -0
- package/esm2020/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +499 -0
- package/esm2020/lib/modules/tld-web/tld-translate-web.service.mjs +16 -0
- package/esm2020/lib/modules/tld-web/tld-web.module.mjs +52 -0
- package/esm2020/lib/tld-translate-body/tld-translate-body.component.mjs +60 -0
- package/esm2020/lib/tld-translate.component.mjs +229 -0
- package/esm2020/lib/tld-translate.module.mjs +118 -0
- package/esm2020/public-api.mjs +43 -0
- package/esm2020/tilde-nlp-ngx-translate.mjs +5 -0
- package/fesm2015/tilde-nlp-ngx-translate.mjs +11019 -0
- package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -0
- package/fesm2020/tilde-nlp-ngx-translate.mjs +10912 -0
- package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/shared/extension-dialog/components/index.d.ts +1 -0
- package/lib/components/shared/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.d.ts +12 -0
- package/lib/components/shared/extension-dialog/extension-dialog.component.d.ts +15 -0
- package/lib/components/shared/extension-dialog/extension-dialog.module.d.ts +15 -0
- package/lib/components/shared/extension-dialog/index.d.ts +5 -0
- package/lib/components/shared/extension-dialog/models/enums/file-categories.enum.d.ts +7 -0
- package/lib/components/shared/extension-dialog/models/enums/file-extensions.enum.d.ts +33 -0
- package/lib/components/shared/extension-dialog/models/enums/file-type-icons.enum.d.ts +11 -0
- package/lib/components/shared/extension-dialog/models/enums/file-types.enum.d.ts +11 -0
- package/lib/components/shared/extension-dialog/models/enums/index.d.ts +4 -0
- package/lib/components/shared/extension-dialog/models/index.d.ts +2 -0
- package/lib/components/shared/extension-dialog/models/interfaces/config.d.ts +18 -0
- package/lib/components/shared/extension-dialog/models/interfaces/dialog-data.model.d.ts +3 -0
- package/lib/components/shared/extension-dialog/models/interfaces/index.d.ts +2 -0
- package/lib/components/shared/extension-dialog/services/extension-dialog.service.d.ts +9 -0
- package/lib/components/shared/extension-dialog/services/index.d.ts +1 -0
- package/lib/components/shared/text-to-speech/index.d.ts +2 -0
- package/lib/components/shared/text-to-speech/models/text-to-speech-settings.model.d.ts +23 -0
- package/lib/components/shared/text-to-speech/text-to-speech.component.d.ts +18 -0
- package/lib/components/shared/text-to-speech/text-to-speech.module.d.ts +11 -0
- package/lib/components/shared/vendor-disclaimer/vendor-disclaimer.component.d.ts +17 -0
- package/lib/components/shared/vendor-disclaimer/vendor-disclaimer.module.d.ts +9 -0
- package/lib/factories/file-api-service.factory.d.ts +7 -0
- package/lib/factories/system-service.factory.d.ts +6 -0
- package/lib/factories/text-api-service.factory.d.ts +6 -0
- package/lib/i18n/available-languages.d.ts +2 -0
- package/lib/i18n/de.d.ts +377 -0
- package/lib/i18n/en.d.ts +425 -0
- package/lib/i18n/et.d.ts +377 -0
- package/lib/i18n/fi.d.ts +382 -0
- package/lib/i18n/lt.d.ts +377 -0
- package/lib/i18n/lv.d.ts +390 -0
- package/lib/i18n/models/available-languages.model.d.ts +10 -0
- package/lib/i18n/pl.d.ts +377 -0
- package/lib/i18n/sv.d.ts +241 -0
- package/lib/injection-tokens/file-api-service.token.d.ts +1 -0
- package/lib/injection-tokens/index.d.ts +5 -0
- package/lib/injection-tokens/system-service.token.d.ts +1 -0
- package/lib/injection-tokens/text-api-service.token.d.ts +1 -0
- package/lib/injection-tokens/tld-translate-config.token.d.ts +1 -0
- package/lib/injection-tokens/translation-api-version.token.d.ts +1 -0
- package/lib/modules/material.module.d.ts +27 -0
- package/lib/modules/tld-audio/index.d.ts +3 -0
- package/lib/modules/tld-audio/models/audio-error-case.model.d.ts +11 -0
- package/lib/modules/tld-audio/models/dictate-configurationi.model.d.ts +6 -0
- package/lib/modules/tld-audio/models/index.d.ts +2 -0
- package/lib/modules/tld-audio/models/transcription-update.model.d.ts +4 -0
- package/lib/modules/tld-audio/services/audio-record.service.d.ts +35 -0
- package/lib/modules/tld-audio/services/index.d.ts +3 -0
- package/lib/modules/tld-audio/services/tld-voice-input-api.service.d.ts +16 -0
- package/lib/modules/tld-audio/services/tld-voice-input.service.d.ts +20 -0
- package/lib/modules/tld-audio/tld-audio.module.d.ts +14 -0
- package/lib/modules/tld-audio/tld-dictate/tld-dictate.component.d.ts +43 -0
- package/lib/modules/tld-audio/tld-record/tld-record.component.d.ts +32 -0
- package/lib/modules/tld-common/animations/pulse.animation.d.ts +1 -0
- package/lib/modules/tld-common/components/index.d.ts +9 -0
- package/lib/modules/tld-common/components/open-close-button/open-close-button.component.d.ts +15 -0
- package/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.d.ts +19 -0
- package/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.d.ts +28 -0
- package/lib/modules/tld-common/components/tld-lang-list/tld-lang-list.component.d.ts +52 -0
- package/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.d.ts +24 -0
- package/lib/modules/tld-common/components/tld-loader/tld-loader.component.d.ts +5 -0
- package/lib/modules/tld-common/components/tld-message/tld-message.component.d.ts +18 -0
- package/lib/modules/tld-common/components/tld-translate-achievement/tld-translate-achievement.component.d.ts +6 -0
- package/lib/modules/tld-common/components/translate-button/tld-translate-button.service.d.ts +12 -0
- package/lib/modules/tld-common/components/translate-button/translate-button.component.d.ts +22 -0
- package/lib/modules/tld-common/directives/drag-and-drop.directive.d.ts +14 -0
- package/lib/modules/tld-common/directives/index.d.ts +1 -0
- package/lib/modules/tld-common/index.d.ts +1 -0
- package/lib/modules/tld-common/models/auth-options.model.d.ts +4 -0
- package/lib/modules/tld-common/models/common.d.ts +28 -0
- package/lib/modules/tld-common/models/configs/tld-audio-config.model.d.ts +22 -0
- package/lib/modules/tld-common/models/configs/tld-term-config.model.d.ts +27 -0
- package/lib/modules/tld-common/models/configs/tld-text-to-speech-config.model.d.ts +11 -0
- package/lib/modules/tld-common/models/configs/tld-translate-api-v2-config.model.d.ts +11 -0
- package/lib/modules/tld-common/models/configs/tld-translate-config.model.d.ts +18 -0
- package/lib/modules/tld-common/models/configs/tld-translate-core-config.model.d.ts +42 -0
- package/lib/modules/tld-common/models/configs/tld-translate-file-config.model.d.ts +25 -0
- package/lib/modules/tld-common/models/configs/tld-translate-text-config.model.d.ts +39 -0
- package/lib/modules/tld-common/models/configs/tld-translate-web-config.model.d.ts +10 -0
- package/lib/modules/tld-common/models/core/index.d.ts +2 -0
- package/lib/modules/tld-common/models/core/language-menu-version.enum.d.ts +4 -0
- package/lib/modules/tld-common/models/core/translation-api-version.model.d.ts +4 -0
- package/lib/modules/tld-common/models/errors/error-codes.enum.d.ts +21 -0
- package/lib/modules/tld-common/models/errors/error-codes.type.d.ts +4 -0
- package/lib/modules/tld-common/models/errors/error.model.d.ts +3 -0
- package/lib/modules/tld-common/models/file-upload.model.d.ts +13 -0
- package/lib/modules/tld-common/models/index.d.ts +21 -0
- package/lib/modules/tld-common/models/lang-list-item.model.d.ts +6 -0
- package/lib/modules/tld-common/models/language-with-translation.model.d.ts +6 -0
- package/lib/modules/tld-common/models/message.model.d.ts +11 -0
- package/lib/modules/tld-common/models/selected-language.model.d.ts +4 -0
- package/lib/modules/tld-common/models/services/file-api/download-file-params.model.d.ts +5 -0
- package/lib/modules/tld-common/models/services/file-api/file-api-service.model.d.ts +17 -0
- package/lib/modules/tld-common/models/services/file-api/file-meta.model.d.ts +8 -0
- package/lib/modules/tld-common/models/services/file-api/file-translation-substatus.model.d.ts +7 -0
- package/lib/modules/tld-common/models/services/file-api/get-file-status-params.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/file-api/get-file-translation-status-response.model.d.ts +13 -0
- package/lib/modules/tld-common/models/services/file-api/remove-file-params.model.d.ts +4 -0
- package/lib/modules/tld-common/models/services/file-api/source-file-preview-response.model.d.ts +8 -0
- package/lib/modules/tld-common/models/services/file-api/start-file-translation-params.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/file-api/translated-document-preview-params.model.d.ts +4 -0
- package/lib/modules/tld-common/models/services/index.d.ts +18 -0
- package/lib/modules/tld-common/models/services/system/system.model.d.ts +17 -0
- package/lib/modules/tld-common/models/services/system/tld-system-api-service.model.d.ts +5 -0
- package/lib/modules/tld-common/models/services/text-api/check-grammar-response.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/text-api/tld-translate-text-api-service.model.d.ts +26 -0
- package/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.d.ts +6 -0
- package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job-state.model.d.ts +5 -0
- package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job.model.d.ts +21 -0
- package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-start-job-request-params.model.d.ts +7 -0
- package/lib/modules/tld-common/pipes/index.d.ts +1 -0
- package/lib/modules/tld-common/pipes/translate-domain.pipe.d.ts +13 -0
- package/lib/modules/tld-common/services/icon-service/icon.service.d.ts +12 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/excel.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/index.d.ts +9 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/interchange.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/office-other.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/other.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/pdf.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/powerpoint.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/scanned.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/web.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons/file-types/word.icon.d.ts +1 -0
- package/lib/modules/tld-common/services/icon-service/icons.d.ts +3 -0
- package/lib/modules/tld-common/services/index.d.ts +4 -0
- package/lib/modules/tld-common/services/scroll/tld-scroll.service.d.ts +12 -0
- package/lib/modules/tld-common/services/tld-alert.service.d.ts +33 -0
- package/lib/modules/tld-common/services/tld-highlight.service.d.ts +14 -0
- package/lib/modules/tld-common/services/tld-translate-config.service.d.ts +39 -0
- package/lib/modules/tld-common/services/wtw-link-params.service.d.ts +13 -0
- package/lib/modules/tld-common/tld-common.module.d.ts +23 -0
- package/lib/modules/tld-document/download-button/download-button.component.d.ts +30 -0
- package/lib/modules/tld-document/image-conversion-help/image-conversion-help.component.d.ts +21 -0
- package/lib/modules/tld-document/index.d.ts +7 -0
- package/lib/modules/tld-document/models/file-conversion-types.model.d.ts +4 -0
- package/lib/modules/tld-document/models/index.d.ts +5 -0
- package/lib/modules/tld-document/models/start-translation.model.d.ts +16 -0
- package/lib/modules/tld-document/models/translate-file.model.d.ts +33 -0
- package/lib/modules/tld-document/models/translation-statuss.model.d.ts +12 -0
- package/lib/modules/tld-document/models/upload-response.model.d.ts +8 -0
- package/lib/modules/tld-document/pdf-conversion-help/pdf-conversion-help.component.d.ts +21 -0
- package/lib/modules/tld-document/services/api/file-api.service.d.ts +26 -0
- package/lib/modules/tld-document/services/api/models/file-preview-v1-progress-response.model.d.ts +6 -0
- package/lib/modules/tld-document/services/api/models/file-preview-v1-response-body.model.d.ts +8 -0
- package/lib/modules/tld-document/services/api/models/get-file-translation-status-v1-response.model.d.ts +11 -0
- package/lib/modules/tld-document/services/api-v2/file-api-v2.service.d.ts +22 -0
- package/lib/modules/tld-document/services/api-v2/models/file-category-v2.model.d.ts +4 -0
- package/lib/modules/tld-document/services/api-v2/models/file-translation-status-v2-response.model.d.ts +20 -0
- package/lib/modules/tld-document/services/index.d.ts +2 -0
- package/lib/modules/tld-document/services/tld-translate-file.service.d.ts +60 -0
- package/lib/modules/tld-document/tld-document.module.d.ts +19 -0
- package/lib/modules/tld-document/tld-file-translate-base.component.d.ts +29 -0
- package/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.d.ts +40 -0
- package/lib/modules/tld-term/index.d.ts +6 -0
- package/lib/modules/tld-term/models/converted-collection-tooltip-key.model.d.ts +5 -0
- package/lib/modules/tld-term/models/converted-collection-type.model.d.ts +7 -0
- package/lib/modules/tld-term/models/index.d.ts +6 -0
- package/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.d.ts +15 -0
- package/lib/modules/tld-term/models/mt-collection-status.model.d.ts +5 -0
- package/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.d.ts +11 -0
- package/lib/modules/tld-term/models/term-api/tld-term-collection.model.d.ts +46 -0
- package/lib/modules/tld-term/models/tld-converted-collection.model.d.ts +43 -0
- package/lib/modules/tld-term/services/index.d.ts +3 -0
- package/lib/modules/tld-term/services/mt-collections-api.service.d.ts +13 -0
- package/lib/modules/tld-term/services/term-api.service.d.ts +15 -0
- package/lib/modules/tld-term/services/tld-term-collections.service.d.ts +57 -0
- package/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.d.ts +9 -0
- package/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.d.ts +39 -0
- package/lib/modules/tld-term/tld-term-create-collection-dialog/tld-term-create-collection-dialog.component.d.ts +20 -0
- package/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.d.ts +13 -0
- package/lib/modules/tld-term/tld-term-promotion/tld-term-promotion.component.d.ts +17 -0
- package/lib/modules/tld-term/tld-term.module.d.ts +22 -0
- package/lib/modules/tld-text/components/highlight-tree/highlight-tree.component.d.ts +27 -0
- package/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.d.ts +20 -0
- package/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.d.ts +40 -0
- package/lib/modules/tld-text/components/tld-dictionary/tld-dictionary.component.d.ts +24 -0
- package/lib/modules/tld-text/components/tld-translate-source/tld-translate-source.component.d.ts +36 -0
- package/lib/modules/tld-text/components/tld-translate-suggest/dialog/suggest-translation.model.d.ts +11 -0
- package/lib/modules/tld-text/components/tld-translate-suggest/dialog/tld-translate-suggest-dialog.component.d.ts +33 -0
- package/lib/modules/tld-text/components/tld-translate-suggest/tld-translate-suggest.component.d.ts +24 -0
- package/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.d.ts +104 -0
- package/lib/modules/tld-text/index.d.ts +8 -0
- package/lib/modules/tld-text/models/check-grammar-response-v2.model.d.ts +4 -0
- package/lib/modules/tld-text/models/dictionary.model.d.ts +28 -0
- package/lib/modules/tld-text/models/get-sentence-v1-response.model.d.ts +5 -0
- package/lib/modules/tld-text/models/grammar-check-base.model.d.ts +6 -0
- package/lib/modules/tld-text/models/grammar-check-meta.model.d.ts +5 -0
- package/lib/modules/tld-text/models/grammar-check-replacement.model.d.ts +5 -0
- package/lib/modules/tld-text/models/grammar-correction-v2.model.d.ts +9 -0
- package/lib/modules/tld-text/models/highlight-params.model.d.ts +10 -0
- package/lib/modules/tld-text/models/highlight-tree-type.model.d.ts +10 -0
- package/lib/modules/tld-text/models/highlight-tree.model.d.ts +22 -0
- package/lib/modules/tld-text/models/highlight.model.d.ts +10 -0
- package/lib/modules/tld-text/models/index.d.ts +10 -0
- package/lib/modules/tld-text/models/retranslate-params.model.d.ts +4 -0
- package/lib/modules/tld-text/models/source-text-changed.model.d.ts +6 -0
- package/lib/modules/tld-text/models/translate-paragraph-params.model.d.ts +6 -0
- package/lib/modules/tld-text/models/translate-paragraph-response-v1.model.d.ts +15 -0
- package/lib/modules/tld-text/models/translate-paragraph-response-v2.model.d.ts +9 -0
- package/lib/modules/tld-text/models/translate-paragraph-response.model.d.ts +7 -0
- package/lib/modules/tld-text/models/untranslated-paragraph.model.d.ts +4 -0
- package/lib/modules/tld-text/services/api/tld-translate-text-api.service.d.ts +24 -0
- package/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.d.ts +17 -0
- package/lib/modules/tld-text/services/index.d.ts +1 -0
- package/lib/modules/tld-text/services/tld-translate-text.service.d.ts +104 -0
- package/lib/modules/tld-text/tld-text.module.d.ts +27 -0
- package/lib/modules/tld-text/utils/index.d.ts +1 -0
- package/lib/modules/tld-text/utils/models/existing-paragraph-info.model.d.ts +5 -0
- package/lib/modules/tld-text/utils/models/index.d.ts +1 -0
- package/lib/modules/tld-text/utils/tld-translate-text.utils.d.ts +9 -0
- package/lib/modules/tld-tooltip/index.d.ts +4 -0
- package/lib/modules/tld-tooltip/models/active-data.model.d.ts +24 -0
- package/lib/modules/tld-tooltip/models/domain.model.d.ts +8 -0
- package/lib/modules/tld-tooltip/models/index.d.ts +4 -0
- package/lib/modules/tld-tooltip/models/switcher-options.model.d.ts +14 -0
- package/lib/modules/tld-tooltip/models/system-metadata-keys.model.d.ts +5 -0
- package/lib/modules/tld-tooltip/models/vendor.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/description.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/language.model.d.ts +5 -0
- package/lib/modules/tld-tooltip/services/api/models/metadata.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/name.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api/models/system.model.d.ts +14 -0
- package/lib/modules/tld-tooltip/services/api/tld-system-api.service.d.ts +15 -0
- package/lib/modules/tld-tooltip/services/api-v2/models/error.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/services/api-v2/models/get-langauge-direction.d.ts +6 -0
- package/lib/modules/tld-tooltip/services/api-v2/models/language-direction.model.d.ts +7 -0
- package/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.d.ts +15 -0
- package/lib/modules/tld-tooltip/services/index.d.ts +1 -0
- package/lib/modules/tld-tooltip/services/tld-system.service.d.ts +57 -0
- package/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.d.ts +33 -0
- package/lib/modules/tld-tooltip/tld-tooltip.module.d.ts +25 -0
- package/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.d.ts +64 -0
- package/lib/modules/tld-tooltip/translation-system-picker/dropdown/translation-system-picker-dropdown.component.d.ts +44 -0
- package/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.d.ts +65 -0
- package/lib/modules/tld-tooltip/translation-system-picker/filter/translation-system-picker-filter.component.d.ts +17 -0
- package/lib/modules/tld-tooltip/translation-system-picker/index.d.ts +7 -0
- package/lib/modules/tld-tooltip/translation-system-picker/language-list/translation-system-picker-language-list.component.d.ts +14 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/dropdown-body-config.model.d.ts +11 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/grouped-language-item.d.ts +8 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/index.d.ts +5 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/opened-menu.d.ts +5 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/translated-language.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/translation-system-picker/models/translated-system.model.d.ts +4 -0
- package/lib/modules/tld-tooltip/translation-system-picker/services/index.d.ts +1 -0
- package/lib/modules/tld-tooltip/translation-system-picker/services/translation-system-picker.service.d.ts +24 -0
- package/lib/modules/tld-tooltip/translation-system-picker/system-list/translation-system-picker-system-list.component.d.ts +13 -0
- package/lib/modules/tld-tooltip/translation-system-picker/system-picker-button/translation-system-picker-button.component.d.ts +10 -0
- package/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.d.ts +34 -0
- package/lib/modules/tld-translate-file/tld-translate-file.component.d.ts +37 -0
- package/lib/modules/tld-web/index.d.ts +2 -0
- package/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.d.ts +85 -0
- package/lib/modules/tld-web/tld-translate-web.service.d.ts +7 -0
- package/lib/modules/tld-web/tld-web.module.d.ts +14 -0
- package/lib/tld-translate-body/tld-translate-body.component.d.ts +23 -0
- package/lib/tld-translate.component.d.ts +65 -0
- package/lib/tld-translate.module.d.ts +23 -0
- package/package.json +40 -0
- package/public-api.d.ts +28 -0
- package/src/assets/webcomponent/styles.css +1 -0
- package/src/assets/webcomponent/tld-translate.js +3 -0
- package/src/assets/webtranslate/page-translate-widget.js +4934 -0
- package/src/assets/webtranslate/remove.png +0 -0
- package/src/assets/webtranslate/tilde_logo.png +0 -0
- package/src/assets/webtranslate/translate-website.js +393 -0
- package/src/assets/webtranslate/widget.css +139 -0
- package/src/styles/colors.scss +15 -0
- package/src/styles/fonts.scss +3 -0
- package/src/styles/mixin/border-default.scss +10 -0
- package/src/styles/mixin/tld-translate-accent-colors.scss +46 -0
- package/src/styles/mixin/tld-translate-colors.scss +7 -0
- package/src/styles/mixin/tld-translate-placeholders.scss +5 -0
- package/src/styles/mixin/tld-translate-primary-colors.scss +5 -0
- package/src/styles/styles.scss +377 -0
- package/src/styles/translator-borders.scss +28 -0
- package/tilde-nlp-ngx-translate-1.0.0.tgz +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../services";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/button";
|
|
6
|
+
import * as i4 from "@angular/material/icon";
|
|
7
|
+
import * as i5 from "@angular/material/menu";
|
|
8
|
+
import * as i6 from "@angular/material/tooltip";
|
|
9
|
+
import * as i7 from "@angular/flex-layout/flex";
|
|
10
|
+
import * as i8 from "@angular/flex-layout/extended";
|
|
11
|
+
import * as i9 from "@angular/material/progress-spinner";
|
|
12
|
+
import * as i10 from "../../tld-common/components/open-close-button/open-close-button.component";
|
|
13
|
+
import * as i11 from "@tilde-nlp/ngx-common";
|
|
14
|
+
import * as i12 from "../tld-term-collection/tld-term-collection.component";
|
|
15
|
+
import * as i13 from "@ngx-translate/core";
|
|
16
|
+
export class TldTermMenuComponent {
|
|
17
|
+
constructor(collectionService) {
|
|
18
|
+
this.collectionService = collectionService;
|
|
19
|
+
}
|
|
20
|
+
get selected() { return this.collectionService.selected; }
|
|
21
|
+
;
|
|
22
|
+
set selected(val) { this.collectionService.selected = val; }
|
|
23
|
+
menuOpened() {
|
|
24
|
+
this.collectionService.onMenuOpen();
|
|
25
|
+
}
|
|
26
|
+
menuClosed() {
|
|
27
|
+
this.collectionService.onMenuClose();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
TldTermMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermMenuComponent, deps: [{ token: i1.TldTermCollectionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
TldTermMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermMenuComponent, selector: "tld-term-menu", ngImport: i0, template: "<div fxLayoutAlign=\"center center\" [ngClass.lt-sm]=\"'tld-term-collection-wrapper-mobile'\" fxLayoutGap=\"8px\">\r\n <span fxHide.lt-md>\r\n {{'TERM_COLLECTIONS.GLOSSARY' | translate}}\r\n </span>\r\n <tld-open-close-button fxHide.lt-sm #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\"\r\n (menuOpened)=\"menuOpened()\" (menuClosed)=\"menuClosed()\"\r\n [matTooltip]=\"selected? selected.title:''\" [isOpened]=\"state.menuOpen\" class=\"tld-collection-menu-button\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\">\r\n <span class=\"selected-collection\">\r\n {{selected? selected.title : ('TERM_COLLECTIONS.SELECTED_NONE' | translate)}}\r\n </span>\r\n <mat-spinner class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\" *ngIf=\"selected?.isImporting\"></mat-spinner>\r\n </tld-open-close-button>\r\n <button mat-icon-button fxHide.gt-xs [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"collections_menu\" [attr.color]=\"selected?'accent':''\"></mat-icon>\r\n </button>\r\n\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"tld-collection-menu\">\r\n <tld-close-button fxHide.gt-xs></tld-close-button>\r\n <div class=\"tld-term-collection\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <tld-term-collection></tld-term-collection>\r\n </div>\r\n</mat-menu>\r\n", styles: [".tld-collection-menu-button .selected-collection{overflow:hidden;text-overflow:ellipsis;max-width:140px;display:inline-block}.selected-col-spinner{margin-left:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i7.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: i7.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: i8.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: i8.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: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.TldOpenCloseButtonComponent, selector: "tld-open-close-button", inputs: ["disableFocusOnAction", "isOpened", "disabled", "isIcon", "ariaLabelCode"] }, { kind: "component", type: i11.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i12.TldTermCollectionComponent, selector: "tld-term-collection" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermMenuComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'tld-term-menu', template: "<div fxLayoutAlign=\"center center\" [ngClass.lt-sm]=\"'tld-term-collection-wrapper-mobile'\" fxLayoutGap=\"8px\">\r\n <span fxHide.lt-md>\r\n {{'TERM_COLLECTIONS.GLOSSARY' | translate}}\r\n </span>\r\n <tld-open-close-button fxHide.lt-sm #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\"\r\n (menuOpened)=\"menuOpened()\" (menuClosed)=\"menuClosed()\"\r\n [matTooltip]=\"selected? selected.title:''\" [isOpened]=\"state.menuOpen\" class=\"tld-collection-menu-button\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\">\r\n <span class=\"selected-collection\">\r\n {{selected? selected.title : ('TERM_COLLECTIONS.SELECTED_NONE' | translate)}}\r\n </span>\r\n <mat-spinner class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\" *ngIf=\"selected?.isImporting\"></mat-spinner>\r\n </tld-open-close-button>\r\n <button mat-icon-button fxHide.gt-xs [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"collections_menu\" [attr.color]=\"selected?'accent':''\"></mat-icon>\r\n </button>\r\n\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"tld-collection-menu\">\r\n <tld-close-button fxHide.gt-xs></tld-close-button>\r\n <div class=\"tld-term-collection\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <tld-term-collection></tld-term-collection>\r\n </div>\r\n</mat-menu>\r\n", styles: [".tld-collection-menu-button .selected-collection{overflow:hidden;text-overflow:ellipsis;max-width:140px;display:inline-block}.selected-col-spinner{margin-left:5px}\n"] }]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.TldTermCollectionsService }]; } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGVybS90bGQtdGVybS1tZW51L3RsZC10ZXJtLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0tbWVudS90bGQtdGVybS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVUxQyxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQTZCLGlCQUE0QztRQUE1QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTJCO0lBQUksQ0FBQztJQUg5RSxJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUMxRCxJQUFJLFFBQVEsQ0FBQyxHQUEyQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUlwRixVQUFVO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7O2lIQVpVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFEQ1ZqQywyM0NBeUJBOzJGRGZhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRsZENvbnZlcnRlZENvbGxlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRUZXJtQ29sbGVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRlcm0tbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10ZXJtLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10ZXJtLW1lbnUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVGVybU1lbnVDb21wb25lbnQge1xyXG4gIGdldCBzZWxlY3RlZCgpIHsgcmV0dXJuIHRoaXMuY29sbGVjdGlvblNlcnZpY2Uuc2VsZWN0ZWQgfTtcclxuICBzZXQgc2VsZWN0ZWQodmFsOiBUbGRDb252ZXJ0ZWRDb2xsZWN0aW9uKSB7IHRoaXMuY29sbGVjdGlvblNlcnZpY2Uuc2VsZWN0ZWQgPSB2YWw7IH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb2xsZWN0aW9uU2VydmljZTogVGxkVGVybUNvbGxlY3Rpb25zU2VydmljZSkgeyB9XHJcblxyXG4gIG1lbnVPcGVuZWQoKXtcclxuICAgIHRoaXMuY29sbGVjdGlvblNlcnZpY2Uub25NZW51T3BlbigpO1xyXG4gIH1cclxuICBcclxuICBtZW51Q2xvc2VkKCl7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlLm9uTWVudUNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRlcm0tY29sbGVjdGlvbi13cmFwcGVyLW1vYmlsZSdcIiBmeExheW91dEdhcD1cIjhweFwiPlxyXG4gIDxzcGFuIGZ4SGlkZS5sdC1tZD5cclxuICAgIHt7J1RFUk1fQ09MTEVDVElPTlMuR0xPU1NBUlknIHwgdHJhbnNsYXRlfX1cclxuICA8L3NwYW4+XHJcbiAgPHRsZC1vcGVuLWNsb3NlLWJ1dHRvbiBmeEhpZGUubHQtc20gI3N0YXRlPVwibWF0TWVudVRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcbiAgICAobWVudU9wZW5lZCk9XCJtZW51T3BlbmVkKClcIiAobWVudUNsb3NlZCk9XCJtZW51Q2xvc2VkKClcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwic2VsZWN0ZWQ/IHNlbGVjdGVkLnRpdGxlOicnXCIgW2lzT3BlbmVkXT1cInN0YXRlLm1lbnVPcGVuXCIgY2xhc3M9XCJ0bGQtY29sbGVjdGlvbi1tZW51LWJ1dHRvblwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidURVJNX0NPTExFQ1RJT05TLkFSSUFfTEFCRUxTLk9USEVSX0NPTExFQ1RJT05TJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZC1jb2xsZWN0aW9uXCI+XHJcbiAgICAgIHt7c2VsZWN0ZWQ/IHNlbGVjdGVkLnRpdGxlIDogKCdURVJNX0NPTExFQ1RJT05TLlNFTEVDVEVEX05PTkUnIHwgdHJhbnNsYXRlKX19XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJzZWxlY3RlZC1jb2wtc3Bpbm5lclwiIGNvbG9yPVwiYWNjZW50XCIgZGlhbWV0ZXI9XCIxNlwiICpuZ0lmPVwic2VsZWN0ZWQ/LmlzSW1wb3J0aW5nXCI+PC9tYXQtc3Bpbm5lcj5cclxuICA8L3RsZC1vcGVuLWNsb3NlLWJ1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBmeEhpZGUuZ3QteHMgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29sbGVjdGlvbnNfbWVudVwiIFthdHRyLmNvbG9yXT1cInNlbGVjdGVkPydhY2NlbnQnOicnXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbWVudVwiPlxyXG4gIDx0bGQtY2xvc2UtYnV0dG9uIGZ4SGlkZS5ndC14cz48L3RsZC1jbG9zZS1idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cInRsZC10ZXJtLWNvbGxlY3Rpb25cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICA8dGxkLXRlcm0tY29sbGVjdGlvbj48L3RsZC10ZXJtLWNvbGxlY3Rpb24+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component } 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 "../../tld-common/services/wtw-link-params.service";
|
|
7
|
+
import * as i3 from "@angular/material/button";
|
|
8
|
+
import * as i4 from "@angular/flex-layout/flex";
|
|
9
|
+
import * as i5 from "@ngx-translate/core";
|
|
10
|
+
export class TldTermPromotionComponent {
|
|
11
|
+
constructor(config, wtwQueryService) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.wtwQueryService = wtwQueryService;
|
|
14
|
+
this.destroy$ = new Subject();
|
|
15
|
+
this.localizationKey = "TERM_COLLECTIONS.PROMOTION.";
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.wtwQueryService.query().pipe(takeUntil(this.destroy$))
|
|
19
|
+
.subscribe((query) => {
|
|
20
|
+
this.trialUrl = `${this.config.termConfig.freeTrialUrl}?${query}`;
|
|
21
|
+
this.learnMoreUrl = `${this.config.termConfig.learnMoreUrl}?${query}`;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
this.destroy$.next(null);
|
|
26
|
+
this.destroy$.complete();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
TldTermPromotionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermPromotionComponent, deps: [{ token: i1.TldTranslateConfigService }, { token: i2.WtwLinkParamsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
TldTermPromotionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTermPromotionComponent, selector: "tld-term-promotion", ngImport: i0, template: "<section class=\"term-promotion-wrapper\" fxLayout=\"column\" fxLayoutGap=\"16px\">\r\n <div>\r\n <h1 class=\"term-window-title\">{{ localizationKey + \"TITLE\" | translate}}</h1>\r\n <p>{{ localizationKey + \"DESCRIPTION\" | translate}}</p>\r\n </div>\r\n <div fxLayoutGap=\"0.75em\" fxLayout.lt-sm=\"column\">\r\n <a [attr.href]=\"trialUrl\" target=\"_blank\" mat-flat-button color=\"primary\">\r\n {{ localizationKey + \"START_TRIAL\" | translate}}\r\n </a>\r\n <a [attr.href]=\"learnMoreUrl\" target=\"_blank\">{{ localizationKey + \"LEARN_MORE\" | translate}}</a>\r\n </div>\r\n</section>", styles: [".term-promotion-wrapper{margin:1em}.term-promotion-wrapper button{width:100%}.term-promotion-wrapper p{margin:0}.term-promotion-wrapper a.mat-flat-button:hover{color:#fff!important}\n"], dependencies: [{ kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "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: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermPromotionComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'tld-term-promotion', template: "<section class=\"term-promotion-wrapper\" fxLayout=\"column\" fxLayoutGap=\"16px\">\r\n <div>\r\n <h1 class=\"term-window-title\">{{ localizationKey + \"TITLE\" | translate}}</h1>\r\n <p>{{ localizationKey + \"DESCRIPTION\" | translate}}</p>\r\n </div>\r\n <div fxLayoutGap=\"0.75em\" fxLayout.lt-sm=\"column\">\r\n <a [attr.href]=\"trialUrl\" target=\"_blank\" mat-flat-button color=\"primary\">\r\n {{ localizationKey + \"START_TRIAL\" | translate}}\r\n </a>\r\n <a [attr.href]=\"learnMoreUrl\" target=\"_blank\">{{ localizationKey + \"LEARN_MORE\" | translate}}</a>\r\n </div>\r\n</section>", styles: [".term-promotion-wrapper{margin:1em}.term-promotion-wrapper button{width:100%}.term-promotion-wrapper p{margin:0}.term-promotion-wrapper a.mat-flat-button:hover{color:#fff!important}\n"] }]
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.WtwLinkParamsService }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tcHJvbW90aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3RsZC10ZXJtLXByb21vdGlvbi90bGQtdGVybS1wcm9tb3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0tcHJvbW90aW9uL3RsZC10ZXJtLXByb21vdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVMzQyxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQ21CLE1BQWlDLEVBQ2pDLGVBQXFDO1FBRHJDLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFzQjtRQVJ2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqQyxvQkFBZSxHQUFHLDZCQUE2QixDQUFDO0lBT3JELENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDeEIsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3NIQXhCVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwwRENYdEMsNm9CQVdVOzJGREFHLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFd0d0xpbmtQYXJhbXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcy93dHctbGluay1wYXJhbXMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10ZXJtLXByb21vdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10ZXJtLXByb21vdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRlcm0tcHJvbW90aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRlcm1Qcm9tb3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHJlYWRvbmx5IGxvY2FsaXphdGlvbktleSA9IFwiVEVSTV9DT0xMRUNUSU9OUy5QUk9NT1RJT04uXCI7XHJcbiAgdHJpYWxVcmw6IHN0cmluZztcclxuICBsZWFybk1vcmVVcmw6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgd3R3UXVlcnlTZXJ2aWNlOiBXdHdMaW5rUGFyYW1zU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy53dHdRdWVyeVNlcnZpY2UucXVlcnkoKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHF1ZXJ5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnRyaWFsVXJsID0gYCR7dGhpcy5jb25maWcudGVybUNvbmZpZy5mcmVlVHJpYWxVcmx9PyR7cXVlcnl9YDtcclxuICAgICAgICB0aGlzLmxlYXJuTW9yZVVybCA9IGAke3RoaXMuY29uZmlnLnRlcm1Db25maWcubGVhcm5Nb3JlVXJsfT8ke3F1ZXJ5fWA7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbClcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJ0ZXJtLXByb21vdGlvbi13cmFwcGVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjE2cHhcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwidGVybS13aW5kb3ctdGl0bGVcIj57eyBsb2NhbGl6YXRpb25LZXkgKyBcIlRJVExFXCIgfCB0cmFuc2xhdGV9fTwvaDE+XHJcbiAgICAgICAgPHA+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhMYXlvdXRHYXA9XCIwLjc1ZW1cIiBmeExheW91dC5sdC1zbT1cImNvbHVtblwiPlxyXG4gICAgICAgIDxhIFthdHRyLmhyZWZdPVwidHJpYWxVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgIHt7IGxvY2FsaXphdGlvbktleSArIFwiU1RBUlRfVFJJQUxcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxhIFthdHRyLmhyZWZdPVwibGVhcm5Nb3JlVXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCI+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJMRUFSTl9NT1JFXCIgfCB0cmFuc2xhdGV9fTwvYT5cclxuICAgIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MaterialModule } from '../material.module';
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
7
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
8
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
9
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
10
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
|
+
import { TldCommonModule } from '../tld-common';
|
|
12
|
+
import { TldTermCollectionComponent } from './tld-term-collection/tld-term-collection.component';
|
|
13
|
+
import { TldTermCreateCollectionDialogComponent } from './tld-term-create-collection-dialog/tld-term-create-collection-dialog.component';
|
|
14
|
+
import { TldTermCollectionListComponent } from './tld-term-collection-list/tld-term-collection-list.component';
|
|
15
|
+
import { TldTermMenuComponent } from './tld-term-menu/tld-term-menu.component';
|
|
16
|
+
import { TldTermPromotionComponent } from './tld-term-promotion/tld-term-promotion.component';
|
|
17
|
+
import { CloseButtonModule } from '@tilde-nlp/ngx-common';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
export class TldTermModule {
|
|
20
|
+
}
|
|
21
|
+
TldTermModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
22
|
+
TldTermModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TldTermModule, declarations: [TldTermCollectionComponent, TldTermCollectionListComponent, TldTermCreateCollectionDialogComponent, TldTermMenuComponent, TldTermPromotionComponent], imports: [FormsModule,
|
|
23
|
+
CommonModule,
|
|
24
|
+
MaterialModule,
|
|
25
|
+
TranslateModule,
|
|
26
|
+
MatMenuModule,
|
|
27
|
+
MatDividerModule,
|
|
28
|
+
MatRadioModule,
|
|
29
|
+
MatProgressSpinnerModule,
|
|
30
|
+
MatTooltipModule,
|
|
31
|
+
TldCommonModule,
|
|
32
|
+
ReactiveFormsModule,
|
|
33
|
+
CloseButtonModule], exports: [TldTermMenuComponent] });
|
|
34
|
+
TldTermModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermModule, imports: [FormsModule,
|
|
35
|
+
CommonModule,
|
|
36
|
+
MaterialModule,
|
|
37
|
+
TranslateModule,
|
|
38
|
+
MatMenuModule,
|
|
39
|
+
MatDividerModule,
|
|
40
|
+
MatRadioModule,
|
|
41
|
+
MatProgressSpinnerModule,
|
|
42
|
+
MatTooltipModule,
|
|
43
|
+
TldCommonModule,
|
|
44
|
+
ReactiveFormsModule,
|
|
45
|
+
CloseButtonModule] });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTermModule, decorators: [{
|
|
47
|
+
type: NgModule,
|
|
48
|
+
args: [{
|
|
49
|
+
declarations: [TldTermCollectionComponent, TldTermCollectionListComponent, TldTermCreateCollectionDialogComponent, TldTermMenuComponent, TldTermPromotionComponent],
|
|
50
|
+
imports: [
|
|
51
|
+
FormsModule,
|
|
52
|
+
CommonModule,
|
|
53
|
+
MaterialModule,
|
|
54
|
+
TranslateModule,
|
|
55
|
+
MatMenuModule,
|
|
56
|
+
MatDividerModule,
|
|
57
|
+
MatRadioModule,
|
|
58
|
+
MatProgressSpinnerModule,
|
|
59
|
+
MatTooltipModule,
|
|
60
|
+
TldCommonModule,
|
|
61
|
+
ReactiveFormsModule,
|
|
62
|
+
CloseButtonModule
|
|
63
|
+
],
|
|
64
|
+
exports: [TldTermMenuComponent]
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vdGxkLXRlcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpRkFBaUYsQ0FBQztBQUN6SSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFxQjFELE1BQU0sT0FBTyxhQUFhOzswR0FBYixhQUFhOzJHQUFiLGFBQWEsaUJBakJULDBCQUEwQixFQUFFLDhCQUE4QixFQUFFLHNDQUFzQyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixhQUVoSyxXQUFXO1FBQ1gsWUFBWTtRQUNaLGNBQWM7UUFDZCxlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGlCQUFpQixhQUVULG9CQUFvQjsyR0FFbkIsYUFBYSxZQWZ0QixXQUFXO1FBQ1gsWUFBWTtRQUNaLGNBQWM7UUFDZCxlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGlCQUFpQjsyRkFJUixhQUFhO2tCQWxCekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxzQ0FBc0MsRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBRTtvQkFDcEssT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRsZENvbW1vbk1vZHVsZSB9IGZyb20gJy4uL3RsZC1jb21tb24nO1xyXG5pbXBvcnQgeyBUbGRUZXJtQ29sbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdGxkLXRlcm0tY29sbGVjdGlvbi90bGQtdGVybS1jb2xsZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRlcm1DcmVhdGVDb2xsZWN0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi90bGQtdGVybS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2cvdGxkLXRlcm0tY3JlYXRlLWNvbGxlY3Rpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRlcm1Db2xsZWN0aW9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdGxkLXRlcm0tY29sbGVjdGlvbi1saXN0L3RsZC10ZXJtLWNvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRUZXJtTWVudUNvbXBvbmVudCB9IGZyb20gJy4vdGxkLXRlcm0tbWVudS90bGQtdGVybS1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRlcm1Qcm9tb3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3RsZC10ZXJtLXByb21vdGlvbi90bGQtdGVybS1wcm9tb3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2xvc2VCdXR0b25Nb2R1bGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVGxkVGVybUNvbGxlY3Rpb25Db21wb25lbnQsIFRsZFRlcm1Db2xsZWN0aW9uTGlzdENvbXBvbmVudCwgVGxkVGVybUNyZWF0ZUNvbGxlY3Rpb25EaWFsb2dDb21wb25lbnQsIFRsZFRlcm1NZW51Q29tcG9uZW50LCBUbGRUZXJtUHJvbW90aW9uQ29tcG9uZW50IF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgVGxkQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIENsb3NlQnV0dG9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbVGxkVGVybU1lbnVDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUZXJtTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { HighlightParams } from '../../models/highlight-params.model';
|
|
3
|
+
import { HighlightTreeType } from '../../models/highlight-tree-type.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../tld-common/services";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/material/button";
|
|
8
|
+
import * as i4 from "@angular/material/menu";
|
|
9
|
+
import * as i5 from "@angular/flex-layout/extended";
|
|
10
|
+
import * as i6 from "@ngx-translate/core";
|
|
11
|
+
export class HighlightTreeComponent {
|
|
12
|
+
constructor(highlightService) {
|
|
13
|
+
this.highlightService = highlightService;
|
|
14
|
+
this.correctionsEnabled = true;
|
|
15
|
+
this.onReplace = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
mouseEnter(event) {
|
|
18
|
+
this.onMouseEvent(event, this.isSource, true);
|
|
19
|
+
}
|
|
20
|
+
mouseLeave(event) {
|
|
21
|
+
this.onMouseEvent(event, this.isSource, false);
|
|
22
|
+
}
|
|
23
|
+
gramCheckMenu(tree, menuTrigger) {
|
|
24
|
+
if (tree.grammarMeta && this.gramCheck) {
|
|
25
|
+
menuTrigger.openMenu();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
replace(tree, replacement) {
|
|
29
|
+
this.onReplace.next({
|
|
30
|
+
endIx: tree.grammarMeta.endIx,
|
|
31
|
+
paragraphIx: tree.paragraphIx ?? tree.root?.paragraphIx,
|
|
32
|
+
replacement: replacement,
|
|
33
|
+
startIx: tree.grammarMeta.startIx
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
parentClick(tree) {
|
|
37
|
+
if (this.selectSentence && tree.type === HighlightTreeType.SENTENCE) {
|
|
38
|
+
this.highlightService.changeSelectedTargetSentence({ paragraphIx: tree.paragraphIx ?? tree.root?.paragraphIx, sentenceIx: Number(tree.elementId) });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
isSelectedSentence(tree) {
|
|
42
|
+
return this.selectSentence && tree.type === HighlightTreeType.SENTENCE
|
|
43
|
+
&& this.highlightService.selectedTargetSentence?.paragraphIx === (tree.paragraphIx ?? tree.root?.paragraphIx)
|
|
44
|
+
&& this.highlightService.selectedTargetSentence.sentenceIx.toString() === tree.elementId;
|
|
45
|
+
}
|
|
46
|
+
onMouseEvent(event, isSource, isMouseEnter) {
|
|
47
|
+
const element = event.target;
|
|
48
|
+
let elementWithSiblings = [element];
|
|
49
|
+
if (this.highlight) {
|
|
50
|
+
let siblingParentClass;
|
|
51
|
+
if (isSource) {
|
|
52
|
+
siblingParentClass = HighlightParams.targetHighlightClass;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
siblingParentClass = HighlightParams.sourceHighlightClass;
|
|
56
|
+
}
|
|
57
|
+
element.classList.forEach((className) => {
|
|
58
|
+
if (className.includes(HighlightParams.siblingClass)) {
|
|
59
|
+
const querySelector = `.${siblingParentClass} .${className.replace(HighlightParams.siblingClass, HighlightParams.wordClass)}`;
|
|
60
|
+
elementWithSiblings = elementWithSiblings.concat(Array.from(document.querySelectorAll(querySelector)));
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
elementWithSiblings.forEach((element) => {
|
|
65
|
+
// necessary to highlight also sibling sentence, not only sibling.
|
|
66
|
+
let parent = this.findWordParentSentence(element);
|
|
67
|
+
if (isMouseEnter) {
|
|
68
|
+
element.classList.add(HighlightParams.hoveredClassName);
|
|
69
|
+
parent?.classList.add(HighlightParams.hoveredClassName);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
element.classList.remove(HighlightParams.hoveredClassName);
|
|
73
|
+
parent?.classList.remove(HighlightParams.hoveredClassName);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
findWordParentSentence(element) {
|
|
78
|
+
const maxDistanceToParent = 2;
|
|
79
|
+
let parent = element.parentElement;
|
|
80
|
+
for (let index = 0; index < maxDistanceToParent; index++) {
|
|
81
|
+
if (parent.classList.contains(HighlightParams.sentenceClass)) {
|
|
82
|
+
return parent;
|
|
83
|
+
}
|
|
84
|
+
parent = parent.parentElement;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
HighlightTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HighlightTreeComponent, deps: [{ token: i1.TldHighlightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
+
HighlightTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HighlightTreeComponent, selector: "tld-highlight-tree", inputs: { tree: "tree", isSource: "isSource", correctionsEnabled: "correctionsEnabled", highlight: "highlight", gramCheck: "gramCheck", selectSentence: "selectSentence" }, outputs: { onReplace: "onReplace" }, ngImport: i0, template: "<ng-template #highlightTree let-tree=\"tree\">\r\n <ng-container *ngIf=\"!tree.children\">\r\n <ng-container *ngIf=\"tree.text\">\r\n <ng-container *ngIf=\"tree.grammarMeta && gramCheck\">\r\n <mat-menu #menu=\"matMenu\" class=\"grammar-check-menu\">\r\n <div class=\"title\">\r\n {{'GRAMMAR_CHECK_MENU.TITLE' | translate}}\r\n </div>\r\n <div *ngFor=\"let replacement of tree.grammarMeta.replacements\">\r\n <button mat-button color=\"accent\" (click)=\"replace(tree, replacement)\">\r\n {{replacement}}\r\n </button>\r\n </div>\r\n </mat-menu>\r\n <span #menuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"{{tree.class}}\"\r\n [innerHTML]=\"tree.text\" (mouseenter)=\"mouseEnter($event)\" (click)=\"gramCheckMenu(tree, menuTrigger)\"\r\n (mouseleave)=\"mouseLeave($event)\"></span>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"!(tree.grammarMeta && gramCheck)\">\r\n <span class=\"{{tree.class}}\" [innerHTML]=\"tree.text\" (mouseenter)=\"mouseEnter($event)\"\r\n (mouseleave)=\"mouseLeave($event)\"></span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!tree.text\">\r\n <br>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"tree.children\">\r\n <span [ngClass]=\"{'selected-sentence': isSelectedSentence(tree)}\" class=\"highlight-tree-child-wrapper {{tree.class}}\"\r\n (mouseenter)=\"mouseEnter($event)\" (mouseleave)=\"mouseLeave($event)\" (click)=\"parentClick(tree)\">\r\n <ng-template ngFor let-child [ngForOf]=\"tree.children\">\r\n <ng-template [ngTemplateOutlet]=\"highlightTree\" [ngTemplateOutletContext]=\"{ tree: child }\">\r\n </ng-template>\r\n </ng-template>\r\n </span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n\r\n\r\n<div *ngIf=\"tree\" class=\"tld-highlight-tree\">\r\n <ng-template [ngTemplateOutlet]=\"highlightTree\" [ngTemplateOutletContext]=\"{ tree: tree }\"></ng-template>\r\n</div>", styles: ["span{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { 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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HighlightTreeComponent, decorators: [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{ selector: 'tld-highlight-tree', template: "<ng-template #highlightTree let-tree=\"tree\">\r\n <ng-container *ngIf=\"!tree.children\">\r\n <ng-container *ngIf=\"tree.text\">\r\n <ng-container *ngIf=\"tree.grammarMeta && gramCheck\">\r\n <mat-menu #menu=\"matMenu\" class=\"grammar-check-menu\">\r\n <div class=\"title\">\r\n {{'GRAMMAR_CHECK_MENU.TITLE' | translate}}\r\n </div>\r\n <div *ngFor=\"let replacement of tree.grammarMeta.replacements\">\r\n <button mat-button color=\"accent\" (click)=\"replace(tree, replacement)\">\r\n {{replacement}}\r\n </button>\r\n </div>\r\n </mat-menu>\r\n <span #menuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"{{tree.class}}\"\r\n [innerHTML]=\"tree.text\" (mouseenter)=\"mouseEnter($event)\" (click)=\"gramCheckMenu(tree, menuTrigger)\"\r\n (mouseleave)=\"mouseLeave($event)\"></span>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"!(tree.grammarMeta && gramCheck)\">\r\n <span class=\"{{tree.class}}\" [innerHTML]=\"tree.text\" (mouseenter)=\"mouseEnter($event)\"\r\n (mouseleave)=\"mouseLeave($event)\"></span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!tree.text\">\r\n <br>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"tree.children\">\r\n <span [ngClass]=\"{'selected-sentence': isSelectedSentence(tree)}\" class=\"highlight-tree-child-wrapper {{tree.class}}\"\r\n (mouseenter)=\"mouseEnter($event)\" (mouseleave)=\"mouseLeave($event)\" (click)=\"parentClick(tree)\">\r\n <ng-template ngFor let-child [ngForOf]=\"tree.children\">\r\n <ng-template [ngTemplateOutlet]=\"highlightTree\" [ngTemplateOutletContext]=\"{ tree: child }\">\r\n </ng-template>\r\n </ng-template>\r\n </span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n\r\n\r\n<div *ngIf=\"tree\" class=\"tld-highlight-tree\">\r\n <ng-template [ngTemplateOutlet]=\"highlightTree\" [ngTemplateOutletContext]=\"{ tree: tree }\"></ng-template>\r\n</div>", styles: ["span{white-space:pre-wrap}\n"] }]
|
|
94
|
+
}], ctorParameters: function () { return [{ type: i1.TldHighlightService }]; }, propDecorators: { tree: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], isSource: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], correctionsEnabled: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], highlight: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], gramCheck: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], selectSentence: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], onReplace: [{
|
|
107
|
+
type: Output
|
|
108
|
+
}] } });
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRleHQvY29tcG9uZW50cy9oaWdobGlnaHQtdHJlZS9oaWdobGlnaHQtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9jb21wb25lbnRzL2hpZ2hsaWdodC10cmVlL2hpZ2hsaWdodC10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQVEzRSxNQUFNLE9BQU8sc0JBQXNCO0lBVWpDLFlBQTZCLGdCQUFxQztRQUFyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBTnpELHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUlsQyxjQUFTLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7SUFFWCxDQUFDO0lBRXZFLFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQW9CLEVBQUUsV0FBNEI7UUFDOUQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdEMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFvQixFQUFFLFdBQW1CO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXO1lBQ3ZELFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU87U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFvQjtRQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JKO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQW9CO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLFFBQVE7ZUFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLFdBQVcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUM7ZUFDMUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzdGLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBaUIsRUFBRSxRQUFpQixFQUFFLFlBQXFCO1FBQzlFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFpQixDQUFDO1FBQ3hDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxrQkFBMEIsQ0FBQztZQUMvQixJQUFJLFFBQVEsRUFBRTtnQkFDWixrQkFBa0IsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUM7YUFDM0Q7aUJBQ0k7Z0JBQ0gsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDO2FBQzNEO1lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7Z0JBQzlDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEVBQUU7b0JBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksa0JBQWtCLEtBQUssU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUM5SCxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN4RztZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxrRUFBa0U7WUFDbEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWxELElBQUksWUFBWSxFQUFFO2dCQUNoQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDeEQsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDekQ7aUJBQ0k7Z0JBQ0gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzNELE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQzVEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBWTtRQUN6QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ25DLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN4RCxJQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBQztnQkFDMUQsT0FBTyxNQUFNLENBQUM7YUFDZjtZQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzttSEE1RlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsMlFDYm5DLHN5RUEyQ007MkZEOUJPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7MEdBTXJCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgVGxkSGlnaGxpZ2h0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJR3JhbW1hckNoZWNrUmVwbGFjZW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JhbW1hci1jaGVjay1yZXBsYWNlbWVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEhpZ2hsaWdodFBhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9oaWdobGlnaHQtcGFyYW1zLm1vZGVsJztcclxuaW1wb3J0IHsgSGlnaGxpZ2h0VHJlZVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlnaGxpZ2h0LXRyZWUtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IElIaWdobGlnaHRUcmVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpZ2hsaWdodC10cmVlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLWhpZ2hsaWdodC10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGlnaGxpZ2h0LXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpZ2hsaWdodC10cmVlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFRyZWVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSB0cmVlOiBJSGlnaGxpZ2h0VHJlZTtcclxuICBASW5wdXQoKSBpc1NvdXJjZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjb3JyZWN0aW9uc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBncmFtQ2hlY2s6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VsZWN0U2VudGVuY2U6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIG9uUmVwbGFjZTogRXZlbnRFbWl0dGVyPElHcmFtbWFyQ2hlY2tSZXBsYWNlbWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogVGxkSGlnaGxpZ2h0U2VydmljZSkgeyB9XHJcblxyXG4gIG1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMub25Nb3VzZUV2ZW50KGV2ZW50LCB0aGlzLmlzU291cmNlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIG1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMub25Nb3VzZUV2ZW50KGV2ZW50LCB0aGlzLmlzU291cmNlLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBncmFtQ2hlY2tNZW51KHRyZWU6IElIaWdobGlnaHRUcmVlLCBtZW51VHJpZ2dlcj86IE1hdE1lbnVUcmlnZ2VyKSB7XHJcbiAgICBpZiAodHJlZS5ncmFtbWFyTWV0YSAmJiB0aGlzLmdyYW1DaGVjaykge1xyXG4gICAgICBtZW51VHJpZ2dlci5vcGVuTWVudSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVwbGFjZSh0cmVlOiBJSGlnaGxpZ2h0VHJlZSwgcmVwbGFjZW1lbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vblJlcGxhY2UubmV4dCh7XHJcbiAgICAgIGVuZEl4OiB0cmVlLmdyYW1tYXJNZXRhLmVuZEl4LFxyXG4gICAgICBwYXJhZ3JhcGhJeDogdHJlZS5wYXJhZ3JhcGhJeCA/PyB0cmVlLnJvb3Q/LnBhcmFncmFwaEl4LFxyXG4gICAgICByZXBsYWNlbWVudDogcmVwbGFjZW1lbnQsXHJcbiAgICAgIHN0YXJ0SXg6IHRyZWUuZ3JhbW1hck1ldGEuc3RhcnRJeFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwYXJlbnRDbGljayh0cmVlOiBJSGlnaGxpZ2h0VHJlZSkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0U2VudGVuY2UgJiYgdHJlZS50eXBlID09PSBIaWdobGlnaHRUcmVlVHlwZS5TRU5URU5DRSkge1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuY2hhbmdlU2VsZWN0ZWRUYXJnZXRTZW50ZW5jZSh7IHBhcmFncmFwaEl4OiB0cmVlLnBhcmFncmFwaEl4ID8/IHRyZWUucm9vdD8ucGFyYWdyYXBoSXgsIHNlbnRlbmNlSXg6IE51bWJlcih0cmVlLmVsZW1lbnRJZCkgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkU2VudGVuY2UodHJlZTogSUhpZ2hsaWdodFRyZWUpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdFNlbnRlbmNlICYmIHRyZWUudHlwZSA9PT0gSGlnaGxpZ2h0VHJlZVR5cGUuU0VOVEVOQ0VcclxuICAgICAgJiYgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnNlbGVjdGVkVGFyZ2V0U2VudGVuY2U/LnBhcmFncmFwaEl4ID09PSAodHJlZS5wYXJhZ3JhcGhJeCA/PyB0cmVlLnJvb3Q/LnBhcmFncmFwaEl4KVxyXG4gICAgICAmJiB0aGlzLmhpZ2hsaWdodFNlcnZpY2Uuc2VsZWN0ZWRUYXJnZXRTZW50ZW5jZS5zZW50ZW5jZUl4LnRvU3RyaW5nKCkgPT09IHRyZWUuZWxlbWVudElkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk1vdXNlRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIGlzU291cmNlOiBib29sZWFuLCBpc01vdXNlRW50ZXI6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcclxuICAgIGxldCBlbGVtZW50V2l0aFNpYmxpbmdzID0gW2VsZW1lbnRdO1xyXG5cclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodCkge1xyXG4gICAgICBsZXQgc2libGluZ1BhcmVudENsYXNzOiBzdHJpbmc7XHJcbiAgICAgIGlmIChpc1NvdXJjZSkge1xyXG4gICAgICAgIHNpYmxpbmdQYXJlbnRDbGFzcyA9IEhpZ2hsaWdodFBhcmFtcy50YXJnZXRIaWdobGlnaHRDbGFzcztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBzaWJsaW5nUGFyZW50Q2xhc3MgPSBIaWdobGlnaHRQYXJhbXMuc291cmNlSGlnaGxpZ2h0Q2xhc3M7XHJcbiAgICAgIH1cclxuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuZm9yRWFjaCgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoY2xhc3NOYW1lLmluY2x1ZGVzKEhpZ2hsaWdodFBhcmFtcy5zaWJsaW5nQ2xhc3MpKSB7XHJcbiAgICAgICAgICBjb25zdCBxdWVyeVNlbGVjdG9yID0gYC4ke3NpYmxpbmdQYXJlbnRDbGFzc30gLiR7Y2xhc3NOYW1lLnJlcGxhY2UoSGlnaGxpZ2h0UGFyYW1zLnNpYmxpbmdDbGFzcywgSGlnaGxpZ2h0UGFyYW1zLndvcmRDbGFzcyl9YDtcclxuICAgICAgICAgIGVsZW1lbnRXaXRoU2libGluZ3MgPSBlbGVtZW50V2l0aFNpYmxpbmdzLmNvbmNhdChBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3RvcikpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGVsZW1lbnRXaXRoU2libGluZ3MuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAvLyBuZWNlc3NhcnkgdG8gaGlnaGxpZ2h0IGFsc28gc2libGluZyBzZW50ZW5jZSwgbm90IG9ubHkgc2libGluZy5cclxuICAgICAgbGV0IHBhcmVudCA9IHRoaXMuZmluZFdvcmRQYXJlbnRTZW50ZW5jZShlbGVtZW50KTtcclxuXHJcbiAgICAgIGlmIChpc01vdXNlRW50ZXIpIHtcclxuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoSGlnaGxpZ2h0UGFyYW1zLmhvdmVyZWRDbGFzc05hbWUpO1xyXG4gICAgICAgIHBhcmVudD8uY2xhc3NMaXN0LmFkZChIaWdobGlnaHRQYXJhbXMuaG92ZXJlZENsYXNzTmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEhpZ2hsaWdodFBhcmFtcy5ob3ZlcmVkQ2xhc3NOYW1lKTtcclxuICAgICAgICBwYXJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoSGlnaGxpZ2h0UGFyYW1zLmhvdmVyZWRDbGFzc05hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFdvcmRQYXJlbnRTZW50ZW5jZShlbGVtZW50OiBhbnkpe1xyXG4gICAgY29uc3QgbWF4RGlzdGFuY2VUb1BhcmVudCA9IDI7XHJcbiAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1heERpc3RhbmNlVG9QYXJlbnQ7IGluZGV4KyspIHtcclxuICAgICAgaWYocGFyZW50LmNsYXNzTGlzdC5jb250YWlucyhIaWdobGlnaHRQYXJhbXMuc2VudGVuY2VDbGFzcykpe1xyXG4gICAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNoaWdobGlnaHRUcmVlIGxldC10cmVlPVwidHJlZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cmVlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyZWUudGV4dFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJlZS5ncmFtbWFyTWV0YSAmJiBncmFtQ2hlY2tcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImdyYW1tYXItY2hlY2stbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydHUkFNTUFSX0NIRUNLX01FTlUuVElUTEUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByZXBsYWNlbWVudCBvZiB0cmVlLmdyYW1tYXJNZXRhLnJlcGxhY2VtZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwicmVwbGFjZSh0cmVlLCByZXBsYWNlbWVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVwbGFjZW1lbnR9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJ7e3RyZWUuY2xhc3N9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0cmVlLnRleHRcIiAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKCRldmVudClcIiAoY2xpY2spPVwiZ3JhbUNoZWNrTWVudSh0cmVlLCBtZW51VHJpZ2dlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoJGV2ZW50KVwiPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISh0cmVlLmdyYW1tYXJNZXRhICYmIGdyYW1DaGVjaylcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3t0cmVlLmNsYXNzfX1cIiBbaW5uZXJIVE1MXT1cInRyZWUudGV4dFwiIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VMZWF2ZSgkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWUudGV4dFwiPlxyXG4gICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieydzZWxlY3RlZC1zZW50ZW5jZSc6IGlzU2VsZWN0ZWRTZW50ZW5jZSh0cmVlKX1cIiBjbGFzcz1cImhpZ2hsaWdodC10cmVlLWNoaWxkLXdyYXBwZXIge3t0cmVlLmNsYXNzfX1cIlxyXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKCRldmVudClcIiAobW91c2VsZWF2ZSk9XCJtb3VzZUxlYXZlKCRldmVudClcIiAoY2xpY2spPVwicGFyZW50Q2xpY2sodHJlZSlcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaGlsZCBbbmdGb3JPZl09XCJ0cmVlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGlnaGxpZ2h0VHJlZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHRyZWU6IGNoaWxkIH1cIj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0cmVlXCIgY2xhc3M9XCJ0bGQtaGlnaGxpZ2h0LXRyZWVcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaWdobGlnaHRUcmVlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdHJlZTogdHJlZSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
|
package/esm2020/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.mjs
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../tld-tooltip/services/tld-system.service";
|
|
4
|
+
import * as i2 from "../../../tld-common/services/tld-translate-config.service";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/material/progress-bar";
|
|
7
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
8
|
+
import * as i6 from "@tilde-nlp/ngx-common";
|
|
9
|
+
import * as i7 from "../../../../components/shared/vendor-disclaimer/vendor-disclaimer.component";
|
|
10
|
+
import * as i8 from "@ngx-translate/core";
|
|
11
|
+
export class ProgressIndicatorComponent {
|
|
12
|
+
constructor(systemService, configService) {
|
|
13
|
+
this.systemService = systemService;
|
|
14
|
+
this.configService = configService;
|
|
15
|
+
this.closeButtonAriaLabel = "TEXT_TRANSLATION_PROGRESS_INDICATOR.CLOSE_BUTTON_ARIA_LABEL";
|
|
16
|
+
this.closeButtonTooltip = "TEXT_TRANSLATION_PROGRESS_INDICATOR.CLOSE_BUTTON_TOOLTIP";
|
|
17
|
+
this.onClose = new EventEmitter();
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.vendor = this.systemService.activeVendor;
|
|
21
|
+
this.showTitle = this.configService.textConfig.progressIndicatorTitleVisibleForVendors?.includes(this.vendor);
|
|
22
|
+
}
|
|
23
|
+
close() {
|
|
24
|
+
this.onClose.next(null);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ProgressIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProgressIndicatorComponent, deps: [{ token: i1.TldSystemService }, { token: i2.TldTranslateConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
ProgressIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ProgressIndicatorComponent, selector: "progress-indicator", outputs: { onClose: "onClose" }, ngImport: i0, template: "<div fxLayout=\"row\">\r\n <div fxFlex>\r\n <vendor-disclaimer *ngIf=\"showTitle\"></vendor-disclaimer>\r\n <mat-progress-bar mode=\"indeterminate\" color=\"accent\"></mat-progress-bar>\r\n <div class=\"text-s status\">{{\"TEXT_TRANSLATION_PROGRESS_INDICATOR.TRANSLATING\" | translate}}</div>\r\n </div>\r\n <div fxLayoutAlign=\"center center\">\r\n <tld-close-button (tldClick)=\"close()\" [tooltip]=\"closeButtonTooltip\" [ariaCode]=\"closeButtonAriaLabel\"></tld-close-button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}:host .status{color:var(--base-40)}:host .material-icons{vertical-align:middle;margin-left:.5rem;color:var(--base-40)}:host mat-progress-bar{margin-top:.375rem;margin-bottom:.375rem}:host mat-progress-bar ::ng-deep .mat-progress-bar-primary{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i5.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: i5.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: i5.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: "component", type: i6.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i7.VendorDisclaimerComponent, selector: "vendor-disclaimer" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'progress-indicator', template: "<div fxLayout=\"row\">\r\n <div fxFlex>\r\n <vendor-disclaimer *ngIf=\"showTitle\"></vendor-disclaimer>\r\n <mat-progress-bar mode=\"indeterminate\" color=\"accent\"></mat-progress-bar>\r\n <div class=\"text-s status\">{{\"TEXT_TRANSLATION_PROGRESS_INDICATOR.TRANSLATING\" | translate}}</div>\r\n </div>\r\n <div fxLayoutAlign=\"center center\">\r\n <tld-close-button (tldClick)=\"close()\" [tooltip]=\"closeButtonTooltip\" [ariaCode]=\"closeButtonAriaLabel\"></tld-close-button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}:host .status{color:var(--base-40)}:host .material-icons{vertical-align:middle;margin-left:.5rem;color:var(--base-40)}:host mat-progress-bar{margin-top:.375rem;margin-bottom:.375rem}:host mat-progress-bar ::ng-deep .mat-progress-bar-primary{display:none}\n"] }]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i1.TldSystemService }, { type: i2.TldTranslateConfigService }]; }, propDecorators: { onClose: [{
|
|
33
|
+
type: Output
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXh0L2NvbXBvbmVudHMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9jb21wb25lbnRzL3Byb2dyZXNzLWluZGljYXRvci9wcm9ncmVzcy1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBVXhFLE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFBb0IsYUFBK0IsRUFBVSxhQUF3QztRQUFqRixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFWNUYseUJBQW9CLEdBQUcsNkRBQTZELENBQUM7UUFDckYsdUJBQWtCLEdBQUcsMERBQTBELENBQUM7UUFFL0UsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBTzhDLENBQUM7SUFFMUcsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyx1Q0FBdUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7dUhBckJVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDJGQ1Z2QywwZ0JBVUE7MkZEQWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLG9CQUFvQjsrSUFTcEIsT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmxpbmVNZXNzYWdlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFN5c3RlbVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtdG9vbHRpcC9zZXJ2aWNlcy90bGQtc3lzdGVtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwcm9ncmVzcy1pbmRpY2F0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWluZGljYXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0luZGljYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHJlYWRvbmx5IGNsb3NlQnV0dG9uQXJpYUxhYmVsID0gXCJURVhUX1RSQU5TTEFUSU9OX1BST0dSRVNTX0lORElDQVRPUi5DTE9TRV9CVVRUT05fQVJJQV9MQUJFTFwiO1xyXG4gIHJlYWRvbmx5IGNsb3NlQnV0dG9uVG9vbHRpcCA9IFwiVEVYVF9UUkFOU0xBVElPTl9QUk9HUkVTU19JTkRJQ0FUT1IuQ0xPU0VfQlVUVE9OX1RPT0xUSVBcIjtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgdmVuZG9yOiBzdHJpbmc7XHJcbiAgc2hvd1RpdGxlOiBib29sZWFuO1xyXG5cclxuICB0aXRsZU1lc3NhZ2U6IElubGluZU1lc3NhZ2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3lzdGVtU2VydmljZTogVGxkU3lzdGVtU2VydmljZSwgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZlbmRvciA9IHRoaXMuc3lzdGVtU2VydmljZS5hY3RpdmVWZW5kb3I7XHJcbiAgICB0aGlzLnNob3dUaXRsZSA9IHRoaXMuY29uZmlnU2VydmljZS50ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycz8uaW5jbHVkZXModGhpcy52ZW5kb3IpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UubmV4dChudWxsKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICA8ZGl2IGZ4RmxleD5cclxuICAgIDx2ZW5kb3ItZGlzY2xhaW1lciAqbmdJZj1cInNob3dUaXRsZVwiPjwvdmVuZG9yLWRpc2NsYWltZXI+XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtcyBzdGF0dXNcIj57e1wiVEVYVF9UUkFOU0xBVElPTl9QUk9HUkVTU19JTkRJQ0FUT1IuVFJBTlNMQVRJTkdcIiB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgPHRsZC1jbG9zZS1idXR0b24gKHRsZENsaWNrKT1cImNsb3NlKClcIiBbdG9vbHRpcF09XCJjbG9zZUJ1dHRvblRvb2x0aXBcIiBbYXJpYUNvZGVdPVwiY2xvc2VCdXR0b25BcmlhTGFiZWxcIj48L3RsZC1jbG9zZS1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { Common } from '../../../tld-common/models';
|
|
3
|
+
import { HighlightParams } from '../../models/highlight-params.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../tld-common/services";
|
|
6
|
+
import * as i2 from "../../services/tld-translate-text.service";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/material/input";
|
|
9
|
+
import * as i5 from "@angular/cdk/scrolling";
|
|
10
|
+
import * as i6 from "@angular/flex-layout/flex";
|
|
11
|
+
import * as i7 from "@angular/forms";
|
|
12
|
+
import * as i8 from "../highlight-tree/highlight-tree.component";
|
|
13
|
+
import * as i9 from "@ngx-translate/core";
|
|
14
|
+
export class TextareaWithBackgroundComponent {
|
|
15
|
+
constructor(alerts, textService) {
|
|
16
|
+
this.alerts = alerts;
|
|
17
|
+
this.textService = textService;
|
|
18
|
+
//@Output() sourceChangedManually: EventEmitter<ISourceChangeEvent> = new EventEmitter();
|
|
19
|
+
//@Output() sourceTextChanged: EventEmitter<string> = new EventEmitter();
|
|
20
|
+
this.hoveredBackgroundElements = [];
|
|
21
|
+
this.clearButtonAriaCode = "CLEAR_SOURCE";
|
|
22
|
+
this.wrapperClass = HighlightParams.sourceHighlightClass;
|
|
23
|
+
this.dispatchEvent = (eventName, element) => {
|
|
24
|
+
if (!element) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let ev = new MouseEvent(eventName, {
|
|
28
|
+
view: window,
|
|
29
|
+
bubbles: true,
|
|
30
|
+
cancelable: true
|
|
31
|
+
});
|
|
32
|
+
element.dispatchEvent(ev);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
get suggestedText() { return this._suggestedText; }
|
|
36
|
+
get sourceText() { return this._sourceText; }
|
|
37
|
+
;
|
|
38
|
+
set sourceText(val) {
|
|
39
|
+
this._sourceText = val;
|
|
40
|
+
// this is necessary so that highlighting is always in his real place also when tree wrapper is not finished rendering.
|
|
41
|
+
if (this.treeWrapper) {
|
|
42
|
+
this.treeWrapper.nativeElement.style.height = this.sourceInput.nativeElement.scrollHeight;
|
|
43
|
+
}
|
|
44
|
+
this.textService.changeSource({ phrase: val });
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
this._sourceText = this.textService.sourceText;
|
|
48
|
+
this.textService.sourceChange.subscribe((event) => {
|
|
49
|
+
//this.changeSourceManually(event);
|
|
50
|
+
this._sourceText = event.phrase;
|
|
51
|
+
if (!this.sourceText || this.sourceText.length === 0) {
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
this.sourceInput.nativeElement.focus();
|
|
54
|
+
}, 0);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
ngAfterViewInit() {
|
|
59
|
+
if (this.autoFocuss) {
|
|
60
|
+
this.focus();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
onTextAreaMouseMove(event) {
|
|
64
|
+
const x = event.clientX;
|
|
65
|
+
const y = event.clientY;
|
|
66
|
+
const hoveredElements = this.findBackgroundElements(x, y);
|
|
67
|
+
this.hoveredBackgroundElements.forEach((hoveredElement) => {
|
|
68
|
+
if (!hoveredElements.includes(hoveredElement)) {
|
|
69
|
+
this.dispatchEvent("mouseleave", hoveredElement);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
hoveredElements.forEach((hoveredElement) => {
|
|
73
|
+
this.dispatchEvent("mouseenter", hoveredElement);
|
|
74
|
+
});
|
|
75
|
+
this.hoveredBackgroundElements = hoveredElements;
|
|
76
|
+
}
|
|
77
|
+
onPaste(event) {
|
|
78
|
+
if (this.maxCharLength > 0) {
|
|
79
|
+
const totalCharLength = (this.sourceText || "").length + event.clipboardData.getData("text").length;
|
|
80
|
+
if (totalCharLength > this.maxCharLength) {
|
|
81
|
+
this.alerts.warning("ERRORS.MAX_CHAR_LENGTH", { maxCharLength: this.maxCharLength, totalSymbols: totalCharLength });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
textareaClick(event) {
|
|
86
|
+
const x = event.clientX;
|
|
87
|
+
const y = event.clientY;
|
|
88
|
+
const hoveredElements = this.findBackgroundElements(x, y);
|
|
89
|
+
hoveredElements.forEach((element) => {
|
|
90
|
+
this.dispatchEvent("click", element);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
replace(replacement) {
|
|
94
|
+
const paragraphs = Common.splitInParagraphs(this.sourceText);
|
|
95
|
+
const paragraph = paragraphs[replacement.paragraphIx];
|
|
96
|
+
paragraphs[replacement.paragraphIx] = `${paragraph.substring(0, replacement.startIx)}${replacement.replacement}${paragraph.substring(replacement.endIx)}`;
|
|
97
|
+
this.changeSourceManually({ phrase: Common.joinParagraphs(paragraphs) });
|
|
98
|
+
}
|
|
99
|
+
changeSourceManually(event) {
|
|
100
|
+
this._sourceText = event.phrase;
|
|
101
|
+
//to clear target.
|
|
102
|
+
if (!this.sourceText || this.sourceText === "") {
|
|
103
|
+
event.disableAutomaticTranslation = false;
|
|
104
|
+
}
|
|
105
|
+
this.textService.changeSource(event);
|
|
106
|
+
}
|
|
107
|
+
findBackgroundElements(x, y) {
|
|
108
|
+
const elements = document.querySelectorAll(`.${this.wrapperClass} .${HighlightParams.sentenceClass}, .${this.wrapperClass} .${HighlightParams.wordClass}, .${this.wrapperClass} .${HighlightParams.invalidPhraseClass}`);
|
|
109
|
+
return this.findElementsAtPosition(Array.from(elements), x, y);
|
|
110
|
+
}
|
|
111
|
+
focus() {
|
|
112
|
+
this.sourceInput?.nativeElement?.focus();
|
|
113
|
+
}
|
|
114
|
+
findElementsAtPosition(elements, x, y) {
|
|
115
|
+
const foundedElements = [];
|
|
116
|
+
elements.forEach((element) => {
|
|
117
|
+
const boundRectangles = element.getClientRects();
|
|
118
|
+
for (let rectIndex = 0; rectIndex < boundRectangles.length; rectIndex++) {
|
|
119
|
+
let boundRectangle = boundRectangles[rectIndex];
|
|
120
|
+
if (x >= boundRectangle.left && y >= boundRectangle.top &&
|
|
121
|
+
x <= boundRectangle.right && y <= boundRectangle.bottom) {
|
|
122
|
+
foundedElements.push(element);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return foundedElements;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
TextareaWithBackgroundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextareaWithBackgroundComponent, deps: [{ token: i1.TldAlertService }, { token: i2.TldTranslateTextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
+
TextareaWithBackgroundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextareaWithBackgroundComponent, selector: "tld-textarea-with-background", inputs: { maxCharLength: "maxCharLength", autoFocuss: "autoFocuss", highlightTree: "highlightTree", highlight: "highlight", gramCheck: "gramCheck", textareaDisabled: "textareaDisabled" }, viewQueries: [{ propertyName: "sourceInput", first: true, predicate: ["sourceInput"], descendants: true }, { propertyName: "treeWrapper", first: true, predicate: ["treeWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"textarea-with-background\">\r\n <textarea [disabled]=\"textareaDisabled\" cdkScrollable (paste)=\"onPaste($event)\" matInput [(ngModel)]=\"sourceText\" #sourceInput fxFlex\r\n spellcheck=\"false\" (mousemove)=\"onTextAreaMouseMove($event)\" [attr.maxLength]=\"maxCharLength? maxCharLength: null\"\r\n [attr.aria-label]=\"'TLD_TRANSLATE.SOURCE_TOOLTIP' | translate\" (click)=\"textareaClick($event)\"></textarea>\r\n <div class=\"{{wrapperClass}}\" *ngIf=\"gramCheck || highlight\" cdkScrollable #treeWrapper>\r\n <div class=\"textarea-highlight-backround-inner\" cdkScrollable>\r\n <div *ngFor=\"let paragraph of highlightTree\">\r\n <tld-highlight-tree [isSource]=\"true\" [tree]=\"paragraph\" [highlight]=\"highlight\" [gramCheck]=\"gramCheck\"\r\n (onReplace)=\"replace($event)\"></tld-highlight-tree>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".textarea-with-background{position:relative}.textarea-with-background .textarea-highlight-background{position:absolute;color:transparent}.textarea-with-background textarea{resize:none!important;z-index:1;caret-color:#000!important}.textarea-with-background textarea,.textarea-with-background .textarea-highlight-backround-inner{padding:1em!important}.textarea-with-background .textarea-highlight-backround-inner{max-width:calc(100% - 2em);width:calc(100% - 2em);min-width:calc(100% - 2em);min-height:calc(100% - 2em);max-height:calc(100% - 2em);height:calc(100% - 2em);overflow-y:auto}.textarea-with-background,.textarea-highlight-background{width:100%;max-width:100%;min-width:100%;min-height:100%;max-height:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i6.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: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.HighlightTreeComponent, selector: "tld-highlight-tree", inputs: ["tree", "isSource", "correctionsEnabled", "highlight", "gramCheck", "selectSentence"], outputs: ["onReplace"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextareaWithBackgroundComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'tld-textarea-with-background', template: "<div class=\"textarea-with-background\">\r\n <textarea [disabled]=\"textareaDisabled\" cdkScrollable (paste)=\"onPaste($event)\" matInput [(ngModel)]=\"sourceText\" #sourceInput fxFlex\r\n spellcheck=\"false\" (mousemove)=\"onTextAreaMouseMove($event)\" [attr.maxLength]=\"maxCharLength? maxCharLength: null\"\r\n [attr.aria-label]=\"'TLD_TRANSLATE.SOURCE_TOOLTIP' | translate\" (click)=\"textareaClick($event)\"></textarea>\r\n <div class=\"{{wrapperClass}}\" *ngIf=\"gramCheck || highlight\" cdkScrollable #treeWrapper>\r\n <div class=\"textarea-highlight-backround-inner\" cdkScrollable>\r\n <div *ngFor=\"let paragraph of highlightTree\">\r\n <tld-highlight-tree [isSource]=\"true\" [tree]=\"paragraph\" [highlight]=\"highlight\" [gramCheck]=\"gramCheck\"\r\n (onReplace)=\"replace($event)\"></tld-highlight-tree>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".textarea-with-background{position:relative}.textarea-with-background .textarea-highlight-background{position:absolute;color:transparent}.textarea-with-background textarea{resize:none!important;z-index:1;caret-color:#000!important}.textarea-with-background textarea,.textarea-with-background .textarea-highlight-backround-inner{padding:1em!important}.textarea-with-background .textarea-highlight-backround-inner{max-width:calc(100% - 2em);width:calc(100% - 2em);min-width:calc(100% - 2em);min-height:calc(100% - 2em);max-height:calc(100% - 2em);height:calc(100% - 2em);overflow-y:auto}.textarea-with-background,.textarea-highlight-background{width:100%;max-width:100%;min-width:100%;min-height:100%;max-height:100%;height:100%}\n"] }]
|
|
134
|
+
}], ctorParameters: function () { return [{ type: i1.TldAlertService }, { type: i2.TldTranslateTextService }]; }, propDecorators: { sourceInput: [{
|
|
135
|
+
type: ViewChild,
|
|
136
|
+
args: ["sourceInput"]
|
|
137
|
+
}], treeWrapper: [{
|
|
138
|
+
type: ViewChild,
|
|
139
|
+
args: ["treeWrapper"]
|
|
140
|
+
}], maxCharLength: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], autoFocuss: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], highlightTree: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], highlight: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], gramCheck: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], textareaDisabled: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtd2l0aC1iYWNrZ3JvdW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXh0L2NvbXBvbmVudHMvdGV4dGFyZWEtd2l0aC1iYWNrZ3JvdW5kL3RleHRhcmVhLXdpdGgtYmFja2dyb3VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9jb21wb25lbnRzL3RleHRhcmVhLXdpdGgtYmFja2dyb3VuZC90ZXh0YXJlYS13aXRoLWJhY2tncm91bmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sK0JBQStCO0lBaUMxQyxZQUE2QixNQUF1QixFQUNqQyxXQUFvQztRQUQxQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUF2QnZELHlGQUF5RjtRQUN6Rix5RUFBeUU7UUFFekUsOEJBQXlCLEdBQWMsRUFBRSxDQUFDO1FBZ0JqQyx3QkFBbUIsR0FBRyxjQUFjLENBQUM7UUFDckMsaUJBQVksR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUM7UUF1R3JELGtCQUFhLEdBQUcsQ0FBQyxTQUFpQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE9BQU87YUFDUjtZQUNELElBQUks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QUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLEdBQUc7b0JBQ3JELENBQUMsSUFBSSxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFO29CQUN6RCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMvQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOzs0SEFwSVUsK0JBQStCO2dIQUEvQiwrQkFBK0IseWNDZDVDLDY3QkFZTTsyRkRFTywrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsOEJBQThCOzRJQUtkLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDRSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRWYsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vbW9kZWxzJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElTb3VyY2VDaGFuZ2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9kaWN0aW9uYXJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgSUdyYW1tYXJDaGVja1JlcGxhY2VtZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyYW1tYXItY2hlY2stcmVwbGFjZW1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRQYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlnaGxpZ2h0LXBhcmFtcy5tb2RlbCc7XHJcbmltcG9ydCB7IElIaWdobGlnaHRUcmVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpZ2hsaWdodC10cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlVGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLXRleHQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10ZXh0YXJlYS13aXRoLWJhY2tncm91bmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS13aXRoLWJhY2tncm91bmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLXdpdGgtYmFja2dyb3VuZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYVdpdGhCYWNrZ3JvdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKFwic291cmNlSW5wdXRcIikgc291cmNlSW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInRyZWVXcmFwcGVyXCIpIHRyZWVXcmFwcGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSBtYXhDaGFyTGVuZ3RoOiBudW1iZXI7XHJcbiAgQElucHV0KCkgYXV0b0ZvY3VzczogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWdobGlnaHRUcmVlOiBJSGlnaGxpZ2h0VHJlZVtdO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBncmFtQ2hlY2s6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdGV4dGFyZWFEaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgLy9AT3V0cHV0KCkgc291cmNlQ2hhbmdlZE1hbnVhbGx5OiBFdmVudEVtaXR0ZXI8SVNvdXJjZUNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvL0BPdXRwdXQoKSBzb3VyY2VUZXh0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGhvdmVyZWRCYWNrZ3JvdW5kRWxlbWVudHM6IEVsZW1lbnRbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9zdWdnZXN0ZWRUZXh0OiBzdHJpbmc7XHJcbiAgZ2V0IHN1Z2dlc3RlZFRleHQoKSB7IHJldHVybiB0aGlzLl9zdWdnZXN0ZWRUZXh0OyB9XHJcblxyXG4gIHByaXZhdGUgX3NvdXJjZVRleHQ6IHN0cmluZztcclxuICBnZXQgc291cmNlVGV4dCgpIHsgcmV0dXJuIHRoaXMuX3NvdXJjZVRleHQ7IH07XHJcbiAgc2V0IHNvdXJjZVRleHQodmFsKSB7XHJcbiAgICB0aGlzLl9zb3VyY2VUZXh0ID0gdmFsO1xyXG4gICAgLy8gdGhpcyBpcyBuZWNlc3Nhcnkgc28gdGhhdCBoaWdobGlnaHRpbmcgaXMgYWx3YXlzIGluIGhpcyByZWFsIHBsYWNlIGFsc28gd2hlbiB0cmVlIHdyYXBwZXIgaXMgbm90IGZpbmlzaGVkIHJlbmRlcmluZy5cclxuICAgIGlmICh0aGlzLnRyZWVXcmFwcGVyKSB7XHJcbiAgICAgIHRoaXMudHJlZVdyYXBwZXIubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLnNvdXJjZUlucHV0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgdGhpcy50ZXh0U2VydmljZS5jaGFuZ2VTb3VyY2UoeyBwaHJhc2U6IHZhbCB9KTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGNsZWFyQnV0dG9uQXJpYUNvZGUgPSBcIkNMRUFSX1NPVVJDRVwiO1xyXG4gIHJlYWRvbmx5IHdyYXBwZXJDbGFzcyA9IEhpZ2hsaWdodFBhcmFtcy5zb3VyY2VIaWdobGlnaHRDbGFzcztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlcnZpY2U6IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zb3VyY2VUZXh0ID0gdGhpcy50ZXh0U2VydmljZS5zb3VyY2VUZXh0O1xyXG5cclxuICAgIHRoaXMudGV4dFNlcnZpY2Uuc291cmNlQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgLy90aGlzLmNoYW5nZVNvdXJjZU1hbnVhbGx5KGV2ZW50KTtcclxuICAgICAgdGhpcy5fc291cmNlVGV4dCA9IGV2ZW50LnBocmFzZTtcclxuICAgICAgaWYgKCF0aGlzLnNvdXJjZVRleHQgfHwgdGhpcy5zb3VyY2VUZXh0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zb3VyY2VJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0ZvY3Vzcykge1xyXG4gICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRleHRBcmVhTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WDtcclxuICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZO1xyXG4gICAgY29uc3QgaG92ZXJlZEVsZW1lbnRzID0gdGhpcy5maW5kQmFja2dyb3VuZEVsZW1lbnRzKHgsIHkpO1xyXG5cclxuICAgIHRoaXMuaG92ZXJlZEJhY2tncm91bmRFbGVtZW50cy5mb3JFYWNoKChob3ZlcmVkRWxlbWVudCkgPT4ge1xyXG4gICAgICBpZiAoIWhvdmVyZWRFbGVtZW50cy5pbmNsdWRlcyhob3ZlcmVkRWxlbWVudCkpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXCJtb3VzZWxlYXZlXCIsIGhvdmVyZWRFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaG92ZXJlZEVsZW1lbnRzLmZvckVhY2goKGhvdmVyZWRFbGVtZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcIm1vdXNlZW50ZXJcIiwgaG92ZXJlZEVsZW1lbnQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ob3ZlcmVkQmFja2dyb3VuZEVsZW1lbnRzID0gaG92ZXJlZEVsZW1lbnRzO1xyXG4gIH1cclxuXHJcbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLm1heENoYXJMZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHRvdGFsQ2hhckxlbmd0aCA9ICh0aGlzLnNvdXJjZVRleHQgfHwgXCJcIikubGVuZ3RoICsgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKFwidGV4dFwiKS5sZW5ndGg7XHJcbiAgICAgIGlmICh0b3RhbENoYXJMZW5ndGggPiB0aGlzLm1heENoYXJMZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiRVJST1JTLk1BWF9DSEFSX0xFTkdUSFwiLCB7IG1heENoYXJMZW5ndGg6IHRoaXMubWF4Q2hhckxlbmd0aCwgdG90YWxTeW1ib2xzOiB0b3RhbENoYXJMZW5ndGh9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGV4dGFyZWFDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICBjb25zdCB5ID0gZXZlbnQuY2xpZW50WTtcclxuICAgIGNvbnN0IGhvdmVyZWRFbGVtZW50cyA9IHRoaXMuZmluZEJhY2tncm91bmRFbGVtZW50cyh4LCB5KTtcclxuICAgIGhvdmVyZWRFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcImNsaWNrXCIsIGVsZW1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlKHJlcGxhY2VtZW50OiBJR3JhbW1hckNoZWNrUmVwbGFjZW1lbnQpIHtcclxuICAgIGNvbnN0IHBhcmFncmFwaHMgPSBDb21tb24uc3BsaXRJblBhcmFncmFwaHModGhpcy5zb3VyY2VUZXh0KTtcclxuICAgIGNvbnN0IHBhcmFncmFwaCA9IHBhcmFncmFwaHNbcmVwbGFjZW1lbnQucGFyYWdyYXBoSXhdO1xyXG4gICAgcGFyYWdyYXBoc1tyZXBsYWNlbWVudC5wYXJhZ3JhcGhJeF0gPSBgJHtwYXJhZ3JhcGguc3Vic3RyaW5nKDAsIHJlcGxhY2VtZW50LnN0YXJ0SXgpfSR7cmVwbGFjZW1lbnQucmVwbGFjZW1lbnR9JHtwYXJhZ3JhcGguc3Vic3RyaW5nKHJlcGxhY2VtZW50LmVuZEl4KX1gO1xyXG4gICAgdGhpcy5jaGFuZ2VTb3VyY2VNYW51YWxseSh7IHBocmFzZTogQ29tbW9uLmpvaW5QYXJhZ3JhcGhzKHBhcmFncmFwaHMpIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VTb3VyY2VNYW51YWxseShldmVudDogSVNvdXJjZUNoYW5nZUV2ZW50KSB7XHJcbiAgICB0aGlzLl9zb3VyY2VUZXh0ID0gZXZlbnQucGhyYXNlO1xyXG5cclxuICAgIC8vdG8gY2xlYXIgdGFyZ2V0LlxyXG4gICAgaWYgKCF0aGlzLnNvdXJjZVRleHQgfHwgdGhpcy5zb3VyY2VUZXh0ID09PSBcIlwiKSB7XHJcbiAgICAgIGV2ZW50LmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy50ZXh0U2VydmljZS5jaGFuZ2VTb3VyY2UoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kQmFja2dyb3VuZEVsZW1lbnRzKHg6IG51bWJlciwgeTogbnVtYmVyKTogRWxlbWVudFtdIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7dGhpcy53cmFwcGVyQ2xhc3N9IC4ke0hpZ2hsaWdodFBhcmFtcy5zZW50ZW5jZUNsYXNzfSwgLiR7dGhpcy53cmFwcGVyQ2xhc3N9IC4ke0hpZ2hsaWdodFBhcmFtcy53b3JkQ2xhc3N9LCAgLiR7dGhpcy53cmFwcGVyQ2xhc3N9IC4ke0hpZ2hsaWdodFBhcmFtcy5pbnZhbGlkUGhyYXNlQ2xhc3N9YCk7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kRWxlbWVudHNBdFBvc2l0aW9uKEFycmF5LmZyb20oZWxlbWVudHMpLCB4LCB5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9jdXMoKSB7XHJcbiAgICB0aGlzLnNvdXJjZUlucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRWxlbWVudHNBdFBvc2l0aW9uKGVsZW1lbnRzOiBFbGVtZW50W10sIHg6IG51bWJlciwgeTogbnVtYmVyKTogRWxlbWVudFtdIHtcclxuICAgIGNvbnN0IGZvdW5kZWRFbGVtZW50czogRWxlbWVudFtdID0gW107XHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IGJvdW5kUmVjdGFuZ2xlcyA9IGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKTtcclxuXHJcbiAgICAgIGZvciAobGV0IHJlY3RJbmRleCA9IDA7IHJlY3RJbmRleCA8IGJvdW5kUmVjdGFuZ2xlcy5sZW5ndGg7IHJlY3RJbmRleCsrKSB7XHJcbiAgICAgICAgbGV0IGJvdW5kUmVjdGFuZ2xlID0gYm91bmRSZWN0YW5nbGVzW3JlY3RJbmRleF07XHJcbiAgICAgICAgaWYgKHggPj0gYm91bmRSZWN0YW5nbGUubGVmdCAmJiB5ID49IGJvdW5kUmVjdGFuZ2xlLnRvcCAmJlxyXG4gICAgICAgICAgeCA8PSBib3VuZFJlY3RhbmdsZS5yaWdodCAmJiB5IDw9IGJvdW5kUmVjdGFuZ2xlLmJvdHRvbSkge1xyXG4gICAgICAgICAgZm91bmRlZEVsZW1lbnRzLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3VuZGVkRWxlbWVudHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoRXZlbnQgPSAoZXZlbnROYW1lOiBzdHJpbmcsIGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcclxuICAgIGlmICghZWxlbWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgZXYgPSBuZXcgTW91c2VFdmVudChldmVudE5hbWUsIHtcclxuICAgICAgdmlldzogd2luZG93LFxyXG4gICAgICBidWJibGVzOiB0cnVlLFxyXG4gICAgICBjYW5jZWxhYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChldik7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS13aXRoLWJhY2tncm91bmRcIj5cclxuICAgIDx0ZXh0YXJlYSAgW2Rpc2FibGVkXT1cInRleHRhcmVhRGlzYWJsZWRcIiBjZGtTY3JvbGxhYmxlIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIiBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cInNvdXJjZVRleHRcIiAjc291cmNlSW5wdXQgZnhGbGV4XHJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCIgKG1vdXNlbW92ZSk9XCJvblRleHRBcmVhTW91c2VNb3ZlKCRldmVudClcIiBbYXR0ci5tYXhMZW5ndGhdPVwibWF4Q2hhckxlbmd0aD8gbWF4Q2hhckxlbmd0aDogbnVsbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVExEX1RSQU5TTEFURS5TT1VSQ0VfVE9PTFRJUCcgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwidGV4dGFyZWFDbGljaygkZXZlbnQpXCI+PC90ZXh0YXJlYT5cclxuICAgIDxkaXYgY2xhc3M9XCJ7e3dyYXBwZXJDbGFzc319XCIgKm5nSWY9XCJncmFtQ2hlY2sgfHwgaGlnaGxpZ2h0XCIgIGNka1Njcm9sbGFibGUgI3RyZWVXcmFwcGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1oaWdobGlnaHQtYmFja3JvdW5kLWlubmVyXCIgY2RrU2Nyb2xsYWJsZT5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcGFyYWdyYXBoIG9mIGhpZ2hsaWdodFRyZWVcIj5cclxuICAgICAgICAgICAgICAgIDx0bGQtaGlnaGxpZ2h0LXRyZWUgW2lzU291cmNlXT1cInRydWVcIiBbdHJlZV09XCJwYXJhZ3JhcGhcIiBbaGlnaGxpZ2h0XT1cImhpZ2hsaWdodFwiIFtncmFtQ2hlY2tdPVwiZ3JhbUNoZWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAob25SZXBsYWNlKT1cInJlcGxhY2UoJGV2ZW50KVwiPjwvdGxkLWhpZ2hsaWdodC10cmVlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|