@aakash58/chatbot 1.1.21 → 1.1.22

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 (351) hide show
  1. package/README.md +22 -298
  2. package/esm2022/aakash58-chatbot.mjs +5 -0
  3. package/esm2022/lib/app/chat/chat-ui-state.service.mjs +170 -0
  4. package/esm2022/lib/app/chat/chat.service.mjs +445 -0
  5. package/esm2022/lib/app/chat/components/chat-button/chat-button.component.mjs +50 -0
  6. package/esm2022/lib/app/chat/components/chat-footer/chat-footer.component.mjs +12 -0
  7. package/esm2022/lib/app/chat/components/chat-header/chat-header.component.mjs +66 -0
  8. package/esm2022/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.mjs +186 -0
  9. package/esm2022/lib/app/chat/components/chat-window/chat-window.component.mjs +312 -0
  10. package/esm2022/lib/app/chat/components/message-input/message-input.component.mjs +36 -0
  11. package/esm2022/lib/app/chat/components/message-list/message-list.component.mjs +115 -0
  12. package/esm2022/lib/app/chat/model/chat-history.model.mjs +2 -0
  13. package/esm2022/lib/app/chat/model/chat-request.model.mjs +2 -0
  14. package/esm2022/lib/app/chat/model/chat-response.model.mjs +2 -0
  15. package/esm2022/lib/app/chat/model/chat-session.model.mjs +2 -0
  16. package/esm2022/lib/app/chat/model/chat-stream-message.model.mjs +2 -0
  17. package/esm2022/lib/app/chat/model/chat-stream-response.model.mjs +2 -0
  18. package/esm2022/lib/app/chat/services/chat-api.service.mjs +61 -0
  19. package/esm2022/lib/app/chat/services/chat-audio.service.mjs +50 -0
  20. package/esm2022/lib/app/chat/services/chat-history.service.mjs +252 -0
  21. package/esm2022/lib/app/login/login-form.component.mjs +46 -0
  22. package/esm2022/lib/app/personalization/personalization-dialog.component.mjs +194 -0
  23. package/esm2022/lib/app/personalization/personalization.service.mjs +149 -0
  24. package/esm2022/lib/app/personalization/sections/account/account-section.component.mjs +122 -0
  25. package/esm2022/lib/app/personalization/sections/preferences/color-picker-dialog.component.mjs +86 -0
  26. package/esm2022/lib/app/personalization/sections/preferences/preferences-section.component.mjs +115 -0
  27. package/esm2022/lib/app/personalization/sections/profile/profile-section.component.mjs +29 -0
  28. package/esm2022/lib/app/personalization/sections/settings/setting-section.component.mjs +30 -0
  29. package/esm2022/lib/app/personalization/sections/terms/terms-section.component.mjs +12 -0
  30. package/esm2022/lib/constant/doohbot-constant.mjs +28 -0
  31. package/esm2022/lib/constant/html-entities.mjs +9 -0
  32. package/esm2022/lib/constant/utf8.mjs +10 -0
  33. package/esm2022/lib/core/app-const.mjs +61 -0
  34. package/esm2022/lib/core/auth/account-api.service.mjs +40 -0
  35. package/esm2022/lib/core/auth/auth.service.mjs +391 -0
  36. package/esm2022/lib/core/auth/models/auth-result.model.mjs +3 -0
  37. package/esm2022/lib/core/auth/models/federated-login-request.model.mjs +6 -0
  38. package/esm2022/lib/core/auth/models/login-request.model.mjs +6 -0
  39. package/esm2022/lib/core/auth/storage.service.mjs +110 -0
  40. package/esm2022/lib/core/directives/draggable/draggable-dialog.directive.mjs +112 -0
  41. package/esm2022/lib/core/directives/fullscreen/fullscreen.directive.mjs +55 -0
  42. package/esm2022/lib/core/directives/resizable/resizable-dialog.directive.mjs +179 -0
  43. package/esm2022/lib/core/environments/environment.mjs +15 -0
  44. package/esm2022/lib/core/environments/environment.prod.mjs +15 -0
  45. package/esm2022/lib/core/helpers/crypto-helper.service.mjs +52 -0
  46. package/esm2022/lib/core/http/http-stream.service.mjs +97 -0
  47. package/esm2022/lib/core/http/http.service.mjs +103 -0
  48. package/esm2022/lib/core/interceptors/auth.interceptor.mjs +96 -0
  49. package/esm2022/lib/core/interceptors/license.interceptor.mjs +44 -0
  50. package/esm2022/lib/core/models/api-config.model.mjs +18 -0
  51. package/esm2022/lib/core/models/api-request.model.mjs +2 -0
  52. package/esm2022/lib/core/models/api-response.model.mjs +8 -0
  53. package/esm2022/lib/core/models/doohbot-config.model.mjs +18 -0
  54. package/esm2022/lib/core/models/license.model.mjs +2 -0
  55. package/esm2022/lib/core/models/message.mjs +2 -0
  56. package/esm2022/lib/core/models/theme-config.model.mjs +2 -0
  57. package/esm2022/lib/core/services/core-config.service.mjs +52 -0
  58. package/esm2022/lib/core/services/license.service.mjs +145 -0
  59. package/esm2022/lib/core/services/markdown.service.mjs +64 -0
  60. package/esm2022/lib/core/services/theme.service.mjs +248 -0
  61. package/esm2022/lib/core/types/auth-mode.type.mjs +2 -0
  62. package/esm2022/lib/core/types/auth-status.type.mjs +5 -0
  63. package/esm2022/lib/core/types/chat-stream.type.mjs +2 -0
  64. package/esm2022/lib/core/types/message-role.type.mjs +2 -0
  65. package/esm2022/lib/core/types/prompt-mode.type.mjs +5 -0
  66. package/esm2022/lib/core/types/snackbar-error.type.mjs +5 -0
  67. package/esm2022/lib/core/types/tenant-resolution-strategy.type.mjs +2 -0
  68. package/esm2022/lib/core/utils/logger.service.mjs +42 -0
  69. package/esm2022/lib/doohbot-input.mjs +20 -0
  70. package/esm2022/lib/doohbot.component.mjs +444 -0
  71. package/esm2022/lib/predefined_messages.mjs +15 -0
  72. package/esm2022/lib/shared/chips/chips.component.mjs +28 -0
  73. package/esm2022/lib/shared/dialog/dialog.component.mjs +36 -0
  74. package/esm2022/lib/shared/dialog/dialog.service.mjs +64 -0
  75. package/esm2022/lib/shared/dialog/dialog.utils.mjs +85 -0
  76. package/esm2022/lib/shared/dropdown-menu/dropdown-menu.component.mjs +29 -0
  77. package/esm2022/lib/shared/input-dialog/input-dialog.component.mjs +38 -0
  78. package/esm2022/lib/shared/menu-item/menu-item.component.mjs +24 -0
  79. package/esm2022/lib/shared/pipes/simple-markdown.pipe.mjs +27 -0
  80. package/esm2022/lib/shared/snackbar/snackbar.component.mjs +43 -0
  81. package/esm2022/lib/shared/snackbar/snackbar.service.mjs +46 -0
  82. package/esm2022/lib/shared/snackbar/snackbar.utils.mjs +43 -0
  83. package/esm2022/public-api.mjs +37 -0
  84. package/fesm2022/aakash58-chatbot.mjs +5193 -0
  85. package/fesm2022/aakash58-chatbot.mjs.map +1 -0
  86. package/index.d.ts +5 -0
  87. package/lib/app/chat/chat-ui-state.service.d.ts +96 -0
  88. package/lib/app/chat/chat.service.d.ts +88 -0
  89. package/lib/app/chat/components/chat-button/chat-button.component.d.ts +16 -0
  90. package/lib/app/chat/components/chat-footer/chat-footer.component.d.ts +5 -0
  91. package/lib/app/chat/components/chat-header/chat-header.component.d.ts +24 -0
  92. package/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.d.ts +49 -0
  93. package/lib/app/chat/components/chat-window/chat-window.component.d.ts +107 -0
  94. package/lib/app/chat/components/message-input/message-input.component.d.ts +12 -0
  95. package/lib/app/chat/components/message-list/message-list.component.d.ts +40 -0
  96. package/lib/app/chat/model/chat-history.model.d.ts +51 -0
  97. package/lib/app/chat/model/chat-request.model.d.ts +10 -0
  98. package/lib/app/chat/model/chat-response.model.d.ts +9 -0
  99. package/lib/app/chat/model/chat-session.model.d.ts +12 -0
  100. package/{projects/doohbot/src/lib/app/chat/model/chat-stream-message.model.ts → lib/app/chat/model/chat-stream-message.model.d.ts} +5 -6
  101. package/lib/app/chat/model/chat-stream-response.model.d.ts +10 -0
  102. package/lib/app/chat/services/chat-api.service.d.ts +30 -0
  103. package/lib/app/chat/services/chat-audio.service.d.ts +19 -0
  104. package/lib/app/chat/services/chat-history.service.d.ts +53 -0
  105. package/lib/app/login/login-form.component.d.ts +20 -0
  106. package/lib/app/personalization/personalization-dialog.component.d.ts +53 -0
  107. package/lib/app/personalization/personalization.service.d.ts +66 -0
  108. package/lib/app/personalization/sections/account/account-section.component.d.ts +30 -0
  109. package/lib/app/personalization/sections/preferences/color-picker-dialog.component.d.ts +17 -0
  110. package/lib/app/personalization/sections/preferences/preferences-section.component.d.ts +27 -0
  111. package/lib/app/personalization/sections/profile/profile-section.component.d.ts +17 -0
  112. package/lib/app/personalization/sections/settings/setting-section.component.d.ts +10 -0
  113. package/lib/app/personalization/sections/terms/terms-section.component.d.ts +5 -0
  114. package/lib/constant/doohbot-constant.d.ts +12 -0
  115. package/lib/constant/html-entities.d.ts +8 -0
  116. package/lib/constant/utf8.d.ts +9 -0
  117. package/lib/core/app-const.d.ts +11 -0
  118. package/lib/core/auth/account-api.service.d.ts +20 -0
  119. package/lib/core/auth/auth.service.d.ts +90 -0
  120. package/lib/core/auth/models/auth-result.model.d.ts +4 -0
  121. package/lib/core/auth/models/federated-login-request.model.d.ts +5 -0
  122. package/lib/core/auth/models/login-request.model.d.ts +6 -0
  123. package/lib/core/auth/storage.service.d.ts +21 -0
  124. package/lib/core/directives/draggable/draggable-dialog.directive.d.ts +23 -0
  125. package/lib/core/directives/fullscreen/fullscreen.directive.d.ts +14 -0
  126. package/lib/core/directives/resizable/resizable-dialog.directive.d.ts +30 -0
  127. package/lib/core/environments/environment.d.ts +7 -0
  128. package/lib/core/environments/environment.prod.d.ts +7 -0
  129. package/lib/core/helpers/crypto-helper.service.d.ts +12 -0
  130. package/lib/core/http/http-stream.service.d.ts +18 -0
  131. package/lib/core/http/http.service.d.ts +20 -0
  132. package/lib/core/interceptors/auth.interceptor.d.ts +18 -0
  133. package/lib/core/interceptors/license.interceptor.d.ts +11 -0
  134. package/lib/core/models/api-config.model.d.ts +58 -0
  135. package/lib/core/models/api-request.model.d.ts +77 -0
  136. package/lib/core/models/api-response.model.d.ts +6 -0
  137. package/lib/core/models/doohbot-config.model.d.ts +81 -0
  138. package/{projects/doohbot/src/lib/core/models/license.model.ts → lib/core/models/license.model.d.ts} +23 -27
  139. package/lib/core/models/message.d.ts +16 -0
  140. package/lib/core/models/theme-config.model.d.ts +28 -0
  141. package/lib/core/services/core-config.service.d.ts +23 -0
  142. package/lib/core/services/license.service.d.ts +33 -0
  143. package/lib/core/services/markdown.service.d.ts +8 -0
  144. package/lib/core/services/theme.service.d.ts +40 -0
  145. package/{projects/doohbot/src/lib/core/types/auth-mode.type.ts → lib/core/types/auth-mode.type.d.ts} +4 -4
  146. package/{projects/doohbot/src/lib/core/types/auth-status.type.ts → lib/core/types/auth-status.type.d.ts} +4 -5
  147. package/{projects/doohbot/src/lib/core/types/chat-stream.type.ts → lib/core/types/chat-stream.type.d.ts} +4 -4
  148. package/{projects/doohbot/src/lib/core/types/message-role.type.ts → lib/core/types/message-role.type.d.ts} +4 -4
  149. package/{projects/doohbot/src/lib/core/types/prompt-mode.type.ts → lib/core/types/prompt-mode.type.d.ts} +4 -5
  150. package/{projects/doohbot/src/lib/core/types/snackbar-error.type.ts → lib/core/types/snackbar-error.type.d.ts} +4 -5
  151. package/{projects/doohbot/src/lib/core/types/tenant-resolution-strategy.type.ts → lib/core/types/tenant-resolution-strategy.type.d.ts} +4 -4
  152. package/lib/core/utils/logger.service.d.ts +11 -0
  153. package/lib/doohbot-input.d.ts +19 -0
  154. package/lib/doohbot.component.d.ts +108 -0
  155. package/lib/predefined_messages.d.ts +2 -0
  156. package/lib/shared/chips/chips.component.d.ts +10 -0
  157. package/lib/shared/dialog/dialog.component.d.ts +19 -0
  158. package/lib/shared/dialog/dialog.service.d.ts +29 -0
  159. package/lib/shared/dialog/dialog.utils.d.ts +41 -0
  160. package/lib/shared/dropdown-menu/dropdown-menu.component.d.ts +11 -0
  161. package/lib/shared/input-dialog/input-dialog.component.d.ts +20 -0
  162. package/lib/shared/menu-item/menu-item.component.d.ts +9 -0
  163. package/lib/shared/pipes/simple-markdown.pipe.d.ts +10 -0
  164. package/lib/shared/snackbar/snackbar.component.d.ts +14 -0
  165. package/lib/shared/snackbar/snackbar.service.d.ts +19 -0
  166. package/{projects/doohbot/src/lib/shared/snackbar/snackbar.utils.ts → lib/shared/snackbar/snackbar.utils.d.ts} +33 -49
  167. package/package.json +29 -75
  168. package/public-api.d.ts +11 -0
  169. package/.editorconfig +0 -17
  170. package/.vscode/extensions.json +0 -4
  171. package/.vscode/launch.json +0 -41
  172. package/.vscode/settings.json +0 -14
  173. package/.vscode/tasks.json +0 -60
  174. package/angular.json +0 -132
  175. package/docs/PUBLISHING_GUIDE.md +0 -104
  176. package/projects/app-doohbot/public/assets/const/app-const.json +0 -15
  177. package/projects/app-doohbot/public/assets/const/doohclick_license.json +0 -6
  178. package/projects/app-doohbot/public/favicon.ico +0 -0
  179. package/projects/app-doohbot/src/app/app.config.ts +0 -13
  180. package/projects/app-doohbot/src/app/app.html +0 -31
  181. package/projects/app-doohbot/src/app/app.routes.ts +0 -3
  182. package/projects/app-doohbot/src/app/app.scss +0 -279
  183. package/projects/app-doohbot/src/app/app.spec.ts +0 -23
  184. package/projects/app-doohbot/src/app/app.ts +0 -72
  185. package/projects/app-doohbot/src/index.html +0 -15
  186. package/projects/app-doohbot/src/main.ts +0 -6
  187. package/projects/app-doohbot/src/styles.scss +0 -15
  188. package/projects/app-doohbot/tsconfig.app.json +0 -15
  189. package/projects/app-doohbot/tsconfig.spec.json +0 -14
  190. package/projects/doohbot/README.md +0 -64
  191. package/projects/doohbot/docs/README.md +0 -140
  192. package/projects/doohbot/ng-package.json +0 -10
  193. package/projects/doohbot/package.json +0 -16
  194. package/projects/doohbot/src/lib/app/chat/chat-ui-state.service.ts +0 -194
  195. package/projects/doohbot/src/lib/app/chat/chat.service.ts +0 -547
  196. package/projects/doohbot/src/lib/app/chat/components/chat-button/chat-button.component.html +0 -27
  197. package/projects/doohbot/src/lib/app/chat/components/chat-button/chat-button.component.scss +0 -115
  198. package/projects/doohbot/src/lib/app/chat/components/chat-button/chat-button.component.ts +0 -35
  199. package/projects/doohbot/src/lib/app/chat/components/chat-footer/chat-footer.component.html +0 -3
  200. package/projects/doohbot/src/lib/app/chat/components/chat-footer/chat-footer.component.scss +0 -20
  201. package/projects/doohbot/src/lib/app/chat/components/chat-footer/chat-footer.component.ts +0 -12
  202. package/projects/doohbot/src/lib/app/chat/components/chat-header/chat-header.component.html +0 -34
  203. package/projects/doohbot/src/lib/app/chat/components/chat-header/chat-header.component.scss +0 -78
  204. package/projects/doohbot/src/lib/app/chat/components/chat-header/chat-header.component.ts +0 -52
  205. package/projects/doohbot/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.html +0 -77
  206. package/projects/doohbot/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.scss +0 -346
  207. package/projects/doohbot/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.ts +0 -188
  208. package/projects/doohbot/src/lib/app/chat/components/chat-window/chat-window.component.html +0 -146
  209. package/projects/doohbot/src/lib/app/chat/components/chat-window/chat-window.component.scss +0 -187
  210. package/projects/doohbot/src/lib/app/chat/components/chat-window/chat-window.component.ts +0 -256
  211. package/projects/doohbot/src/lib/app/chat/components/message-input/message-input.component.html +0 -17
  212. package/projects/doohbot/src/lib/app/chat/components/message-input/message-input.component.scss +0 -59
  213. package/projects/doohbot/src/lib/app/chat/components/message-input/message-input.component.ts +0 -28
  214. package/projects/doohbot/src/lib/app/chat/components/message-list/message-list.component.html +0 -138
  215. package/projects/doohbot/src/lib/app/chat/components/message-list/message-list.component.scss +0 -436
  216. package/projects/doohbot/src/lib/app/chat/components/message-list/message-list.component.ts +0 -106
  217. package/projects/doohbot/src/lib/app/chat/model/chat-history.model.ts +0 -57
  218. package/projects/doohbot/src/lib/app/chat/model/chat-request.model.ts +0 -17
  219. package/projects/doohbot/src/lib/app/chat/model/chat-response.model.ts +0 -9
  220. package/projects/doohbot/src/lib/app/chat/model/chat-session.model.ts +0 -14
  221. package/projects/doohbot/src/lib/app/chat/model/chat-stream-response.model.ts +0 -12
  222. package/projects/doohbot/src/lib/app/chat/services/chat-api.service.ts +0 -82
  223. package/projects/doohbot/src/lib/app/chat/services/chat-audio.service.ts +0 -44
  224. package/projects/doohbot/src/lib/app/chat/services/chat-history.service.ts +0 -303
  225. package/projects/doohbot/src/lib/app/login/login-form.component.html +0 -80
  226. package/projects/doohbot/src/lib/app/login/login-form.component.scss +0 -189
  227. package/projects/doohbot/src/lib/app/login/login-form.component.ts +0 -45
  228. package/projects/doohbot/src/lib/app/personalization/personalization-dialog.component.html +0 -81
  229. package/projects/doohbot/src/lib/app/personalization/personalization-dialog.component.scss +0 -179
  230. package/projects/doohbot/src/lib/app/personalization/personalization-dialog.component.ts +0 -217
  231. package/projects/doohbot/src/lib/app/personalization/personalization.service.ts +0 -197
  232. package/projects/doohbot/src/lib/app/personalization/sections/account/account-section.component.html +0 -111
  233. package/projects/doohbot/src/lib/app/personalization/sections/account/account-section.component.scss +0 -218
  234. package/projects/doohbot/src/lib/app/personalization/sections/account/account-section.component.ts +0 -121
  235. package/projects/doohbot/src/lib/app/personalization/sections/instructions/instructions-section.component.html +0 -46
  236. package/projects/doohbot/src/lib/app/personalization/sections/instructions/instructions-section.component.scss +0 -138
  237. package/projects/doohbot/src/lib/app/personalization/sections/instructions/instructions-section.component.ts +0 -28
  238. package/projects/doohbot/src/lib/app/personalization/sections/preferences/color-picker-dialog.component.ts +0 -92
  239. package/projects/doohbot/src/lib/app/personalization/sections/preferences/preferences-section.component.html +0 -198
  240. package/projects/doohbot/src/lib/app/personalization/sections/preferences/preferences-section.component.scss +0 -107
  241. package/projects/doohbot/src/lib/app/personalization/sections/preferences/preferences-section.component.ts +0 -103
  242. package/projects/doohbot/src/lib/app/personalization/sections/profile/profile-section.component.html +0 -46
  243. package/projects/doohbot/src/lib/app/personalization/sections/profile/profile-section.component.scss +0 -131
  244. package/projects/doohbot/src/lib/app/personalization/sections/profile/profile-section.component.ts +0 -23
  245. package/projects/doohbot/src/lib/app/personalization/sections/settings/setting-section.component.html +0 -33
  246. package/projects/doohbot/src/lib/app/personalization/sections/settings/setting-section.component.scss +0 -61
  247. package/projects/doohbot/src/lib/app/personalization/sections/settings/setting-section.component.ts +0 -20
  248. package/projects/doohbot/src/lib/app/personalization/sections/terms/terms-section.component.html +0 -30
  249. package/projects/doohbot/src/lib/app/personalization/sections/terms/terms-section.component.scss +0 -59
  250. package/projects/doohbot/src/lib/app/personalization/sections/terms/terms-section.component.ts +0 -12
  251. package/projects/doohbot/src/lib/constant/doohbot-constant.ts +0 -40
  252. package/projects/doohbot/src/lib/constant/html-entities.ts +0 -8
  253. package/projects/doohbot/src/lib/constant/utf8.ts +0 -9
  254. package/projects/doohbot/src/lib/core/app-const.ts +0 -63
  255. package/projects/doohbot/src/lib/core/auth/account-api.service.ts +0 -53
  256. package/projects/doohbot/src/lib/core/auth/auth.service.ts +0 -478
  257. package/projects/doohbot/src/lib/core/auth/models/auth-result.model.ts +0 -4
  258. package/projects/doohbot/src/lib/core/auth/models/federated-login-request.model.ts +0 -5
  259. package/projects/doohbot/src/lib/core/auth/models/login-request.model.ts +0 -6
  260. package/projects/doohbot/src/lib/core/auth/storage.service.ts +0 -113
  261. package/projects/doohbot/src/lib/core/directives/draggable/draggable-dialog.directive.ts +0 -123
  262. package/projects/doohbot/src/lib/core/directives/draggable/draggable-dialog.module.ts +0 -9
  263. package/projects/doohbot/src/lib/core/directives/fullscreen/fullscreen.directive.ts +0 -58
  264. package/projects/doohbot/src/lib/core/directives/fullscreen/fullscreen.module.ts +0 -9
  265. package/projects/doohbot/src/lib/core/directives/popout/popout.directive.ts +0 -169
  266. package/projects/doohbot/src/lib/core/directives/popout/popout.module.ts +0 -9
  267. package/projects/doohbot/src/lib/core/directives/resizable/resizable-dialog.directive.ts +0 -197
  268. package/projects/doohbot/src/lib/core/directives/resizable/resizable-dialog.module.ts +0 -9
  269. package/projects/doohbot/src/lib/core/enums/api-request-state.enum.ts +0 -9
  270. package/projects/doohbot/src/lib/core/environments/environment.prod.ts +0 -14
  271. package/projects/doohbot/src/lib/core/environments/environment.ts +0 -14
  272. package/projects/doohbot/src/lib/core/helpers/crypto-helper.service.ts +0 -72
  273. package/projects/doohbot/src/lib/core/http/http-stream.service.ts +0 -105
  274. package/projects/doohbot/src/lib/core/http/http.service.ts +0 -148
  275. package/projects/doohbot/src/lib/core/interceptors/auth.interceptor.ts +0 -118
  276. package/projects/doohbot/src/lib/core/interceptors/license.interceptor.ts +0 -50
  277. package/projects/doohbot/src/lib/core/models/api-config.model.ts +0 -82
  278. package/projects/doohbot/src/lib/core/models/api-request.model.ts +0 -92
  279. package/projects/doohbot/src/lib/core/models/api-response.model.ts +0 -13
  280. package/projects/doohbot/src/lib/core/models/doohbot-config.model.ts +0 -109
  281. package/projects/doohbot/src/lib/core/models/message.ts +0 -18
  282. package/projects/doohbot/src/lib/core/models/theme-config.model.ts +0 -48
  283. package/projects/doohbot/src/lib/core/services/core-config.service.ts +0 -53
  284. package/projects/doohbot/src/lib/core/services/doohbot-api.service.ts +0 -207
  285. package/projects/doohbot/src/lib/core/services/license.service.ts +0 -171
  286. package/projects/doohbot/src/lib/core/services/markdown.service.ts +0 -73
  287. package/projects/doohbot/src/lib/core/services/theme.service.ts +0 -305
  288. package/projects/doohbot/src/lib/core/utils/error-handler.util.ts +0 -31
  289. package/projects/doohbot/src/lib/core/utils/logger.service.ts +0 -45
  290. package/projects/doohbot/src/lib/doohbot-input.ts +0 -19
  291. package/projects/doohbot/src/lib/doohbot.component.html +0 -34
  292. package/projects/doohbot/src/lib/doohbot.component.scss +0 -17
  293. package/projects/doohbot/src/lib/doohbot.component.spec.ts +0 -31
  294. package/projects/doohbot/src/lib/doohbot.component.ts +0 -545
  295. package/projects/doohbot/src/lib/elements.ts +0 -25
  296. package/projects/doohbot/src/lib/predefined_messages.ts +0 -14
  297. package/projects/doohbot/src/lib/shared/chips/chips.component.html +0 -9
  298. package/projects/doohbot/src/lib/shared/chips/chips.component.scss +0 -29
  299. package/projects/doohbot/src/lib/shared/chips/chips.component.spec.ts +0 -22
  300. package/projects/doohbot/src/lib/shared/chips/chips.component.ts +0 -20
  301. package/projects/doohbot/src/lib/shared/dialog/dialog.component.html +0 -29
  302. package/projects/doohbot/src/lib/shared/dialog/dialog.component.scss +0 -100
  303. package/projects/doohbot/src/lib/shared/dialog/dialog.component.ts +0 -42
  304. package/projects/doohbot/src/lib/shared/dialog/dialog.service.ts +0 -62
  305. package/projects/doohbot/src/lib/shared/dialog/dialog.utils.ts +0 -102
  306. package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.html +0 -30
  307. package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.scss +0 -53
  308. package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.spec.ts +0 -22
  309. package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.ts +0 -35
  310. package/projects/doohbot/src/lib/shared/input-dialog/input-dialog.component.html +0 -16
  311. package/projects/doohbot/src/lib/shared/input-dialog/input-dialog.component.scss +0 -45
  312. package/projects/doohbot/src/lib/shared/input-dialog/input-dialog.component.ts +0 -46
  313. package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.html +0 -5
  314. package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.scss +0 -0
  315. package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.spec.ts +0 -22
  316. package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.ts +0 -20
  317. package/projects/doohbot/src/lib/shared/pipes/simple-markdown.pipe.ts +0 -19
  318. package/projects/doohbot/src/lib/shared/popout/popout.html +0 -1
  319. package/projects/doohbot/src/lib/shared/popout/popout.scss +0 -0
  320. package/projects/doohbot/src/lib/shared/popout/popout.spec.ts +0 -23
  321. package/projects/doohbot/src/lib/shared/popout/popout.ts +0 -11
  322. package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.html +0 -7
  323. package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.scss +0 -125
  324. package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.spec.ts +0 -21
  325. package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.ts +0 -44
  326. package/projects/doohbot/src/lib/shared/snackbar/snackbar.service.ts +0 -54
  327. package/projects/doohbot/src/lib/styles/_theme.scss +0 -132
  328. package/projects/doohbot/src/lib/styles/material-override.scss +0 -302
  329. package/projects/doohbot/src/lib/styles/utility.scss +0 -588
  330. package/projects/doohbot/src/public-api.ts +0 -42
  331. package/projects/doohbot/tsconfig.lib.json +0 -15
  332. package/projects/doohbot/tsconfig.lib.prod.json +0 -11
  333. package/projects/doohbot/tsconfig.spec.json +0 -10
  334. package/proxy.conf.json +0 -8
  335. package/publish.config.js +0 -25
  336. package/scripts/publishing/index.ts +0 -67
  337. package/scripts/publishing/pipeline/01-clean.ts +0 -11
  338. package/scripts/publishing/pipeline/02-validate-pre.ts +0 -8
  339. package/scripts/publishing/pipeline/03-build.ts +0 -7
  340. package/scripts/publishing/pipeline/04-validate-post.ts +0 -8
  341. package/scripts/publishing/pipeline/05-prepare-package.ts +0 -29
  342. package/scripts/publishing/pipeline/06-version.ts +0 -23
  343. package/scripts/publishing/pipeline/07-publish.ts +0 -14
  344. package/scripts/publishing/pipeline/08-cleanup.ts +0 -5
  345. package/scripts/publishing/types.ts +0 -36
  346. package/scripts/publishing/utils/command.ts +0 -15
  347. package/scripts/publishing/utils/config.ts +0 -17
  348. package/scripts/validate.ts +0 -166
  349. package/tsconfig.json +0 -45
  350. package/tsconfig.scripts.json +0 -15
  351. /package/{projects/doohbot/src → src}/assets/bot.mp3 +0 -0
@@ -1,46 +0,0 @@
1
- <div class="section-pane active">
2
- <header class="pane-header">
3
- <h1>My Profile</h1>
4
- <p>Manage your account details and personal information.</p>
5
- </header>
6
-
7
- <div class="pane-content">
8
- <div class="profile-card">
9
- <div class="avatar-section">
10
- <div class="letter-avatar" [class.has-image]="!!userImageUrl">
11
- @if (userImageUrl) {
12
- <img [src]="userImageUrl" [alt]="username" class="profile-img" />
13
- } @else {
14
- {{ initials }}
15
- }
16
- </div>
17
- <div class="user-main-info">
18
- <h2>{{ username }}</h2>
19
- <p class="role-badge">{{ userRole }}</p>
20
- </div>
21
- </div>
22
-
23
- <div class="info-grid">
24
- <div class="info-item">
25
- <label>Full Name</label>
26
- <div class="info-value">{{ username }}</div>
27
- </div>
28
- <div class="info-item">
29
- <label>Email Address</label>
30
- <div class="info-value">
31
- <div class="info-value">user&#64;adzen.tech</div>
32
- </div>
33
- <!-- Mock/Placeholder for now -->
34
- </div>
35
- <div class="info-item">
36
- <label>Organization</label>
37
- <div class="info-value">Adzen Tech Private Limited</div>
38
- </div>
39
- <div class="info-item">
40
- <label>Member Since</label>
41
- <div class="info-value">January 2026</div>
42
- </div>
43
- </div>
44
- </div>
45
- </div>
46
- </div>
@@ -1,131 +0,0 @@
1
- .section-pane {
2
- padding: 40px 60px;
3
- display: flex;
4
- flex-direction: column;
5
- gap: 32px;
6
- animation: slideIn 0.3s ease-out;
7
- }
8
-
9
- .pane-header {
10
- h1 {
11
- margin: 0 0 8px 0;
12
- font-size: 1.75rem;
13
- font-weight: 700;
14
- color: var(--text-color);
15
- }
16
-
17
- p {
18
- margin: 0;
19
- font-size: 1rem;
20
- color: var(--secondary-text-color);
21
- }
22
- }
23
-
24
- .pane-content {
25
- display: flex;
26
- flex-direction: column;
27
- gap: 40px;
28
- }
29
-
30
- .profile-card {
31
- background: rgba(var(--black-rgb), 0.02);
32
- border-radius: 16px;
33
- border: 1px solid var(--border-color);
34
- padding: 32px;
35
- display: flex;
36
- flex-direction: column;
37
- gap: 32px;
38
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
39
-
40
- .avatar-section {
41
- display: flex;
42
- align-items: center;
43
- gap: 24px;
44
-
45
- .letter-avatar {
46
- width: 80px;
47
- height: 80px;
48
- border-radius: 20px;
49
- background: linear-gradient(135deg, var(--primary-color), var(--primary-color-rgb));
50
- color: var(--white);
51
- display: flex;
52
- align-items: center;
53
- justify-content: center;
54
- font-size: 2rem;
55
- font-weight: 700;
56
- box-shadow: 0 8px 16px rgba(var(--primary-color-rgb), 0.3);
57
- overflow: hidden;
58
-
59
- &.has-image {
60
- background: var(--border-color);
61
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
62
- }
63
-
64
- .profile-img {
65
- width: 100%;
66
- height: 100%;
67
- object-fit: cover;
68
- }
69
- }
70
-
71
- .user-main-info {
72
- h2 {
73
- margin: 0 0 4px 0;
74
- font-size: 1.5rem;
75
- font-weight: 700;
76
- color: var(--text-color);
77
- }
78
-
79
- .role-badge {
80
- margin: 0;
81
- display: inline-block;
82
- padding: 4px 10px;
83
- background: rgba(var(--primary-color-rgb), 0.1);
84
- color: var(--primary-color);
85
- border-radius: 20px;
86
- font-size: 0.75rem;
87
- font-weight: 600;
88
- text-transform: uppercase;
89
- letter-spacing: 0.5px;
90
- }
91
- }
92
- }
93
-
94
- .info-grid {
95
- display: grid;
96
- grid-template-columns: repeat(2, 1fr);
97
- gap: 24px;
98
-
99
- .info-item {
100
- display: flex;
101
- flex-direction: column;
102
- gap: 6px;
103
-
104
- label {
105
- font-size: 0.75rem;
106
- font-weight: 600;
107
- text-transform: uppercase;
108
- color: var(--secondary-text-color);
109
- letter-spacing: 0.5px;
110
- }
111
-
112
- .info-value {
113
- font-size: 1rem;
114
- font-weight: 500;
115
- color: var(--text-color);
116
- }
117
- }
118
- }
119
- }
120
-
121
- @keyframes slideIn {
122
- from {
123
- opacity: 0;
124
- transform: translateY(4px);
125
- }
126
-
127
- to {
128
- opacity: 1;
129
- transform: translateY(0);
130
- }
131
- }
@@ -1,23 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatIconModule } from '@angular/material/icon';
4
- import { AppEntity } from '../../../../constant/html-entities';
5
-
6
- @Component({
7
- selector: 'app-profile-section',
8
- standalone: true,
9
- imports: [CommonModule, MatIconModule],
10
- templateUrl: './profile-section.component.html',
11
- styleUrls: ['./profile-section.component.scss'],
12
- })
13
- export class ProfileSectionComponent {
14
- @Input() username: string = 'User';
15
- @Input() userImageUrl: string | null = null;
16
- @Input() userRole: string = 'Doohbot User';
17
-
18
- appEntity = AppEntity;
19
-
20
- get initials(): string {
21
- return this.username ? this.username.charAt(0).toUpperCase() : 'U';
22
- }
23
- }
@@ -1,33 +0,0 @@
1
- <div class="section-pane active">
2
- <header class="pane-header">
3
- <h1>Custom Instructions</h1>
4
- <p>Tell us more about yourself and how you want the assistant to respond.</p>
5
- </header>
6
-
7
- <div class="pane-content">
8
- <div class="instruction-fields">
9
- <div class="field-item">
10
- <label>What should the assistant know about you?</label>
11
- <mat-form-field appearance="outline" class="full-width">
12
- <textarea matInput rows="6" [(ngModel)]="settings.customInstructions.aboutUser"
13
- placeholder="e.g. I prefer code examples in TypeScript..."></textarea>
14
- </mat-form-field>
15
- </div>
16
- <div class="field-item">
17
- <label>How should the assistant respond?</label>
18
- <mat-form-field appearance="outline" class="full-width">
19
- <textarea matInput rows="6" [(ngModel)]="settings.customInstructions.responseStyle"
20
- placeholder="e.g. Be concise and use bullet points..."></textarea>
21
- </mat-form-field>
22
- </div>
23
- </div>
24
- </div>
25
-
26
- <!-- Actions -->
27
- <div class="section-actions">
28
- <div class="spacer"></div>
29
- <button mat-raised-button color="primary" class="save-btn" [disabled]="!hasChanges" (click)="onSave.emit()">
30
- Save
31
- </button>
32
- </div>
33
- </div>
@@ -1,61 +0,0 @@
1
- .section-pane {
2
- padding: 40px 60px;
3
- display: flex;
4
- flex-direction: column;
5
- gap: 32px;
6
- animation: slideIn 0.3s ease-out;
7
-
8
- .pane-header {
9
- h1 {
10
- margin: 0 0 8px 0;
11
- font-size: 1.75rem;
12
- font-weight: 700;
13
- }
14
-
15
- p {
16
- margin: 0;
17
- font-size: 1rem;
18
- color: var(--secondary-text-color);
19
- }
20
- }
21
- }
22
-
23
- .pane-content {
24
- display: flex;
25
- flex-direction: column;
26
- gap: 40px;
27
- }
28
-
29
- .instruction-fields {
30
- display: flex;
31
- flex-direction: column;
32
- gap: 24px;
33
- transition: opacity 0.3s ease;
34
-
35
- .field-item {
36
- display: flex;
37
- flex-direction: column;
38
- gap: 12px;
39
-
40
- label {
41
- font-size: 0.95rem;
42
- font-weight: 600;
43
- }
44
- }
45
- }
46
-
47
- .full-width {
48
- width: 100%;
49
- }
50
-
51
- @keyframes slideIn {
52
- from {
53
- opacity: 0;
54
- transform: translateY(4px);
55
- }
56
-
57
- to {
58
- opacity: 1;
59
- transform: translateY(0);
60
- }
61
- }
@@ -1,20 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule } from '@angular/forms';
4
- import { MatFormFieldModule } from '@angular/material/form-field';
5
- import { MatInputModule } from '@angular/material/input';
6
- import { MatButtonModule } from '@angular/material/button';
7
- import { PersonalizationSettings } from '../../personalization.service';
8
-
9
- @Component({
10
- selector: 'app-setting-section',
11
- standalone: true,
12
- imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatButtonModule],
13
- templateUrl: './setting-section.component.html',
14
- styleUrls: ['./setting-section.component.scss'],
15
- })
16
- export class SettingSectionComponent {
17
- @Input() settings!: PersonalizationSettings;
18
- @Input() hasChanges = false;
19
- @Output() onSave = new EventEmitter<void>();
20
- }
@@ -1,30 +0,0 @@
1
- <div class="terms-container">
2
- <div class="terms-header">
3
- <h3>Terms and Conditions</h3>
4
- <p class="last-updated">Last updated: January 9, 2026</p>
5
- </div>
6
-
7
- <div class="terms-content">
8
- <section>
9
- <h4>1. Acceptance of Terms</h4>
10
- <p>By using Doohbot, you agree to comply with and be bound by these terms and conditions. Please read them
11
- carefully.</p>
12
- </section>
13
-
14
- <section>
15
- <h4>2. Privacy & Data</h4>
16
- <p>We value your privacy. Your chat history and personalization settings are stored locally or securely on
17
- our servers to improve your experience.</p>
18
- </section>
19
-
20
- <section>
21
- <h4>3. Usage Guidelines</h4>
22
- <p>Doohbot is intended for professional use within the Doohclick ecosystem. Misuse or automated scraping is
23
- strictly prohibited.</p>
24
- </section>
25
-
26
- <div class="full-terms-link">
27
- <a href="#">View Full Terms and Conditions →</a>
28
- </div>
29
- </div>
30
- </div>
@@ -1,59 +0,0 @@
1
- .terms-container {
2
- padding: 8px;
3
- display: flex;
4
- flex-direction: column;
5
- gap: 24px;
6
- color: var(--text-color);
7
-
8
- .terms-header {
9
- h3 {
10
- margin: 0 0 4px 0;
11
- font-size: 1.5rem;
12
- font-weight: 600;
13
- }
14
-
15
- .last-updated {
16
- margin: 0;
17
- font-size: 0.85rem;
18
- color: var(--secondary-text-color);
19
- }
20
- }
21
-
22
- .terms-content {
23
- display: flex;
24
- flex-direction: column;
25
- gap: 20px;
26
-
27
- section {
28
- h4 {
29
- margin: 0 0 8px 0;
30
- font-size: 1.1rem;
31
- font-weight: 600;
32
- color: var(--primary-color);
33
- }
34
-
35
- p {
36
- margin: 0;
37
- line-height: 1.6;
38
- font-size: 0.95rem;
39
- }
40
- }
41
-
42
- .full-terms-link {
43
- margin-top: 20px;
44
- padding-top: 20px;
45
- border-top: 1px solid var(--border-color);
46
-
47
- a {
48
- color: var(--primary-color);
49
- text-decoration: none;
50
- font-weight: 500;
51
- font-size: 0.95rem;
52
-
53
- &:hover {
54
- text-decoration: underline;
55
- }
56
- }
57
- }
58
- }
59
- }
@@ -1,12 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
-
4
- @Component({
5
- selector: 'app-terms-section',
6
- standalone: true,
7
- imports: [CommonModule],
8
- templateUrl: './terms-section.component.html',
9
- styleUrls: ['./terms-section.component.scss'],
10
- changeDetection: ChangeDetectionStrategy.OnPush,
11
- })
12
- export class TermsSectionComponent { }
@@ -1,40 +0,0 @@
1
- export const DoohbotConst = {
2
- //LIVE ASSETS
3
- // APP_LOGO: 'https://iili.io/f3qSQJn.md.png',
4
- // USER_AVATAR: 'https://iili.io/KpEYoCP.png',
5
- // BOT_AVATAR: 'https://iili.io/KpER0Ge.png',
6
-
7
- // ==================
8
-
9
- //png ASSETS
10
- // APP_LOGO: 'assets/logo.svg',
11
- // APP_TEXT_LOGO: 'assets/title.svg',
12
- // APP_HEADER_LOGO: 'assets/header_logo.svg',
13
- // USER_AVATAR: 'assets/profile.png',
14
- // BOT_AVATAR: 'assets/bot.png',
15
-
16
- // ==================
17
-
18
- // Application Constants Text
19
- appTitle: 'DoohBot',
20
- appSubtitle: 'Welcome to DoohBot',
21
- welcomeDescription:
22
- 'We provide a powerful live chat platform to help businesses connect with their customers, offer support, and increase sales through real-time conversations.',
23
- hintText: 'Please Enter Here',
24
- errorMessage: 'The message you submitted was too long.',
25
-
26
- // ==================
27
-
28
- // base64_ASSETS
29
-
30
- appLogo:
31
- 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE0OSIgdmlld0JveD0iMCAwIDE1MCAxNDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMzc2XzE0MzgpIj4KPHBhdGggZD0iTTYgNkgxNDMuMjI3VjE0Mi45NzVINlY2WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzIzNzZfMTQzOCkiLz4KPHBhdGggZD0iTTEwNS4zOTggNDMuNzI5NkM4OS40OTU0IDYwLjk5NyA4OS41NjQyIDg3LjU2NyAxMDUuNTU2IDEwNC43NTJMMTA2Ljk0OCAxMDYuMjQ5TDEwNi45MTIgMTA2LjIxNUwxMDYuOTU0IDEwNi4yNThMNjkuNzI2NSAxNDIuOTc1SDMzLjcyNjZIMTUuNzI2Nkg2Vjc4LjU2MjVMNDIuNjQwNSA0Mi4zOTY1TDQyLjc2NTQgNDIuNTIyM0w0Mi42NDI3IDQyLjM5MDhMNDQuMTQ5OCA0My43NzM4QzYxLjQ0NzUgNTkuNjQ4MyA4OC4wNjY3IDU5LjU3ODMgMTA1LjI4MyA0My42MTYyTDEwNi43ODQgNDIuMjI1M0wxMDUuMzk4IDQzLjcyOTZaIiBmaWxsPSIjRUVFRUVFIi8+CjxwYXRoIGQ9Ik03LjAwNzAxIDE0Mi45NzVMNDQuNzY3NyAxMDUuODkyQzYyLjA0MTIgODguODUyNyA4OS44ODMyIDg5LjAxNTkgMTA2Ljk1NCAxMDYuMjU4TDY5LjcyNjUgMTQyLjk3NUg3LjAwNzAxWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzIzNzZfMTQzOCkiLz4KPHBhdGggZD0iTTYgNzguNTYyNUw0Mi42NDA1IDQyLjM5NjVDNjAuMTQ0NCA2MC4wNzU3IDU5Ljk3NTUgODguNTcxMSA0Mi4yNjM4IDEwNi4wNDNMNiAxNDJWNzguNTYyNVoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl8yMzc2XzE0MzgpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8yMzc2XzE0MzgiIHgxPSI2LjAwMzA2IiB5MT0iNiIgeDI9IjE0Mi45NzIiIHkyPSIxNDMuMjI2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMyODAwRkYiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDhEQUNGIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8yMzc2XzE0MzgiIHgxPSIxNDMuMjI3IiB5MT0iNzYuODA0NiIgeDI9IjI2LjAwMSIgeTI9IjEyMi45NjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzI4MDBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwOERBQ0YiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDJfbGluZWFyXzIzNzZfMTQzOCIgeDE9IjU4LjI1NDEiIHkxPSI1OC4xNjciIHgyPSI1My45MTE3IiB5Mj0iMTMyLjk1MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjgwMEZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzA4REFDRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzIzNzZfMTQzOCI+CjxwYXRoIGQ9Ik02IDZIMTEzLjIyN0MxMjkuNzk1IDYgMTQzLjIyNyAxOS40MzE1IDE0My4yMjcgMzZWMTEyLjk3NUMxNDMuMjI3IDEyOS41NDQgMTI5Ljc5NSAxNDIuOTc1IDExMy4yMjcgMTQyLjk3NUg2VjZaIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=',
32
- appTextLogo:
33
- 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDc3IiBoZWlnaHQ9Ijk0IiB2aWV3Qm94PSIwIDAgNDc3IDk0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDUzLjkzMiA4Ny4wMjZDNDUyLjI0OSA4Ny4wMjYgNDUxLjI4NyA4Ni40MjUgNDUwLjA4NSA4NS4yMjI5TDQ0My43MTQgNzkuODEzNkM0NDIuNTEyIDc4LjYxMTUgNDQxLjkxMSA3Ny4yODkyIDQ0MS45MTEgNzUuNDg2MVY0MC44NjYySDQzMy42MTdWMzIuNDUxNkw0NDkuMTI0IDE1LjAyMTVINDUzLjIxMVYzMS4yNDk2SDQ3MC42NDFWNDAuODY2Mkg0NTMuMjExVjc2LjY4ODJINDcxLjAwMlY4Ny4wMjZINDUzLjkzMloiIGZpbGw9IiMyODAwRkYiLz4KPHBhdGggZD0iTTM3NS44MTkgODcuMDE4N0MzNzQuNjE3IDg3LjAxODcgMzczLjA1NCA4Ni42NTggMzcxLjQ5MiA4NS4wOTUzTDM2Ni4yMDIgNzkuODA2MkMzNjUuMTIgNzguNjA0MSAzNjQuNjQgNzcuMDQxNCAzNjQuNjQgNzUuNTk4OVY0Mi42NjE5QzM2NC42NCA0MC45NzkgMzY1LjI0MSAzOS41MzY1IDM2Ni4yMDIgMzguNDU0N0wzNzEuNDkyIDMzLjE2NTVDMzcyLjkzNCAzMS43MjMgMzc0LjQ5NyAzMS4yNDIyIDM3NS44MTkgMzEuMjQyMkg0MTAuNjhDNDEyLjM2MyAzMS4yNDIyIDQxMy42ODUgMzEuODQzMiA0MTQuODg3IDMzLjA0NTNMNDIwLjI5NiAzOC4zMzQ0QzQyMS42MTkgMzkuNjU2NyA0MjIuMSA0MC45NzkgNDIyLjEgNDIuNjYxOVY3NS41OTg5QzQyMi4xIDc3LjI4MTggNDIxLjYxOSA3OC42MDQxIDQyMC4yOTYgNzkuOTI2NEw0MTQuODg3IDg1LjIxNTVDNDEzLjY4NSA4Ni40MTc2IDQxMi4zNjMgODcuMDE4NyA0MTAuNjggODcuMDE4N0gzNzUuODE5Wk0zNzUuOTM5IDc2LjgwMUg0MTAuOFY0MS40NTk5SDM3NS45MzlWNzYuODAxWiIgZmlsbD0iIzI4MDBGRiIvPgo8cGF0aCBkPSJNMzQ5LjY0NCAzOC40NTYxQzM1MC44NDYgMzkuNzc4NCAzNTEuNDQ3IDQxLjEwMDcgMzUxLjQ0NyA0Mi43ODM2Vjc1LjYwMDRDMzUxLjQ0NyA3Ny4yODMzIDM1MC44NDYgNzguNjA1NiAzNDkuNjQ0IDc5LjkyNzlMMzQ0LjIzNCA4NS4yMTdDMzQzLjAzMiA4Ni41MzkzIDM0MS40NyA4Ny4wMjAxIDMzOS45MDcgODcuMDIwMUgzMTQuOTAzQzMxMi42MTkgODcuMDIwMSAzMTEuMjk3IDg2LjQxOTEgMzA5LjQ5NCA4NC40OTU4TDMwNi4xMjggODAuODg5NVY4Ny4wMjAxSDI5NC45NDlWNkgzMDYuMTI4VjM3LjM3NDNMMzA5LjQ5NCAzMy44ODgyQzMxMS40MTcgMzEuODQ0NyAzMTIuNjE5IDMxLjM2MzkgMzE0LjkwMyAzMS4zNjM5SDMzOS45MDdDMzQxLjU5IDMxLjM2MzkgMzQzLjAzMiAzMS44NDQ3IDM0NC4yMzQgMzMuMDQ2OEwzNDkuNjQ0IDM4LjQ1NjFaTTM0MC4xNDcgNzYuODAyNVY0MS40NjEzSDMwNi4xMjhWNzYuODAyNUgzNDAuMTQ3WiIgZmlsbD0iIzI4MDBGRiIvPgo8cGF0aCBkPSJNMjc2LjUxMiAzOC40NTYxQzI3Ny43MTQgMzkuNzc4NCAyNzguMzE1IDQxLjEwMDcgMjc4LjMxNSA0Mi43ODM2Vjg3LjAyMDFIMjY3LjAxNlY0MS40NjEzSDIzMi44NzZWODcuMDIwMUgyMjEuNjk3VjZIMjMyLjg3NlYzNy40OTQ1TDIzNi4zNjIgMzMuODg4MkMyMzguNDA2IDMxLjg0NDcgMjM5LjQ4OCAzMS4zNjM5IDI0MS43NzIgMzEuMzYzOUgyNjYuNzc1QzI2OC40NTggMzEuMzYzOSAyNjkuOTAxIDMxLjg0NDcgMjcxLjEwMyAzMy4wNDY4TDI3Ni41MTIgMzguNDU2MVoiIGZpbGw9IiMyODAwRkYiLz4KPHBhdGggZD0iTTE2MC4wNTUgODcuMDE4N0MxNTguODUzIDg3LjAxODcgMTU3LjI5IDg2LjY1OCAxNTUuNzI3IDg1LjA5NTNMMTUwLjQzOCA3OS44MDYyQzE0OS4zNTYgNzguNjA0MSAxNDguODc1IDc3LjA0MTQgMTQ4Ljg3NSA3NS41OTg5VjQyLjY2MTlDMTQ4Ljg3NSA0MC45NzkgMTQ5LjQ3NyAzOS41MzY1IDE1MC40MzggMzguNDU0N0wxNTUuNzI3IDMzLjE2NTVDMTU3LjE3IDMxLjcyMyAxNTguNzMzIDMxLjI0MjIgMTYwLjA1NSAzMS4yNDIySDE5NC45MTZDMTk2LjU5OCAzMS4yNDIyIDE5Ny45MjEgMzEuODQzMiAxOTkuMTIzIDMzLjA0NTNMMjA0LjUzMiAzOC4zMzQ0QzIwNS44NTUgMzkuNjU2NyAyMDYuMzM1IDQwLjk3OSAyMDYuMzM1IDQyLjY2MTlWNzUuNTk4OUMyMDYuMzM1IDc3LjI4MTggMjA1Ljg1NSA3OC42MDQxIDIwNC41MzIgNzkuOTI2NEwxOTkuMTIzIDg1LjIxNTVDMTk3LjkyMSA4Ni40MTc2IDE5Ni41OTggODcuMDE4NyAxOTQuOTE2IDg3LjAxODdIMTYwLjA1NVpNMTYwLjE3NSA3Ni44MDFIMTk1LjAzNlY0MS40NTk5SDE2MC4xNzVWNzYuODAxWiIgZmlsbD0iIzI4MDBGRiIvPgo8cGF0aCBkPSJNODguOTE0OCA4Ny4wMTg3Qzg3LjcxMjcgODcuMDE4NyA4Ni4xNSA4Ni42NTggODQuNTg3MyA4NS4wOTUzTDc5LjI5ODEgNzkuODA2MkM3OC4yMTYyIDc4LjYwNDEgNzcuNzM1NCA3Ny4wNDE0IDc3LjczNTQgNzUuNTk4OVY0Mi42NjE5Qzc3LjczNTQgNDAuOTc5IDc4LjMzNjQgMzkuNTM2NSA3OS4yOTgxIDM4LjQ1NDdMODQuNTg3MyAzMy4xNjU1Qzg2LjAyOTggMzEuNzIzIDg3LjU5MjUgMzEuMjQyMiA4OC45MTQ4IDMxLjI0MjJIMTIzLjc3NUMxMjUuNDU4IDMxLjI0MjIgMTI2Ljc4MSAzMS44NDMyIDEyNy45ODMgMzMuMDQ1M0wxMzMuMzkyIDM4LjMzNDRDMTM0LjcxNCAzOS42NTY3IDEzNS4xOTUgNDAuOTc5IDEzNS4xOTUgNDIuNjYxOVY3NS41OTg5QzEzNS4xOTUgNzcuMjgxOCAxMzQuNzE0IDc4LjYwNDEgMTMzLjM5MiA3OS45MjY0TDEyNy45ODMgODUuMjE1NUMxMjYuNzgxIDg2LjQxNzYgMTI1LjQ1OCA4Ny4wMTg3IDEyMy43NzUgODcuMDE4N0g4OC45MTQ4Wk04OS4wMzUgNzYuODAxSDEyMy44OTZWNDEuNDU5OUg4OS4wMzVWNzYuODAxWiIgZmlsbD0iIzI4MDBGRiIvPgo8cGF0aCBkPSJNNTEuMTk4NiA2SDYyLjM3OFY4Ny4wMjAxSDUxLjE5ODZWODAuODg5NUw0Ny44MzI3IDg0LjQ5NThDNDYuMDI5NiA4Ni40MTkxIDQ0LjcwNzMgODcuMDIwMSA0Mi40MjMzIDg3LjAyMDFIMTcuNDE5OUMxNS44NTcxIDg3LjAyMDEgMTQuMjk0NCA4Ni41MzkzIDEzLjA5MjMgODUuMjE3TDcuODAzMTQgNzkuOTI3OUM2LjQ4MDg0IDc4LjYwNTYgNiA3Ny4yODMzIDYgNzUuNjAwNFY0Mi43ODM2QzYgNDEuMTAwNyA2LjQ4MDg0IDM5Ljc3ODQgNy44MDMxNCAzOC40NTYxTDEzLjA5MjMgMzMuMDQ2OEMxNC4yOTQ0IDMxLjg0NDcgMTUuNzM2OSAzMS4zNjM5IDE3LjQxOTkgMzEuMzYzOUg0Mi40MjMzQzQ0LjcwNzMgMzEuMzYzOSA0NS45MDk0IDMxLjg0NDcgNDcuODMyNyAzMy44ODgyTDUxLjE5ODYgMzcuMzc0M1Y2Wk0xNy4xNzk0IDc2LjgwMjVINTEuMTk4NlY0MS40NjEzSDE3LjE3OTRWNzYuODAyNVoiIGZpbGw9IiMyODAwRkYiLz4KPHBhdGggZD0iTTIxLjgzMyA1OC4xNTYySDI3LjQyMTNWNjMuNzQ0NUgyMS44MzNWNTguMTU2MloiIGZpbGw9IiMyODAwRkYiLz4KPHBhdGggZD0iTTMxLjE0NiA1OC4xNTYySDM2LjczNDNWNjMuNzQ0NUgzMS4xNDZWNTguMTU2MloiIGZpbGw9IiMyODAwRkYiLz4KPHBhdGggZD0iTTQwLjQ1ODUgNTguMTU2Mkg0Ni4wNDY4VjYzLjc0NDVINDAuNDU4NVY1OC4xNTYyWiIgZmlsbD0iIzI4MDBGRiIvPgo8ZWxsaXBzZSBjeD0iMzg3LjA4MiIgY3k9IjU5LjI1NTIiIHJ4PSIzLjg5NDg3IiByeT0iMy44OTQ4NSIgZmlsbD0iIzI4MDBGRiIvPgo8ZWxsaXBzZSBjeD0iNDAwLjcxMyIgY3k9IjU5LjI1NTIiIHJ4PSIzLjg5NDg3IiByeT0iMy44OTQ4NSIgZmlsbD0iIzI4MDBGRiIvPgo8ZWxsaXBzZSBjeD0iMzkzLjE5MiIgY3k9IjkuOTE4MjgiIHJ4PSIzLjcwNTQxIiByeT0iMy43MDUzOSIgZmlsbD0iIzI4MDBGRiIvPgo8cGF0aCBkPSJNMzgwLjIyNCAyOS4zNjkxQzM4MC4yMjQgMjguMTAyNCAzODEuNTUxIDI3LjAzMjQgMzgzLjkxMyAyNi4xMzY2QzM4Ni4yNzUgMjUuMjQwOSAzODkuNDc5IDI0LjczNzcgMzkyLjgxOSAyNC43Mzc3QzM5Ni4xNiAyNC43Mzc3IDM5OS4zNjMgMjUuMjQwOSA0MDEuNzI1IDI2LjEzNjZDNDA0LjA4OCAyNy4wMzI0IDQwNS4yMzQgMjguMTAyNCA0MDUuMjM0IDI5LjM2OTFIMzkyLjcyOUgzODAuMjI0WiIgZmlsbD0iIzI4MDBGRiIvPgo8cmVjdCB4PSIzOTEuMzQiIHk9IjEwLjg0MzgiIHdpZHRoPSIzLjcwNTQxIiBoZWlnaHQ9IjE1Ljc0NzkiIGZpbGw9IiMyODAwRkYiLz4KPC9zdmc+Cg==',
34
- appHeaderLogo:
35
- 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjYzIiBoZWlnaHQ9IjE0OSIgdmlld0JveD0iMCAwIDY2MyAxNDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yMzc0XzE1NDYpIj4KPHBhdGggZD0iTTYgNkgxNDMuMjI3VjE0Mi45NzVINlY2WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzIzNzRfMTU0NikiLz4KPHBhdGggZD0iTTEwNS4zOTggNDMuNzI5NkM4OS40OTU0IDYwLjk5NyA4OS41NjQyIDg3LjU2NyAxMDUuNTU2IDEwNC43NTJMMTA2Ljk0OCAxMDYuMjQ5TDEwNi45MTIgMTA2LjIxNUwxMDYuOTU0IDEwNi4yNThMNjkuNzI2NSAxNDIuOTc1SDMzLjcyNjZIMTUuNzI2Nkg2Vjc4LjU2MjVMNDIuNjQwNSA0Mi4zOTY1TDQyLjc2NTQgNDIuNTIyM0w0Mi42NDI3IDQyLjM5MDhMNDQuMTQ5OCA0My43NzM4QzYxLjQ0NzUgNTkuNjQ4MyA4OC4wNjY3IDU5LjU3ODMgMTA1LjI4MyA0My42MTYyTDEwNi43ODQgNDIuMjI1M0wxMDUuMzk4IDQzLjcyOTZaIiBmaWxsPSIjRUVFRUVFIi8+CjxwYXRoIGQ9Ik03LjAwNzAxIDE0Mi45NzVMNDQuNzY3NyAxMDUuODkyQzYyLjA0MTIgODguODUyNyA4OS44ODMyIDg5LjAxNTkgMTA2Ljk1NCAxMDYuMjU4TDY5LjcyNjUgMTQyLjk3NUg3LjAwNzAxWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzIzNzRfMTU0NikiLz4KPHBhdGggZD0iTTYgNzguNTYyNUw0Mi42NDA1IDQyLjM5NjVDNjAuMTQ0NCA2MC4wNzU3IDU5Ljk3NTUgODguNTcxMSA0Mi4yNjM4IDEwNi4wNDNMNiAxNDJWNzguNTYyNVoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl8yMzc0XzE1NDYpIi8+CjwvZz4KPHBhdGggZD0iTTYzMi40MzggNTguMDA3OEg2NDkuODY3VjY3LjYyNEg2MzIuNDM4VjEwMy40NDZINjUwLjIyOVYxMTMuNzg0SDYzMy4xNThDNjMxLjQ3NiAxMTMuNzg0IDYzMC41MTQgMTEzLjE4MiA2MjkuMzEyIDExMS45OEw2MjIuOTQgMTA2LjU3MUM2MjEuNzM5IDEwNS4zNjkgNjIxLjEzOCAxMDQuMDQ3IDYyMS4xMzggMTAyLjI0NFY2Ny42MjRINjEyLjg0NFY1OS4yMDlMNjI4LjM1MSA0MS43NzkzSDYzMi40MzhWNTguMDA3OFpNMjQxLjYwNCAxMTMuNzc4SDIzMC40MjVWMTA3LjY0N0wyMjcuMDYgMTExLjI1NEMyMjUuMjU2IDExMy4xNzcgMjIzLjkzMyAxMTMuNzc4IDIyMS42NDkgMTEzLjc3OEgxOTYuNjQ2QzE5NS4wODQgMTEzLjc3OCAxOTMuNTIxIDExMy4yOTcgMTkyLjMxOSAxMTEuOTc1TDE4Ny4wMjkgMTA2LjY4NkMxODUuNzA3IDEwNS4zNjMgMTg1LjIyNyAxMDQuMDQxIDE4NS4yMjcgMTAyLjM1OFY2OS41NDFDMTg1LjIyNyA2Ny44NTg0IDE4NS43MDcgNjYuNTM2IDE4Ny4wMjkgNjUuMjEzOUwxOTIuMzE5IDU5LjgwNDdDMTkzLjUyMSA1OC42MDI3IDE5NC45NjQgNTguMTIyMSAxOTYuNjQ2IDU4LjEyMjFIMjIxLjY0OUMyMjMuOTMzIDU4LjEyMjEgMjI1LjEzNiA1OC42MDMgMjI3LjA2IDYwLjY0NjVMMjMwLjQyNSA2NC4xMzE4VjMyLjc1NzhIMjQxLjYwNFYxMTMuNzc4Wk00MTIuMTAzIDY0LjI1Mkw0MTUuNTg5IDYwLjY0NjVDNDE3LjYzMiA1OC42MDMgNDE4LjcxNCA1OC4xMjIxIDQyMC45OTggNTguMTIyMUg0NDYuMDAyQzQ0Ny42ODUgNTguMTIyMSA0NDkuMTI3IDU4LjYwMjcgNDUwLjMyOSA1OS44MDQ3TDQ1NS43MzggNjUuMjEzOUM0NTYuOTQgNjYuNTM2IDQ1Ny41NDIgNjcuODU4MyA0NTcuNTQyIDY5LjU0MVYxMTMuNzc4SDQ0Ni4yNDJWNjguMjE4OEg0MTIuMTAzVjExMy43NzhINDAwLjkyNFYzMi43NTc4SDQxMi4xMDNWNjQuMjUyWk00ODUuMzU0IDY0LjEzMThMNDg4LjcyMSA2MC42NDY1QzQ5MC42NDQgNTguNjAzIDQ5MS44NDYgNTguMTIyMSA0OTQuMTMgNTguMTIyMUg1MTkuMTM0QzUyMC44MTcgNTguMTIyMSA1MjIuMjU5IDU4LjYwMjcgNTIzLjQ2MSA1OS44MDQ3TDUyOC44NyA2NS4yMTM5QzUzMC4wNzIgNjYuNTM2IDUzMC42NzQgNjcuODU4MyA1MzAuNjc0IDY5LjU0MVYxMDIuMzU4QzUzMC42NzQgMTA0LjA0MSA1MzAuMDcyIDEwNS4zNjMgNTI4Ljg3IDEwNi42ODZMNTIzLjQ2MSAxMTEuOTc1QzUyMi4yNTkgMTEzLjI5NyA1MjAuNjk2IDExMy43NzggNTE5LjEzNCAxMTMuNzc4SDQ5NC4xM0M0OTEuODQ2IDExMy43NzggNDkwLjUyNCAxMTMuMTc3IDQ4OC43MjEgMTExLjI1NEw0ODUuMzU0IDEwNy42NDdWMTEzLjc3OEg0NzQuMTc2VjMyLjc1NzhINDg1LjM1NFY2NC4xMzE4Wk0zMDMuMDAyIDU4QzMwNC42ODUgNTggMzA2LjAwNyA1OC42MDA5IDMwNy4yMDkgNTkuODAyN0wzMTIuNjE5IDY1LjA5MThDMzEzLjk0MSA2Ni40MTQxIDMxNC40MjIgNjcuNzM3IDMxNC40MjIgNjkuNDE5OVYxMDIuMzU2QzMxNC40MjIgMTA0LjAzOSAzMTMuOTQxIDEwNS4zNjIgMzEyLjYxOSAxMDYuNjg1TDMwNy4yMDkgMTExLjk3NEMzMDYuMDA3IDExMy4xNzYgMzA0LjY4NSAxMTMuNzc2IDMwMy4wMDIgMTEzLjc3NkgyNjguMTQyQzI2Ni45NCAxMTMuNzc2IDI2NS4zNzYgMTEzLjQxNiAyNjMuODEzIDExMS44NTRMMjU4LjUyNCAxMDYuNTY0QzI1Ny40NDMgMTA1LjM2MiAyNTYuOTYyIDEwMy43OTkgMjU2Ljk2MiAxMDIuMzU2VjY5LjQxOTlDMjU2Ljk2MiA2Ny43MzcyIDI1Ny41NjMgNjYuMjk0NyAyNTguNTI0IDY1LjIxMjlMMjYzLjgxMyA1OS45MjI5QzI2NS4yNTYgNTguNDgwNCAyNjYuODE5IDU4IDI2OC4xNDIgNThIMzAzLjAwMlpNMzc0LjE0MyA1OEMzNzUuODI1IDU4LjAwMDEgMzc3LjE0OCA1OC42MDA4IDM3OC4zNSA1OS44MDI3TDM4My43NTkgNjUuMDkxOEMzODUuMDgxIDY2LjQxNDEgMzg1LjU2MiA2Ny43MzcgMzg1LjU2MiA2OS40MTk5VjEwMi4zNTZDMzg1LjU2MiAxMDQuMDM5IDM4NS4wODEgMTA1LjM2MiAzODMuNzU5IDEwNi42ODVMMzc4LjM1IDExMS45NzRDMzc3LjE0OCAxMTMuMTc2IDM3NS44MjUgMTEzLjc3NiAzNzQuMTQzIDExMy43NzZIMzM5LjI4MUMzMzguMDc5IDExMy43NzYgMzM2LjUxNyAxMTMuNDE2IDMzNC45NTQgMTExLjg1NEwzMjkuNjY1IDEwNi41NjRDMzI4LjU4MyAxMDUuMzYyIDMyOC4xMDMgMTAzLjc5OSAzMjguMTAzIDEwMi4zNTZWNjkuNDE5OUMzMjguMTAzIDY3LjczNzEgMzI4LjcwMyA2Ni4yOTQ4IDMyOS42NjUgNjUuMjEyOUwzMzQuOTU0IDU5LjkyMjlDMzM2LjM5NiA1OC40ODA3IDMzNy45NTkgNTguMDAwMSAzMzkuMjgxIDU4SDM3NC4xNDNaTTU4OS45MDYgNThDNTkxLjU4OSA1OCA1OTIuOTExIDU4LjYwMDkgNTk0LjExMyA1OS44MDI3TDU5OS41MjMgNjUuMDkxOEM2MDAuODQ2IDY2LjQxNDEgNjAxLjMyNiA2Ny43MzcgNjAxLjMyNiA2OS40MTk5VjEwMi4zNTZDNjAxLjMyNiAxMDQuMDM5IDYwMC44NDYgMTA1LjM2MiA1OTkuNTIzIDEwNi42ODVMNTk0LjExMyAxMTEuOTc0QzU5Mi45MTEgMTEzLjE3NiA1OTEuNTg5IDExMy43NzYgNTg5LjkwNiAxMTMuNzc2SDU1NS4wNDZDNTUzLjg0NCAxMTMuNzc2IDU1Mi4yOCAxMTMuNDE2IDU1MC43MTggMTExLjg1NEw1NDUuNDI5IDEwNi41NjRDNTQ0LjM0NyAxMDUuMzYyIDU0My44NjYgMTAzLjc5OSA1NDMuODY2IDEwMi4zNTZWNjkuNDE5OUM1NDMuODY2IDY3LjczNzIgNTQ0LjQ2NyA2Ni4yOTQ3IDU0NS40MjkgNjUuMjEyOUw1NTAuNzE4IDU5LjkyMjlDNTUyLjE2IDU4LjQ4MDQgNTUzLjcyNCA1OCA1NTUuMDQ2IDU4SDU4OS45MDZaTTE5Ni40MDYgMTAzLjU2MUgyMzAuNDI1VjY4LjIxODhIMTk2LjQwNlYxMDMuNTYxWk00ODUuMzU0IDEwMy41NjFINTE5LjM3NFY2OC4yMTg4SDQ4NS4zNTRWMTAzLjU2MVpNMjY4LjI2MiAxMDMuNTU5SDMwMy4xMjJWNjguMjE3OEgyNjguMjYyVjEwMy41NTlaTTMzOS40MDEgMTAzLjU1OUgzNzQuMjYzVjY4LjIxNzhIMzM5LjQwMVYxMDMuNTU5Wk01NTUuMTY2IDEwMy41NTlINTkwLjAyNlY2OC4yMTc4SDU1NS4xNjZWMTAzLjU1OVpNMjA2LjY0NyA5MC41MDJIMjAxLjA2Vjg0LjkxNDFIMjA2LjY0N1Y5MC41MDJaTTIxNS45NjEgOTAuNTAySDIxMC4zNzNWODQuOTE0MUgyMTUuOTYxVjkwLjUwMlpNMjI1LjI3MyA5MC41MDJIMjE5LjY4NlY4NC45MTQxSDIyNS4yNzNWOTAuNTAyWk01NjYuMzA5IDgyLjExODJDNTY4LjQ2IDgyLjExODIgNTcwLjIwNCA4My44NjI2IDU3MC4yMDQgODYuMDEzN0M1NzAuMjA0IDg4LjE2NDYgNTY4LjQ2IDg5LjkwODIgNTY2LjMwOSA4OS45MDgyQzU2NC4xNTggODkuOTA4MSA1NjIuNDE0IDg4LjE2NDUgNTYyLjQxNCA4Ni4wMTM3QzU2Mi40MTQgODMuODYyNyA1NjQuMTU4IDgyLjExODMgNTY2LjMwOSA4Mi4xMTgyWk01NzkuOTM5IDgyLjExODJDNTgyLjA5MSA4Mi4xMTgyIDU4My44MzQgODMuODYyNiA1ODMuODM0IDg2LjAxMzdDNTgzLjgzNCA4OC4xNjQ2IDU4Mi4wOSA4OS45MDgyIDU3OS45MzkgODkuOTA4MkM1NzcuNzg4IDg5LjkwODIgNTc2LjA0NSA4OC4xNjQ2IDU3Ni4wNDUgODYuMDEzN0M1NzYuMDQ1IDgzLjg2MjYgNTc3Ljc4OCA4Mi4xMTgyIDU3OS45MzkgODIuMTE4MlpNNTcyLjQxOSAzMi45NzA3QzU3NC40NjUgMzIuOTcwNyA1NzYuMTI0IDM0LjYyOTUgNTc2LjEyNCAzNi42NzU4QzU3Ni4xMjQgMzguMDQ3IDU3NS4zNzkgMzkuMjQzIDU3NC4yNzEgMzkuODgzOFY1MS41NzIzQzU3Ni43ODUgNTEuNzQzNCA1NzkuMTIxIDUyLjIwMDMgNTgwLjk1MiA1Mi44OTQ1QzU4My4zMTQgNTMuNzkwMiA1ODQuNDYxIDU0Ljg2MDQgNTg0LjQ2MSA1Ni4xMjdINTU5LjQ1QzU1OS40NTEgNTQuODYwNCA1NjAuNzc4IDUzLjc5MDIgNTYzLjE0IDUyLjg5NDVDNTY1LjE1IDUyLjEzMjEgNTY3Ljc3MSA1MS42NTU2IDU3MC41NjYgNTEuNTMwM1YzOS44ODQ4QzU2OS40NTkgMzkuMjQ0IDU2OC43MTQgMzguMDQ3MiA1NjguNzE0IDM2LjY3NThDNTY4LjcxNCAzNC42Mjk1IDU3MC4zNzMgMzIuOTcwNyA1NzIuNDE5IDMyLjk3MDdaIiBmaWxsPSIjMjgwMEZGIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjM3NF8xNTQ2IiB4MT0iNi4wMDMwNiIgeTE9IjYiIHgyPSIxNDIuOTcyIiB5Mj0iMTQzLjIyNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjgwMEZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzA4REFDRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfMjM3NF8xNTQ2IiB4MT0iMTQzLjIyNyIgeTE9Ijc2LjgwNDYiIHgyPSIyNi4wMDEiIHkyPSIxMjIuOTY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMyODAwRkYiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDhEQUNGIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl8yMzc0XzE1NDYiIHgxPSI1OC4yNTQxIiB5MT0iNTguMTY3IiB4Mj0iNTMuOTExNyIgeTI9IjEzMi45NTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzI4MDBGRiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwOERBQ0YiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMzc0XzE1NDYiPgo8cGF0aCBkPSJNNiA2SDExMy4yMjdDMTI5Ljc5NSA2IDE0My4yMjcgMTkuNDMxNSAxNDMuMjI3IDM2VjExMi45NzVDMTQzLjIyNyAxMjkuNTQ0IDEyOS43OTUgMTQyLjk3NSAxMTMuMjI3IDE0Mi45NzVINlY2WiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K',
36
- userAvatar:
37
- 'data:image/png;base64,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',
38
- botAvatar:
39
- 'data:image/png;base64,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',
40
- };
@@ -1,8 +0,0 @@
1
- export const AppEntity = {
2
- amp: '&amp;',
3
- lt: '&lt;',
4
- gt: '&gt;',
5
- quot: '&quot;',
6
- apos: '&apos;',
7
- at: '&#64;',
8
- };
@@ -1,9 +0,0 @@
1
- export const AppEmoji = {
2
- waveHand: '\u{1F44B}',
3
- robotFace: '\u{1F916}',
4
- partyPopper: '\u{1F389}',
5
- thinkingFace: '\u{1F914}',
6
- thumbsUp: '\u{1F44D}',
7
- thumbsDown: '\u{1F44E}',
8
- redHeart: '\u{2764}\u{FE0F}',
9
- };
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { environment } from './environments/environment';
3
- import { environment as environmentprod } from './environments/environment';
4
- import { ReplaySubject } from 'rxjs';
5
- import logger from './utils/logger.service';
6
-
7
- @Injectable({
8
- providedIn: 'root',
9
- })
10
- export class AppConst {
11
- static appBaseUrl = environment.apiBaseUrl;
12
- static data: any;
13
- public config$ = new ReplaySubject<any>(1);
14
-
15
- constructor() {}
16
-
17
- async load(): Promise<any> {
18
- const filePath = `./assets/${environment.production ? environmentprod.config : environment.config}?t=${new Date().getTime()}`;
19
- const response = await fetch(filePath);
20
-
21
- if (!response.ok) {
22
- logger.error('============================ ERROR ============================');
23
- logger.error(`Could not find file ${filePath}`);
24
- logger.error('============================ ERROR ============================');
25
- }
26
-
27
- logger.error('============================ AppConst ============================', filePath);
28
- if (response.ok) {
29
- try {
30
- AppConst.data = await response.json();
31
- this.config$.next(AppConst.data);
32
- logger.error(
33
- '============================ AppConst ============================',
34
- AppConst.data,
35
- );
36
- // Override apiBaseUrl if present in environment
37
- // if (environment.apiBaseUrl) {
38
- // AppConst.data.apiBaseUrl = environment.apiBaseUrl;
39
- // }
40
- // // Override loginEndpoint if present in environment
41
- // if (environment.loginEndpoint) {
42
- // AppConst.data.loginEndpoint = environment.loginEndpoint;
43
- // }
44
- } catch (error: any) {
45
- logger.error('============================ ERROR ============================');
46
- logger.error(`Could not find file ${filePath}.\nMESSAGE: ${error.message}`);
47
- logger.error('============================ ERROR ============================');
48
- }
49
-
50
- if (AppConst.data && !Object.keys(AppConst.data).length) {
51
- logger.error('============================ ERROR ============================');
52
- logger.error(`No data found in file ${filePath}`);
53
- logger.error('============================ ERROR ============================');
54
- }
55
- } else {
56
- logger.error('============================ ERROR ============================');
57
- logger.error(
58
- `Failed to load file ${filePath}.\nMESSAGE: Request failed with ${response.status} / ${response.statusText}`,
59
- );
60
- logger.error('============================ ERROR ============================');
61
- }
62
- }
63
- }
@@ -1,53 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { HttpService } from '../http/http.service';
4
- import { AuthResult } from './models/auth-result.model';
5
- import { ApiResponse } from '../models/api-response.model';
6
- import { LoginRequest } from './models/login-request.model';
7
- import { FederatedLoginRequest } from './models/federated-login-request.model';
8
- import { HttpHeaders } from '@angular/common/http';
9
- import { StorageService } from './storage.service';
10
-
11
- @Injectable({
12
- providedIn: 'root',
13
- })
14
- export class AccountService {
15
- constructor(
16
- private http: HttpService,
17
- private tokenStorage: StorageService,
18
- // private httpStream: HttpStreamService,
19
- ) {}
20
-
21
- login(param?: LoginRequest, showLoader = false): Observable<ApiResponse<AuthResult>> {
22
- return this.http.post('auth/login', param, showLoader, this.buildLicenceHeader());
23
- }
24
-
25
- federateLogin(
26
- param?: FederatedLoginRequest,
27
- showLoader = false,
28
- ): Observable<ApiResponse<AuthResult>> {
29
- return this.http.post('auth/federated/login', param, showLoader, this.buildLicenceHeader());
30
- }
31
-
32
- private buildLicenceHeader(): HttpHeaders {
33
- let headers = new HttpHeaders();
34
- const licenseKey = this.tokenStorage.get('license_key') || '';
35
- if (licenseKey) {
36
- headers = headers.set('x-license-key', licenseKey);
37
- }
38
- return headers;
39
- }
40
-
41
- refreshLogin(param?: object, showLoader = false): Observable<ApiResponse<AuthResult>> {
42
- return this.http.post('auth/refresh', param, showLoader, this.buildLicenceHeader());
43
- }
44
-
45
- logout(refreshToken: string, showLoader = false): Observable<ApiResponse<void>> {
46
- return this.http.post(
47
- 'auth/logout',
48
- { refresh_token: refreshToken },
49
- showLoader,
50
- this.buildLicenceHeader(),
51
- );
52
- }
53
- }