@testgorilla/tgo-coding-test 0.0.1 → 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 (354) hide show
  1. package/README.md +49 -2
  2. package/esm2022/index.mjs +12 -0
  3. package/esm2022/lib/components/code-editor/code-editor.component.mjs +335 -0
  4. package/esm2022/lib/components/code-editor/code-editor.service.mjs +72 -0
  5. package/esm2022/lib/components/code-editor/helpers/c-helper.mjs +40 -0
  6. package/esm2022/lib/components/code-editor/helpers/code-editor-helper.base.mjs +11 -0
  7. package/esm2022/lib/components/code-editor/helpers/code-editor-helper.model.mjs +2 -0
  8. package/esm2022/lib/components/code-editor/helpers/cpp-helper.mjs +41 -0
  9. package/esm2022/lib/components/code-editor/helpers/csharp-helper.mjs +42 -0
  10. package/esm2022/lib/components/code-editor/helpers/go-helper.mjs +42 -0
  11. package/esm2022/lib/components/code-editor/helpers/index.mjs +16 -0
  12. package/esm2022/lib/components/code-editor/helpers/java-helper.mjs +42 -0
  13. package/esm2022/lib/components/code-editor/helpers/javascript-helper.mjs +26 -0
  14. package/esm2022/lib/components/code-editor/helpers/kotlin-helper.mjs +42 -0
  15. package/esm2022/lib/components/code-editor/helpers/php-helper.mjs +26 -0
  16. package/esm2022/lib/components/code-editor/helpers/python-helper.mjs +26 -0
  17. package/esm2022/lib/components/code-editor/helpers/r-helper.mjs +26 -0
  18. package/esm2022/lib/components/code-editor/helpers/ruby-helper.mjs +26 -0
  19. package/esm2022/lib/components/code-editor/helpers/scala-helper.mjs +41 -0
  20. package/esm2022/lib/components/code-editor/helpers/sql-helper.mjs +34 -0
  21. package/esm2022/lib/components/code-editor/helpers/swift-helper.mjs +40 -0
  22. package/esm2022/lib/components/code-editor/helpers/typescript-helper.mjs +41 -0
  23. package/esm2022/lib/components/code-editor/models/code-editor.model.mjs +2 -0
  24. package/esm2022/lib/components/code-editor/models/coding-snapshot.model.mjs +2 -0
  25. package/esm2022/lib/components/coding-question/coding-question.component.mjs +126 -0
  26. package/esm2022/lib/components/coding-section/coding-section.component.mjs +188 -0
  27. package/esm2022/lib/components/common/truncated-text/truncated-text.component.mjs +38 -0
  28. package/esm2022/lib/components/configurations/configurations.component.mjs +97 -0
  29. package/esm2022/lib/components/instructions/instructions.component.mjs +139 -0
  30. package/esm2022/lib/components/panel/panel.component.mjs +34 -0
  31. package/esm2022/lib/components/runnable-editor/runnable-editor.component.mjs +169 -0
  32. package/esm2022/lib/components/tests/test-cases/test-cases.component.mjs +198 -0
  33. package/esm2022/lib/components/tests/test-cases-content/test-cases-content.component.mjs +96 -0
  34. package/esm2022/lib/components/tests/test-cases-status/test-cases-status.component.mjs +21 -0
  35. package/esm2022/lib/components/tests/test-results.component.mjs +127 -0
  36. package/esm2022/lib/components/tgo-coding-test/tgo-coding-test.component.mjs +280 -0
  37. package/esm2022/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.mjs +476 -0
  38. package/esm2022/lib/config/index.mjs +2 -0
  39. package/esm2022/lib/config/tgo-coding-test.config.mjs +2 -0
  40. package/esm2022/lib/config/tgo-coding-test.provider.mjs +34 -0
  41. package/esm2022/lib/config/tgo-coding-test.token.mjs +14 -0
  42. package/esm2022/lib/models/auto-saved-data.mjs +2 -0
  43. package/esm2022/lib/models/code-event.mjs +2 -0
  44. package/esm2022/lib/models/coderunner-execution-results.mjs +2 -0
  45. package/esm2022/lib/models/configs.mjs +2 -0
  46. package/esm2022/lib/models/language-change-action.mjs +2 -0
  47. package/esm2022/lib/models/lat-languages.mjs +3 -0
  48. package/esm2022/lib/models/mixpanel-events.mjs +2 -0
  49. package/esm2022/lib/models/mode.mjs +2 -0
  50. package/esm2022/lib/models/paste-data.mjs +2 -0
  51. package/esm2022/lib/models/programming-language.mjs +2 -0
  52. package/esm2022/lib/models/test-cases.mjs +7 -0
  53. package/esm2022/lib/models/theme.mjs +2 -0
  54. package/esm2022/lib/models/translations.mjs +2 -0
  55. package/esm2022/lib/models/view-mode.mjs +8 -0
  56. package/esm2022/lib/pipes/memoize-func.pipe.mjs +39 -0
  57. package/esm2022/lib/services/candidate-coding-test-services/candidature-api.service.mjs +19 -0
  58. package/esm2022/lib/services/candidate-coding-test-services/coderunner-api.service.mjs +58 -0
  59. package/esm2022/lib/services/candidate-coding-test-services/coding-test-tour.service.mjs +89 -0
  60. package/esm2022/lib/services/candidate-coding-test-services/coding-test.service.mjs +490 -0
  61. package/esm2022/lib/services/candidate-coding-test-services/index.mjs +5 -0
  62. package/esm2022/lib/services/coding-test-config.service.mjs +51 -0
  63. package/esm2022/lib/services/configurations.service.mjs +89 -0
  64. package/esm2022/lib/services/lib-coding-test.service.mjs +106 -0
  65. package/esm2022/lib/services/storage.service.mjs +624 -0
  66. package/esm2022/lib/services/test-cases.service.mjs +30 -0
  67. package/esm2022/lib/services/theme.service.mjs +36 -0
  68. package/esm2022/lib/utils/additional-languages/erlang.mjs +103 -0
  69. package/esm2022/lib/utils/resize-element.mjs +13 -0
  70. package/esm2022/lib/utils/time-to-ms.util.mjs +11 -0
  71. package/esm2022/shared/index.mjs +5 -0
  72. package/esm2022/shared/lib/components/audio-animation/audio-animation.component.mjs +114 -0
  73. package/esm2022/shared/lib/components/audio-animation/index.mjs +2 -0
  74. package/esm2022/shared/lib/components/index.mjs +3 -0
  75. package/esm2022/shared/lib/components/vimeo-video/index.mjs +2 -0
  76. package/esm2022/shared/lib/components/vimeo-video/vimeo-video.component.mjs +101 -0
  77. package/esm2022/shared/lib/models/answer.mjs +2 -0
  78. package/esm2022/shared/lib/models/assessment.mjs +2 -0
  79. package/esm2022/shared/lib/models/environment.mjs +2 -0
  80. package/esm2022/shared/lib/models/index.mjs +9 -0
  81. package/esm2022/shared/lib/models/question-component.mjs +2 -0
  82. package/esm2022/shared/lib/models/question.mjs +2 -0
  83. package/esm2022/shared/lib/models/test.mjs +2 -0
  84. package/esm2022/shared/lib/models/translations.mjs +2 -0
  85. package/esm2022/shared/lib/models/window.mjs +2 -0
  86. package/esm2022/shared/lib/services/api/api.service.mjs +97 -0
  87. package/esm2022/shared/lib/services/api/mocked-api.service.mjs +131 -0
  88. package/esm2022/shared/lib/services/environment/environment.service.mjs +13 -0
  89. package/esm2022/shared/lib/services/index.mjs +10 -0
  90. package/esm2022/shared/lib/services/localization/languages.model.mjs +19 -0
  91. package/esm2022/shared/lib/services/localization/transloco-lazy-module-utils.mjs +27 -0
  92. package/esm2022/shared/lib/services/localization/transloco-testing.module.mjs +11 -0
  93. package/esm2022/shared/lib/services/media/media.service.mjs +129 -0
  94. package/esm2022/shared/lib/services/mixpanel/mixpanel.service.mjs +30 -0
  95. package/esm2022/shared/lib/services/theme/theme.service.mjs +24 -0
  96. package/esm2022/shared/test-mocks/assessment-test.mock.mjs +112 -0
  97. package/esm2022/shared/test-mocks/index.mjs +3 -0
  98. package/esm2022/shared/test-mocks/tgo-ui.mock.mjs +39 -0
  99. package/esm2022/testgorilla-tgo-coding-test.mjs +5 -0
  100. package/fesm2022/testgorilla-tgo-coding-test.mjs +4526 -0
  101. package/fesm2022/testgorilla-tgo-coding-test.mjs.map +1 -0
  102. package/{src/index.ts → index.d.ts} +2 -19
  103. package/lib/components/code-editor/code-editor.component.d.ts +54 -0
  104. package/lib/components/code-editor/code-editor.service.d.ts +12 -0
  105. package/lib/components/code-editor/helpers/c-helper.d.ts +11 -0
  106. package/lib/components/code-editor/helpers/code-editor-helper.base.d.ts +8 -0
  107. package/lib/components/code-editor/helpers/code-editor-helper.model.d.ts +62 -0
  108. package/lib/components/code-editor/helpers/cpp-helper.d.ts +11 -0
  109. package/lib/components/code-editor/helpers/csharp-helper.d.ts +12 -0
  110. package/lib/components/code-editor/helpers/go-helper.d.ts +12 -0
  111. package/lib/components/code-editor/helpers/java-helper.d.ts +12 -0
  112. package/lib/components/code-editor/helpers/javascript-helper.d.ts +10 -0
  113. package/lib/components/code-editor/helpers/kotlin-helper.d.ts +12 -0
  114. package/lib/components/code-editor/helpers/php-helper.d.ts +10 -0
  115. package/lib/components/code-editor/helpers/python-helper.d.ts +10 -0
  116. package/lib/components/code-editor/helpers/r-helper.d.ts +10 -0
  117. package/lib/components/code-editor/helpers/ruby-helper.d.ts +10 -0
  118. package/lib/components/code-editor/helpers/scala-helper.d.ts +12 -0
  119. package/lib/components/code-editor/helpers/sql-helper.d.ts +10 -0
  120. package/lib/components/code-editor/helpers/swift-helper.d.ts +11 -0
  121. package/lib/components/code-editor/helpers/typescript-helper.d.ts +11 -0
  122. package/lib/components/code-editor/models/code-editor.model.d.ts +8 -0
  123. package/lib/components/code-editor/models/coding-snapshot.model.d.ts +4 -0
  124. package/lib/components/coding-question/coding-question.component.d.ts +45 -0
  125. package/lib/components/coding-section/coding-section.component.d.ts +52 -0
  126. package/lib/components/common/truncated-text/truncated-text.component.d.ts +13 -0
  127. package/lib/components/configurations/configurations.component.d.ts +40 -0
  128. package/lib/components/instructions/instructions.component.d.ts +48 -0
  129. package/lib/components/panel/panel.component.d.ts +12 -0
  130. package/lib/components/runnable-editor/runnable-editor.component.d.ts +53 -0
  131. package/lib/components/tests/test-cases/test-cases.component.d.ts +46 -0
  132. package/lib/components/tests/test-cases-content/test-cases-content.component.d.ts +26 -0
  133. package/lib/components/tests/test-cases-status/test-cases-status.component.d.ts +9 -0
  134. package/lib/components/tests/test-results.component.d.ts +33 -0
  135. package/lib/components/tgo-coding-test/tgo-coding-test.component.d.ts +69 -0
  136. package/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.d.ts +101 -0
  137. package/{src/lib/config/index.ts → lib/config/index.d.ts} +0 -1
  138. package/lib/config/tgo-coding-test.config.d.ts +24 -0
  139. package/{src/lib/config/tgo-coding-test.provider.ts → lib/config/tgo-coding-test.provider.d.ts} +6 -18
  140. package/lib/config/tgo-coding-test.token.d.ts +9 -0
  141. package/lib/models/auto-saved-data.d.ts +42 -0
  142. package/lib/models/code-event.d.ts +15 -0
  143. package/lib/models/coderunner-execution-results.d.ts +51 -0
  144. package/lib/models/configs.d.ts +15 -0
  145. package/lib/models/language-change-action.d.ts +4 -0
  146. package/lib/models/lat-languages.d.ts +8 -0
  147. package/lib/models/mixpanel-events.d.ts +3 -0
  148. package/lib/models/mode.d.ts +5 -0
  149. package/lib/models/paste-data.d.ts +4 -0
  150. package/lib/models/programming-language.d.ts +8 -0
  151. package/lib/models/test-cases.d.ts +67 -0
  152. package/lib/models/theme.d.ts +4 -0
  153. package/lib/models/translations.d.ts +1 -0
  154. package/lib/models/view-mode.d.ts +6 -0
  155. package/{src/lib/pipes/memoize-func.pipe.ts → lib/pipes/memoize-func.pipe.d.ts} +6 -14
  156. package/lib/services/candidate-coding-test-services/candidature-api.service.d.ts +10 -0
  157. package/lib/services/candidate-coding-test-services/coderunner-api.service.d.ts +18 -0
  158. package/lib/services/candidate-coding-test-services/coding-test-tour.service.d.ts +22 -0
  159. package/lib/services/candidate-coding-test-services/coding-test.service.d.ts +68 -0
  160. package/{src/lib/services/candidate-coding-test-services/index.ts → lib/services/candidate-coding-test-services/index.d.ts} +1 -1
  161. package/lib/services/coding-test-config.service.d.ts +38 -0
  162. package/lib/services/configurations.service.d.ts +37 -0
  163. package/lib/services/lib-coding-test.service.d.ts +69 -0
  164. package/lib/services/storage.service.d.ts +83 -0
  165. package/lib/services/test-cases.service.d.ts +12 -0
  166. package/lib/services/theme.service.d.ts +17 -0
  167. package/lib/utils/additional-languages/erlang.d.ts +37 -0
  168. package/lib/utils/resize-element.d.ts +2 -0
  169. package/lib/utils/time-to-ms.util.d.ts +1 -0
  170. package/package.json +18 -7
  171. package/shared/index.d.ts +4 -0
  172. package/shared/lib/components/audio-animation/audio-animation.component.d.ts +27 -0
  173. package/shared/lib/components/audio-animation/index.d.ts +1 -0
  174. package/shared/lib/components/index.d.ts +2 -0
  175. package/shared/lib/components/vimeo-video/index.d.ts +1 -0
  176. package/shared/lib/components/vimeo-video/vimeo-video.component.d.ts +24 -0
  177. package/shared/lib/models/answer.d.ts +17 -0
  178. package/shared/lib/models/assessment.d.ts +80 -0
  179. package/shared/lib/models/environment.d.ts +1 -0
  180. package/shared/lib/models/index.d.ts +8 -0
  181. package/shared/lib/models/question-component.d.ts +54 -0
  182. package/shared/lib/models/question.d.ts +102 -0
  183. package/shared/lib/models/test.d.ts +81 -0
  184. package/shared/lib/models/translations.d.ts +1 -0
  185. package/shared/lib/models/window.d.ts +6 -0
  186. package/shared/lib/services/api/api.service.d.ts +25 -0
  187. package/shared/lib/services/api/mocked-api.service.d.ts +35 -0
  188. package/shared/lib/services/environment/environment.service.d.ts +6 -0
  189. package/shared/lib/services/index.d.ts +9 -0
  190. package/shared/lib/services/localization/languages.model.d.ts +15 -0
  191. package/shared/lib/services/localization/transloco-lazy-module-utils.d.ts +11 -0
  192. package/shared/lib/services/localization/transloco-testing.module.d.ts +2 -0
  193. package/shared/lib/services/media/media.service.d.ts +29 -0
  194. package/shared/lib/services/mixpanel/mixpanel.service.d.ts +10 -0
  195. package/shared/lib/services/theme/theme.service.d.ts +8 -0
  196. package/shared/test-mocks/assessment-test.mock.d.ts +21 -0
  197. package/shared/test-mocks/index.d.ts +2 -0
  198. package/shared/test-mocks/tgo-ui.mock.d.ts +21 -0
  199. package/.eslintrc.json +0 -45
  200. package/jest.config.ts +0 -21
  201. package/ng-package.json +0 -14
  202. package/project.json +0 -36
  203. package/src/lib/components/.gitkeep +0 -0
  204. package/src/lib/components/code-editor/code-editor.component.html +0 -10
  205. package/src/lib/components/code-editor/code-editor.component.scss +0 -21
  206. package/src/lib/components/code-editor/code-editor.component.spec.ts +0 -136
  207. package/src/lib/components/code-editor/code-editor.component.ts +0 -369
  208. package/src/lib/components/code-editor/code-editor.mocks.ts +0 -28
  209. package/src/lib/components/code-editor/code-editor.service.spec.ts +0 -160
  210. package/src/lib/components/code-editor/code-editor.service.ts +0 -94
  211. package/src/lib/components/code-editor/helpers/c-helper.spec.ts +0 -39
  212. package/src/lib/components/code-editor/helpers/c-helper.ts +0 -51
  213. package/src/lib/components/code-editor/helpers/code-editor-helper.base.spec.ts +0 -30
  214. package/src/lib/components/code-editor/helpers/code-editor-helper.base.ts +0 -16
  215. package/src/lib/components/code-editor/helpers/code-editor-helper.mocks.ts +0 -24
  216. package/src/lib/components/code-editor/helpers/code-editor-helper.model.ts +0 -67
  217. package/src/lib/components/code-editor/helpers/cpp-helper.spec.ts +0 -40
  218. package/src/lib/components/code-editor/helpers/cpp-helper.ts +0 -52
  219. package/src/lib/components/code-editor/helpers/csharp-helper.spec.ts +0 -42
  220. package/src/lib/components/code-editor/helpers/csharp-helper.ts +0 -55
  221. package/src/lib/components/code-editor/helpers/go-helper.spec.ts +0 -41
  222. package/src/lib/components/code-editor/helpers/go-helper.ts +0 -54
  223. package/src/lib/components/code-editor/helpers/java-helper.spec.ts +0 -41
  224. package/src/lib/components/code-editor/helpers/java-helper.ts +0 -54
  225. package/src/lib/components/code-editor/helpers/javascript-helper.spec.ts +0 -39
  226. package/src/lib/components/code-editor/helpers/javascript-helper.ts +0 -32
  227. package/src/lib/components/code-editor/helpers/kotlin-helper.spec.ts +0 -41
  228. package/src/lib/components/code-editor/helpers/kotlin-helper.ts +0 -54
  229. package/src/lib/components/code-editor/helpers/php-helper.spec.ts +0 -39
  230. package/src/lib/components/code-editor/helpers/php-helper.ts +0 -32
  231. package/src/lib/components/code-editor/helpers/python-helper.spec.ts +0 -39
  232. package/src/lib/components/code-editor/helpers/python-helper.ts +0 -32
  233. package/src/lib/components/code-editor/helpers/r-helper.spec.ts +0 -39
  234. package/src/lib/components/code-editor/helpers/r-helper.ts +0 -32
  235. package/src/lib/components/code-editor/helpers/ruby-helper.spec.ts +0 -39
  236. package/src/lib/components/code-editor/helpers/ruby-helper.ts +0 -32
  237. package/src/lib/components/code-editor/helpers/scala-helper.spec.ts +0 -41
  238. package/src/lib/components/code-editor/helpers/scala-helper.ts +0 -53
  239. package/src/lib/components/code-editor/helpers/sql-helper.spec.ts +0 -87
  240. package/src/lib/components/code-editor/helpers/sql-helper.ts +0 -44
  241. package/src/lib/components/code-editor/helpers/swift-helper.spec.ts +0 -40
  242. package/src/lib/components/code-editor/helpers/swift-helper.ts +0 -51
  243. package/src/lib/components/code-editor/helpers/typescript-helper.spec.ts +0 -40
  244. package/src/lib/components/code-editor/helpers/typescript-helper.ts +0 -52
  245. package/src/lib/components/code-editor/models/code-editor.model.ts +0 -9
  246. package/src/lib/components/code-editor/models/coding-snapshot.model.ts +0 -4
  247. package/src/lib/components/coding-question/coding-question.component.html +0 -78
  248. package/src/lib/components/coding-question/coding-question.component.scss +0 -76
  249. package/src/lib/components/coding-question/coding-question.component.spec.ts +0 -85
  250. package/src/lib/components/coding-question/coding-question.component.ts +0 -102
  251. package/src/lib/components/coding-section/coding-section.component.html +0 -82
  252. package/src/lib/components/coding-section/coding-section.component.scss +0 -64
  253. package/src/lib/components/coding-section/coding-section.component.spec.ts +0 -257
  254. package/src/lib/components/coding-section/coding-section.component.ts +0 -187
  255. package/src/lib/components/coding-test.module.ts +0 -124
  256. package/src/lib/components/common/truncated-text/truncated-text.component.html +0 -6
  257. package/src/lib/components/common/truncated-text/truncated-text.component.scss +0 -18
  258. package/src/lib/components/common/truncated-text/truncated-text.component.spec.ts +0 -84
  259. package/src/lib/components/common/truncated-text/truncated-text.component.ts +0 -37
  260. package/src/lib/components/configurations/configurations.component.html +0 -57
  261. package/src/lib/components/configurations/configurations.component.scss +0 -42
  262. package/src/lib/components/configurations/configurations.component.spec.ts +0 -186
  263. package/src/lib/components/configurations/configurations.component.ts +0 -98
  264. package/src/lib/components/instructions/instructions.component.html +0 -41
  265. package/src/lib/components/instructions/instructions.component.scss +0 -167
  266. package/src/lib/components/instructions/instructions.component.spec.ts +0 -106
  267. package/src/lib/components/instructions/instructions.component.ts +0 -138
  268. package/src/lib/components/panel/panel.component.html +0 -19
  269. package/src/lib/components/panel/panel.component.scss +0 -41
  270. package/src/lib/components/panel/panel.component.spec.ts +0 -40
  271. package/src/lib/components/panel/panel.component.ts +0 -34
  272. package/src/lib/components/runnable-editor/runnable-editor.component.html +0 -75
  273. package/src/lib/components/runnable-editor/runnable-editor.component.scss +0 -55
  274. package/src/lib/components/runnable-editor/runnable-editor.component.spec.ts +0 -124
  275. package/src/lib/components/runnable-editor/runnable-editor.component.ts +0 -155
  276. package/src/lib/components/tests/test-cases/test-cases.component.html +0 -135
  277. package/src/lib/components/tests/test-cases/test-cases.component.scss +0 -220
  278. package/src/lib/components/tests/test-cases/test-cases.component.spec.ts +0 -401
  279. package/src/lib/components/tests/test-cases/test-cases.component.ts +0 -205
  280. package/src/lib/components/tests/test-cases-content/test-cases-content.component.html +0 -94
  281. package/src/lib/components/tests/test-cases-content/test-cases-content.component.scss +0 -103
  282. package/src/lib/components/tests/test-cases-content/test-cases-content.component.spec.ts +0 -122
  283. package/src/lib/components/tests/test-cases-content/test-cases-content.component.ts +0 -102
  284. package/src/lib/components/tests/test-cases-status/test-cases-status.component.html +0 -16
  285. package/src/lib/components/tests/test-cases-status/test-cases-status.component.scss +0 -49
  286. package/src/lib/components/tests/test-cases-status/test-cases-status.component.spec.ts +0 -22
  287. package/src/lib/components/tests/test-cases-status/test-cases-status.component.ts +0 -18
  288. package/src/lib/components/tests/test-results.component.html +0 -119
  289. package/src/lib/components/tests/test-results.component.scss +0 -189
  290. package/src/lib/components/tests/test-results.component.spec.ts +0 -140
  291. package/src/lib/components/tests/test-results.component.ts +0 -98
  292. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.html +0 -96
  293. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.scss +0 -6
  294. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.spec.ts +0 -599
  295. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.ts +0 -279
  296. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.html +0 -36
  297. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.scss +0 -183
  298. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.spec.ts +0 -883
  299. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.ts +0 -575
  300. package/src/lib/config/tgo-coding-test.config.ts +0 -26
  301. package/src/lib/config/tgo-coding-test.token.ts +0 -21
  302. package/src/lib/models/.gitkeep +0 -0
  303. package/src/lib/models/auto-saved-data.ts +0 -51
  304. package/src/lib/models/code-event.ts +0 -17
  305. package/src/lib/models/coderunner-execution-results.ts +0 -58
  306. package/src/lib/models/coding-lib.mocks.ts +0 -246
  307. package/src/lib/models/configs.ts +0 -18
  308. package/src/lib/models/language-change-action.ts +0 -4
  309. package/src/lib/models/lat-languages.ts +0 -12
  310. package/src/lib/models/mixpanel-events.ts +0 -3
  311. package/src/lib/models/mode.ts +0 -5
  312. package/src/lib/models/paste-data.ts +0 -4
  313. package/src/lib/models/programming-language.ts +0 -9
  314. package/src/lib/models/test-cases.ts +0 -74
  315. package/src/lib/models/theme.ts +0 -5
  316. package/src/lib/models/translations.ts +0 -1
  317. package/src/lib/models/view-mode.ts +0 -6
  318. package/src/lib/services/.gitkeep +0 -0
  319. package/src/lib/services/candidate-coding-test-services/candidature-api.service.spec.ts +0 -40
  320. package/src/lib/services/candidate-coding-test-services/candidature-api.service.ts +0 -15
  321. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.spec.ts +0 -134
  322. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.ts +0 -105
  323. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.spec.ts +0 -161
  324. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.ts +0 -100
  325. package/src/lib/services/candidate-coding-test-services/coding-test.service.spec.ts +0 -1524
  326. package/src/lib/services/candidate-coding-test-services/coding-test.service.ts +0 -843
  327. package/src/lib/services/coding-test-config.service.ts +0 -48
  328. package/src/lib/services/configurations.service.mocks.ts +0 -77
  329. package/src/lib/services/configurations.service.spec.ts +0 -79
  330. package/src/lib/services/configurations.service.ts +0 -111
  331. package/src/lib/services/index.ts +0 -0
  332. package/src/lib/services/lib-coding-test.service.spec.ts +0 -265
  333. package/src/lib/services/lib-coding-test.service.ts +0 -157
  334. package/src/lib/services/local-storage.service.mocks.ts +0 -22
  335. package/src/lib/services/storage.service.spec.ts +0 -1120
  336. package/src/lib/services/storage.service.ts +0 -729
  337. package/src/lib/services/test-cases.service.spec.ts +0 -53
  338. package/src/lib/services/test-cases.service.ts +0 -29
  339. package/src/lib/services/theme.service.spec.ts +0 -76
  340. package/src/lib/services/theme.service.ts +0 -34
  341. package/src/lib/styles/mixins.scss +0 -86
  342. package/src/lib/styles/styles.scss +0 -112
  343. package/src/lib/styles/variables.scss +0 -105
  344. package/src/lib/utils/.gitkeep +0 -0
  345. package/src/lib/utils/additional-languages/erlang.ts +0 -115
  346. package/src/lib/utils/resize-element.ts +0 -15
  347. package/src/lib/utils/time-to-ms.util.ts +0 -10
  348. package/src/test-setup.ts +0 -1
  349. package/tsconfig.json +0 -16
  350. package/tsconfig.lib.json +0 -12
  351. package/tsconfig.lib.prod.json +0 -9
  352. package/tsconfig.spec.json +0 -13
  353. /package/{src/assets → assets}/i18n/en.json +0 -0
  354. /package/{src/lib/components/code-editor/helpers/index.ts → lib/components/code-editor/helpers/index.d.ts} +0 -0
@@ -0,0 +1,34 @@
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
+ import { TGO_CODING_TEST_CONFIG } from './tgo-coding-test.token';
3
+ /**
4
+ * Provides the TGO Coding Test library configuration.
5
+ *
6
+ * This function should be called in the consuming application's
7
+ * app.config.ts (for standalone apps) or module providers.
8
+ *
9
+ * @param config - The configuration object containing required settings
10
+ * @returns EnvironmentProviders that can be added to the application providers
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { provideTgoCodingTest } from '@testgorilla/tgo-coding-test';
15
+ * import { environment } from './environments/environment';
16
+ *
17
+ * export const appConfig: ApplicationConfig = {
18
+ * providers: [
19
+ * provideTgoCodingTest({
20
+ * coderunnerV2Endpoint: environment.coderunnerV2Endpoint,
21
+ * }),
22
+ * ],
23
+ * };
24
+ * ```
25
+ */
26
+ export function provideTgoCodingTest(config) {
27
+ return makeEnvironmentProviders([
28
+ {
29
+ provide: TGO_CODING_TEST_CONFIG,
30
+ useValue: config,
31
+ },
32
+ ]);
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGdvLWNvZGluZy10ZXN0LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvY29uZmlnL3Rnby1jb2RpbmctdGVzdC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR2pFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxNQUEyQjtJQUUzQixPQUFPLHdCQUF3QixDQUFDO1FBQzlCO1lBQ0UsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixRQUFRLEVBQUUsTUFBTTtTQUNqQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUR09fQ09ESU5HX1RFU1RfQ09ORklHIH0gZnJvbSAnLi90Z28tY29kaW5nLXRlc3QudG9rZW4nO1xuaW1wb3J0IHsgVGdvQ29kaW5nVGVzdENvbmZpZyB9IGZyb20gJy4vdGdvLWNvZGluZy10ZXN0LmNvbmZpZyc7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIFRHTyBDb2RpbmcgVGVzdCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uXG4gKiBcbiAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBpbiB0aGUgY29uc3VtaW5nIGFwcGxpY2F0aW9uJ3NcbiAqIGFwcC5jb25maWcudHMgKGZvciBzdGFuZGFsb25lIGFwcHMpIG9yIG1vZHVsZSBwcm92aWRlcnMuXG4gKiBcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgY29udGFpbmluZyByZXF1aXJlZCBzZXR0aW5nc1xuICogQHJldHVybnMgRW52aXJvbm1lbnRQcm92aWRlcnMgdGhhdCBjYW4gYmUgYWRkZWQgdG8gdGhlIGFwcGxpY2F0aW9uIHByb3ZpZGVyc1xuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcHJvdmlkZVRnb0NvZGluZ1Rlc3QgfSBmcm9tICdAdGVzdGdvcmlsbGEvdGdvLWNvZGluZy10ZXN0JztcbiAqIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuICogXG4gKiBleHBvcnQgY29uc3QgYXBwQ29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZyA9IHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVRnb0NvZGluZ1Rlc3Qoe1xuICogICAgICAgY29kZXJ1bm5lclYyRW5kcG9pbnQ6IGVudmlyb25tZW50LmNvZGVydW5uZXJWMkVuZHBvaW50LFxuICogICAgIH0pLFxuICogICBdLFxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRnb0NvZGluZ1Rlc3QoXG4gIGNvbmZpZzogVGdvQ29kaW5nVGVzdENvbmZpZ1xuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUR09fQ09ESU5HX1RFU1RfQ09ORklHLFxuICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICB9LFxuICBdKTtcbn1cblxuIl19
@@ -0,0 +1,14 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Injection token for the TGO Coding Test library configuration.
4
+ *
5
+ * This token is used to inject the runtime configuration provided
6
+ * by the consuming application into library services.
7
+ */
8
+ export const TGO_CODING_TEST_CONFIG = new InjectionToken('TGO_CODING_TEST_CONFIG', {
9
+ providedIn: 'root',
10
+ factory: () => {
11
+ throw new Error('TGO_CODING_TEST_CONFIG must be provided. Use provideTgoCodingTest() in your app.config.ts or component providers.');
12
+ },
13
+ });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGdvLWNvZGluZy10ZXN0LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvY29uZmlnL3Rnby1jb2RpbmctdGVzdC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHdCQUF3QixFQUN4QjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixNQUFNLElBQUksS0FBSyxDQUNiLG1IQUFtSCxDQUNwSCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZ29Db2RpbmdUZXN0Q29uZmlnIH0gZnJvbSAnLi90Z28tY29kaW5nLXRlc3QuY29uZmlnJztcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIHRoZSBUR08gQ29kaW5nIFRlc3QgbGlicmFyeSBjb25maWd1cmF0aW9uLlxuICogXG4gKiBUaGlzIHRva2VuIGlzIHVzZWQgdG8gaW5qZWN0IHRoZSBydW50aW1lIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWRcbiAqIGJ5IHRoZSBjb25zdW1pbmcgYXBwbGljYXRpb24gaW50byBsaWJyYXJ5IHNlcnZpY2VzLlxuICovXG5leHBvcnQgY29uc3QgVEdPX0NPRElOR19URVNUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUZ29Db2RpbmdUZXN0Q29uZmlnPihcbiAgJ1RHT19DT0RJTkdfVEVTVF9DT05GSUcnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RHT19DT0RJTkdfVEVTVF9DT05GSUcgbXVzdCBiZSBwcm92aWRlZC4gVXNlIHByb3ZpZGVUZ29Db2RpbmdUZXN0KCkgaW4geW91ciBhcHAuY29uZmlnLnRzIG9yIGNvbXBvbmVudCBwcm92aWRlcnMuJ1xuICAgICAgKTtcbiAgICB9LFxuICB9XG4pO1xuXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zYXZlZC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvbW9kZWxzL2F1dG8tc2F2ZWQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUVkaXRvckxhbmd1YWdlcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29kZS1lZGl0b3IvaGVscGVycy9jb2RlLWVkaXRvci1oZWxwZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi9jb25maWdzJztcbmltcG9ydCB7IEN1c3RvbVRlc3RDYXNlLCBFeGFtcGxlVGVzdENhc2UgfSBmcm9tICcuL3Rlc3QtY2FzZXMnO1xuXG5leHBvcnQgdHlwZSBUZXN0RGF0YSA9IHtcbiAgY29kZToge1xuICAgIFtrZXkgaW4gQ29kZUVkaXRvckxhbmd1YWdlc10/OiBzdHJpbmc7XG4gIH07XG4gIHRlc3RDYXNlc0xBVD86IChDdXN0b21UZXN0Q2FzZSB8IEV4YW1wbGVUZXN0Q2FzZSlbXTtcbiAgbGFzdE1vZGlmaWVkPzogbnVtYmVyOyAvLyB0aW1lc3RhbXAgd2hlbiB0aGlzIGVudHJ5IHdhcyBsYXN0IG1vZGlmaWVkXG59O1xuXG4vLyBGb3IgdjIgc2NoZW1hXG5leHBvcnQgdHlwZSBRdWVzdGlvbkRhdGEgPSB7XG4gIHByZXZpZXc/OiBUZXN0RGF0YTtcbiAgYWN0dWFsPzogVGVzdERhdGE7XG4gIGxhc3RNb2RpZmllZD86IG51bWJlcjtcbn07XG5cbi8vIFZlcnNpb24gMSBzY2hlbWEgLSBvcmlnaW5hbFxuZXhwb3J0IHR5cGUgQXV0b1NhdmVkRGF0YVYxID0ge1xuICBjb25maWc6IENvbmZpZztcbiAgaXNGdWxsc2NyZWVuOiBib29sZWFuO1xuICBhc3Nlc3NtZW50czoge1xuICAgIFtrZXk6IHN0cmluZ106IFRlc3REYXRhO1xuICB9O1xuICBsYXN0TGFuZ3VhZ2VMQVQ/OiB7XG4gICAgdmFsdWU6IENvZGVFZGl0b3JMYW5ndWFnZXM7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICB9O1xufTtcblxuLy8gVmVyc2lvbiAyIHNjaGVtYSAtIHNlcGFyYXRlZCBieSBxdWVzdGlvbklkXG5leHBvcnQgdHlwZSBBdXRvU2F2ZWREYXRhVjIgPSB7XG4gIHZlcnNpb246IDI7XG4gIGNvbmZpZzogQ29uZmlnO1xuICBpc0Z1bGxzY3JlZW46IGJvb2xlYW47XG4gIGFzc2Vzc21lbnRzOiB7XG4gICAgW2Fzc2Vzc21lbnRJZDogc3RyaW5nXToge1xuICAgICAgW3F1ZXN0aW9uSWQ6IHN0cmluZ106IFF1ZXN0aW9uRGF0YTtcbiAgICB9O1xuICB9O1xuICBsYXN0TGFuZ3VhZ2VMQVQ/OiB7XG4gICAgdmFsdWU6IENvZGVFZGl0b3JMYW5ndWFnZXM7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICB9IHwgbnVsbDtcbiAgbGFzdE1vZGlmaWVkOiBudW1iZXI7XG59O1xuXG4vLyBDdXJyZW50IHZlcnNpb25cbmV4cG9ydCB0eXBlIEF1dG9TYXZlZERhdGEgPSBBdXRvU2F2ZWREYXRhVjI7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9jb2RlLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvZGVFdmVudCB7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbiAgZXh0cmFfcGF5bG9hZDogc3RyaW5nO1xuICBldmVudF90eXBlOiBDb2RlRXZlbnRUeXBlRW51bTtcbiAgYXR0ZW1wdF9pZDogc3RyaW5nIHwgbnVsbDtcbiAgcXVlc3Rpb25fcmVzdWx0X2lkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUV2ZW50UmVzcG9uc2UgZXh0ZW5kcyBDb2RlRXZlbnQge1xuICBpZDogc3RyaW5nO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gIHVwZGF0ZWRfYXQ6IHN0cmluZztcbn1cblxudHlwZSBDb2RlRXZlbnRUeXBlRW51bSA9XG4gICdBVVRPU0FWRScgfCAnU1dJVENIJyB8ICdDT1BZUEFTVEUnIHwgJ0FUVEVNUFQnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export const TIMEOUT_SIGNAL = 'SIGKILL';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXJ1bm5lci1leGVjdXRpb24tcmVzdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9jb2RlcnVubmVyLWV4ZWN1dGlvbi1yZXN1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlEQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTcWxUZXN0UmVzdWx0IHtcbiAgY29udGVudDogc3RyaW5nO1xuICByZXNwb25zZV9tc2c6IHN0cmluZztcbiAgc3RkZXJyOiBzdHJpbmcgfCBudWxsO1xuICBzdGRvdXQ6IHN0cmluZ1tdO1xuICB0ZXN0X3Jlc3VsdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVUZXN0UmVzdWx0IHtcbiAgYWN0dWFsT3V0cHV0OiBzdHJpbmc7XG4gIGxvZ3M6IHN0cmluZztcbiAgc3RhdHVzOiAncGFzc2VkJyB8ICdlcnJvcic7XG59XG5cbmV4cG9ydCB0eXBlIFRlc3RSZXN1bHQgPSBTcWxUZXN0UmVzdWx0IHwgQ29kZVRlc3RSZXN1bHQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kaW5nVGVzdHNSZXN1bHRzTW9kZWwge1xuICBsaXN0UmVzcG9uc2U6IFRlc3RSZXN1bHRbXTtcbiAgcmVzdW1lOiB7XG4gICAgb2s6IG51bWJlcjtcbiAgICBlcnJvcjogbnVtYmVyO1xuICAgIHRvdGFsOiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZXJ1bm5lckF0dGVtcHRNb2RlbCB7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGNyZWF0ZWRfYXQ/OiBzdHJpbmc7XG4gIGV4ZWN1dGlvbnM/OiBDb2RlcnVubmVyVGVzdENhc2VFeGVjdXRpb25Nb2RlbFtdO1xuICBpZD86IHN0cmluZztcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIHF1ZXN0aW9uX3Jlc3VsdF9pZD86IG51bWJlcjtcbiAgdXBkYXRlZF9hdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2RlcnVubmVyVGVzdENhc2VFeGVjdXRpb25Nb2RlbCB7XG4gIGlucHV0OiBzdHJpbmc7XG4gIGV2YWx1YXRpb246IHtcbiAgICB0ZXN0Y2FzZT86IHN0cmluZztcbiAgfTtcbiAgcnVuOiBDb2RlUnVubmVyVGVzdENhc2VFeGVjdXRpb25PdXRwdXRNb2RlbDtcbiAgY29tcGlsZTogQ29kZVJ1bm5lclRlc3RDYXNlRXhlY3V0aW9uT3V0cHV0TW9kZWw7XG4gIGF0dGVtcHRfaWQ6IG51bGw7XG4gIHN1Ym1pc3Npb25faWQ6IG51bGw7XG4gIHZhbGlkYXRpb25faWQ6IG51bGw7XG4gIGlkOiBzdHJpbmc7XG4gIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgdXBkYXRlZF9hdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVSdW5uZXJUZXN0Q2FzZUV4ZWN1dGlvbk91dHB1dE1vZGVsIHtcbiAgc3Rkb3V0Pzogc3RyaW5nO1xuICBzdGRlcnI/OiBzdHJpbmc7XG4gIHNpZ25hbD86IHN0cmluZztcbiAgb3V0cHV0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVElNRU9VVF9TSUdOQUwgPSAnU0lHS0lMTCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9jb25maWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZXMgfSBmcm9tICcuL3RoZW1lJztcblxuZXhwb3J0IGNvbnN0IGVudW0gRm9ybWF0dGluZ09wdGlvbnMge1xuICBDb2xvclRoZW1lID0gJ0NvbG9yIHRoZW1lJyxcbiAgVGFiU2l6ZSA9ICdUYWIgc2l6ZScsXG4gIEZvbnRTaXplID0gJ0ZvbnQgc2l6ZScsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvZGluZ0Fzc2lzdGFuY2VPcHRpb25zIHtcbiAgQXV0b0NvbXBsZXRlID0gJ0F1dG8tY29tcGxldGUnLFxuICBFcnJvckhpZ2hsaWdodGluZyA9ICdFcnJvciBoaWdobGlnaHRpbmcnLFxuICBBdXRvQnJhY2tldHMgPSAnQXV0by1icmFja2V0cycsXG59XG5cbmV4cG9ydCB0eXBlIENvbmZpZ1ZhbHVlID0gVGhlbWVzIHwgbnVtYmVyIHwgYm9vbGVhbjtcbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgW2tleSBpbiBGb3JtYXR0aW5nT3B0aW9ucyB8IENvZGluZ0Fzc2lzdGFuY2VPcHRpb25zXT86IENvbmZpZ1ZhbHVlO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtY2hhbmdlLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9sYW5ndWFnZS1jaGFuZ2UtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBMYW5ndWFnZUNoYW5nZUFjdGlvbiB7XG4gIENhbmNlbCA9ICdjYW5jZWwnLFxuICBDb25maXJtID0gJ2NvbmZpcm0nLFxufVxuIl19
@@ -0,0 +1,3 @@
1
+ // This is only used for LAT to enable auto saving for preview questions to let user see updated code whenever he switches back and forth between languages
2
+ export const AssessmentIdPreview = 'preview-id';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0LWxhbmd1YWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9sYXQtbGFuZ3VhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLDJKQUEySjtBQUMzSixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRWRpdG9yTGFuZ3VhZ2VzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb2RlLWVkaXRvci9oZWxwZXJzL2NvZGUtZWRpdG9yLWhlbHBlci5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIExBVExhbmd1YWdlID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogQ29kZUVkaXRvckxhbmd1YWdlcztcbiAgdmVyc2lvbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIExBVExhbmd1YWdlcyA9IExBVExhbmd1YWdlW107XG5cbi8vIFRoaXMgaXMgb25seSB1c2VkIGZvciBMQVQgdG8gZW5hYmxlIGF1dG8gc2F2aW5nIGZvciBwcmV2aWV3IHF1ZXN0aW9ucyB0byBsZXQgdXNlciBzZWUgdXBkYXRlZCBjb2RlIHdoZW5ldmVyIGhlIHN3aXRjaGVzIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gbGFuZ3VhZ2VzXG5leHBvcnQgY29uc3QgQXNzZXNzbWVudElkUHJldmlldyA9ICdwcmV2aWV3LWlkJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4cGFuZWwtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvbW9kZWxzL21peHBhbmVsLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gTWl4cGFuZWxFdmVudHMge1xuICBDaGFuZ2VkU2V0dGluZ3MgPSAnQ2hhbmdlZCBDb2RlcnVubmVyIHNldHRpbmcnLFxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBNb2RlcyB7XG4gIFByZXZpZXcgPSAncHJldmlldycsXG4gIFJ1bm5pbmcgPSAncnVubmluZycsXG4gIE5vbkFzc2Vzc21lbnRQcmV2aWV3ID0gJ25vbi1hc3Nlc3NtZW50LXByZXZpZXcnLFxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzdGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy9wYXN0ZS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBhc3RlRGF0YSB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGF0YTogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbW1pbmctbGFuZ3VhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9tb2RlbHMvcHJvZ3JhbW1pbmctbGFuZ3VhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHJvZ3JhbW1pbmdMYW5ndWFnZSB7XG4gIGlkPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZW51bSBQcm9ncmFtbWluZ0xhbmd1YWdlVmVyc2lvbmVkIHtcbiAgU1FMaXRlID0gJ3NxbGl0ZTMtMy4zNi4wJyxcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export var TestCaseStatus;
2
+ (function (TestCaseStatus) {
3
+ TestCaseStatus["Passed"] = "passed";
4
+ TestCaseStatus["Error"] = "error";
5
+ TestCaseStatus["Empty"] = "empty";
6
+ })(TestCaseStatus || (TestCaseStatus = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL21vZGVscy90ZXN0LWNhc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCQSxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLG1DQUFpQixDQUFBO0lBQ2pCLGlDQUFlLENBQUE7SUFDZixpQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEN1c3RvbVRlc3RDYXNlID0ge1xuICBsb2NhbElkPzogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8vIGlucHV0IGlzIG9wdGlvbmFsIGZvciBzcWwgdGVzdCBjYXNlc1xuICBpbnB1dD86IHN0cmluZztcbiAgZXhwZWN0ZWRPdXRwdXQ6IHN0cmluZztcbiAgcHJlbG9hZGVkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRXhhbXBsZVRlc3RDYXNlID0gQ3VzdG9tVGVzdENhc2UgJiB7XG4gIGlkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBUZXN0Q2FzZVJlc3VsdCA9IHtcbiAgYWN0dWFsT3V0cHV0OiBzdHJpbmc7XG4gIGxvZ3M6IHN0cmluZztcbiAgc3RhdHVzOiBUZXN0Q2FzZVN0YXR1cztcbn07XG5cbmV4cG9ydCB0eXBlIEFsbG93ZWRNb2RpZmljYXRpb25GaWVsZHMgPSB7XG4gIGlucHV0OiBzdHJpbmc7XG4gIGV4cGVjdGVkT3V0cHV0OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBUZXN0Q2FzZVN0YXR1cyB7XG4gIFBhc3NlZCA9ICdwYXNzZWQnLFxuICBFcnJvciA9ICdlcnJvcicsXG4gIEVtcHR5ID0gJ2VtcHR5Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXN0Q2FzZURlbGV0aW9uRGF0YSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGFjdGlvbjogVGVzdENhc2VEZWxldGlvbkFjdGlvbjtcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gVGVzdENhc2VEZWxldGlvbkFjdGlvbiB7XG4gIFRyeSA9ICd0cnknLFxuICBDb25maXJtID0gJ2NvbmZpcm0nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExBVEZvcm1hdHRlZFRlc3RDYXNlcyB7XG4gIGlucHV0OiBzdHJpbmc7XG4gIHNvbHV0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3FsVGVzdENhc2Uge1xuICBpZD86IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeTogQ2F0ZWdvcnlTcWxUZXN0Q2FzZUVudW07XG4gIC8qKiBFeHBlY3RlZCB0ZXN0IGNhc2UgcmVzdWx0ICovXG4gIHJlc3VsdD86IHN0cmluZztcbiAgaW5pdGlhbF9zcWw/OiBzdHJpbmc7XG4gIC8qKiBQcmV2aW91cyBzcWwgcXVlcnkgZm9yIGNoZWNraW5nICovXG4gIHByZV9zcWw/OiBzdHJpbmc7XG4gIC8qKiBQb3N0IHNxbCBxdWVyeSBmb3IgY2hlY2tpbmcgKi9cbiAgcG9zdF9zcWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdGNhc2Uge1xuICBpZD86IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBpbnB1dD86IHN0cmluZztcbiAgc29sdXRpb24/OiBzdHJpbmc7XG4gIHBvaW50cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGVkVGVzdENhc2VzUmVzdWx0IHtcbiAgY3VzdG9tOiB7IGZhaWxlZDogbnVtYmVyOyBwYXNzZWQ6IG51bWJlciB9LFxuICBleGFtcGxlOiB7IGZhaWxlZDogbnVtYmVyOyBwYXNzZWQ6IG51bWJlciB9XG59XG5cbnR5cGUgQ2F0ZWdvcnlTcWxUZXN0Q2FzZUVudW0gPVxuICAndXNlcicgfFxuICAndmFsaWRhdGlvbic7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9tb2RlbHMvdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZW1lIG5hbWUgbXVzdCBzdGFydCB3aXRoIFwidGhlbWUtXCIgISEhXG5leHBvcnQgY29uc3QgZW51bSBUaGVtZXMge1xuICBEZWZhdWx0ID0gJ3RoZW1lLWRlZmF1bHQnLFxuICBEYXJrID0gJ3RoZW1lLWRhcmsnLFxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export const ROOT_TRANSLATIONS_SCOPE = 'CODING_QUESTION';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvbW9kZWxzL3RyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBST09UX1RSQU5TTEFUSU9OU19TQ09QRSA9ICdDT0RJTkdfUVVFU1RJT04nO1xuIl19
@@ -0,0 +1,8 @@
1
+ export var ViewMode;
2
+ (function (ViewMode) {
3
+ ViewMode["Full"] = "full";
4
+ ViewMode["IDEOnly"] = "ide";
5
+ ViewMode["RunnableIde"] = "runnable-ide";
6
+ ViewMode["RunnableIdeWithLangSelector"] = "runnable-ide-w-lang-selector";
7
+ })(ViewMode || (ViewMode = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvbW9kZWxzL3ZpZXctbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxRQUtYO0FBTEQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYiwyQkFBZSxDQUFBO0lBQ2Ysd0NBQTRCLENBQUE7SUFDNUIsd0VBQTRELENBQUE7QUFDOUQsQ0FBQyxFQUxXLFFBQVEsS0FBUixRQUFRLFFBS25CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gVmlld01vZGUge1xuICBGdWxsID0gJ2Z1bGwnLFxuICBJREVPbmx5ID0gJ2lkZScsXG4gIFJ1bm5hYmxlSWRlID0gJ3J1bm5hYmxlLWlkZScsXG4gIFJ1bm5hYmxlSWRlV2l0aExhbmdTZWxlY3RvciA9ICdydW5uYWJsZS1pZGUtdy1sYW5nLXNlbGVjdG9yJyxcbn1cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * USAGE:
5
+ * {{ argument | memoizeFunc : method [: context] }}
6
+ *
7
+ * You could provide multiple arguments for the function like that:
8
+ * {{ [argument1, argument2] | memoizeFunc : method [: context] }}
9
+ *
10
+ *
11
+ * FUNCTION WITH CONTEXT
12
+ * We still could have optimization in impure functions with Angular pipes. Just provide context as second parameter
13
+ * to the memoizeFunc pipe.
14
+ *
15
+ * {{ argument | memoizeFunc : method : this }}
16
+ *
17
+ * Alternative variant use 'bind'
18
+ *
19
+ * {{ argument | memoizeFunc : method.bind(this) }}
20
+ *
21
+ * */
22
+ export class MemoizeFuncPipe {
23
+ transform(value, handler, context) {
24
+ if (context) {
25
+ return handler.call(context, value);
26
+ }
27
+ return handler(value);
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MemoizeFuncPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
30
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MemoizeFuncPipe, isStandalone: true, name: "memoizeFunc" });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MemoizeFuncPipe, decorators: [{
33
+ type: Pipe,
34
+ args: [{
35
+ name: 'memoizeFunc',
36
+ standalone: true,
37
+ }]
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS1mdW5jLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9waXBlcy9tZW1vaXplLWZ1bmMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWtCSztBQUtMLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBTyxLQUFRLEVBQUUsT0FBd0IsRUFBRSxPQUFhO1FBQy9ELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO3dHQVBVLGVBQWU7c0dBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqICAgVVNBR0U6XG4gKiAgIHt7IGFyZ3VtZW50IHwgbWVtb2l6ZUZ1bmMgOiBtZXRob2QgWzogY29udGV4dF0gfX1cbiAqXG4gKiAgIFlvdSBjb3VsZCBwcm92aWRlIG11bHRpcGxlIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIGxpa2UgdGhhdDpcbiAqICAge3sgW2FyZ3VtZW50MSwgYXJndW1lbnQyXSB8IG1lbW9pemVGdW5jIDogbWV0aG9kIFs6IGNvbnRleHRdIH19XG4gKlxuICpcbiAqICAgRlVOQ1RJT04gV0lUSCBDT05URVhUXG4gKiAgIFdlIHN0aWxsIGNvdWxkIGhhdmUgb3B0aW1pemF0aW9uIGluIGltcHVyZSBmdW5jdGlvbnMgd2l0aCBBbmd1bGFyIHBpcGVzLiBKdXN0IHByb3ZpZGUgY29udGV4dCBhcyBzZWNvbmQgcGFyYW1ldGVyXG4gKiAgIHRvIHRoZSBtZW1vaXplRnVuYyBwaXBlLlxuICpcbiAqICAge3sgYXJndW1lbnQgfCBtZW1vaXplRnVuYyA6IG1ldGhvZCA6IHRoaXMgfX1cbiAqXG4gKiAgIEFsdGVybmF0aXZlIHZhcmlhbnQgdXNlICdiaW5kJ1xuICpcbiAqICAge3sgYXJndW1lbnQgfCBtZW1vaXplRnVuYyA6IG1ldGhvZC5iaW5kKHRoaXMpIH19XG4gKlxuICogKi9cbkBQaXBlKHtcbiAgbmFtZTogJ21lbW9pemVGdW5jJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTWVtb2l6ZUZ1bmNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxULCBLPih2YWx1ZTogVCwgaGFuZGxlcjogKHZhbHVlOiBUKSA9PiBLLCBjb250ZXh0PzogYW55KTogSyB7XG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVyLmNhbGwoY29udGV4dCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGVyKHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ApiService } from '../../../shared/index.mjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../shared/index.mjs";
5
+ export class CandidatureApiService {
6
+ apiService;
7
+ constructor(apiService) {
8
+ this.apiService = apiService;
9
+ }
10
+ getAvailableLanguages$() {
11
+ return this.apiService.get('candidatures/test-results/programming-languages/');
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CandidatureApiService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
14
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CandidatureApiService });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CandidatureApiService, decorators: [{
17
+ type: Injectable
18
+ }], ctorParameters: () => [{ type: i1.ApiService }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuZGlkYXR1cmUtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL2xpYi9zZXJ2aWNlcy9jYW5kaWRhdGUtY29kaW5nLXRlc3Qtc2VydmljZXMvY2FuZGlkYXR1cmUtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUkxRCxNQUFNLE9BQU8scUJBQXFCO0lBRXRCO0lBRFYsWUFDVSxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRWhDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7d0dBUlUscUJBQXFCOzRHQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnQHRlc3Rnb3JpbGxhL3Rnby10ZXN0LXNoYXJlZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYW5kaWRhdHVyZUFwaVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBnZXRBdmFpbGFibGVMYW5ndWFnZXMkKCk6IE9ic2VydmFibGU8bnVtYmVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldCgnY2FuZGlkYXR1cmVzL3Rlc3QtcmVzdWx0cy9wcm9ncmFtbWluZy1sYW5ndWFnZXMvJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ApiService } from '../../../shared/index.mjs';
3
+ import { EMPTY, throwError } from 'rxjs';
4
+ import { SnackbarService } from '@testgorilla/tgo-ui';
5
+ import { ROOT_TRANSLATIONS_SCOPE } from '../../models/translations';
6
+ import { translate } from '@ngneat/transloco';
7
+ import { CodingTestConfigService } from '../coding-test-config.service';
8
+ import * as i0 from "@angular/core";
9
+ export class CoderunnerApiService {
10
+ snackbarService = inject(SnackbarService);
11
+ apiService = inject(ApiService);
12
+ configService = inject(CodingTestConfigService);
13
+ CR2Url = `${this.configService.getCoderunnerV2Endpoint()}/`;
14
+ // todo: will public preview be supported by mFE? if not - remove this
15
+ runPublicTest$(code, testcases, language) {
16
+ return this.apiService.post(`${this.CR2Url}api/attempts/public/`, {
17
+ question_id: 0,
18
+ language,
19
+ code,
20
+ testcases,
21
+ question_result_id: 0,
22
+ }, {}, this.handleError.bind(this), true);
23
+ }
24
+ runPreviewTest$(test_result_id, code, testcases, language) {
25
+ return this.apiService.post(`${this.CR2Url}api/attempts/preview/`, {
26
+ language,
27
+ code,
28
+ testcases,
29
+ test_result_id,
30
+ }, {}, this.handleError.bind(this), true);
31
+ }
32
+ runNonPreviewTest$(question_id, question_result_id, code, testcases, language) {
33
+ return this.apiService.post(`${this.CR2Url}api/attempts/`, {
34
+ question_id,
35
+ language,
36
+ code,
37
+ testcases,
38
+ question_result_id,
39
+ }, {}, this.handleError.bind(this), true);
40
+ }
41
+ sendCodeEvent$(event) {
42
+ return this.apiService.post(`${this.CR2Url}api/events/`, event, {}, this.handleError.bind(this), true);
43
+ }
44
+ handleError({ error }) {
45
+ if (error.detail) {
46
+ return throwError(() => error);
47
+ }
48
+ const genericErrorText = translate(`${ROOT_TRANSLATIONS_SCOPE}.ERRORS.SYSTEM_ERROR`);
49
+ this.snackbarService.error(genericErrorText);
50
+ return EMPTY;
51
+ }
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CoderunnerApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
53
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CoderunnerApiService });
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CoderunnerApiService, decorators: [{
56
+ type: Injectable
57
+ }] });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXJ1bm5lci1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvbGliL3NlcnZpY2VzL2NhbmRpZGF0ZS1jb2RpbmctdGVzdC1zZXJ2aWNlcy9jb2RlcnVubmVyLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUd4RSxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLGFBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUVoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQztJQUU3RSxzRUFBc0U7SUFDdEUsY0FBYyxDQUNaLElBQVksRUFDWixTQUFrRCxFQUNsRCxRQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLElBQUksQ0FBQyxNQUFNLHNCQUFzQixFQUNwQztZQUNFLFdBQVcsRUFBRSxDQUFDO1lBQ2QsUUFBUTtZQUNSLElBQUk7WUFDSixTQUFTO1lBQ1Qsa0JBQWtCLEVBQUUsQ0FBQztTQUN0QixFQUNELEVBQUUsRUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDM0IsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUNiLGNBQXNCLEVBQ3RCLElBQVksRUFDWixTQUFrRCxFQUNsRCxRQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLElBQUksQ0FBQyxNQUFNLHVCQUF1QixFQUNyQztZQUNFLFFBQVE7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULGNBQWM7U0FDZixFQUNELEVBQUUsRUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDM0IsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLFdBQW1CLEVBQ25CLGtCQUEwQixFQUMxQixJQUFZLEVBQ1osU0FBa0QsRUFDbEQsUUFBZ0I7UUFFaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxJQUFJLENBQUMsTUFBTSxlQUFlLEVBQzdCO1lBQ0UsV0FBVztZQUNYLFFBQVE7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULGtCQUFrQjtTQUNuQixFQUNELEVBQUUsRUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDM0IsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsSUFBSSxDQUFDLE1BQU0sYUFBYSxFQUMzQixLQUFLLEVBQ0wsRUFBRSxFQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUMzQixJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFTyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQXFCO1FBQzlDLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FDaEMsR0FBRyx1QkFBdUIsc0JBQXNCLENBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0ExRlUsb0JBQW9COzRHQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICdAdGVzdGdvcmlsbGEvdGdvLXRlc3Qtc2hhcmVkJztcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMQVRGb3JtYXR0ZWRUZXN0Q2FzZXMsIFNxbFRlc3RDYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rlc3QtY2FzZXMnO1xuaW1wb3J0IHsgQ29kZXJ1bm5lckF0dGVtcHRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jb2RlcnVubmVyLWV4ZWN1dGlvbi1yZXN1bHRzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnQHRlc3Rnb3JpbGxhL3Rnby11aSc7XG5pbXBvcnQgeyBST09UX1RSQU5TTEFUSU9OU19TQ09QRSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuaW1wb3J0IHsgQ29kZUV2ZW50LCBDb2RlRXZlbnRSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9jb2RlLWV2ZW50JztcbmltcG9ydCB7IENvZGluZ1Rlc3RDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29kaW5nLXRlc3QtY29uZmlnLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29kZXJ1bm5lckFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNuYWNrYmFyU2VydmljZSA9IGluamVjdChTbmFja2JhclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZSA9IGluamVjdChDb2RpbmdUZXN0Q29uZmlnU2VydmljZSk7XG4gIFxuICBwcml2YXRlIHJlYWRvbmx5IENSMlVybCA9IGAke3RoaXMuY29uZmlnU2VydmljZS5nZXRDb2RlcnVubmVyVjJFbmRwb2ludCgpfS9gO1xuXG4gIC8vIHRvZG86IHdpbGwgcHVibGljIHByZXZpZXcgYmUgc3VwcG9ydGVkIGJ5IG1GRT8gaWYgbm90IC0gcmVtb3ZlIHRoaXNcbiAgcnVuUHVibGljVGVzdCQoXG4gICAgY29kZTogc3RyaW5nLFxuICAgIHRlc3RjYXNlczogTEFURm9ybWF0dGVkVGVzdENhc2VzW10gfCBTcWxUZXN0Q2FzZVtdLFxuICAgIGxhbmd1YWdlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDb2RlcnVubmVyQXR0ZW1wdE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxuICAgICAgYCR7dGhpcy5DUjJVcmx9YXBpL2F0dGVtcHRzL3B1YmxpYy9gLFxuICAgICAge1xuICAgICAgICBxdWVzdGlvbl9pZDogMCxcbiAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIHRlc3RjYXNlcyxcbiAgICAgICAgcXVlc3Rpb25fcmVzdWx0X2lkOiAwLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgICAgdGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBydW5QcmV2aWV3VGVzdCQoXG4gICAgdGVzdF9yZXN1bHRfaWQ6IG51bWJlcixcbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgdGVzdGNhc2VzOiBMQVRGb3JtYXR0ZWRUZXN0Q2FzZXNbXSB8IFNxbFRlc3RDYXNlW10sXG4gICAgbGFuZ3VhZ2U6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPENvZGVydW5uZXJBdHRlbXB0TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXG4gICAgICBgJHt0aGlzLkNSMlVybH1hcGkvYXR0ZW1wdHMvcHJldmlldy9gLFxuICAgICAge1xuICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgY29kZSxcbiAgICAgICAgdGVzdGNhc2VzLFxuICAgICAgICB0ZXN0X3Jlc3VsdF9pZCxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgcnVuTm9uUHJldmlld1Rlc3QkKFxuICAgIHF1ZXN0aW9uX2lkOiBudW1iZXIsXG4gICAgcXVlc3Rpb25fcmVzdWx0X2lkOiBudW1iZXIsXG4gICAgY29kZTogc3RyaW5nLFxuICAgIHRlc3RjYXNlczogTEFURm9ybWF0dGVkVGVzdENhc2VzW10gfCBTcWxUZXN0Q2FzZVtdLFxuICAgIGxhbmd1YWdlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDb2RlcnVubmVyQXR0ZW1wdE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxuICAgICAgYCR7dGhpcy5DUjJVcmx9YXBpL2F0dGVtcHRzL2AsXG4gICAgICB7XG4gICAgICAgIHF1ZXN0aW9uX2lkLFxuICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgY29kZSxcbiAgICAgICAgdGVzdGNhc2VzLFxuICAgICAgICBxdWVzdGlvbl9yZXN1bHRfaWQsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgICB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcyksXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIHNlbmRDb2RlRXZlbnQkKGV2ZW50OiBDb2RlRXZlbnQpOiBPYnNlcnZhYmxlPENvZGVFdmVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxuICAgICAgYCR7dGhpcy5DUjJVcmx9YXBpL2V2ZW50cy9gLFxuICAgICAgZXZlbnQsXG4gICAgICB7fSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcih7IGVycm9yIH06IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgIGlmIChlcnJvci5kZXRhaWwpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZW5lcmljRXJyb3JUZXh0ID0gdHJhbnNsYXRlKFxuICAgICAgYCR7Uk9PVF9UUkFOU0xBVElPTlNfU0NPUEV9LkVSUk9SUy5TWVNURU1fRVJST1JgXG4gICAgKTtcbiAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5lcnJvcihnZW5lcmljRXJyb3JUZXh0KTtcbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { translate } from '@ngneat/transloco';
3
+ import { GuidedTourService, Orientation, } from 'ngx-guided-tour';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { ROOT_TRANSLATIONS_SCOPE } from '../../models/translations';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "ngx-guided-tour";
8
+ export class CodingTestTourService {
9
+ guidedTourService;
10
+ translationContext = `${ROOT_TRANSLATIONS_SCOPE}.TOUR.`;
11
+ guidedTourId = 'lat-coding-tour';
12
+ MINIMUM_SCREEN_SIZE = 599;
13
+ activeGuidedTourIdSub$ = new BehaviorSubject('');
14
+ activeGuidedTourId$ = this.activeGuidedTourIdSub$.asObservable();
15
+ constructor(guidedTourService) {
16
+ this.guidedTourService = guidedTourService;
17
+ }
18
+ init(mode) {
19
+ this.start(mode);
20
+ }
21
+ skipTour() {
22
+ // currentTourStepCount checks if there is a currentTour before checking stepCount.
23
+ if (this.guidedTourService.currentTourStepCount) {
24
+ this.guidedTourService.skipTour();
25
+ }
26
+ }
27
+ start(mode) {
28
+ if (window.innerWidth > this.MINIMUM_SCREEN_SIZE) {
29
+ this.guidedTourService.startTour(this.getTour(mode));
30
+ }
31
+ this.publishActiveGuidedTourId();
32
+ }
33
+ publishActiveGuidedTourId() {
34
+ this.activeGuidedTourIdSub$.next(this.guidedTourId);
35
+ }
36
+ getTour(mode) {
37
+ let steps = [];
38
+ const step1 = {
39
+ title: translate(`${this.translationContext}STEP_1.TITLE`),
40
+ selector: '#question-section',
41
+ content: translate(`${this.translationContext}STEP_1.MESSAGE`),
42
+ orientation: Orientation.Right,
43
+ };
44
+ const step2 = {
45
+ title: translate(`${this.translationContext}STEP_2.TITLE`),
46
+ selector: '#language-dropdown',
47
+ content: translate(`${this.translationContext}STEP_2.MESSAGE`),
48
+ orientation: Orientation.Bottom,
49
+ };
50
+ const step3 = {
51
+ title: translate(`${this.translationContext}STEP_3.TITLE`),
52
+ selector: '#test-cases',
53
+ content: translate(`${this.translationContext}STEP_3.MESSAGE`),
54
+ orientation: Orientation.Top,
55
+ };
56
+ const step4 = {
57
+ title: translate(`${this.translationContext}STEP_4.TITLE`),
58
+ selector: '#configuration-ide-button',
59
+ content: translate(`${this.translationContext}STEP_4.MESSAGE`),
60
+ orientation: Orientation.BottomRight,
61
+ };
62
+ const step5 = {
63
+ title: translate(`${this.translationContext}STEP_5.TITLE`),
64
+ selector: '[data-tourId*="question-next-finish-button"]',
65
+ content: translate(`${this.translationContext}STEP_5.MESSAGE`),
66
+ orientation: Orientation.Bottom,
67
+ };
68
+ switch (mode) {
69
+ case "practice" /* CodingTestTourMode.PracticeQuestion */:
70
+ steps = [step1, step2, step3, step4, step5];
71
+ break;
72
+ case "real" /* CodingTestTourMode.RealQuestion */:
73
+ steps = [step2, step3, step4];
74
+ break;
75
+ }
76
+ return {
77
+ tourId: this.guidedTourId,
78
+ useOrb: false,
79
+ minimumScreenSize: this.MINIMUM_SCREEN_SIZE,
80
+ steps,
81
+ };
82
+ }
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodingTestTourService, deps: [{ token: i1.GuidedTourService }], target: i0.ɵɵFactoryTarget.Injectable });
84
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodingTestTourService });
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodingTestTourService, decorators: [{
87
+ type: Injectable
88
+ }], ctorParameters: () => [{ type: i1.GuidedTourService }] });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kaW5nLXRlc3QtdG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9saWIvc2VydmljZXMvY2FuZGlkYXRlLWNvZGluZy10ZXN0LXNlcnZpY2VzL2NvZGluZy10ZXN0LXRvdXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFdBQVcsR0FFWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVFwRSxNQUFNLE9BQU8scUJBQXFCO0lBUVo7SUFQSCxrQkFBa0IsR0FBRyxHQUFHLHVCQUF1QixRQUFRLENBQUM7SUFDeEQsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBQ2pDLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztJQUVuQyxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFakUsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBRyxDQUFDO0lBRTVELElBQUksQ0FBQyxJQUF3QjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRO1FBQ04sbUZBQW1GO1FBQ25GLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQXdCO1FBQ3BDLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sT0FBTyxDQUFDLElBQXdCO1FBQ3RDLElBQUksS0FBSyxHQUFlLEVBQUUsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRztZQUNaLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLGNBQWMsQ0FBQztZQUMxRCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDO1lBQzlELFdBQVcsRUFBRSxXQUFXLENBQUMsS0FBSztTQUMvQixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUc7WUFDWixLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixjQUFjLENBQUM7WUFDMUQsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixnQkFBZ0IsQ0FBQztZQUM5RCxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07U0FDaEMsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHO1lBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsY0FBYyxDQUFDO1lBQzFELFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDO1lBQzlELFdBQVcsRUFBRSxXQUFXLENBQUMsR0FBRztTQUM3QixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUc7WUFDWixLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixjQUFjLENBQUM7WUFDMUQsUUFBUSxFQUFFLDJCQUEyQjtZQUNyQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixnQkFBZ0IsQ0FBQztZQUM5RCxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7U0FDckMsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHO1lBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsY0FBYyxDQUFDO1lBQzFELFFBQVEsRUFBRSw4Q0FBOEM7WUFDeEQsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsZ0JBQWdCLENBQUM7WUFDOUQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNO1NBQ2hDLENBQUM7UUFFRixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2I7Z0JBQ0UsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1lBQ1I7Z0JBQ0UsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtRQUNWLENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUMzQyxLQUFLO1NBQ04sQ0FBQztJQUNKLENBQUM7d0dBaEZVLHFCQUFxQjs0R0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuaW1wb3J0IHtcbiAgR3VpZGVkVG91cixcbiAgR3VpZGVkVG91clNlcnZpY2UsXG4gIE9yaWVudGF0aW9uLFxuICBUb3VyU3RlcCxcbn0gZnJvbSAnbmd4LWd1aWRlZC10b3VyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBST09UX1RSQU5TTEFUSU9OU19TQ09QRSB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2xhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZW51bSBDb2RpbmdUZXN0VG91ck1vZGUge1xuICBQcmFjdGljZVF1ZXN0aW9uID0gJ3ByYWN0aWNlJyxcbiAgUmVhbFF1ZXN0aW9uID0gJ3JlYWwnLFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29kaW5nVGVzdFRvdXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvbkNvbnRleHQgPSBgJHtST09UX1RSQU5TTEFUSU9OU19TQ09QRX0uVE9VUi5gO1xuICBwcml2YXRlIHJlYWRvbmx5IGd1aWRlZFRvdXJJZCA9ICdsYXQtY29kaW5nLXRvdXInO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTklNVU1fU0NSRUVOX1NJWkUgPSA1OTk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVHdWlkZWRUb3VySWRTdWIkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGFjdGl2ZUd1aWRlZFRvdXJJZCQgPSB0aGlzLmFjdGl2ZUd1aWRlZFRvdXJJZFN1YiQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBndWlkZWRUb3VyU2VydmljZTogR3VpZGVkVG91clNlcnZpY2UpIHt9XG5cbiAgaW5pdChtb2RlOiBDb2RpbmdUZXN0VG91ck1vZGUpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0KG1vZGUpO1xuICB9XG5cbiAgc2tpcFRvdXIoKTogdm9pZCB7XG4gICAgLy8gY3VycmVudFRvdXJTdGVwQ291bnQgY2hlY2tzIGlmIHRoZXJlIGlzIGEgY3VycmVudFRvdXIgYmVmb3JlIGNoZWNraW5nIHN0ZXBDb3VudC5cbiAgICBpZiAodGhpcy5ndWlkZWRUb3VyU2VydmljZS5jdXJyZW50VG91clN0ZXBDb3VudCkge1xuICAgICAgdGhpcy5ndWlkZWRUb3VyU2VydmljZS5za2lwVG91cigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnQobW9kZTogQ29kaW5nVGVzdFRvdXJNb2RlKSB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID4gdGhpcy5NSU5JTVVNX1NDUkVFTl9TSVpFKSB7XG4gICAgICB0aGlzLmd1aWRlZFRvdXJTZXJ2aWNlLnN0YXJ0VG91cih0aGlzLmdldFRvdXIobW9kZSkpO1xuICAgIH1cbiAgICB0aGlzLnB1Ymxpc2hBY3RpdmVHdWlkZWRUb3VySWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHVibGlzaEFjdGl2ZUd1aWRlZFRvdXJJZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUd1aWRlZFRvdXJJZFN1YiQubmV4dCh0aGlzLmd1aWRlZFRvdXJJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldFRvdXIobW9kZTogQ29kaW5nVGVzdFRvdXJNb2RlKTogR3VpZGVkVG91ciB7XG4gICAgbGV0IHN0ZXBzOiBUb3VyU3RlcFtdID0gW107XG4gICAgY29uc3Qgc3RlcDEgPSB7XG4gICAgICB0aXRsZTogdHJhbnNsYXRlKGAke3RoaXMudHJhbnNsYXRpb25Db250ZXh0fVNURVBfMS5USVRMRWApLFxuICAgICAgc2VsZWN0b3I6ICcjcXVlc3Rpb24tc2VjdGlvbicsXG4gICAgICBjb250ZW50OiB0cmFuc2xhdGUoYCR7dGhpcy50cmFuc2xhdGlvbkNvbnRleHR9U1RFUF8xLk1FU1NBR0VgKSxcbiAgICAgIG9yaWVudGF0aW9uOiBPcmllbnRhdGlvbi5SaWdodCxcbiAgICB9O1xuICAgIGNvbnN0IHN0ZXAyID0ge1xuICAgICAgdGl0bGU6IHRyYW5zbGF0ZShgJHt0aGlzLnRyYW5zbGF0aW9uQ29udGV4dH1TVEVQXzIuVElUTEVgKSxcbiAgICAgIHNlbGVjdG9yOiAnI2xhbmd1YWdlLWRyb3Bkb3duJyxcbiAgICAgIGNvbnRlbnQ6IHRyYW5zbGF0ZShgJHt0aGlzLnRyYW5zbGF0aW9uQ29udGV4dH1TVEVQXzIuTUVTU0FHRWApLFxuICAgICAgb3JpZW50YXRpb246IE9yaWVudGF0aW9uLkJvdHRvbSxcbiAgICB9O1xuICAgIGNvbnN0IHN0ZXAzID0ge1xuICAgICAgdGl0bGU6IHRyYW5zbGF0ZShgJHt0aGlzLnRyYW5zbGF0aW9uQ29udGV4dH1TVEVQXzMuVElUTEVgKSxcbiAgICAgIHNlbGVjdG9yOiAnI3Rlc3QtY2FzZXMnLFxuICAgICAgY29udGVudDogdHJhbnNsYXRlKGAke3RoaXMudHJhbnNsYXRpb25Db250ZXh0fVNURVBfMy5NRVNTQUdFYCksXG4gICAgICBvcmllbnRhdGlvbjogT3JpZW50YXRpb24uVG9wLFxuICAgIH07XG4gICAgY29uc3Qgc3RlcDQgPSB7XG4gICAgICB0aXRsZTogdHJhbnNsYXRlKGAke3RoaXMudHJhbnNsYXRpb25Db250ZXh0fVNURVBfNC5USVRMRWApLFxuICAgICAgc2VsZWN0b3I6ICcjY29uZmlndXJhdGlvbi1pZGUtYnV0dG9uJyxcbiAgICAgIGNvbnRlbnQ6IHRyYW5zbGF0ZShgJHt0aGlzLnRyYW5zbGF0aW9uQ29udGV4dH1TVEVQXzQuTUVTU0FHRWApLFxuICAgICAgb3JpZW50YXRpb246IE9yaWVudGF0aW9uLkJvdHRvbVJpZ2h0LFxuICAgIH07XG4gICAgY29uc3Qgc3RlcDUgPSB7XG4gICAgICB0aXRsZTogdHJhbnNsYXRlKGAke3RoaXMudHJhbnNsYXRpb25Db250ZXh0fVNURVBfNS5USVRMRWApLFxuICAgICAgc2VsZWN0b3I6ICdbZGF0YS10b3VySWQqPVwicXVlc3Rpb24tbmV4dC1maW5pc2gtYnV0dG9uXCJdJyxcbiAgICAgIGNvbnRlbnQ6IHRyYW5zbGF0ZShgJHt0aGlzLnRyYW5zbGF0aW9uQ29udGV4dH1TVEVQXzUuTUVTU0FHRWApLFxuICAgICAgb3JpZW50YXRpb246IE9yaWVudGF0aW9uLkJvdHRvbSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlIENvZGluZ1Rlc3RUb3VyTW9kZS5QcmFjdGljZVF1ZXN0aW9uOlxuICAgICAgICBzdGVwcyA9IFtzdGVwMSwgc3RlcDIsIHN0ZXAzLCBzdGVwNCwgc3RlcDVdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29kaW5nVGVzdFRvdXJNb2RlLlJlYWxRdWVzdGlvbjpcbiAgICAgICAgc3RlcHMgPSBbc3RlcDIsIHN0ZXAzLCBzdGVwNF07XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0b3VySWQ6IHRoaXMuZ3VpZGVkVG91cklkLFxuICAgICAgdXNlT3JiOiBmYWxzZSxcbiAgICAgIG1pbmltdW1TY3JlZW5TaXplOiB0aGlzLk1JTklNVU1fU0NSRUVOX1NJWkUsXG4gICAgICBzdGVwcyxcbiAgICB9O1xuICB9XG59XG4iXX0=