@testgorilla/tgo-coding-test 2.0.0 → 2.0.1

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 (255) hide show
  1. package/fesm2022/testgorilla-tgo-coding-test.mjs +4526 -0
  2. package/fesm2022/testgorilla-tgo-coding-test.mjs.map +1 -0
  3. package/{src/index.ts → index.d.ts} +2 -19
  4. package/lib/components/code-editor/code-editor.component.d.ts +54 -0
  5. package/lib/components/code-editor/code-editor.service.d.ts +12 -0
  6. package/lib/components/code-editor/helpers/c-helper.d.ts +11 -0
  7. package/lib/components/code-editor/helpers/code-editor-helper.base.d.ts +8 -0
  8. package/lib/components/code-editor/helpers/code-editor-helper.model.d.ts +62 -0
  9. package/lib/components/code-editor/helpers/cpp-helper.d.ts +11 -0
  10. package/lib/components/code-editor/helpers/csharp-helper.d.ts +12 -0
  11. package/lib/components/code-editor/helpers/go-helper.d.ts +12 -0
  12. package/lib/components/code-editor/helpers/java-helper.d.ts +12 -0
  13. package/lib/components/code-editor/helpers/javascript-helper.d.ts +10 -0
  14. package/lib/components/code-editor/helpers/kotlin-helper.d.ts +12 -0
  15. package/lib/components/code-editor/helpers/php-helper.d.ts +10 -0
  16. package/lib/components/code-editor/helpers/python-helper.d.ts +10 -0
  17. package/lib/components/code-editor/helpers/r-helper.d.ts +10 -0
  18. package/lib/components/code-editor/helpers/ruby-helper.d.ts +10 -0
  19. package/lib/components/code-editor/helpers/scala-helper.d.ts +12 -0
  20. package/lib/components/code-editor/helpers/sql-helper.d.ts +10 -0
  21. package/lib/components/code-editor/helpers/swift-helper.d.ts +11 -0
  22. package/lib/components/code-editor/helpers/typescript-helper.d.ts +11 -0
  23. package/lib/components/code-editor/models/code-editor.model.d.ts +8 -0
  24. package/lib/components/code-editor/models/coding-snapshot.model.d.ts +4 -0
  25. package/lib/components/coding-question/coding-question.component.d.ts +45 -0
  26. package/lib/components/coding-section/coding-section.component.d.ts +52 -0
  27. package/lib/components/common/truncated-text/truncated-text.component.d.ts +13 -0
  28. package/lib/components/configurations/configurations.component.d.ts +40 -0
  29. package/lib/components/instructions/instructions.component.d.ts +48 -0
  30. package/lib/components/panel/panel.component.d.ts +12 -0
  31. package/lib/components/runnable-editor/runnable-editor.component.d.ts +53 -0
  32. package/lib/components/tests/test-cases/test-cases.component.d.ts +46 -0
  33. package/lib/components/tests/test-cases-content/test-cases-content.component.d.ts +26 -0
  34. package/lib/components/tests/test-cases-status/test-cases-status.component.d.ts +9 -0
  35. package/lib/components/tests/test-results.component.d.ts +33 -0
  36. package/lib/components/tgo-coding-test/tgo-coding-test.component.d.ts +69 -0
  37. package/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.d.ts +101 -0
  38. package/{src/lib/config/index.ts → lib/config/index.d.ts} +0 -1
  39. package/lib/config/tgo-coding-test.config.d.ts +24 -0
  40. package/{src/lib/config/tgo-coding-test.provider.ts → lib/config/tgo-coding-test.provider.d.ts} +6 -18
  41. package/lib/config/tgo-coding-test.token.d.ts +9 -0
  42. package/lib/models/auto-saved-data.d.ts +42 -0
  43. package/lib/models/code-event.d.ts +15 -0
  44. package/lib/models/coderunner-execution-results.d.ts +51 -0
  45. package/lib/models/configs.d.ts +15 -0
  46. package/lib/models/language-change-action.d.ts +4 -0
  47. package/lib/models/lat-languages.d.ts +8 -0
  48. package/lib/models/mixpanel-events.d.ts +3 -0
  49. package/lib/models/mode.d.ts +5 -0
  50. package/lib/models/paste-data.d.ts +4 -0
  51. package/lib/models/programming-language.d.ts +8 -0
  52. package/lib/models/test-cases.d.ts +67 -0
  53. package/lib/models/theme.d.ts +4 -0
  54. package/lib/models/translations.d.ts +1 -0
  55. package/lib/models/view-mode.d.ts +6 -0
  56. package/{src/lib/pipes/memoize-func.pipe.ts → lib/pipes/memoize-func.pipe.d.ts} +6 -14
  57. package/lib/services/candidate-coding-test-services/candidature-api.service.d.ts +10 -0
  58. package/lib/services/candidate-coding-test-services/coderunner-api.service.d.ts +18 -0
  59. package/lib/services/candidate-coding-test-services/coding-test-tour.service.d.ts +22 -0
  60. package/lib/services/candidate-coding-test-services/coding-test.service.d.ts +68 -0
  61. package/{src/lib/services/candidate-coding-test-services/index.ts → lib/services/candidate-coding-test-services/index.d.ts} +1 -1
  62. package/lib/services/coding-test-config.service.d.ts +38 -0
  63. package/lib/services/configurations.service.d.ts +37 -0
  64. package/lib/services/lib-coding-test.service.d.ts +69 -0
  65. package/lib/services/storage.service.d.ts +83 -0
  66. package/lib/services/test-cases.service.d.ts +12 -0
  67. package/lib/services/theme.service.d.ts +17 -0
  68. package/lib/utils/additional-languages/erlang.d.ts +37 -0
  69. package/lib/utils/resize-element.d.ts +2 -0
  70. package/lib/utils/time-to-ms.util.d.ts +1 -0
  71. package/package.json +17 -3
  72. package/shared/index.d.ts +4 -0
  73. package/shared/lib/components/audio-animation/audio-animation.component.d.ts +27 -0
  74. package/shared/lib/components/audio-animation/index.d.ts +1 -0
  75. package/shared/lib/components/index.d.ts +2 -0
  76. package/shared/lib/components/vimeo-video/index.d.ts +1 -0
  77. package/shared/lib/components/vimeo-video/vimeo-video.component.d.ts +24 -0
  78. package/shared/lib/models/answer.d.ts +17 -0
  79. package/shared/lib/models/assessment.d.ts +80 -0
  80. package/shared/lib/models/environment.d.ts +1 -0
  81. package/shared/lib/models/index.d.ts +8 -0
  82. package/shared/lib/models/question-component.d.ts +54 -0
  83. package/shared/lib/models/question.d.ts +102 -0
  84. package/shared/lib/models/test.d.ts +81 -0
  85. package/shared/lib/models/translations.d.ts +1 -0
  86. package/shared/lib/models/window.d.ts +6 -0
  87. package/shared/lib/services/api/api.service.d.ts +25 -0
  88. package/shared/lib/services/api/mocked-api.service.d.ts +35 -0
  89. package/shared/lib/services/environment/environment.service.d.ts +6 -0
  90. package/shared/lib/services/index.d.ts +9 -0
  91. package/shared/lib/services/localization/languages.model.d.ts +15 -0
  92. package/shared/lib/services/localization/transloco-lazy-module-utils.d.ts +11 -0
  93. package/shared/lib/services/localization/transloco-testing.module.d.ts +2 -0
  94. package/shared/lib/services/media/media.service.d.ts +29 -0
  95. package/shared/lib/services/mixpanel/mixpanel.service.d.ts +10 -0
  96. package/shared/lib/services/theme/theme.service.d.ts +8 -0
  97. package/shared/test-mocks/assessment-test.mock.d.ts +21 -0
  98. package/shared/test-mocks/index.d.ts +2 -0
  99. package/shared/test-mocks/tgo-ui.mock.d.ts +21 -0
  100. package/.eslintrc.json +0 -46
  101. package/jest.config.ts +0 -26
  102. package/ng-package.json +0 -14
  103. package/project.json +0 -48
  104. package/src/lib/components/.gitkeep +0 -0
  105. package/src/lib/components/code-editor/code-editor.component.html +0 -10
  106. package/src/lib/components/code-editor/code-editor.component.scss +0 -21
  107. package/src/lib/components/code-editor/code-editor.component.spec.ts +0 -136
  108. package/src/lib/components/code-editor/code-editor.component.ts +0 -368
  109. package/src/lib/components/code-editor/code-editor.mocks.ts +0 -28
  110. package/src/lib/components/code-editor/code-editor.service.spec.ts +0 -160
  111. package/src/lib/components/code-editor/code-editor.service.ts +0 -94
  112. package/src/lib/components/code-editor/helpers/c-helper.spec.ts +0 -39
  113. package/src/lib/components/code-editor/helpers/c-helper.ts +0 -51
  114. package/src/lib/components/code-editor/helpers/code-editor-helper.base.spec.ts +0 -30
  115. package/src/lib/components/code-editor/helpers/code-editor-helper.base.ts +0 -16
  116. package/src/lib/components/code-editor/helpers/code-editor-helper.mocks.ts +0 -24
  117. package/src/lib/components/code-editor/helpers/code-editor-helper.model.ts +0 -67
  118. package/src/lib/components/code-editor/helpers/cpp-helper.spec.ts +0 -40
  119. package/src/lib/components/code-editor/helpers/cpp-helper.ts +0 -52
  120. package/src/lib/components/code-editor/helpers/csharp-helper.spec.ts +0 -42
  121. package/src/lib/components/code-editor/helpers/csharp-helper.ts +0 -55
  122. package/src/lib/components/code-editor/helpers/go-helper.spec.ts +0 -41
  123. package/src/lib/components/code-editor/helpers/go-helper.ts +0 -54
  124. package/src/lib/components/code-editor/helpers/java-helper.spec.ts +0 -41
  125. package/src/lib/components/code-editor/helpers/java-helper.ts +0 -54
  126. package/src/lib/components/code-editor/helpers/javascript-helper.spec.ts +0 -39
  127. package/src/lib/components/code-editor/helpers/javascript-helper.ts +0 -32
  128. package/src/lib/components/code-editor/helpers/kotlin-helper.spec.ts +0 -41
  129. package/src/lib/components/code-editor/helpers/kotlin-helper.ts +0 -54
  130. package/src/lib/components/code-editor/helpers/php-helper.spec.ts +0 -39
  131. package/src/lib/components/code-editor/helpers/php-helper.ts +0 -32
  132. package/src/lib/components/code-editor/helpers/python-helper.spec.ts +0 -39
  133. package/src/lib/components/code-editor/helpers/python-helper.ts +0 -32
  134. package/src/lib/components/code-editor/helpers/r-helper.spec.ts +0 -39
  135. package/src/lib/components/code-editor/helpers/r-helper.ts +0 -32
  136. package/src/lib/components/code-editor/helpers/ruby-helper.spec.ts +0 -39
  137. package/src/lib/components/code-editor/helpers/ruby-helper.ts +0 -32
  138. package/src/lib/components/code-editor/helpers/scala-helper.spec.ts +0 -41
  139. package/src/lib/components/code-editor/helpers/scala-helper.ts +0 -53
  140. package/src/lib/components/code-editor/helpers/sql-helper.spec.ts +0 -87
  141. package/src/lib/components/code-editor/helpers/sql-helper.ts +0 -44
  142. package/src/lib/components/code-editor/helpers/swift-helper.spec.ts +0 -40
  143. package/src/lib/components/code-editor/helpers/swift-helper.ts +0 -51
  144. package/src/lib/components/code-editor/helpers/typescript-helper.spec.ts +0 -40
  145. package/src/lib/components/code-editor/helpers/typescript-helper.ts +0 -52
  146. package/src/lib/components/code-editor/models/code-editor.model.ts +0 -9
  147. package/src/lib/components/code-editor/models/coding-snapshot.model.ts +0 -4
  148. package/src/lib/components/coding-question/coding-question.component.html +0 -78
  149. package/src/lib/components/coding-question/coding-question.component.scss +0 -75
  150. package/src/lib/components/coding-question/coding-question.component.spec.ts +0 -85
  151. package/src/lib/components/coding-question/coding-question.component.ts +0 -101
  152. package/src/lib/components/coding-section/coding-section.component.html +0 -82
  153. package/src/lib/components/coding-section/coding-section.component.scss +0 -64
  154. package/src/lib/components/coding-section/coding-section.component.spec.ts +0 -257
  155. package/src/lib/components/coding-section/coding-section.component.ts +0 -186
  156. package/src/lib/components/coding-test.module.ts +0 -124
  157. package/src/lib/components/common/truncated-text/truncated-text.component.html +0 -6
  158. package/src/lib/components/common/truncated-text/truncated-text.component.scss +0 -18
  159. package/src/lib/components/common/truncated-text/truncated-text.component.spec.ts +0 -84
  160. package/src/lib/components/common/truncated-text/truncated-text.component.ts +0 -36
  161. package/src/lib/components/configurations/configurations.component.html +0 -57
  162. package/src/lib/components/configurations/configurations.component.scss +0 -42
  163. package/src/lib/components/configurations/configurations.component.spec.ts +0 -186
  164. package/src/lib/components/configurations/configurations.component.ts +0 -97
  165. package/src/lib/components/instructions/instructions.component.html +0 -41
  166. package/src/lib/components/instructions/instructions.component.scss +0 -173
  167. package/src/lib/components/instructions/instructions.component.spec.ts +0 -106
  168. package/src/lib/components/instructions/instructions.component.ts +0 -137
  169. package/src/lib/components/panel/panel.component.html +0 -19
  170. package/src/lib/components/panel/panel.component.scss +0 -41
  171. package/src/lib/components/panel/panel.component.spec.ts +0 -40
  172. package/src/lib/components/panel/panel.component.ts +0 -33
  173. package/src/lib/components/runnable-editor/runnable-editor.component.html +0 -75
  174. package/src/lib/components/runnable-editor/runnable-editor.component.scss +0 -55
  175. package/src/lib/components/runnable-editor/runnable-editor.component.spec.ts +0 -124
  176. package/src/lib/components/runnable-editor/runnable-editor.component.ts +0 -154
  177. package/src/lib/components/tests/test-cases/test-cases.component.html +0 -135
  178. package/src/lib/components/tests/test-cases/test-cases.component.scss +0 -220
  179. package/src/lib/components/tests/test-cases/test-cases.component.spec.ts +0 -401
  180. package/src/lib/components/tests/test-cases/test-cases.component.ts +0 -204
  181. package/src/lib/components/tests/test-cases-content/test-cases-content.component.html +0 -94
  182. package/src/lib/components/tests/test-cases-content/test-cases-content.component.scss +0 -103
  183. package/src/lib/components/tests/test-cases-content/test-cases-content.component.spec.ts +0 -122
  184. package/src/lib/components/tests/test-cases-content/test-cases-content.component.ts +0 -101
  185. package/src/lib/components/tests/test-cases-status/test-cases-status.component.html +0 -16
  186. package/src/lib/components/tests/test-cases-status/test-cases-status.component.scss +0 -49
  187. package/src/lib/components/tests/test-cases-status/test-cases-status.component.spec.ts +0 -22
  188. package/src/lib/components/tests/test-cases-status/test-cases-status.component.ts +0 -17
  189. package/src/lib/components/tests/test-results.component.html +0 -119
  190. package/src/lib/components/tests/test-results.component.scss +0 -189
  191. package/src/lib/components/tests/test-results.component.spec.ts +0 -140
  192. package/src/lib/components/tests/test-results.component.ts +0 -97
  193. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.html +0 -96
  194. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.scss +0 -6
  195. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.spec.ts +0 -599
  196. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.ts +0 -278
  197. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.html +0 -36
  198. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.scss +0 -183
  199. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.spec.ts +0 -883
  200. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.ts +0 -578
  201. package/src/lib/config/tgo-coding-test.config.ts +0 -26
  202. package/src/lib/config/tgo-coding-test.token.ts +0 -21
  203. package/src/lib/models/.gitkeep +0 -0
  204. package/src/lib/models/auto-saved-data.ts +0 -51
  205. package/src/lib/models/code-event.ts +0 -17
  206. package/src/lib/models/coderunner-execution-results.ts +0 -58
  207. package/src/lib/models/coding-lib.mocks.ts +0 -246
  208. package/src/lib/models/configs.ts +0 -18
  209. package/src/lib/models/language-change-action.ts +0 -4
  210. package/src/lib/models/lat-languages.ts +0 -12
  211. package/src/lib/models/mixpanel-events.ts +0 -3
  212. package/src/lib/models/mode.ts +0 -5
  213. package/src/lib/models/paste-data.ts +0 -4
  214. package/src/lib/models/programming-language.ts +0 -9
  215. package/src/lib/models/test-cases.ts +0 -74
  216. package/src/lib/models/theme.ts +0 -5
  217. package/src/lib/models/translations.ts +0 -1
  218. package/src/lib/models/view-mode.ts +0 -6
  219. package/src/lib/services/.gitkeep +0 -0
  220. package/src/lib/services/candidate-coding-test-services/candidature-api.service.spec.ts +0 -40
  221. package/src/lib/services/candidate-coding-test-services/candidature-api.service.ts +0 -15
  222. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.spec.ts +0 -134
  223. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.ts +0 -105
  224. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.spec.ts +0 -161
  225. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.ts +0 -100
  226. package/src/lib/services/candidate-coding-test-services/coding-test.service.spec.ts +0 -1524
  227. package/src/lib/services/candidate-coding-test-services/coding-test.service.ts +0 -843
  228. package/src/lib/services/coding-test-config.service.ts +0 -48
  229. package/src/lib/services/configurations.service.mocks.ts +0 -77
  230. package/src/lib/services/configurations.service.spec.ts +0 -79
  231. package/src/lib/services/configurations.service.ts +0 -111
  232. package/src/lib/services/index.ts +0 -0
  233. package/src/lib/services/lib-coding-test.service.spec.ts +0 -265
  234. package/src/lib/services/lib-coding-test.service.ts +0 -157
  235. package/src/lib/services/local-storage.service.mocks.ts +0 -22
  236. package/src/lib/services/storage.service.spec.ts +0 -1119
  237. package/src/lib/services/storage.service.ts +0 -729
  238. package/src/lib/services/test-cases.service.spec.ts +0 -53
  239. package/src/lib/services/test-cases.service.ts +0 -29
  240. package/src/lib/services/theme.service.spec.ts +0 -76
  241. package/src/lib/services/theme.service.ts +0 -34
  242. package/src/lib/styles/mixins.scss +0 -86
  243. package/src/lib/styles/styles.scss +0 -112
  244. package/src/lib/styles/variables.scss +0 -105
  245. package/src/lib/utils/.gitkeep +0 -0
  246. package/src/lib/utils/additional-languages/erlang.ts +0 -115
  247. package/src/lib/utils/resize-element.ts +0 -15
  248. package/src/lib/utils/time-to-ms.util.ts +0 -10
  249. package/src/test-setup.ts +0 -3
  250. package/tsconfig.json +0 -19
  251. package/tsconfig.lib.json +0 -19
  252. package/tsconfig.lib.prod.json +0 -10
  253. package/tsconfig.spec.json +0 -17
  254. /package/{src/assets → assets}/i18n/en.json +0 -0
  255. /package/{src/lib/components/code-editor/helpers/index.ts → lib/components/code-editor/helpers/index.d.ts} +0 -0
@@ -0,0 +1,17 @@
1
+ export interface Answer {
2
+ /** Id */
3
+ id?: number | null;
4
+ /**
5
+ * Text
6
+ * @minLength 1
7
+ */
8
+ text: string;
9
+ /** Question result id */
10
+ question_result_id?: string;
11
+ /**
12
+ * Uuid
13
+ * @format uuid
14
+ */
15
+ uuid?: string | null;
16
+ file?: Blob;
17
+ }
@@ -0,0 +1,80 @@
1
+ export interface Assessment {
2
+ /**
3
+ * Uuid
4
+ * @format uuid
5
+ */
6
+ uuid?: string;
7
+ /**
8
+ * Locale
9
+ * For example, en-US
10
+ * @minLength 1
11
+ */
12
+ locale?: string;
13
+ /**
14
+ * Is snapshots enabled
15
+ * Specifies whether taking snapshots of candidates during the assessment is enabled.If it's True, taking snapshots of candidates has been enabled.If it's False, taking snapshots of candidates has been disabled.
16
+ */
17
+ is_snapshots_enabled?: boolean;
18
+ /**
19
+ * Has video question
20
+ * Specifies whether the assessment contains custom video questions.If it's True, the assessment has video-type custom questions.If it's False, the assessment has no video-type custom questions.
21
+ */
22
+ has_video_question?: boolean;
23
+ /** Check if extra time is allowed for non-native English speakers */
24
+ allow_non_native_speakers?: boolean;
25
+ /** Check if extra time is allowed for other capacities */
26
+ allow_other_conditions?: boolean;
27
+ general_settings?: {
28
+ /** ID */
29
+ id?: number;
30
+ /**
31
+ * Owner profile id
32
+ * @min 0
33
+ * @max 4294967295
34
+ */
35
+ owner_profile_id: number;
36
+ /**
37
+ * Company name
38
+ * @maxLength 150
39
+ */
40
+ company_name?: string | null;
41
+ /**
42
+ * Company color
43
+ * Company color in hexadecimal code
44
+ * @minLength 1
45
+ * @maxLength 32
46
+ */
47
+ company_color?: string | null;
48
+ /**
49
+ * Company logo
50
+ * @format uri
51
+ * @maxLength 200
52
+ */
53
+ company_logo?: string | null;
54
+ /**
55
+ * Company redirect url
56
+ * @format uri
57
+ * @maxLength 200
58
+ */
59
+ company_redirect_url?: string | null;
60
+ /**
61
+ * Has requested demographic details
62
+ * It determines if, at the end of the assessment, the demographic details are requested.If it's true, a form requesting demographic details will be presented once the candidate finishes the assessment.If it's false, once the candidate finishes the assessment, it will be redirected using the company_redirect_url.
63
+ */
64
+ has_requested_demographic_details?: boolean;
65
+ /**
66
+ * Has requested feedback
67
+ * It determines if, at the end of the assessment, feedback is requested. If it's true, a form requesting feedback will be presented once the candidate finishes the assessment.If it's false, once the candidate finishes the assessment, it will be redirected using the company_redirect_url.
68
+ */
69
+ has_requested_feedback?: boolean;
70
+ /**
71
+ * Original modified
72
+ * The modified date of the original entity in the TestGorilla application
73
+ * @format date-time
74
+ */
75
+ original_modified?: string | null;
76
+ };
77
+ sharing_results?: boolean;
78
+ deadline_datetime?: string;
79
+ deadline_timezone?: string;
80
+ }
@@ -0,0 +1 @@
1
+ export type Environment = 'production' | 'staging' | 'dev' | 'local';
@@ -0,0 +1,8 @@
1
+ export * from './question';
2
+ export * from './question-component';
3
+ export * from './test';
4
+ export * from './translations';
5
+ export * from './answer';
6
+ export * from './assessment';
7
+ export * from './environment';
8
+ export * from './window';
@@ -0,0 +1,54 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { Question } from './question';
4
+ import { TestResultRead } from './test';
5
+ import { Environment } from './environment';
6
+ import { Assessment } from './assessment';
7
+ import { ApplicationTheme } from '@testgorilla/tgo-ui';
8
+ export interface INavigationButtonState {
9
+ disabled: boolean;
10
+ }
11
+ export interface IAntiCheatingState {
12
+ fullscreenTracking: boolean;
13
+ snapshotsTracking: boolean;
14
+ mouseEventTracking: boolean;
15
+ }
16
+ export interface IConfigurationState {
17
+ isSavingQuestionDisabled: boolean;
18
+ isExpirationLogicDisabled?: boolean;
19
+ }
20
+ export interface ISubmissionState {
21
+ text: string;
22
+ file?: Blob;
23
+ language?: string;
24
+ }
25
+ export interface SelectedMediaDevices {
26
+ audioDeviceId: string | null;
27
+ videoDeviceId: string | null;
28
+ }
29
+ export interface IQuestionDataContract {
30
+ completeObservable?: Observable<void>;
31
+ assessment?: Assessment;
32
+ question?: Question;
33
+ test?: TestResultRead;
34
+ isFirstQuestion?: boolean;
35
+ expirationObservable?: Observable<void>;
36
+ mediaAccessChanged?: Observable<SelectedMediaDevices>;
37
+ isExitFullscreen?: Observable<boolean>;
38
+ selectedMediaDevices?: SelectedMediaDevices;
39
+ conversationUrl?: string;
40
+ environment?: Environment;
41
+ validationStatusChanged?: EventEmitter<{
42
+ isValid: boolean;
43
+ message: string;
44
+ }>;
45
+ antiCheatingConfigurationChanged?: EventEmitter<IAntiCheatingState | null>;
46
+ fullscreenChanged?: EventEmitter<boolean>;
47
+ themeChanged?: EventEmitter<ApplicationTheme>;
48
+ codingFullscreenChanged?: EventEmitter<boolean>;
49
+ navigationButtonStateChanged?: EventEmitter<INavigationButtonState | null>;
50
+ configurationStateChanged?: EventEmitter<IConfigurationState | null>;
51
+ submissionStateChanged: EventEmitter<ISubmissionState | null>;
52
+ loadingStateChanged: EventEmitter<boolean>;
53
+ requestMediaAccess?: EventEmitter<void>;
54
+ }
@@ -0,0 +1,102 @@
1
+ export interface Question {
2
+ /** Id */
3
+ id: number;
4
+ /** Question id */
5
+ question_id: number;
6
+ /**
7
+ * Text
8
+ * @minLength 1
9
+ */
10
+ text: string;
11
+ /**
12
+ * Type
13
+ * @minLength 1
14
+ */
15
+ type: string;
16
+ context: {
17
+ /**
18
+ * Intro text
19
+ * @minLength 1
20
+ */
21
+ intro_text: string;
22
+ attempts: number;
23
+ answers: {
24
+ /** Id */
25
+ id: number;
26
+ /**
27
+ * Text
28
+ * @minLength 1
29
+ */
30
+ text: string;
31
+ /**
32
+ * Answer uuid
33
+ * @format uuid
34
+ */
35
+ answer_uuid: string;
36
+ }[];
37
+ /**
38
+ * What to look for in the answer
39
+ * @minLength 1
40
+ */
41
+ what_to_look_for_in_the_answer: string;
42
+ /**
43
+ * Initial code
44
+ * @minLength 1
45
+ */
46
+ initial_code: string;
47
+ /**
48
+ * Initial code
49
+ * @minLength 1
50
+ */
51
+ initial_sql?: string;
52
+ /**
53
+ * Code language
54
+ * @minLength 1
55
+ */
56
+ code_language: string;
57
+ /**
58
+ * Typing test type
59
+ * @minLength 1
60
+ */
61
+ typing_test_type: string;
62
+ /**
63
+ * Typing test config
64
+ * @minLength 1
65
+ */
66
+ typing_test_config: string;
67
+ /** Typing test mode */
68
+ typing_test_mode: Record<string, string | null>;
69
+ /** Long answer list */
70
+ long_answer_list: boolean;
71
+ /** Max items */
72
+ max_items: number;
73
+ /** Min items */
74
+ min_items: number;
75
+ /** Coding question boilerplates */
76
+ boilerplates: {
77
+ programming_language: {
78
+ id: number;
79
+ name: string;
80
+ version: string;
81
+ };
82
+ code: string;
83
+ }[];
84
+ /** Coding question testcases */
85
+ testcases: {
86
+ name: string;
87
+ input: string;
88
+ solution: string;
89
+ points: number;
90
+ }[];
91
+ /** Coding question sql testcases */
92
+ sql_testcases: {
93
+ category: string;
94
+ id: number;
95
+ initial_sql: string;
96
+ name: string;
97
+ post_sql: string;
98
+ pre_sql: string;
99
+ result: string;
100
+ }[];
101
+ };
102
+ }
@@ -0,0 +1,81 @@
1
+ export interface TestResultRead {
2
+ /** Test result Id */
3
+ id: number;
4
+ /**
5
+ * Uuid
6
+ * @format uuid
7
+ */
8
+ uuid?: string;
9
+ test: {
10
+ /** Id */
11
+ id: number;
12
+ /**
13
+ * Name
14
+ * @minLength 1
15
+ */
16
+ name: string;
17
+ /** Duration */
18
+ duration: number;
19
+ algorithm: string;
20
+ };
21
+ /**
22
+ * Locale
23
+ * For example, en-US.
24
+ * @minLength 1
25
+ * @maxLength 10
26
+ */
27
+ locale: string;
28
+ /** Total questions */
29
+ total_questions?: number;
30
+ /** Total completed questions */
31
+ total_completed_questions?: number;
32
+ /**
33
+ * Expiration datetime
34
+ * Original name in TGO app: date_of_expiry
35
+ * @format date-time
36
+ */
37
+ expiration_datetime?: string | null;
38
+ /**
39
+ * Start datetime
40
+ * The exact date time when a test will start
41
+ * @format date-time
42
+ */
43
+ start_datetime?: string | null;
44
+ /**
45
+ * Is preview mode
46
+ * Indicate if the test is in preview mode. This is used to indicate that the setup of the test should be done only taking into account the practice questions.
47
+ */
48
+ is_preview_mode?: boolean | null;
49
+ /**
50
+ * Order
51
+ * The order in which the test results are displayed.
52
+ * @min 0
53
+ * @max 4294967295
54
+ */
55
+ order: number;
56
+ /**
57
+ * Is custom
58
+ * If the test is a custom question's test.
59
+ */
60
+ is_custom?: boolean;
61
+ /**
62
+ * Video Length
63
+ * Maximum allowed length for video question recording
64
+ */
65
+ video_length?: number;
66
+ /**
67
+ * isLat
68
+ * Is language agnostic test
69
+ */
70
+ is_language_agnostic_test?: boolean;
71
+ /**
72
+ * intro_text
73
+ * Intro text for the test
74
+ */
75
+ intro_text?: string;
76
+ /**
77
+ * test_instruction
78
+ * Test instruction for the test
79
+ */
80
+ test_instruction?: string;
81
+ }
@@ -0,0 +1 @@
1
+ export declare const ROOT_TRANSLATIONS_SCOPE = "TEST";
@@ -0,0 +1,6 @@
1
+ import 'mixpanel-browser';
2
+ declare global {
3
+ interface Window {
4
+ mixpanel: typeof import('mixpanel-browser');
5
+ }
6
+ }
@@ -0,0 +1,25 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { SnackbarService } from '@testgorilla/tgo-ui';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ApiService {
6
+ private httpClient;
7
+ private snackbarService;
8
+ private invitationUUID;
9
+ private contentLanguage;
10
+ private ROOT_TRANSLATIONS_SCOPE;
11
+ private baseUrl;
12
+ constructor(httpClient: HttpClient, snackbarService: SnackbarService);
13
+ setParams(invitationUUID: string, contentLanguage: string, translationScope: string, baseUrl: string): void;
14
+ getInvitationUUID(): string;
15
+ get<T>(url: string, options?: {}, errorCallback?: any): Observable<T>;
16
+ post<T>(url: string, data: object, options?: {}, errorCallback?: any, isStandaloneUrl?: boolean): Observable<T>;
17
+ put<T>(url: string, data: object, options?: {}, errorCallback?: any): Observable<T>;
18
+ patch<T>(url: string, data: object, options?: {}, errorCallback?: any): Observable<T>;
19
+ delete(url: string, errorCallback?: any): Observable<object>;
20
+ private handleError;
21
+ private processGenericServerError;
22
+ private buildHeaders;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<ApiService, never>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<ApiService>;
25
+ }
@@ -0,0 +1,35 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * MockedApiService provides fake API responses for demo/development purposes.
5
+ * This service mimics the real ApiService interface but returns mock data instead
6
+ * of making actual HTTP calls.
7
+ *
8
+ * Usage: Provide this service in place of ApiService in your demo application:
9
+ * ```
10
+ * { provide: ApiService, useClass: MockedApiService }
11
+ * ```
12
+ */
13
+ export declare class MockedApiService {
14
+ private invitationUUID;
15
+ private contentLanguage;
16
+ private ROOT_TRANSLATIONS_SCOPE;
17
+ private readonly MOCK_DELAY;
18
+ setParams(invitationUUID: string, contentLanguage: string, translationScope: string, baseUrl: string): void;
19
+ getInvitationUUID(): string;
20
+ get<T>(url: string, options?: {}, errorCallback?: (error: any) => Observable<never>): Observable<T>;
21
+ post<T>(url: string, data: object, options?: {}, errorCallback?: (error: any) => Observable<never>, isStandaloneUrl?: boolean): Observable<T>;
22
+ put<T>(url: string, data: object, options?: {}, errorCallback?: (error: any) => Observable<never>): Observable<T>;
23
+ patch<T>(url: string, data: object, options?: {}, errorCallback?: (error: any) => Observable<never>): Observable<T>;
24
+ delete(url: string, errorCallback?: (error: any) => Observable<never>): Observable<object>;
25
+ /**
26
+ * Returns mock responses based on the URL pattern
27
+ */
28
+ private getMockResponse;
29
+ /**
30
+ * Returns a mock coderunner attempt response with test results
31
+ */
32
+ private getMockCoderunnerAttemptResponse;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<MockedApiService, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<MockedApiService>;
35
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EnvironmentService {
3
+ get isMobile(): boolean;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<EnvironmentService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<EnvironmentService>;
6
+ }
@@ -0,0 +1,9 @@
1
+ export * from './media/media.service';
2
+ export * from './theme/theme.service';
3
+ export * from './localization/transloco-lazy-module-utils';
4
+ export * from './localization/languages.model';
5
+ export * from './localization/transloco-testing.module';
6
+ export * from './api/api.service';
7
+ export * from './api/mocked-api.service';
8
+ export * from './environment/environment.service';
9
+ export * from './mixpanel/mixpanel.service';
@@ -0,0 +1,15 @@
1
+ export declare enum Language {
2
+ en = "en",
3
+ es = "es",
4
+ nl = "nl",
5
+ fr = "fr",
6
+ de = "de",
7
+ 'it-it' = "it-it",
8
+ 'ja-jp' = "ja-jp",
9
+ 'pt-br' = "pt-br",
10
+ 'da-dk' = "da-dk",
11
+ 'nb-no' = "nb-no",
12
+ 'pl-pl' = "pl-pl",
13
+ 'sv-se' = "sv-se"
14
+ }
15
+ export declare const getAvailableLangs: () => Language[];
@@ -0,0 +1,11 @@
1
+ import { ValueProvider } from '@angular/core';
2
+ /**
3
+ * The util is based on this issue https://github.com/jsverse/transloco/issues/608#issuecomment-1416113493
4
+ *
5
+ * Transloco can't have several forRoot modules. so the only way for now to decouple translations as a separate file and context
6
+ * from the shell (TAS in this case) is to use TRANSLOCO_SCOPE
7
+ */
8
+ export declare class TranslocoLazyModuleUtils {
9
+ private static createInlineLoader;
10
+ static getScopeProvider(scope: string, languages: Array<string>, alias: string, loaderFn: (l: string) => Promise<JSON>): ValueProvider;
11
+ }
@@ -0,0 +1,2 @@
1
+ import { TranslocoTestingModule, TranslocoTestingOptions } from '@ngneat/transloco';
2
+ export declare const getTranslocoModule: (options?: TranslocoTestingOptions) => import("@angular/core").ModuleWithProviders<TranslocoTestingModule>;
@@ -0,0 +1,29 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SelectedMediaDevices } from '../../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MediaService {
5
+ private mediaRecorder;
6
+ private selectedMediaDevices;
7
+ readonly isRecording: import("@angular/core").WritableSignal<boolean>;
8
+ stopRecording(): void;
9
+ getMediaStream(data: {
10
+ audio: boolean;
11
+ video: boolean;
12
+ }): Promise<MediaStream>;
13
+ recordAudio(): Observable<{
14
+ type: 'complete';
15
+ file: Blob;
16
+ } | {
17
+ type: 'volume';
18
+ value: number;
19
+ }>;
20
+ playAudio(url: string): Promise<void>;
21
+ setSelectedMediaDevices(data?: SelectedMediaDevices): void;
22
+ checkPermission(data: {
23
+ audio: boolean;
24
+ video: boolean;
25
+ }): Promise<boolean>;
26
+ private getMediaStreamConstraints;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<MediaService, never>;
28
+ static ɵprov: i0.ɵɵInjectableDeclaration<MediaService>;
29
+ }
@@ -0,0 +1,10 @@
1
+ import * as mixpanel from 'mixpanel-browser';
2
+ import '../../models/window';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MixpanelService {
5
+ private mixpanel;
6
+ track(eventName: string, properties?: mixpanel.Dict): void;
7
+ private sendTrackEvent;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<MixpanelService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<MixpanelService>;
10
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ThemeService {
3
+ private readonly BRAND_PINK_COLOR;
4
+ getCompanyColor(): string;
5
+ private getCSSVariableValue;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
8
+ }
@@ -0,0 +1,21 @@
1
+ import { Assessment } from '../lib/models/assessment';
2
+ import { Question } from '../lib/models/question';
3
+ import { TestResultRead } from '../lib/models/test';
4
+ export declare const mockAssessment: Assessment;
5
+ export declare const mockQuestion: Question;
6
+ export declare const mockTestResultRead: TestResultRead;
7
+ export declare const mockSQLTestCases: {
8
+ category: string;
9
+ id: number;
10
+ initial_sql: string;
11
+ name: string;
12
+ post_sql: string;
13
+ pre_sql: string;
14
+ result: string;
15
+ }[];
16
+ export declare const mockTestCases: {
17
+ name: string;
18
+ input: string;
19
+ solution: string;
20
+ points: number;
21
+ }[];
@@ -0,0 +1,2 @@
1
+ export * from './assessment-test.mock';
2
+ export * from './tgo-ui.mock';
@@ -0,0 +1,21 @@
1
+ export declare const ButtonComponentModule: {
2
+ new (): {};
3
+ };
4
+ export declare const IconComponentModule: {
5
+ new (): {};
6
+ };
7
+ export declare const CardComponentModule: {
8
+ new (): {};
9
+ };
10
+ export declare const DialogComponentModule: {
11
+ new (): {};
12
+ };
13
+ export declare class DialogService {
14
+ open: any;
15
+ }
16
+ export declare class SnackbarService {
17
+ error: any;
18
+ }
19
+ export declare const QuillViewComponent: {
20
+ new (): {};
21
+ };
package/.eslintrc.json DELETED
@@ -1,46 +0,0 @@
1
- {
2
- "extends": ["../../.eslintrc.json"],
3
- "ignorePatterns": ["!**/*"],
4
- "overrides": [
5
- {
6
- "files": ["*.ts"],
7
- "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"],
8
- "rules": {
9
- "@angular-eslint/directive-selector": [
10
- "error",
11
- {
12
- "type": "attribute",
13
- "prefix": "tgo",
14
- "style": "camelCase"
15
- }
16
- ],
17
- "@angular-eslint/component-selector": [
18
- "error",
19
- {
20
- "type": "element",
21
- "prefix": "tgo",
22
- "style": "kebab-case"
23
- }
24
- ],
25
- "@angular-eslint/prefer-standalone": "off"
26
- }
27
- },
28
- {
29
- "files": ["*.html"],
30
- "extends": ["plugin:@nx/angular-template"],
31
- "rules": {}
32
- },
33
- {
34
- "files": ["*.json"],
35
- "parser": "jsonc-eslint-parser",
36
- "rules": {
37
- "@nx/dependency-checks": [
38
- "error",
39
- {
40
- "ignoredFiles": ["{projectRoot}/eslint.config.{js,cjs,mjs}"]
41
- }
42
- ]
43
- }
44
- }
45
- ]
46
- }
package/jest.config.ts DELETED
@@ -1,26 +0,0 @@
1
- export default {
2
- displayName: 'tgo-coding-test',
3
- preset: '../../jest.preset.js',
4
- setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
5
- coverageDirectory: '../../coverage/packages/tgo-coding-test',
6
- transform: {
7
- '^.+\\.(ts|mjs|js|html)$': [
8
- 'jest-preset-angular',
9
- {
10
- tsconfig: '<rootDir>/tsconfig.spec.json',
11
- stringifyContentPathRegex: '\\.(html|svg)$',
12
- },
13
- ],
14
- },
15
- moduleNameMapper: {
16
- '^@testgorilla/tgo-test-shared$': '<rootDir>/src/shared/index.ts',
17
- },
18
- transformIgnorePatterns: [
19
- 'node_modules/(?!.*\\.mjs$|lodash-es|@testgorilla/tgo-ui|ng2-charts|quill|ngx-quill|parchment)',
20
- ],
21
- snapshotSerializers: [
22
- 'jest-preset-angular/build/serializers/no-ng-attributes',
23
- 'jest-preset-angular/build/serializers/ng-snapshot',
24
- 'jest-preset-angular/build/serializers/html-comment',
25
- ],
26
- };
package/ng-package.json DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/packages/tgo-coding-test",
4
- "assets": [
5
- {
6
- "glob": "**/*",
7
- "input": "./src/assets",
8
- "output": "./assets"
9
- }
10
- ],
11
- "lib": {
12
- "entryFile": "src/index.ts"
13
- }
14
- }