@testgorilla/tgo-coding-test 1.0.0 → 2.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 (353) hide show
  1. package/.eslintrc.json +46 -0
  2. package/jest.config.ts +26 -0
  3. package/ng-package.json +14 -0
  4. package/package.json +15 -31
  5. package/project.json +48 -0
  6. package/{index.d.ts → src/index.ts} +19 -2
  7. package/src/lib/components/.gitkeep +0 -0
  8. package/src/lib/components/code-editor/code-editor.component.html +10 -0
  9. package/src/lib/components/code-editor/code-editor.component.scss +21 -0
  10. package/src/lib/components/code-editor/code-editor.component.spec.ts +136 -0
  11. package/src/lib/components/code-editor/code-editor.component.ts +368 -0
  12. package/src/lib/components/code-editor/code-editor.mocks.ts +28 -0
  13. package/src/lib/components/code-editor/code-editor.service.spec.ts +160 -0
  14. package/src/lib/components/code-editor/code-editor.service.ts +94 -0
  15. package/src/lib/components/code-editor/helpers/c-helper.spec.ts +39 -0
  16. package/src/lib/components/code-editor/helpers/c-helper.ts +51 -0
  17. package/src/lib/components/code-editor/helpers/code-editor-helper.base.spec.ts +30 -0
  18. package/src/lib/components/code-editor/helpers/code-editor-helper.base.ts +16 -0
  19. package/src/lib/components/code-editor/helpers/code-editor-helper.mocks.ts +24 -0
  20. package/src/lib/components/code-editor/helpers/code-editor-helper.model.ts +67 -0
  21. package/src/lib/components/code-editor/helpers/cpp-helper.spec.ts +40 -0
  22. package/src/lib/components/code-editor/helpers/cpp-helper.ts +52 -0
  23. package/src/lib/components/code-editor/helpers/csharp-helper.spec.ts +42 -0
  24. package/src/lib/components/code-editor/helpers/csharp-helper.ts +55 -0
  25. package/src/lib/components/code-editor/helpers/go-helper.spec.ts +41 -0
  26. package/src/lib/components/code-editor/helpers/go-helper.ts +54 -0
  27. package/src/lib/components/code-editor/helpers/java-helper.spec.ts +41 -0
  28. package/src/lib/components/code-editor/helpers/java-helper.ts +54 -0
  29. package/src/lib/components/code-editor/helpers/javascript-helper.spec.ts +39 -0
  30. package/src/lib/components/code-editor/helpers/javascript-helper.ts +32 -0
  31. package/src/lib/components/code-editor/helpers/kotlin-helper.spec.ts +41 -0
  32. package/src/lib/components/code-editor/helpers/kotlin-helper.ts +54 -0
  33. package/src/lib/components/code-editor/helpers/php-helper.spec.ts +39 -0
  34. package/src/lib/components/code-editor/helpers/php-helper.ts +32 -0
  35. package/src/lib/components/code-editor/helpers/python-helper.spec.ts +39 -0
  36. package/src/lib/components/code-editor/helpers/python-helper.ts +32 -0
  37. package/src/lib/components/code-editor/helpers/r-helper.spec.ts +39 -0
  38. package/src/lib/components/code-editor/helpers/r-helper.ts +32 -0
  39. package/src/lib/components/code-editor/helpers/ruby-helper.spec.ts +39 -0
  40. package/src/lib/components/code-editor/helpers/ruby-helper.ts +32 -0
  41. package/src/lib/components/code-editor/helpers/scala-helper.spec.ts +41 -0
  42. package/src/lib/components/code-editor/helpers/scala-helper.ts +53 -0
  43. package/src/lib/components/code-editor/helpers/sql-helper.spec.ts +87 -0
  44. package/src/lib/components/code-editor/helpers/sql-helper.ts +44 -0
  45. package/src/lib/components/code-editor/helpers/swift-helper.spec.ts +40 -0
  46. package/src/lib/components/code-editor/helpers/swift-helper.ts +51 -0
  47. package/src/lib/components/code-editor/helpers/typescript-helper.spec.ts +40 -0
  48. package/src/lib/components/code-editor/helpers/typescript-helper.ts +52 -0
  49. package/src/lib/components/code-editor/models/code-editor.model.ts +9 -0
  50. package/src/lib/components/code-editor/models/coding-snapshot.model.ts +4 -0
  51. package/src/lib/components/coding-question/coding-question.component.html +78 -0
  52. package/src/lib/components/coding-question/coding-question.component.scss +75 -0
  53. package/src/lib/components/coding-question/coding-question.component.spec.ts +85 -0
  54. package/src/lib/components/coding-question/coding-question.component.ts +101 -0
  55. package/src/lib/components/coding-section/coding-section.component.html +82 -0
  56. package/src/lib/components/coding-section/coding-section.component.scss +64 -0
  57. package/src/lib/components/coding-section/coding-section.component.spec.ts +257 -0
  58. package/src/lib/components/coding-section/coding-section.component.ts +186 -0
  59. package/src/lib/components/coding-test.module.ts +124 -0
  60. package/src/lib/components/common/truncated-text/truncated-text.component.html +6 -0
  61. package/src/lib/components/common/truncated-text/truncated-text.component.scss +18 -0
  62. package/src/lib/components/common/truncated-text/truncated-text.component.spec.ts +84 -0
  63. package/src/lib/components/common/truncated-text/truncated-text.component.ts +36 -0
  64. package/src/lib/components/configurations/configurations.component.html +57 -0
  65. package/src/lib/components/configurations/configurations.component.scss +42 -0
  66. package/src/lib/components/configurations/configurations.component.spec.ts +186 -0
  67. package/src/lib/components/configurations/configurations.component.ts +97 -0
  68. package/src/lib/components/instructions/instructions.component.html +41 -0
  69. package/src/lib/components/instructions/instructions.component.scss +173 -0
  70. package/src/lib/components/instructions/instructions.component.spec.ts +106 -0
  71. package/src/lib/components/instructions/instructions.component.ts +137 -0
  72. package/src/lib/components/panel/panel.component.html +19 -0
  73. package/src/lib/components/panel/panel.component.scss +41 -0
  74. package/src/lib/components/panel/panel.component.spec.ts +40 -0
  75. package/src/lib/components/panel/panel.component.ts +33 -0
  76. package/src/lib/components/runnable-editor/runnable-editor.component.html +75 -0
  77. package/src/lib/components/runnable-editor/runnable-editor.component.scss +55 -0
  78. package/src/lib/components/runnable-editor/runnable-editor.component.spec.ts +124 -0
  79. package/src/lib/components/runnable-editor/runnable-editor.component.ts +154 -0
  80. package/src/lib/components/tests/test-cases/test-cases.component.html +135 -0
  81. package/src/lib/components/tests/test-cases/test-cases.component.scss +220 -0
  82. package/src/lib/components/tests/test-cases/test-cases.component.spec.ts +401 -0
  83. package/src/lib/components/tests/test-cases/test-cases.component.ts +204 -0
  84. package/src/lib/components/tests/test-cases-content/test-cases-content.component.html +94 -0
  85. package/src/lib/components/tests/test-cases-content/test-cases-content.component.scss +103 -0
  86. package/src/lib/components/tests/test-cases-content/test-cases-content.component.spec.ts +122 -0
  87. package/src/lib/components/tests/test-cases-content/test-cases-content.component.ts +101 -0
  88. package/src/lib/components/tests/test-cases-status/test-cases-status.component.html +16 -0
  89. package/src/lib/components/tests/test-cases-status/test-cases-status.component.scss +49 -0
  90. package/src/lib/components/tests/test-cases-status/test-cases-status.component.spec.ts +22 -0
  91. package/src/lib/components/tests/test-cases-status/test-cases-status.component.ts +17 -0
  92. package/src/lib/components/tests/test-results.component.html +119 -0
  93. package/src/lib/components/tests/test-results.component.scss +189 -0
  94. package/src/lib/components/tests/test-results.component.spec.ts +140 -0
  95. package/src/lib/components/tests/test-results.component.ts +97 -0
  96. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.html +96 -0
  97. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.scss +6 -0
  98. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.spec.ts +599 -0
  99. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.ts +278 -0
  100. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.html +36 -0
  101. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.scss +183 -0
  102. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.spec.ts +883 -0
  103. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.ts +578 -0
  104. package/{lib/config/index.d.ts → src/lib/config/index.ts} +1 -0
  105. package/src/lib/config/tgo-coding-test.config.ts +26 -0
  106. package/{lib/config/tgo-coding-test.provider.d.ts → src/lib/config/tgo-coding-test.provider.ts} +18 -6
  107. package/src/lib/config/tgo-coding-test.token.ts +21 -0
  108. package/src/lib/models/.gitkeep +0 -0
  109. package/src/lib/models/auto-saved-data.ts +51 -0
  110. package/src/lib/models/code-event.ts +17 -0
  111. package/src/lib/models/coderunner-execution-results.ts +58 -0
  112. package/src/lib/models/coding-lib.mocks.ts +246 -0
  113. package/src/lib/models/configs.ts +18 -0
  114. package/src/lib/models/language-change-action.ts +4 -0
  115. package/src/lib/models/lat-languages.ts +12 -0
  116. package/src/lib/models/mixpanel-events.ts +3 -0
  117. package/src/lib/models/mode.ts +5 -0
  118. package/src/lib/models/paste-data.ts +4 -0
  119. package/src/lib/models/programming-language.ts +9 -0
  120. package/src/lib/models/test-cases.ts +74 -0
  121. package/src/lib/models/theme.ts +5 -0
  122. package/src/lib/models/translations.ts +1 -0
  123. package/src/lib/models/view-mode.ts +6 -0
  124. package/{lib/pipes/memoize-func.pipe.d.ts → src/lib/pipes/memoize-func.pipe.ts} +14 -6
  125. package/src/lib/services/.gitkeep +0 -0
  126. package/src/lib/services/candidate-coding-test-services/candidature-api.service.spec.ts +40 -0
  127. package/src/lib/services/candidate-coding-test-services/candidature-api.service.ts +15 -0
  128. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.spec.ts +134 -0
  129. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.ts +105 -0
  130. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.spec.ts +161 -0
  131. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.ts +100 -0
  132. package/src/lib/services/candidate-coding-test-services/coding-test.service.spec.ts +1524 -0
  133. package/src/lib/services/candidate-coding-test-services/coding-test.service.ts +843 -0
  134. package/{lib/services/candidate-coding-test-services/index.d.ts → src/lib/services/candidate-coding-test-services/index.ts} +1 -1
  135. package/src/lib/services/coding-test-config.service.ts +48 -0
  136. package/src/lib/services/configurations.service.mocks.ts +77 -0
  137. package/src/lib/services/configurations.service.spec.ts +79 -0
  138. package/src/lib/services/configurations.service.ts +111 -0
  139. package/src/lib/services/index.ts +0 -0
  140. package/src/lib/services/lib-coding-test.service.spec.ts +265 -0
  141. package/src/lib/services/lib-coding-test.service.ts +157 -0
  142. package/src/lib/services/local-storage.service.mocks.ts +22 -0
  143. package/src/lib/services/storage.service.spec.ts +1119 -0
  144. package/src/lib/services/storage.service.ts +729 -0
  145. package/src/lib/services/test-cases.service.spec.ts +53 -0
  146. package/src/lib/services/test-cases.service.ts +29 -0
  147. package/src/lib/services/theme.service.spec.ts +76 -0
  148. package/src/lib/services/theme.service.ts +34 -0
  149. package/src/lib/styles/mixins.scss +86 -0
  150. package/src/lib/styles/styles.scss +112 -0
  151. package/src/lib/styles/variables.scss +105 -0
  152. package/src/lib/utils/.gitkeep +0 -0
  153. package/src/lib/utils/additional-languages/erlang.ts +115 -0
  154. package/src/lib/utils/resize-element.ts +15 -0
  155. package/src/lib/utils/time-to-ms.util.ts +10 -0
  156. package/src/test-setup.ts +3 -0
  157. package/tsconfig.json +19 -0
  158. package/tsconfig.lib.json +19 -0
  159. package/tsconfig.lib.prod.json +10 -0
  160. package/tsconfig.spec.json +17 -0
  161. package/esm2022/index.mjs +0 -12
  162. package/esm2022/lib/components/code-editor/code-editor.component.mjs +0 -335
  163. package/esm2022/lib/components/code-editor/code-editor.service.mjs +0 -72
  164. package/esm2022/lib/components/code-editor/helpers/c-helper.mjs +0 -40
  165. package/esm2022/lib/components/code-editor/helpers/code-editor-helper.base.mjs +0 -11
  166. package/esm2022/lib/components/code-editor/helpers/code-editor-helper.model.mjs +0 -2
  167. package/esm2022/lib/components/code-editor/helpers/cpp-helper.mjs +0 -41
  168. package/esm2022/lib/components/code-editor/helpers/csharp-helper.mjs +0 -42
  169. package/esm2022/lib/components/code-editor/helpers/go-helper.mjs +0 -42
  170. package/esm2022/lib/components/code-editor/helpers/index.mjs +0 -16
  171. package/esm2022/lib/components/code-editor/helpers/java-helper.mjs +0 -42
  172. package/esm2022/lib/components/code-editor/helpers/javascript-helper.mjs +0 -26
  173. package/esm2022/lib/components/code-editor/helpers/kotlin-helper.mjs +0 -42
  174. package/esm2022/lib/components/code-editor/helpers/php-helper.mjs +0 -26
  175. package/esm2022/lib/components/code-editor/helpers/python-helper.mjs +0 -26
  176. package/esm2022/lib/components/code-editor/helpers/r-helper.mjs +0 -26
  177. package/esm2022/lib/components/code-editor/helpers/ruby-helper.mjs +0 -26
  178. package/esm2022/lib/components/code-editor/helpers/scala-helper.mjs +0 -41
  179. package/esm2022/lib/components/code-editor/helpers/sql-helper.mjs +0 -34
  180. package/esm2022/lib/components/code-editor/helpers/swift-helper.mjs +0 -40
  181. package/esm2022/lib/components/code-editor/helpers/typescript-helper.mjs +0 -41
  182. package/esm2022/lib/components/code-editor/models/code-editor.model.mjs +0 -2
  183. package/esm2022/lib/components/code-editor/models/coding-snapshot.model.mjs +0 -2
  184. package/esm2022/lib/components/coding-question/coding-question.component.mjs +0 -126
  185. package/esm2022/lib/components/coding-section/coding-section.component.mjs +0 -188
  186. package/esm2022/lib/components/common/truncated-text/truncated-text.component.mjs +0 -38
  187. package/esm2022/lib/components/configurations/configurations.component.mjs +0 -97
  188. package/esm2022/lib/components/instructions/instructions.component.mjs +0 -139
  189. package/esm2022/lib/components/panel/panel.component.mjs +0 -34
  190. package/esm2022/lib/components/runnable-editor/runnable-editor.component.mjs +0 -169
  191. package/esm2022/lib/components/tests/test-cases/test-cases.component.mjs +0 -198
  192. package/esm2022/lib/components/tests/test-cases-content/test-cases-content.component.mjs +0 -96
  193. package/esm2022/lib/components/tests/test-cases-status/test-cases-status.component.mjs +0 -21
  194. package/esm2022/lib/components/tests/test-results.component.mjs +0 -127
  195. package/esm2022/lib/components/tgo-coding-test/tgo-coding-test.component.mjs +0 -280
  196. package/esm2022/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.mjs +0 -476
  197. package/esm2022/lib/config/index.mjs +0 -2
  198. package/esm2022/lib/config/tgo-coding-test.config.mjs +0 -2
  199. package/esm2022/lib/config/tgo-coding-test.provider.mjs +0 -34
  200. package/esm2022/lib/config/tgo-coding-test.token.mjs +0 -14
  201. package/esm2022/lib/models/auto-saved-data.mjs +0 -2
  202. package/esm2022/lib/models/code-event.mjs +0 -2
  203. package/esm2022/lib/models/coderunner-execution-results.mjs +0 -2
  204. package/esm2022/lib/models/configs.mjs +0 -2
  205. package/esm2022/lib/models/language-change-action.mjs +0 -2
  206. package/esm2022/lib/models/lat-languages.mjs +0 -3
  207. package/esm2022/lib/models/mixpanel-events.mjs +0 -2
  208. package/esm2022/lib/models/mode.mjs +0 -2
  209. package/esm2022/lib/models/paste-data.mjs +0 -2
  210. package/esm2022/lib/models/programming-language.mjs +0 -2
  211. package/esm2022/lib/models/test-cases.mjs +0 -7
  212. package/esm2022/lib/models/theme.mjs +0 -2
  213. package/esm2022/lib/models/translations.mjs +0 -2
  214. package/esm2022/lib/models/view-mode.mjs +0 -8
  215. package/esm2022/lib/pipes/memoize-func.pipe.mjs +0 -39
  216. package/esm2022/lib/services/candidate-coding-test-services/candidature-api.service.mjs +0 -19
  217. package/esm2022/lib/services/candidate-coding-test-services/coderunner-api.service.mjs +0 -58
  218. package/esm2022/lib/services/candidate-coding-test-services/coding-test-tour.service.mjs +0 -89
  219. package/esm2022/lib/services/candidate-coding-test-services/coding-test.service.mjs +0 -490
  220. package/esm2022/lib/services/candidate-coding-test-services/index.mjs +0 -5
  221. package/esm2022/lib/services/coding-test-config.service.mjs +0 -51
  222. package/esm2022/lib/services/configurations.service.mjs +0 -89
  223. package/esm2022/lib/services/lib-coding-test.service.mjs +0 -106
  224. package/esm2022/lib/services/storage.service.mjs +0 -624
  225. package/esm2022/lib/services/test-cases.service.mjs +0 -30
  226. package/esm2022/lib/services/theme.service.mjs +0 -36
  227. package/esm2022/lib/utils/additional-languages/erlang.mjs +0 -103
  228. package/esm2022/lib/utils/resize-element.mjs +0 -13
  229. package/esm2022/lib/utils/time-to-ms.util.mjs +0 -11
  230. package/esm2022/shared/index.mjs +0 -5
  231. package/esm2022/shared/lib/components/audio-animation/audio-animation.component.mjs +0 -114
  232. package/esm2022/shared/lib/components/audio-animation/index.mjs +0 -2
  233. package/esm2022/shared/lib/components/index.mjs +0 -3
  234. package/esm2022/shared/lib/components/vimeo-video/index.mjs +0 -2
  235. package/esm2022/shared/lib/components/vimeo-video/vimeo-video.component.mjs +0 -101
  236. package/esm2022/shared/lib/models/answer.mjs +0 -2
  237. package/esm2022/shared/lib/models/assessment.mjs +0 -2
  238. package/esm2022/shared/lib/models/environment.mjs +0 -2
  239. package/esm2022/shared/lib/models/index.mjs +0 -9
  240. package/esm2022/shared/lib/models/question-component.mjs +0 -2
  241. package/esm2022/shared/lib/models/question.mjs +0 -2
  242. package/esm2022/shared/lib/models/test.mjs +0 -2
  243. package/esm2022/shared/lib/models/translations.mjs +0 -2
  244. package/esm2022/shared/lib/models/window.mjs +0 -2
  245. package/esm2022/shared/lib/services/api/api.service.mjs +0 -97
  246. package/esm2022/shared/lib/services/api/mocked-api.service.mjs +0 -131
  247. package/esm2022/shared/lib/services/environment/environment.service.mjs +0 -13
  248. package/esm2022/shared/lib/services/index.mjs +0 -10
  249. package/esm2022/shared/lib/services/localization/languages.model.mjs +0 -19
  250. package/esm2022/shared/lib/services/localization/transloco-lazy-module-utils.mjs +0 -27
  251. package/esm2022/shared/lib/services/localization/transloco-testing.module.mjs +0 -11
  252. package/esm2022/shared/lib/services/media/media.service.mjs +0 -129
  253. package/esm2022/shared/lib/services/mixpanel/mixpanel.service.mjs +0 -30
  254. package/esm2022/shared/lib/services/theme/theme.service.mjs +0 -24
  255. package/esm2022/shared/test-mocks/assessment-test.mock.mjs +0 -112
  256. package/esm2022/shared/test-mocks/index.mjs +0 -3
  257. package/esm2022/shared/test-mocks/tgo-ui.mock.mjs +0 -39
  258. package/esm2022/testgorilla-tgo-coding-test.mjs +0 -5
  259. package/fesm2022/testgorilla-tgo-coding-test.mjs +0 -4526
  260. package/fesm2022/testgorilla-tgo-coding-test.mjs.map +0 -1
  261. package/lib/components/code-editor/code-editor.component.d.ts +0 -54
  262. package/lib/components/code-editor/code-editor.service.d.ts +0 -12
  263. package/lib/components/code-editor/helpers/c-helper.d.ts +0 -11
  264. package/lib/components/code-editor/helpers/code-editor-helper.base.d.ts +0 -8
  265. package/lib/components/code-editor/helpers/code-editor-helper.model.d.ts +0 -62
  266. package/lib/components/code-editor/helpers/cpp-helper.d.ts +0 -11
  267. package/lib/components/code-editor/helpers/csharp-helper.d.ts +0 -12
  268. package/lib/components/code-editor/helpers/go-helper.d.ts +0 -12
  269. package/lib/components/code-editor/helpers/java-helper.d.ts +0 -12
  270. package/lib/components/code-editor/helpers/javascript-helper.d.ts +0 -10
  271. package/lib/components/code-editor/helpers/kotlin-helper.d.ts +0 -12
  272. package/lib/components/code-editor/helpers/php-helper.d.ts +0 -10
  273. package/lib/components/code-editor/helpers/python-helper.d.ts +0 -10
  274. package/lib/components/code-editor/helpers/r-helper.d.ts +0 -10
  275. package/lib/components/code-editor/helpers/ruby-helper.d.ts +0 -10
  276. package/lib/components/code-editor/helpers/scala-helper.d.ts +0 -12
  277. package/lib/components/code-editor/helpers/sql-helper.d.ts +0 -10
  278. package/lib/components/code-editor/helpers/swift-helper.d.ts +0 -11
  279. package/lib/components/code-editor/helpers/typescript-helper.d.ts +0 -11
  280. package/lib/components/code-editor/models/code-editor.model.d.ts +0 -8
  281. package/lib/components/code-editor/models/coding-snapshot.model.d.ts +0 -4
  282. package/lib/components/coding-question/coding-question.component.d.ts +0 -45
  283. package/lib/components/coding-section/coding-section.component.d.ts +0 -52
  284. package/lib/components/common/truncated-text/truncated-text.component.d.ts +0 -13
  285. package/lib/components/configurations/configurations.component.d.ts +0 -40
  286. package/lib/components/instructions/instructions.component.d.ts +0 -48
  287. package/lib/components/panel/panel.component.d.ts +0 -12
  288. package/lib/components/runnable-editor/runnable-editor.component.d.ts +0 -53
  289. package/lib/components/tests/test-cases/test-cases.component.d.ts +0 -46
  290. package/lib/components/tests/test-cases-content/test-cases-content.component.d.ts +0 -26
  291. package/lib/components/tests/test-cases-status/test-cases-status.component.d.ts +0 -9
  292. package/lib/components/tests/test-results.component.d.ts +0 -33
  293. package/lib/components/tgo-coding-test/tgo-coding-test.component.d.ts +0 -69
  294. package/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.d.ts +0 -101
  295. package/lib/config/tgo-coding-test.config.d.ts +0 -24
  296. package/lib/config/tgo-coding-test.token.d.ts +0 -9
  297. package/lib/models/auto-saved-data.d.ts +0 -42
  298. package/lib/models/code-event.d.ts +0 -15
  299. package/lib/models/coderunner-execution-results.d.ts +0 -51
  300. package/lib/models/configs.d.ts +0 -15
  301. package/lib/models/language-change-action.d.ts +0 -4
  302. package/lib/models/lat-languages.d.ts +0 -8
  303. package/lib/models/mixpanel-events.d.ts +0 -3
  304. package/lib/models/mode.d.ts +0 -5
  305. package/lib/models/paste-data.d.ts +0 -4
  306. package/lib/models/programming-language.d.ts +0 -8
  307. package/lib/models/test-cases.d.ts +0 -67
  308. package/lib/models/theme.d.ts +0 -4
  309. package/lib/models/translations.d.ts +0 -1
  310. package/lib/models/view-mode.d.ts +0 -6
  311. package/lib/services/candidate-coding-test-services/candidature-api.service.d.ts +0 -10
  312. package/lib/services/candidate-coding-test-services/coderunner-api.service.d.ts +0 -18
  313. package/lib/services/candidate-coding-test-services/coding-test-tour.service.d.ts +0 -22
  314. package/lib/services/candidate-coding-test-services/coding-test.service.d.ts +0 -68
  315. package/lib/services/coding-test-config.service.d.ts +0 -38
  316. package/lib/services/configurations.service.d.ts +0 -37
  317. package/lib/services/lib-coding-test.service.d.ts +0 -69
  318. package/lib/services/storage.service.d.ts +0 -83
  319. package/lib/services/test-cases.service.d.ts +0 -12
  320. package/lib/services/theme.service.d.ts +0 -17
  321. package/lib/utils/additional-languages/erlang.d.ts +0 -37
  322. package/lib/utils/resize-element.d.ts +0 -2
  323. package/lib/utils/time-to-ms.util.d.ts +0 -1
  324. package/shared/index.d.ts +0 -4
  325. package/shared/lib/components/audio-animation/audio-animation.component.d.ts +0 -27
  326. package/shared/lib/components/audio-animation/index.d.ts +0 -1
  327. package/shared/lib/components/index.d.ts +0 -2
  328. package/shared/lib/components/vimeo-video/index.d.ts +0 -1
  329. package/shared/lib/components/vimeo-video/vimeo-video.component.d.ts +0 -24
  330. package/shared/lib/models/answer.d.ts +0 -17
  331. package/shared/lib/models/assessment.d.ts +0 -80
  332. package/shared/lib/models/environment.d.ts +0 -1
  333. package/shared/lib/models/index.d.ts +0 -8
  334. package/shared/lib/models/question-component.d.ts +0 -54
  335. package/shared/lib/models/question.d.ts +0 -102
  336. package/shared/lib/models/test.d.ts +0 -81
  337. package/shared/lib/models/translations.d.ts +0 -1
  338. package/shared/lib/models/window.d.ts +0 -6
  339. package/shared/lib/services/api/api.service.d.ts +0 -25
  340. package/shared/lib/services/api/mocked-api.service.d.ts +0 -35
  341. package/shared/lib/services/environment/environment.service.d.ts +0 -6
  342. package/shared/lib/services/index.d.ts +0 -9
  343. package/shared/lib/services/localization/languages.model.d.ts +0 -15
  344. package/shared/lib/services/localization/transloco-lazy-module-utils.d.ts +0 -11
  345. package/shared/lib/services/localization/transloco-testing.module.d.ts +0 -2
  346. package/shared/lib/services/media/media.service.d.ts +0 -29
  347. package/shared/lib/services/mixpanel/mixpanel.service.d.ts +0 -10
  348. package/shared/lib/services/theme/theme.service.d.ts +0 -8
  349. package/shared/test-mocks/assessment-test.mock.d.ts +0 -21
  350. package/shared/test-mocks/index.d.ts +0 -2
  351. package/shared/test-mocks/tgo-ui.mock.d.ts +0 -21
  352. /package/{assets → src/assets}/i18n/en.json +0 -0
  353. /package/{lib/components/code-editor/helpers/index.d.ts → src/lib/components/code-editor/helpers/index.ts} +0 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "./tsconfig.lib.json",
3
+ "compilerOptions": {
4
+ "declarationMap": false,
5
+ "rootDir": "../../"
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "module": "commonjs",
6
+ "target": "es2016",
7
+ "types": ["jest", "node"],
8
+ "resolveJsonModule": true,
9
+ "esModuleInterop": true,
10
+ "baseUrl": "../../",
11
+ "paths": {
12
+ "@testgorilla/tgo-test-shared": ["packages/tgo-coding-test/src/shared/index.ts"]
13
+ }
14
+ },
15
+ "files": ["src/test-setup.ts"],
16
+ "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts", "src/shared/**/*.ts"]
17
+ }
package/esm2022/index.mjs DELETED
@@ -1,12 +0,0 @@
1
- /*
2
- * Public API Surface of coding-test
3
- */
4
- export { TgoCodingTestComponent } from './lib/components/tgo-coding-test/tgo-coding-test.component';
5
- export { TgoCodingTestCandidateViewComponent } from './lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component';
6
- export { ViewMode } from './lib/models/view-mode';
7
- export { LibCodingTestService } from './lib/services/lib-coding-test.service';
8
- export { StorageCodingService } from './lib/services/storage.service';
9
- export { CodingTestConfigService } from './lib/services/coding-test-config.service';
10
- // Configuration exports
11
- export { provideTgoCodingTest, } from './lib/config';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDcEcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFZL0ksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWxELE9BQU8sRUFBRSxvQkFBb0IsRUFBbUIsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRix3QkFBd0I7QUFDeEIsT0FBTyxFQUVMLG9CQUFvQixHQUNyQixNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29kaW5nLXRlc3RcbiAqL1xuXG5leHBvcnQgeyBUZ29Db2RpbmdUZXN0Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy90Z28tY29kaW5nLXRlc3QvdGdvLWNvZGluZy10ZXN0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBUZ29Db2RpbmdUZXN0Q2FuZGlkYXRlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGdvLWNvZGluZy10ZXN0LWNhbmRpZGF0ZS12aWV3L3Rnby1jb2RpbmctdGVzdC1jYW5kaWRhdGUtdmlldy5jb21wb25lbnQnO1xuLy8gTm90ZTogQ29kaW5nVGVzdE1vZHVsZSBpcyBrZXB0IGludGVybmFsIGZvciBub3cgYW5kIG5vdCBleHBvc2VkIGluIHRoZSBwdWJsaWMgQVBJXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvZGluZy10ZXN0Lm1vZHVsZSc7XG5leHBvcnQgeyBDb25maWcgYXMgTGliQ29kaW5nQ29uZmlnIH0gZnJvbSAnLi9saWIvbW9kZWxzL2NvbmZpZ3MnO1xuZXhwb3J0IHtcbiAgQ3VzdG9tVGVzdENhc2UsXG4gIEV4YW1wbGVUZXN0Q2FzZSxcbiAgVGVzdENhc2VSZXN1bHQsXG4gIFRlc3RDYXNlRGVsZXRpb25BY3Rpb24sXG4gIFRlc3RDYXNlRGVsZXRpb25EYXRhLFxufSBmcm9tICcuL2xpYi9tb2RlbHMvdGVzdC1jYXNlcyc7XG5leHBvcnQgeyBUaGVtZXMgfSBmcm9tICcuL2xpYi9tb2RlbHMvdGhlbWUnO1xuZXhwb3J0IHsgVmlld01vZGUgfSBmcm9tICcuL2xpYi9tb2RlbHMvdmlldy1tb2RlJztcbmV4cG9ydCB7IExBVExhbmd1YWdlLCBMQVRMYW5ndWFnZXMgfSBmcm9tICcuL2xpYi9tb2RlbHMvbGF0LWxhbmd1YWdlcyc7XG5leHBvcnQgeyBDb2RlRWRpdG9yTGFuZ3VhZ2VzIH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb2RlLWVkaXRvci9oZWxwZXJzL2NvZGUtZWRpdG9yLWhlbHBlci5tb2RlbCc7XG5leHBvcnQgeyBNb2RlcyB9IGZyb20gJy4vbGliL21vZGVscy9tb2RlJztcbmV4cG9ydCB7IExpYkNvZGluZ1Rlc3RTZXJ2aWNlLCBSZXNldENvZGVBY3Rpb24gfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9saWItY29kaW5nLXRlc3Quc2VydmljZSc7XG5leHBvcnQgeyBTdG9yYWdlQ29kaW5nU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBDb2RpbmdUZXN0Q29uZmlnU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL2NvZGluZy10ZXN0LWNvbmZpZy5zZXJ2aWNlJztcblxuLy8gQ29uZmlndXJhdGlvbiBleHBvcnRzXG5leHBvcnQge1xuICBUZ29Db2RpbmdUZXN0Q29uZmlnLFxuICBwcm92aWRlVGdvQ29kaW5nVGVzdCxcbn0gZnJvbSAnLi9saWIvY29uZmlnJztcbiJdfQ==
@@ -1,335 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { FormsModule } from '@angular/forms';
5
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
6
- import { combineLatest, distinctUntilChanged, filter, first, interval, map, take } from 'rxjs';
7
- import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
8
- import { erlangLanguage } from '../../utils/additional-languages/erlang';
9
- import { ConfigurationsService } from '../../services/configurations.service';
10
- import { LibCodingTestService } from '../../services/lib-coding-test.service';
11
- import { StorageCodingService } from '../../services/storage.service';
12
- import { CodeEditorService } from './code-editor.service';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/forms";
15
- import * as i2 from "ngx-monaco-editor-v2";
16
- let CodeEditorComponent = class CodeEditorComponent {
17
- libCodingTestService = inject(LibCodingTestService);
18
- configurationsService = inject(ConfigurationsService);
19
- codeEditorService = inject(CodeEditorService);
20
- changeDetectorRef = inject(ChangeDetectorRef);
21
- StorageCodingService = inject(StorageCodingService);
22
- initCode;
23
- functionParams;
24
- functionName;
25
- returnType;
26
- hasCodingConfigPanel;
27
- isReadonly;
28
- autoHeight;
29
- shouldGenerateInitCode;
30
- set snapshot(snap) {
31
- if (snap) {
32
- this.currentSnapshot = snap;
33
- this.handleSnapshot(snap.text);
34
- }
35
- }
36
- pasteEvent = new EventEmitter();
37
- codeChange = new EventEmitter();
38
- codeEditorElRef;
39
- code = '';
40
- codePublished = '';
41
- codeLanguage = '';
42
- editorOptions = {
43
- theme: "vs-dark" /* MonacoColorTheme.Dark */,
44
- fontSize: '14',
45
- scrollBeyondLastLine: false,
46
- minimap: { enabled: false },
47
- fixedOverflowWidgets: true,
48
- insertSpaces: false,
49
- detectIndentation: false,
50
- automaticLayout: true,
51
- };
52
- editor;
53
- previousConfig = this.StorageCodingService.getSavedConfig();
54
- currentSnapshot;
55
- previousMonacoDecoration;
56
- pasteListener;
57
- contentChangedSub;
58
- ngOnInit() {
59
- if (!this.previousConfig) {
60
- this.previousConfig = this.configurationsService.getInitialConfig();
61
- }
62
- if (this.hasCodingConfigPanel) {
63
- this.updateIDEConfig();
64
- }
65
- this.listenUpdates();
66
- this.setupConfigs();
67
- this.setupCode();
68
- }
69
- ngOnChanges(changes) {
70
- if (typeof changes.initCode?.currentValue === 'string') {
71
- this.code = changes.initCode.currentValue;
72
- }
73
- }
74
- ngOnDestroy() {
75
- this.contentChangedSub?.dispose();
76
- this.pasteListener?.dispose();
77
- }
78
- initEditor(editor) {
79
- this.editor = editor;
80
- this.pasteListener = this.editor.onDidPaste(event => this.catchEvent(event));
81
- if (this.currentSnapshot) {
82
- this.handleSnapshot(this.currentSnapshot.text);
83
- }
84
- if (this.autoHeight) {
85
- this.listenContentHeight(editor);
86
- }
87
- }
88
- catchEvent(event) {
89
- const data = this.editor.getModel()?.getValueInRange(event.range);
90
- if (data) {
91
- this.pasteEvent.emit({ type: 'paste', data });
92
- }
93
- }
94
- publishCode(code) {
95
- if (code !== this.codePublished) {
96
- this.codePublished = code;
97
- this.codeChange.emit(this.codePublished);
98
- }
99
- }
100
- updateIDEConfig() {
101
- this.configurationsService.config$
102
- .pipe(distinctUntilChanged(), untilDestroyed(this))
103
- .subscribe((config) => {
104
- let configObject = {};
105
- // eslint-disable-next-line guard-for-in
106
- for (const key in config) {
107
- if (config[key] !== this.previousConfig[key]) {
108
- switch (key) {
109
- case "Color theme" /* FormattingOptions.ColorTheme */:
110
- configObject = {
111
- theme: config["Color theme" /* FormattingOptions.ColorTheme */] === "theme-default" /* Themes.Default */
112
- ? "vs" /* MonacoColorTheme.Light */
113
- : "vs-dark" /* MonacoColorTheme.Dark */,
114
- };
115
- break;
116
- case "Auto-complete" /* CodingAssistanceOptions.AutoComplete */:
117
- configObject = {
118
- quickSuggestions: {
119
- other: config["Auto-complete" /* CodingAssistanceOptions.AutoComplete */],
120
- },
121
- };
122
- break;
123
- case "Auto-brackets" /* CodingAssistanceOptions.AutoBrackets */:
124
- configObject = {
125
- autoClosingBrackets: config["Auto-brackets" /* CodingAssistanceOptions.AutoBrackets */] ? 'always' : 'never',
126
- };
127
- break;
128
- case "Tab size" /* FormattingOptions.TabSize */:
129
- configObject = {
130
- tabSize: config["Tab size" /* FormattingOptions.TabSize */],
131
- };
132
- break;
133
- case "Font size" /* FormattingOptions.FontSize */:
134
- configObject = {
135
- fontSize: config["Font size" /* FormattingOptions.FontSize */],
136
- };
137
- break;
138
- case "Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */:
139
- this.libCodingTestService.currentLanguage$.pipe(take(1)).subscribe(language => {
140
- if (language === "javascript" /* CodeEditorLanguages.Javascript */) {
141
- window['monaco'].languages.typescript.javascriptDefaults.setDiagnosticsOptions({
142
- noSemanticValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
143
- noSyntaxValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
144
- });
145
- }
146
- else if (language === "typescript" /* CodeEditorLanguages.Typescript */) {
147
- window['monaco'].languages.typescript.typescriptDefaults.setDiagnosticsOptions({
148
- noSemanticValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
149
- noSyntaxValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
150
- });
151
- }
152
- });
153
- break;
154
- }
155
- this.editorOptions = Object.assign({}, this.editorOptions, configObject);
156
- }
157
- }
158
- this.changeDetectorRef.detectChanges();
159
- this.previousConfig = config;
160
- });
161
- this.editorOptions = Object.assign({}, this.editorOptions, {
162
- automaticLayout: true,
163
- });
164
- }
165
- listenContentHeight(editor) {
166
- const updateHeight = () => {
167
- window.requestAnimationFrame(() => {
168
- const { width } = this.codeEditorElRef.nativeElement.getBoundingClientRect();
169
- const contentHeight = Math.min(1000, editor.getContentHeight());
170
- this.codeEditorElRef.nativeElement.style.height = `${contentHeight}px`;
171
- editor.layout({ width, height: contentHeight });
172
- });
173
- };
174
- this.contentChangedSub = editor.onDidContentSizeChange(updateHeight);
175
- updateHeight();
176
- }
177
- setupConfigs() {
178
- const { functionParams: params, functionName: name, returnType } = this;
179
- const config = this.previousConfig;
180
- const wordWrap = this.currentSnapshot ? 'on' : 'off';
181
- const theme = this.getInitialColorTheme(config, this.currentSnapshot);
182
- this.libCodingTestService.currentLanguage$.pipe(untilDestroyed(this)).subscribe((language) => {
183
- if (this.shouldGenerateInitCode) {
184
- this.codeEditorService.setHelper(language, { params, name, returnType });
185
- this.codeLanguage = this.codeEditorService.getEditorLang();
186
- }
187
- else {
188
- if (language === "c++" /* CodeEditorLanguages.Cpp */) {
189
- this.codeLanguage = "cpp" /* CodeEditorLanguages.CppEditor */;
190
- }
191
- else if (language === "c#" /* CodeEditorLanguages.CSharp */ || language === "c#_legacy" /* CodeEditorLanguages.CSharpLegacy */) {
192
- this.codeLanguage = "csharp" /* CodeEditorLanguages.CSharpEditor */;
193
- }
194
- else if (language === "sqlite3" /* CodeEditorLanguages.Sqlite */) {
195
- this.codeLanguage = "sql" /* CodeEditorLanguages.Sql */;
196
- }
197
- else {
198
- this.codeLanguage = language;
199
- }
200
- }
201
- this.editorOptions = Object.assign({}, this.editorOptions, {
202
- language: this.codeLanguage,
203
- });
204
- });
205
- this.editorOptions = Object.assign({}, this.editorOptions, {
206
- readOnly: this.isReadonly,
207
- quickSuggestions: {
208
- other: config["Auto-complete" /* CodingAssistanceOptions.AutoComplete */],
209
- },
210
- autoClosingBrackets: config["Auto-brackets" /* CodingAssistanceOptions.AutoBrackets */] ? 'always' : 'never',
211
- tabSize: config["Tab size" /* FormattingOptions.TabSize */],
212
- fontSize: config["Font size" /* FormattingOptions.FontSize */],
213
- theme,
214
- wordWrap,
215
- });
216
- const monacoLibraryReady$ = interval(100).pipe(map(() => window.monaco), filter(Boolean), first());
217
- combineLatest({
218
- monaco: monacoLibraryReady$,
219
- language: this.libCodingTestService.currentLanguage$,
220
- })
221
- .pipe(take(1))
222
- .subscribe(result => {
223
- if (result.language === "javascript" /* CodeEditorLanguages.Javascript */) {
224
- result.monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
225
- noSemanticValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
226
- noSyntaxValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
227
- });
228
- }
229
- else if (result.language === "typescript" /* CodeEditorLanguages.Typescript */) {
230
- result.monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({
231
- noSemanticValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
232
- noSyntaxValidation: !config["Error highlighting" /* CodingAssistanceOptions.ErrorHighlighting */],
233
- });
234
- }
235
- result.monaco.languages.register({ id: "erlang" /* CodeEditorLanguages.Erlang */ });
236
- result.monaco.languages.setMonarchTokensProvider("erlang" /* CodeEditorLanguages.Erlang */, erlangLanguage);
237
- });
238
- }
239
- getInitialColorTheme(config, snapshot) {
240
- let theme;
241
- if (snapshot) {
242
- theme = "vs-dark" /* MonacoColorTheme.Dark */;
243
- }
244
- else {
245
- theme = config["Color theme" /* FormattingOptions.ColorTheme */] === "theme-default" /* Themes.Default */ ? "vs" /* MonacoColorTheme.Light */ : "vs-dark" /* MonacoColorTheme.Dark */;
246
- }
247
- return theme;
248
- }
249
- setupCode(calledFromReset = false) {
250
- this.handleInitCode(calledFromReset);
251
- this.publishCode(this.code);
252
- }
253
- handleInitCode(calledFromReset = false) {
254
- if (calledFromReset) {
255
- this.code = this.libCodingTestService.getInitCode();
256
- }
257
- else if (this.initCode) {
258
- this.code = this.initCode;
259
- }
260
- else if (this.currentSnapshot) {
261
- return;
262
- }
263
- else if (this.shouldGenerateInitCode) {
264
- this.code = this.codeEditorService.getInitCode();
265
- }
266
- }
267
- listenUpdates() {
268
- this.libCodingTestService.codeReset$
269
- .pipe(filter(val => val === "confirm" /* ResetCodeAction.Confirm */), untilDestroyed(this))
270
- .subscribe(() => {
271
- this.setupCode(true);
272
- });
273
- }
274
- handleSnapshot(code) {
275
- this.code = code;
276
- if (!this.editor) {
277
- return;
278
- }
279
- this.editor.setValue(code); // make sure editor model has the latest value of the code
280
- if (this.previousMonacoDecoration) {
281
- this.previousMonacoDecoration.clear();
282
- }
283
- if (this.currentSnapshot.copied_text) {
284
- // if the snapshot contains copyPasted code, find it's range in monaco
285
- const matches = this.editor
286
- .getModel()
287
- .findMatches(this.currentSnapshot.copied_text, false, false, true, null, true);
288
- if (matches.length) {
289
- // if the range is found in editor model, decorate it with additional class to highlight on the ui
290
- this.previousMonacoDecoration = this.editor.createDecorationsCollection([
291
- {
292
- range: matches[0].range,
293
- options: { inlineClassName: 'copy-pasted-code' },
294
- },
295
- ]);
296
- }
297
- }
298
- }
299
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
300
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CodeEditorComponent, isStandalone: true, selector: "tgo-code-editor", inputs: { initCode: "initCode", functionParams: "functionParams", functionName: "functionName", returnType: "returnType", hasCodingConfigPanel: "hasCodingConfigPanel", isReadonly: "isReadonly", autoHeight: "autoHeight", shouldGenerateInitCode: "shouldGenerateInitCode", snapshot: "snapshot" }, outputs: { pasteEvent: "pasteEvent", codeChange: "codeChange" }, viewQueries: [{ propertyName: "codeEditorElRef", first: true, predicate: ["editor"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"container notranslate\" translate=\"no\">\n <ngx-monaco-editor\n #editor\n class=\"editor\"\n [options]=\"editorOptions\"\n [(ngModel)]=\"code\"\n (ngModelChange)=\"publishCode($event)\"\n (onInit)=\"initEditor($event)\"\n ></ngx-monaco-editor>\n</div>\n", styles: [":host{display:block;height:100%;max-width:100%;max-height:100%}.container{height:100%;background-color:var(--code-editor-background)}.editor{height:100%}.editor ::ng-deep .copy-pasted-code{background-color:#ff0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MonacoEditorModule }, { kind: "component", type: i2.EditorComponent, selector: "ngx-monaco-editor", inputs: ["options", "model"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
301
- };
302
- CodeEditorComponent = __decorate([
303
- UntilDestroy()
304
- ], CodeEditorComponent);
305
- export { CodeEditorComponent };
306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeEditorComponent, decorators: [{
307
- type: Component,
308
- args: [{ standalone: true, selector: 'tgo-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, MonacoEditorModule], template: "<div class=\"container notranslate\" translate=\"no\">\n <ngx-monaco-editor\n #editor\n class=\"editor\"\n [options]=\"editorOptions\"\n [(ngModel)]=\"code\"\n (ngModelChange)=\"publishCode($event)\"\n (onInit)=\"initEditor($event)\"\n ></ngx-monaco-editor>\n</div>\n", styles: [":host{display:block;height:100%;max-width:100%;max-height:100%}.container{height:100%;background-color:var(--code-editor-background)}.editor{height:100%}.editor ::ng-deep .copy-pasted-code{background-color:#ff0}\n"] }]
309
- }], propDecorators: { initCode: [{
310
- type: Input
311
- }], functionParams: [{
312
- type: Input
313
- }], functionName: [{
314
- type: Input
315
- }], returnType: [{
316
- type: Input
317
- }], hasCodingConfigPanel: [{
318
- type: Input
319
- }], isReadonly: [{
320
- type: Input
321
- }], autoHeight: [{
322
- type: Input
323
- }], shouldGenerateInitCode: [{
324
- type: Input
325
- }], snapshot: [{
326
- type: Input
327
- }], pasteEvent: [{
328
- type: Output
329
- }], codeChange: [{
330
- type: Output
331
- }], codeEditorElRef: [{
332
- type: ViewChild,
333
- args: ['editor', { read: ElementRef }]
334
- }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvY29tcG9uZW50cy9jb2RlLWVkaXRvci9jb2RlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL2NvZGUtZWRpdG9yL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFtQixNQUFNLHdDQUF3QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFD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QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQzs4QkFTL0MsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFTyxRQUFRO3NCQUFwQixLQUFLO2dCQU9JLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFb0MsZUFBZTtzQkFBekQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBlZGl0b3IsIElEaXNwb3NhYmxlIH0gZnJvbSAnbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdCwgaW50ZXJ2YWwsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmd4LW1vbmFjby1lZGl0b3ItdjInO1xuXG5pbXBvcnQgeyBlcmxhbmdMYW5ndWFnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FkZGl0aW9uYWwtbGFuZ3VhZ2VzL2VybGFuZyc7XG5pbXBvcnQgeyBDb2RpbmdBc3Npc3RhbmNlT3B0aW9ucywgQ29uZmlnLCBGb3JtYXR0aW5nT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWdzJztcbmltcG9ydCB7IFRoZW1lcyB9IGZyb20gJy4uLy4uL21vZGVscy90aGVtZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IExpYkNvZGluZ1Rlc3RTZXJ2aWNlLCBSZXNldENvZGVBY3Rpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saWItY29kaW5nLXRlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlQ29kaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yU2VydmljZSB9IGZyb20gJy4vY29kZS1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRnVuY1BhcmFtLCBDb2RlRWRpdG9yTGFuZ3VhZ2VzLCBDb2RlRWRpdG9yVHlwZXNNYXAgfSBmcm9tICcuL2hlbHBlcnMvY29kZS1lZGl0b3ItaGVscGVyLm1vZGVsJztcbmltcG9ydCB7IE1vbmFjb0NvbG9yVGhlbWUsIFBhc3RlRGF0YSB9IGZyb20gJy4vbW9kZWxzL2NvZGUtZWRpdG9yLm1vZGVsJztcbmltcG9ydCB7IENvZGluZ1NuYXBzaG90IH0gZnJvbSAnLi9tb2RlbHMvY29kaW5nLXNuYXBzaG90Lm1vZGVsJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd0Z28tY29kZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE1vbmFjb0VkaXRvck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsaWJDb2RpbmdUZXN0U2VydmljZSA9IGluamVjdChMaWJDb2RpbmdUZXN0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlndXJhdGlvbnNTZXJ2aWNlID0gaW5qZWN0KENvbmZpZ3VyYXRpb25zU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZUVkaXRvclNlcnZpY2UgPSBpbmplY3QoQ29kZUVkaXRvclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBTdG9yYWdlQ29kaW5nU2VydmljZSA9IGluamVjdChTdG9yYWdlQ29kaW5nU2VydmljZSk7XG5cbiAgQElucHV0KCkgaW5pdENvZGU6IHN0cmluZztcbiAgQElucHV0KCkgZnVuY3Rpb25QYXJhbXM6IENvZGVFZGl0b3JGdW5jUGFyYW1bXTtcbiAgQElucHV0KCkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJldHVyblR5cGU6IGtleW9mIENvZGVFZGl0b3JUeXBlc01hcDtcbiAgQElucHV0KCkgaGFzQ29kaW5nQ29uZmlnUGFuZWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzUmVhZG9ubHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGF1dG9IZWlnaHQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3VsZEdlbmVyYXRlSW5pdENvZGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IHNuYXBzaG90KHNuYXA6IENvZGluZ1NuYXBzaG90KSB7XG4gICAgaWYgKHNuYXApIHtcbiAgICAgIHRoaXMuY3VycmVudFNuYXBzaG90ID0gc25hcDtcbiAgICAgIHRoaXMuaGFuZGxlU25hcHNob3Qoc25hcC50ZXh0KTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgcGFzdGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UGFzdGVEYXRhPigpO1xuICBAT3V0cHV0KCkgY29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb2RlRWRpdG9yRWxSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29kZSA9ICcnO1xuICBjb2RlUHVibGlzaGVkID0gJyc7XG4gIGNvZGVMYW5ndWFnZSA9ICcnO1xuICBlZGl0b3JPcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgIHRoZW1lOiBNb25hY29Db2xvclRoZW1lLkRhcmssXG4gICAgZm9udFNpemU6ICcxNCcsXG4gICAgc2Nyb2xsQmV5b25kTGFzdExpbmU6IGZhbHNlLFxuICAgIG1pbmltYXA6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICBmaXhlZE92ZXJmbG93V2lkZ2V0czogdHJ1ZSxcbiAgICBpbnNlcnRTcGFjZXM6IGZhbHNlLFxuICAgIGRldGVjdEluZGVudGF0aW9uOiBmYWxzZSxcbiAgICBhdXRvbWF0aWNMYXlvdXQ6IHRydWUsXG4gIH07XG5cbiAgZWRpdG9yOiBlZGl0b3IuSUNvZGVFZGl0b3I7XG4gIHByZXZpb3VzQ29uZmlnID0gdGhpcy5TdG9yYWdlQ29kaW5nU2VydmljZS5nZXRTYXZlZENvbmZpZygpO1xuXG4gIGN1cnJlbnRTbmFwc2hvdDogQ29kaW5nU25hcHNob3Q7XG4gIHByZXZpb3VzTW9uYWNvRGVjb3JhdGlvbjogZWRpdG9yLklFZGl0b3JEZWNvcmF0aW9uc0NvbGxlY3Rpb247XG5cbiAgcHJpdmF0ZSBwYXN0ZUxpc3RlbmVyOiBJRGlzcG9zYWJsZTtcbiAgcHJpdmF0ZSBjb250ZW50Q2hhbmdlZFN1YjogSURpc3Bvc2FibGU7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXZpb3VzQ29uZmlnKSB7XG4gICAgICB0aGlzLnByZXZpb3VzQ29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uc1NlcnZpY2UuZ2V0SW5pdGlhbENvbmZpZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0NvZGluZ0NvbmZpZ1BhbmVsKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlERUNvbmZpZygpO1xuICAgIH1cbiAgICB0aGlzLmxpc3RlblVwZGF0ZXMoKTtcblxuICAgIHRoaXMuc2V0dXBDb25maWdzKCk7XG4gICAgdGhpcy5zZXR1cENvZGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGNoYW5nZXMuaW5pdENvZGU/LmN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuY29kZSA9IGNoYW5nZXMuaW5pdENvZGUuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudENoYW5nZWRTdWI/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLnBhc3RlTGlzdGVuZXI/LmRpc3Bvc2UoKTtcbiAgfVxuXG4gIGluaXRFZGl0b3IoZWRpdG9yOiBlZGl0b3IuSUNvZGVFZGl0b3IpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcblxuICAgIHRoaXMucGFzdGVMaXN0ZW5lciA9IHRoaXMuZWRpdG9yLm9uRGlkUGFzdGUoZXZlbnQgPT4gdGhpcy5jYXRjaEV2ZW50KGV2ZW50KSk7XG5cbiAgICBpZiAodGhpcy5jdXJyZW50U25hcHNob3QpIHtcbiAgICAgIHRoaXMuaGFuZGxlU25hcHNob3QodGhpcy5jdXJyZW50U25hcHNob3QudGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0b0hlaWdodCkge1xuICAgICAgdGhpcy5saXN0ZW5Db250ZW50SGVpZ2h0KGVkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYXRjaEV2ZW50KGV2ZW50OiBlZGl0b3IuSVBhc3RlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5lZGl0b3IuZ2V0TW9kZWwoKT8uZ2V0VmFsdWVJblJhbmdlKGV2ZW50LnJhbmdlKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5wYXN0ZUV2ZW50LmVtaXQoeyB0eXBlOiAncGFzdGUnLCBkYXRhIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1Ymxpc2hDb2RlKGNvZGUpOiB2b2lkIHtcbiAgICBpZiAoY29kZSAhPT0gdGhpcy5jb2RlUHVibGlzaGVkKSB7XG4gICAgICB0aGlzLmNvZGVQdWJsaXNoZWQgPSBjb2RlO1xuICAgICAgdGhpcy5jb2RlQ2hhbmdlLmVtaXQodGhpcy5jb2RlUHVibGlzaGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUlERUNvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25zU2VydmljZS5jb25maWckXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZzogQ29uZmlnKSA9PiB7XG4gICAgICAgIGxldCBjb25maWdPYmplY3QgPSB7fTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBjb25maWcpIHtcbiAgICAgICAgICBpZiAoY29uZmlnW2tleV0gIT09IHRoaXMucHJldmlvdXNDb25maWdba2V5XSkge1xuICAgICAgICAgICAgc3dpdGNoIChrZXkgYXMgRm9ybWF0dGluZ09wdGlvbnMgfCBDb2RpbmdBc3Npc3RhbmNlT3B0aW9ucykge1xuICAgICAgICAgICAgICBjYXNlIEZvcm1hdHRpbmdPcHRpb25zLkNvbG9yVGhlbWU6XG4gICAgICAgICAgICAgICAgY29uZmlnT2JqZWN0ID0ge1xuICAgICAgICAgICAgICAgICAgdGhlbWU6XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ1tGb3JtYXR0aW5nT3B0aW9ucy5Db2xvclRoZW1lXSA9PT0gVGhlbWVzLkRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICA/IE1vbmFjb0NvbG9yVGhlbWUuTGlnaHRcbiAgICAgICAgICAgICAgICAgICAgICA6IE1vbmFjb0NvbG9yVGhlbWUuRGFyayxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29kaW5nQXNzaXN0YW5jZU9wdGlvbnMuQXV0b0NvbXBsZXRlOlxuICAgICAgICAgICAgICAgIGNvbmZpZ09iamVjdCA9IHtcbiAgICAgICAgICAgICAgICAgIHF1aWNrU3VnZ2VzdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgb3RoZXI6IGNvbmZpZ1tDb2RpbmdBc3Npc3RhbmNlT3B0aW9ucy5BdXRvQ29tcGxldGVdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29kaW5nQXNzaXN0YW5jZU9wdGlvbnMuQXV0b0JyYWNrZXRzOlxuICAgICAgICAgICAgICAgIGNvbmZpZ09iamVjdCA9IHtcbiAgICAgICAgICAgICAgICAgIGF1dG9DbG9zaW5nQnJhY2tldHM6IGNvbmZpZ1tDb2RpbmdBc3Npc3RhbmNlT3B0aW9ucy5BdXRvQnJhY2tldHNdID8gJ2Fsd2F5cycgOiAnbmV2ZXInLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBGb3JtYXR0aW5nT3B0aW9ucy5UYWJTaXplOlxuICAgICAgICAgICAgICAgIGNvbmZpZ09iamVjdCA9IHtcbiAgICAgICAgICAgICAgICAgIHRhYlNpemU6IGNvbmZpZ1tGb3JtYXR0aW5nT3B0aW9ucy5UYWJTaXplXSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgRm9ybWF0dGluZ09wdGlvbnMuRm9udFNpemU6XG4gICAgICAgICAgICAgICAgY29uZmlnT2JqZWN0ID0ge1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGNvbmZpZ1tGb3JtYXR0aW5nT3B0aW9ucy5Gb250U2l6ZV0sXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkVycm9ySGlnaGxpZ2h0aW5nOlxuICAgICAgICAgICAgICAgIHRoaXMubGliQ29kaW5nVGVzdFNlcnZpY2UuY3VycmVudExhbmd1YWdlJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShsYW5ndWFnZSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAobGFuZ3VhZ2UgPT09IENvZGVFZGl0b3JMYW5ndWFnZXMuSmF2YXNjcmlwdCkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ21vbmFjbyddLmxhbmd1YWdlcy50eXBlc2NyaXB0LmphdmFzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vU2VtYW50aWNWYWxpZGF0aW9uOiAhY29uZmlnW0NvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkVycm9ySGlnaGxpZ2h0aW5nXSxcbiAgICAgICAgICAgICAgICAgICAgICBub1N5bnRheFZhbGlkYXRpb246ICFjb25maWdbQ29kaW5nQXNzaXN0YW5jZU9wdGlvbnMuRXJyb3JIaWdobGlnaHRpbmddLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFuZ3VhZ2UgPT09IENvZGVFZGl0b3JMYW5ndWFnZXMuVHlwZXNjcmlwdCkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ21vbmFjbyddLmxhbmd1YWdlcy50eXBlc2NyaXB0LnR5cGVzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vU2VtYW50aWNWYWxpZGF0aW9uOiAhY29uZmlnW0NvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkVycm9ySGlnaGxpZ2h0aW5nXSxcbiAgICAgICAgICAgICAgICAgICAgICBub1N5bnRheFZhbGlkYXRpb246ICFjb25maWdbQ29kaW5nQXNzaXN0YW5jZU9wdGlvbnMuRXJyb3JIaWdobGlnaHRpbmddLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZWRpdG9yT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZWRpdG9yT3B0aW9ucywgY29uZmlnT2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucHJldmlvdXNDb25maWcgPSBjb25maWc7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZWRpdG9yT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZWRpdG9yT3B0aW9ucywge1xuICAgICAgYXV0b21hdGljTGF5b3V0OiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Db250ZW50SGVpZ2h0KGVkaXRvcjogZWRpdG9yLklDb2RlRWRpdG9yKTogdm9pZCB7XG4gICAgY29uc3QgdXBkYXRlSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGggfSA9IHRoaXMuY29kZUVkaXRvckVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBNYXRoLm1pbigxMDAwLCBlZGl0b3IuZ2V0Q29udGVudEhlaWdodCgpKTtcbiAgICAgICAgdGhpcy5jb2RlRWRpdG9yRWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50SGVpZ2h0fXB4YDtcbiAgICAgICAgZWRpdG9yLmxheW91dCh7IHdpZHRoLCBoZWlnaHQ6IGNvbnRlbnRIZWlnaHQgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdGhpcy5jb250ZW50Q2hhbmdlZFN1YiA9IGVkaXRvci5vbkRpZENvbnRlbnRTaXplQ2hhbmdlKHVwZGF0ZUhlaWdodCk7XG4gICAgdXBkYXRlSGVpZ2h0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29uZmlncygpOiB2b2lkIHtcbiAgICBjb25zdCB7IGZ1bmN0aW9uUGFyYW1zOiBwYXJhbXMsIGZ1bmN0aW9uTmFtZTogbmFtZSwgcmV0dXJuVHlwZSB9ID0gdGhpcztcblxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMucHJldmlvdXNDb25maWc7XG5cbiAgICBjb25zdCB3b3JkV3JhcCA9IHRoaXMuY3VycmVudFNuYXBzaG90ID8gJ29uJyA6ICdvZmYnO1xuICAgIGNvbnN0IHRoZW1lID0gdGhpcy5nZXRJbml0aWFsQ29sb3JUaGVtZShjb25maWcsIHRoaXMuY3VycmVudFNuYXBzaG90KTtcblxuICAgIHRoaXMubGliQ29kaW5nVGVzdFNlcnZpY2UuY3VycmVudExhbmd1YWdlJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKGxhbmd1YWdlOiBDb2RlRWRpdG9yTGFuZ3VhZ2VzKSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRHZW5lcmF0ZUluaXRDb2RlKSB7XG4gICAgICAgIHRoaXMuY29kZUVkaXRvclNlcnZpY2Uuc2V0SGVscGVyKGxhbmd1YWdlLCB7IHBhcmFtcywgbmFtZSwgcmV0dXJuVHlwZSB9KTtcbiAgICAgICAgdGhpcy5jb2RlTGFuZ3VhZ2UgPSB0aGlzLmNvZGVFZGl0b3JTZXJ2aWNlLmdldEVkaXRvckxhbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChsYW5ndWFnZSA9PT0gQ29kZUVkaXRvckxhbmd1YWdlcy5DcHApIHtcbiAgICAgICAgICB0aGlzLmNvZGVMYW5ndWFnZSA9IENvZGVFZGl0b3JMYW5ndWFnZXMuQ3BwRWRpdG9yO1xuICAgICAgICB9IGVsc2UgaWYgKGxhbmd1YWdlID09PSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLkNTaGFycCB8fCBsYW5ndWFnZSA9PT0gQ29kZUVkaXRvckxhbmd1YWdlcy5DU2hhcnBMZWdhY3kpIHtcbiAgICAgICAgICB0aGlzLmNvZGVMYW5ndWFnZSA9IENvZGVFZGl0b3JMYW5ndWFnZXMuQ1NoYXJwRWRpdG9yO1xuICAgICAgICB9IGVsc2UgaWYgKGxhbmd1YWdlID09PSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLlNxbGl0ZSkge1xuICAgICAgICAgIHRoaXMuY29kZUxhbmd1YWdlID0gQ29kZUVkaXRvckxhbmd1YWdlcy5TcWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb2RlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5lZGl0b3JPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5lZGl0b3JPcHRpb25zLCB7XG4gICAgICAgIGxhbmd1YWdlOiB0aGlzLmNvZGVMYW5ndWFnZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5lZGl0b3JPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5lZGl0b3JPcHRpb25zLCB7XG4gICAgICByZWFkT25seTogdGhpcy5pc1JlYWRvbmx5LFxuICAgICAgcXVpY2tTdWdnZXN0aW9uczoge1xuICAgICAgICBvdGhlcjogY29uZmlnW0NvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkF1dG9Db21wbGV0ZV0sXG4gICAgICB9LFxuICAgICAgYXV0b0Nsb3NpbmdCcmFja2V0czogY29uZmlnW0NvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkF1dG9CcmFja2V0c10gPyAnYWx3YXlzJyA6ICduZXZlcicsXG4gICAgICB0YWJTaXplOiBjb25maWdbRm9ybWF0dGluZ09wdGlvbnMuVGFiU2l6ZV0sXG4gICAgICBmb250U2l6ZTogY29uZmlnW0Zvcm1hdHRpbmdPcHRpb25zLkZvbnRTaXplXSxcbiAgICAgIHRoZW1lLFxuICAgICAgd29yZFdyYXAsXG4gICAgfSk7XG4gICAgY29uc3QgbW9uYWNvTGlicmFyeVJlYWR5JCA9IGludGVydmFsKDEwMCkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB3aW5kb3cubW9uYWNvKSxcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgIGZpcnN0KClcbiAgICApO1xuICAgIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgbW9uYWNvOiBtb25hY29MaWJyYXJ5UmVhZHkkLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGliQ29kaW5nVGVzdFNlcnZpY2UuY3VycmVudExhbmd1YWdlJCxcbiAgICB9KVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC5sYW5ndWFnZSA9PT0gQ29kZUVkaXRvckxhbmd1YWdlcy5KYXZhc2NyaXB0KSB7XG4gICAgICAgICAgcmVzdWx0Lm1vbmFjby5sYW5ndWFnZXMudHlwZXNjcmlwdC5qYXZhc2NyaXB0RGVmYXVsdHMuc2V0RGlhZ25vc3RpY3NPcHRpb25zKHtcbiAgICAgICAgICAgIG5vU2VtYW50aWNWYWxpZGF0aW9uOiAhY29uZmlnW0NvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkVycm9ySGlnaGxpZ2h0aW5nXSxcbiAgICAgICAgICAgIG5vU3ludGF4VmFsaWRhdGlvbjogIWNvbmZpZ1tDb2RpbmdBc3Npc3RhbmNlT3B0aW9ucy5FcnJvckhpZ2hsaWdodGluZ10sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lmxhbmd1YWdlID09PSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLlR5cGVzY3JpcHQpIHtcbiAgICAgICAgICByZXN1bHQubW9uYWNvLmxhbmd1YWdlcy50eXBlc2NyaXB0LnR5cGVzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe1xuICAgICAgICAgICAgbm9TZW1hbnRpY1ZhbGlkYXRpb246ICFjb25maWdbQ29kaW5nQXNzaXN0YW5jZU9wdGlvbnMuRXJyb3JIaWdobGlnaHRpbmddLFxuICAgICAgICAgICAgbm9TeW50YXhWYWxpZGF0aW9uOiAhY29uZmlnW0NvZGluZ0Fzc2lzdGFuY2VPcHRpb25zLkVycm9ySGlnaGxpZ2h0aW5nXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQubW9uYWNvLmxhbmd1YWdlcy5yZWdpc3Rlcih7IGlkOiBDb2RlRWRpdG9yTGFuZ3VhZ2VzLkVybGFuZyB9KTtcbiAgICAgICAgcmVzdWx0Lm1vbmFjby5sYW5ndWFnZXMuc2V0TW9uYXJjaFRva2Vuc1Byb3ZpZGVyKENvZGVFZGl0b3JMYW5ndWFnZXMuRXJsYW5nLCBlcmxhbmdMYW5ndWFnZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbENvbG9yVGhlbWUoY29uZmlnOiBDb25maWcsIHNuYXBzaG90OiBDb2RpbmdTbmFwc2hvdCk6IHN0cmluZyB7XG4gICAgbGV0IHRoZW1lOiBNb25hY29Db2xvclRoZW1lO1xuXG4gICAgaWYgKHNuYXBzaG90KSB7XG4gICAgICB0aGVtZSA9IE1vbmFjb0NvbG9yVGhlbWUuRGFyaztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhlbWUgPSBjb25maWdbRm9ybWF0dGluZ09wdGlvbnMuQ29sb3JUaGVtZV0gPT09IFRoZW1lcy5EZWZhdWx0ID8gTW9uYWNvQ29sb3JUaGVtZS5MaWdodCA6IE1vbmFjb0NvbG9yVGhlbWUuRGFyaztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhlbWU7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29kZShjYWxsZWRGcm9tUmVzZXQgPSBmYWxzZSkge1xuICAgIHRoaXMuaGFuZGxlSW5pdENvZGUoY2FsbGVkRnJvbVJlc2V0KTtcbiAgICB0aGlzLnB1Ymxpc2hDb2RlKHRoaXMuY29kZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXRDb2RlKGNhbGxlZEZyb21SZXNldCA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKGNhbGxlZEZyb21SZXNldCkge1xuICAgICAgdGhpcy5jb2RlID0gdGhpcy5saWJDb2RpbmdUZXN0U2VydmljZS5nZXRJbml0Q29kZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbml0Q29kZSkge1xuICAgICAgdGhpcy5jb2RlID0gdGhpcy5pbml0Q29kZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFNuYXBzaG90KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3VsZEdlbmVyYXRlSW5pdENvZGUpIHtcbiAgICAgIHRoaXMuY29kZSA9IHRoaXMuY29kZUVkaXRvclNlcnZpY2UuZ2V0SW5pdENvZGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblVwZGF0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5saWJDb2RpbmdUZXN0U2VydmljZS5jb2RlUmVzZXQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKHZhbCA9PiB2YWwgPT09IFJlc2V0Q29kZUFjdGlvbi5Db25maXJtKSxcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldHVwQ29kZSh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTbmFwc2hvdChjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuXG4gICAgaWYgKCF0aGlzLmVkaXRvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKGNvZGUpOyAvLyBtYWtlIHN1cmUgZWRpdG9yIG1vZGVsIGhhcyB0aGUgbGF0ZXN0IHZhbHVlIG9mIHRoZSBjb2RlXG5cbiAgICBpZiAodGhpcy5wcmV2aW91c01vbmFjb0RlY29yYXRpb24pIHtcbiAgICAgIHRoaXMucHJldmlvdXNNb25hY29EZWNvcmF0aW9uLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudFNuYXBzaG90LmNvcGllZF90ZXh0KSB7XG4gICAgICAvLyBpZiB0aGUgc25hcHNob3QgY29udGFpbnMgY29weVBhc3RlZCBjb2RlLCBmaW5kIGl0J3MgcmFuZ2UgaW4gbW9uYWNvXG4gICAgICBjb25zdCBtYXRjaGVzID0gdGhpcy5lZGl0b3JcbiAgICAgICAgLmdldE1vZGVsKClcbiAgICAgICAgLmZpbmRNYXRjaGVzKHRoaXMuY3VycmVudFNuYXBzaG90LmNvcGllZF90ZXh0LCBmYWxzZSwgZmFsc2UsIHRydWUsIG51bGwsIHRydWUpO1xuXG4gICAgICBpZiAobWF0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgLy8gaWYgdGhlIHJhbmdlIGlzIGZvdW5kIGluIGVkaXRvciBtb2RlbCwgZGVjb3JhdGUgaXQgd2l0aCBhZGRpdGlvbmFsIGNsYXNzIHRvIGhpZ2hsaWdodCBvbiB0aGUgdWlcbiAgICAgICAgdGhpcy5wcmV2aW91c01vbmFjb0RlY29yYXRpb24gPSB0aGlzLmVkaXRvci5jcmVhdGVEZWNvcmF0aW9uc0NvbGxlY3Rpb24oW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJhbmdlOiBtYXRjaGVzWzBdLnJhbmdlLFxuICAgICAgICAgICAgb3B0aW9uczogeyBpbmxpbmVDbGFzc05hbWU6ICdjb3B5LXBhc3RlZC1jb2RlJyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBub3RyYW5zbGF0ZVwiIHRyYW5zbGF0ZT1cIm5vXCI+XG4gIDxuZ3gtbW9uYWNvLWVkaXRvclxuICAgICNlZGl0b3JcbiAgICBjbGFzcz1cImVkaXRvclwiXG4gICAgW29wdGlvbnNdPVwiZWRpdG9yT3B0aW9uc1wiXG4gICAgWyhuZ01vZGVsKV09XCJjb2RlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJwdWJsaXNoQ29kZSgkZXZlbnQpXCJcbiAgICAob25Jbml0KT1cImluaXRFZGl0b3IoJGV2ZW50KVwiXG4gID48L25neC1tb25hY28tZWRpdG9yPlxuPC9kaXY+XG4iXX0=
@@ -1,72 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { CodeEditorCHelper, CodeEditorCppHelper, CodeEditorCSharpHelper, CodeEditorGoHelper, CodeEditorJavaHelper, CodeEditorJavascriptHelper, CodeEditorKotlinHelper, CodeEditorPhpHelper, CodeEditorPythonHelper, CodeEditorRHelper, CodeEditorRubyHelper, CodeEditorScalaHelper, CodeEditorSqlHelper, CodeEditorSwiftHelper, CodeEditorTypescriptHelper, } from './helpers';
3
- import * as i0 from "@angular/core";
4
- export class CodeEditorService {
5
- helper;
6
- setHelper(language, funcParams) {
7
- this.helper = this.createHelper(language, funcParams);
8
- }
9
- getInitCode() {
10
- return this.helper.getInitCode();
11
- }
12
- getEditorLang() {
13
- return this.helper.getEditorLang();
14
- }
15
- createHelper(lang, funcParams) {
16
- // todo: review this logic according to new TAT, remove generated init code if not needed ?
17
- switch (lang) {
18
- case "javascript" /* CodeEditorLanguages.Javascript */:
19
- return new CodeEditorJavascriptHelper(funcParams);
20
- case "typescript" /* CodeEditorLanguages.Typescript */:
21
- return new CodeEditorTypescriptHelper(funcParams);
22
- case "php" /* CodeEditorLanguages.Php */:
23
- return new CodeEditorPhpHelper(funcParams);
24
- case "python" /* CodeEditorLanguages.Python */:
25
- return new CodeEditorPythonHelper(funcParams);
26
- case "java" /* CodeEditorLanguages.Java */:
27
- return new CodeEditorJavaHelper(funcParams);
28
- case "ruby" /* CodeEditorLanguages.Ruby */:
29
- return new CodeEditorRubyHelper(funcParams);
30
- case "c" /* CodeEditorLanguages.C */:
31
- return new CodeEditorCHelper(funcParams);
32
- case "c++" /* CodeEditorLanguages.Cpp */:
33
- return new CodeEditorCppHelper(funcParams);
34
- case "r" /* CodeEditorLanguages.R */:
35
- return new CodeEditorRHelper(funcParams);
36
- case "scala" /* CodeEditorLanguages.Scala */:
37
- return new CodeEditorScalaHelper(funcParams);
38
- case "c#" /* CodeEditorLanguages.CSharp */:
39
- case "c#_legacy" /* CodeEditorLanguages.CSharpLegacy */:
40
- return new CodeEditorCSharpHelper(funcParams);
41
- case "go" /* CodeEditorLanguages.Go */:
42
- return new CodeEditorGoHelper(funcParams);
43
- case "sql" /* CodeEditorLanguages.Sql */:
44
- case "sqlite3" /* CodeEditorLanguages.Sqlite */:
45
- return new CodeEditorSqlHelper(funcParams);
46
- default: {
47
- const versionedHelper = lang && this.getVersionedHelper(lang, funcParams);
48
- if (!versionedHelper) {
49
- throw new Error(`language ${lang} is not supported`);
50
- }
51
- return versionedHelper;
52
- }
53
- }
54
- }
55
- getVersionedHelper(lang, funcParams) {
56
- if (lang.startsWith("kotlin" /* CodeEditorLanguages.Kotlin */)) {
57
- return new CodeEditorKotlinHelper(funcParams);
58
- }
59
- if (lang.startsWith("swift" /* CodeEditorLanguages.Swift */)) {
60
- return new CodeEditorSwiftHelper(funcParams);
61
- }
62
- }
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
64
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeEditorService, providedIn: 'root' });
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeEditorService, decorators: [{
67
- type: Injectable,
68
- args: [{
69
- providedIn: 'root',
70
- }]
71
- }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL2NvbXBvbmVudHMvY29kZS1lZGl0b3IvY29kZS1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLFdBQVcsQ0FBQzs7QUFVbkIsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixNQUFNLENBQW1CO0lBRWpDLFNBQVMsQ0FBQyxRQUFnQixFQUFFLFVBQWlDO1FBQzNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFZLEVBQUUsVUFBaUM7UUFDbEUsMkZBQTJGO1FBQzNGLFFBQVEsSUFBMkIsRUFBRSxDQUFDO1lBQ3BDO2dCQUNFLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRDtnQkFDRSxPQUFPLElBQUksMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEQ7Z0JBQ0UsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdDO2dCQUNFLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoRDtnQkFDRSxPQUFPLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUM7Z0JBQ0UsT0FBTyxJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlDO2dCQUNFLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQztnQkFDRSxPQUFPLElBQUksbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0M7Z0JBQ0UsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDO2dCQUNFLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQywyQ0FBZ0M7WUFDaEM7Z0JBQ0UsT0FBTyxJQUFJLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hEO2dCQUNFLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1Qyx5Q0FBNkI7WUFDN0I7Z0JBQ0UsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRTFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksbUJBQW1CLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztnQkFFRCxPQUFPLGVBQWUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsVUFBaUM7UUFDeEUsSUFBSSxJQUFJLENBQUMsVUFBVSwyQ0FBNEIsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSx5Q0FBMkIsRUFBRSxDQUFDO1lBQy9DLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQzt3R0FqRVUsaUJBQWlCOzRHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvZGVFZGl0b3JDSGVscGVyLFxuICBDb2RlRWRpdG9yQ3BwSGVscGVyLFxuICBDb2RlRWRpdG9yQ1NoYXJwSGVscGVyLFxuICBDb2RlRWRpdG9yR29IZWxwZXIsXG4gIENvZGVFZGl0b3JKYXZhSGVscGVyLFxuICBDb2RlRWRpdG9ySmF2YXNjcmlwdEhlbHBlcixcbiAgQ29kZUVkaXRvcktvdGxpbkhlbHBlcixcbiAgQ29kZUVkaXRvclBocEhlbHBlcixcbiAgQ29kZUVkaXRvclB5dGhvbkhlbHBlcixcbiAgQ29kZUVkaXRvclJIZWxwZXIsXG4gIENvZGVFZGl0b3JSdWJ5SGVscGVyLFxuICBDb2RlRWRpdG9yU2NhbGFIZWxwZXIsXG4gIENvZGVFZGl0b3JTcWxIZWxwZXIsXG4gIENvZGVFZGl0b3JTd2lmdEhlbHBlcixcbiAgQ29kZUVkaXRvclR5cGVzY3JpcHRIZWxwZXIsXG59IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge1xuICBDb2RlRWRpdG9yRnVuY09wdGlvbnMsXG4gIENvZGVFZGl0b3JIZWxwZXIsXG4gIENvZGVFZGl0b3JMYW5ndWFnZXMsXG59IGZyb20gJy4vaGVscGVycy9jb2RlLWVkaXRvci1oZWxwZXIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvclNlcnZpY2Uge1xuICBwcml2YXRlIGhlbHBlcjogQ29kZUVkaXRvckhlbHBlcjtcblxuICBzZXRIZWxwZXIobGFuZ3VhZ2U6IHN0cmluZywgZnVuY1BhcmFtczogQ29kZUVkaXRvckZ1bmNPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5oZWxwZXIgPSB0aGlzLmNyZWF0ZUhlbHBlcihsYW5ndWFnZSwgZnVuY1BhcmFtcyk7XG4gIH1cblxuICBnZXRJbml0Q29kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5nZXRJbml0Q29kZSgpO1xuICB9XG5cbiAgZ2V0RWRpdG9yTGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhlbHBlci5nZXRFZGl0b3JMYW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUhlbHBlcihsYW5nOiBzdHJpbmcsIGZ1bmNQYXJhbXM6IENvZGVFZGl0b3JGdW5jT3B0aW9ucyk6IENvZGVFZGl0b3JIZWxwZXIge1xuICAgIC8vIHRvZG86IHJldmlldyB0aGlzIGxvZ2ljIGFjY29yZGluZyB0byBuZXcgVEFULCByZW1vdmUgZ2VuZXJhdGVkIGluaXQgY29kZSBpZiBub3QgbmVlZGVkID9cbiAgICBzd2l0Y2ggKGxhbmcgYXMgQ29kZUVkaXRvckxhbmd1YWdlcykge1xuICAgICAgY2FzZSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLkphdmFzY3JpcHQ6XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvckphdmFzY3JpcHRIZWxwZXIoZnVuY1BhcmFtcyk7XG4gICAgICBjYXNlIENvZGVFZGl0b3JMYW5ndWFnZXMuVHlwZXNjcmlwdDpcbiAgICAgICAgcmV0dXJuIG5ldyBDb2RlRWRpdG9yVHlwZXNjcmlwdEhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5QaHA6XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvclBocEhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5QeXRob246XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvclB5dGhvbkhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5KYXZhOlxuICAgICAgICByZXR1cm4gbmV3IENvZGVFZGl0b3JKYXZhSGVscGVyKGZ1bmNQYXJhbXMpO1xuICAgICAgY2FzZSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLlJ1Ynk6XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvclJ1YnlIZWxwZXIoZnVuY1BhcmFtcyk7XG4gICAgICBjYXNlIENvZGVFZGl0b3JMYW5ndWFnZXMuQzpcbiAgICAgICAgcmV0dXJuIG5ldyBDb2RlRWRpdG9yQ0hlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5DcHA6XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvckNwcEhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5SOlxuICAgICAgICByZXR1cm4gbmV3IENvZGVFZGl0b3JSSGVscGVyKGZ1bmNQYXJhbXMpO1xuICAgICAgY2FzZSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLlNjYWxhOlxuICAgICAgICByZXR1cm4gbmV3IENvZGVFZGl0b3JTY2FsYUhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5DU2hhcnA6XG4gICAgICBjYXNlIENvZGVFZGl0b3JMYW5ndWFnZXMuQ1NoYXJwTGVnYWN5OlxuICAgICAgICByZXR1cm4gbmV3IENvZGVFZGl0b3JDU2hhcnBIZWxwZXIoZnVuY1BhcmFtcyk7XG4gICAgICBjYXNlIENvZGVFZGl0b3JMYW5ndWFnZXMuR286XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvckdvSGVscGVyKGZ1bmNQYXJhbXMpO1xuICAgICAgY2FzZSBDb2RlRWRpdG9yTGFuZ3VhZ2VzLlNxbDpcbiAgICAgIGNhc2UgQ29kZUVkaXRvckxhbmd1YWdlcy5TcWxpdGU6XG4gICAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvclNxbEhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgdmVyc2lvbmVkSGVscGVyID0gbGFuZyAmJiB0aGlzLmdldFZlcnNpb25lZEhlbHBlcihsYW5nLCBmdW5jUGFyYW1zKTtcblxuICAgICAgICBpZiAoIXZlcnNpb25lZEhlbHBlcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbGFuZ3VhZ2UgJHtsYW5nfSBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmVyc2lvbmVkSGVscGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmVyc2lvbmVkSGVscGVyKGxhbmc6IHN0cmluZywgZnVuY1BhcmFtczogQ29kZUVkaXRvckZ1bmNPcHRpb25zKTogQ29kZUVkaXRvckhlbHBlciB7XG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aChDb2RlRWRpdG9yTGFuZ3VhZ2VzLktvdGxpbikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29kZUVkaXRvcktvdGxpbkhlbHBlcihmdW5jUGFyYW1zKTtcbiAgICB9XG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aChDb2RlRWRpdG9yTGFuZ3VhZ2VzLlN3aWZ0KSkge1xuICAgICAgcmV0dXJuIG5ldyBDb2RlRWRpdG9yU3dpZnRIZWxwZXIoZnVuY1BhcmFtcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,40 +0,0 @@
1
- import { CodeEditorHelperBase } from './code-editor-helper.base';
2
- export class CodeEditorCHelper extends CodeEditorHelperBase {
3
- functionOptions;
4
- language = "c" /* CodeEditorLanguages.C */;
5
- typesMap = {
6
- boolean: 'bool',
7
- int: 'int',
8
- number: 'int',
9
- double: 'double',
10
- float: 'float',
11
- str: 'char *',
12
- array_boolean: 'bool *',
13
- array_int: 'int *',
14
- array_float: 'float *',
15
- array_double: 'double *',
16
- };
17
- constructor(functionOptions) {
18
- super();
19
- this.functionOptions = functionOptions;
20
- }
21
- getInitCode() {
22
- return `${this.getFunctionOpening()}\t //Insert your code here \n}`;
23
- }
24
- getFunctionOpening() {
25
- const { name: funcName, returnType } = this.functionOptions;
26
- const params = this.getParamsString();
27
- const showingReturnType = this.parseType(returnType);
28
- return `${showingReturnType} ${funcName}(${params}) {\n`;
29
- }
30
- getParamsString() {
31
- const { params } = this.functionOptions;
32
- let paramsString = '';
33
- if (params && params.length > 0) {
34
- params.forEach(values => (paramsString += `${this.parseType(values.type)} ${values.name}, `));
35
- paramsString = paramsString.slice(0, -2);
36
- }
37
- return paramsString;
38
- }
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYy1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL2NvZGUtZWRpdG9yL2hlbHBlcnMvYy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFRakUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQjtJQWVyQztJQWRwQixRQUFRLG1DQUF5QjtJQUNqQyxRQUFRLEdBQXVCO1FBQzdCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsR0FBRyxFQUFFLEtBQUs7UUFDVixNQUFNLEVBQUUsS0FBSztRQUNiLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLEtBQUssRUFBRSxPQUFPO1FBQ2QsR0FBRyxFQUFFLFFBQVE7UUFDYixhQUFhLEVBQUUsUUFBUTtRQUN2QixTQUFTLEVBQUUsT0FBTztRQUNsQixXQUFXLEVBQUUsU0FBUztRQUN0QixZQUFZLEVBQUUsVUFBVTtLQUN6QixDQUFDO0lBRUYsWUFBb0IsZUFBc0M7UUFDeEQsS0FBSyxFQUFFLENBQUM7UUFEVSxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7SUFFMUQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGdDQUFnQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJELE9BQU8sR0FBRyxpQkFBaUIsSUFBSSxRQUFRLElBQUksTUFBTSxPQUFPLENBQUM7SUFDM0QsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDeEMsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RixZQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUVkaXRvckhlbHBlckJhc2UgfSBmcm9tICcuL2NvZGUtZWRpdG9yLWhlbHBlci5iYXNlJztcbmltcG9ydCB7XG4gIENvZGVFZGl0b3JGdW5jT3B0aW9ucyxcbiAgQ29kZUVkaXRvckhlbHBlcixcbiAgQ29kZUVkaXRvckxhbmd1YWdlcyxcbiAgQ29kZUVkaXRvclR5cGVzTWFwLFxufSBmcm9tICcuL2NvZGUtZWRpdG9yLWhlbHBlci5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDb2RlRWRpdG9yQ0hlbHBlciBleHRlbmRzIENvZGVFZGl0b3JIZWxwZXJCYXNlIGltcGxlbWVudHMgQ29kZUVkaXRvckhlbHBlciB7XG4gIGxhbmd1YWdlID0gQ29kZUVkaXRvckxhbmd1YWdlcy5DO1xuICB0eXBlc01hcDogQ29kZUVkaXRvclR5cGVzTWFwID0ge1xuICAgIGJvb2xlYW46ICdib29sJyxcbiAgICBpbnQ6ICdpbnQnLFxuICAgIG51bWJlcjogJ2ludCcsXG4gICAgZG91YmxlOiAnZG91YmxlJyxcbiAgICBmbG9hdDogJ2Zsb2F0JyxcbiAgICBzdHI6ICdjaGFyIConLFxuICAgIGFycmF5X2Jvb2xlYW46ICdib29sIConLFxuICAgIGFycmF5X2ludDogJ2ludCAqJyxcbiAgICBhcnJheV9mbG9hdDogJ2Zsb2F0IConLFxuICAgIGFycmF5X2RvdWJsZTogJ2RvdWJsZSAqJyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZ1bmN0aW9uT3B0aW9uczogQ29kZUVkaXRvckZ1bmNPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldEluaXRDb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2V0RnVuY3Rpb25PcGVuaW5nKCl9XFx0IC8vSW5zZXJ0IHlvdXIgY29kZSBoZXJlIFxcbn1gO1xuICB9XG5cbiAgZ2V0RnVuY3Rpb25PcGVuaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBuYW1lOiBmdW5jTmFtZSwgcmV0dXJuVHlwZSB9ID0gdGhpcy5mdW5jdGlvbk9wdGlvbnM7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRQYXJhbXNTdHJpbmcoKTtcbiAgICBjb25zdCBzaG93aW5nUmV0dXJuVHlwZSA9IHRoaXMucGFyc2VUeXBlKHJldHVyblR5cGUpO1xuXG4gICAgcmV0dXJuIGAke3Nob3dpbmdSZXR1cm5UeXBlfSAke2Z1bmNOYW1lfSgke3BhcmFtc30pIHtcXG5gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbXNTdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHBhcmFtcyB9ID0gdGhpcy5mdW5jdGlvbk9wdGlvbnM7XG4gICAgbGV0IHBhcmFtc1N0cmluZyA9ICcnO1xuXG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1zLmZvckVhY2godmFsdWVzID0+IChwYXJhbXNTdHJpbmcgKz0gYCR7dGhpcy5wYXJzZVR5cGUodmFsdWVzLnR5cGUpfSAke3ZhbHVlcy5uYW1lfSwgYCkpO1xuICAgICAgcGFyYW1zU3RyaW5nID0gcGFyYW1zU3RyaW5nLnNsaWNlKDAsIC0yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zU3RyaW5nO1xuICB9XG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- export class CodeEditorHelperBase {
2
- language;
3
- typesMap;
4
- getEditorLang() {
5
- return this.language;
6
- }
7
- parseType(type) {
8
- return this.typesMap[type];
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItaGVscGVyLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL2NvZGUtZWRpdG9yL2hlbHBlcnMvY29kZS1lZGl0b3ItaGVscGVyLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixvQkFBb0I7SUFDOUIsUUFBUSxDQUFzQjtJQUM5QixRQUFRLENBQXFCO0lBSXZDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUE4QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUVkaXRvckxhbmd1YWdlcywgQ29kZUVkaXRvclR5cGVzTWFwIH0gZnJvbSAnLi9jb2RlLWVkaXRvci1oZWxwZXIubW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29kZUVkaXRvckhlbHBlckJhc2Uge1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IENvZGVFZGl0b3JMYW5ndWFnZXM7XG4gIHByb3RlY3RlZCB0eXBlc01hcDogQ29kZUVkaXRvclR5cGVzTWFwO1xuXG4gIGFic3RyYWN0IGdldEZ1bmN0aW9uT3BlbmluZygpOiBzdHJpbmc7XG5cbiAgZ2V0RWRpdG9yTGFuZygpOiBDb2RlRWRpdG9yTGFuZ3VhZ2VzIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZVR5cGUodHlwZToga2V5b2YgQ29kZUVkaXRvclR5cGVzTWFwKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlc01hcFt0eXBlXTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItaGVscGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvY29tcG9uZW50cy9jb2RlLWVkaXRvci9oZWxwZXJzL2NvZGUtZWRpdG9yLWhlbHBlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb2RlRWRpdG9ySGVscGVyIHtcbiAgZ2V0SW5pdENvZGU/KCk6IHN0cmluZztcbiAgZ2V0RWRpdG9yTGFuZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvZGVFZGl0b3JMYW5ndWFnZXMge1xuICBKYXZhc2NyaXB0ID0gJ2phdmFzY3JpcHQnLFxuICBUeXBlc2NyaXB0ID0gJ3R5cGVzY3JpcHQnLFxuICBFbGl4aXIgPSAnZWxpeGlyJyxcbiAgUnVzdCA9ICdydXN0JyxcbiAgRGFydCA9ICdkYXJ0JyxcbiAgRXJsYW5nID0gJ2VybGFuZycsXG4gIEp1bGlhID0gJ2p1bGlhJyxcbiAgUGVybCA9ICdwZXJsJyxcbiAgUGhwID0gJ3BocCcsXG4gIFB5dGhvbiA9ICdweXRob24nLFxuICBKYXZhID0gJ2phdmEnLFxuICBLb3RsaW4gPSAna290bGluJyxcbiAgUnVieSA9ICdydWJ5JyxcbiAgQyA9ICdjJyxcbiAgQ3BwID0gJ2MrKycsXG4gIENwcEVkaXRvciA9ICdjcHAnLFxuICBSID0gJ3InLFxuICBTd2lmdCA9ICdzd2lmdCcsXG4gIFNjYWxhID0gJ3NjYWxhJyxcbiAgQ1NoYXJwID0gJ2MjJyxcbiAgQ1NoYXJwRWRpdG9yID0gJ2NzaGFycCcsXG4gIENTaGFycExlZ2FjeSA9ICdjI19sZWdhY3knLFxuICBHbyA9ICdnbycsXG4gIFNxbCA9ICdzcWwnLFxuICBTcWxpdGUgPSAnc3FsaXRlMycsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvZGVFZGl0b3JTcWxPcGVyYXRpb25zIHtcbiAgU2VsZWN0ID0gJ1NFTEVDVCcsXG4gIFVwZGF0ZSA9ICdVUERBVEUnLFxuICBJbnNlcnQgPSAnSU5TRVJUJyxcbiAgRGVsZXRlID0gJ0RFTEVURScsXG4gIENyZWF0ZVRhYmxlID0gJ0NSRUFURSBUQUJMRScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUVkaXRvckZ1bmNPcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZyB8IENvZGVFZGl0b3JTcWxPcGVyYXRpb25zO1xuICBwYXJhbXM/OiBDb2RlRWRpdG9yRnVuY1BhcmFtW107XG4gIHJldHVyblR5cGU/OiBrZXlvZiBDb2RlRWRpdG9yVHlwZXNNYXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUVkaXRvckZ1bmNQYXJhbSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBvcmRlcj86IHN0cmluZztcbiAgdHlwZT86IGtleW9mIENvZGVFZGl0b3JUeXBlc01hcDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlRWRpdG9yVHlwZXNNYXAge1xuICBib29sZWFuOiBzdHJpbmc7XG4gIGludDogc3RyaW5nO1xuICBudW1iZXI/OiBzdHJpbmc7XG4gIGRvdWJsZTogc3RyaW5nO1xuICBmbG9hdDogc3RyaW5nO1xuICBzdHI6IHN0cmluZztcbiAgYXJyYXlfYm9vbGVhbjogc3RyaW5nO1xuICBhcnJheV9pbnQ6IHN0cmluZztcbiAgYXJyYXlfZmxvYXQ6IHN0cmluZztcbiAgYXJyYXlfZG91YmxlPzogc3RyaW5nO1xuICBhcnJheV9zdHI/OiBzdHJpbmc7XG59XG4iXX0=