@testgorilla/tgo-coding-test 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/.eslintrc.json +46 -0
  2. package/jest.config.ts +26 -0
  3. package/ng-package.json +14 -0
  4. package/package.json +15 -31
  5. package/project.json +48 -0
  6. package/{index.d.ts → src/index.ts} +19 -2
  7. package/src/lib/components/.gitkeep +0 -0
  8. package/src/lib/components/code-editor/code-editor.component.html +10 -0
  9. package/src/lib/components/code-editor/code-editor.component.scss +21 -0
  10. package/src/lib/components/code-editor/code-editor.component.spec.ts +136 -0
  11. package/src/lib/components/code-editor/code-editor.component.ts +368 -0
  12. package/src/lib/components/code-editor/code-editor.mocks.ts +28 -0
  13. package/src/lib/components/code-editor/code-editor.service.spec.ts +160 -0
  14. package/src/lib/components/code-editor/code-editor.service.ts +94 -0
  15. package/src/lib/components/code-editor/helpers/c-helper.spec.ts +39 -0
  16. package/src/lib/components/code-editor/helpers/c-helper.ts +51 -0
  17. package/src/lib/components/code-editor/helpers/code-editor-helper.base.spec.ts +30 -0
  18. package/src/lib/components/code-editor/helpers/code-editor-helper.base.ts +16 -0
  19. package/src/lib/components/code-editor/helpers/code-editor-helper.mocks.ts +24 -0
  20. package/src/lib/components/code-editor/helpers/code-editor-helper.model.ts +67 -0
  21. package/src/lib/components/code-editor/helpers/cpp-helper.spec.ts +40 -0
  22. package/src/lib/components/code-editor/helpers/cpp-helper.ts +52 -0
  23. package/src/lib/components/code-editor/helpers/csharp-helper.spec.ts +42 -0
  24. package/src/lib/components/code-editor/helpers/csharp-helper.ts +55 -0
  25. package/src/lib/components/code-editor/helpers/go-helper.spec.ts +41 -0
  26. package/src/lib/components/code-editor/helpers/go-helper.ts +54 -0
  27. package/src/lib/components/code-editor/helpers/java-helper.spec.ts +41 -0
  28. package/src/lib/components/code-editor/helpers/java-helper.ts +54 -0
  29. package/src/lib/components/code-editor/helpers/javascript-helper.spec.ts +39 -0
  30. package/src/lib/components/code-editor/helpers/javascript-helper.ts +32 -0
  31. package/src/lib/components/code-editor/helpers/kotlin-helper.spec.ts +41 -0
  32. package/src/lib/components/code-editor/helpers/kotlin-helper.ts +54 -0
  33. package/src/lib/components/code-editor/helpers/php-helper.spec.ts +39 -0
  34. package/src/lib/components/code-editor/helpers/php-helper.ts +32 -0
  35. package/src/lib/components/code-editor/helpers/python-helper.spec.ts +39 -0
  36. package/src/lib/components/code-editor/helpers/python-helper.ts +32 -0
  37. package/src/lib/components/code-editor/helpers/r-helper.spec.ts +39 -0
  38. package/src/lib/components/code-editor/helpers/r-helper.ts +32 -0
  39. package/src/lib/components/code-editor/helpers/ruby-helper.spec.ts +39 -0
  40. package/src/lib/components/code-editor/helpers/ruby-helper.ts +32 -0
  41. package/src/lib/components/code-editor/helpers/scala-helper.spec.ts +41 -0
  42. package/src/lib/components/code-editor/helpers/scala-helper.ts +53 -0
  43. package/src/lib/components/code-editor/helpers/sql-helper.spec.ts +87 -0
  44. package/src/lib/components/code-editor/helpers/sql-helper.ts +44 -0
  45. package/src/lib/components/code-editor/helpers/swift-helper.spec.ts +40 -0
  46. package/src/lib/components/code-editor/helpers/swift-helper.ts +51 -0
  47. package/src/lib/components/code-editor/helpers/typescript-helper.spec.ts +40 -0
  48. package/src/lib/components/code-editor/helpers/typescript-helper.ts +52 -0
  49. package/src/lib/components/code-editor/models/code-editor.model.ts +9 -0
  50. package/src/lib/components/code-editor/models/coding-snapshot.model.ts +4 -0
  51. package/src/lib/components/coding-question/coding-question.component.html +78 -0
  52. package/src/lib/components/coding-question/coding-question.component.scss +75 -0
  53. package/src/lib/components/coding-question/coding-question.component.spec.ts +85 -0
  54. package/src/lib/components/coding-question/coding-question.component.ts +101 -0
  55. package/src/lib/components/coding-section/coding-section.component.html +82 -0
  56. package/src/lib/components/coding-section/coding-section.component.scss +64 -0
  57. package/src/lib/components/coding-section/coding-section.component.spec.ts +257 -0
  58. package/src/lib/components/coding-section/coding-section.component.ts +186 -0
  59. package/src/lib/components/coding-test.module.ts +124 -0
  60. package/src/lib/components/common/truncated-text/truncated-text.component.html +6 -0
  61. package/src/lib/components/common/truncated-text/truncated-text.component.scss +18 -0
  62. package/src/lib/components/common/truncated-text/truncated-text.component.spec.ts +84 -0
  63. package/src/lib/components/common/truncated-text/truncated-text.component.ts +36 -0
  64. package/src/lib/components/configurations/configurations.component.html +57 -0
  65. package/src/lib/components/configurations/configurations.component.scss +42 -0
  66. package/src/lib/components/configurations/configurations.component.spec.ts +186 -0
  67. package/src/lib/components/configurations/configurations.component.ts +97 -0
  68. package/src/lib/components/instructions/instructions.component.html +41 -0
  69. package/src/lib/components/instructions/instructions.component.scss +173 -0
  70. package/src/lib/components/instructions/instructions.component.spec.ts +106 -0
  71. package/src/lib/components/instructions/instructions.component.ts +137 -0
  72. package/src/lib/components/panel/panel.component.html +19 -0
  73. package/src/lib/components/panel/panel.component.scss +41 -0
  74. package/src/lib/components/panel/panel.component.spec.ts +40 -0
  75. package/src/lib/components/panel/panel.component.ts +33 -0
  76. package/src/lib/components/runnable-editor/runnable-editor.component.html +75 -0
  77. package/src/lib/components/runnable-editor/runnable-editor.component.scss +55 -0
  78. package/src/lib/components/runnable-editor/runnable-editor.component.spec.ts +124 -0
  79. package/src/lib/components/runnable-editor/runnable-editor.component.ts +154 -0
  80. package/src/lib/components/tests/test-cases/test-cases.component.html +135 -0
  81. package/src/lib/components/tests/test-cases/test-cases.component.scss +220 -0
  82. package/src/lib/components/tests/test-cases/test-cases.component.spec.ts +401 -0
  83. package/src/lib/components/tests/test-cases/test-cases.component.ts +204 -0
  84. package/src/lib/components/tests/test-cases-content/test-cases-content.component.html +94 -0
  85. package/src/lib/components/tests/test-cases-content/test-cases-content.component.scss +103 -0
  86. package/src/lib/components/tests/test-cases-content/test-cases-content.component.spec.ts +122 -0
  87. package/src/lib/components/tests/test-cases-content/test-cases-content.component.ts +101 -0
  88. package/src/lib/components/tests/test-cases-status/test-cases-status.component.html +16 -0
  89. package/src/lib/components/tests/test-cases-status/test-cases-status.component.scss +49 -0
  90. package/src/lib/components/tests/test-cases-status/test-cases-status.component.spec.ts +22 -0
  91. package/src/lib/components/tests/test-cases-status/test-cases-status.component.ts +17 -0
  92. package/src/lib/components/tests/test-results.component.html +119 -0
  93. package/src/lib/components/tests/test-results.component.scss +189 -0
  94. package/src/lib/components/tests/test-results.component.spec.ts +140 -0
  95. package/src/lib/components/tests/test-results.component.ts +97 -0
  96. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.html +96 -0
  97. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.scss +6 -0
  98. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.spec.ts +599 -0
  99. package/src/lib/components/tgo-coding-test/tgo-coding-test.component.ts +278 -0
  100. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.html +36 -0
  101. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.scss +183 -0
  102. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.spec.ts +883 -0
  103. package/src/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.ts +578 -0
  104. package/{lib/config/index.d.ts → src/lib/config/index.ts} +1 -0
  105. package/src/lib/config/tgo-coding-test.config.ts +26 -0
  106. package/{lib/config/tgo-coding-test.provider.d.ts → src/lib/config/tgo-coding-test.provider.ts} +18 -6
  107. package/src/lib/config/tgo-coding-test.token.ts +21 -0
  108. package/src/lib/models/.gitkeep +0 -0
  109. package/src/lib/models/auto-saved-data.ts +51 -0
  110. package/src/lib/models/code-event.ts +17 -0
  111. package/src/lib/models/coderunner-execution-results.ts +58 -0
  112. package/src/lib/models/coding-lib.mocks.ts +246 -0
  113. package/src/lib/models/configs.ts +18 -0
  114. package/src/lib/models/language-change-action.ts +4 -0
  115. package/src/lib/models/lat-languages.ts +12 -0
  116. package/src/lib/models/mixpanel-events.ts +3 -0
  117. package/src/lib/models/mode.ts +5 -0
  118. package/src/lib/models/paste-data.ts +4 -0
  119. package/src/lib/models/programming-language.ts +9 -0
  120. package/src/lib/models/test-cases.ts +74 -0
  121. package/src/lib/models/theme.ts +5 -0
  122. package/src/lib/models/translations.ts +1 -0
  123. package/src/lib/models/view-mode.ts +6 -0
  124. package/{lib/pipes/memoize-func.pipe.d.ts → src/lib/pipes/memoize-func.pipe.ts} +14 -6
  125. package/src/lib/services/.gitkeep +0 -0
  126. package/src/lib/services/candidate-coding-test-services/candidature-api.service.spec.ts +40 -0
  127. package/src/lib/services/candidate-coding-test-services/candidature-api.service.ts +15 -0
  128. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.spec.ts +134 -0
  129. package/src/lib/services/candidate-coding-test-services/coderunner-api.service.ts +105 -0
  130. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.spec.ts +161 -0
  131. package/src/lib/services/candidate-coding-test-services/coding-test-tour.service.ts +100 -0
  132. package/src/lib/services/candidate-coding-test-services/coding-test.service.spec.ts +1524 -0
  133. package/src/lib/services/candidate-coding-test-services/coding-test.service.ts +843 -0
  134. package/{lib/services/candidate-coding-test-services/index.d.ts → src/lib/services/candidate-coding-test-services/index.ts} +1 -1
  135. package/src/lib/services/coding-test-config.service.ts +48 -0
  136. package/src/lib/services/configurations.service.mocks.ts +77 -0
  137. package/src/lib/services/configurations.service.spec.ts +79 -0
  138. package/src/lib/services/configurations.service.ts +111 -0
  139. package/src/lib/services/index.ts +0 -0
  140. package/src/lib/services/lib-coding-test.service.spec.ts +265 -0
  141. package/src/lib/services/lib-coding-test.service.ts +157 -0
  142. package/src/lib/services/local-storage.service.mocks.ts +22 -0
  143. package/src/lib/services/storage.service.spec.ts +1119 -0
  144. package/src/lib/services/storage.service.ts +729 -0
  145. package/src/lib/services/test-cases.service.spec.ts +53 -0
  146. package/src/lib/services/test-cases.service.ts +29 -0
  147. package/src/lib/services/theme.service.spec.ts +76 -0
  148. package/src/lib/services/theme.service.ts +34 -0
  149. package/src/lib/styles/mixins.scss +86 -0
  150. package/src/lib/styles/styles.scss +112 -0
  151. package/src/lib/styles/variables.scss +105 -0
  152. package/src/lib/utils/.gitkeep +0 -0
  153. package/src/lib/utils/additional-languages/erlang.ts +115 -0
  154. package/src/lib/utils/resize-element.ts +15 -0
  155. package/src/lib/utils/time-to-ms.util.ts +10 -0
  156. package/src/test-setup.ts +3 -0
  157. package/tsconfig.json +19 -0
  158. package/tsconfig.lib.json +19 -0
  159. package/tsconfig.lib.prod.json +10 -0
  160. package/tsconfig.spec.json +17 -0
  161. package/esm2022/index.mjs +0 -12
  162. package/esm2022/lib/components/code-editor/code-editor.component.mjs +0 -335
  163. package/esm2022/lib/components/code-editor/code-editor.service.mjs +0 -72
  164. package/esm2022/lib/components/code-editor/helpers/c-helper.mjs +0 -40
  165. package/esm2022/lib/components/code-editor/helpers/code-editor-helper.base.mjs +0 -11
  166. package/esm2022/lib/components/code-editor/helpers/code-editor-helper.model.mjs +0 -2
  167. package/esm2022/lib/components/code-editor/helpers/cpp-helper.mjs +0 -41
  168. package/esm2022/lib/components/code-editor/helpers/csharp-helper.mjs +0 -42
  169. package/esm2022/lib/components/code-editor/helpers/go-helper.mjs +0 -42
  170. package/esm2022/lib/components/code-editor/helpers/index.mjs +0 -16
  171. package/esm2022/lib/components/code-editor/helpers/java-helper.mjs +0 -42
  172. package/esm2022/lib/components/code-editor/helpers/javascript-helper.mjs +0 -26
  173. package/esm2022/lib/components/code-editor/helpers/kotlin-helper.mjs +0 -42
  174. package/esm2022/lib/components/code-editor/helpers/php-helper.mjs +0 -26
  175. package/esm2022/lib/components/code-editor/helpers/python-helper.mjs +0 -26
  176. package/esm2022/lib/components/code-editor/helpers/r-helper.mjs +0 -26
  177. package/esm2022/lib/components/code-editor/helpers/ruby-helper.mjs +0 -26
  178. package/esm2022/lib/components/code-editor/helpers/scala-helper.mjs +0 -41
  179. package/esm2022/lib/components/code-editor/helpers/sql-helper.mjs +0 -34
  180. package/esm2022/lib/components/code-editor/helpers/swift-helper.mjs +0 -40
  181. package/esm2022/lib/components/code-editor/helpers/typescript-helper.mjs +0 -41
  182. package/esm2022/lib/components/code-editor/models/code-editor.model.mjs +0 -2
  183. package/esm2022/lib/components/code-editor/models/coding-snapshot.model.mjs +0 -2
  184. package/esm2022/lib/components/coding-question/coding-question.component.mjs +0 -126
  185. package/esm2022/lib/components/coding-section/coding-section.component.mjs +0 -188
  186. package/esm2022/lib/components/common/truncated-text/truncated-text.component.mjs +0 -38
  187. package/esm2022/lib/components/configurations/configurations.component.mjs +0 -97
  188. package/esm2022/lib/components/instructions/instructions.component.mjs +0 -139
  189. package/esm2022/lib/components/panel/panel.component.mjs +0 -34
  190. package/esm2022/lib/components/runnable-editor/runnable-editor.component.mjs +0 -169
  191. package/esm2022/lib/components/tests/test-cases/test-cases.component.mjs +0 -198
  192. package/esm2022/lib/components/tests/test-cases-content/test-cases-content.component.mjs +0 -96
  193. package/esm2022/lib/components/tests/test-cases-status/test-cases-status.component.mjs +0 -21
  194. package/esm2022/lib/components/tests/test-results.component.mjs +0 -127
  195. package/esm2022/lib/components/tgo-coding-test/tgo-coding-test.component.mjs +0 -280
  196. package/esm2022/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.mjs +0 -476
  197. package/esm2022/lib/config/index.mjs +0 -2
  198. package/esm2022/lib/config/tgo-coding-test.config.mjs +0 -2
  199. package/esm2022/lib/config/tgo-coding-test.provider.mjs +0 -34
  200. package/esm2022/lib/config/tgo-coding-test.token.mjs +0 -14
  201. package/esm2022/lib/models/auto-saved-data.mjs +0 -2
  202. package/esm2022/lib/models/code-event.mjs +0 -2
  203. package/esm2022/lib/models/coderunner-execution-results.mjs +0 -2
  204. package/esm2022/lib/models/configs.mjs +0 -2
  205. package/esm2022/lib/models/language-change-action.mjs +0 -2
  206. package/esm2022/lib/models/lat-languages.mjs +0 -3
  207. package/esm2022/lib/models/mixpanel-events.mjs +0 -2
  208. package/esm2022/lib/models/mode.mjs +0 -2
  209. package/esm2022/lib/models/paste-data.mjs +0 -2
  210. package/esm2022/lib/models/programming-language.mjs +0 -2
  211. package/esm2022/lib/models/test-cases.mjs +0 -7
  212. package/esm2022/lib/models/theme.mjs +0 -2
  213. package/esm2022/lib/models/translations.mjs +0 -2
  214. package/esm2022/lib/models/view-mode.mjs +0 -8
  215. package/esm2022/lib/pipes/memoize-func.pipe.mjs +0 -39
  216. package/esm2022/lib/services/candidate-coding-test-services/candidature-api.service.mjs +0 -19
  217. package/esm2022/lib/services/candidate-coding-test-services/coderunner-api.service.mjs +0 -58
  218. package/esm2022/lib/services/candidate-coding-test-services/coding-test-tour.service.mjs +0 -89
  219. package/esm2022/lib/services/candidate-coding-test-services/coding-test.service.mjs +0 -490
  220. package/esm2022/lib/services/candidate-coding-test-services/index.mjs +0 -5
  221. package/esm2022/lib/services/coding-test-config.service.mjs +0 -51
  222. package/esm2022/lib/services/configurations.service.mjs +0 -89
  223. package/esm2022/lib/services/lib-coding-test.service.mjs +0 -106
  224. package/esm2022/lib/services/storage.service.mjs +0 -624
  225. package/esm2022/lib/services/test-cases.service.mjs +0 -30
  226. package/esm2022/lib/services/theme.service.mjs +0 -36
  227. package/esm2022/lib/utils/additional-languages/erlang.mjs +0 -103
  228. package/esm2022/lib/utils/resize-element.mjs +0 -13
  229. package/esm2022/lib/utils/time-to-ms.util.mjs +0 -11
  230. package/esm2022/shared/index.mjs +0 -5
  231. package/esm2022/shared/lib/components/audio-animation/audio-animation.component.mjs +0 -114
  232. package/esm2022/shared/lib/components/audio-animation/index.mjs +0 -2
  233. package/esm2022/shared/lib/components/index.mjs +0 -3
  234. package/esm2022/shared/lib/components/vimeo-video/index.mjs +0 -2
  235. package/esm2022/shared/lib/components/vimeo-video/vimeo-video.component.mjs +0 -101
  236. package/esm2022/shared/lib/models/answer.mjs +0 -2
  237. package/esm2022/shared/lib/models/assessment.mjs +0 -2
  238. package/esm2022/shared/lib/models/environment.mjs +0 -2
  239. package/esm2022/shared/lib/models/index.mjs +0 -9
  240. package/esm2022/shared/lib/models/question-component.mjs +0 -2
  241. package/esm2022/shared/lib/models/question.mjs +0 -2
  242. package/esm2022/shared/lib/models/test.mjs +0 -2
  243. package/esm2022/shared/lib/models/translations.mjs +0 -2
  244. package/esm2022/shared/lib/models/window.mjs +0 -2
  245. package/esm2022/shared/lib/services/api/api.service.mjs +0 -97
  246. package/esm2022/shared/lib/services/api/mocked-api.service.mjs +0 -131
  247. package/esm2022/shared/lib/services/environment/environment.service.mjs +0 -13
  248. package/esm2022/shared/lib/services/index.mjs +0 -10
  249. package/esm2022/shared/lib/services/localization/languages.model.mjs +0 -19
  250. package/esm2022/shared/lib/services/localization/transloco-lazy-module-utils.mjs +0 -27
  251. package/esm2022/shared/lib/services/localization/transloco-testing.module.mjs +0 -11
  252. package/esm2022/shared/lib/services/media/media.service.mjs +0 -129
  253. package/esm2022/shared/lib/services/mixpanel/mixpanel.service.mjs +0 -30
  254. package/esm2022/shared/lib/services/theme/theme.service.mjs +0 -24
  255. package/esm2022/shared/test-mocks/assessment-test.mock.mjs +0 -112
  256. package/esm2022/shared/test-mocks/index.mjs +0 -3
  257. package/esm2022/shared/test-mocks/tgo-ui.mock.mjs +0 -39
  258. package/esm2022/testgorilla-tgo-coding-test.mjs +0 -5
  259. package/fesm2022/testgorilla-tgo-coding-test.mjs +0 -4526
  260. package/fesm2022/testgorilla-tgo-coding-test.mjs.map +0 -1
  261. package/lib/components/code-editor/code-editor.component.d.ts +0 -54
  262. package/lib/components/code-editor/code-editor.service.d.ts +0 -12
  263. package/lib/components/code-editor/helpers/c-helper.d.ts +0 -11
  264. package/lib/components/code-editor/helpers/code-editor-helper.base.d.ts +0 -8
  265. package/lib/components/code-editor/helpers/code-editor-helper.model.d.ts +0 -62
  266. package/lib/components/code-editor/helpers/cpp-helper.d.ts +0 -11
  267. package/lib/components/code-editor/helpers/csharp-helper.d.ts +0 -12
  268. package/lib/components/code-editor/helpers/go-helper.d.ts +0 -12
  269. package/lib/components/code-editor/helpers/java-helper.d.ts +0 -12
  270. package/lib/components/code-editor/helpers/javascript-helper.d.ts +0 -10
  271. package/lib/components/code-editor/helpers/kotlin-helper.d.ts +0 -12
  272. package/lib/components/code-editor/helpers/php-helper.d.ts +0 -10
  273. package/lib/components/code-editor/helpers/python-helper.d.ts +0 -10
  274. package/lib/components/code-editor/helpers/r-helper.d.ts +0 -10
  275. package/lib/components/code-editor/helpers/ruby-helper.d.ts +0 -10
  276. package/lib/components/code-editor/helpers/scala-helper.d.ts +0 -12
  277. package/lib/components/code-editor/helpers/sql-helper.d.ts +0 -10
  278. package/lib/components/code-editor/helpers/swift-helper.d.ts +0 -11
  279. package/lib/components/code-editor/helpers/typescript-helper.d.ts +0 -11
  280. package/lib/components/code-editor/models/code-editor.model.d.ts +0 -8
  281. package/lib/components/code-editor/models/coding-snapshot.model.d.ts +0 -4
  282. package/lib/components/coding-question/coding-question.component.d.ts +0 -45
  283. package/lib/components/coding-section/coding-section.component.d.ts +0 -52
  284. package/lib/components/common/truncated-text/truncated-text.component.d.ts +0 -13
  285. package/lib/components/configurations/configurations.component.d.ts +0 -40
  286. package/lib/components/instructions/instructions.component.d.ts +0 -48
  287. package/lib/components/panel/panel.component.d.ts +0 -12
  288. package/lib/components/runnable-editor/runnable-editor.component.d.ts +0 -53
  289. package/lib/components/tests/test-cases/test-cases.component.d.ts +0 -46
  290. package/lib/components/tests/test-cases-content/test-cases-content.component.d.ts +0 -26
  291. package/lib/components/tests/test-cases-status/test-cases-status.component.d.ts +0 -9
  292. package/lib/components/tests/test-results.component.d.ts +0 -33
  293. package/lib/components/tgo-coding-test/tgo-coding-test.component.d.ts +0 -69
  294. package/lib/components/tgo-coding-test-candidate-view/tgo-coding-test-candidate-view.component.d.ts +0 -101
  295. package/lib/config/tgo-coding-test.config.d.ts +0 -24
  296. package/lib/config/tgo-coding-test.token.d.ts +0 -9
  297. package/lib/models/auto-saved-data.d.ts +0 -42
  298. package/lib/models/code-event.d.ts +0 -15
  299. package/lib/models/coderunner-execution-results.d.ts +0 -51
  300. package/lib/models/configs.d.ts +0 -15
  301. package/lib/models/language-change-action.d.ts +0 -4
  302. package/lib/models/lat-languages.d.ts +0 -8
  303. package/lib/models/mixpanel-events.d.ts +0 -3
  304. package/lib/models/mode.d.ts +0 -5
  305. package/lib/models/paste-data.d.ts +0 -4
  306. package/lib/models/programming-language.d.ts +0 -8
  307. package/lib/models/test-cases.d.ts +0 -67
  308. package/lib/models/theme.d.ts +0 -4
  309. package/lib/models/translations.d.ts +0 -1
  310. package/lib/models/view-mode.d.ts +0 -6
  311. package/lib/services/candidate-coding-test-services/candidature-api.service.d.ts +0 -10
  312. package/lib/services/candidate-coding-test-services/coderunner-api.service.d.ts +0 -18
  313. package/lib/services/candidate-coding-test-services/coding-test-tour.service.d.ts +0 -22
  314. package/lib/services/candidate-coding-test-services/coding-test.service.d.ts +0 -68
  315. package/lib/services/coding-test-config.service.d.ts +0 -38
  316. package/lib/services/configurations.service.d.ts +0 -37
  317. package/lib/services/lib-coding-test.service.d.ts +0 -69
  318. package/lib/services/storage.service.d.ts +0 -83
  319. package/lib/services/test-cases.service.d.ts +0 -12
  320. package/lib/services/theme.service.d.ts +0 -17
  321. package/lib/utils/additional-languages/erlang.d.ts +0 -37
  322. package/lib/utils/resize-element.d.ts +0 -2
  323. package/lib/utils/time-to-ms.util.d.ts +0 -1
  324. package/shared/index.d.ts +0 -4
  325. package/shared/lib/components/audio-animation/audio-animation.component.d.ts +0 -27
  326. package/shared/lib/components/audio-animation/index.d.ts +0 -1
  327. package/shared/lib/components/index.d.ts +0 -2
  328. package/shared/lib/components/vimeo-video/index.d.ts +0 -1
  329. package/shared/lib/components/vimeo-video/vimeo-video.component.d.ts +0 -24
  330. package/shared/lib/models/answer.d.ts +0 -17
  331. package/shared/lib/models/assessment.d.ts +0 -80
  332. package/shared/lib/models/environment.d.ts +0 -1
  333. package/shared/lib/models/index.d.ts +0 -8
  334. package/shared/lib/models/question-component.d.ts +0 -54
  335. package/shared/lib/models/question.d.ts +0 -102
  336. package/shared/lib/models/test.d.ts +0 -81
  337. package/shared/lib/models/translations.d.ts +0 -1
  338. package/shared/lib/models/window.d.ts +0 -6
  339. package/shared/lib/services/api/api.service.d.ts +0 -25
  340. package/shared/lib/services/api/mocked-api.service.d.ts +0 -35
  341. package/shared/lib/services/environment/environment.service.d.ts +0 -6
  342. package/shared/lib/services/index.d.ts +0 -9
  343. package/shared/lib/services/localization/languages.model.d.ts +0 -15
  344. package/shared/lib/services/localization/transloco-lazy-module-utils.d.ts +0 -11
  345. package/shared/lib/services/localization/transloco-testing.module.d.ts +0 -2
  346. package/shared/lib/services/media/media.service.d.ts +0 -29
  347. package/shared/lib/services/mixpanel/mixpanel.service.d.ts +0 -10
  348. package/shared/lib/services/theme/theme.service.d.ts +0 -8
  349. package/shared/test-mocks/assessment-test.mock.d.ts +0 -21
  350. package/shared/test-mocks/index.d.ts +0 -2
  351. package/shared/test-mocks/tgo-ui.mock.d.ts +0 -21
  352. /package/{assets → src/assets}/i18n/en.json +0 -0
  353. /package/{lib/components/code-editor/helpers/index.d.ts → src/lib/components/code-editor/helpers/index.ts} +0 -0
@@ -1,97 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { translate } from '@ngneat/transloco';
4
- import { SnackbarService } from '@testgorilla/tgo-ui';
5
- import { EMPTY, throwError } from 'rxjs';
6
- import { catchError } from 'rxjs/operators';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "@testgorilla/tgo-ui";
10
- export class ApiService {
11
- httpClient;
12
- snackbarService;
13
- invitationUUID = '';
14
- contentLanguage = '';
15
- ROOT_TRANSLATIONS_SCOPE = '';
16
- baseUrl = '';
17
- constructor(httpClient, snackbarService) {
18
- this.httpClient = httpClient;
19
- this.snackbarService = snackbarService;
20
- }
21
- setParams(invitationUUID, contentLanguage, translationScope, baseUrl) {
22
- this.invitationUUID = invitationUUID;
23
- this.contentLanguage = contentLanguage;
24
- this.ROOT_TRANSLATIONS_SCOPE = translationScope;
25
- this.baseUrl = baseUrl;
26
- }
27
- getInvitationUUID() {
28
- return this.invitationUUID;
29
- }
30
- get(url, options = {}, errorCallback = this.handleError.bind(this)) {
31
- return this.httpClient
32
- .get(`${this.baseUrl}${url}`, this.buildHeaders(options))
33
- .pipe(catchError((error) => errorCallback(error)));
34
- }
35
- post(url, data, options = {}, errorCallback = this.handleError.bind(this), isStandaloneUrl = false) {
36
- return this.httpClient
37
- .post(isStandaloneUrl ? url : `${this.baseUrl}${url}`, data, this.buildHeaders(options))
38
- .pipe(catchError((error) => errorCallback(error)));
39
- }
40
- put(url, data, options = {}, errorCallback = this.handleError.bind(this)) {
41
- return this.httpClient
42
- .put(`${this.baseUrl}${url}`, data, this.buildHeaders(options))
43
- .pipe(catchError((error) => errorCallback(error)));
44
- }
45
- patch(url, data, options = {}, errorCallback = this.handleError.bind(this)) {
46
- return this.httpClient
47
- .patch(`${this.baseUrl}${url}`, data, this.buildHeaders(options))
48
- .pipe(catchError((error) => errorCallback(error)));
49
- }
50
- delete(url, errorCallback = this.handleError.bind(this)) {
51
- return this.httpClient
52
- .delete(`${this.baseUrl}${url}`, this.buildHeaders({}))
53
- .pipe(catchError((error) => errorCallback(error)));
54
- }
55
- handleError(errorObj) {
56
- const { error } = errorObj;
57
- if (error?.errors?.length > 0) {
58
- return throwError(() => error.errors);
59
- }
60
- else {
61
- console.error(errorObj.message);
62
- this.snackbarService.error(this.processGenericServerError());
63
- return EMPTY;
64
- }
65
- }
66
- processGenericServerError() {
67
- return translate(`${this.ROOT_TRANSLATIONS_SCOPE}.ERRORS.SYSTEM_ERROR`);
68
- }
69
- buildHeaders(options) {
70
- if (typeof window.crypto.randomUUID === 'function') {
71
- options = {
72
- ...options,
73
- 'X-REQUEST-ID': window.crypto.randomUUID(),
74
- 'X-INVITATION-UUID': this.invitationUUID,
75
- };
76
- }
77
- const passedAuthorizationHeader = options['Authorization'];
78
- const headers = {
79
- headers: {
80
- ...options,
81
- Authorization: passedAuthorizationHeader
82
- ? passedAuthorizationHeader
83
- : `TokenCandidature ${this.invitationUUID?.replace(/-/g, '')}`,
84
- },
85
- };
86
- if (this.contentLanguage) {
87
- headers.headers['Accept-Language'] = this.contentLanguage;
88
- }
89
- return headers;
90
- }
91
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiService, deps: [{ token: i1.HttpClient }, { token: i2.SnackbarService }], target: i0.ɵɵFactoryTarget.Injectable });
92
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiService });
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiService, decorators: [{
95
- type: Injectable
96
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.SnackbarService }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL3NoYXJlZC9saWIvc2VydmljZXMvYXBpL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUc1QyxNQUFNLE9BQU8sVUFBVTtJQU9YO0lBQ0E7SUFQRixjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDckIsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFckIsWUFDVSxVQUFzQixFQUN0QixlQUFnQztRQURoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUN2QyxDQUFDO0lBRUosU0FBUyxDQUNQLGNBQXNCLEVBQ3RCLGVBQXVCLEVBQ3ZCLGdCQUF3QixFQUN4QixPQUFlO1FBRWYsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxp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ZSxDQUFDO1FBQzVELENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO3dHQTVJVSxVQUFVOzRHQUFWLFVBQVU7OzRGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcbmltcG9ydCB7IFNuYWNrYmFyU2VydmljZSB9IGZyb20gJ0B0ZXN0Z29yaWxsYS90Z28tdWknO1xuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBpbnZpdGF0aW9uVVVJRCA9ICcnO1xuICBwcml2YXRlIGNvbnRlbnRMYW5ndWFnZSA9ICcnO1xuICBwcml2YXRlIFJPT1RfVFJBTlNMQVRJT05TX1NDT1BFID0gJyc7XG4gIHByaXZhdGUgYmFzZVVybCA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHNuYWNrYmFyU2VydmljZTogU25hY2tiYXJTZXJ2aWNlXG4gICkge31cblxuICBzZXRQYXJhbXMoXG4gICAgaW52aXRhdGlvblVVSUQ6IHN0cmluZyxcbiAgICBjb250ZW50TGFuZ3VhZ2U6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvblNjb3BlOiBzdHJpbmcsXG4gICAgYmFzZVVybDogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaW52aXRhdGlvblVVSUQgPSBpbnZpdGF0aW9uVVVJRDtcbiAgICB0aGlzLmNvbnRlbnRMYW5ndWFnZSA9IGNvbnRlbnRMYW5ndWFnZTtcbiAgICB0aGlzLlJPT1RfVFJBTlNMQVRJT05TX1NDT1BFID0gdHJhbnNsYXRpb25TY29wZTtcbiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsO1xuICB9XG5cbiAgZ2V0SW52aXRhdGlvblVVSUQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnZpdGF0aW9uVVVJRDtcbiAgfVxuXG4gIGdldDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zID0ge30sXG4gICAgZXJyb3JDYWxsYmFjayA9IHRoaXMuaGFuZGxlRXJyb3IuYmluZCh0aGlzKVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PFQ+KFxuICAgICAgICBgJHt0aGlzLmJhc2VVcmx9JHt1cmx9YCxcbiAgICAgICAgdGhpcy5idWlsZEhlYWRlcnMob3B0aW9ucylcbiAgICAgIClcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gZXJyb3JDYWxsYmFjayhlcnJvcikpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgcG9zdDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiBvYmplY3QsXG4gICAgb3B0aW9ucyA9IHt9LFxuICAgIGVycm9yQ2FsbGJhY2sgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcyksXG4gICAgaXNTdGFuZGFsb25lVXJsID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3Q8VD4oXG4gICAgICAgIGlzU3RhbmRhbG9uZVVybCA/IHVybCA6IGAke3RoaXMuYmFzZVVybH0ke3VybH1gLFxuICAgICAgICBkYXRhLFxuICAgICAgICB0aGlzLmJ1aWxkSGVhZGVycyhvcHRpb25zKVxuICAgICAgKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBlcnJvckNhbGxiYWNrKGVycm9yKSkpIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICBwdXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YTogb2JqZWN0LFxuICAgIG9wdGlvbnMgPSB7fSxcbiAgICBlcnJvckNhbGxiYWNrID0gdGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wdXQ8VD4oXG4gICAgICAgIGAke3RoaXMuYmFzZVVybH0ke3VybH1gLFxuICAgICAgICBkYXRhLFxuICAgICAgICB0aGlzLmJ1aWxkSGVhZGVycyhvcHRpb25zKVxuICAgICAgKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBlcnJvckNhbGxiYWNrKGVycm9yKSkpIGFzIE9ic2VydmFibGU8VD47XG4gIH1cblxuICBwYXRjaDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiBvYmplY3QsXG4gICAgb3B0aW9ucyA9IHt9LFxuICAgIGVycm9yQ2FsbGJhY2sgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcylcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBhdGNoPFQ+KFxuICAgICAgICBgJHt0aGlzLmJhc2VVcmx9JHt1cmx9YCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5idWlsZEhlYWRlcnMob3B0aW9ucylcbiAgICAgIClcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gZXJyb3JDYWxsYmFjayhlcnJvcikpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9XG5cbiAgZGVsZXRlKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGVycm9yQ2FsbGJhY2sgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcylcbiAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZGVsZXRlKFxuICAgICAgICBgJHt0aGlzLmJhc2VVcmx9JHt1cmx9YCxcbiAgICAgICAgdGhpcy5idWlsZEhlYWRlcnMoe30pXG4gICAgICApXG4gICAgICAucGlwZShjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IGVycm9yQ2FsbGJhY2soZXJyb3IpKSkgYXMgT2JzZXJ2YWJsZTxvYmplY3Q+O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvck9iajogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPG5ldmVyPiB7XG4gICAgY29uc3QgeyBlcnJvciB9ID0gZXJyb3JPYmo7XG4gICAgaWYgKGVycm9yPy5lcnJvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yLmVycm9ycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JPYmoubWVzc2FnZSk7XG4gICAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5lcnJvcih0aGlzLnByb2Nlc3NHZW5lcmljU2VydmVyRXJyb3IoKSk7XG5cbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NHZW5lcmljU2VydmVyRXJyb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlKGAke3RoaXMuUk9PVF9UUkFOU0xBVElPTlNfU0NPUEV9LkVSUk9SUy5TWVNURU1fRVJST1JgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRIZWFkZXJzKG9wdGlvbnM6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICdYLVJFUVVFU1QtSUQnOiB3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgICAgJ1gtSU5WSVRBVElPTi1VVUlEJzogdGhpcy5pbnZpdGF0aW9uVVVJRCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcGFzc2VkQXV0aG9yaXphdGlvbkhlYWRlciA9IChvcHRpb25zIGFzIHsgW2tleTogc3RyaW5nXTogYW55IH0pW1xuICAgICAgJ0F1dGhvcml6YXRpb24nXG4gICAgXTtcbiAgICBjb25zdCBoZWFkZXJzOiB7IGhlYWRlcnM6IHsgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIH0gfSA9IHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogcGFzc2VkQXV0aG9yaXphdGlvbkhlYWRlclxuICAgICAgICAgID8gcGFzc2VkQXV0aG9yaXphdGlvbkhlYWRlclxuICAgICAgICAgIDogYFRva2VuQ2FuZGlkYXR1cmUgJHt0aGlzLmludml0YXRpb25VVUlEPy5yZXBsYWNlKC8tL2csICcnKX1gLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY29udGVudExhbmd1YWdlKSB7XG4gICAgICBoZWFkZXJzLmhlYWRlcnNbJ0FjY2VwdC1MYW5ndWFnZSddID0gdGhpcy5jb250ZW50TGFuZ3VhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cbn1cbiJdfQ==
@@ -1,131 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { of, delay } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * MockedApiService provides fake API responses for demo/development purposes.
6
- * This service mimics the real ApiService interface but returns mock data instead
7
- * of making actual HTTP calls.
8
- *
9
- * Usage: Provide this service in place of ApiService in your demo application:
10
- * ```
11
- * { provide: ApiService, useClass: MockedApiService }
12
- * ```
13
- */
14
- export class MockedApiService {
15
- invitationUUID = 'demo-uuid-12345';
16
- contentLanguage = 'en';
17
- ROOT_TRANSLATIONS_SCOPE = '';
18
- // Simulate network delay (in ms) - set to 0 for instant responses
19
- MOCK_DELAY = 500;
20
- setParams(invitationUUID, contentLanguage, translationScope, baseUrl) {
21
- this.invitationUUID = invitationUUID;
22
- this.contentLanguage = contentLanguage;
23
- this.ROOT_TRANSLATIONS_SCOPE = translationScope;
24
- console.log('[MockedApiService] Params set:', {
25
- invitationUUID,
26
- contentLanguage,
27
- translationScope,
28
- baseUrl,
29
- });
30
- }
31
- getInvitationUUID() {
32
- return this.invitationUUID;
33
- }
34
- get(url, options = {}, errorCallback) {
35
- console.log('[MockedApiService] GET:', url, options);
36
- return of(this.getMockResponse(url, 'GET')).pipe(delay(this.MOCK_DELAY));
37
- }
38
- post(url, data, options = {}, errorCallback, isStandaloneUrl = false) {
39
- console.log('[MockedApiService] POST:', url, data, options);
40
- return of(this.getMockResponse(url, 'POST', data)).pipe(delay(this.MOCK_DELAY));
41
- }
42
- put(url, data, options = {}, errorCallback) {
43
- console.log('[MockedApiService] PUT:', url, data, options);
44
- return of(this.getMockResponse(url, 'PUT', data)).pipe(delay(this.MOCK_DELAY));
45
- }
46
- patch(url, data, options = {}, errorCallback) {
47
- console.log('[MockedApiService] PATCH:', url, data, options);
48
- return of(this.getMockResponse(url, 'PATCH', data)).pipe(delay(this.MOCK_DELAY));
49
- }
50
- delete(url, errorCallback) {
51
- console.log('[MockedApiService] DELETE:', url);
52
- return of({}).pipe(delay(this.MOCK_DELAY));
53
- }
54
- /**
55
- * Returns mock responses based on the URL pattern
56
- */
57
- getMockResponse(url, method, data) {
58
- // CodeRunner API - Run Tests
59
- if (url.includes('/api/attempts/public/')) {
60
- return this.getMockCoderunnerAttemptResponse(data);
61
- }
62
- if (url.includes('/api/attempts/preview/')) {
63
- return this.getMockCoderunnerAttemptResponse(data);
64
- }
65
- if (url.includes('/api/attempts/')) {
66
- return this.getMockCoderunnerAttemptResponse(data);
67
- }
68
- // Code Events
69
- if (url.includes('/api/code-events/')) {
70
- return {
71
- id: Math.floor(Math.random() * 10000),
72
- created_at: new Date().toISOString(),
73
- };
74
- }
75
- // Programming Languages
76
- if (url.includes('programming-languages')) {
77
- return []; // Mock all languages
78
- }
79
- // Default response
80
- console.warn(`[MockedApiService] No mock defined for ${method} ${url}`);
81
- return { success: true, data: null };
82
- }
83
- /**
84
- * Returns a mock coderunner attempt response with test results
85
- */
86
- getMockCoderunnerAttemptResponse(data) {
87
- const requestData = data;
88
- const testcases = requestData?.testcases || [];
89
- // Generate mock results for each test case
90
- const results = testcases.map((testcase, index) => {
91
- // Make first test pass, others random for variety
92
- const passed = index === 0 ? true : Math.random() > 0.3;
93
- return {
94
- name: testcase.name || `Test Case ${index + 1}`,
95
- passed,
96
- expected: testcase.solution || testcase.expected_output || 'Expected output',
97
- actual: passed
98
- ? testcase.solution || testcase.expected_output || 'Expected output'
99
- : 'Different output',
100
- input: testcase.input || '',
101
- error: passed ? null : 'AssertionError: Output does not match expected',
102
- execution_time: Math.random() * 100,
103
- memory_used: Math.floor(Math.random() * 1000000),
104
- points: passed ? (testcase.points || 10) : 0,
105
- };
106
- });
107
- const totalPoints = results.reduce((sum, r) => sum + r.points, 0);
108
- const maxPoints = testcases.reduce((sum, tc) => sum + (tc.points || 10), 0);
109
- return {
110
- id: Math.floor(Math.random() * 100000),
111
- uuid: crypto.randomUUID(),
112
- created_at: new Date().toISOString(),
113
- language: requestData?.language || 'python-3.10.0',
114
- code: requestData?.code || '',
115
- status: 'completed',
116
- results,
117
- score: maxPoints > 0 ? (totalPoints / maxPoints) * 100 : 0,
118
- total_points: totalPoints,
119
- max_points: maxPoints,
120
- execution_time: results.reduce((sum, r) => sum + r.execution_time, 0),
121
- compilation_error: null,
122
- runtime_error: null,
123
- };
124
- }
125
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MockedApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
126
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MockedApiService });
127
- }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MockedApiService, decorators: [{
129
- type: Injectable
130
- }] });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja2VkLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9zaGFyZWQvbGliL3NlcnZpY2VzL2FwaS9tb2NrZWQtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFN0M7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixjQUFjLEdBQUcsaUJBQWlCLENBQUM7SUFDbkMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN2Qix1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFFckMsa0VBQWtFO0lBQ2pELFVBQVUsR0FBRyxHQUFHLENBQUM7SUFFbEMsU0FBUyxDQUNQLGNBQXNCLEVBQ3RCLGVBQXVCLEVBQ3ZCLGdCQUF3QixFQUN4QixPQUFlO1FBRWYsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEVBQUU7WUFDNUMsY0FBYztZQUNkLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FDRCxHQUFXLEVBQ1gsT0FBTyxHQUFHLEVBQUUsRUFDWixhQUFpRDtRQUVqRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRCxP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RSxXQUFXO1lBQ3pCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGNBQWMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ2xGLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQztJQUNKLENBQUM7d0dBeEtVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGRlbGF5IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogTW9ja2VkQXBpU2VydmljZSBwcm92aWRlcyBmYWtlIEFQSSByZXNwb25zZXMgZm9yIGRlbW8vZGV2ZWxvcG1lbnQgcHVycG9zZXMuXG4gKiBUaGlzIHNlcnZpY2UgbWltaWNzIHRoZSByZWFsIEFwaVNlcnZpY2UgaW50ZXJmYWNlIGJ1dCByZXR1cm5zIG1vY2sgZGF0YSBpbnN0ZWFkXG4gKiBvZiBtYWtpbmcgYWN0dWFsIEhUVFAgY2FsbHMuXG4gKlxuICogVXNhZ2U6IFByb3ZpZGUgdGhpcyBzZXJ2aWNlIGluIHBsYWNlIG9mIEFwaVNlcnZpY2UgaW4geW91ciBkZW1vIGFwcGxpY2F0aW9uOlxuICogYGBgXG4gKiB7IHByb3ZpZGU6IEFwaVNlcnZpY2UsIHVzZUNsYXNzOiBNb2NrZWRBcGlTZXJ2aWNlIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9ja2VkQXBpU2VydmljZSB7XG4gIHByaXZhdGUgaW52aXRhdGlvblVVSUQgPSAnZGVtby11dWlkLTEyMzQ1JztcbiAgcHJpdmF0ZSBjb250ZW50TGFuZ3VhZ2UgPSAnZW4nO1xuICBwcml2YXRlIFJPT1RfVFJBTlNMQVRJT05TX1NDT1BFID0gJyc7XG5cbiAgLy8gU2ltdWxhdGUgbmV0d29yayBkZWxheSAoaW4gbXMpIC0gc2V0IHRvIDAgZm9yIGluc3RhbnQgcmVzcG9uc2VzXG4gIHByaXZhdGUgcmVhZG9ubHkgTU9DS19ERUxBWSA9IDUwMDtcblxuICBzZXRQYXJhbXMoXG4gICAgaW52aXRhdGlvblVVSUQ6IHN0cmluZyxcbiAgICBjb250ZW50TGFuZ3VhZ2U6IHN0cmluZyxcbiAgICB0cmFuc2xhdGlvblNjb3BlOiBzdHJpbmcsXG4gICAgYmFzZVVybDogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaW52aXRhdGlvblVVSUQgPSBpbnZpdGF0aW9uVVVJRDtcbiAgICB0aGlzLmNvbnRlbnRMYW5ndWFnZSA9IGNvbnRlbnRMYW5ndWFnZTtcbiAgICB0aGlzLlJPT1RfVFJBTlNMQVRJT05TX1NDT1BFID0gdHJhbnNsYXRpb25TY29wZTtcbiAgICBjb25zb2xlLmxvZygnW01vY2tlZEFwaVNlcnZpY2VdIFBhcmFtcyBzZXQ6Jywge1xuICAgICAgaW52aXRhdGlvblVVSUQsXG4gICAgICBjb250ZW50TGFuZ3VhZ2UsXG4gICAgICB0cmFuc2xhdGlvblNjb3BlLFxuICAgICAgYmFzZVVybCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldEludml0YXRpb25VVUlEKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW52aXRhdGlvblVVSUQ7XG4gIH1cblxuICBnZXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucyA9IHt9LFxuICAgIGVycm9yQ2FsbGJhY2s/OiAoZXJyb3I6IGFueSkgPT4gT2JzZXJ2YWJsZTxuZXZlcj5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc29sZS5sb2coJ1tNb2NrZWRBcGlTZXJ2aWNlXSBHRVQ6JywgdXJsLCBvcHRpb25zKTtcbiAgICByZXR1cm4gb2YodGhpcy5nZXRNb2NrUmVzcG9uc2U8VD4odXJsLCAnR0VUJykgYXMgVCkucGlwZShcbiAgICAgIGRlbGF5KHRoaXMuTU9DS19ERUxBWSlcbiAgICApO1xuICB9XG5cbiAgcG9zdDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBkYXRhOiBvYmplY3QsXG4gICAgb3B0aW9ucyA9IHt9LFxuICAgIGVycm9yQ2FsbGJhY2s/OiAoZXJyb3I6IGFueSkgPT4gT2JzZXJ2YWJsZTxuZXZlcj4sXG4gICAgaXNTdGFuZGFsb25lVXJsID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc29sZS5sb2coJ1tNb2NrZWRBcGlTZXJ2aWNlXSBQT1NUOicsIHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9mKHRoaXMuZ2V0TW9ja1Jlc3BvbnNlPFQ+KHVybCwgJ1BPU1QnLCBkYXRhKSBhcyBUKS5waXBlKFxuICAgICAgZGVsYXkodGhpcy5NT0NLX0RFTEFZKVxuICAgICk7XG4gIH1cblxuICBwdXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgZGF0YTogb2JqZWN0LFxuICAgIG9wdGlvbnMgPSB7fSxcbiAgICBlcnJvckNhbGxiYWNrPzogKGVycm9yOiBhbnkpID0+IE9ic2VydmFibGU8bmV2ZXI+XG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnNvbGUubG9nKCdbTW9ja2VkQXBpU2VydmljZV0gUFVUOicsIHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9mKHRoaXMuZ2V0TW9ja1Jlc3BvbnNlPFQ+KHVybCwgJ1BVVCcsIGRhdGEpIGFzIFQpLnBpcGUoXG4gICAgICBkZWxheSh0aGlzLk1PQ0tfREVMQVkpXG4gICAgKTtcbiAgfVxuXG4gIHBhdGNoPFQ+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGRhdGE6IG9iamVjdCxcbiAgICBvcHRpb25zID0ge30sXG4gICAgZXJyb3JDYWxsYmFjaz86IChlcnJvcjogYW55KSA9PiBPYnNlcnZhYmxlPG5ldmVyPlxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zb2xlLmxvZygnW01vY2tlZEFwaVNlcnZpY2VdIFBBVENIOicsIHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIG9mKHRoaXMuZ2V0TW9ja1Jlc3BvbnNlPFQ+KHVybCwgJ1BBVENIJywgZGF0YSkgYXMgVCkucGlwZShcbiAgICAgIGRlbGF5KHRoaXMuTU9DS19ERUxBWSlcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlKFxuICAgIHVybDogc3RyaW5nLFxuICAgIGVycm9yQ2FsbGJhY2s/OiAoZXJyb3I6IGFueSkgPT4gT2JzZXJ2YWJsZTxuZXZlcj5cbiAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBjb25zb2xlLmxvZygnW01vY2tlZEFwaVNlcnZpY2VdIERFTEVURTonLCB1cmwpO1xuICAgIHJldHVybiBvZih7fSkucGlwZShkZWxheSh0aGlzLk1PQ0tfREVMQVkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIG1vY2sgcmVzcG9uc2VzIGJhc2VkIG9uIHRoZSBVUkwgcGF0dGVyblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRNb2NrUmVzcG9uc2U8VD4odXJsOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBkYXRhPzogb2JqZWN0KTogVCB8IG9iamVjdCB7XG4gICAgLy8gQ29kZVJ1bm5lciBBUEkgLSBSdW4gVGVzdHNcbiAgICBpZiAodXJsLmluY2x1ZGVzKCcvYXBpL2F0dGVtcHRzL3B1YmxpYy8nKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9ja0NvZGVydW5uZXJBdHRlbXB0UmVzcG9uc2UoZGF0YSk7XG4gICAgfVxuXG4gICAgaWYgKHVybC5pbmNsdWRlcygnL2FwaS9hdHRlbXB0cy9wcmV2aWV3LycpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNb2NrQ29kZXJ1bm5lckF0dGVtcHRSZXNwb25zZShkYXRhKTtcbiAgICB9XG5cbiAgICBpZiAodXJsLmluY2x1ZGVzKCcvYXBpL2F0dGVtcHRzLycpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNb2NrQ29kZXJ1bm5lckF0dGVtcHRSZXNwb25zZShkYXRhKTtcbiAgICB9XG5cbiAgICAvLyBDb2RlIEV2ZW50c1xuICAgIGlmICh1cmwuaW5jbHVkZXMoJy9hcGkvY29kZS1ldmVudHMvJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMCksXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzXG4gICAgaWYgKHVybC5pbmNsdWRlcygncHJvZ3JhbW1pbmctbGFuZ3VhZ2VzJykpIHtcbiAgICAgIHJldHVybiBbXTsgLy8gTW9jayBhbGwgbGFuZ3VhZ2VzXG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCByZXNwb25zZVxuICAgIGNvbnNvbGUud2FybihgW01vY2tlZEFwaVNlcnZpY2VdIE5vIG1vY2sgZGVmaW5lZCBmb3IgJHttZXRob2R9ICR7dXJsfWApO1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IG51bGwgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbW9jayBjb2RlcnVubmVyIGF0dGVtcHQgcmVzcG9uc2Ugd2l0aCB0ZXN0IHJlc3VsdHNcbiAgICovXG4gIHByaXZhdGUgZ2V0TW9ja0NvZGVydW5uZXJBdHRlbXB0UmVzcG9uc2UoZGF0YT86IG9iamVjdCk6IG9iamVjdCB7XG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSBkYXRhIGFzIGFueTtcbiAgICBjb25zdCB0ZXN0Y2FzZXMgPSByZXF1ZXN0RGF0YT8udGVzdGNhc2VzIHx8IFtdO1xuXG4gICAgLy8gR2VuZXJhdGUgbW9jayByZXN1bHRzIGZvciBlYWNoIHRlc3QgY2FzZVxuICAgIGNvbnN0IHJlc3VsdHMgPSB0ZXN0Y2FzZXMubWFwKCh0ZXN0Y2FzZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAvLyBNYWtlIGZpcnN0IHRlc3QgcGFzcywgb3RoZXJzIHJhbmRvbSBmb3IgdmFyaWV0eVxuICAgICAgY29uc3QgcGFzc2VkID0gaW5kZXggPT09IDAgPyB0cnVlIDogTWF0aC5yYW5kb20oKSA+IDAuMztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogdGVzdGNhc2UubmFtZSB8fCBgVGVzdCBDYXNlICR7aW5kZXggKyAxfWAsXG4gICAgICAgIHBhc3NlZCxcbiAgICAgICAgZXhwZWN0ZWQ6IHRlc3RjYXNlLnNvbHV0aW9uIHx8IHRlc3RjYXNlLmV4cGVjdGVkX291dHB1dCB8fCAnRXhwZWN0ZWQgb3V0cHV0JyxcbiAgICAgICAgYWN0dWFsOiBwYXNzZWRcbiAgICAgICAgICA/IHRlc3RjYXNlLnNvbHV0aW9uIHx8IHRlc3RjYXNlLmV4cGVjdGVkX291dHB1dCB8fCAnRXhwZWN0ZWQgb3V0cHV0J1xuICAgICAgICAgIDogJ0RpZmZlcmVudCBvdXRwdXQnLFxuICAgICAgICBpbnB1dDogdGVzdGNhc2UuaW5wdXQgfHwgJycsXG4gICAgICAgIGVycm9yOiBwYXNzZWQgPyBudWxsIDogJ0Fzc2VydGlvbkVycm9yOiBPdXRwdXQgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQnLFxuICAgICAgICBleGVjdXRpb25fdGltZTogTWF0aC5yYW5kb20oKSAqIDEwMCxcbiAgICAgICAgbWVtb3J5X3VzZWQ6IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApLFxuICAgICAgICBwb2ludHM6IHBhc3NlZCA/ICh0ZXN0Y2FzZS5wb2ludHMgfHwgMTApIDogMCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3RhbFBvaW50cyA9IHJlc3VsdHMucmVkdWNlKChzdW06IG51bWJlciwgcjogYW55KSA9PiBzdW0gKyByLnBvaW50cywgMCk7XG4gICAgY29uc3QgbWF4UG9pbnRzID0gdGVzdGNhc2VzLnJlZHVjZShcbiAgICAgIChzdW06IG51bWJlciwgdGM6IGFueSkgPT4gc3VtICsgKHRjLnBvaW50cyB8fCAxMCksXG4gICAgICAwXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwKSxcbiAgICAgIHV1aWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICBjcmVhdGVkX2F0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBsYW5ndWFnZTogcmVxdWVzdERhdGE/Lmxhbmd1YWdlIHx8ICdweXRob24tMy4xMC4wJyxcbiAgICAgIGNvZGU6IHJlcXVlc3REYXRhPy5jb2RlIHx8ICcnLFxuICAgICAgc3RhdHVzOiAnY29tcGxldGVkJyxcbiAgICAgIHJlc3VsdHMsXG4gICAgICBzY29yZTogbWF4UG9pbnRzID4gMCA/ICh0b3RhbFBvaW50cyAvIG1heFBvaW50cykgKiAxMDAgOiAwLFxuICAgICAgdG90YWxfcG9pbnRzOiB0b3RhbFBvaW50cyxcbiAgICAgIG1heF9wb2ludHM6IG1heFBvaW50cyxcbiAgICAgIGV4ZWN1dGlvbl90aW1lOiByZXN1bHRzLnJlZHVjZSgoc3VtOiBudW1iZXIsIHI6IGFueSkgPT4gc3VtICsgci5leGVjdXRpb25fdGltZSwgMCksXG4gICAgICBjb21waWxhdGlvbl9lcnJvcjogbnVsbCxcbiAgICAgIHJ1bnRpbWVfZXJyb3I6IG51bGwsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,13 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class EnvironmentService {
4
- get isMobile() {
5
- return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
6
- }
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EnvironmentService });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EnvironmentService, decorators: [{
11
- type: Injectable
12
- }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvc2hhcmVkL2xpYi9zZXJ2aWNlcy9lbnZpcm9ubWVudC9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsSUFBSSxRQUFRO1FBQ1YsT0FBTyxnRUFBZ0UsQ0FBQyxJQUFJLENBQzFFLFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUM7SUFDSixDQUFDO3dHQUxVLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRTZXJ2aWNlIHtcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QoXG4gICAgICBuYXZpZ2F0b3IudXNlckFnZW50XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,10 +0,0 @@
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';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tY29kaW5nLXRlc3Qvc3JjL3NoYXJlZC9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21lZGlhL21lZGlhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZS90aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uL3RyYW5zbG9jby1sYXp5LW1vZHVsZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi9sYW5ndWFnZXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24vdHJhbnNsb2NvLXRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2FwaS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21vY2tlZC1hcGkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50L2Vudmlyb25tZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9taXhwYW5lbC9taXhwYW5lbC5zZXJ2aWNlJzsiXX0=
@@ -1,19 +0,0 @@
1
- //Languages available in the app as enum
2
- export var Language;
3
- (function (Language) {
4
- Language["en"] = "en";
5
- Language["es"] = "es";
6
- Language["nl"] = "nl";
7
- Language["fr"] = "fr";
8
- Language["de"] = "de";
9
- Language["it-it"] = "it-it";
10
- Language["ja-jp"] = "ja-jp";
11
- Language["pt-br"] = "pt-br";
12
- Language["da-dk"] = "da-dk";
13
- Language["nb-no"] = "nb-no";
14
- Language["pl-pl"] = "pl-pl";
15
- Language["sv-se"] = "sv-se";
16
- })(Language || (Language = {}));
17
- //This function retrieves all languages from the enum. It is used to initialize transloco
18
- export const getAvailableLangs = () => Object.values(Language);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9zaGFyZWQvbGliL3NlcnZpY2VzL2xvY2FsaXphdGlvbi9sYW5ndWFnZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBTixJQUFZLFFBYVg7QUFiRCxXQUFZLFFBQVE7SUFDbEIscUJBQVMsQ0FBQTtJQUNULHFCQUFTLENBQUE7SUFDVCxxQkFBUyxDQUFBO0lBQ1QscUJBQVMsQ0FBQTtJQUNULHFCQUFTLENBQUE7SUFDVCwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcsUUFBUSxLQUFSLFFBQVEsUUFhbkI7QUFFRCx5RkFBeUY7QUFDekYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vTGFuZ3VhZ2VzIGF2YWlsYWJsZSBpbiB0aGUgYXBwIGFzIGVudW1cbmV4cG9ydCBlbnVtIExhbmd1YWdlIHtcbiAgZW4gPSAnZW4nLFxuICBlcyA9ICdlcycsXG4gIG5sID0gJ25sJyxcbiAgZnIgPSAnZnInLFxuICBkZSA9ICdkZScsXG4gICdpdC1pdCcgPSAnaXQtaXQnLFxuICAnamEtanAnID0gJ2phLWpwJyxcbiAgJ3B0LWJyJyA9ICdwdC1icicsXG4gICdkYS1kaycgPSAnZGEtZGsnLFxuICAnbmItbm8nID0gJ25iLW5vJyxcbiAgJ3BsLXBsJyA9ICdwbC1wbCcsXG4gICdzdi1zZScgPSAnc3Ytc2UnLFxufVxuXG4vL1RoaXMgZnVuY3Rpb24gcmV0cmlldmVzIGFsbCBsYW5ndWFnZXMgZnJvbSB0aGUgZW51bS4gSXQgaXMgdXNlZCB0byBpbml0aWFsaXplIHRyYW5zbG9jb1xuZXhwb3J0IGNvbnN0IGdldEF2YWlsYWJsZUxhbmdzID0gKCkgPT4gT2JqZWN0LnZhbHVlcyhMYW5ndWFnZSk7XG5cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
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 class TranslocoLazyModuleUtils {
9
- static createInlineLoader(languages, loaderFn) {
10
- const translocoInlineLoader = {};
11
- languages.forEach((language) => {
12
- translocoInlineLoader[language] = () => loaderFn(language);
13
- });
14
- return translocoInlineLoader;
15
- }
16
- static getScopeProvider(scope, languages, alias, loaderFn) {
17
- return {
18
- provide: TRANSLOCO_SCOPE,
19
- useValue: {
20
- scope,
21
- alias,
22
- loader: this.createInlineLoader(languages, loaderFn),
23
- },
24
- };
25
- }
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLWxhenktbW9kdWxlLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9zaGFyZWQvbGliL3NlcnZpY2VzL2xvY2FsaXphdGlvbi90cmFuc2xvY28tbGF6eS1tb2R1bGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTXBEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUMzQixNQUFNLENBQUMsa0JBQWtCLENBQy9CLFNBQXdCLEVBQ3hCLFFBQXNDO1FBRXRDLE1BQU0scUJBQXFCLEdBQTBCLEVBQUUsQ0FBQztRQUV4RCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0IscUJBQXFCLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUM1QixLQUFhLEVBQ2IsU0FBd0IsRUFDeEIsS0FBYSxFQUNiLFFBQXNDO1FBRXRDLE9BQU87WUFDTCxPQUFPLEVBQUUsZUFBZTtZQUN4QixRQUFRLEVBQUU7Z0JBQ1IsS0FBSztnQkFDTCxLQUFLO2dCQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQzthQUNyRDtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XG5cbmludGVyZmFjZSBUcmFuc2xvY29JbmxpbmVMb2FkZXIge1xuICBba2V5OiBzdHJpbmddOiAoKSA9PiBQcm9taXNlPEpTT04+O1xufVxuXG4vKipcbiAqIFRoZSB1dGlsIGlzIGJhc2VkIG9uIHRoaXMgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL2pzdmVyc2UvdHJhbnNsb2NvL2lzc3Vlcy82MDgjaXNzdWVjb21tZW50LTE0MTYxMTM0OTNcbiAqXG4gKiBUcmFuc2xvY28gY2FuJ3QgaGF2ZSBzZXZlcmFsIGZvclJvb3QgbW9kdWxlcy4gc28gdGhlIG9ubHkgd2F5IGZvciBub3cgdG8gZGVjb3VwbGUgdHJhbnNsYXRpb25zIGFzIGEgc2VwYXJhdGUgZmlsZSBhbmQgY29udGV4dFxuICogZnJvbSB0aGUgc2hlbGwgKFRBUyBpbiB0aGlzIGNhc2UpIGlzIHRvIHVzZSBUUkFOU0xPQ09fU0NPUEVcbiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zbG9jb0xhenlNb2R1bGVVdGlscyB7XG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUlubGluZUxvYWRlcihcbiAgICBsYW5ndWFnZXM6IEFycmF5PHN0cmluZz4sXG4gICAgbG9hZGVyRm46IChsOiBzdHJpbmcpID0+IFByb21pc2U8SlNPTj5cbiAgKTogVHJhbnNsb2NvSW5saW5lTG9hZGVyIHtcbiAgICBjb25zdCB0cmFuc2xvY29JbmxpbmVMb2FkZXI6IFRyYW5zbG9jb0lubGluZUxvYWRlciA9IHt9O1xuXG4gICAgbGFuZ3VhZ2VzLmZvckVhY2goKGxhbmd1YWdlKSA9PiB7XG4gICAgICB0cmFuc2xvY29JbmxpbmVMb2FkZXJbbGFuZ3VhZ2VdID0gKCkgPT4gbG9hZGVyRm4obGFuZ3VhZ2UpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyYW5zbG9jb0lubGluZUxvYWRlcjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0U2NvcGVQcm92aWRlcihcbiAgICBzY29wZTogc3RyaW5nLFxuICAgIGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPixcbiAgICBhbGlhczogc3RyaW5nLFxuICAgIGxvYWRlckZuOiAobDogc3RyaW5nKSA9PiBQcm9taXNlPEpTT04+XG4gICk6IFZhbHVlUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlOiBUUkFOU0xPQ09fU0NPUEUsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBzY29wZSxcbiAgICAgICAgYWxpYXMsXG4gICAgICAgIGxvYWRlcjogdGhpcy5jcmVhdGVJbmxpbmVMb2FkZXIobGFuZ3VhZ2VzLCBsb2FkZXJGbiksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuIl19
@@ -1,11 +0,0 @@
1
- import { TranslocoTestingModule, } from '@ngneat/transloco';
2
- export const getTranslocoModule = (options = {}) => TranslocoTestingModule.forRoot({
3
- translocoConfig: {
4
- reRenderOnLangChange: false,
5
- availableLangs: ['en'],
6
- defaultLang: 'en',
7
- },
8
- preloadLangs: true,
9
- ...options,
10
- });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGdvLWNvZGluZy10ZXN0L3NyYy9zaGFyZWQvbGliL3NlcnZpY2VzL2xvY2FsaXphdGlvbi90cmFuc2xvY28tdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixHQUV2QixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBbUMsRUFBRSxFQUFFLEVBQUUsQ0FDMUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQzdCLGVBQWUsRUFBRTtRQUNmLG9CQUFvQixFQUFFLEtBQUs7UUFDM0IsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3RCLFdBQVcsRUFBRSxJQUFJO0tBQ2xCO0lBQ0QsWUFBWSxFQUFFLElBQUk7SUFDbEIsR0FBRyxPQUFPO0NBQ1gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVHJhbnNsb2NvVGVzdGluZ01vZHVsZSxcbiAgVHJhbnNsb2NvVGVzdGluZ09wdGlvbnMsXG59IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcblxuZXhwb3J0IGNvbnN0IGdldFRyYW5zbG9jb01vZHVsZSA9IChvcHRpb25zOiBUcmFuc2xvY29UZXN0aW5nT3B0aW9ucyA9IHt9KSA9PlxuICBUcmFuc2xvY29UZXN0aW5nTW9kdWxlLmZvclJvb3Qoe1xuICAgIHRyYW5zbG9jb0NvbmZpZzoge1xuICAgICAgcmVSZW5kZXJPbkxhbmdDaGFuZ2U6IGZhbHNlLFxuICAgICAgYXZhaWxhYmxlTGFuZ3M6IFsnZW4nXSxcbiAgICAgIGRlZmF1bHRMYW5nOiAnZW4nLFxuICAgIH0sXG4gICAgcHJlbG9hZExhbmdzOiB0cnVlLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xuIl19
@@ -1,129 +0,0 @@
1
- import { Injectable, signal } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class MediaService {
5
- mediaRecorder = null;
6
- selectedMediaDevices;
7
- isRecording = signal(false);
8
- stopRecording() {
9
- this.mediaRecorder?.stop();
10
- }
11
- getMediaStream(data) {
12
- return navigator.mediaDevices.getUserMedia(this.getMediaStreamConstraints(data));
13
- }
14
- recordAudio() {
15
- let checkPermissionPromise;
16
- return new Observable((observer) => {
17
- void this.getMediaStream({ video: false, audio: true })
18
- .then((stream) => {
19
- this.mediaRecorder = new MediaRecorder(stream);
20
- this.mediaRecorder.start();
21
- this.isRecording.set(true);
22
- const audioChunks = [];
23
- this.mediaRecorder.ondataavailable = (event) => {
24
- audioChunks.push(event.data);
25
- };
26
- this.mediaRecorder.addEventListener('stop', () => {
27
- const audioBlob = new Blob(audioChunks, {
28
- type: 'audio/mp3',
29
- });
30
- observer.next({ type: 'complete', file: audioBlob });
31
- this.isRecording.set(false);
32
- observer.complete();
33
- });
34
- this.mediaRecorder.onerror = (error) => {
35
- observer.error(error);
36
- observer.complete();
37
- };
38
- const audioContext = new AudioContext();
39
- const mediaStreamAudioSourceNode = audioContext.createMediaStreamSource(stream);
40
- const analyserNode = audioContext.createAnalyser();
41
- mediaStreamAudioSourceNode.connect(analyserNode);
42
- const pcmData = new Float32Array(analyserNode.fftSize);
43
- const onFrame = () => {
44
- analyserNode.getFloatTimeDomainData(pcmData);
45
- let sumSquares = 0.0;
46
- for (const amplitude of pcmData) {
47
- sumSquares += amplitude * amplitude;
48
- }
49
- if (sumSquares > 0) {
50
- observer.next({
51
- type: 'volume',
52
- value: Math.sqrt(sumSquares / pcmData.length),
53
- });
54
- }
55
- else {
56
- if (!checkPermissionPromise) {
57
- checkPermissionPromise = this.checkPermission({
58
- video: false,
59
- audio: true,
60
- });
61
- checkPermissionPromise
62
- .then((hasPermission) => {
63
- if (!hasPermission) {
64
- observer.error(new Error('Permission denied'));
65
- observer.complete();
66
- }
67
- })
68
- .finally(() => {
69
- checkPermissionPromise = null;
70
- });
71
- }
72
- }
73
- if (!observer.closed) {
74
- window.requestAnimationFrame(onFrame);
75
- }
76
- };
77
- window.requestAnimationFrame(onFrame);
78
- })
79
- .catch((error) => {
80
- observer.error(error);
81
- observer.complete();
82
- });
83
- });
84
- }
85
- async playAudio(url) {
86
- const audio = new Audio(url);
87
- await audio.play();
88
- return new Promise((resolve, reject) => {
89
- audio.onended = () => {
90
- resolve();
91
- };
92
- audio.onerror = (event) => reject(event);
93
- });
94
- }
95
- setSelectedMediaDevices(data) {
96
- this.selectedMediaDevices = data;
97
- }
98
- async checkPermission(data) {
99
- try {
100
- await this.getMediaStream(data);
101
- return true;
102
- }
103
- catch (err) {
104
- console.error(err);
105
- return false;
106
- }
107
- }
108
- getMediaStreamConstraints(data) {
109
- const audioDeviceID = this.selectedMediaDevices?.audioDeviceId;
110
- const videoDeviceID = this.selectedMediaDevices?.videoDeviceId;
111
- return {
112
- audio: data.audio && audioDeviceID
113
- ? { deviceId: { exact: audioDeviceID } }
114
- : data.audio,
115
- video: data.video && videoDeviceID
116
- ? { deviceId: { exact: videoDeviceID } }
117
- : data.video,
118
- };
119
- }
120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
121
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaService, providedIn: 'root' });
122
- }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaService, decorators: [{
124
- type: Injectable,
125
- args: [{
126
- providedIn: 'root',
127
- }]
128
- }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvc2hhcmVkL2xpYi9zZXJ2aWNlcy9tZWRpYS9tZWRpYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTWxDLE1BQU0sT0FBTyxZQUFZO0lBQ2YsYUFBYSxHQUF5QixJQUFJLENBQUM7SUFDM0Msb0JBQW9CLENBQW1DO0lBQ3RELFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckMsYUFBYTtRQUNYLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUdkO1FBQ0MsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDeEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFHVCxJQUFJLHNCQUErQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDcEQsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxD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Q0gsQ0FBQztJQUVPLHlCQUF5QixDQUFDLElBR2pDO1FBQ0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGFBQWEsQ0FBQztRQUMvRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDO1FBQy9ELE9BQU87WUFDTCxLQUFLLEVBQ0gsSUFBSSxDQUFDLEtBQUssSUFBSSxhQUFhO2dCQUN6QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUU7Z0JBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNoQixLQUFLLEVBQ0gsSUFBSSxDQUFDLEtBQUssSUFBSSxhQUFhO2dCQUN6QixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUU7Z0JBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztTQUNqQixDQUFDO0lBQ0osQ0FBQzt3R0E5SVUsWUFBWTs0R0FBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlbGVjdGVkTWVkaWFEZXZpY2VzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lZGlhU2VydmljZSB7XG4gIHByaXZhdGUgbWVkaWFSZWNvcmRlcjogTWVkaWFSZWNvcmRlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlbGVjdGVkTWVkaWFEZXZpY2VzOiBTZWxlY3RlZE1lZGlhRGV2aWNlcyB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgaXNSZWNvcmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHN0b3BSZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5tZWRpYVJlY29yZGVyPy5zdG9wKCk7XG4gIH1cblxuICBnZXRNZWRpYVN0cmVhbShkYXRhOiB7XG4gICAgYXVkaW86IGJvb2xlYW47XG4gICAgdmlkZW86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPE1lZGlhU3RyZWFtPiB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKFxuICAgICAgdGhpcy5nZXRNZWRpYVN0cmVhbUNvbnN0cmFpbnRzKGRhdGEpXG4gICAgKTtcbiAgfVxuXG4gIHJlY29yZEF1ZGlvKCk6IE9ic2VydmFibGU8XG4gICAgeyB0eXBlOiAnY29tcGxldGUnOyBmaWxlOiBCbG9iIH0gfCB7IHR5cGU6ICd2b2x1bWUnOyB2YWx1ZTogbnVtYmVyIH1cbiAgPiB7XG4gICAgbGV0IGNoZWNrUGVybWlzc2lvblByb21pc2U6IFByb21pc2U8Ym9vbGVhbj4gfCBudWxsO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIHZvaWQgdGhpcy5nZXRNZWRpYVN0cmVhbSh7IHZpZGVvOiBmYWxzZSwgYXVkaW86IHRydWUgfSlcbiAgICAgICAgLnRoZW4oKHN0cmVhbSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVkaWFSZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHN0cmVhbSk7XG4gICAgICAgICAgdGhpcy5tZWRpYVJlY29yZGVyLnN0YXJ0KCk7XG4gICAgICAgICAgdGhpcy5pc1JlY29yZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgICAgY29uc3QgYXVkaW9DaHVua3M6IEJsb2JbXSA9IFtdO1xuICAgICAgICAgIHRoaXMubWVkaWFSZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGF1ZGlvQ2h1bmtzLnB1c2goZXZlbnQuZGF0YSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHRoaXMubWVkaWFSZWNvcmRlci5hZGRFdmVudExpc3RlbmVyKCdzdG9wJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXVkaW9CbG9iID0gbmV3IEJsb2IoYXVkaW9DaHVua3MsIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2F1ZGlvL21wMycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoeyB0eXBlOiAnY29tcGxldGUnLCBmaWxlOiBhdWRpb0Jsb2IgfSk7XG4gICAgICAgICAgICB0aGlzLmlzUmVjb3JkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5tZWRpYVJlY29yZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTtcbiAgICAgICAgICBjb25zdCBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZSA9XG4gICAgICAgICAgICBhdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2Uoc3RyZWFtKTtcbiAgICAgICAgICBjb25zdCBhbmFseXNlck5vZGUgPSBhdWRpb0NvbnRleHQuY3JlYXRlQW5hbHlzZXIoKTtcbiAgICAgICAgICBtZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jb25uZWN0KGFuYWx5c2VyTm9kZSk7XG5cbiAgICAgICAgICBjb25zdCBwY21EYXRhID0gbmV3IEZsb2F0MzJBcnJheShhbmFseXNlck5vZGUuZmZ0U2l6ZSk7XG4gICAgICAgICAgY29uc3Qgb25GcmFtZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGFuYWx5c2VyTm9kZS5nZXRGbG9hdFRpbWVEb21haW5EYXRhKHBjbURhdGEpO1xuICAgICAgICAgICAgbGV0IHN1bVNxdWFyZXMgPSAwLjA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFtcGxpdHVkZSBvZiBwY21EYXRhKSB7XG4gICAgICAgICAgICAgIHN1bVNxdWFyZXMgKz0gYW1wbGl0dWRlICogYW1wbGl0dWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN1bVNxdWFyZXMgPiAwKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICd2b2x1bWUnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBNYXRoLnNxcnQoc3VtU3F1YXJlcyAvIHBjbURhdGEubGVuZ3RoKSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoIWNoZWNrUGVybWlzc2lvblByb21pc2UpIHtcbiAgICAgICAgICAgICAgICBjaGVja1Blcm1pc3Npb25Qcm9taXNlID0gdGhpcy5jaGVja1Blcm1pc3Npb24oe1xuICAgICAgICAgICAgICAgICAgdmlkZW86IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgYXVkaW86IHRydWUsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBjaGVja1Blcm1pc3Npb25Qcm9taXNlXG4gICAgICAgICAgICAgICAgICAudGhlbigoaGFzUGVybWlzc2lvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Blcm1pc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXJyb3IoJ1Blcm1pc3Npb24gZGVuaWVkJykpO1xuICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrUGVybWlzc2lvblByb21pc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFvYnNlcnZlci5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShvbkZyYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25GcmFtZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwbGF5QXVkaW8odXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhdWRpbyA9IG5ldyBBdWRpbyh1cmwpO1xuICAgIGF3YWl0IGF1ZGlvLnBsYXkoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgYXVkaW8ub25lbmRlZCA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcbiAgICAgIGF1ZGlvLm9uZXJyb3IgPSAoZXZlbnQpID0+IHJlamVjdChldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRTZWxlY3RlZE1lZGlhRGV2aWNlcyhkYXRhPzogU2VsZWN0ZWRNZWRpYURldmljZXMpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkTWVkaWFEZXZpY2VzID0gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGNoZWNrUGVybWlzc2lvbihkYXRhOiB7XG4gICAgYXVkaW86IGJvb2xlYW47XG4gICAgdmlkZW86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5nZXRNZWRpYVN0cmVhbShkYXRhKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWVkaWFTdHJlYW1Db25zdHJhaW50cyhkYXRhOiB7XG4gICAgYXVkaW86IGJvb2xlYW47XG4gICAgdmlkZW86IGJvb2xlYW47XG4gIH0pOiBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzIHtcbiAgICBjb25zdCBhdWRpb0RldmljZUlEID0gdGhpcy5zZWxlY3RlZE1lZGlhRGV2aWNlcz8uYXVkaW9EZXZpY2VJZDtcbiAgICBjb25zdCB2aWRlb0RldmljZUlEID0gdGhpcy5zZWxlY3RlZE1lZGlhRGV2aWNlcz8udmlkZW9EZXZpY2VJZDtcbiAgICByZXR1cm4ge1xuICAgICAgYXVkaW86XG4gICAgICAgIGRhdGEuYXVkaW8gJiYgYXVkaW9EZXZpY2VJRFxuICAgICAgICAgID8geyBkZXZpY2VJZDogeyBleGFjdDogYXVkaW9EZXZpY2VJRCB9IH1cbiAgICAgICAgICA6IGRhdGEuYXVkaW8sXG4gICAgICB2aWRlbzpcbiAgICAgICAgZGF0YS52aWRlbyAmJiB2aWRlb0RldmljZUlEXG4gICAgICAgICAgPyB7IGRldmljZUlkOiB7IGV4YWN0OiB2aWRlb0RldmljZUlEIH0gfVxuICAgICAgICAgIDogZGF0YS52aWRlbyxcbiAgICB9O1xuICB9XG59XG5cbiJdfQ==
@@ -1,30 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import '../../models/window';
3
- import * as i0 from "@angular/core";
4
- export class MixpanelService {
5
- mixpanel = null;
6
- track(eventName, properties = {}) {
7
- if (this.mixpanel) {
8
- return this.sendTrackEvent(eventName, properties);
9
- }
10
- if (window.mixpanel) {
11
- this.mixpanel = window.mixpanel;
12
- return this.sendTrackEvent(eventName, properties);
13
- }
14
- console.error('Mixpanel is not initialized or not available');
15
- }
16
- sendTrackEvent(eventName, properties = {}) {
17
- try {
18
- this.mixpanel.track(eventName, properties);
19
- }
20
- catch (error) {
21
- console.error(error);
22
- }
23
- }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MixpanelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MixpanelService });
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MixpanelService, decorators: [{
28
- type: Injectable
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4cGFuZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvc2hhcmVkL2xpYi9zZXJ2aWNlcy9taXhwYW5lbC9taXhwYW5lbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxxQkFBcUIsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLGVBQWU7SUFDbEIsUUFBUSxHQUFrQyxJQUFJLENBQUM7SUFFdkQsS0FBSyxDQUFDLFNBQWlCLEVBQUUsYUFBNEIsRUFBRTtRQUNyRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxjQUFjLENBQUMsU0FBaUIsRUFBRSxhQUE0QixFQUFFO1FBQ3RFLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxRQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7d0dBdEJVLGVBQWU7NEdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1peHBhbmVsIGZyb20gJ21peHBhbmVsLWJyb3dzZXInO1xuaW1wb3J0ICcuLi8uLi9tb2RlbHMvd2luZG93JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1peHBhbmVsU2VydmljZSB7XG4gIHByaXZhdGUgbWl4cGFuZWw6IHR5cGVvZiB3aW5kb3cubWl4cGFuZWwgfCBudWxsID0gbnVsbDtcblxuICB0cmFjayhldmVudE5hbWU6IHN0cmluZywgcHJvcGVydGllczogbWl4cGFuZWwuRGljdCA9IHt9KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWl4cGFuZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbmRUcmFja0V2ZW50KGV2ZW50TmFtZSwgcHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5taXhwYW5lbCkge1xuICAgICAgdGhpcy5taXhwYW5lbCA9IHdpbmRvdy5taXhwYW5lbDtcbiAgICAgIHJldHVybiB0aGlzLnNlbmRUcmFja0V2ZW50KGV2ZW50TmFtZSwgcHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgY29uc29sZS5lcnJvcignTWl4cGFuZWwgaXMgbm90IGluaXRpYWxpemVkIG9yIG5vdCBhdmFpbGFibGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZFRyYWNrRXZlbnQoZXZlbnROYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM6IG1peHBhbmVsLkRpY3QgPSB7fSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLm1peHBhbmVsIS50cmFjayhldmVudE5hbWUsIHByb3BlcnRpZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- var THEME_VARS;
4
- (function (THEME_VARS) {
5
- THEME_VARS["COMPANY_COLOR"] = "--color-primary-50";
6
- })(THEME_VARS || (THEME_VARS = {}));
7
- export class ThemeService {
8
- BRAND_PINK_COLOR = '#D410AA';
9
- getCompanyColor() {
10
- return (this.getCSSVariableValue(THEME_VARS.COMPANY_COLOR) ||
11
- this.BRAND_PINK_COLOR);
12
- }
13
- getCSSVariableValue(variableName) {
14
- return getComputedStyle(document.documentElement)
15
- .getPropertyValue(variableName)
16
- .trim();
17
- }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService });
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, decorators: [{
22
- type: Injectable
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby1jb2RpbmctdGVzdC9zcmMvc2hhcmVkL2xpYi9zZXJ2aWNlcy90aGVtZS90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLElBQUssVUFFSjtBQUZELFdBQUssVUFBVTtJQUNiLGtEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFGSSxVQUFVLEtBQVYsVUFBVSxRQUVkO0FBR0QsTUFBTSxPQUFPLFlBQVk7SUFDTixnQkFBZ0IsR0FBRyxTQUFTLENBQUM7SUFFOUMsZUFBZTtRQUNiLE9BQU8sQ0FDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CLENBQUMsWUFBb0I7UUFDOUMsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO2FBQzlDLGdCQUFnQixDQUFDLFlBQVksQ0FBQzthQUM5QixJQUFJLEVBQUUsQ0FBQztJQUNaLENBQUM7d0dBZFUsWUFBWTs0R0FBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5lbnVtIFRIRU1FX1ZBUlMge1xuICBDT01QQU5ZX0NPTE9SID0gJy0tY29sb3ItcHJpbWFyeS01MCcsXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IEJSQU5EX1BJTktfQ09MT1IgPSAnI0Q0MTBBQSc7XG5cbiAgZ2V0Q29tcGFueUNvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0Q1NTVmFyaWFibGVWYWx1ZShUSEVNRV9WQVJTLkNPTVBBTllfQ09MT1IpIHx8XG4gICAgICB0aGlzLkJSQU5EX1BJTktfQ09MT1JcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDU1NWYXJpYWJsZVZhbHVlKHZhcmlhYmxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpXG4gICAgICAuZ2V0UHJvcGVydHlWYWx1ZSh2YXJpYWJsZU5hbWUpXG4gICAgICAudHJpbSgpO1xuICB9XG59XG5cbiJdfQ==