@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,398 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { saveAs } from 'file-saver';
3
+ import { InlineMessageType } from '@tilde-nlp/ngx-common';
4
+ import { of, Subject, throwError, timer } from 'rxjs';
5
+ import { catchError, mergeMap, retryWhen } from 'rxjs/operators';
6
+ import { FILE_API_SERVICE_TOKEN } from '../../../injection-tokens';
7
+ import { Common, ErrorCode, FileUploadErrorTypeEnum } from '../../tld-common/models';
8
+ import { TranslationStatuss } from '../models';
9
+ import { FileConversionTypes } from '../models/file-conversion-types.model';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../tld-common/services";
12
+ import * as i2 from "@angular/platform-browser";
13
+ import * as i3 from "../../tld-tooltip/services";
14
+ export class TldTranslateFileService {
15
+ constructor(fileApi, alerts, sanitizer, config, tldSystem) {
16
+ this.fileApi = fileApi;
17
+ this.alerts = alerts;
18
+ this.sanitizer = sanitizer;
19
+ this.config = config;
20
+ this.tldSystem = tldSystem;
21
+ this.translationFiles = [];
22
+ this.fileNames = [];
23
+ //for multiple file component
24
+ this.translatedCount = 0;
25
+ this.multipleFileUploadActive = false;
26
+ this._onFilesUploaded = new Subject();
27
+ // TODO. Configurable?
28
+ this._defaultStatusCheckTimeout = 1000;
29
+ // 0 is network error, should try again
30
+ this._retryErrorCodes = [0];
31
+ this._networkErrorMaxRetries = 2;
32
+ this._statusTimeouts = {};
33
+ this._onClear = new Subject();
34
+ this._supportedImageExtensions = ["png", "jpg", "jpeg", "bmp"];
35
+ this.filesUploading = [];
36
+ this._statusTimeouts[TranslationStatuss.EXTRACTING] = 1000;
37
+ this._statusTimeouts[TranslationStatuss.EXTRACTING] = 1000;
38
+ this._statusTimeouts[TranslationStatuss.INITIALIZING] = 1000;
39
+ this._statusTimeouts[TranslationStatuss.QUEUING] = 1000;
40
+ this._statusTimeouts[TranslationStatuss.SAVING] = 1000;
41
+ this._statusTimeouts[TranslationStatuss.TRANSLATING] = 1000;
42
+ this._statusTimeouts[TranslationStatuss.WAITING] = 10000;
43
+ }
44
+ /** Value to be set to true while loading source preview. At that time, translate button should be disabled. */
45
+ get isUploadingFile() { return this.filesUploading.length > 0; }
46
+ ;
47
+ get disableTranslateButton() {
48
+ return this.translationStarted || this.isUploadingFile;
49
+ }
50
+ // clears all loaded data
51
+ clear() {
52
+ const fileArr = this.translationFiles;
53
+ fileArr.forEach((file) => {
54
+ file.translating = false;
55
+ this.remove(file);
56
+ });
57
+ this.clearParams();
58
+ }
59
+ onClear() {
60
+ return this._onClear.asObservable();
61
+ }
62
+ onFilesUploaded() {
63
+ return this._onFilesUploaded.asObservable();
64
+ }
65
+ remove(file) {
66
+ // file.translating needs to be set, so no other get status requests are sent to server.
67
+ file.translating = false;
68
+ const ix = this.translationFiles.indexOf(file);
69
+ if (ix < 0) {
70
+ throw "Can't remove file";
71
+ }
72
+ const params = {
73
+ file: file
74
+ };
75
+ this.fileApi.remove(params).pipe(catchError((error) => {
76
+ if (error.status === 404) {
77
+ this.alerts.unhandeledError({ ErrorCode: FileUploadErrorTypeEnum.E_404_REMOVE });
78
+ }
79
+ return of();
80
+ })).subscribe();
81
+ this.translationFiles.splice(ix, 1);
82
+ this.fileNames.splice(ix, 1);
83
+ if (this.translationFiles.length == 0) {
84
+ this.clear();
85
+ }
86
+ else {
87
+ this.hasAnyImageOrPdf();
88
+ }
89
+ }
90
+ downloadTarget(translationFile, fileMeta) {
91
+ if (translationFile.isDownloading) {
92
+ return;
93
+ }
94
+ translationFile.isDownloading = true;
95
+ const downloadParams = {
96
+ id: translationFile.id,
97
+ fileMeta: fileMeta
98
+ };
99
+ this.fileApi.download(downloadParams).subscribe((response) => {
100
+ translationFile.isDownloading = false;
101
+ saveAs(response, fileMeta ? fileMeta.fileName : translationFile.originalFileName);
102
+ }, (error) => {
103
+ this.onError(error, translationFile);
104
+ });
105
+ }
106
+ downloadSource(translationFile) {
107
+ if (!translationFile.sourceDownloadAvailable) {
108
+ console.error("Source download unavailable.");
109
+ return;
110
+ }
111
+ const convertedFileName = this.convertedSourceFileName(translationFile.originalFileName);
112
+ translationFile.isDownloadingSource = true;
113
+ const downloadParams = {
114
+ id: translationFile.id,
115
+ fileMeta: { fileName: convertedFileName }
116
+ };
117
+ this.fileApi.download(downloadParams).subscribe((response) => {
118
+ translationFile.isDownloadingSource = false;
119
+ saveAs(response, convertedFileName);
120
+ }, (error) => {
121
+ this.onError(error, translationFile);
122
+ });
123
+ }
124
+ loadFilePreview(file) {
125
+ const filesAllowed = this.config.fileConfig.numberOfFilesAllowed;
126
+ const fileName = file.name;
127
+ if (this.translationFiles.length >= filesAllowed) {
128
+ const errorCode = "ERRORS." + (filesAllowed > 1 ? "MAX_NUMBER_OF_FILES" : "INCREASE_MAX_NUMBER_OF_FILES");
129
+ this.alerts.error(errorCode, null, { link: this.config.coreConfig.registerLink, limit: filesAllowed });
130
+ return null;
131
+ }
132
+ if (this.fileNames.includes(fileName)) {
133
+ this.alerts.error("ERRORS.FILE_ALREADY_ADDED", null, { fileName: file.name });
134
+ return null;
135
+ }
136
+ this.filesUploading.push(fileName);
137
+ const translationFile = {
138
+ originalFileName: fileName,
139
+ // name: fileName,
140
+ originalExtension: Common.getFileExtension(fileName),
141
+ translationStatuss: TranslationStatuss.UPLOADING,
142
+ file,
143
+ messages: []
144
+ };
145
+ this.translationFiles.push(translationFile);
146
+ this.fileNames.push(fileName);
147
+ const isImage = this._supportedImageExtensions.includes(Common.getFileExtension(translationFile.originalFileName));
148
+ if (isImage) {
149
+ this.anyImageFileLoaded = true;
150
+ translationFile.fileType = FileConversionTypes.IMAGE;
151
+ }
152
+ const isPdf = "pdf" === Common.getFileExtension(translationFile.originalFileName);
153
+ if (isPdf) {
154
+ this.anyPdfFileLoaded = true;
155
+ translationFile.fileType = FileConversionTypes.PDF;
156
+ }
157
+ this.fileApi.sourceFilePreview(translationFile).subscribe((resp) => {
158
+ if (resp.isFilePreviewLoaded) {
159
+ translationFile.translationStatuss = TranslationStatuss.UPLOADED;
160
+ this.fileUploaded(fileName);
161
+ this.filePreviewAlerts(isPdf, resp.wordCount);
162
+ }
163
+ this.onFilePreviewLoad(resp, translationFile);
164
+ }, (error) => {
165
+ this.remove(translationFile);
166
+ this.alerts.unhandeledError(error);
167
+ throw error;
168
+ });
169
+ return translationFile;
170
+ }
171
+ translateButtonClick(active) {
172
+ this.translationStarted = true;
173
+ this.translationFiles.forEach((file) => {
174
+ this.startFileTranslation(active, file);
175
+ });
176
+ }
177
+ startFileTranslation(activeSystem, translationFile) {
178
+ if (!this.canStartTranslation(translationFile)) {
179
+ console.error("Could not start file translation!");
180
+ return;
181
+ }
182
+ this.activeSystem = this.tldSystem.getActiveSystemObj();
183
+ translationFile.translationStarted = true;
184
+ translationFile.translating = true;
185
+ // quite weird. Response can be structure with success and error params and it can also be plain string in success.
186
+ const params = {
187
+ file: translationFile,
188
+ system: activeSystem.system
189
+ };
190
+ this.fileApi.startTranslation(params).pipe(catchError((error) => {
191
+ this.fileApiError(translationFile, error);
192
+ return of(null);
193
+ // throw error;
194
+ })).subscribe((response) => {
195
+ // something gone wrong
196
+ if (!response) {
197
+ return;
198
+ }
199
+ translationFile.id = response;
200
+ translationFile.translationStartedOnServer = true;
201
+ this.checkTranslationProgress(translationFile);
202
+ });
203
+ }
204
+ convertedSourceFileName(fileName) {
205
+ const postFix = "_converted.docx";
206
+ fileName = fileName.slice(0, fileName.lastIndexOf("."));
207
+ const convertedFileName = fileName + postFix;
208
+ return convertedFileName;
209
+ }
210
+ fileUploadError(error) {
211
+ const params = {
212
+ fileName: error.fileName,
213
+ maxSizeMB: Common.bytesToMb(this.config.fileConfig.maxSize),
214
+ formats: this.config.fileConfig.allowedFileTypes.join(", "),
215
+ registerLink: this.config.coreConfig.registerLink
216
+ };
217
+ this.alerts.error(`ERRORS.FILE_UPLOAD.${error.code}`, null, params);
218
+ console.error(error);
219
+ }
220
+ // checks all necessary params that are responsible wheter it is allowed to start new translation.
221
+ canStartTranslation(translationFile) {
222
+ return translationFile.tmpName && !translationFile.translating;
223
+ }
224
+ checkTranslationProgress(translationFile) {
225
+ const finishedStatus = TranslationStatuss.COMPLETED;
226
+ const params = {
227
+ file: translationFile,
228
+ srcLang: this.activeSystem.sourceLanguage,
229
+ trgLang: this.activeSystem.targetLanguage
230
+ };
231
+ this.fileApi.getStatus(params)
232
+ .pipe(
233
+ // If network error, check again because file has not failed.
234
+ // this code needs to be tested, because cant repeat it
235
+ retryWhen((observables) => {
236
+ return observables.pipe(mergeMap((error, i) => {
237
+ if (i < this._networkErrorMaxRetries && this._retryErrorCodes.includes(error.status)) {
238
+ return timer(this._defaultStatusCheckTimeout);
239
+ }
240
+ return throwError(error);
241
+ }));
242
+ }))
243
+ .subscribe((response) => {
244
+ if (response.systemId && response.systemId !== this.activeSystem.id) {
245
+ this.tldSystem.changeSystem(response.systemId, false);
246
+ this.activeSystem = this.tldSystem.getActiveSystemObj();
247
+ }
248
+ translationFile.translationStatuss = response.translationStatuss;
249
+ translationFile.sourceDownloadAvailable = response.sourceDownloadAvailable;
250
+ translationFile.progress = response.progress;
251
+ translationFile.availableExtensions = response.extensions;
252
+ if (translationFile.translationStatuss == TranslationStatuss.ERROR) {
253
+ const error = { ErrorCode: response.substatus ?? ErrorCode.E_FAILED_IN_TRANSLATION };
254
+ this.fileApiError(translationFile, error);
255
+ //throw error;
256
+ }
257
+ else if (translationFile.translationStatuss === finishedStatus) {
258
+ this.translatedCount += 1;
259
+ //translationFile.name = response.name;
260
+ translationFile.downloadAvailable = true;
261
+ if (!this.multipleFileUploadActive) {
262
+ this.translatedDocPreview(translationFile);
263
+ }
264
+ //translationFile.availableExtensions = this.getExtensionArray(response.translations, translationFile.name);
265
+ }
266
+ else {
267
+ let timeout = this._defaultStatusCheckTimeout;
268
+ if (this.config.fileConfig.fileDownloadTimeouts && this.config.fileConfig.fileDownloadTimeouts[translationFile.translationStatuss]) {
269
+ timeout = this.config.fileConfig.fileDownloadTimeouts[translationFile.translationStatuss];
270
+ }
271
+ else if (this._statusTimeouts && this._statusTimeouts[translationFile.translationStatuss]) {
272
+ timeout = this._statusTimeouts[translationFile.translationStatuss];
273
+ }
274
+ setTimeout(() => {
275
+ if (!translationFile.translating) {
276
+ return;
277
+ }
278
+ this.checkTranslationProgress(translationFile);
279
+ }, timeout);
280
+ }
281
+ }, (error) => {
282
+ translationFile.translationStatuss = TranslationStatuss.ERROR;
283
+ this.onTranslationFileError(translationFile, error);
284
+ });
285
+ }
286
+ onFilePreviewLoad(data, translationFile) {
287
+ translationFile.isFilePreviewLoaded = data.isFilePreviewLoaded;
288
+ translationFile.tmpName = data.tmpName;
289
+ translationFile.sourcePreviewHasHtml = data.sourcePreviewHasHtml;
290
+ translationFile.sourcePreview = this.sanitizer.bypassSecurityTrustHtml(data.sourcePreview);
291
+ translationFile.filePreviewProgress = data.percentDone;
292
+ }
293
+ translatedDocPreview(translationFile) {
294
+ const params = {
295
+ fileName: translationFile.originalFileName,
296
+ translationDocId: translationFile.id
297
+ };
298
+ this.fileApi.translatedDocumentPreview(params)
299
+ .subscribe((response) => {
300
+ translationFile.translating = false;
301
+ if (!response.success) {
302
+ console.error(response.error);
303
+ this.alerts.unhandeledError(response.error);
304
+ }
305
+ if (response.preview) {
306
+ translationFile.translatedPreview = this.sanitizer.bypassSecurityTrustHtml(response.preview);
307
+ }
308
+ else {
309
+ translationFile.translatedPreview = null;
310
+ }
311
+ });
312
+ }
313
+ fileApiError(translationFile, error) {
314
+ console.error(error);
315
+ translationFile.translating = false;
316
+ translationFile.translationStatuss = TranslationStatuss.ERROR;
317
+ this.onTranslationFileError(translationFile, error);
318
+ }
319
+ filePreviewAlerts(isPdf, wordCount) {
320
+ const maxWordCount = this.config.fileConfig.wordLimit;
321
+ const alertParams = {
322
+ registerLink: this.config.coreConfig.registerLink,
323
+ wordCount: maxWordCount,
324
+ appName: this.config.coreConfig.appName
325
+ };
326
+ if (this.config.fileConfig.showTranslationLimits) {
327
+ if (isPdf && this.config.fileConfig.ocrPageLimit) {
328
+ this.alerts.warning("TLD_TRANSLATE.PDF_PAGE_LIMIT_MSG", alertParams);
329
+ }
330
+ if (wordCount && maxWordCount && wordCount > maxWordCount) {
331
+ this.alerts.warning("TLD_TRANSLATE.DOC_WORD_CNT_LIMIT_MSG", alertParams);
332
+ }
333
+ }
334
+ }
335
+ onError(error, translationFile) {
336
+ if (translationFile) {
337
+ translationFile.isDownloading = false;
338
+ }
339
+ const errorForMessage = error.status === 404 ? { ErrorCode: FileUploadErrorTypeEnum.E_404 } : error;
340
+ this.onTranslationFileError(translationFile, errorForMessage);
341
+ }
342
+ fileUploaded(fileName) {
343
+ const fileIx = this.filesUploading.indexOf(fileName);
344
+ if (fileIx >= 0) {
345
+ this.filesUploading.splice(fileIx, 1);
346
+ }
347
+ if (this.filesUploading.length === 0) {
348
+ this._onFilesUploaded.next(null);
349
+ }
350
+ }
351
+ hasAnyImageOrPdf() {
352
+ let anyImage = false;
353
+ let anyPdf = false;
354
+ for (let i = 0; i < this.translationFiles.length && !(anyPdf && anyImage); i++) {
355
+ const file = this.translationFiles[i];
356
+ if (file.fileType === FileConversionTypes.IMAGE) {
357
+ anyImage = true;
358
+ }
359
+ else if (file.fileType === FileConversionTypes.PDF) {
360
+ anyPdf = true;
361
+ }
362
+ }
363
+ this.anyImageFileLoaded = anyImage;
364
+ this.anyPdfFileLoaded = anyPdf;
365
+ }
366
+ clearParams() {
367
+ this.translationStarted = false;
368
+ this.translationFiles = [];
369
+ this.anyPdfFileLoaded = false;
370
+ this.anyImageFileLoaded = false;
371
+ this.fileNames = [];
372
+ this.translatedCount = 0;
373
+ this.filesUploading = [];
374
+ this._onClear.next(null);
375
+ }
376
+ onTranslationFileError(translationFile, error) {
377
+ const message = this.alerts.findErrorTitleAndLocalizationKey(error);
378
+ const InlineMessage = {
379
+ title: message.title,
380
+ description: message.description,
381
+ type: InlineMessageType.ERROR,
382
+ localizationParams: { fileName: translationFile.originalFileName, ...this.alerts.defaultParams }
383
+ };
384
+ translationFile.messages.push(InlineMessage);
385
+ }
386
+ }
387
+ TldTranslateFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileService, deps: [{ token: FILE_API_SERVICE_TOKEN }, { token: i1.TldAlertService }, { token: i2.DomSanitizer }, { token: i1.TldTranslateConfigService }, { token: i3.TldSystemService }], target: i0.ɵɵFactoryTarget.Injectable });
388
+ TldTranslateFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileService, providedIn: 'root' });
389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileService, decorators: [{
390
+ type: Injectable,
391
+ args: [{
392
+ providedIn: 'root'
393
+ }]
394
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
395
+ type: Inject,
396
+ args: [FILE_API_SERVICE_TOKEN]
397
+ }] }, { type: i1.TldAlertService }, { type: i2.DomSanitizer }, { type: i1.TldTranslateConfigService }, { type: i3.TldSystemService }]; } });
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBdVAsTUFBTSx5QkFBeUIsQ0FBQztBQUsxVSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBTTVFLE1BQU0sT0FBTyx1QkFBdUI7SUE4QmxDLFlBQ21ELE9BQXdCLEVBQ3hELE1BQXVCLEVBQ2hDLFNBQXVCLEVBQ3ZCLE1BQWlDLEVBQ3hCLFNBQTJCO1FBSkssWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEQsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUN4QixjQUFTLEdB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LE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxNQUFNLGFBQWEsR0FBa0I7WUFDbkMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsS0FBSztZQUM3QixrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtTQUNqRyxDQUFDO1FBQ0YsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7b0hBamJVLHVCQUF1QixrQkErQnhCLHNCQUFzQjt3SEEvQnJCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWdDSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IElubGluZU1lc3NhZ2UsIElubGluZU1lc3NhZ2VUeXBlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1lcmdlTWFwLCByZXRyeVdoZW4gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgQ29tbW9uLCBFcnJvckNvZGUsIEZpbGVVcGxvYWRFcnJvclR5cGVFbnVtLCBJRG93bmxvYWRGaWxlUGFyYW1zLCBJRmlsZUFwaVNlcnZpY2UsIElGaWxlTWV0YSwgSUZpbGVVcGxvYWRFcnJvciwgSUdldEZpbGVTdGF0dXNQYXJhbXMsIElHZXRGaWxlVHJhbnNsYXRpb25TdGF0dXNSZXNwb25zZSwgSVJlbW92ZUZpbGVQYXJhbXMsIElTb3VyY2VGaWxlUHJldmlld1Jlc3BvbnNlLCBJU3RhcnRGaWxlVHJhbnNsYXRpb25QYXJhbXMsIElUbGRFcnJvciwgSVRyYW5zbGF0ZWREb2N1bWVudFByZXZpZXdQYXJhbXMgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFN5c3RlbSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vbW9kZWxzL3NlcnZpY2VzL3N5c3RlbS9zeXN0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgSUFjdGl2ZURhdGEgfSBmcm9tICcuLi8uLi90bGQtdG9vbHRpcC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblN0YXR1c3MgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWxlQ29udmVyc2lvblR5cGVzIH0gZnJvbSAnLi4vbW9kZWxzL2ZpbGUtY29udmVyc2lvbi10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IElUcmFuc2xhdGlvbkZpbGUgfSBmcm9tICcuLi9tb2RlbHMvdHJhbnNsYXRlLWZpbGUubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2Uge1xyXG5cclxuICB0cmFuc2xhdGlvblN0YXJ0ZWQ6IGJvb2xlYW47XHJcbiAgLyoqIFZhbHVlIHRvIGJlIHNldCB0byB0cnVlIHdoaWxlIGxvYWRpbmcgc291cmNlIHByZXZpZXcuIEF0IHRoYXQgdGltZSwgdHJhbnNsYXRlIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQuICovXHJcbiAgZ2V0IGlzVXBsb2FkaW5nRmlsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZmlsZXNVcGxvYWRpbmcubGVuZ3RoID4gMDsgfTtcclxuICB0cmFuc2xhdGlvbkZpbGVzOiBJVHJhbnNsYXRpb25GaWxlW10gPSBbXTtcclxuICBmaWxlTmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgZmlsZXNBZGRlZDogbnVtYmVyO1xyXG4gIGFueVBkZkZpbGVMb2FkZWQ6IGJvb2xlYW47XHJcbiAgYW55SW1hZ2VGaWxlTG9hZGVkOiBib29sZWFuO1xyXG4gIC8vZm9yIG11bHRpcGxlIGZpbGUgY29tcG9uZW50XHJcbiAgdHJhbnNsYXRlZENvdW50OiBudW1iZXIgPSAwO1xyXG4gIG11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgZGlzYWJsZVRyYW5zbGF0ZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCB8fCB0aGlzLmlzVXBsb2FkaW5nRmlsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uRmlsZXNVcGxvYWRlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIGFjdGl2ZVN5c3RlbTogU3lzdGVtO1xyXG4gIC8vIFRPRE8uIENvbmZpZ3VyYWJsZT9cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0U3RhdHVzQ2hlY2tUaW1lb3V0ID0gMTAwMDtcclxuICAvLyAwIGlzIG5ldHdvcmsgZXJyb3IsIHNob3VsZCB0cnkgYWdhaW5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXRyeUVycm9yQ29kZXMgPSBbMF07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbmV0d29ya0Vycm9yTWF4UmV0cmllcyA9IDI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzVGltZW91dHMgPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9vbkNsZWFyID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1cHBvcnRlZEltYWdlRXh0ZW5zaW9ucyA9IFtcInBuZ1wiLCBcImpwZ1wiLCBcImpwZWdcIiwgXCJibXBcIl07XHJcbiAgcHJpdmF0ZSBmaWxlc1VwbG9hZGluZzogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgZmlsZUFwaTogSUZpbGVBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRTeXN0ZW1TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuRVhUUkFDVElOR10gPSAxMDAwO1xyXG4gICAgdGhpcy5fc3RhdHVzVGltZW91dHNbVHJhbnNsYXRpb25TdGF0dXNzLkVYVFJBQ1RJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5JTklUSUFMSVpJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5RVUVVSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuU0FWSU5HXSA9IDEwMDA7XHJcbiAgICB0aGlzLl9zdGF0dXNUaW1lb3V0c1tUcmFuc2xhdGlvblN0YXR1c3MuVFJBTlNMQVRJTkddID0gMTAwMDtcclxuICAgIHRoaXMuX3N0YXR1c1RpbWVvdXRzW1RyYW5zbGF0aW9uU3RhdHVzcy5XQUlUSU5HXSA9IDEwMDAwO1xyXG4gIH1cclxuXHJcbiAgLy8gY2xlYXJzIGFsbCBsb2FkZWQgZGF0YVxyXG4gIGNsZWFyKCkge1xyXG4gICAgY29uc3QgZmlsZUFyciA9IHRoaXMudHJhbnNsYXRpb25GaWxlcztcclxuICAgIGZpbGVBcnIuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICBmaWxlLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucmVtb3ZlKGZpbGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGVhclBhcmFtcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29uQ2xlYXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzVXBsb2FkZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9vbkZpbGVzVXBsb2FkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoZmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgLy8gZmlsZS50cmFuc2xhdGluZyBuZWVkcyB0byBiZSBzZXQsIHNvIG5vIG90aGVyIGdldCBzdGF0dXMgcmVxdWVzdHMgYXJlIHNlbnQgdG8gc2VydmVyLlxyXG4gICAgZmlsZS50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXggPSB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuaW5kZXhPZihmaWxlKTtcclxuICAgIGlmIChpeCA8IDApIHtcclxuICAgICAgdGhyb3cgXCJDYW4ndCByZW1vdmUgZmlsZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtczogSVJlbW92ZUZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGZpbGU6IGZpbGVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5maWxlQXBpLnJlbW92ZShwYXJhbXMpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcih7IEVycm9yQ29kZTogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRV80MDRfUkVNT1ZFIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YoKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzLnNwbGljZShpeCwgMSk7XHJcbiAgICB0aGlzLmZpbGVOYW1lcy5zcGxpY2UoaXgsIDEpO1xyXG5cclxuICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uRmlsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaGFzQW55SW1hZ2VPclBkZigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBkb3dubG9hZFRhcmdldCh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUsIGZpbGVNZXRhOiBJRmlsZU1ldGEpIHtcclxuICAgIGlmICh0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNsYXRpb25GaWxlLmlzRG93bmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3QgZG93bmxvYWRQYXJhbXM6IElEb3dubG9hZEZpbGVQYXJhbXMgPSB7XHJcbiAgICAgIGlkOiB0cmFuc2xhdGlvbkZpbGUuaWQsXHJcbiAgICAgIGZpbGVNZXRhOiBmaWxlTWV0YVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5kb3dubG9hZChkb3dubG9hZFBhcmFtcykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBzYXZlQXMocmVzcG9uc2UsIGZpbGVNZXRhID8gZmlsZU1ldGEuZmlsZU5hbWUgOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5vbkVycm9yKGVycm9yLCB0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFNvdXJjZSh0cmFuc2xhdGlvbkZpbGU6IElUcmFuc2xhdGlvbkZpbGUpIHtcclxuXHJcbiAgICBpZiAoIXRyYW5zbGF0aW9uRmlsZS5zb3VyY2VEb3dubG9hZEF2YWlsYWJsZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiU291cmNlIGRvd25sb2FkIHVuYXZhaWxhYmxlLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29udmVydGVkRmlsZU5hbWUgPSB0aGlzLmNvbnZlcnRlZFNvdXJjZUZpbGVOYW1lKHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lKTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nU291cmNlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRvd25sb2FkUGFyYW1zOiBJRG93bmxvYWRGaWxlUGFyYW1zID0ge1xyXG4gICAgICBpZDogdHJhbnNsYXRpb25GaWxlLmlkLFxyXG4gICAgICBmaWxlTWV0YTogeyBmaWxlTmFtZTogY29udmVydGVkRmlsZU5hbWUgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmlsZUFwaS5kb3dubG9hZChkb3dubG9hZFBhcmFtcykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuaXNEb3dubG9hZGluZ1NvdXJjZSA9IGZhbHNlO1xyXG4gICAgICBzYXZlQXMocmVzcG9uc2UsIGNvbnZlcnRlZEZpbGVOYW1lKTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLm9uRXJyb3IoZXJyb3IsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBsb2FkRmlsZVByZXZpZXcoZmlsZTogRmlsZSk6IElUcmFuc2xhdGlvbkZpbGUge1xyXG4gICAgY29uc3QgZmlsZXNBbGxvd2VkID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy5udW1iZXJPZkZpbGVzQWxsb3dlZDtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG5cclxuICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uRmlsZXMubGVuZ3RoID49IGZpbGVzQWxsb3dlZCkge1xyXG4gICAgICBjb25zdCBlcnJvckNvZGUgPSBcIkVSUk9SUy5cIiArIChmaWxlc0FsbG93ZWQgPiAxID8gXCJNQVhfTlVNQkVSX09GX0ZJTEVTXCIgOiBcIklOQ1JFQVNFX01BWF9OVU1CRVJfT0ZfRklMRVNcIik7XHJcbiAgICAgIHRoaXMuYWxlcnRzLmVycm9yKGVycm9yQ29kZSwgbnVsbCwgeyBsaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGluaywgbGltaXQ6IGZpbGVzQWxsb3dlZCB9KTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZmlsZU5hbWVzLmluY2x1ZGVzKGZpbGVOYW1lKSkge1xyXG4gICAgICB0aGlzLmFsZXJ0cy5lcnJvcihcIkVSUk9SUy5GSUxFX0FMUkVBRFlfQURERURcIiwgbnVsbCwgeyBmaWxlTmFtZTogZmlsZS5uYW1lIH0pO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVzVXBsb2FkaW5nLnB1c2goZmlsZU5hbWUpO1xyXG4gICAgY29uc3QgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlID0ge1xyXG4gICAgICBvcmlnaW5hbEZpbGVOYW1lOiBmaWxlTmFtZSxcclxuICAgICAgLy8gbmFtZTogZmlsZU5hbWUsXHJcbiAgICAgIG9yaWdpbmFsRXh0ZW5zaW9uOiBDb21tb24uZ2V0RmlsZUV4dGVuc2lvbihmaWxlTmFtZSksXHJcbiAgICAgIHRyYW5zbGF0aW9uU3RhdHVzczogVHJhbnNsYXRpb25TdGF0dXNzLlVQTE9BRElORyxcclxuICAgICAgZmlsZSxcclxuICAgICAgbWVzc2FnZXM6IFtdXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzLnB1c2godHJhbnNsYXRpb25GaWxlKTtcclxuICAgIHRoaXMuZmlsZU5hbWVzLnB1c2goZmlsZU5hbWUpO1xyXG4gICAgY29uc3QgaXNJbWFnZSA9IHRoaXMuX3N1cHBvcnRlZEltYWdlRXh0ZW5zaW9ucy5pbmNsdWRlcyhDb21tb24uZ2V0RmlsZUV4dGVuc2lvbih0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSkpO1xyXG4gICAgaWYgKGlzSW1hZ2UpIHtcclxuICAgICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0cmFuc2xhdGlvbkZpbGUuZmlsZVR5cGUgPSBGaWxlQ29udmVyc2lvblR5cGVzLklNQUdFO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXNQZGYgPSBcInBkZlwiID09PSBDb21tb24uZ2V0RmlsZUV4dGVuc2lvbih0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSk7XHJcbiAgICBpZiAoaXNQZGYpIHtcclxuICAgICAgdGhpcy5hbnlQZGZGaWxlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmZpbGVUeXBlID0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREY7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGVBcGkuc291cmNlRmlsZVByZXZpZXcodHJhbnNsYXRpb25GaWxlKS5zdWJzY3JpYmUoKHJlc3ApID0+IHtcclxuICAgICAgaWYgKHJlc3AuaXNGaWxlUHJldmlld0xvYWRlZCkge1xyXG4gICAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuVVBMT0FERUQ7XHJcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkZWQoZmlsZU5hbWUpO1xyXG4gICAgICAgIHRoaXMuZmlsZVByZXZpZXdBbGVydHMoaXNQZGYsIHJlc3Aud29yZENvdW50KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uRmlsZVByZXZpZXdMb2FkKHJlc3AsIHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmUodHJhbnNsYXRpb25GaWxlKTtcclxuICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cmFuc2xhdGlvbkZpbGU7XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVCdXR0b25DbGljayhhY3RpdmU6IElBY3RpdmVEYXRhKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IHRydWU7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xyXG4gICAgICB0aGlzLnN0YXJ0RmlsZVRyYW5zbGF0aW9uKGFjdGl2ZSwgZmlsZSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc3RhcnRGaWxlVHJhbnNsYXRpb24oYWN0aXZlU3lzdGVtOiBJQWN0aXZlRGF0YSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICBpZiAoIXRoaXMuY2FuU3RhcnRUcmFuc2xhdGlvbih0cmFuc2xhdGlvbkZpbGUpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJDb3VsZCBub3Qgc3RhcnQgZmlsZSB0cmFuc2xhdGlvbiFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlU3lzdGVtID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGFydGVkID0gdHJ1ZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZyA9IHRydWU7XHJcbiAgICAvLyBxdWl0ZSB3ZWlyZC4gUmVzcG9uc2UgY2FuIGJlIHN0cnVjdHVyZSB3aXRoIHN1Y2Nlc3MgYW5kIGVycm9yIHBhcmFtcyBhbmQgaXQgY2FuIGFsc28gYmUgcGxhaW4gc3RyaW5nIGluIHN1Y2Nlc3MuXHJcbiAgICBjb25zdCBwYXJhbXM6IElTdGFydEZpbGVUcmFuc2xhdGlvblBhcmFtcyA9IHtcclxuICAgICAgZmlsZTogdHJhbnNsYXRpb25GaWxlLFxyXG4gICAgICBzeXN0ZW06IGFjdGl2ZVN5c3RlbS5zeXN0ZW1cclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuc3RhcnRUcmFuc2xhdGlvbihwYXJhbXMpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWxlQXBpRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgIC8vIHRocm93IGVycm9yO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBzdHJpbmcpID0+IHtcclxuICAgICAgLy8gc29tZXRoaW5nIGdvbmUgd3JvbmdcclxuICAgICAgaWYgKCFyZXNwb25zZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdHJhbnNsYXRpb25GaWxlLmlkID0gcmVzcG9uc2U7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXJ0ZWRPblNlcnZlciA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmNoZWNrVHJhbnNsYXRpb25Qcm9ncmVzcyh0cmFuc2xhdGlvbkZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0ZWRTb3VyY2VGaWxlTmFtZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBvc3RGaXggPSBcIl9jb252ZXJ0ZWQuZG9jeFwiO1xyXG4gICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zbGljZSgwLCBmaWxlTmFtZS5sYXN0SW5kZXhPZihcIi5cIikpO1xyXG4gICAgY29uc3QgY29udmVydGVkRmlsZU5hbWUgPSBmaWxlTmFtZSArIHBvc3RGaXg7XHJcbiAgICByZXR1cm4gY29udmVydGVkRmlsZU5hbWU7XHJcbiAgfVxyXG5cclxuICBmaWxlVXBsb2FkRXJyb3IoZXJyb3I6IElGaWxlVXBsb2FkRXJyb3IpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IGVycm9yLmZpbGVOYW1lLFxyXG4gICAgICBtYXhTaXplTUI6IENvbW1vbi5ieXRlc1RvTWIodGhpcy5jb25maWcuZmlsZUNvbmZpZy5tYXhTaXplKSxcclxuICAgICAgZm9ybWF0czogdGhpcy5jb25maWcuZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzLmpvaW4oXCIsIFwiKSxcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGlua1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbGVydHMuZXJyb3IoYEVSUk9SUy5GSUxFX1VQTE9BRC4ke2Vycm9yLmNvZGV9YCwgbnVsbCwgcGFyYW1zKTtcclxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2tzIGFsbCBuZWNlc3NhcnkgcGFyYW1zIHRoYXQgYXJlIHJlc3BvbnNpYmxlIHdoZXRlciBpdCBpcyBhbGxvd2VkIHRvIHN0YXJ0IG5ldyB0cmFuc2xhdGlvbi5cclxuICBwcml2YXRlIGNhblN0YXJ0VHJhbnNsYXRpb24odHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25GaWxlLnRtcE5hbWUgJiYgIXRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgY29uc3QgZmluaXNoZWRTdGF0dXMgPSBUcmFuc2xhdGlvblN0YXR1c3MuQ09NUExFVEVEO1xyXG4gICAgY29uc3QgcGFyYW1zOiBJR2V0RmlsZVN0YXR1c1BhcmFtcyA9IHtcclxuICAgICAgZmlsZTogdHJhbnNsYXRpb25GaWxlLFxyXG4gICAgICBzcmNMYW5nOiB0aGlzLmFjdGl2ZVN5c3RlbS5zb3VyY2VMYW5ndWFnZSxcclxuICAgICAgdHJnTGFuZzogdGhpcy5hY3RpdmVTeXN0ZW0udGFyZ2V0TGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkuZ2V0U3RhdHVzKHBhcmFtcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gSWYgbmV0d29yayBlcnJvciwgY2hlY2sgYWdhaW4gYmVjYXVzZSBmaWxlIGhhcyBub3QgZmFpbGVkLlxyXG4gICAgICAgIC8vIHRoaXMgY29kZSBuZWVkcyB0byBiZSB0ZXN0ZWQsIGJlY2F1c2UgY2FudCByZXBlYXQgaXRcclxuICAgICAgICByZXRyeVdoZW4oKG9ic2VydmFibGVzKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZXMucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKGVycm9yLCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLl9uZXR3b3JrRXJyb3JNYXhSZXRyaWVzICYmIHRoaXMuX3JldHJ5RXJyb3JDb2Rlcy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGltZXIodGhpcy5fZGVmYXVsdFN0YXR1c0NoZWNrVGltZW91dClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2U6IElHZXRGaWxlVHJhbnNsYXRpb25TdGF0dXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN5c3RlbUlkICYmIHJlc3BvbnNlLnN5c3RlbUlkICE9PSB0aGlzLmFjdGl2ZVN5c3RlbS5pZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VTeXN0ZW0ocmVzcG9uc2Uuc3lzdGVtSWQsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVTeXN0ZW0gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID0gcmVzcG9uc2UudHJhbnNsYXRpb25TdGF0dXNzO1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnNvdXJjZURvd25sb2FkQXZhaWxhYmxlID0gcmVzcG9uc2Uuc291cmNlRG93bmxvYWRBdmFpbGFibGU7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUucHJvZ3Jlc3MgPSByZXNwb25zZS5wcm9ncmVzcztcclxuICAgICAgICAgIHRyYW5zbGF0aW9uRmlsZS5hdmFpbGFibGVFeHRlbnNpb25zID0gcmVzcG9uc2UuZXh0ZW5zaW9ucztcclxuICAgICAgICAgIGlmICh0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID09IFRyYW5zbGF0aW9uU3RhdHVzcy5FUlJPUikge1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvcjogSVRsZEVycm9yID0geyBFcnJvckNvZGU6IHJlc3BvbnNlLnN1YnN0YXR1cyA/PyBFcnJvckNvZGUuRV9GQUlMRURfSU5fVFJBTlNMQVRJT04gfTtcclxuICAgICAgICAgICAgdGhpcy5maWxlQXBpRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgICAgICAgICAgIC8vdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpb25TdGF0dXNzID09PSBmaW5pc2hlZFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZWRDb3VudCArPSAxO1xyXG4gICAgICAgICAgICAvL3RyYW5zbGF0aW9uRmlsZS5uYW1lID0gcmVzcG9uc2UubmFtZTtcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25GaWxlLmRvd25sb2FkQXZhaWxhYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5tdWx0aXBsZUZpbGVVcGxvYWRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZWREb2NQcmV2aWV3KHRyYW5zbGF0aW9uRmlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy90cmFuc2xhdGlvbkZpbGUuYXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRoaXMuZ2V0RXh0ZW5zaW9uQXJyYXkocmVzcG9uc2UudHJhbnNsYXRpb25zLCB0cmFuc2xhdGlvbkZpbGUubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSB0aGlzLl9kZWZhdWx0U3RhdHVzQ2hlY2tUaW1lb3V0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyAmJiB0aGlzLmNvbmZpZy5maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzW3RyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3NdKSB7XHJcbiAgICAgICAgICAgICAgdGltZW91dCA9IHRoaXMuY29uZmlnLmZpbGVDb25maWcuZmlsZURvd25sb2FkVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fc3RhdHVzVGltZW91dHMgJiYgdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc10pIHtcclxuICAgICAgICAgICAgICB0aW1lb3V0ID0gdGhpcy5fc3RhdHVzVGltZW91dHNbdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzc107XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tUcmFuc2xhdGlvblByb2dyZXNzKHRyYW5zbGF0aW9uRmlsZSlcclxuICAgICAgICAgICAgfSwgdGltZW91dClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25GaWxlLnRyYW5zbGF0aW9uU3RhdHVzcyA9IFRyYW5zbGF0aW9uU3RhdHVzcy5FUlJPUjtcclxuICAgICAgICAgIHRoaXMub25UcmFuc2xhdGlvbkZpbGVFcnJvcih0cmFuc2xhdGlvbkZpbGUsIGVycm9yKTtcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkZpbGVQcmV2aWV3TG9hZChkYXRhOiBJU291cmNlRmlsZVByZXZpZXdSZXNwb25zZSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUuaXNGaWxlUHJldmlld0xvYWRlZCA9IGRhdGEuaXNGaWxlUHJldmlld0xvYWRlZDtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50bXBOYW1lID0gZGF0YS50bXBOYW1lO1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLnNvdXJjZVByZXZpZXdIYXNIdG1sID0gZGF0YS5zb3VyY2VQcmV2aWV3SGFzSHRtbDtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5zb3VyY2VQcmV2aWV3ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZGF0YS5zb3VyY2VQcmV2aWV3KTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS5maWxlUHJldmlld1Byb2dyZXNzID0gZGF0YS5wZXJjZW50RG9uZTtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYW5zbGF0ZWREb2NQcmV2aWV3KHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSkge1xyXG4gICAgY29uc3QgcGFyYW1zOiBJVHJhbnNsYXRlZERvY3VtZW50UHJldmlld1BhcmFtcyA9IHtcclxuICAgICAgZmlsZU5hbWU6IHRyYW5zbGF0aW9uRmlsZS5vcmlnaW5hbEZpbGVOYW1lLFxyXG4gICAgICB0cmFuc2xhdGlvbkRvY0lkOiB0cmFuc2xhdGlvbkZpbGUuaWRcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbGVBcGkudHJhbnNsYXRlZERvY3VtZW50UHJldmlldyhwYXJhbXMpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiB7IHN1Y2Nlc3M6IGJvb2xlYW4sIGVycm9yPzogc3RyaW5nLCBzdGF0dXM6IHN0cmluZywgcHJldmlldzogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UuZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5hbGVydHMudW5oYW5kZWxlZEVycm9yKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZS5wcmV2aWV3KSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChyZXNwb25zZS5wcmV2aWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRlZFByZXZpZXcgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZUFwaUVycm9yKHRyYW5zbGF0aW9uRmlsZTogSVRyYW5zbGF0aW9uRmlsZSwgZXJyb3I6IGFueSkge1xyXG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICB0cmFuc2xhdGlvbkZpbGUudHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgIHRyYW5zbGF0aW9uRmlsZS50cmFuc2xhdGlvblN0YXR1c3MgPSBUcmFuc2xhdGlvblN0YXR1c3MuRVJST1I7XHJcbiAgICB0aGlzLm9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlLCBlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVQcmV2aWV3QWxlcnRzKGlzUGRmOiBib29sZWFuLCB3b3JkQ291bnQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgbWF4V29yZENvdW50ID0gdGhpcy5jb25maWcuZmlsZUNvbmZpZy53b3JkTGltaXQ7XHJcbiAgICBjb25zdCBhbGVydFBhcmFtcyA9IHtcclxuICAgICAgcmVnaXN0ZXJMaW5rOiB0aGlzLmNvbmZpZy5jb3JlQ29uZmlnLnJlZ2lzdGVyTGluayxcclxuICAgICAgd29yZENvdW50OiBtYXhXb3JkQ291bnQsXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmNvcmVDb25maWcuYXBwTmFtZVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cykge1xyXG4gICAgICBpZiAoaXNQZGYgJiYgdGhpcy5jb25maWcuZmlsZUNvbmZpZy5vY3JQYWdlTGltaXQpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cy53YXJuaW5nKFwiVExEX1RSQU5TTEFURS5QREZfUEFHRV9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh3b3JkQ291bnQgJiYgbWF4V29yZENvdW50ICYmIHdvcmRDb3VudCA+IG1heFdvcmRDb3VudCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzLndhcm5pbmcoXCJUTERfVFJBTlNMQVRFLkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dcIiwgYWxlcnRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSwgdHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICBpZiAodHJhbnNsYXRpb25GaWxlKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uRmlsZS5pc0Rvd25sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JGb3JNZXNzYWdlID0gZXJyb3Iuc3RhdHVzID09PSA0MDQgPyB7IEVycm9yQ29kZTogRmlsZVVwbG9hZEVycm9yVHlwZUVudW0uRV80MDQgfSA6IGVycm9yO1xyXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uRmlsZUVycm9yKHRyYW5zbGF0aW9uRmlsZSwgZXJyb3JGb3JNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsZVVwbG9hZGVkKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZpbGVJeCA9IHRoaXMuZmlsZXNVcGxvYWRpbmcuaW5kZXhPZihmaWxlTmFtZSk7XHJcbiAgICBpZiAoZmlsZUl4ID49IDApIHtcclxuICAgICAgdGhpcy5maWxlc1VwbG9hZGluZy5zcGxpY2UoZmlsZUl4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkaW5nLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLl9vbkZpbGVzVXBsb2FkZWQubmV4dChudWxsKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBbnlJbWFnZU9yUGRmKCkge1xyXG4gICAgbGV0IGFueUltYWdlID0gZmFsc2U7XHJcbiAgICBsZXQgYW55UGRmID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhbnNsYXRpb25GaWxlcy5sZW5ndGggJiYgIShhbnlQZGYgJiYgYW55SW1hZ2UpOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IHRoaXMudHJhbnNsYXRpb25GaWxlc1tpXTtcclxuICAgICAgaWYgKGZpbGUuZmlsZVR5cGUgPT09IEZpbGVDb252ZXJzaW9uVHlwZXMuSU1BR0UpIHtcclxuICAgICAgICBhbnlJbWFnZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZmlsZS5maWxlVHlwZSA9PT0gRmlsZUNvbnZlcnNpb25UeXBlcy5QREYpIHtcclxuICAgICAgICBhbnlQZGYgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hbnlJbWFnZUZpbGVMb2FkZWQgPSBhbnlJbWFnZTtcclxuICAgIHRoaXMuYW55UGRmRmlsZUxvYWRlZCA9IGFueVBkZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJQYXJhbXMoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbkZpbGVzID0gW107XHJcbiAgICB0aGlzLmFueVBkZkZpbGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYW55SW1hZ2VGaWxlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbGVOYW1lcyA9IFtdO1xyXG4gICAgdGhpcy50cmFuc2xhdGVkQ291bnQgPSAwO1xyXG4gICAgdGhpcy5maWxlc1VwbG9hZGluZyA9IFtdO1xyXG4gICAgdGhpcy5fb25DbGVhci5uZXh0KG51bGwpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uVHJhbnNsYXRpb25GaWxlRXJyb3IodHJhbnNsYXRpb25GaWxlOiBJVHJhbnNsYXRpb25GaWxlLCBlcnJvcjogYW55KSB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5hbGVydHMuZmluZEVycm9yVGl0bGVBbmRMb2NhbGl6YXRpb25LZXkoZXJyb3IpO1xyXG4gICAgY29uc3QgSW5saW5lTWVzc2FnZTogSW5saW5lTWVzc2FnZSA9IHtcclxuICAgICAgdGl0bGU6IG1lc3NhZ2UudGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXNzYWdlLmRlc2NyaXB0aW9uLFxyXG4gICAgICB0eXBlOiBJbmxpbmVNZXNzYWdlVHlwZS5FUlJPUixcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IGZpbGVOYW1lOiB0cmFuc2xhdGlvbkZpbGUub3JpZ2luYWxGaWxlTmFtZSwgLi4udGhpcy5hbGVydHMuZGVmYXVsdFBhcmFtcyB9XHJcbiAgICB9O1xyXG4gICAgdHJhbnNsYXRpb25GaWxlLm1lc3NhZ2VzLnB1c2goSW5saW5lTWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FlexLayoutModule } from '@angular/flex-layout';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { CloseButtonModule, InlineMessageModule } from '@tilde-nlp/ngx-common';
6
+ import { VendorDisclaimerModule } from '../../components/shared/vendor-disclaimer/vendor-disclaimer.module';
7
+ import { MaterialModule } from '../material.module';
8
+ import { TldCommonModule } from '../tld-common/tld-common.module';
9
+ import { TldTranslateFileComponent } from '../tld-translate-file/tld-translate-file.component';
10
+ import { TldTranslateFileDownloadButtonComponent } from './download-button/download-button.component';
11
+ import { TldTranslateImageConversionHelpComponent } from './image-conversion-help/image-conversion-help.component';
12
+ import { TldTranslatePdfConversionHelpComponent } from './pdf-conversion-help/pdf-conversion-help.component';
13
+ import { TldFileTranslateBaseComponent } from './tld-file-translate-base.component';
14
+ import { TldTranslateFileMultipleComponent } from './tld-translate-file-multiple/tld-translate-file-multiple.component';
15
+ import * as i0 from "@angular/core";
16
+ export class TldDocumentModule {
17
+ }
18
+ TldDocumentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDocumentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ TldDocumentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TldDocumentModule, declarations: [TldTranslateFileComponent,
20
+ TldTranslateFileMultipleComponent,
21
+ TldTranslateFileDownloadButtonComponent,
22
+ TldTranslatePdfConversionHelpComponent,
23
+ TldTranslateImageConversionHelpComponent,
24
+ TldFileTranslateBaseComponent], imports: [CommonModule,
25
+ TldCommonModule,
26
+ TranslateModule,
27
+ FlexLayoutModule,
28
+ MaterialModule,
29
+ CloseButtonModule,
30
+ InlineMessageModule,
31
+ VendorDisclaimerModule], exports: [TldTranslateFileComponent,
32
+ TldTranslateFileMultipleComponent,
33
+ TldTranslateFileDownloadButtonComponent] });
34
+ TldDocumentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDocumentModule, imports: [CommonModule,
35
+ TldCommonModule,
36
+ TranslateModule,
37
+ FlexLayoutModule,
38
+ MaterialModule,
39
+ CloseButtonModule,
40
+ InlineMessageModule,
41
+ VendorDisclaimerModule] });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldDocumentModule, decorators: [{
43
+ type: NgModule,
44
+ args: [{
45
+ declarations: [
46
+ TldTranslateFileComponent,
47
+ TldTranslateFileMultipleComponent,
48
+ TldTranslateFileDownloadButtonComponent,
49
+ TldTranslatePdfConversionHelpComponent,
50
+ TldTranslateImageConversionHelpComponent,
51
+ TldFileTranslateBaseComponent
52
+ ],
53
+ imports: [
54
+ CommonModule,
55
+ TldCommonModule,
56
+ TranslateModule,
57
+ FlexLayoutModule,
58
+ MaterialModule,
59
+ CloseButtonModule,
60
+ InlineMessageModule,
61
+ VendorDisclaimerModule
62
+ ],
63
+ exports: [
64
+ TldTranslateFileComponent,
65
+ TldTranslateFileMultipleComponent,
66
+ TldTranslateFileDownloadButtonComponent
67
+ ]
68
+ }]
69
+ }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRvY3VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudC90bGQtZG9jdW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25ILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOztBQTRCeEgsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQXZCMUIseUJBQXlCO1FBQ3pCLGlDQUFpQztRQUNqQyx1Q0FBdUM7UUFDdkMsc0NBQXNDO1FBQ3RDLHdDQUF3QztRQUN4Qyw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLHNCQUFzQixhQUd0Qix5QkFBeUI7UUFDekIsaUNBQWlDO1FBQ2pDLHVDQUF1QzsrR0FHOUIsaUJBQWlCLFlBZjFCLFlBQVk7UUFDWixlQUFlO1FBQ2YsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixzQkFBc0I7MkZBUWIsaUJBQWlCO2tCQXpCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QixpQ0FBaUM7d0JBQ2pDLHVDQUF1Qzt3QkFDdkMsc0NBQXNDO3dCQUN0Qyx3Q0FBd0M7d0JBQ3hDLDZCQUE2QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QixpQ0FBaUM7d0JBQ2pDLHVDQUF1QztxQkFDeEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ2xvc2VCdXR0b25Nb2R1bGUsIElubGluZU1lc3NhZ2VNb2R1bGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBWZW5kb3JEaXNjbGFpbWVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvdmVuZG9yLWRpc2NsYWltZXIvdmVuZG9yLWRpc2NsYWltZXIubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUbGRDb21tb25Nb2R1bGUgfSBmcm9tICcuLi90bGQtY29tbW9uL3RsZC1jb21tb24ubW9kdWxlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4uL3RsZC10cmFuc2xhdGUtZmlsZS90bGQtdHJhbnNsYXRlLWZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kb3dubG9hZC1idXR0b24vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUltYWdlQ29udmVyc2lvbkhlbHBDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWNvbnZlcnNpb24taGVscC9pbWFnZS1jb252ZXJzaW9uLWhlbHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlUGRmQ29udmVyc2lvbkhlbHBDb21wb25lbnQgfSBmcm9tICcuL3BkZi1jb252ZXJzaW9uLWhlbHAvcGRmLWNvbnZlcnNpb24taGVscC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbGRGaWxlVHJhbnNsYXRlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vdGxkLWZpbGUtdHJhbnNsYXRlLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZU11bHRpcGxlQ29tcG9uZW50IH0gZnJvbSAnLi90bGQtdHJhbnNsYXRlLWZpbGUtbXVsdGlwbGUvdGxkLXRyYW5zbGF0ZS1maWxlLW11bHRpcGxlLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVGaWxlRG93bmxvYWRCdXR0b25Db21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVQZGZDb252ZXJzaW9uSGVscENvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUltYWdlQ29udmVyc2lvbkhlbHBDb21wb25lbnQsXHJcbiAgICBUbGRGaWxlVHJhbnNsYXRlQmFzZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGxkQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgQ2xvc2VCdXR0b25Nb2R1bGUsXHJcbiAgICBJbmxpbmVNZXNzYWdlTW9kdWxlLFxyXG4gICAgVmVuZG9yRGlzY2xhaW1lck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGxkVHJhbnNsYXRlRmlsZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFRsZFRyYW5zbGF0ZUZpbGVEb3dubG9hZEJ1dHRvbkNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZERvY3VtZW50TW9kdWxlIHsgfVxyXG4iXX0=