@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.
Files changed (541) hide show
  1. package/README.md +2 -0
  2. package/esm2020/lib/components/shared/extension-dialog/components/index.mjs +2 -0
  3. package/esm2020/lib/components/shared/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.mjs +24 -0
  4. package/esm2020/lib/components/shared/extension-dialog/extension-dialog.component.mjs +133 -0
  5. package/esm2020/lib/components/shared/extension-dialog/extension-dialog.module.mjs +51 -0
  6. package/esm2020/lib/components/shared/extension-dialog/index.mjs +6 -0
  7. package/esm2020/lib/components/shared/extension-dialog/models/enums/file-categories.enum.mjs +9 -0
  8. package/esm2020/lib/components/shared/extension-dialog/models/enums/file-extensions.enum.mjs +35 -0
  9. package/esm2020/lib/components/shared/extension-dialog/models/enums/file-type-icons.enum.mjs +13 -0
  10. package/esm2020/lib/components/shared/extension-dialog/models/enums/file-types.enum.mjs +13 -0
  11. package/esm2020/lib/components/shared/extension-dialog/models/enums/index.mjs +5 -0
  12. package/esm2020/lib/components/shared/extension-dialog/models/index.mjs +3 -0
  13. package/esm2020/lib/components/shared/extension-dialog/models/interfaces/config.mjs +2 -0
  14. package/esm2020/lib/components/shared/extension-dialog/models/interfaces/dialog-data.model.mjs +2 -0
  15. package/esm2020/lib/components/shared/extension-dialog/models/interfaces/index.mjs +3 -0
  16. package/esm2020/lib/components/shared/extension-dialog/services/extension-dialog.service.mjs +22 -0
  17. package/esm2020/lib/components/shared/extension-dialog/services/index.mjs +2 -0
  18. package/esm2020/lib/components/shared/text-to-speech/index.mjs +3 -0
  19. package/esm2020/lib/components/shared/text-to-speech/models/text-to-speech-settings.model.mjs +2 -0
  20. package/esm2020/lib/components/shared/text-to-speech/text-to-speech.component.mjs +62 -0
  21. package/esm2020/lib/components/shared/text-to-speech/text-to-speech.module.mjs +36 -0
  22. package/esm2020/lib/components/shared/vendor-disclaimer/vendor-disclaimer.component.mjs +39 -0
  23. package/esm2020/lib/components/shared/vendor-disclaimer/vendor-disclaimer.module.mjs +28 -0
  24. package/esm2020/lib/factories/file-api-service.factory.mjs +12 -0
  25. package/esm2020/lib/factories/system-service.factory.mjs +12 -0
  26. package/esm2020/lib/factories/text-api-service.factory.mjs +12 -0
  27. package/esm2020/lib/i18n/available-languages.mjs +19 -0
  28. package/esm2020/lib/i18n/de.mjs +378 -0
  29. package/esm2020/lib/i18n/en.mjs +426 -0
  30. package/esm2020/lib/i18n/et.mjs +378 -0
  31. package/esm2020/lib/i18n/fi.mjs +383 -0
  32. package/esm2020/lib/i18n/lt.mjs +378 -0
  33. package/esm2020/lib/i18n/lv.mjs +391 -0
  34. package/esm2020/lib/i18n/models/available-languages.model.mjs +2 -0
  35. package/esm2020/lib/i18n/pl.mjs +378 -0
  36. package/esm2020/lib/i18n/sv.mjs +242 -0
  37. package/esm2020/lib/injection-tokens/file-api-service.token.mjs +2 -0
  38. package/esm2020/lib/injection-tokens/index.mjs +6 -0
  39. package/esm2020/lib/injection-tokens/system-service.token.mjs +2 -0
  40. package/esm2020/lib/injection-tokens/text-api-service.token.mjs +2 -0
  41. package/esm2020/lib/injection-tokens/tld-translate-config.token.mjs +2 -0
  42. package/esm2020/lib/injection-tokens/translation-api-version.token.mjs +2 -0
  43. package/esm2020/lib/modules/material.module.mjs +97 -0
  44. package/esm2020/lib/modules/tld-audio/index.mjs +4 -0
  45. package/esm2020/lib/modules/tld-audio/models/audio-error-case.model.mjs +13 -0
  46. package/esm2020/lib/modules/tld-audio/models/dictate-configurationi.model.mjs +2 -0
  47. package/esm2020/lib/modules/tld-audio/models/index.mjs +3 -0
  48. package/esm2020/lib/modules/tld-audio/models/transcription-update.model.mjs +2 -0
  49. package/esm2020/lib/modules/tld-audio/services/audio-record.service.mjs +116 -0
  50. package/esm2020/lib/modules/tld-audio/services/index.mjs +4 -0
  51. package/esm2020/lib/modules/tld-audio/services/tld-voice-input-api.service.mjs +48 -0
  52. package/esm2020/lib/modules/tld-audio/services/tld-voice-input.service.mjs +60 -0
  53. package/esm2020/lib/modules/tld-audio/tld-audio.module.mjs +41 -0
  54. package/esm2020/lib/modules/tld-audio/tld-dictate/tld-dictate.component.mjs +151 -0
  55. package/esm2020/lib/modules/tld-audio/tld-record/tld-record.component.mjs +87 -0
  56. package/esm2020/lib/modules/tld-common/animations/pulse.animation.mjs +11 -0
  57. package/esm2020/lib/modules/tld-common/components/index.mjs +10 -0
  58. package/esm2020/lib/modules/tld-common/components/open-close-button/open-close-button.component.mjs +41 -0
  59. package/esm2020/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.mjs +44 -0
  60. package/esm2020/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.mjs +103 -0
  61. package/esm2020/lib/modules/tld-common/components/tld-lang-list/tld-lang-list.component.mjs +193 -0
  62. package/esm2020/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.mjs +60 -0
  63. package/esm2020/lib/modules/tld-common/components/tld-loader/tld-loader.component.mjs +12 -0
  64. package/esm2020/lib/modules/tld-common/components/tld-message/tld-message.component.mjs +49 -0
  65. package/esm2020/lib/modules/tld-common/components/tld-translate-achievement/tld-translate-achievement.component.mjs +17 -0
  66. package/esm2020/lib/modules/tld-common/components/translate-button/tld-translate-button.service.mjs +30 -0
  67. package/esm2020/lib/modules/tld-common/components/translate-button/translate-button.component.mjs +59 -0
  68. package/esm2020/lib/modules/tld-common/directives/drag-and-drop.directive.mjs +57 -0
  69. package/esm2020/lib/modules/tld-common/directives/index.mjs +2 -0
  70. package/esm2020/lib/modules/tld-common/index.mjs +2 -0
  71. package/esm2020/lib/modules/tld-common/models/auth-options.model.mjs +2 -0
  72. package/esm2020/lib/modules/tld-common/models/common.mjs +107 -0
  73. package/esm2020/lib/modules/tld-common/models/configs/tld-audio-config.model.mjs +2 -0
  74. package/esm2020/lib/modules/tld-common/models/configs/tld-term-config.model.mjs +2 -0
  75. package/esm2020/lib/modules/tld-common/models/configs/tld-text-to-speech-config.model.mjs +2 -0
  76. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-api-v2-config.model.mjs +2 -0
  77. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-config.model.mjs +2 -0
  78. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-core-config.model.mjs +2 -0
  79. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-file-config.model.mjs +2 -0
  80. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-text-config.model.mjs +2 -0
  81. package/esm2020/lib/modules/tld-common/models/configs/tld-translate-web-config.model.mjs +2 -0
  82. package/esm2020/lib/modules/tld-common/models/core/index.mjs +3 -0
  83. package/esm2020/lib/modules/tld-common/models/core/language-menu-version.enum.mjs +6 -0
  84. package/esm2020/lib/modules/tld-common/models/core/translation-api-version.model.mjs +6 -0
  85. package/esm2020/lib/modules/tld-common/models/errors/error-codes.enum.mjs +27 -0
  86. package/esm2020/lib/modules/tld-common/models/errors/error-codes.type.mjs +2 -0
  87. package/esm2020/lib/modules/tld-common/models/errors/error.model.mjs +2 -0
  88. package/esm2020/lib/modules/tld-common/models/file-upload.model.mjs +10 -0
  89. package/esm2020/lib/modules/tld-common/models/index.mjs +22 -0
  90. package/esm2020/lib/modules/tld-common/models/lang-list-item.model.mjs +2 -0
  91. package/esm2020/lib/modules/tld-common/models/language-with-translation.model.mjs +2 -0
  92. package/esm2020/lib/modules/tld-common/models/message.model.mjs +7 -0
  93. package/esm2020/lib/modules/tld-common/models/selected-language.model.mjs +2 -0
  94. package/esm2020/lib/modules/tld-common/models/services/file-api/download-file-params.model.mjs +2 -0
  95. package/esm2020/lib/modules/tld-common/models/services/file-api/file-api-service.model.mjs +2 -0
  96. package/esm2020/lib/modules/tld-common/models/services/file-api/file-meta.model.mjs +2 -0
  97. package/esm2020/lib/modules/tld-common/models/services/file-api/file-translation-substatus.model.mjs +9 -0
  98. package/esm2020/lib/modules/tld-common/models/services/file-api/get-file-status-params.model.mjs +2 -0
  99. package/esm2020/lib/modules/tld-common/models/services/file-api/get-file-translation-status-response.model.mjs +2 -0
  100. package/esm2020/lib/modules/tld-common/models/services/file-api/remove-file-params.model.mjs +2 -0
  101. package/esm2020/lib/modules/tld-common/models/services/file-api/source-file-preview-response.model.mjs +2 -0
  102. package/esm2020/lib/modules/tld-common/models/services/file-api/start-file-translation-params.model.mjs +2 -0
  103. package/esm2020/lib/modules/tld-common/models/services/file-api/translated-document-preview-params.model.mjs +2 -0
  104. package/esm2020/lib/modules/tld-common/models/services/index.mjs +19 -0
  105. package/esm2020/lib/modules/tld-common/models/services/system/system.model.mjs +2 -0
  106. package/esm2020/lib/modules/tld-common/models/services/system/tld-system-api-service.model.mjs +2 -0
  107. package/esm2020/lib/modules/tld-common/models/services/text-api/check-grammar-response.model.mjs +2 -0
  108. package/esm2020/lib/modules/tld-common/models/services/text-api/tld-translate-text-api-service.model.mjs +2 -0
  109. package/esm2020/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.mjs +2 -0
  110. package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job-state.model.mjs +7 -0
  111. package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job.model.mjs +2 -0
  112. package/esm2020/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-start-job-request-params.model.mjs +2 -0
  113. package/esm2020/lib/modules/tld-common/pipes/index.mjs +2 -0
  114. package/esm2020/lib/modules/tld-common/pipes/translate-domain.pipe.mjs +27 -0
  115. package/esm2020/lib/modules/tld-common/services/icon-service/icon.service.mjs +30 -0
  116. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/excel.icon.mjs +22 -0
  117. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/index.mjs +10 -0
  118. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/interchange.icon.mjs +6 -0
  119. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/office-other.icon.mjs +6 -0
  120. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/other.icon.mjs +6 -0
  121. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/pdf.icon.mjs +12 -0
  122. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/powerpoint.icon.mjs +10 -0
  123. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/scanned.icon.mjs +6 -0
  124. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/web.icon.mjs +6 -0
  125. package/esm2020/lib/modules/tld-common/services/icon-service/icons/file-types/word.icon.mjs +11 -0
  126. package/esm2020/lib/modules/tld-common/services/icon-service/icons.mjs +52 -0
  127. package/esm2020/lib/modules/tld-common/services/index.mjs +5 -0
  128. package/esm2020/lib/modules/tld-common/services/scroll/tld-scroll.service.mjs +43 -0
  129. package/esm2020/lib/modules/tld-common/services/tld-alert.service.mjs +139 -0
  130. package/esm2020/lib/modules/tld-common/services/tld-highlight.service.mjs +25 -0
  131. package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +226 -0
  132. package/esm2020/lib/modules/tld-common/services/wtw-link-params.service.mjs +33 -0
  133. package/esm2020/lib/modules/tld-common/tld-common.module.mjs +97 -0
  134. package/esm2020/lib/modules/tld-document/download-button/download-button.component.mjs +78 -0
  135. package/esm2020/lib/modules/tld-document/image-conversion-help/image-conversion-help.component.mjs +32 -0
  136. package/esm2020/lib/modules/tld-document/index.mjs +8 -0
  137. package/esm2020/lib/modules/tld-document/models/file-conversion-types.model.mjs +6 -0
  138. package/esm2020/lib/modules/tld-document/models/index.mjs +6 -0
  139. package/esm2020/lib/modules/tld-document/models/start-translation.model.mjs +2 -0
  140. package/esm2020/lib/modules/tld-document/models/translate-file.model.mjs +2 -0
  141. package/esm2020/lib/modules/tld-document/models/translation-statuss.model.mjs +15 -0
  142. package/esm2020/lib/modules/tld-document/models/upload-response.model.mjs +2 -0
  143. package/esm2020/lib/modules/tld-document/pdf-conversion-help/pdf-conversion-help.component.mjs +32 -0
  144. package/esm2020/lib/modules/tld-document/services/api/file-api.service.mjs +166 -0
  145. package/esm2020/lib/modules/tld-document/services/api/models/file-preview-v1-progress-response.model.mjs +2 -0
  146. package/esm2020/lib/modules/tld-document/services/api/models/file-preview-v1-response-body.model.mjs +2 -0
  147. package/esm2020/lib/modules/tld-document/services/api/models/get-file-translation-status-v1-response.model.mjs +2 -0
  148. package/esm2020/lib/modules/tld-document/services/api-v2/file-api-v2.service.mjs +87 -0
  149. package/esm2020/lib/modules/tld-document/services/api-v2/models/file-category-v2.model.mjs +6 -0
  150. package/esm2020/lib/modules/tld-document/services/api-v2/models/file-translation-status-v2-response.model.mjs +2 -0
  151. package/esm2020/lib/modules/tld-document/services/index.mjs +3 -0
  152. package/esm2020/lib/modules/tld-document/services/tld-translate-file.service.mjs +398 -0
  153. package/esm2020/lib/modules/tld-document/tld-document.module.mjs +70 -0
  154. package/esm2020/lib/modules/tld-document/tld-file-translate-base.component.mjs +76 -0
  155. package/esm2020/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.mjs +94 -0
  156. package/esm2020/lib/modules/tld-term/index.mjs +7 -0
  157. package/esm2020/lib/modules/tld-term/models/converted-collection-tooltip-key.model.mjs +7 -0
  158. package/esm2020/lib/modules/tld-term/models/converted-collection-type.model.mjs +9 -0
  159. package/esm2020/lib/modules/tld-term/models/index.mjs +7 -0
  160. package/esm2020/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.mjs +2 -0
  161. package/esm2020/lib/modules/tld-term/models/mt-collection-status.model.mjs +7 -0
  162. package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.mjs +2 -0
  163. package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection.model.mjs +2 -0
  164. package/esm2020/lib/modules/tld-term/models/tld-converted-collection.model.mjs +114 -0
  165. package/esm2020/lib/modules/tld-term/services/index.mjs +4 -0
  166. package/esm2020/lib/modules/tld-term/services/mt-collections-api.service.mjs +33 -0
  167. package/esm2020/lib/modules/tld-term/services/term-api.service.mjs +34 -0
  168. package/esm2020/lib/modules/tld-term/services/tld-term-collections.service.mjs +253 -0
  169. package/esm2020/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.mjs +19 -0
  170. package/esm2020/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.mjs +99 -0
  171. package/esm2020/lib/modules/tld-term/tld-term-create-collection-dialog/tld-term-create-collection-dialog.component.mjs +47 -0
  172. package/esm2020/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.mjs +36 -0
  173. package/esm2020/lib/modules/tld-term/tld-term-promotion/tld-term-promotion.component.mjs +35 -0
  174. package/esm2020/lib/modules/tld-term/tld-term.module.mjs +67 -0
  175. package/esm2020/lib/modules/tld-text/components/highlight-tree/highlight-tree.component.mjs +109 -0
  176. package/esm2020/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.mjs +35 -0
  177. package/esm2020/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.mjs +153 -0
  178. package/esm2020/lib/modules/tld-text/components/tld-dictionary/tld-dictionary.component.mjs +56 -0
  179. package/esm2020/lib/modules/tld-text/components/tld-translate-source/tld-translate-source.component.mjs +60 -0
  180. package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/dialog/suggest-translation.model.mjs +2 -0
  181. package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/dialog/tld-translate-suggest-dialog.component.mjs +92 -0
  182. package/esm2020/lib/modules/tld-text/components/tld-translate-suggest/tld-translate-suggest.component.mjs +60 -0
  183. package/esm2020/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs +272 -0
  184. package/esm2020/lib/modules/tld-text/index.mjs +9 -0
  185. package/esm2020/lib/modules/tld-text/models/check-grammar-response-v2.model.mjs +2 -0
  186. package/esm2020/lib/modules/tld-text/models/dictionary.model.mjs +2 -0
  187. package/esm2020/lib/modules/tld-text/models/get-sentence-v1-response.model.mjs +2 -0
  188. package/esm2020/lib/modules/tld-text/models/grammar-check-base.model.mjs +2 -0
  189. package/esm2020/lib/modules/tld-text/models/grammar-check-meta.model.mjs +2 -0
  190. package/esm2020/lib/modules/tld-text/models/grammar-check-replacement.model.mjs +2 -0
  191. package/esm2020/lib/modules/tld-text/models/grammar-correction-v2.model.mjs +2 -0
  192. package/esm2020/lib/modules/tld-text/models/highlight-params.model.mjs +11 -0
  193. package/esm2020/lib/modules/tld-text/models/highlight-tree-type.model.mjs +12 -0
  194. package/esm2020/lib/modules/tld-text/models/highlight-tree.model.mjs +2 -0
  195. package/esm2020/lib/modules/tld-text/models/highlight.model.mjs +2 -0
  196. package/esm2020/lib/modules/tld-text/models/index.mjs +11 -0
  197. package/esm2020/lib/modules/tld-text/models/retranslate-params.model.mjs +2 -0
  198. package/esm2020/lib/modules/tld-text/models/source-text-changed.model.mjs +2 -0
  199. package/esm2020/lib/modules/tld-text/models/translate-paragraph-params.model.mjs +2 -0
  200. package/esm2020/lib/modules/tld-text/models/translate-paragraph-response-v1.model.mjs +2 -0
  201. package/esm2020/lib/modules/tld-text/models/translate-paragraph-response-v2.model.mjs +2 -0
  202. package/esm2020/lib/modules/tld-text/models/translate-paragraph-response.model.mjs +2 -0
  203. package/esm2020/lib/modules/tld-text/models/untranslated-paragraph.model.mjs +2 -0
  204. package/esm2020/lib/modules/tld-text/services/api/tld-translate-text-api.service.mjs +187 -0
  205. package/esm2020/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.mjs +110 -0
  206. package/esm2020/lib/modules/tld-text/services/index.mjs +2 -0
  207. package/esm2020/lib/modules/tld-text/services/tld-translate-text.service.mjs +380 -0
  208. package/esm2020/lib/modules/tld-text/tld-text.module.mjs +95 -0
  209. package/esm2020/lib/modules/tld-text/utils/index.mjs +2 -0
  210. package/esm2020/lib/modules/tld-text/utils/models/existing-paragraph-info.model.mjs +2 -0
  211. package/esm2020/lib/modules/tld-text/utils/models/index.mjs +2 -0
  212. package/esm2020/lib/modules/tld-text/utils/tld-translate-text.utils.mjs +56 -0
  213. package/esm2020/lib/modules/tld-tooltip/index.mjs +5 -0
  214. package/esm2020/lib/modules/tld-tooltip/models/active-data.model.mjs +2 -0
  215. package/esm2020/lib/modules/tld-tooltip/models/domain.model.mjs +2 -0
  216. package/esm2020/lib/modules/tld-tooltip/models/index.mjs +5 -0
  217. package/esm2020/lib/modules/tld-tooltip/models/switcher-options.model.mjs +2 -0
  218. package/esm2020/lib/modules/tld-tooltip/models/system-metadata-keys.model.mjs +7 -0
  219. package/esm2020/lib/modules/tld-tooltip/models/vendor.model.mjs +2 -0
  220. package/esm2020/lib/modules/tld-tooltip/services/api/models/description.model.mjs +2 -0
  221. package/esm2020/lib/modules/tld-tooltip/services/api/models/language.model.mjs +2 -0
  222. package/esm2020/lib/modules/tld-tooltip/services/api/models/metadata.model.mjs +2 -0
  223. package/esm2020/lib/modules/tld-tooltip/services/api/models/name.model.mjs +2 -0
  224. package/esm2020/lib/modules/tld-tooltip/services/api/models/system.model.mjs +2 -0
  225. package/esm2020/lib/modules/tld-tooltip/services/api/tld-system-api.service.mjs +57 -0
  226. package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/error.model.mjs +2 -0
  227. package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/get-langauge-direction.mjs +2 -0
  228. package/esm2020/lib/modules/tld-tooltip/services/api-v2/models/language-direction.model.mjs +2 -0
  229. package/esm2020/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.mjs +60 -0
  230. package/esm2020/lib/modules/tld-tooltip/services/index.mjs +2 -0
  231. package/esm2020/lib/modules/tld-tooltip/services/tld-system.service.mjs +302 -0
  232. package/esm2020/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.mjs +69 -0
  233. package/esm2020/lib/modules/tld-tooltip/tld-tooltip.module.mjs +95 -0
  234. package/esm2020/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs +188 -0
  235. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/dropdown/translation-system-picker-dropdown.component.mjs +179 -0
  236. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.mjs +209 -0
  237. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/filter/translation-system-picker-filter.component.mjs +48 -0
  238. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/index.mjs +8 -0
  239. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/language-list/translation-system-picker-language-list.component.mjs +31 -0
  240. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/dropdown-body-config.model.mjs +2 -0
  241. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/grouped-language-item.mjs +3 -0
  242. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/index.mjs +6 -0
  243. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/opened-menu.mjs +7 -0
  244. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/translated-language.model.mjs +2 -0
  245. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/models/translated-system.model.mjs +2 -0
  246. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/services/index.mjs +2 -0
  247. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/services/translation-system-picker.service.mjs +58 -0
  248. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/system-list/translation-system-picker-system-list.component.mjs +31 -0
  249. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/system-picker-button/translation-system-picker-button.component.mjs +27 -0
  250. package/esm2020/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.mjs +79 -0
  251. package/esm2020/lib/modules/tld-translate-file/tld-translate-file.component.mjs +65 -0
  252. package/esm2020/lib/modules/tld-web/index.mjs +3 -0
  253. package/esm2020/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +499 -0
  254. package/esm2020/lib/modules/tld-web/tld-translate-web.service.mjs +16 -0
  255. package/esm2020/lib/modules/tld-web/tld-web.module.mjs +52 -0
  256. package/esm2020/lib/tld-translate-body/tld-translate-body.component.mjs +60 -0
  257. package/esm2020/lib/tld-translate.component.mjs +229 -0
  258. package/esm2020/lib/tld-translate.module.mjs +118 -0
  259. package/esm2020/public-api.mjs +43 -0
  260. package/esm2020/tilde-nlp-ngx-translate.mjs +5 -0
  261. package/fesm2015/tilde-nlp-ngx-translate.mjs +11019 -0
  262. package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -0
  263. package/fesm2020/tilde-nlp-ngx-translate.mjs +10912 -0
  264. package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -0
  265. package/index.d.ts +5 -0
  266. package/lib/components/shared/extension-dialog/components/index.d.ts +1 -0
  267. package/lib/components/shared/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.d.ts +12 -0
  268. package/lib/components/shared/extension-dialog/extension-dialog.component.d.ts +15 -0
  269. package/lib/components/shared/extension-dialog/extension-dialog.module.d.ts +15 -0
  270. package/lib/components/shared/extension-dialog/index.d.ts +5 -0
  271. package/lib/components/shared/extension-dialog/models/enums/file-categories.enum.d.ts +7 -0
  272. package/lib/components/shared/extension-dialog/models/enums/file-extensions.enum.d.ts +33 -0
  273. package/lib/components/shared/extension-dialog/models/enums/file-type-icons.enum.d.ts +11 -0
  274. package/lib/components/shared/extension-dialog/models/enums/file-types.enum.d.ts +11 -0
  275. package/lib/components/shared/extension-dialog/models/enums/index.d.ts +4 -0
  276. package/lib/components/shared/extension-dialog/models/index.d.ts +2 -0
  277. package/lib/components/shared/extension-dialog/models/interfaces/config.d.ts +18 -0
  278. package/lib/components/shared/extension-dialog/models/interfaces/dialog-data.model.d.ts +3 -0
  279. package/lib/components/shared/extension-dialog/models/interfaces/index.d.ts +2 -0
  280. package/lib/components/shared/extension-dialog/services/extension-dialog.service.d.ts +9 -0
  281. package/lib/components/shared/extension-dialog/services/index.d.ts +1 -0
  282. package/lib/components/shared/text-to-speech/index.d.ts +2 -0
  283. package/lib/components/shared/text-to-speech/models/text-to-speech-settings.model.d.ts +23 -0
  284. package/lib/components/shared/text-to-speech/text-to-speech.component.d.ts +18 -0
  285. package/lib/components/shared/text-to-speech/text-to-speech.module.d.ts +11 -0
  286. package/lib/components/shared/vendor-disclaimer/vendor-disclaimer.component.d.ts +17 -0
  287. package/lib/components/shared/vendor-disclaimer/vendor-disclaimer.module.d.ts +9 -0
  288. package/lib/factories/file-api-service.factory.d.ts +7 -0
  289. package/lib/factories/system-service.factory.d.ts +6 -0
  290. package/lib/factories/text-api-service.factory.d.ts +6 -0
  291. package/lib/i18n/available-languages.d.ts +2 -0
  292. package/lib/i18n/de.d.ts +377 -0
  293. package/lib/i18n/en.d.ts +425 -0
  294. package/lib/i18n/et.d.ts +377 -0
  295. package/lib/i18n/fi.d.ts +382 -0
  296. package/lib/i18n/lt.d.ts +377 -0
  297. package/lib/i18n/lv.d.ts +390 -0
  298. package/lib/i18n/models/available-languages.model.d.ts +10 -0
  299. package/lib/i18n/pl.d.ts +377 -0
  300. package/lib/i18n/sv.d.ts +241 -0
  301. package/lib/injection-tokens/file-api-service.token.d.ts +1 -0
  302. package/lib/injection-tokens/index.d.ts +5 -0
  303. package/lib/injection-tokens/system-service.token.d.ts +1 -0
  304. package/lib/injection-tokens/text-api-service.token.d.ts +1 -0
  305. package/lib/injection-tokens/tld-translate-config.token.d.ts +1 -0
  306. package/lib/injection-tokens/translation-api-version.token.d.ts +1 -0
  307. package/lib/modules/material.module.d.ts +27 -0
  308. package/lib/modules/tld-audio/index.d.ts +3 -0
  309. package/lib/modules/tld-audio/models/audio-error-case.model.d.ts +11 -0
  310. package/lib/modules/tld-audio/models/dictate-configurationi.model.d.ts +6 -0
  311. package/lib/modules/tld-audio/models/index.d.ts +2 -0
  312. package/lib/modules/tld-audio/models/transcription-update.model.d.ts +4 -0
  313. package/lib/modules/tld-audio/services/audio-record.service.d.ts +35 -0
  314. package/lib/modules/tld-audio/services/index.d.ts +3 -0
  315. package/lib/modules/tld-audio/services/tld-voice-input-api.service.d.ts +16 -0
  316. package/lib/modules/tld-audio/services/tld-voice-input.service.d.ts +20 -0
  317. package/lib/modules/tld-audio/tld-audio.module.d.ts +14 -0
  318. package/lib/modules/tld-audio/tld-dictate/tld-dictate.component.d.ts +43 -0
  319. package/lib/modules/tld-audio/tld-record/tld-record.component.d.ts +32 -0
  320. package/lib/modules/tld-common/animations/pulse.animation.d.ts +1 -0
  321. package/lib/modules/tld-common/components/index.d.ts +9 -0
  322. package/lib/modules/tld-common/components/open-close-button/open-close-button.component.d.ts +15 -0
  323. package/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.d.ts +19 -0
  324. package/lib/modules/tld-common/components/tld-file-upload/tld-file-upload.component.d.ts +28 -0
  325. package/lib/modules/tld-common/components/tld-lang-list/tld-lang-list.component.d.ts +52 -0
  326. package/lib/modules/tld-common/components/tld-list-menu/tld-list-menu.component.d.ts +24 -0
  327. package/lib/modules/tld-common/components/tld-loader/tld-loader.component.d.ts +5 -0
  328. package/lib/modules/tld-common/components/tld-message/tld-message.component.d.ts +18 -0
  329. package/lib/modules/tld-common/components/tld-translate-achievement/tld-translate-achievement.component.d.ts +6 -0
  330. package/lib/modules/tld-common/components/translate-button/tld-translate-button.service.d.ts +12 -0
  331. package/lib/modules/tld-common/components/translate-button/translate-button.component.d.ts +22 -0
  332. package/lib/modules/tld-common/directives/drag-and-drop.directive.d.ts +14 -0
  333. package/lib/modules/tld-common/directives/index.d.ts +1 -0
  334. package/lib/modules/tld-common/index.d.ts +1 -0
  335. package/lib/modules/tld-common/models/auth-options.model.d.ts +4 -0
  336. package/lib/modules/tld-common/models/common.d.ts +28 -0
  337. package/lib/modules/tld-common/models/configs/tld-audio-config.model.d.ts +22 -0
  338. package/lib/modules/tld-common/models/configs/tld-term-config.model.d.ts +27 -0
  339. package/lib/modules/tld-common/models/configs/tld-text-to-speech-config.model.d.ts +11 -0
  340. package/lib/modules/tld-common/models/configs/tld-translate-api-v2-config.model.d.ts +11 -0
  341. package/lib/modules/tld-common/models/configs/tld-translate-config.model.d.ts +18 -0
  342. package/lib/modules/tld-common/models/configs/tld-translate-core-config.model.d.ts +42 -0
  343. package/lib/modules/tld-common/models/configs/tld-translate-file-config.model.d.ts +25 -0
  344. package/lib/modules/tld-common/models/configs/tld-translate-text-config.model.d.ts +39 -0
  345. package/lib/modules/tld-common/models/configs/tld-translate-web-config.model.d.ts +10 -0
  346. package/lib/modules/tld-common/models/core/index.d.ts +2 -0
  347. package/lib/modules/tld-common/models/core/language-menu-version.enum.d.ts +4 -0
  348. package/lib/modules/tld-common/models/core/translation-api-version.model.d.ts +4 -0
  349. package/lib/modules/tld-common/models/errors/error-codes.enum.d.ts +21 -0
  350. package/lib/modules/tld-common/models/errors/error-codes.type.d.ts +4 -0
  351. package/lib/modules/tld-common/models/errors/error.model.d.ts +3 -0
  352. package/lib/modules/tld-common/models/file-upload.model.d.ts +13 -0
  353. package/lib/modules/tld-common/models/index.d.ts +21 -0
  354. package/lib/modules/tld-common/models/lang-list-item.model.d.ts +6 -0
  355. package/lib/modules/tld-common/models/language-with-translation.model.d.ts +6 -0
  356. package/lib/modules/tld-common/models/message.model.d.ts +11 -0
  357. package/lib/modules/tld-common/models/selected-language.model.d.ts +4 -0
  358. package/lib/modules/tld-common/models/services/file-api/download-file-params.model.d.ts +5 -0
  359. package/lib/modules/tld-common/models/services/file-api/file-api-service.model.d.ts +17 -0
  360. package/lib/modules/tld-common/models/services/file-api/file-meta.model.d.ts +8 -0
  361. package/lib/modules/tld-common/models/services/file-api/file-translation-substatus.model.d.ts +7 -0
  362. package/lib/modules/tld-common/models/services/file-api/get-file-status-params.model.d.ts +6 -0
  363. package/lib/modules/tld-common/models/services/file-api/get-file-translation-status-response.model.d.ts +13 -0
  364. package/lib/modules/tld-common/models/services/file-api/remove-file-params.model.d.ts +4 -0
  365. package/lib/modules/tld-common/models/services/file-api/source-file-preview-response.model.d.ts +8 -0
  366. package/lib/modules/tld-common/models/services/file-api/start-file-translation-params.model.d.ts +6 -0
  367. package/lib/modules/tld-common/models/services/file-api/translated-document-preview-params.model.d.ts +4 -0
  368. package/lib/modules/tld-common/models/services/index.d.ts +18 -0
  369. package/lib/modules/tld-common/models/services/system/system.model.d.ts +17 -0
  370. package/lib/modules/tld-common/models/services/system/tld-system-api-service.model.d.ts +5 -0
  371. package/lib/modules/tld-common/models/services/text-api/check-grammar-response.model.d.ts +6 -0
  372. package/lib/modules/tld-common/models/services/text-api/tld-translate-text-api-service.model.d.ts +26 -0
  373. package/lib/modules/tld-common/models/services/text-api/translate-paragraph-request-params.model.d.ts +6 -0
  374. package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job-state.model.d.ts +5 -0
  375. package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-job.model.d.ts +21 -0
  376. package/lib/modules/tld-common/models/services/voice-to-text/voice-to-text-start-job-request-params.model.d.ts +7 -0
  377. package/lib/modules/tld-common/pipes/index.d.ts +1 -0
  378. package/lib/modules/tld-common/pipes/translate-domain.pipe.d.ts +13 -0
  379. package/lib/modules/tld-common/services/icon-service/icon.service.d.ts +12 -0
  380. package/lib/modules/tld-common/services/icon-service/icons/file-types/excel.icon.d.ts +1 -0
  381. package/lib/modules/tld-common/services/icon-service/icons/file-types/index.d.ts +9 -0
  382. package/lib/modules/tld-common/services/icon-service/icons/file-types/interchange.icon.d.ts +1 -0
  383. package/lib/modules/tld-common/services/icon-service/icons/file-types/office-other.icon.d.ts +1 -0
  384. package/lib/modules/tld-common/services/icon-service/icons/file-types/other.icon.d.ts +1 -0
  385. package/lib/modules/tld-common/services/icon-service/icons/file-types/pdf.icon.d.ts +1 -0
  386. package/lib/modules/tld-common/services/icon-service/icons/file-types/powerpoint.icon.d.ts +1 -0
  387. package/lib/modules/tld-common/services/icon-service/icons/file-types/scanned.icon.d.ts +1 -0
  388. package/lib/modules/tld-common/services/icon-service/icons/file-types/web.icon.d.ts +1 -0
  389. package/lib/modules/tld-common/services/icon-service/icons/file-types/word.icon.d.ts +1 -0
  390. package/lib/modules/tld-common/services/icon-service/icons.d.ts +3 -0
  391. package/lib/modules/tld-common/services/index.d.ts +4 -0
  392. package/lib/modules/tld-common/services/scroll/tld-scroll.service.d.ts +12 -0
  393. package/lib/modules/tld-common/services/tld-alert.service.d.ts +33 -0
  394. package/lib/modules/tld-common/services/tld-highlight.service.d.ts +14 -0
  395. package/lib/modules/tld-common/services/tld-translate-config.service.d.ts +39 -0
  396. package/lib/modules/tld-common/services/wtw-link-params.service.d.ts +13 -0
  397. package/lib/modules/tld-common/tld-common.module.d.ts +23 -0
  398. package/lib/modules/tld-document/download-button/download-button.component.d.ts +30 -0
  399. package/lib/modules/tld-document/image-conversion-help/image-conversion-help.component.d.ts +21 -0
  400. package/lib/modules/tld-document/index.d.ts +7 -0
  401. package/lib/modules/tld-document/models/file-conversion-types.model.d.ts +4 -0
  402. package/lib/modules/tld-document/models/index.d.ts +5 -0
  403. package/lib/modules/tld-document/models/start-translation.model.d.ts +16 -0
  404. package/lib/modules/tld-document/models/translate-file.model.d.ts +33 -0
  405. package/lib/modules/tld-document/models/translation-statuss.model.d.ts +12 -0
  406. package/lib/modules/tld-document/models/upload-response.model.d.ts +8 -0
  407. package/lib/modules/tld-document/pdf-conversion-help/pdf-conversion-help.component.d.ts +21 -0
  408. package/lib/modules/tld-document/services/api/file-api.service.d.ts +26 -0
  409. package/lib/modules/tld-document/services/api/models/file-preview-v1-progress-response.model.d.ts +6 -0
  410. package/lib/modules/tld-document/services/api/models/file-preview-v1-response-body.model.d.ts +8 -0
  411. package/lib/modules/tld-document/services/api/models/get-file-translation-status-v1-response.model.d.ts +11 -0
  412. package/lib/modules/tld-document/services/api-v2/file-api-v2.service.d.ts +22 -0
  413. package/lib/modules/tld-document/services/api-v2/models/file-category-v2.model.d.ts +4 -0
  414. package/lib/modules/tld-document/services/api-v2/models/file-translation-status-v2-response.model.d.ts +20 -0
  415. package/lib/modules/tld-document/services/index.d.ts +2 -0
  416. package/lib/modules/tld-document/services/tld-translate-file.service.d.ts +60 -0
  417. package/lib/modules/tld-document/tld-document.module.d.ts +19 -0
  418. package/lib/modules/tld-document/tld-file-translate-base.component.d.ts +29 -0
  419. package/lib/modules/tld-document/tld-translate-file-multiple/tld-translate-file-multiple.component.d.ts +40 -0
  420. package/lib/modules/tld-term/index.d.ts +6 -0
  421. package/lib/modules/tld-term/models/converted-collection-tooltip-key.model.d.ts +5 -0
  422. package/lib/modules/tld-term/models/converted-collection-type.model.d.ts +7 -0
  423. package/lib/modules/tld-term/models/index.d.ts +6 -0
  424. package/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.d.ts +15 -0
  425. package/lib/modules/tld-term/models/mt-collection-status.model.d.ts +5 -0
  426. package/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.d.ts +11 -0
  427. package/lib/modules/tld-term/models/term-api/tld-term-collection.model.d.ts +46 -0
  428. package/lib/modules/tld-term/models/tld-converted-collection.model.d.ts +43 -0
  429. package/lib/modules/tld-term/services/index.d.ts +3 -0
  430. package/lib/modules/tld-term/services/mt-collections-api.service.d.ts +13 -0
  431. package/lib/modules/tld-term/services/term-api.service.d.ts +15 -0
  432. package/lib/modules/tld-term/services/tld-term-collections.service.d.ts +57 -0
  433. package/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.d.ts +9 -0
  434. package/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.d.ts +39 -0
  435. package/lib/modules/tld-term/tld-term-create-collection-dialog/tld-term-create-collection-dialog.component.d.ts +20 -0
  436. package/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.d.ts +13 -0
  437. package/lib/modules/tld-term/tld-term-promotion/tld-term-promotion.component.d.ts +17 -0
  438. package/lib/modules/tld-term/tld-term.module.d.ts +22 -0
  439. package/lib/modules/tld-text/components/highlight-tree/highlight-tree.component.d.ts +27 -0
  440. package/lib/modules/tld-text/components/progress-indicator/progress-indicator.component.d.ts +20 -0
  441. package/lib/modules/tld-text/components/textarea-with-background/textarea-with-background.component.d.ts +40 -0
  442. package/lib/modules/tld-text/components/tld-dictionary/tld-dictionary.component.d.ts +24 -0
  443. package/lib/modules/tld-text/components/tld-translate-source/tld-translate-source.component.d.ts +36 -0
  444. package/lib/modules/tld-text/components/tld-translate-suggest/dialog/suggest-translation.model.d.ts +11 -0
  445. package/lib/modules/tld-text/components/tld-translate-suggest/dialog/tld-translate-suggest-dialog.component.d.ts +33 -0
  446. package/lib/modules/tld-text/components/tld-translate-suggest/tld-translate-suggest.component.d.ts +24 -0
  447. package/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.d.ts +104 -0
  448. package/lib/modules/tld-text/index.d.ts +8 -0
  449. package/lib/modules/tld-text/models/check-grammar-response-v2.model.d.ts +4 -0
  450. package/lib/modules/tld-text/models/dictionary.model.d.ts +28 -0
  451. package/lib/modules/tld-text/models/get-sentence-v1-response.model.d.ts +5 -0
  452. package/lib/modules/tld-text/models/grammar-check-base.model.d.ts +6 -0
  453. package/lib/modules/tld-text/models/grammar-check-meta.model.d.ts +5 -0
  454. package/lib/modules/tld-text/models/grammar-check-replacement.model.d.ts +5 -0
  455. package/lib/modules/tld-text/models/grammar-correction-v2.model.d.ts +9 -0
  456. package/lib/modules/tld-text/models/highlight-params.model.d.ts +10 -0
  457. package/lib/modules/tld-text/models/highlight-tree-type.model.d.ts +10 -0
  458. package/lib/modules/tld-text/models/highlight-tree.model.d.ts +22 -0
  459. package/lib/modules/tld-text/models/highlight.model.d.ts +10 -0
  460. package/lib/modules/tld-text/models/index.d.ts +10 -0
  461. package/lib/modules/tld-text/models/retranslate-params.model.d.ts +4 -0
  462. package/lib/modules/tld-text/models/source-text-changed.model.d.ts +6 -0
  463. package/lib/modules/tld-text/models/translate-paragraph-params.model.d.ts +6 -0
  464. package/lib/modules/tld-text/models/translate-paragraph-response-v1.model.d.ts +15 -0
  465. package/lib/modules/tld-text/models/translate-paragraph-response-v2.model.d.ts +9 -0
  466. package/lib/modules/tld-text/models/translate-paragraph-response.model.d.ts +7 -0
  467. package/lib/modules/tld-text/models/untranslated-paragraph.model.d.ts +4 -0
  468. package/lib/modules/tld-text/services/api/tld-translate-text-api.service.d.ts +24 -0
  469. package/lib/modules/tld-text/services/api-v2/tld-translate-text-api-v2.service.d.ts +17 -0
  470. package/lib/modules/tld-text/services/index.d.ts +1 -0
  471. package/lib/modules/tld-text/services/tld-translate-text.service.d.ts +104 -0
  472. package/lib/modules/tld-text/tld-text.module.d.ts +27 -0
  473. package/lib/modules/tld-text/utils/index.d.ts +1 -0
  474. package/lib/modules/tld-text/utils/models/existing-paragraph-info.model.d.ts +5 -0
  475. package/lib/modules/tld-text/utils/models/index.d.ts +1 -0
  476. package/lib/modules/tld-text/utils/tld-translate-text.utils.d.ts +9 -0
  477. package/lib/modules/tld-tooltip/index.d.ts +4 -0
  478. package/lib/modules/tld-tooltip/models/active-data.model.d.ts +24 -0
  479. package/lib/modules/tld-tooltip/models/domain.model.d.ts +8 -0
  480. package/lib/modules/tld-tooltip/models/index.d.ts +4 -0
  481. package/lib/modules/tld-tooltip/models/switcher-options.model.d.ts +14 -0
  482. package/lib/modules/tld-tooltip/models/system-metadata-keys.model.d.ts +5 -0
  483. package/lib/modules/tld-tooltip/models/vendor.model.d.ts +4 -0
  484. package/lib/modules/tld-tooltip/services/api/models/description.model.d.ts +4 -0
  485. package/lib/modules/tld-tooltip/services/api/models/language.model.d.ts +5 -0
  486. package/lib/modules/tld-tooltip/services/api/models/metadata.model.d.ts +4 -0
  487. package/lib/modules/tld-tooltip/services/api/models/name.model.d.ts +4 -0
  488. package/lib/modules/tld-tooltip/services/api/models/system.model.d.ts +14 -0
  489. package/lib/modules/tld-tooltip/services/api/tld-system-api.service.d.ts +15 -0
  490. package/lib/modules/tld-tooltip/services/api-v2/models/error.model.d.ts +4 -0
  491. package/lib/modules/tld-tooltip/services/api-v2/models/get-langauge-direction.d.ts +6 -0
  492. package/lib/modules/tld-tooltip/services/api-v2/models/language-direction.model.d.ts +7 -0
  493. package/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.d.ts +15 -0
  494. package/lib/modules/tld-tooltip/services/index.d.ts +1 -0
  495. package/lib/modules/tld-tooltip/services/tld-system.service.d.ts +57 -0
  496. package/lib/modules/tld-tooltip/tld-domain-list/tld-domain-list.component.d.ts +33 -0
  497. package/lib/modules/tld-tooltip/tld-tooltip.module.d.ts +25 -0
  498. package/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.d.ts +64 -0
  499. package/lib/modules/tld-tooltip/translation-system-picker/dropdown/translation-system-picker-dropdown.component.d.ts +44 -0
  500. package/lib/modules/tld-tooltip/translation-system-picker/dropdown-body/translation-system-picker-dropdown-body.component.d.ts +65 -0
  501. package/lib/modules/tld-tooltip/translation-system-picker/filter/translation-system-picker-filter.component.d.ts +17 -0
  502. package/lib/modules/tld-tooltip/translation-system-picker/index.d.ts +7 -0
  503. package/lib/modules/tld-tooltip/translation-system-picker/language-list/translation-system-picker-language-list.component.d.ts +14 -0
  504. package/lib/modules/tld-tooltip/translation-system-picker/models/dropdown-body-config.model.d.ts +11 -0
  505. package/lib/modules/tld-tooltip/translation-system-picker/models/grouped-language-item.d.ts +8 -0
  506. package/lib/modules/tld-tooltip/translation-system-picker/models/index.d.ts +5 -0
  507. package/lib/modules/tld-tooltip/translation-system-picker/models/opened-menu.d.ts +5 -0
  508. package/lib/modules/tld-tooltip/translation-system-picker/models/translated-language.model.d.ts +4 -0
  509. package/lib/modules/tld-tooltip/translation-system-picker/models/translated-system.model.d.ts +4 -0
  510. package/lib/modules/tld-tooltip/translation-system-picker/services/index.d.ts +1 -0
  511. package/lib/modules/tld-tooltip/translation-system-picker/services/translation-system-picker.service.d.ts +24 -0
  512. package/lib/modules/tld-tooltip/translation-system-picker/system-list/translation-system-picker-system-list.component.d.ts +13 -0
  513. package/lib/modules/tld-tooltip/translation-system-picker/system-picker-button/translation-system-picker-button.component.d.ts +10 -0
  514. package/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.d.ts +34 -0
  515. package/lib/modules/tld-translate-file/tld-translate-file.component.d.ts +37 -0
  516. package/lib/modules/tld-web/index.d.ts +2 -0
  517. package/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.d.ts +85 -0
  518. package/lib/modules/tld-web/tld-translate-web.service.d.ts +7 -0
  519. package/lib/modules/tld-web/tld-web.module.d.ts +14 -0
  520. package/lib/tld-translate-body/tld-translate-body.component.d.ts +23 -0
  521. package/lib/tld-translate.component.d.ts +65 -0
  522. package/lib/tld-translate.module.d.ts +23 -0
  523. package/package.json +40 -0
  524. package/public-api.d.ts +28 -0
  525. package/src/assets/webcomponent/styles.css +1 -0
  526. package/src/assets/webcomponent/tld-translate.js +3 -0
  527. package/src/assets/webtranslate/page-translate-widget.js +4934 -0
  528. package/src/assets/webtranslate/remove.png +0 -0
  529. package/src/assets/webtranslate/tilde_logo.png +0 -0
  530. package/src/assets/webtranslate/translate-website.js +393 -0
  531. package/src/assets/webtranslate/widget.css +139 -0
  532. package/src/styles/colors.scss +15 -0
  533. package/src/styles/fonts.scss +3 -0
  534. package/src/styles/mixin/border-default.scss +10 -0
  535. package/src/styles/mixin/tld-translate-accent-colors.scss +46 -0
  536. package/src/styles/mixin/tld-translate-colors.scss +7 -0
  537. package/src/styles/mixin/tld-translate-placeholders.scss +5 -0
  538. package/src/styles/mixin/tld-translate-primary-colors.scss +5 -0
  539. package/src/styles/styles.scss +377 -0
  540. package/src/styles/translator-borders.scss +28 -0
  541. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRleHQvY29tcG9uZW50cy9oaWdobGlnaHQtdHJlZS9oaWdobGlnaHQtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdGV4dC9jb21wb25lbnRzL2hpZ2hsaWdodC10cmVlL2hpZ2hsaWdodC10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQVEzRSxNQUFNLE9BQU8sc0JBQXNCO0lBVWpDLFlBQTZCLGdCQUFxQztRQUFyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBTnpELHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUlsQyxjQUFTLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7SUFFWCxDQUFDO0lBRXZFLFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQW9C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eEQsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDekQ7aUJBQ0k7Z0JBQ0gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzNELE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQzVEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBWTtRQUN6QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ25DLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN4RCxJQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBQztnQkFDMUQsT0FBTyxNQUFNLENBQUM7YUFDZjtZQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzttSEE1RlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsMlFDYm5DLHN5RUEyQ007MkZEOUJPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7MEdBTXJCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgVGxkSGlnaGxpZ2h0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJR3JhbW1hckNoZWNrUmVwbGFjZW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JhbW1hci1jaGVjay1yZXBsYWNlbWVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEhpZ2hsaWdodFBhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9oaWdobGlnaHQtcGFyYW1zLm1vZGVsJztcclxuaW1wb3J0IHsgSGlnaGxpZ2h0VHJlZVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlnaGxpZ2h0LXRyZWUtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IElIaWdobGlnaHRUcmVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hpZ2hsaWdodC10cmVlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLWhpZ2hsaWdodC10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGlnaGxpZ2h0LXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpZ2hsaWdodC10cmVlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFRyZWVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSB0cmVlOiBJSGlnaGxpZ2h0VHJlZTtcclxuICBASW5wdXQoKSBpc1NvdXJjZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjb3JyZWN0aW9uc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBncmFtQ2hlY2s6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VsZWN0U2VudGVuY2U6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIG9uUmVwbGFjZTogRXZlbnRFbWl0dGVyPElHcmFtbWFyQ2hlY2tSZXBsYWNlbWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogVGxkSGlnaGxpZ2h0U2VydmljZSkgeyB9XHJcblxyXG4gIG1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMub25Nb3VzZUV2ZW50KGV2ZW50LCB0aGlzLmlzU291cmNlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIG1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMub25Nb3VzZUV2ZW50KGV2ZW50LCB0aGlzLmlzU291cmNlLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBncmFtQ2hlY2tNZW51KHRyZWU6IElIaWdobGlnaHRUcmVlLCBtZW51VHJpZ2dlcj86IE1hdE1lbnVUcmlnZ2VyKSB7XHJcbiAgICBpZiAodHJlZS5ncmFtbWFyTWV0YSAmJiB0aGlzLmdyYW1DaGVjaykge1xyXG4gICAgICBtZW51VHJpZ2dlci5vcGVuTWVudSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVwbGFjZSh0cmVlOiBJSGlnaGxpZ2h0VHJlZSwgcmVwbGFjZW1lbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vblJlcGxhY2UubmV4dCh7XHJcbiAgICAgIGVuZEl4OiB0cmVlLmdyYW1tYXJNZXRhLmVuZEl4LFxyXG4gICAgICBwYXJhZ3JhcGhJeDogdHJlZS5wYXJhZ3JhcGhJeCA/PyB0cmVlLnJvb3Q/LnBhcmFncmFwaEl4LFxyXG4gICAgICByZXBsYWNlbWVudDogcmVwbGFjZW1lbnQsXHJcbiAgICAgIHN0YXJ0SXg6IHRyZWUuZ3JhbW1hck1ldGEuc3RhcnRJeFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwYXJlbnRDbGljayh0cmVlOiBJSGlnaGxpZ2h0VHJlZSkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0U2VudGVuY2UgJiYgdHJlZS50eXBlID09PSBIaWdobGlnaHRUcmVlVHlwZS5TRU5URU5DRSkge1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuY2hhbmdlU2VsZWN0ZWRUYXJnZXRTZW50ZW5jZSh7IHBhcmFncmFwaEl4OiB0cmVlLnBhcmFncmFwaEl4ID8/IHRyZWUucm9vdD8ucGFyYWdyYXBoSXgsIHNlbnRlbmNlSXg6IE51bWJlcih0cmVlLmVsZW1lbnRJZCkgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkU2VudGVuY2UodHJlZTogSUhpZ2hsaWdodFRyZWUpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdFNlbnRlbmNlICYmIHRyZWUudHlwZSA9PT0gSGlnaGxpZ2h0VHJlZVR5cGUuU0VOVEVOQ0VcclxuICAgICAgJiYgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnNlbGVjdGVkVGFyZ2V0U2VudGVuY2U/LnBhcmFncmFwaEl4ID09PSAodHJlZS5wYXJhZ3JhcGhJeCA/PyB0cmVlLnJvb3Q/LnBhcmFncmFwaEl4KVxyXG4gICAgICAmJiB0aGlzLmhpZ2hsaWdodFNlcnZpY2Uuc2VsZWN0ZWRUYXJnZXRTZW50ZW5jZS5zZW50ZW5jZUl4LnRvU3RyaW5nKCkgPT09IHRyZWUuZWxlbWVudElkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk1vdXNlRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIGlzU291cmNlOiBib29sZWFuLCBpc01vdXNlRW50ZXI6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcclxuICAgIGxldCBlbGVtZW50V2l0aFNpYmxpbmdzID0gW2VsZW1lbnRdO1xyXG5cclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodCkge1xyXG4gICAgICBsZXQgc2libGluZ1BhcmVudENsYXNzOiBzdHJpbmc7XHJcbiAgICAgIGlmIChpc1NvdXJjZSkge1xyXG4gICAgICAgIHNpYmxpbmdQYXJlbnRDbGFzcyA9IEhpZ2hsaWdodFBhcmFtcy50YXJnZXRIaWdobGlnaHRDbGFzcztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBzaWJsaW5nUGFyZW50Q2xhc3MgPSBIaWdobGlnaHRQYXJhbXMuc291cmNlSGlnaGxpZ2h0Q2xhc3M7XHJcbiAgICAgIH1cclxuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuZm9yRWFjaCgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoY2xhc3NOYW1lLmluY2x1ZGVzKEhpZ2hsaWdodFBhcmFtcy5zaWJsaW5nQ2xhc3MpKSB7XHJcbiAgICAgICAgICBjb25zdCBxdWVyeVNlbGVjdG9yID0gYC4ke3NpYmxpbmdQYXJlbnRDbGFzc30gLiR7Y2xhc3NOYW1lLnJlcGxhY2UoSGlnaGxpZ2h0UGFyYW1zLnNpYmxpbmdDbGFzcywgSGlnaGxpZ2h0UGFyYW1zLndvcmRDbGFzcyl9YDtcclxuICAgICAgICAgIGVsZW1lbnRXaXRoU2libGluZ3MgPSBlbGVtZW50V2l0aFNpYmxpbmdzLmNvbmNhdChBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3RvcikpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGVsZW1lbnRXaXRoU2libGluZ3MuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAvLyBuZWNlc3NhcnkgdG8gaGlnaGxpZ2h0IGFsc28gc2libGluZyBzZW50ZW5jZSwgbm90IG9ubHkgc2libGluZy5cclxuICAgICAgbGV0IHBhcmVudCA9IHRoaXMuZmluZFdvcmRQYXJlbnRTZW50ZW5jZShlbGVtZW50KTtcclxuXHJcbiAgICAgIGlmIChpc01vdXNlRW50ZXIpIHtcclxuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoSGlnaGxpZ2h0UGFyYW1zLmhvdmVyZWRDbGFzc05hbWUpO1xyXG4gICAgICAgIHBhcmVudD8uY2xhc3NMaXN0LmFkZChIaWdobGlnaHRQYXJhbXMuaG92ZXJlZENsYXNzTmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEhpZ2hsaWdodFBhcmFtcy5ob3ZlcmVkQ2xhc3NOYW1lKTtcclxuICAgICAgICBwYXJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoSGlnaGxpZ2h0UGFyYW1zLmhvdmVyZWRDbGFzc05hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFdvcmRQYXJlbnRTZW50ZW5jZShlbGVtZW50OiBhbnkpe1xyXG4gICAgY29uc3QgbWF4RGlzdGFuY2VUb1BhcmVudCA9IDI7XHJcbiAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1heERpc3RhbmNlVG9QYXJlbnQ7IGluZGV4KyspIHtcclxuICAgICAgaWYocGFyZW50LmNsYXNzTGlzdC5jb250YWlucyhIaWdobGlnaHRQYXJhbXMuc2VudGVuY2VDbGFzcykpe1xyXG4gICAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNoaWdobGlnaHRUcmVlIGxldC10cmVlPVwidHJlZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0cmVlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyZWUudGV4dFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJlZS5ncmFtbWFyTWV0YSAmJiBncmFtQ2hlY2tcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImdyYW1tYXItY2hlY2stbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydHUkFNTUFSX0NIRUNLX01FTlUuVElUTEUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByZXBsYWNlbWVudCBvZiB0cmVlLmdyYW1tYXJNZXRhLnJlcGxhY2VtZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwicmVwbGFjZSh0cmVlLCByZXBsYWNlbWVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVwbGFjZW1lbnR9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJ7e3RyZWUuY2xhc3N9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0cmVlLnRleHRcIiAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKCRldmVudClcIiAoY2xpY2spPVwiZ3JhbUNoZWNrTWVudSh0cmVlLCBtZW51VHJpZ2dlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoJGV2ZW50KVwiPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISh0cmVlLmdyYW1tYXJNZXRhICYmIGdyYW1DaGVjaylcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3t0cmVlLmNsYXNzfX1cIiBbaW5uZXJIVE1MXT1cInRyZWUudGV4dFwiIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VMZWF2ZSgkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWUudGV4dFwiPlxyXG4gICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmVlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieydzZWxlY3RlZC1zZW50ZW5jZSc6IGlzU2VsZWN0ZWRTZW50ZW5jZSh0cmVlKX1cIiBjbGFzcz1cImhpZ2hsaWdodC10cmVlLWNoaWxkLXdyYXBwZXIge3t0cmVlLmNsYXNzfX1cIlxyXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKCRldmVudClcIiAobW91c2VsZWF2ZSk9XCJtb3VzZUxlYXZlKCRldmVudClcIiAoY2xpY2spPVwicGFyZW50Q2xpY2sodHJlZSlcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jaGlsZCBbbmdGb3JPZl09XCJ0cmVlLmNoaWxkcmVuXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGlnaGxpZ2h0VHJlZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHRyZWU6IGNoaWxkIH1cIj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0cmVlXCIgY2xhc3M9XCJ0bGQtaGlnaGxpZ2h0LXRyZWVcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaWdobGlnaHRUcmVlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdHJlZTogdHJlZSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
@@ -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=