spiderly 0.0.2

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 (302) hide show
  1. package/README.md +3 -0
  2. package/esm2022/lib/components/auth/auth.module.mjs +65 -0
  3. package/esm2022/lib/components/auth/login/login.component.mjs +60 -0
  4. package/esm2022/lib/components/auth/partials/auth.component.mjs +53 -0
  5. package/esm2022/lib/components/auth/partials/login-verification.component.mjs +39 -0
  6. package/esm2022/lib/components/auth/partials/registration-verification.component.mjs +37 -0
  7. package/esm2022/lib/components/auth/partials/verification-wrapper.component.mjs +74 -0
  8. package/esm2022/lib/components/auth/registration/registration.component.mjs +59 -0
  9. package/esm2022/lib/components/base-details/role-base-details.component.mjs +171 -0
  10. package/esm2022/lib/components/base-form/base-form copy.mjs +247 -0
  11. package/esm2022/lib/components/card-skeleton/card-skeleton.component.mjs +25 -0
  12. package/esm2022/lib/components/footer/footer.component.mjs +16 -0
  13. package/esm2022/lib/components/index-card/index-card.component.mjs +57 -0
  14. package/esm2022/lib/components/info-card/info-card.component.mjs +29 -0
  15. package/esm2022/lib/components/layout/layout-base.component.mjs +120 -0
  16. package/esm2022/lib/components/layout/sidebar/menuitem.component.mjs +161 -0
  17. package/esm2022/lib/components/layout/sidebar/sidebar-menu.component.mjs +34 -0
  18. package/esm2022/lib/components/layout/sidebar/sidebar-menu.service.mjs +26 -0
  19. package/esm2022/lib/components/layout/sidebar/sidebar.component.mjs +21 -0
  20. package/esm2022/lib/components/layout/topbar/topbar.component.mjs +115 -0
  21. package/esm2022/lib/components/not-found/not-found.component.mjs +20 -0
  22. package/esm2022/lib/components/required/required.component.mjs +12 -0
  23. package/esm2022/lib/components/spiderly-buttons/google-button/google-button.component.mjs +43 -0
  24. package/esm2022/lib/components/spiderly-buttons/return-button/return-button.component.mjs +37 -0
  25. package/esm2022/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.mjs +20 -0
  26. package/esm2022/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.mjs +68 -0
  27. package/esm2022/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.mjs +22 -0
  28. package/esm2022/lib/components/spiderly-data-table/spiderly-data-table.component.mjs +502 -0
  29. package/esm2022/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.mjs +42 -0
  30. package/esm2022/lib/components/spiderly-form-control/spiderly-form-control.mjs +36 -0
  31. package/esm2022/lib/components/spiderly-panels/panel-body/panel-body.component.mjs +19 -0
  32. package/esm2022/lib/components/spiderly-panels/panel-footer/panel-footer.component.mjs +14 -0
  33. package/esm2022/lib/components/spiderly-panels/panel-header/panel-header.component.mjs +49 -0
  34. package/esm2022/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.mjs +20 -0
  35. package/esm2022/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.mjs +63 -0
  36. package/esm2022/lib/components/spiderly-panels/spiderly-panels.module.mjs +49 -0
  37. package/esm2022/lib/controls/base-autocomplete-control.mjs +18 -0
  38. package/esm2022/lib/controls/base-control.mjs +62 -0
  39. package/esm2022/lib/controls/base-dropdown-control.mjs +37 -0
  40. package/esm2022/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.mjs +60 -0
  41. package/esm2022/lib/controls/spiderly-calendar/spiderly-calendar.component.mjs +39 -0
  42. package/esm2022/lib/controls/spiderly-checkbox/spiderly-checkbox.component.mjs +45 -0
  43. package/esm2022/lib/controls/spiderly-colorpick/spiderly-colorpick.component.mjs +40 -0
  44. package/esm2022/lib/controls/spiderly-controls.module.mjs +112 -0
  45. package/esm2022/lib/controls/spiderly-dropdown/spiderly-dropdown.component.mjs +40 -0
  46. package/esm2022/lib/controls/spiderly-editor/spiderly-editor.component.mjs +59 -0
  47. package/esm2022/lib/controls/spiderly-file/spiderly-file.component.mjs +106 -0
  48. package/esm2022/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.mjs +38 -0
  49. package/esm2022/lib/controls/spiderly-multiselect/spiderly-multiselect.component.mjs +34 -0
  50. package/esm2022/lib/controls/spiderly-number/spiderly-number.component.mjs +44 -0
  51. package/esm2022/lib/controls/spiderly-password/spiderly-password.component.mjs +37 -0
  52. package/esm2022/lib/controls/spiderly-textarea/spiderly-textarea.component.mjs +34 -0
  53. package/esm2022/lib/controls/spiderly-textbox/spiderly-textbox.component.mjs +45 -0
  54. package/esm2022/lib/entities/base-entity.mjs +18 -0
  55. package/esm2022/lib/entities/codebook.mjs +10 -0
  56. package/esm2022/lib/entities/init-company-auth-dialog-details.mjs +9 -0
  57. package/esm2022/lib/entities/init-top-bar-data.mjs +12 -0
  58. package/esm2022/lib/entities/is-authorized-for-save-event.mjs +9 -0
  59. package/esm2022/lib/entities/last-menu-icon-index-clicked.mjs +8 -0
  60. package/esm2022/lib/entities/lazy-load-selected-ids-result.mjs +11 -0
  61. package/esm2022/lib/entities/menuchangeevent.mjs +3 -0
  62. package/esm2022/lib/entities/mime-type.mjs +15 -0
  63. package/esm2022/lib/entities/namebook.mjs +9 -0
  64. package/esm2022/lib/entities/primeng-option.mjs +9 -0
  65. package/esm2022/lib/entities/security-entities.mjs +169 -0
  66. package/esm2022/lib/entities/simple-save-result.mjs +9 -0
  67. package/esm2022/lib/entities/spiderly-button.mjs +11 -0
  68. package/esm2022/lib/entities/table-filter-context.mjs +3 -0
  69. package/esm2022/lib/entities/table-filter-sort-meta.mjs +3 -0
  70. package/esm2022/lib/entities/table-filter.mjs +15 -0
  71. package/esm2022/lib/entities/table-response.mjs +3 -0
  72. package/esm2022/lib/enums/security-enums.mjs +26 -0
  73. package/esm2022/lib/enums/verification-type-codes.mjs +6 -0
  74. package/esm2022/lib/guards/auth.guard.mjs +40 -0
  75. package/esm2022/lib/guards/not-auth.guard.mjs +32 -0
  76. package/esm2022/lib/handlers/spiderly-error-handler.mjs +30 -0
  77. package/esm2022/lib/handlers/spiderly-transloco-fallback-strategy.mjs +24 -0
  78. package/esm2022/lib/interceptors/http-loading.interceptor.mjs +27 -0
  79. package/esm2022/lib/interceptors/json-parser.interceptor.mjs +47 -0
  80. package/esm2022/lib/interceptors/jwt.interceptor.mjs +27 -0
  81. package/esm2022/lib/interceptors/unauthorized.interceptor.mjs +64 -0
  82. package/esm2022/lib/modules/core.module.mjs +140 -0
  83. package/esm2022/lib/modules/primeng.module.mjs +278 -0
  84. package/esm2022/lib/modules/spiderly-transloco.module.mjs +44 -0
  85. package/esm2022/lib/services/api.service.security.mjs +86 -0
  86. package/esm2022/lib/services/app-initializer.mjs +6 -0
  87. package/esm2022/lib/services/app-layout-base.service.mjs +132 -0
  88. package/esm2022/lib/services/auth-base.service.mjs +220 -0
  89. package/esm2022/lib/services/base-form.service.mjs +124 -0
  90. package/esm2022/lib/services/config-base.service.mjs +33 -0
  91. package/esm2022/lib/services/helper-functions.mjs +229 -0
  92. package/esm2022/lib/services/spiderly-message.service.mjs +64 -0
  93. package/esm2022/lib/services/spiderly-transloco-loader.mjs +20 -0
  94. package/esm2022/lib/services/translate-labels-abstract.service.mjs +15 -0
  95. package/esm2022/lib/services/validator-abstract.service.mjs +51 -0
  96. package/esm2022/public-api.mjs +94 -0
  97. package/esm2022/spiderly.mjs +5 -0
  98. package/fesm2022/spiderly.mjs +4807 -0
  99. package/fesm2022/spiderly.mjs.map +1 -0
  100. package/index.d.ts +5 -0
  101. package/lib/components/auth/auth.module.d.ts +17 -0
  102. package/lib/components/auth/login/login.component.d.ts +35 -0
  103. package/lib/components/auth/partials/auth.component.d.ts +21 -0
  104. package/lib/components/auth/partials/login-verification.component.d.ts +18 -0
  105. package/lib/components/auth/partials/registration-verification.component.d.ts +17 -0
  106. package/lib/components/auth/partials/verification-wrapper.component.d.ts +31 -0
  107. package/lib/components/auth/registration/registration.component.d.ts +34 -0
  108. package/lib/components/base-details/role-base-details.component.d.ts +50 -0
  109. package/lib/components/base-form/base-form copy.d.ts +54 -0
  110. package/lib/components/card-skeleton/card-skeleton.component.d.ts +12 -0
  111. package/lib/components/footer/footer.component.d.ts +9 -0
  112. package/lib/components/index-card/index-card.component.d.ts +22 -0
  113. package/lib/components/info-card/info-card.component.d.ts +11 -0
  114. package/lib/components/layout/layout-base.component.d.ts +37 -0
  115. package/lib/components/layout/sidebar/menuitem.component.d.ts +43 -0
  116. package/lib/components/layout/sidebar/sidebar-menu.component.d.ts +23 -0
  117. package/lib/components/layout/sidebar/sidebar-menu.service.d.ts +12 -0
  118. package/lib/components/layout/sidebar/sidebar.component.d.ts +11 -0
  119. package/lib/components/layout/topbar/topbar.component.d.ts +45 -0
  120. package/lib/components/not-found/not-found.component.d.ts +9 -0
  121. package/lib/components/required/required.component.d.ts +6 -0
  122. package/lib/components/spiderly-buttons/google-button/google-button.component.d.ts +17 -0
  123. package/lib/components/spiderly-buttons/return-button/return-button.component.d.ts +10 -0
  124. package/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.d.ts +6 -0
  125. package/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.d.ts +27 -0
  126. package/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.d.ts +8 -0
  127. package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +157 -0
  128. package/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.d.ts +11 -0
  129. package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +37 -0
  130. package/lib/components/spiderly-panels/panel-body/panel-body.component.d.ts +9 -0
  131. package/lib/components/spiderly-panels/panel-footer/panel-footer.component.d.ts +8 -0
  132. package/lib/components/spiderly-panels/panel-header/panel-header.component.d.ts +29 -0
  133. package/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.d.ts +10 -0
  134. package/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.d.ts +25 -0
  135. package/lib/components/spiderly-panels/spiderly-panels.module.d.ts +13 -0
  136. package/lib/controls/base-autocomplete-control.d.ts +9 -0
  137. package/lib/controls/base-control.d.ts +23 -0
  138. package/lib/controls/base-dropdown-control.d.ts +18 -0
  139. package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +18 -0
  140. package/lib/controls/spiderly-calendar/spiderly-calendar.component.d.ts +13 -0
  141. package/lib/controls/spiderly-checkbox/spiderly-checkbox.component.d.ts +14 -0
  142. package/lib/controls/spiderly-colorpick/spiderly-colorpick.component.d.ts +11 -0
  143. package/lib/controls/spiderly-controls.module.d.ts +22 -0
  144. package/lib/controls/spiderly-dropdown/spiderly-dropdown.component.d.ts +14 -0
  145. package/lib/controls/spiderly-editor/spiderly-editor.component.d.ts +16 -0
  146. package/lib/controls/spiderly-file/spiderly-file.component.d.ts +36 -0
  147. package/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.d.ts +13 -0
  148. package/lib/controls/spiderly-multiselect/spiderly-multiselect.component.d.ts +11 -0
  149. package/lib/controls/spiderly-number/spiderly-number.component.d.ts +15 -0
  150. package/lib/controls/spiderly-password/spiderly-password.component.d.ts +12 -0
  151. package/lib/controls/spiderly-textarea/spiderly-textarea.component.d.ts +11 -0
  152. package/lib/controls/spiderly-textbox/spiderly-textbox.component.d.ts +15 -0
  153. package/lib/entities/base-entity.d.ts +14 -0
  154. package/lib/entities/codebook.d.ts +9 -0
  155. package/lib/entities/init-company-auth-dialog-details.d.ts +9 -0
  156. package/lib/entities/init-top-bar-data.d.ts +16 -0
  157. package/lib/entities/is-authorized-for-save-event.d.ts +9 -0
  158. package/lib/entities/last-menu-icon-index-clicked.d.ts +7 -0
  159. package/lib/entities/lazy-load-selected-ids-result.d.ts +9 -0
  160. package/lib/entities/menuchangeevent.d.ts +4 -0
  161. package/lib/entities/mime-type.d.ts +11 -0
  162. package/lib/entities/namebook.d.ts +9 -0
  163. package/lib/entities/primeng-option.d.ts +9 -0
  164. package/lib/entities/security-entities.d.ts +211 -0
  165. package/lib/entities/simple-save-result.d.ts +7 -0
  166. package/lib/entities/spiderly-button.d.ts +13 -0
  167. package/lib/entities/table-filter-context.d.ts +5 -0
  168. package/lib/entities/table-filter-sort-meta.d.ts +4 -0
  169. package/lib/entities/table-filter.d.ts +23 -0
  170. package/lib/entities/table-response.d.ts +4 -0
  171. package/lib/enums/security-enums.d.ts +22 -0
  172. package/lib/enums/verification-type-codes.d.ts +4 -0
  173. package/lib/guards/auth.guard.d.ts +15 -0
  174. package/lib/guards/not-auth.guard.d.ts +12 -0
  175. package/lib/handlers/spiderly-error-handler.d.ts +14 -0
  176. package/lib/handlers/spiderly-transloco-fallback-strategy.d.ts +13 -0
  177. package/lib/interceptors/http-loading.interceptor.d.ts +11 -0
  178. package/lib/interceptors/json-parser.interceptor.d.ts +11 -0
  179. package/lib/interceptors/jwt.interceptor.d.ts +11 -0
  180. package/lib/interceptors/unauthorized.interceptor.d.ts +16 -0
  181. package/lib/modules/core.module.d.ts +13 -0
  182. package/lib/modules/primeng.module.d.ts +42 -0
  183. package/lib/modules/spiderly-transloco.module.d.ts +9 -0
  184. package/lib/services/api.service.security.d.ts +35 -0
  185. package/lib/services/app-initializer.d.ts +4 -0
  186. package/lib/services/app-layout-base.service.d.ts +60 -0
  187. package/lib/services/auth-base.service.d.ts +55 -0
  188. package/lib/services/base-form.service.d.ts +27 -0
  189. package/lib/services/config-base.service.d.ts +24 -0
  190. package/lib/services/helper-functions.d.ts +37 -0
  191. package/lib/services/spiderly-message.service.d.ts +17 -0
  192. package/lib/services/spiderly-transloco-loader.d.ts +10 -0
  193. package/lib/services/translate-labels-abstract.service.d.ts +7 -0
  194. package/lib/services/validator-abstract.service.d.ts +13 -0
  195. package/package.json +60 -0
  196. package/public-api.d.ts +90 -0
  197. package/styles/components/spiderly-data-table/spiderly-data-table.component.scss +34 -0
  198. package/styles/components/spiderly-panels/panel-footer/panel-footer.component.scss +10 -0
  199. package/styles/styles/layout/_config.scss +42 -0
  200. package/styles/styles/layout/_content.scss +12 -0
  201. package/styles/styles/layout/_footer.scss +9 -0
  202. package/styles/styles/layout/_main.scss +28 -0
  203. package/styles/styles/layout/_menu.scss +135 -0
  204. package/styles/styles/layout/_mixins.scss +13 -0
  205. package/styles/styles/layout/_preloading.scss +47 -0
  206. package/styles/styles/layout/_responsive.scss +100 -0
  207. package/styles/styles/layout/_spiderly-controls.scss +12 -0
  208. package/styles/styles/layout/_topbar.scss +231 -0
  209. package/styles/styles/layout/_typography.scss +63 -0
  210. package/styles/styles/layout/_utils.scss +20 -0
  211. package/styles/styles/layout/_variables.scss +903 -0
  212. package/styles/styles/layout/layout.scss +13 -0
  213. package/styles/styles/shared.scss +519 -0
  214. package/styles/styles/styles.scss +6 -0
  215. package/styles/styles/theme/base/_colors.scss +18 -0
  216. package/styles/styles/theme/base/_common.scss +75 -0
  217. package/styles/styles/theme/base/_components.scss +106 -0
  218. package/styles/styles/theme/base/_mixins.scss +343 -0
  219. package/styles/styles/theme/base/components/button/_button.scss +564 -0
  220. package/styles/styles/theme/base/components/button/_speeddial.scss +96 -0
  221. package/styles/styles/theme/base/components/button/_splitbutton.scss +381 -0
  222. package/styles/styles/theme/base/components/data/_carousel.scss +37 -0
  223. package/styles/styles/theme/base/components/data/_datatable.scss +338 -0
  224. package/styles/styles/theme/base/components/data/_dataview.scss +55 -0
  225. package/styles/styles/theme/base/components/data/_filter.scss +138 -0
  226. package/styles/styles/theme/base/components/data/_orderlist.scss +103 -0
  227. package/styles/styles/theme/base/components/data/_organizationchart.scss +50 -0
  228. package/styles/styles/theme/base/components/data/_paginator.scss +92 -0
  229. package/styles/styles/theme/base/components/data/_picklist.scss +103 -0
  230. package/styles/styles/theme/base/components/data/_timeline.scss +81 -0
  231. package/styles/styles/theme/base/components/data/_tree.scss +149 -0
  232. package/styles/styles/theme/base/components/data/_treetable.scss +256 -0
  233. package/styles/styles/theme/base/components/data/_virtualscroller.scss +28 -0
  234. package/styles/styles/theme/base/components/file/_fileupload.scss +64 -0
  235. package/styles/styles/theme/base/components/input/_autocomplete.scss +118 -0
  236. package/styles/styles/theme/base/components/input/_calendar.scss +263 -0
  237. package/styles/styles/theme/base/components/input/_cascadeselect.scss +130 -0
  238. package/styles/styles/theme/base/components/input/_checkbox.scss +90 -0
  239. package/styles/styles/theme/base/components/input/_chips.scss +55 -0
  240. package/styles/styles/theme/base/components/input/_colorpicker.scss +26 -0
  241. package/styles/styles/theme/base/components/input/_dropdown.scss +152 -0
  242. package/styles/styles/theme/base/components/input/_editor.scss +122 -0
  243. package/styles/styles/theme/base/components/input/_inputgroup.scss +75 -0
  244. package/styles/styles/theme/base/components/input/_inputmask.scss +16 -0
  245. package/styles/styles/theme/base/components/input/_inputnumber.scss +28 -0
  246. package/styles/styles/theme/base/components/input/_inputswitch.scss +60 -0
  247. package/styles/styles/theme/base/components/input/_inputtext.scss +100 -0
  248. package/styles/styles/theme/base/components/input/_listbox.scss +82 -0
  249. package/styles/styles/theme/base/components/input/_multiselect.scss +173 -0
  250. package/styles/styles/theme/base/components/input/_password.scss +52 -0
  251. package/styles/styles/theme/base/components/input/_radiobutton.scss +78 -0
  252. package/styles/styles/theme/base/components/input/_rating.scss +55 -0
  253. package/styles/styles/theme/base/components/input/_selectbutton.scss +50 -0
  254. package/styles/styles/theme/base/components/input/_slider.scss +71 -0
  255. package/styles/styles/theme/base/components/input/_togglebutton.scss +48 -0
  256. package/styles/styles/theme/base/components/input/_treeselect.scss +139 -0
  257. package/styles/styles/theme/base/components/menu/_breadcrumb.scss +42 -0
  258. package/styles/styles/theme/base/components/menu/_contextmenu.scss +39 -0
  259. package/styles/styles/theme/base/components/menu/_dock.scss +95 -0
  260. package/styles/styles/theme/base/components/menu/_megamenu.scss +55 -0
  261. package/styles/styles/theme/base/components/menu/_menu.scss +37 -0
  262. package/styles/styles/theme/base/components/menu/_menubar.scss +141 -0
  263. package/styles/styles/theme/base/components/menu/_panelmenu.scss +153 -0
  264. package/styles/styles/theme/base/components/menu/_slidemenu.scss +59 -0
  265. package/styles/styles/theme/base/components/menu/_steps.scss +56 -0
  266. package/styles/styles/theme/base/components/menu/_tabmenu.scss +74 -0
  267. package/styles/styles/theme/base/components/menu/_tieredmenu.scss +43 -0
  268. package/styles/styles/theme/base/components/messages/_inlinemessage.scss +69 -0
  269. package/styles/styles/theme/base/components/messages/_message.scss +107 -0
  270. package/styles/styles/theme/base/components/messages/_toast.scss +103 -0
  271. package/styles/styles/theme/base/components/misc/_avatar.scss +30 -0
  272. package/styles/styles/theme/base/components/misc/_badge.scss +48 -0
  273. package/styles/styles/theme/base/components/misc/_blockui.scss +0 -0
  274. package/styles/styles/theme/base/components/misc/_chip.scss +42 -0
  275. package/styles/styles/theme/base/components/misc/_inplace.scss +17 -0
  276. package/styles/styles/theme/base/components/misc/_progressbar.scss +17 -0
  277. package/styles/styles/theme/base/components/misc/_scrolltop.scss +25 -0
  278. package/styles/styles/theme/base/components/misc/_skeleton.scss +8 -0
  279. package/styles/styles/theme/base/components/misc/_tag.scss +40 -0
  280. package/styles/styles/theme/base/components/misc/_terminal.scss +12 -0
  281. package/styles/styles/theme/base/components/multimedia/_galleria.scss +155 -0
  282. package/styles/styles/theme/base/components/multimedia/_image.scss +49 -0
  283. package/styles/styles/theme/base/components/overlay/_confirmpopup.scss +72 -0
  284. package/styles/styles/theme/base/components/overlay/_dialog.scss +73 -0
  285. package/styles/styles/theme/base/components/overlay/_overlaypanel.scss +64 -0
  286. package/styles/styles/theme/base/components/overlay/_sidebar.scss +27 -0
  287. package/styles/styles/theme/base/components/overlay/_tooltip.scss +33 -0
  288. package/styles/styles/theme/base/components/panel/_accordion.scss +119 -0
  289. package/styles/styles/theme/base/components/panel/_card.scss +30 -0
  290. package/styles/styles/theme/base/components/panel/_divider.scss +31 -0
  291. package/styles/styles/theme/base/components/panel/_fieldset.scss +47 -0
  292. package/styles/styles/theme/base/components/panel/_panel.scss +58 -0
  293. package/styles/styles/theme/base/components/panel/_scrollpanel.scss +6 -0
  294. package/styles/styles/theme/base/components/panel/_splitter.scss +19 -0
  295. package/styles/styles/theme/base/components/panel/_tabview.scss +82 -0
  296. package/styles/styles/theme/base/components/panel/_toolbar.scss +11 -0
  297. package/styles/styles/theme/saga/_extensions.scss +27 -0
  298. package/styles/styles/theme/saga/_variables.scss +1 -0
  299. package/styles/styles/theme/saga/saga-blue/_extensions.scss +2 -0
  300. package/styles/styles/theme/saga/saga-blue/_fonts.scss +1 -0
  301. package/styles/styles/theme/saga/saga-blue/_variables.scss +1 -0
  302. package/styles/styles/theme/saga/saga-blue/theme.scss +4 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ ## Publishing
2
+
3
+ After building your library with `ng build spiderly`, go to the dist folder `cd dist/spiderly` and run `npm publish`.
@@ -0,0 +1,65 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { RegistrationComponent } from './registration/registration.component';
4
+ import { LoginComponent } from './login/login.component';
5
+ import { AuthComponent } from './partials/auth.component';
6
+ import { TranslocoDirective } from '@jsverse/transloco';
7
+ import { ReactiveFormsModule } from '@angular/forms';
8
+ import { CommonModule } from '@angular/common';
9
+ import { PrimengModule } from '../../modules/primeng.module';
10
+ import { SpiderlyControlsModule } from '../../controls/spiderly-controls.module';
11
+ import { LoginVerificationComponent } from './partials/login-verification.component';
12
+ import { RegistrationVerificationComponent } from './partials/registration-verification.component';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/router";
15
+ const routes = [
16
+ {
17
+ path: 'registration',
18
+ component: RegistrationComponent
19
+ },
20
+ {
21
+ path: 'login',
22
+ component: LoginComponent
23
+ },
24
+ ];
25
+ export class AuthModule {
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, declarations: [RegistrationComponent,
28
+ LoginComponent], imports: [i1.RouterModule, CommonModule,
29
+ ReactiveFormsModule,
30
+ AuthComponent,
31
+ PrimengModule,
32
+ SpiderlyControlsModule,
33
+ LoginVerificationComponent,
34
+ RegistrationVerificationComponent,
35
+ TranslocoDirective] }); }
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, imports: [RouterModule.forChild(routes),
37
+ CommonModule,
38
+ ReactiveFormsModule,
39
+ AuthComponent,
40
+ PrimengModule,
41
+ SpiderlyControlsModule,
42
+ LoginVerificationComponent,
43
+ RegistrationVerificationComponent] }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthModule, decorators: [{
46
+ type: NgModule,
47
+ args: [{
48
+ imports: [
49
+ RouterModule.forChild(routes),
50
+ CommonModule,
51
+ ReactiveFormsModule,
52
+ AuthComponent,
53
+ PrimengModule,
54
+ SpiderlyControlsModule,
55
+ LoginVerificationComponent,
56
+ RegistrationVerificationComponent,
57
+ TranslocoDirective,
58
+ ],
59
+ declarations: [
60
+ RegistrationComponent,
61
+ LoginComponent,
62
+ ]
63
+ }]
64
+ }] });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7OztBQUVuRyxNQUFNLE1BQU0sR0FBVztJQUNuQjtRQUNJLElBQUksRUFBRSxjQUFjO1FBQ3BCLFNBQVMsRUFBRSxxQkFBcUI7S0FDbkM7SUFDRDtRQUNJLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLGNBQWM7S0FDNUI7Q0FDSixDQUFDO0FBbUJGLE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFKZixxQkFBcUI7WUFDckIsY0FBYyw4QkFYZCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLDBCQUEwQjtZQUMxQixpQ0FBaUM7WUFDakMsa0JBQWtCO2dIQU9iLFVBQVUsWUFmZixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM3QixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLDBCQUEwQjtZQUMxQixpQ0FBaUM7OzRGQVE1QixVQUFVO2tCQWpCdEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQzdCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLGlDQUFpQzt3QkFDakMsa0JBQWtCO3FCQUNyQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YscUJBQXFCO3dCQUNyQixjQUFjO3FCQUNqQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUmVnaXN0cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9yZWdpc3RyYXRpb24vcmVnaXN0cmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJ0aWFscy9hdXRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuaW1wb3J0IHsgU3BpZGVybHlDb250cm9sc01vZHVsZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3NwaWRlcmx5LWNvbnRyb2xzLm1vZHVsZSc7XHJcbmltcG9ydCB7IExvZ2luVmVyaWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJ0aWFscy9sb2dpbi12ZXJpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJ0aWFscy9yZWdpc3RyYXRpb24tdmVyaWZpY2F0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICAgIHsgXHJcbiAgICAgICAgcGF0aDogJ3JlZ2lzdHJhdGlvbicsIFxyXG4gICAgICAgIGNvbXBvbmVudDogUmVnaXN0cmF0aW9uQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAgeyBcclxuICAgICAgICBwYXRoOiAnbG9naW4nLCBcclxuICAgICAgICBjb21wb25lbnQ6IExvZ2luQ29tcG9uZW50XHJcbiAgICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBBdXRoQ29tcG9uZW50LFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgU3BpZGVybHlDb250cm9sc01vZHVsZSxcclxuICAgICAgICBMb2dpblZlcmlmaWNhdGlvbkNvbXBvbmVudCxcclxuICAgICAgICBSZWdpc3RyYXRpb25WZXJpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFJlZ2lzdHJhdGlvbkNvbXBvbmVudCxcclxuICAgICAgICBMb2dpbkNvbXBvbmVudCxcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { Component } from '@angular/core';
2
+ import { BaseFormCopy } from '../../base-form/base-form copy';
3
+ import { Login } from '../../../entities/security-entities';
4
+ import { SpiderlyFormGroup } from '../../spiderly-form-control/spiderly-form-control';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../../../services/spiderly-message.service";
8
+ import * as i3 from "@angular/router";
9
+ import * as i4 from "@jsverse/transloco";
10
+ import * as i5 from "../../../services/base-form.service";
11
+ import * as i6 from "../../../services/auth-base.service";
12
+ import * as i7 from "../../../services/config-base.service";
13
+ import * as i8 from "@angular/common";
14
+ import * as i9 from "@angular/forms";
15
+ import * as i10 from "../partials/auth.component";
16
+ import * as i11 from "../../../controls/spiderly-textbox/spiderly-textbox.component";
17
+ import * as i12 from "../../spiderly-buttons/spiderly-button/spiderly-button.component";
18
+ import * as i13 from "../partials/login-verification.component";
19
+ export class LoginComponent extends BaseFormCopy {
20
+ constructor(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService, authService, config) {
21
+ super(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService);
22
+ this.differs = differs;
23
+ this.http = http;
24
+ this.messageService = messageService;
25
+ this.changeDetectorRef = changeDetectorRef;
26
+ this.router = router;
27
+ this.route = route;
28
+ this.translocoService = translocoService;
29
+ this.baseFormService = baseFormService;
30
+ this.authService = authService;
31
+ this.config = config;
32
+ this.loginFormGroup = new SpiderlyFormGroup({});
33
+ this.showEmailSentDialog = false;
34
+ this.usersCanRegister = this.config.usersCanRegister;
35
+ }
36
+ ngOnInit() {
37
+ this.initLoginFormGroup(new Login({}));
38
+ }
39
+ initLoginFormGroup(model) {
40
+ this.initFormGroup(this.loginFormGroup, this.formGroup, model, model.typeName, []);
41
+ }
42
+ companyNameChange(companyName) {
43
+ this.companyName = companyName;
44
+ }
45
+ sendLoginVerificationEmail() {
46
+ let isFormGroupValid = this.baseFormService.checkFormGroupValidity(this.loginFormGroup);
47
+ if (isFormGroupValid == false)
48
+ return;
49
+ this.authService.sendLoginVerificationEmail(this.loginFormGroup.getRawValue()).subscribe(() => {
50
+ this.showEmailSentDialog = true;
51
+ });
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.HttpClient }, { token: i2.SpiderlyMessageService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.TranslocoService }, { token: i5.BaseFormService }, { token: i6.AuthBaseService }, { token: i7.ConfigBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LoginComponent, selector: "app-login", usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (loginFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0; margin-bottom: 32px;\">\r\n <spiderly-textbox [control]=\"control('email', loginFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('Login')\" (onClick)=\"sendLoginVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button *ngIf=\"usersCanRegister\" [label]=\"t('NewToJoinNow', {companyName: companyName})\" routerLink=\"/registration\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <login-verification [email]=\"loginFormGroup.controls.email.getRawValue()\"></login-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i10.AuthComponent, selector: "auth", inputs: ["showGoogleAuth"], outputs: ["onCompanyNameChange"] }, { kind: "component", type: i11.SpiderlyTextboxComponent, selector: "spiderly-textbox", inputs: ["showButton", "buttonIcon"], outputs: ["onButtonClick"] }, { kind: "component", type: i12.SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: i13.LoginVerificationComponent, selector: "login-verification", inputs: ["email", "userId"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'app-login', template: "<ng-container *transloco=\"let t\">\r\n @if (loginFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0; margin-bottom: 32px;\">\r\n <spiderly-textbox [control]=\"control('email', loginFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('Login')\" (onClick)=\"sendLoginVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button *ngIf=\"usersCanRegister\" [label]=\"t('NewToJoinNow', {companyName: companyName})\" routerLink=\"/registration\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <login-verification [email]=\"loginFormGroup.controls.email.getRawValue()\"></login-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>" }]
59
+ }], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.HttpClient }, { type: i2.SpiderlyMessageService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslocoService }, { type: i5.BaseFormService }, { type: i6.AuthBaseService }, { type: i7.ConfigBaseService }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixTQUFTLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVV0RixNQUFNLE9BQU8sY0FBZSxTQUFRLFlBQVk7SUFPNUMsWUFDcUIsT0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsY0FBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDM0MsV0FBNEIsRUFDNUIsTUFBeUI7UUFFakMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFYdkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDM0MsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBaEJuQyxtQkFBYyxHQUFHLElBQUksaUJBQWlCLENBQVEsRUFBRSxDQUFDLENBQUM7UUFHbEQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFlekQsQ0FBQztJQUVRLFFBQVE7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBWTtRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUI7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixJQUFJLGdCQUFnQixHQUFZLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpHLElBQUksZ0JBQWdCLElBQUksS0FBSztZQUMzQixPQUFPO1FBRVQsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUUsRUFBRTtZQUN6RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0EzQ1EsY0FBYzttR0FBZCxjQUFjLHdFQ2hCM0IsdWhEQXdCZTs7NEZEUkYsY0FBYztrQkFKMUIsU0FBUzsrQkFDSSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEtleVZhbHVlRGlmZmVycywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBCYXNlRm9ybUNvcHkgfSBmcm9tICcuLi8uLi9iYXNlLWZvcm0vYmFzZS1mb3JtIGNvcHknO1xyXG5pbXBvcnQgeyBMb2dpbiB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3NlY3VyaXR5LWVudGl0aWVzJztcclxuaW1wb3J0IHsgU3BpZGVybHlGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9zcGlkZXJseS1mb3JtLWNvbnRyb2wvc3BpZGVybHktZm9ybS1jb250cm9sJztcclxuaW1wb3J0IHsgU3BpZGVybHlNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NwaWRlcmx5LW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2UtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maWdCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy1iYXNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1sb2dpbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvcHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgbG9naW5Gb3JtR3JvdXAgPSBuZXcgU3BpZGVybHlGb3JtR3JvdXA8TG9naW4+KHt9KTtcclxuXHJcbiAgICBjb21wYW55TmFtZTogc3RyaW5nO1xyXG4gICAgc2hvd0VtYWlsU2VudERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgdXNlcnNDYW5SZWdpc3RlcjogYm9vbGVhbiA9IHRoaXMuY29uZmlnLnVzZXJzQ2FuUmVnaXN0ZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBkaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVzc2FnZVNlcnZpY2U6IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXIsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGJhc2VGb3JtU2VydmljZTogQmFzZUZvcm1TZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoQmFzZVNlcnZpY2UsIFxyXG4gICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnQmFzZVNlcnZpY2VcclxuICAgICkgeyBcclxuICAgICAgc3VwZXIoZGlmZmVycywgaHR0cCwgbWVzc2FnZVNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmLCByb3V0ZXIsIHJvdXRlLCB0cmFuc2xvY29TZXJ2aWNlLCBiYXNlRm9ybVNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCl7XHJcbiAgICAgICAgdGhpcy5pbml0TG9naW5Gb3JtR3JvdXAobmV3IExvZ2luKHt9KSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGluaXRMb2dpbkZvcm1Hcm91cChtb2RlbDogTG9naW4pe1xyXG4gICAgICB0aGlzLmluaXRGb3JtR3JvdXAodGhpcy5sb2dpbkZvcm1Hcm91cCwgdGhpcy5mb3JtR3JvdXAsIG1vZGVsLCBtb2RlbC50eXBlTmFtZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhbnlOYW1lQ2hhbmdlKGNvbXBhbnlOYW1lOiBzdHJpbmcpe1xyXG4gICAgICB0aGlzLmNvbXBhbnlOYW1lID0gY29tcGFueU5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZExvZ2luVmVyaWZpY2F0aW9uRW1haWwoKSB7XHJcbiAgICAgICAgbGV0IGlzRm9ybUdyb3VwVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmJhc2VGb3JtU2VydmljZS5jaGVja0Zvcm1Hcm91cFZhbGlkaXR5KHRoaXMubG9naW5Gb3JtR3JvdXApO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChpc0Zvcm1Hcm91cFZhbGlkID09IGZhbHNlKSBcclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbCh0aGlzLmxvZ2luRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSgoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFbWFpbFNlbnREaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxyXG4gICAgQGlmIChsb2dpbkZvcm1Hcm91cCAhPSBudWxsKSB7XHJcbiAgICAgICAgQGlmIChzaG93RW1haWxTZW50RGlhbG9nID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIDxhdXRoIChvbkNvbXBhbnlOYW1lQ2hhbmdlKT1cImNvbXBhbnlOYW1lQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiPiA8IS0tIEZUOiBXZSBhcmUgbm90IGxvYWRpbmcgYW55dGhpbmcgZnJvbSB0aGUgc2VydmVyIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCBkZWZlciBibG9jayAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDA7IHBhZGRpbmctcmlnaHQ6IDA7IG1hcmdpbi1ib3R0b206IDMycHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS10ZXh0Ym94IFtjb250cm9sXT1cImNvbnRyb2woJ2VtYWlsJywgbG9naW5Gb3JtR3JvdXApXCI+PC9zcGlkZXJseS10ZXh0Ym94PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE2cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS1idXR0b24gW2xhYmVsXT1cInQoJ0xvZ2luJylcIiAob25DbGljayk9XCJzZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbCgpXCIgW291dGxpbmVkXT1cInRydWVcIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9XCI+PC9zcGlkZXJseS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVE9ETyBGVDogQWRkIHBvc3NpYmlsaXR5IHRvIGNoYW5nZSB0aGlzIG5hbWUgZnJvbSB0aGUgc3BlY2lmaWMgcHJvamVjdCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwaWRlcmx5LWJ1dHRvbiAqbmdJZj1cInVzZXJzQ2FuUmVnaXN0ZXJcIiBbbGFiZWxdPVwidCgnTmV3VG9Kb2luTm93Jywge2NvbXBhbnlOYW1lOiBjb21wYW55TmFtZX0pXCIgcm91dGVyTGluaz1cIi9yZWdpc3RyYXRpb25cIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9XCI+PC9zcGlkZXJseS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvYXV0aD5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8bG9naW4tdmVyaWZpY2F0aW9uIFtlbWFpbF09XCJsb2dpbkZvcm1Hcm91cC5jb250cm9scy5lbWFpbC5nZXRSYXdWYWx1ZSgpXCI+PC9sb2dpbi12ZXJpZmljYXRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIDwhLS0gVE9ETyBGVDogQWRkIHNrZWxldG9uIC0tPlxyXG4gICAgfVxyXG48L25nLWNvbnRhaW5lcj4iXX0=
@@ -0,0 +1,53 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { TranslocoDirective } from "@jsverse/transloco";
4
+ import { GoogleButtonComponent } from "../../spiderly-buttons/google-button/google-button.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../services/config-base.service";
7
+ import * as i2 from "../../../services/auth-base.service";
8
+ import * as i3 from "@angular/common";
9
+ export class AuthComponent {
10
+ constructor(config, authService) {
11
+ this.config = config;
12
+ this.authService = authService;
13
+ this.initCompanyAuthDialogDetailsSubscription = null;
14
+ this.onCompanyNameChange = new EventEmitter();
15
+ this.showGoogleAuth = true;
16
+ this.hasGoogleAuth = this.config.googleAuth;
17
+ }
18
+ ngOnInit() {
19
+ this.initCompanyDetails();
20
+ }
21
+ initCompanyDetails() {
22
+ this.initCompanyAuthDialogDetailsSubscription = this.authService.initCompanyAuthDialogDetails().subscribe(initCompanyAuthDialogDetails => {
23
+ if (initCompanyAuthDialogDetails != null) {
24
+ this.image = initCompanyAuthDialogDetails.image;
25
+ this.companyName = initCompanyAuthDialogDetails.companyName;
26
+ this.onCompanyNameChange.next(this.companyName);
27
+ }
28
+ });
29
+ }
30
+ onGoogleSignIn(googleWrapper) {
31
+ googleWrapper.click();
32
+ }
33
+ ngOnDestroy() {
34
+ if (this.initCompanyAuthDialogDetailsSubscription) {
35
+ this.initCompanyAuthDialogDetailsSubscription.unsubscribe();
36
+ }
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthComponent, deps: [{ token: i1.ConfigBaseService }, { token: i2.AuthBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AuthComponent, isStandalone: true, selector: "auth", inputs: { showGoogleAuth: "showGoogleAuth" }, outputs: { onCompanyNameChange: "onCompanyNameChange" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\" style=\"margin-bottom: 38px;\">\r\n <img *ngIf=\"image != null\" [src]=\"image\" alt=\"{{companyName}} Logo\" height=\"60\">\r\n <i *ngIf=\"image == null\" class=\"pi pi-spin pi-spinner primary-color\" style=\"font-size: 2rem\"></i>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n \r\n <div *ngIf=\"hasGoogleAuth && showGoogleAuth\">\r\n <div style=\"display: flex; align-items: center; gap: 7px; justify-content: center; margin-bottom: 16px;\">\r\n <div class=\"separator\"></div>\r\n <div>{{t('or')}}</div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div>\r\n <!-- https://code-maze.com/how-to-sign-in-with-google-angular-aspnet-webapi/ -->\r\n <google-button (loginWithGoogle)=\"onGoogleSignIn($event)\"></google-button> \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GoogleButtonComponent, selector: "google-button", outputs: ["loginWithGoogle"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'auth', imports: [
44
+ CommonModule,
45
+ GoogleButtonComponent,
46
+ TranslocoDirective,
47
+ ], standalone: true, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex min-h-screen overflow-hidden\" style=\"padding: 20px;\">\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"w-full sm:w-30rem\" style=\"margin: auto; border-radius:50px; padding:0.3rem; background: linear-gradient(180deg, var(--primary-color) 10%, rgba(33, 150, 243, 0) 30%);\">\r\n <div class=\"surface-card py-6 px-5 sm:px-6\" style=\"border-radius:45px;\">\r\n <div class=\"text-center\" style=\"margin-bottom: 38px;\">\r\n <img *ngIf=\"image != null\" [src]=\"image\" alt=\"{{companyName}} Logo\" height=\"60\">\r\n <i *ngIf=\"image == null\" class=\"pi pi-spin pi-spinner primary-color\" style=\"font-size: 2rem\"></i>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n \r\n <div *ngIf=\"hasGoogleAuth && showGoogleAuth\">\r\n <div style=\"display: flex; align-items: center; gap: 7px; justify-content: center; margin-bottom: 16px;\">\r\n <div class=\"separator\"></div>\r\n <div>{{t('or')}}</div>\r\n <div class=\"separator\"></div>\r\n </div>\r\n <div>\r\n <!-- https://code-maze.com/how-to-sign-in-with-google-angular-aspnet-webapi/ -->\r\n <google-button (loginWithGoogle)=\"onGoogleSignIn($event)\"></google-button> \r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>" }]
48
+ }], ctorParameters: () => [{ type: i1.ConfigBaseService }, { type: i2.AuthBaseService }], propDecorators: { onCompanyNameChange: [{
49
+ type: Output
50
+ }], showGoogleAuth: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9wYXJ0aWFscy9hdXRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3BhcnRpYWxzL2F1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7O0FBZXJHLE1BQU0sT0FBTyxhQUFhO0lBVXhCLFlBQ1UsTUFBeUIsRUFDekIsV0FBNEI7UUFENUIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBWDlCLDZDQUF3QyxHQUF3QixJQUFJLENBQUM7UUFFbkUsd0JBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEUsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFeEMsa0JBQWEsR0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQVNoRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLHdDQUF3QyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsRUFBRTtZQUN2SSxJQUFJLDRCQUE0QixJQUFJLElBQUksRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyw0QkFBNEIsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqRDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxhQUFrQjtRQUMvQixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyx3Q0FBd0MsRUFBRTtZQUNqRCxJQUFJLENBQUMsd0NBQXdDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDN0Q7SUFDSCxDQUFDOytHQXZDVSxhQUFhO21HQUFiLGFBQWEsdUtDbkIxQixrc0RBNEJlLDJDRGZYLFlBQVksbUlBQ1oscUJBQXFCLHdGQUNyQixrQkFBa0I7OzRGQUlULGFBQWE7a0JBWHpCLFNBQVM7K0JBQ0UsTUFBTSxXQUdQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CLGNBQ1csSUFBSTtvSEFLTixtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tIFwiQGpzdmVyc2UvdHJhbnNsb2NvXCI7XHJcbmltcG9ydCB7IEdvb2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9zcGlkZXJseS1idXR0b25zL2dvb2dsZS1idXR0b24vZ29vZ2xlLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29uZmlnQmFzZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvY29uZmlnLWJhc2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdXRoQmFzZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXV0aC1iYXNlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXV0aCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgR29vZ2xlQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhDb21wb25lbnQge1xyXG4gIHByaXZhdGUgaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlsc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNvbXBhbnlOYW1lQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBzaG93R29vZ2xlQXV0aDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGhhc0dvb2dsZUF1dGg6IGJvb2xlYW4gPSB0aGlzLmNvbmZpZy5nb29nbGVBdXRoO1xyXG4gIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbiAgaW1hZ2U6IHN0cmluZztcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdCYXNlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhCYXNlU2VydmljZSxcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5pbml0Q29tcGFueURldGFpbHMoKTtcclxuICB9XHJcblxyXG4gIGluaXRDb21wYW55RGV0YWlscygpIHtcclxuICAgIHRoaXMuaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlsc1N1YnNjcmlwdGlvbiA9IHRoaXMuYXV0aFNlcnZpY2UuaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlscygpLnN1YnNjcmliZShpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzID0+IHtcclxuICAgICAgaWYgKGluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHMgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaW1hZ2UgPSBpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzLmltYWdlO1xyXG4gICAgICAgIHRoaXMuY29tcGFueU5hbWUgPSBpbml0Q29tcGFueUF1dGhEaWFsb2dEZXRhaWxzLmNvbXBhbnlOYW1lO1xyXG4gICAgICAgIHRoaXMub25Db21wYW55TmFtZUNoYW5nZS5uZXh0KHRoaXMuY29tcGFueU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25Hb29nbGVTaWduSW4oZ29vZ2xlV3JhcHBlcjogYW55KXtcclxuICAgIGdvb2dsZVdyYXBwZXIuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlsc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBtaW4taC1zY3JlZW4gb3ZlcmZsb3ctaGlkZGVuXCIgc3R5bGU9XCJwYWRkaW5nOiAyMHB4O1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIHctZnVsbFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHNtOnctMzByZW1cIiBzdHlsZT1cIm1hcmdpbjogYXV0bzsgYm9yZGVyLXJhZGl1czo1MHB4OyBwYWRkaW5nOjAuM3JlbTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tcHJpbWFyeS1jb2xvcikgMTAlLCByZ2JhKDMzLCAxNTAsIDI0MywgMCkgMzAlKTtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJmYWNlLWNhcmQgcHktNiBweC01IHNtOnB4LTZcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6NDVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDM4cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpbWFnZSAhPSBudWxsXCIgW3NyY109XCJpbWFnZVwiIGFsdD1cInt7Y29tcGFueU5hbWV9fSBMb2dvXCIgaGVpZ2h0PVwiNjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWFnZSA9PSBudWxsXCIgY2xhc3M9XCJwaSBwaS1zcGluIHBpLXNwaW5uZXIgcHJpbWFyeS1jb2xvclwiIHN0eWxlPVwiZm9udC1zaXplOiAycmVtXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzR29vZ2xlQXV0aCAmJiBzaG93R29vZ2xlQXV0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA3cHg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAxNnB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e3QoJ29yJyl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gaHR0cHM6Ly9jb2RlLW1hemUuY29tL2hvdy10by1zaWduLWluLXdpdGgtZ29vZ2xlLWFuZ3VsYXItYXNwbmV0LXdlYmFwaS8gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29vZ2xlLWJ1dHRvbiAobG9naW5XaXRoR29vZ2xlKT1cIm9uR29vZ2xlU2lnbkluKCRldmVudClcIj48L2dvb2dsZS1idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { VerificationWrapperComponent } from './verification-wrapper.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/auth-base.service";
5
+ import * as i2 from "../../../services/spiderly-message.service";
6
+ import * as i3 from "@jsverse/transloco";
7
+ export class LoginVerificationComponent {
8
+ constructor(authService, messageService, translocoService) {
9
+ this.authService = authService;
10
+ this.messageService = messageService;
11
+ this.translocoService = translocoService;
12
+ }
13
+ ngOnInit() {
14
+ }
15
+ resendVerificationToken() {
16
+ this.authService.sendLoginVerificationEmail({ email: this.email }).subscribe(() => {
17
+ this.messageService.successMessage(this.translocoService.translate('SuccessfullySentVerificationCode'));
18
+ });
19
+ }
20
+ onCodeSubmit(event) {
21
+ this.authService.login({ email: this.email, verificationCode: event }).subscribe(() => {
22
+ this.messageService.successMessage(this.translocoService.translate('YouHaveSuccessfullyVerifiedYourAccount'));
23
+ this.authService.navigateToDashboard();
24
+ });
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginVerificationComponent, deps: [{ token: i1.AuthBaseService }, { token: i2.SpiderlyMessageService }, { token: i3.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoginVerificationComponent, isStandalone: true, selector: "login-verification", inputs: { email: "email", userId: "userId" }, ngImport: i0, template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n\r\n", dependencies: [{ kind: "component", type: VerificationWrapperComponent, selector: "verification-wrapper", inputs: ["email"], outputs: ["onResendVerificationToken", "onCodeSubmit"] }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoginVerificationComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'login-verification', standalone: true, imports: [
32
+ VerificationWrapperComponent
33
+ ], template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n\r\n" }]
34
+ }], ctorParameters: () => [{ type: i1.AuthBaseService }, { type: i2.SpiderlyMessageService }, { type: i3.TranslocoService }], propDecorators: { email: [{
35
+ type: Input
36
+ }], userId: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdmVyaWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3BhcnRpYWxzL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9wYXJ0aWFscy9sb2dpbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTywwQkFBMEI7SUFJbkMsWUFDVSxXQUE0QixFQUM1QixjQUFzQyxFQUN0QyxnQkFBa0M7UUFGbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLDBCQUEwQixDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6QlEsMEJBQTBCO21HQUExQiwwQkFBMEIsNEhDZHZDLDJLQUVBLDRDRFNRLDRCQUE0Qjs7NEZBR3ZCLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSxvQkFBb0IsY0FFbEIsSUFBSSxXQUNQO3dCQUNMLDRCQUE0QjtxQkFDL0I7d0pBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWZXJpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi92ZXJpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3BpZGVybHlNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NwaWRlcmx5LW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgtYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsb2dpbi12ZXJpZmljYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIFZlcmlmaWNhdGlvbldyYXBwZXJDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luVmVyaWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB1c2VySWQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aEJhc2VTZXJ2aWNlLCBcclxuICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogU3BpZGVybHlNZXNzYWdlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCl7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJlc2VuZFZlcmlmaWNhdGlvblRva2VuKCl7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zZW5kTG9naW5WZXJpZmljYXRpb25FbWFpbCh7ZW1haWw6IHRoaXMuZW1haWx9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3NNZXNzYWdlKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1N1Y2Nlc3NmdWxseVNlbnRWZXJpZmljYXRpb25Db2RlJykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ29kZVN1Ym1pdChldmVudDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKHtlbWFpbDogdGhpcy5lbWFpbCwgdmVyaWZpY2F0aW9uQ29kZTogZXZlbnR9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3NNZXNzYWdlKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1lvdUhhdmVTdWNjZXNzZnVsbHlWZXJpZmllZFlvdXJBY2NvdW50JykpO1xyXG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm5hdmlnYXRlVG9EYXNoYm9hcmQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuIiwiPHZlcmlmaWNhdGlvbi13cmFwcGVyIFtlbWFpbF09XCJlbWFpbFwiIChvblJlc2VuZFZlcmlmaWNhdGlvblRva2VuKT1cInJlc2VuZFZlcmlmaWNhdGlvblRva2VuKClcIiAob25Db2RlU3VibWl0KT1cIm9uQ29kZVN1Ym1pdCgkZXZlbnQpXCI+PC92ZXJpZmljYXRpb24td3JhcHBlcj5cclxuXHJcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { VerificationWrapperComponent } from './verification-wrapper.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../../services/auth-base.service";
5
+ import * as i2 from "../../../services/spiderly-message.service";
6
+ import * as i3 from "@jsverse/transloco";
7
+ export class RegistrationVerificationComponent {
8
+ constructor(authService, messageService, translocoService) {
9
+ this.authService = authService;
10
+ this.messageService = messageService;
11
+ this.translocoService = translocoService;
12
+ }
13
+ ngOnInit() {
14
+ }
15
+ resendVerificationToken() {
16
+ this.authService.sendRegistrationVerificationEmail({ email: this.email }).subscribe(() => {
17
+ this.messageService.successMessage(this.translocoService.translate('SuccessfullySentVerificationCode'));
18
+ });
19
+ }
20
+ onCodeSubmit(event) {
21
+ this.authService.register({ email: this.email, verificationCode: event }).subscribe(() => {
22
+ this.messageService.successMessage(this.translocoService.translate('YouHaveSuccessfullyVerifiedYourAccount'));
23
+ this.authService.navigateToDashboard();
24
+ });
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationVerificationComponent, deps: [{ token: i1.AuthBaseService }, { token: i2.SpiderlyMessageService }, { token: i3.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RegistrationVerificationComponent, isStandalone: true, selector: "registration-verification", inputs: { email: "email" }, ngImport: i0, template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n", dependencies: [{ kind: "component", type: VerificationWrapperComponent, selector: "verification-wrapper", inputs: ["email"], outputs: ["onResendVerificationToken", "onCodeSubmit"] }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationVerificationComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'registration-verification', standalone: true, imports: [
32
+ VerificationWrapperComponent
33
+ ], template: "<verification-wrapper [email]=\"email\" (onResendVerificationToken)=\"resendVerificationToken()\" (onCodeSubmit)=\"onCodeSubmit($event)\"></verification-wrapper>\r\n" }]
34
+ }], ctorParameters: () => [{ type: i1.AuthBaseService }, { type: i2.SpiderlyMessageService }, { type: i3.TranslocoService }], propDecorators: { email: [{
35
+ type: Input
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC9wYXJ0aWFscy9yZWdpc3RyYXRpb24tdmVyaWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3BhcnRpYWxzL3JlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTyxpQ0FBaUM7SUFHMUMsWUFDVSxXQUE0QixFQUM1QixjQUFzQyxFQUN0QyxnQkFBa0M7UUFGbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F4QlEsaUNBQWlDO21HQUFqQyxpQ0FBaUMsaUhDZDlDLHVLQUNBLDRDRFVRLDRCQUE0Qjs7NEZBR3ZCLGlDQUFpQztrQkFSN0MsU0FBUzsrQkFDSSwyQkFBMkIsY0FFekIsSUFBSSxXQUNQO3dCQUNMLDRCQUE0QjtxQkFDL0I7d0pBR1EsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZlcmlmaWNhdGlvbldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3ZlcmlmaWNhdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTcGlkZXJseU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3BpZGVybHktbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC1iYXNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3JlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBWZXJpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25WZXJpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgZW1haWw6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aEJhc2VTZXJ2aWNlLCBcclxuICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogU3BpZGVybHlNZXNzYWdlU2VydmljZSwgXHJcbiAgICAgIHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpe1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2VuZFZlcmlmaWNhdGlvblRva2VuKCl7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5zZW5kUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uRW1haWwoe2VtYWlsOiB0aGlzLmVtYWlsfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzTWVzc2FnZSh0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdTdWNjZXNzZnVsbHlTZW50VmVyaWZpY2F0aW9uQ29kZScpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNvZGVTdWJtaXQoZXZlbnQ6IHN0cmluZyl7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWdpc3Rlcih7ZW1haWw6IHRoaXMuZW1haWwsIHZlcmlmaWNhdGlvbkNvZGU6IGV2ZW50fSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzTWVzc2FnZSh0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdZb3VIYXZlU3VjY2Vzc2Z1bGx5VmVyaWZpZWRZb3VyQWNjb3VudCcpKTtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5uYXZpZ2F0ZVRvRGFzaGJvYXJkKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8dmVyaWZpY2F0aW9uLXdyYXBwZXIgW2VtYWlsXT1cImVtYWlsXCIgKG9uUmVzZW5kVmVyaWZpY2F0aW9uVG9rZW4pPVwicmVzZW5kVmVyaWZpY2F0aW9uVG9rZW4oKVwiIChvbkNvZGVTdWJtaXQpPVwib25Db2RlU3VibWl0KCRldmVudClcIj48L3ZlcmlmaWNhdGlvbi13cmFwcGVyPlxyXG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { TranslocoDirective } from '@jsverse/transloco';
5
+ import { BaseFormCopy } from '../../base-form/base-form copy';
6
+ import { SpiderlyFormGroup } from '../../spiderly-form-control/spiderly-form-control';
7
+ import { SpiderlyControlsModule } from '../../../controls/spiderly-controls.module';
8
+ import { VerificationTokenRequest } from '../../../entities/security-entities';
9
+ import { PrimengModule } from '../../../modules/primeng.module';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common/http";
12
+ import * as i2 from "../../../services/spiderly-message.service";
13
+ import * as i3 from "@angular/router";
14
+ import * as i4 from "@jsverse/transloco";
15
+ import * as i5 from "../../../services/base-form.service";
16
+ import * as i6 from "primeng/button";
17
+ import * as i7 from "@angular/forms";
18
+ import * as i8 from "../../../controls/spiderly-textbox/spiderly-textbox.component";
19
+ import * as i9 from "../../spiderly-buttons/spiderly-button/spiderly-button.component";
20
+ import * as i10 from "../../spiderly-panels/panel-header/panel-header.component";
21
+ import * as i11 from "../../spiderly-panels/panel-body/panel-body.component";
22
+ import * as i12 from "../../spiderly-panels/panel-footer/panel-footer.component";
23
+ import * as i13 from "../../spiderly-panels/spiderly-panel/spiderly-panel.component";
24
+ export class VerificationWrapperComponent extends BaseFormCopy {
25
+ constructor(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService) {
26
+ super(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService);
27
+ this.differs = differs;
28
+ this.http = http;
29
+ this.messageService = messageService;
30
+ this.changeDetectorRef = changeDetectorRef;
31
+ this.router = router;
32
+ this.route = route;
33
+ this.translocoService = translocoService;
34
+ this.baseFormService = baseFormService;
35
+ this.verificationTokenRequestFormGroup = new SpiderlyFormGroup({});
36
+ this.onResendVerificationToken = new EventEmitter();
37
+ this.onCodeSubmit = new EventEmitter();
38
+ }
39
+ ngOnInit() {
40
+ this.initVerificationTokenRequestFormGroup(new VerificationTokenRequest({ email: this.email }));
41
+ }
42
+ initVerificationTokenRequestFormGroup(model) {
43
+ this.initFormGroup(this.verificationTokenRequestFormGroup, this.formGroup, model, model.typeName, []);
44
+ }
45
+ codeSubmit() {
46
+ let isValid = this.baseFormService.checkFormGroupValidity(this.verificationTokenRequestFormGroup);
47
+ if (isValid) {
48
+ this.onCodeSubmit.next(this.verificationTokenRequestFormGroup.controls.verificationCode.getRawValue());
49
+ }
50
+ }
51
+ resendVerificationToken() {
52
+ this.onResendVerificationToken.next(null);
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerificationWrapperComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.HttpClient }, { token: i2.SpiderlyMessageService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.TranslocoService }, { token: i5.BaseFormService }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: VerificationWrapperComponent, isStandalone: true, selector: "verification-wrapper", inputs: { email: "email" }, outputs: { onResendVerificationToken: "onResendVerificationToken", onCodeSubmit: "onCodeSubmit" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"min-h-screen\" style=\"display: flex; justify-content: center; align-items: center;\">\r\n <div class=\"dialog\" style=\"padding: 0px;\">\r\n @if (verificationTokenRequestFormGroup != null) {\r\n <spiderly-panel>\r\n <panel-header [title]=\"t('AccountVerificationHeader')\" [showBigTitle]=\"true\" icon=\"pi pi-envelope\"></panel-header>\r\n \r\n <panel-body>\r\n <form class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"header\">{{t('AccountVerificationTitle')}}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n {{t('AccountVerificationDescription', {email: email})}}\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-textbox [control]=\"control('verificationCode', verificationTokenRequestFormGroup)\"></spiderly-textbox>\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-button (onClick)=\"codeSubmit()\" [label]=\"t('Submit')\" icon=\"pi pi-verified\"></spiderly-button>\r\n </div>\r\n </form>\r\n </panel-body>\r\n \r\n <panel-footer>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToGmail')\" icon=\"pi pi-external-link\" href=\"https://mail.google.com/mail/u/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToYahoo')\" icon=\"pi pi-external-link\" href=\"https://mail.yahoo.com/d/folders/1/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n </panel-footer>\r\n <panel-footer>\r\n <div>{{t('ResendVerificationCodeFirstPart')}} <a class=\"link\" (click)=\"resendVerificationToken()\">{{t('ResendVerificationCodeLinkSecondPart')}}</a></div>\r\n </panel-footer>\r\n </spiderly-panel>\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n </div>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: SpiderlyControlsModule }, { kind: "component", type: i8.SpiderlyTextboxComponent, selector: "spiderly-textbox", inputs: ["showButton", "buttonIcon"], outputs: ["onButtonClick"] }, { kind: "component", type: i9.SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: i10.PanelHeaderComponent, selector: "panel-header", inputs: ["title", "showBigTitle", "showIcon", "icon", "index", "tabs"] }, { kind: "component", type: i11.PanelBodyComponent, selector: "panel-body", inputs: ["normalBottomPadding"] }, { kind: "component", type: i12.PanelFooterComponent, selector: "panel-footer" }, { kind: "component", type: i13.SpiderlyPanelComponent, selector: "spiderly-panel", inputs: ["isFirstMultiplePanel", "isMiddleMultiplePanel", "isLastMultiplePanel", "toggleable", "collapsed", "crudMenu", "showCrudMenu", "showRemoveIcon", "index", "showPanelHeader"], outputs: ["onMenuIconClick", "onRemoveIconClick"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VerificationWrapperComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'verification-wrapper', standalone: true, imports: [
60
+ CommonModule,
61
+ PrimengModule,
62
+ FormsModule,
63
+ ReactiveFormsModule,
64
+ SpiderlyControlsModule,
65
+ TranslocoDirective,
66
+ ], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"min-h-screen\" style=\"display: flex; justify-content: center; align-items: center;\">\r\n <div class=\"dialog\" style=\"padding: 0px;\">\r\n @if (verificationTokenRequestFormGroup != null) {\r\n <spiderly-panel>\r\n <panel-header [title]=\"t('AccountVerificationHeader')\" [showBigTitle]=\"true\" icon=\"pi pi-envelope\"></panel-header>\r\n \r\n <panel-body>\r\n <form class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"header\">{{t('AccountVerificationTitle')}}</div>\r\n </div>\r\n <div class=\"col-12\">\r\n {{t('AccountVerificationDescription', {email: email})}}\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-textbox [control]=\"control('verificationCode', verificationTokenRequestFormGroup)\"></spiderly-textbox>\r\n </div>\r\n <div class=\"col-12\">\r\n <spiderly-button (onClick)=\"codeSubmit()\" [label]=\"t('Submit')\" icon=\"pi pi-verified\"></spiderly-button>\r\n </div>\r\n </form>\r\n </panel-body>\r\n \r\n <panel-footer>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToGmail')\" icon=\"pi pi-external-link\" href=\"https://mail.google.com/mail/u/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n <a pButton class=\"p-button-link\" [label]=\"t('GoToYahoo')\" icon=\"pi pi-external-link\" href=\"https://mail.yahoo.com/d/folders/1/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>\r\n </panel-footer>\r\n <panel-footer>\r\n <div>{{t('ResendVerificationCodeFirstPart')}} <a class=\"link\" (click)=\"resendVerificationToken()\">{{t('ResendVerificationCodeLinkSecondPart')}}</a></div>\r\n </panel-footer>\r\n </spiderly-panel>\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n </div>\r\n </div>\r\n</ng-container>" }]
67
+ }], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.HttpClient }, { type: i2.SpiderlyMessageService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslocoService }, { type: i5.BaseFormService }], propDecorators: { email: [{
68
+ type: Input
69
+ }], onResendVerificationToken: [{
70
+ type: Output
71
+ }], onCodeSubmit: [{
72
+ type: Output
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvcGFydGlhbHMvdmVyaWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvcGFydGlhbHMvdmVyaWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBMkIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFvQixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWdCaEUsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFlBQVk7SUFPMUQsWUFDcUIsT0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsY0FBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsZUFBZ0M7UUFFbkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFUdkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFkckQsc0NBQWlDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBMkIsRUFBRSxDQUFDLENBQUM7UUFHOUUsOEJBQXlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEUsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWFsRSxDQUFDO0lBRVEsUUFBUTtRQUNiLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELHFDQUFxQyxDQUFDLEtBQStCO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLE9BQU8sR0FBWSxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBRTNHLElBQUcsT0FBTyxFQUFDO1lBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQzFHO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBdENRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHNPQzNCekMsODVFQXNDZSwyQ0RuQlAsWUFBWSw4QkFDWixhQUFhLHFxQkFDYixXQUFXLDhCQUNYLG1CQUFtQiw4QkFDbkIsc0JBQXNCLHM2QkFDdEIsa0JBQWtCOzs0RkFHYiw0QkFBNEI7a0JBYnhDLFNBQVM7K0JBQ0ksc0JBQXNCLGNBRXBCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNyQjtpU0FLUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0kseUJBQXlCO3NCQUFsQyxNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBLZXlWYWx1ZURpZmZlcnMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgQmFzZUZvcm1Db3B5IH0gZnJvbSAnLi4vLi4vYmFzZS1mb3JtL2Jhc2UtZm9ybSBjb3B5JztcclxuaW1wb3J0IHsgQmFzZUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTcGlkZXJseUZvcm1Hcm91cCB9IGZyb20gJy4uLy4uL3NwaWRlcmx5LWZvcm0tY29udHJvbC9zcGlkZXJseS1mb3JtLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBTcGlkZXJseUNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29udHJvbHMvc3BpZGVybHktY29udHJvbHMubW9kdWxlJztcclxuaW1wb3J0IHsgVmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvc2VjdXJpdHktZW50aXRpZXMnO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zcGlkZXJseS1tZXNzYWdlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3ZlcmlmaWNhdGlvbi13cmFwcGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92ZXJpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBQcmltZW5nTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgU3BpZGVybHlDb250cm9sc01vZHVsZSxcclxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmUsXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZXJpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db3B5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHZlcmlmaWNhdGlvblRva2VuUmVxdWVzdEZvcm1Hcm91cCA9IG5ldyBTcGlkZXJseUZvcm1Hcm91cDxWZXJpZmljYXRpb25Ub2tlblJlcXVlc3Q+KHt9KTtcclxuXHJcbiAgICBASW5wdXQoKSBlbWFpbDogc3RyaW5nO1xyXG4gICAgQE91dHB1dCgpIG9uUmVzZW5kVmVyaWZpY2F0aW9uVG9rZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uQ29kZVN1Ym1pdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBkaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXHJcbiAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVzc2FnZVNlcnZpY2U6IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXIsIFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGJhc2VGb3JtU2VydmljZTogQmFzZUZvcm1TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgICBzdXBlcihkaWZmZXJzLCBodHRwLCBtZXNzYWdlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIHJvdXRlciwgcm91dGUsIHRyYW5zbG9jb1NlcnZpY2UsIGJhc2VGb3JtU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICB0aGlzLmluaXRWZXJpZmljYXRpb25Ub2tlblJlcXVlc3RGb3JtR3JvdXAobmV3IFZlcmlmaWNhdGlvblRva2VuUmVxdWVzdCh7ZW1haWw6IHRoaXMuZW1haWx9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFZlcmlmaWNhdGlvblRva2VuUmVxdWVzdEZvcm1Hcm91cChtb2RlbDogVmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0KXtcclxuICAgICAgICB0aGlzLmluaXRGb3JtR3JvdXAodGhpcy52ZXJpZmljYXRpb25Ub2tlblJlcXVlc3RGb3JtR3JvdXAsIHRoaXMuZm9ybUdyb3VwLCBtb2RlbCwgbW9kZWwudHlwZU5hbWUsIFtdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb2RlU3VibWl0KCl7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmJhc2VGb3JtU2VydmljZS5jaGVja0Zvcm1Hcm91cFZhbGlkaXR5KHRoaXMudmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0Rm9ybUdyb3VwKTtcclxuICAgIFxyXG4gICAgICAgIGlmKGlzVmFsaWQpe1xyXG4gICAgICAgICAgICB0aGlzLm9uQ29kZVN1Ym1pdC5uZXh0KHRoaXMudmVyaWZpY2F0aW9uVG9rZW5SZXF1ZXN0Rm9ybUdyb3VwLmNvbnRyb2xzLnZlcmlmaWNhdGlvbkNvZGUuZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlc2VuZFZlcmlmaWNhdGlvblRva2VuKCl7XHJcbiAgICAgICAgdGhpcy5vblJlc2VuZFZlcmlmaWNhdGlvblRva2VuLm5leHQobnVsbCk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1pbi1oLXNjcmVlblwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZ1wiIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICBAaWYgKHZlcmlmaWNhdGlvblRva2VuUmVxdWVzdEZvcm1Hcm91cCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BpZGVybHktcGFuZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhbmVsLWhlYWRlciBbdGl0bGVdPVwidCgnQWNjb3VudFZlcmlmaWNhdGlvbkhlYWRlcicpXCIgW3Nob3dCaWdUaXRsZV09XCJ0cnVlXCIgaWNvbj1cInBpIHBpLWVudmVsb3BlXCI+PC9wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPHBhbmVsLWJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj57e3QoJ0FjY291bnRWZXJpZmljYXRpb25UaXRsZScpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dCgnQWNjb3VudFZlcmlmaWNhdGlvbkRlc2NyaXB0aW9uJywge2VtYWlsOiBlbWFpbH0pfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS10ZXh0Ym94IFtjb250cm9sXT1cImNvbnRyb2woJ3ZlcmlmaWNhdGlvbkNvZGUnLCB2ZXJpZmljYXRpb25Ub2tlblJlcXVlc3RGb3JtR3JvdXApXCI+PC9zcGlkZXJseS10ZXh0Ym94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwaWRlcmx5LWJ1dHRvbiAob25DbGljayk9XCJjb2RlU3VibWl0KClcIiBbbGFiZWxdPVwidCgnU3VibWl0JylcIiBpY29uPVwicGkgcGktdmVyaWZpZWRcIj48L3NwaWRlcmx5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wYW5lbC1ib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwYW5lbC1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHBCdXR0b24gY2xhc3M9XCJwLWJ1dHRvbi1saW5rXCIgW2xhYmVsXT1cInQoJ0dvVG9HbWFpbCcpXCIgaWNvbj1cInBpIHBpLWV4dGVybmFsLWxpbmtcIiBocmVmPVwiaHR0cHM6Ly9tYWlsLmdvb2dsZS5jb20vbWFpbC91L1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHBCdXR0b24gY2xhc3M9XCJwLWJ1dHRvbi1saW5rXCIgW2xhYmVsXT1cInQoJ0dvVG9ZYWhvbycpXCIgaWNvbj1cInBpIHBpLWV4dGVybmFsLWxpbmtcIiBocmVmPVwiaHR0cHM6Ly9tYWlsLnlhaG9vLmNvbS9kL2ZvbGRlcnMvMS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcGFuZWwtZm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYW5lbC1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3t0KCdSZXNlbmRWZXJpZmljYXRpb25Db2RlRmlyc3RQYXJ0Jyl9fSA8YSBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwicmVzZW5kVmVyaWZpY2F0aW9uVG9rZW4oKVwiPnt7dCgnUmVzZW5kVmVyaWZpY2F0aW9uQ29kZUxpbmtTZWNvbmRQYXJ0Jyl9fTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BhbmVsLWZvb3Rlcj5cclxuICAgICAgICAgICAgICAgIDwvc3BpZGVybHktcGFuZWw+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgPCEtLSBUT0RPIEZUOiBBZGQgc2tlbGV0b24gLS0+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
@@ -0,0 +1,59 @@
1
+ import { Component } from '@angular/core';
2
+ import { BaseFormCopy } from '../../base-form/base-form copy';
3
+ import { SpiderlyFormGroup } from '../../spiderly-form-control/spiderly-form-control';
4
+ import { Registration } from '../../../entities/security-entities';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../../../services/spiderly-message.service";
8
+ import * as i3 from "@angular/router";
9
+ import * as i4 from "@jsverse/transloco";
10
+ import * as i5 from "../../../services/base-form.service";
11
+ import * as i6 from "../../../services/app-layout-base.service";
12
+ import * as i7 from "../../../services/auth-base.service";
13
+ import * as i8 from "@angular/forms";
14
+ import * as i9 from "../partials/auth.component";
15
+ import * as i10 from "../../../controls/spiderly-textbox/spiderly-textbox.component";
16
+ import * as i11 from "../../spiderly-buttons/spiderly-button/spiderly-button.component";
17
+ import * as i12 from "../partials/registration-verification.component";
18
+ export class RegistrationComponent extends BaseFormCopy {
19
+ constructor(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService, layoutService, authService) {
20
+ super(differs, http, messageService, changeDetectorRef, router, route, translocoService, baseFormService);
21
+ this.differs = differs;
22
+ this.http = http;
23
+ this.messageService = messageService;
24
+ this.changeDetectorRef = changeDetectorRef;
25
+ this.router = router;
26
+ this.route = route;
27
+ this.translocoService = translocoService;
28
+ this.baseFormService = baseFormService;
29
+ this.layoutService = layoutService;
30
+ this.authService = authService;
31
+ this.registrationFormGroup = new SpiderlyFormGroup({});
32
+ this.showEmailSentDialog = false;
33
+ }
34
+ ngOnInit() {
35
+ this.initRegistrationFormGroup(new Registration({}));
36
+ }
37
+ initRegistrationFormGroup(model) {
38
+ this.initFormGroup(this.registrationFormGroup, this.formGroup, model, model.typeName, []);
39
+ }
40
+ companyNameChange(companyName) {
41
+ this.companyName = companyName;
42
+ }
43
+ sendRegistrationVerificationEmail() {
44
+ let isFormGroupValid = this.baseFormService.checkFormGroupValidity(this.registrationFormGroup);
45
+ if (isFormGroupValid == false)
46
+ return;
47
+ // const returnUrl = this.route.snapshot.queryParams['returnUrl'] || '';
48
+ this.authService.sendRegistrationVerificationEmail(this.registrationFormGroup.getRawValue()).subscribe(() => {
49
+ this.showEmailSentDialog = true;
50
+ });
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i1.HttpClient }, { token: i2.SpiderlyMessageService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.TranslocoService }, { token: i5.BaseFormService }, { token: i6.LayoutBaseService }, { token: i7.AuthBaseService }], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: RegistrationComponent, selector: "app-registration", usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (registrationFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0;\">\r\n <spiderly-textbox [control]=\"control('email', registrationFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div class=\"mb-4 gap-5\">\r\n <div class=\"text-center\" style=\"font-size: smaller;\">\r\n {{t('AgreementsOnRegister')}} <b routerLink=\"/user-agreement\" class=\"primary-color cursor-pointer\">{{t('UserAgreement')}}</b> {{t('and')}} <b routerLink=\"/privacy-policy\" class=\"primary-color cursor-pointer\">{{t('PrivacyPolicy')}}</b>.\r\n </div>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('AgreeAndJoin')\" (onClick)=\"sendRegistrationVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button [label]=\"t('AlreadyHasAccount', {companyName: companyName})\" routerLink=\"/login\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <registration-verification [email]=\"registrationFormGroup.controls.email.getRawValue()\"></registration-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>", dependencies: [{ kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i9.AuthComponent, selector: "auth", inputs: ["showGoogleAuth"], outputs: ["onCompanyNameChange"] }, { kind: "component", type: i10.SpiderlyTextboxComponent, selector: "spiderly-textbox", inputs: ["showButton", "buttonIcon"], outputs: ["onButtonClick"] }, { kind: "component", type: i11.SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "component", type: i12.RegistrationVerificationComponent, selector: "registration-verification", inputs: ["email"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegistrationComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'app-registration', template: "<ng-container *transloco=\"let t\">\r\n @if (registrationFormGroup != null) {\r\n @if (showEmailSentDialog == false) {\r\n <auth (onCompanyNameChange)=\"companyNameChange($event)\">\r\n <form [formGroup]=\"formGroup\" style=\"margin-bottom: 16px;\"> <!-- FT: We are not loading anything from the server here so we don't need defer block -->\r\n <div class=\"col-12\" style=\"padding-left: 0; padding-right: 0;\">\r\n <spiderly-textbox [control]=\"control('email', registrationFormGroup)\"></spiderly-textbox>\r\n </div>\r\n \r\n <div class=\"mb-4 gap-5\">\r\n <div class=\"text-center\" style=\"font-size: smaller;\">\r\n {{t('AgreementsOnRegister')}} <b routerLink=\"/user-agreement\" class=\"primary-color cursor-pointer\">{{t('UserAgreement')}}</b> {{t('and')}} <b routerLink=\"/privacy-policy\" class=\"primary-color cursor-pointer\">{{t('PrivacyPolicy')}}</b>.\r\n </div>\r\n </div>\r\n \r\n <div style=\"display: flex; flex-direction: column; gap: 16px;\">\r\n <spiderly-button [label]=\"t('AgreeAndJoin')\" (onClick)=\"sendRegistrationVerificationEmail()\" [outlined]=\"true\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n <!-- TODO FT: Add possibility to change this name from the specific project -->\r\n <spiderly-button [label]=\"t('AlreadyHasAccount', {companyName: companyName})\" routerLink=\"/login\" [style]=\"{width: '100%'}\"></spiderly-button>\r\n </div>\r\n </form>\r\n </auth>\r\n }\r\n @else {\r\n <registration-verification [email]=\"registrationFormGroup.controls.email.getRawValue()\"></registration-verification>\r\n }\r\n }\r\n @else {\r\n <!-- TODO FT: Add skeleton -->\r\n }\r\n</ng-container>" }]
58
+ }], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i1.HttpClient }, { type: i2.SpiderlyMessageService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslocoService }, { type: i5.BaseFormService }, { type: i6.LayoutBaseService }, { type: i7.AuthBaseService }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9hdXRoL3JlZ2lzdHJhdGlvbi9yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgvcmVnaXN0cmF0aW9uL3JlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFCLFNBQVMsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFLdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRbkUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7SUFNbkQsWUFDdUIsT0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsY0FBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDNUMsYUFBZ0MsRUFDL0IsV0FBNEI7UUFFcEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFYdkYsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDNUMsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWZ4QywwQkFBcUIsR0FBRyxJQUFJLGlCQUFpQixDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBR2hFLHdCQUFtQixHQUFZLEtBQUssQ0FBQztJQWVyQyxDQUFDO0lBRVEsUUFBUTtRQUNiLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFtQjtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUNBQWlDO1FBQzdCLElBQUksZ0JBQWdCLEdBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV4RyxJQUFJLGdCQUFnQixJQUFJLEtBQUs7WUFDekIsT0FBTztRQUVYLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBM0NRLHFCQUFxQjttR0FBckIscUJBQXFCLCtFQ2hCbEMsd2dFQThCZTs7NEZEZEYscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBLZXlWYWx1ZURpZmZlcnMsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgTGF5b3V0QmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAtbGF5b3V0LWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUZvcm1Db3B5IH0gZnJvbSAnLi4vLi4vYmFzZS1mb3JtL2Jhc2UtZm9ybSBjb3B5JztcclxuaW1wb3J0IHsgU3BpZGVybHlGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9zcGlkZXJseS1mb3JtLWNvbnRyb2wvc3BpZGVybHktZm9ybS1jb250cm9sJztcclxuaW1wb3J0IHsgUmVnaXN0cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvc2VjdXJpdHktZW50aXRpZXMnO1xyXG5pbXBvcnQgeyBTcGlkZXJseU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3BpZGVybHktbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1yZWdpc3RyYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvcHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcmVnaXN0cmF0aW9uRm9ybUdyb3VwID0gbmV3IFNwaWRlcmx5Rm9ybUdyb3VwPFJlZ2lzdHJhdGlvbj4oe30pO1xyXG5cclxuICAgIGNvbXBhbnlOYW1lOiBzdHJpbmc7XHJcbiAgICBzaG93RW1haWxTZW50RGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVzc2FnZVNlcnZpY2U6IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UsIFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyLCBcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBiYXNlRm9ybVNlcnZpY2U6IEJhc2VGb3JtU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0QmFzZVNlcnZpY2UsIFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhCYXNlU2VydmljZSwgXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihkaWZmZXJzLCBodHRwLCBtZXNzYWdlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIHJvdXRlciwgcm91dGUsIHRyYW5zbG9jb1NlcnZpY2UsIGJhc2VGb3JtU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICB0aGlzLmluaXRSZWdpc3RyYXRpb25Gb3JtR3JvdXAobmV3IFJlZ2lzdHJhdGlvbih7fSkpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpbml0UmVnaXN0cmF0aW9uRm9ybUdyb3VwKG1vZGVsOiBSZWdpc3RyYXRpb24pe1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Hcm91cCh0aGlzLnJlZ2lzdHJhdGlvbkZvcm1Hcm91cCwgdGhpcy5mb3JtR3JvdXAsIG1vZGVsLCBtb2RlbC50eXBlTmFtZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhbnlOYW1lQ2hhbmdlKGNvbXBhbnlOYW1lOiBzdHJpbmcpe1xyXG4gICAgICAgIHRoaXMuY29tcGFueU5hbWUgPSBjb21wYW55TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kUmVnaXN0cmF0aW9uVmVyaWZpY2F0aW9uRW1haWwoKSB7XHJcbiAgICAgICAgbGV0IGlzRm9ybUdyb3VwVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmJhc2VGb3JtU2VydmljZS5jaGVja0Zvcm1Hcm91cFZhbGlkaXR5KHRoaXMucmVnaXN0cmF0aW9uRm9ybUdyb3VwKTtcclxuXHJcbiAgICAgICAgaWYgKGlzRm9ybUdyb3VwVmFsaWQgPT0gZmFsc2UpIFxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IHJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8ICcnO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2VuZFJlZ2lzdHJhdGlvblZlcmlmaWNhdGlvbkVtYWlsKHRoaXMucmVnaXN0cmF0aW9uRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0VtYWlsU2VudERpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XHJcbiAgICBAaWYgKHJlZ2lzdHJhdGlvbkZvcm1Hcm91cCAhPSBudWxsKSB7XHJcbiAgICAgICAgQGlmIChzaG93RW1haWxTZW50RGlhbG9nID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIDxhdXRoIChvbkNvbXBhbnlOYW1lQ2hhbmdlKT1cImNvbXBhbnlOYW1lQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiPiA8IS0tIEZUOiBXZSBhcmUgbm90IGxvYWRpbmcgYW55dGhpbmcgZnJvbSB0aGUgc2VydmVyIGhlcmUgc28gd2UgZG9uJ3QgbmVlZCBkZWZlciBibG9jayAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDA7IHBhZGRpbmctcmlnaHQ6IDA7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS10ZXh0Ym94IFtjb250cm9sXT1cImNvbnRyb2woJ2VtYWlsJywgcmVnaXN0cmF0aW9uRm9ybUdyb3VwKVwiPjwvc3BpZGVybHktdGV4dGJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCBnYXAtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGxlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dCgnQWdyZWVtZW50c09uUmVnaXN0ZXInKX19IDxiIHJvdXRlckxpbms9XCIvdXNlci1hZ3JlZW1lbnRcIiBjbGFzcz1cInByaW1hcnktY29sb3IgY3Vyc29yLXBvaW50ZXJcIj57e3QoJ1VzZXJBZ3JlZW1lbnQnKX19PC9iPiB7e3QoJ2FuZCcpfX0gPGIgcm91dGVyTGluaz1cIi9wcml2YWN5LXBvbGljeVwiIGNsYXNzPVwicHJpbWFyeS1jb2xvciBjdXJzb3ItcG9pbnRlclwiPnt7dCgnUHJpdmFjeVBvbGljeScpfX08L2I+LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNnB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BpZGVybHktYnV0dG9uIFtsYWJlbF09XCJ0KCdBZ3JlZUFuZEpvaW4nKVwiIChvbkNsaWNrKT1cInNlbmRSZWdpc3RyYXRpb25WZXJpZmljYXRpb25FbWFpbCgpXCIgW291dGxpbmVkXT1cInRydWVcIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9XCI+PC9zcGlkZXJseS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVE9ETyBGVDogQWRkIHBvc3NpYmlsaXR5IHRvIGNoYW5nZSB0aGlzIG5hbWUgZnJvbSB0aGUgc3BlY2lmaWMgcHJvamVjdCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwaWRlcmx5LWJ1dHRvbiBbbGFiZWxdPVwidCgnQWxyZWFkeUhhc0FjY291bnQnLCB7Y29tcGFueU5hbWU6IGNvbXBhbnlOYW1lfSlcIiByb3V0ZXJMaW5rPVwiL2xvZ2luXCIgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfVwiPjwvc3BpZGVybHktYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2F1dGg+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgPHJlZ2lzdHJhdGlvbi12ZXJpZmljYXRpb24gW2VtYWlsXT1cInJlZ2lzdHJhdGlvbkZvcm1Hcm91cC5jb250cm9scy5lbWFpbC5nZXRSYXdWYWx1ZSgpXCI+PC9yZWdpc3RyYXRpb24tdmVyaWZpY2F0aW9uPlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICA8IS0tIFRPRE8gRlQ6IEFkZCBza2VsZXRvbiAtLT5cclxuICAgIH1cclxuPC9uZy1jb250YWluZXI+Il19