@posiwise/admin-module 0.0.3

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 (283) hide show
  1. package/README.md +7 -0
  2. package/assets/scss/_bootstrap_modules.scss +40 -0
  3. package/assets/scss/_custom-bootstrap.scss +13 -0
  4. package/assets/scss/_dashboard.scss +31 -0
  5. package/assets/scss/_dynamic-styles.scss +534 -0
  6. package/assets/scss/_plugins.scss +3 -0
  7. package/assets/scss/_public-pages.scss +7 -0
  8. package/assets/scss/_shared.scss +3 -0
  9. package/assets/scss/_variables.scss +5 -0
  10. package/assets/scss/common/landing-page-a/landing-page-style-1.scss +670 -0
  11. package/assets/scss/common/landing-page-b/banner.scss +141 -0
  12. package/assets/scss/common/landing-page-b/contact-us.scss +167 -0
  13. package/assets/scss/common/landing-page-b/explainer.scss +75 -0
  14. package/assets/scss/common/landing-page-b/explainer2.scss +35 -0
  15. package/assets/scss/common/landing-page-b/header.scss +56 -0
  16. package/assets/scss/common/landing-page-b/landing-page-style-2.scss +20 -0
  17. package/assets/scss/custom-bootstrap/_badge.scss +468 -0
  18. package/assets/scss/custom-bootstrap/_bootstrap_variables.scss +30 -0
  19. package/assets/scss/custom-bootstrap/_buttons.scss +84 -0
  20. package/assets/scss/custom-bootstrap/_card.scss +319 -0
  21. package/assets/scss/custom-bootstrap/_carousel.scss +6 -0
  22. package/assets/scss/custom-bootstrap/_form_select.scss +7 -0
  23. package/assets/scss/custom-bootstrap/_forms.scss +337 -0
  24. package/assets/scss/custom-bootstrap/_links.scss +7 -0
  25. package/assets/scss/custom-bootstrap/_modal.scss +16 -0
  26. package/assets/scss/custom-bootstrap/_navbar.scss +42 -0
  27. package/assets/scss/custom-bootstrap/_popover.scss +10 -0
  28. package/assets/scss/custom-bootstrap/_progress.scss +12 -0
  29. package/assets/scss/custom-bootstrap/_reboot.scss +93 -0
  30. package/assets/scss/custom-bootstrap/_type.scss +202 -0
  31. package/assets/scss/dashboard/_admin.scss +15 -0
  32. package/assets/scss/dashboard/_animations.scss +20 -0
  33. package/assets/scss/dashboard/_bootstrap-social.scss +641 -0
  34. package/assets/scss/dashboard/_chat.scss +250 -0
  35. package/assets/scss/dashboard/_coming-soon.scss +34 -0
  36. package/assets/scss/dashboard/_components.scss +229 -0
  37. package/assets/scss/dashboard/_email.scss +184 -0
  38. package/assets/scss/dashboard/_fixed-navbar.scss +18 -0
  39. package/assets/scss/dashboard/_gallery.scss +1201 -0
  40. package/assets/scss/dashboard/_helper.scss +736 -0
  41. package/assets/scss/dashboard/_horizontal-timeline.scss +314 -0
  42. package/assets/scss/dashboard/_icons.scss +107 -0
  43. package/assets/scss/dashboard/_layout.scss +23 -0
  44. package/assets/scss/dashboard/_misc.scss +220 -0
  45. package/assets/scss/dashboard/_notifications.scss +27 -0
  46. package/assets/scss/dashboard/_palette.scss +308 -0
  47. package/assets/scss/dashboard/_profile.scss +36 -0
  48. package/assets/scss/dashboard/_responsive.scss +209 -0
  49. package/assets/scss/dashboard/_search.scss +33 -0
  50. package/assets/scss/dashboard/_select.scss +16 -0
  51. package/assets/scss/dashboard/_sidebar-content.scss +632 -0
  52. package/assets/scss/dashboard/_tables.scss +17 -0
  53. package/assets/scss/dashboard/_tabs.scss +151 -0
  54. package/assets/scss/dashboard/_ui-switch.scss +6 -0
  55. package/assets/scss/dashboard/_upload.scss +249 -0
  56. package/assets/scss/dashboard/_utilities.scss +105 -0
  57. package/assets/scss/dashboard/_vertical-timeline.scss +1261 -0
  58. package/assets/scss/dashboard/mixins/_buttons.scss +78 -0
  59. package/assets/scss/dashboard/mixins/_colors.scss +29 -0
  60. package/assets/scss/dashboard/mixins/_custom.scss +34 -0
  61. package/assets/scss/dashboard/mixins/_shadows.scss +62 -0
  62. package/assets/scss/dashboard/mixins/_type.scss +16 -0
  63. package/assets/scss/dashboard/mixins/_typography.scss +29 -0
  64. package/assets/scss/dashboard/mixins/_utilities.scss +129 -0
  65. package/assets/scss/dashboard/mixins/_vendor-prefixes.scss +71 -0
  66. package/assets/scss/plugins/_plugin-nouislider.scss +199 -0
  67. package/assets/scss/plugins/_toastr.scss +71 -0
  68. package/assets/scss/plugins/perfect-scrollbar/_main.scss +3 -0
  69. package/assets/scss/plugins/perfect-scrollbar/_mixins.scss +135 -0
  70. package/assets/scss/plugins/perfect-scrollbar/_ps-custom.scss +134 -0
  71. package/assets/scss/plugins/perfect-scrollbar/_themes.scss +23 -0
  72. package/assets/scss/plugins/perfect-scrollbar/_variables.scss +19 -0
  73. package/assets/scss/public-pages/_buttons.scss +136 -0
  74. package/assets/scss/public-pages/_input-fields.scss +29 -0
  75. package/assets/scss/public-pages/_layout.scss +108 -0
  76. package/assets/scss/public-pages/mixins/_buttons.scss +28 -0
  77. package/assets/scss/shared/_modal.scss +28 -0
  78. package/assets/scss/shared/_prime-ng-tables.scss +107 -0
  79. package/assets/scss/shared/_prime-ng.scss +5100 -0
  80. package/assets/scss/variables/_app-colors-variables.scss +760 -0
  81. package/assets/scss/variables/_branding-variables.scss +93 -0
  82. package/assets/scss/variables/_dashboard-variables.scss +96 -0
  83. package/assets/scss/variables/_generic-variables.scss +33 -0
  84. package/assets/scss/variables/_landing-page-new-variables.scss +11 -0
  85. package/assets/scss/variables/_primeng-variables.scss +190 -0
  86. package/esm2020/admin-module.mjs +5 -0
  87. package/esm2020/index.mjs +85 -0
  88. package/esm2020/lib/admin-guard.service.mjs +44 -0
  89. package/esm2020/lib/admin-module.routing.mjs +706 -0
  90. package/esm2020/lib/admin.module.mjs +328 -0
  91. package/esm2020/lib/admin.service.mjs +411 -0
  92. package/esm2020/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +86 -0
  93. package/esm2020/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +72 -0
  94. package/esm2020/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.mjs +26 -0
  95. package/esm2020/lib/components/config/global-config-details/global-config-details.component.mjs +61 -0
  96. package/esm2020/lib/components/config/global-config-list/global-config-list.component.mjs +86 -0
  97. package/esm2020/lib/components/config/global-config-tabs/global-config-tabs.component.mjs +24 -0
  98. package/esm2020/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +96 -0
  99. package/esm2020/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.mjs +24 -0
  100. package/esm2020/lib/components/credentials/credentials/credentials.component.mjs +81 -0
  101. package/esm2020/lib/components/credentials/credentials-details/credentials-details.component.mjs +70 -0
  102. package/esm2020/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +31 -0
  103. package/esm2020/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +87 -0
  104. package/esm2020/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +82 -0
  105. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +214 -0
  106. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +86 -0
  107. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +56 -0
  108. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +83 -0
  109. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +124 -0
  110. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +83 -0
  111. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +84 -0
  112. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +83 -0
  113. package/esm2020/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +85 -0
  114. package/esm2020/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +24 -0
  115. package/esm2020/lib/components/faqs/faqs-list/faqs-list.component.mjs +289 -0
  116. package/esm2020/lib/components/faqs/faqs-tabs/faqs-tabs.component.mjs +24 -0
  117. package/esm2020/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +80 -0
  118. package/esm2020/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +95 -0
  119. package/esm2020/lib/components/generic/generic-insight/generic-insight.component.mjs +11 -0
  120. package/esm2020/lib/components/generic/generic-misc/generic-misc.component.mjs +73 -0
  121. package/esm2020/lib/components/generic/generic-tabs/generic-tabs.component.mjs +31 -0
  122. package/esm2020/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +97 -0
  123. package/esm2020/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.mjs +24 -0
  124. package/esm2020/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +88 -0
  125. package/esm2020/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +77 -0
  126. package/esm2020/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +236 -0
  127. package/esm2020/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +73 -0
  128. package/esm2020/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +30 -0
  129. package/esm2020/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +167 -0
  130. package/esm2020/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +97 -0
  131. package/esm2020/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +38 -0
  132. package/esm2020/lib/components/permissions/permissions-details/permissions-details.component.mjs +83 -0
  133. package/esm2020/lib/components/permissions/permissions-list/permissions-list.component.mjs +76 -0
  134. package/esm2020/lib/components/permissions/permissions-tabs/permissions-tabs.component.mjs +31 -0
  135. package/esm2020/lib/components/permissions/role-details/role-details.component.mjs +117 -0
  136. package/esm2020/lib/components/permissions/roles-list/roles-list.component.mjs +83 -0
  137. package/esm2020/lib/components/products/product-details/product-details.component.mjs +305 -0
  138. package/esm2020/lib/components/products/products-insight/products-insight.component.mjs +46 -0
  139. package/esm2020/lib/components/products/products-list/products-list.component.mjs +142 -0
  140. package/esm2020/lib/components/products/products-tabs/products-tabs.component.mjs +28 -0
  141. package/esm2020/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +55 -0
  142. package/esm2020/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +122 -0
  143. package/esm2020/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +125 -0
  144. package/esm2020/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +174 -0
  145. package/esm2020/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +210 -0
  146. package/esm2020/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +60 -0
  147. package/esm2020/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +98 -0
  148. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +100 -0
  149. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +48 -0
  150. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.mjs +18 -0
  151. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +48 -0
  152. package/esm2020/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +301 -0
  153. package/esm2020/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.mjs +35 -0
  154. package/esm2020/lib/components/tags/tags-category/tags-category.component.mjs +125 -0
  155. package/esm2020/lib/components/tags/tags-list/tags-list.component.mjs +139 -0
  156. package/esm2020/lib/components/tags/tags-tabs/tags-tabs.component.mjs +32 -0
  157. package/esm2020/lib/components/tips/tip-detail/tip-detail.component.mjs +75 -0
  158. package/esm2020/lib/components/tips/tips-list/tips-list.component.mjs +46 -0
  159. package/esm2020/lib/components/tips/tips-tabs/tips-tabs.component.mjs +25 -0
  160. package/esm2020/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +101 -0
  161. package/esm2020/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +93 -0
  162. package/esm2020/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +89 -0
  163. package/esm2020/lib/components/tracking/events/events.component.mjs +89 -0
  164. package/esm2020/lib/components/tracking/tracking-tabs/tracking-tabs.component.mjs +49 -0
  165. package/esm2020/lib/components/tracking/versions/versions.component.mjs +100 -0
  166. package/esm2020/lib/components/users/user-details/user-details.component.mjs +148 -0
  167. package/esm2020/lib/components/users/users-insight/users-insight.component.mjs +38 -0
  168. package/esm2020/lib/components/users/users-list/users-list.component.mjs +312 -0
  169. package/esm2020/lib/components/users/users-tabs/users-tabs.component.mjs +32 -0
  170. package/esm2020/lib/shared/interface/contact-us.interface.mjs +2 -0
  171. package/esm2020/lib/shared/interface/credential.interface.mjs +2 -0
  172. package/esm2020/lib/shared/interface/domain-config.interface.mjs +2 -0
  173. package/esm2020/lib/shared/interface/feedback-question.interface.mjs +2 -0
  174. package/esm2020/lib/shared/interface/global-config.interface.mjs +2 -0
  175. package/esm2020/lib/shared/interface/login-notification.interface.mjs +2 -0
  176. package/esm2020/lib/shared/interface/newsletter.interface.mjs +2 -0
  177. package/esm2020/lib/shared/interface/permission.interface.mjs +2 -0
  178. package/esm2020/lib/shared/interface/privacy-tos.interface.mjs +2 -0
  179. package/esm2020/lib/shared/interface/tip.interface.mjs +2 -0
  180. package/esm2020/lib/shared/interface/tracking.interface.mjs +2 -0
  181. package/esm2020/lib/shared/models/admin.model.mjs +337 -0
  182. package/esm2020/lib/shared/routers/routers.mjs +27 -0
  183. package/fesm2015/admin-module.mjs +7762 -0
  184. package/fesm2015/admin-module.mjs.map +1 -0
  185. package/fesm2020/admin-module.mjs +7767 -0
  186. package/fesm2020/admin-module.mjs.map +1 -0
  187. package/index.d.ts +82 -0
  188. package/lib/admin-guard.service.d.ts +14 -0
  189. package/lib/admin-module.routing.d.ts +7 -0
  190. package/lib/admin.module.d.ts +98 -0
  191. package/lib/admin.service.d.ts +145 -0
  192. package/lib/components/TOS/terms-of-service/terms-of-service.component.d.ts +51 -0
  193. package/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.d.ts +24 -0
  194. package/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.d.ts +9 -0
  195. package/lib/components/config/global-config-details/global-config-details.component.d.ts +25 -0
  196. package/lib/components/config/global-config-list/global-config-list.component.d.ts +51 -0
  197. package/lib/components/config/global-config-tabs/global-config-tabs.component.d.ts +7 -0
  198. package/lib/components/contact-us/contact-us-list/contact-us-list.component.d.ts +28 -0
  199. package/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.d.ts +7 -0
  200. package/lib/components/credentials/credentials/credentials.component.d.ts +49 -0
  201. package/lib/components/credentials/credentials-details/credentials-details.component.d.ts +25 -0
  202. package/lib/components/credentials/credentials-tab/credentials-tab.component.d.ts +8 -0
  203. package/lib/components/credentials/subscription-credentials/subscription-credentials.component.d.ts +52 -0
  204. package/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.d.ts +28 -0
  205. package/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.d.ts +67 -0
  206. package/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.d.ts +49 -0
  207. package/lib/components/domain-config/domain-config-details/domain-config-details.component.d.ts +44 -0
  208. package/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.d.ts +49 -0
  209. package/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.d.ts +54 -0
  210. package/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.d.ts +49 -0
  211. package/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.d.ts +49 -0
  212. package/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.d.ts +49 -0
  213. package/lib/components/domain-config/domain-config-list/domain-config-list.component.d.ts +50 -0
  214. package/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.d.ts +7 -0
  215. package/lib/components/faqs/faqs-list/faqs-list.component.d.ts +63 -0
  216. package/lib/components/faqs/faqs-tabs/faqs-tabs.component.d.ts +7 -0
  217. package/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.d.ts +51 -0
  218. package/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.d.ts +56 -0
  219. package/lib/components/generic/generic-insight/generic-insight.component.d.ts +5 -0
  220. package/lib/components/generic/generic-misc/generic-misc.component.d.ts +16 -0
  221. package/lib/components/generic/generic-tabs/generic-tabs.component.d.ts +7 -0
  222. package/lib/components/login-notifications/login-notification-details/login-notification-details.component.d.ts +53 -0
  223. package/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.d.ts +7 -0
  224. package/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.d.ts +50 -0
  225. package/lib/components/newsletters/newsletter-details/newsletter-details.component.d.ts +49 -0
  226. package/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.d.ts +77 -0
  227. package/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.d.ts +26 -0
  228. package/lib/components/newsletters/newsletters-insight/newsletters-insight.component.d.ts +15 -0
  229. package/lib/components/newsletters/newsletters-items/newsletters-items.component.d.ts +69 -0
  230. package/lib/components/newsletters/newsletters-list/newsletters-list.component.d.ts +52 -0
  231. package/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.d.ts +9 -0
  232. package/lib/components/permissions/permissions-details/permissions-details.component.d.ts +51 -0
  233. package/lib/components/permissions/permissions-list/permissions-list.component.d.ts +48 -0
  234. package/lib/components/permissions/permissions-tabs/permissions-tabs.component.d.ts +8 -0
  235. package/lib/components/permissions/role-details/role-details.component.d.ts +32 -0
  236. package/lib/components/permissions/roles-list/roles-list.component.d.ts +50 -0
  237. package/lib/components/products/product-details/product-details.component.d.ts +64 -0
  238. package/lib/components/products/products-insight/products-insight.component.d.ts +21 -0
  239. package/lib/components/products/products-list/products-list.component.d.ts +65 -0
  240. package/lib/components/products/products-tabs/products-tabs.component.d.ts +8 -0
  241. package/lib/components/products/users-list-for-product/users-list-for-product.component.d.ts +22 -0
  242. package/lib/components/subscriptions/subscription-agents/subscription-agents.component.d.ts +29 -0
  243. package/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.d.ts +31 -0
  244. package/lib/components/subscriptions/subscription-details/subscription-details.component.d.ts +43 -0
  245. package/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.d.ts +69 -0
  246. package/lib/components/subscriptions/subscription-products/subscription-products.component.d.ts +50 -0
  247. package/lib/components/subscriptions/subscription-users/subscription-users.component.d.ts +57 -0
  248. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.d.ts +40 -0
  249. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.d.ts +22 -0
  250. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.d.ts +6 -0
  251. package/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.d.ts +22 -0
  252. package/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.d.ts +93 -0
  253. package/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.d.ts +8 -0
  254. package/lib/components/tags/tags-category/tags-category.component.d.ts +32 -0
  255. package/lib/components/tags/tags-list/tags-list.component.d.ts +33 -0
  256. package/lib/components/tags/tags-tabs/tags-tabs.component.d.ts +9 -0
  257. package/lib/components/tips/tip-detail/tip-detail.component.d.ts +21 -0
  258. package/lib/components/tips/tips-list/tips-list.component.d.ts +41 -0
  259. package/lib/components/tips/tips-tabs/tips-tabs.component.d.ts +9 -0
  260. package/lib/components/tracking/ahoy-events/ahoy-events.component.d.ts +35 -0
  261. package/lib/components/tracking/ahoy-messages/ahoy-messages.component.d.ts +28 -0
  262. package/lib/components/tracking/ahoy-visits/ahoy-visits.component.d.ts +28 -0
  263. package/lib/components/tracking/events/events.component.d.ts +28 -0
  264. package/lib/components/tracking/tracking-tabs/tracking-tabs.component.d.ts +8 -0
  265. package/lib/components/tracking/versions/versions.component.d.ts +34 -0
  266. package/lib/components/users/user-details/user-details.component.d.ts +33 -0
  267. package/lib/components/users/users-insight/users-insight.component.d.ts +17 -0
  268. package/lib/components/users/users-list/users-list.component.d.ts +94 -0
  269. package/lib/components/users/users-tabs/users-tabs.component.d.ts +11 -0
  270. package/lib/shared/interface/contact-us.interface.d.ts +16 -0
  271. package/lib/shared/interface/credential.interface.d.ts +37 -0
  272. package/lib/shared/interface/domain-config.interface.d.ts +120 -0
  273. package/lib/shared/interface/feedback-question.interface.d.ts +10 -0
  274. package/lib/shared/interface/global-config.interface.d.ts +11 -0
  275. package/lib/shared/interface/login-notification.interface.d.ts +15 -0
  276. package/lib/shared/interface/newsletter.interface.d.ts +44 -0
  277. package/lib/shared/interface/permission.interface.d.ts +10 -0
  278. package/lib/shared/interface/privacy-tos.interface.d.ts +12 -0
  279. package/lib/shared/interface/tip.interface.d.ts +15 -0
  280. package/lib/shared/interface/tracking.interface.d.ts +105 -0
  281. package/lib/shared/models/admin.model.d.ts +29 -0
  282. package/lib/shared/routers/routers.d.ts +25 -0
  283. package/package.json +49 -0
@@ -0,0 +1,124 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, Injector, QueryList, ViewChildren } from '@angular/core';
3
+ import { AdminService } from '../../../../admin.service';
4
+ import { AppAdmin } from '../../../../shared/models/admin.model';
5
+ import { ROUTERS } from '../../../../shared/routers/routers';
6
+ import { AppBaseComponent } from '@posiwise/app-base-component';
7
+ import { CustomUploaderComponent } from '@posiwise/shared-components';
8
+ import { PermissionService } from '@posiwise/common-services';
9
+ import { ValidateForm } from '@posiwise/utils';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../../../admin.service";
12
+ import * as i2 from "@angular/common";
13
+ import * as i3 from "@posiwise/shared-components";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "@ngneat/transloco";
16
+ export class DomainConfigInterfaceComponent extends AppBaseComponent {
17
+ constructor(injector, adminService) {
18
+ super(injector);
19
+ this.adminService = adminService;
20
+ this.submitted = false;
21
+ this.routers = ROUTERS;
22
+ this.childList = [];
23
+ this.form = AppAdmin.domainConfigInterfaceForm();
24
+ }
25
+ ngOnInit() {
26
+ this.subscriptionId = PermissionService.selectedSubscription?.id;
27
+ this.route.params.subscribe(params => {
28
+ this.id = Number(params['id']);
29
+ if (this.id) {
30
+ this.getDomainConfigDetails();
31
+ }
32
+ });
33
+ }
34
+ ngAfterViewInit() {
35
+ this.uploader.changes.subscribe(() => {
36
+ this.childList = this.uploader.toArray();
37
+ });
38
+ }
39
+ get f() {
40
+ return this.form.controls;
41
+ }
42
+ getDomainConfigDetails() {
43
+ this.isLoading = true;
44
+ this.adminService
45
+ .getDomainConfigById(this.id, this.subscriptionId)
46
+ .subscribe((response) => {
47
+ this.data = response;
48
+ this.form.patchValue(this.data);
49
+ })
50
+ .add(() => {
51
+ this.isLoading = false;
52
+ });
53
+ }
54
+ saveFile(event) {
55
+ const item = this.childList.find(x => x.controlName === event.name);
56
+ const formData = new FormData();
57
+ const data = { subscription_id: this.subscriptionId };
58
+ if (event.file) {
59
+ data[event.name] = event.file;
60
+ }
61
+ else {
62
+ data[`remove_${event.name}`] = true;
63
+ }
64
+ // eslint-disable-next-line no-restricted-syntax
65
+ for (const key in data) {
66
+ if (key in data) {
67
+ formData.append(key, data[key]);
68
+ }
69
+ }
70
+ const sub$ = this.id
71
+ ? this.adminService.updateDomainConfig(this.id, formData)
72
+ : this.adminService.createDomainConfig(formData);
73
+ sub$.subscribe(() => {
74
+ this.adminService
75
+ .getDomainConfigById(this.id, this.subscriptionId)
76
+ .subscribe(response => {
77
+ item.clearValues();
78
+ this.data[event.name] = response[event.name];
79
+ });
80
+ }).add(() => {
81
+ item.buttonBusy = false;
82
+ item.onClose();
83
+ });
84
+ }
85
+ onSave() {
86
+ this.submitted = true;
87
+ const data = {
88
+ ...this.form.value,
89
+ subscription_id: this.subscriptionId
90
+ };
91
+ const filteredData = Object.fromEntries(Object.entries(data).filter(([_key, value]) => value !== null && value !== ''));
92
+ const sub$ = this.id
93
+ ? this.adminService.updateDomainConfig(this.id, filteredData)
94
+ : this.adminService.createDomainConfig(filteredData);
95
+ sub$.subscribe({
96
+ next: res => {
97
+ this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));
98
+ this.router.navigate([`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`], {
99
+ queryParams: {
100
+ tabId: 'Build'
101
+ }
102
+ });
103
+ }
104
+ }).add(() => {
105
+ this.submitted = false;
106
+ });
107
+ }
108
+ }
109
+ DomainConfigInterfaceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: DomainConfigInterfaceComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component });
110
+ DomainConfigInterfaceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: DomainConfigInterfaceComponent, selector: "pw-domain-config-interface", viewQueries: [{ propertyName: "uploader", predicate: CustomUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<h3>Look and Feel Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <h5>Color codes</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeFirst' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeFirst' | transloco\"\n name=\"color_code_first\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_first\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_first'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSecond' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSecond' | transloco\"\n name=\"color_code_second\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_second\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_second'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeThird' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeThird' | transloco\"\n name=\"color_code_third\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_third\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_third'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTitles' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTitles' | transloco\"\n name=\"color_code_titles\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_titles\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_titles'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeText' | transloco\"\n name=\"color_code_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarBg' | transloco\"\n name=\"color_code_sidebar_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarText' | transloco\"\n name=\"color_code_sidebar_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsBg' | transloco\"\n name=\"color_code_tabs_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsText' | transloco\"\n name=\"color_code_tabs_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_text'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n <h5 class=\"my-3\">Logos</h5>\n <div>\n <p>\n The following logos are used across our platform in different pages such as the\n header in our public pages and in our dashboard.\n </p>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main'\"\n [previewData]=\"data['logo_main']\"\n controlName=\"logo_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Dark'\"\n [previewData]=\"data['logo_main_dark']\"\n controlName=\"logo_main_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Contrast'\"\n [previewData]=\"data['logo_main_contrast']\"\n controlName=\"logo_main_contrast\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Main'\"\n [previewData]=\"data['logo_squared_main']\"\n controlName=\"logo_squared_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Dark'\"\n [previewData]=\"data['logo_squared_dark']\"\n controlName=\"logo_squared_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Contrast'\"\n [previewData]=\"data['logo_squared_contrast']\"\n controlName=\"logo_squared_contrast\"></pw-custom-uploader>\n </div>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CustomUploaderComponent, selector: "pw-custom-uploader", inputs: ["controlName", "previewData", "aspectRatio", "title"], outputs: ["saveEvent"] }, { kind: "component", type: i3.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.TranslocoPipe, name: "transloco" }] });
111
+ __decorate([
112
+ ValidateForm('form'),
113
+ __metadata("design:type", Function),
114
+ __metadata("design:paramtypes", []),
115
+ __metadata("design:returntype", void 0)
116
+ ], DomainConfigInterfaceComponent.prototype, "onSave", null);
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: DomainConfigInterfaceComponent, decorators: [{
118
+ type: Component,
119
+ args: [{ selector: 'pw-domain-config-interface', template: "<h3>Look and Feel Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <h5>Color codes</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeFirst' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeFirst' | transloco\"\n name=\"color_code_first\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_first\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_first'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSecond' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSecond' | transloco\"\n name=\"color_code_second\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_second\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_second'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeThird' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeThird' | transloco\"\n name=\"color_code_third\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_third\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_third'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTitles' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTitles' | transloco\"\n name=\"color_code_titles\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_titles\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_titles'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeText' | transloco\"\n name=\"color_code_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarBg' | transloco\"\n name=\"color_code_sidebar_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarText' | transloco\"\n name=\"color_code_sidebar_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsBg' | transloco\"\n name=\"color_code_tabs_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsText' | transloco\"\n name=\"color_code_tabs_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_text'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n <h5 class=\"my-3\">Logos</h5>\n <div>\n <p>\n The following logos are used across our platform in different pages such as the\n header in our public pages and in our dashboard.\n </p>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main'\"\n [previewData]=\"data['logo_main']\"\n controlName=\"logo_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Dark'\"\n [previewData]=\"data['logo_main_dark']\"\n controlName=\"logo_main_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Contrast'\"\n [previewData]=\"data['logo_main_contrast']\"\n controlName=\"logo_main_contrast\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Main'\"\n [previewData]=\"data['logo_squared_main']\"\n controlName=\"logo_squared_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Dark'\"\n [previewData]=\"data['logo_squared_dark']\"\n controlName=\"logo_squared_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Contrast'\"\n [previewData]=\"data['logo_squared_contrast']\"\n controlName=\"logo_squared_contrast\"></pw-custom-uploader>\n </div>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n" }]
120
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.AdminService }]; }, propDecorators: { uploader: [{
121
+ type: ViewChildren,
122
+ args: [CustomUploaderComponent]
123
+ }], onSave: [] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1pbnRlcmZhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2RvbWFpbi1jb25maWcvZG9tYWluLWNvbmZpZy1kZXRhaWxzL2RvbWFpbi1jb25maWctaW50ZXJmYWNlL2RvbWFpbi1jb25maWctaW50ZXJmYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLWludGVyZmFjZS9kb21haW4tY29uZmlnLWludGVyZmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBTS9DLE1BQU0sT0FBTyw4QkFDVCxTQUFRLGdCQUFnQjtJQXFCeEIsWUFBWSxRQUFrQixFQUFVLFlBQTBCO1FBQzlELEtBQUssQ0FB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QVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ1gsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztnQkFDcEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2hCLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNwRTtvQkFDSSxXQUFXLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLE9BQU87cUJBQ2pCO2lCQUNKLENBQ0osQ0FBQztZQUNOLENBQUM7U0FDSixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MkhBMUhRLDhCQUE4QjsrR0FBOUIsOEJBQThCLCtGQUl6Qix1QkFBdUIsdUVDcEJ6QyxtMlRBNE5BO0FEOUdJO0lBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7Ozs0REE0QnBCOzJGQTFIUSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0ksNEJBQTRCOzBIQU9DLFFBQVE7c0JBQTlDLFlBQVk7dUJBQUMsdUJBQXVCO2dCQTJGckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2FkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tYWluQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9kb21haW4tY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBBZG1pbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvYWRtaW4ubW9kZWwnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2Uvc2hhcmVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctZG9tYWluLWNvbmZpZy1pbnRlcmZhY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb21haW4tY29uZmlnLWludGVyZmFjZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRG9tYWluQ29uZmlnSW50ZXJmYWNlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgICBAVmlld0NoaWxkcmVuKEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50KSB1cGxvYWRlcjogUXVlcnlMaXN0PEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50PjtcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcblxuICAgIGlkOiBudW1iZXI7XG5cbiAgICBkYXRhOiBEb21haW5Db25maWc7XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBjaGlsZExpc3QgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcEFkbWluLmRvbWFpbkNvbmZpZ0ludGVyZmFjZUZvcm0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gTnVtYmVyKHBhcmFtc1snaWQnXSk7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RG9tYWluQ29uZmlnRGV0YWlscygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMudXBsb2FkZXIuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGlsZExpc3QgPSB0aGlzLnVwbG9hZGVyLnRvQXJyYXkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREb21haW5Db25maWdEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0RG9tYWluQ29uZmlnQnlJZCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IERvbWFpbkNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVGaWxlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGl0ZW06IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50ID0gdGhpcy5jaGlsZExpc3QuZmluZChcbiAgICAgICAgICAgIHggPT4geC5jb250cm9sTmFtZSA9PT0gZXZlbnQubmFtZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBjb25zdCBkYXRhID0geyBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQgfTtcbiAgICAgICAgaWYgKGV2ZW50LmZpbGUpIHtcbiAgICAgICAgICAgIGRhdGFbZXZlbnQubmFtZV0gPSBldmVudC5maWxlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YVtgcmVtb3ZlXyR7ZXZlbnQubmFtZX1gXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIGRhdGFba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3ViJCA9IHRoaXMuaWRcbiAgICAgICAgICAgID8gdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuaWQsIGZvcm1EYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5jcmVhdGVEb21haW5Db25maWcoZm9ybURhdGEpO1xuXG4gICAgICAgIHN1YiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldERvbWFpbkNvbmZpZ0J5SWQodGhpcy5pZCwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jbGVhclZhbHVlcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFbZXZlbnQubmFtZV0gPSByZXNwb25zZVtldmVudC5uYW1lXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuYWRkKCgpID0+IHtcbiAgICAgICAgICAgIGl0ZW0uYnV0dG9uQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5vbkNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZpbHRlcigoW19rZXksIHZhbHVlXSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5pZCwgZmlsdGVyZWREYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5jcmVhdGVEb21haW5Db25maWcoZmlsdGVyZWREYXRhKTtcbiAgICAgICAgc3ViJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkRvbWFpbkNvbmZpZy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMucm91dGVycy5kb21haW5Db25maWdEZXRhaWxzfSR7dGhpcy5pZCA/IHRoaXMuaWQgOiByZXMuaWR9YF0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSWQ6ICdCdWlsZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8aDM+TG9vayBhbmQgRmVlbCBDb25maWc8L2gzPlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5ob3N0X25hbWVcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAobmdTdWJtaXQpPVwib25TYXZlKClcIj5cbiAgICA8aDU+Q29sb3IgY29kZXM8L2g1PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVGaXJzdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbG9yQ29kZUZpcnN0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbG9yX2NvZGVfZmlyc3RcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfZmlyc3RcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX2ZpcnN0J10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbG9yQ29kZVNlY29uZCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbG9yQ29kZVNlY29uZCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3NlY29uZFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV9zZWNvbmRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3NlY29uZCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVUaGlyZCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbG9yQ29kZVRoaXJkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbG9yX2NvZGVfdGhpcmRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfdGhpcmRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3RoaXJkJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbG9yQ29kZVRpdGxlcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbG9yQ29kZVRpdGxlcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3RpdGxlc1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV90aXRsZXNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3RpdGxlcyddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVUZXh0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlVGV4dCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3RleHRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfdGV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbG9yX2NvZGVfdGV4dCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVTaWRlYmFyQmcnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVTaWRlYmFyQmcnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV9zaWRlYmFyX2JnXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX3NpZGViYXJfYmdcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3NpZGViYXJfYmcnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlU2lkZWJhclRleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVTaWRlYmFyVGV4dCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3NpZGViYXJfdGV4dFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV9zaWRlYmFyX3RleHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3NpZGViYXJfdGV4dCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVUYWJzQmcnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVUYWJzQmcnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90YWJzX2JnXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX3RhYnNfYmdcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3RhYnNfYmcnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGFic1RleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVUYWJzVGV4dCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3RhYnNfdGV4dFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV90YWJzX3RleHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3RhYnNfdGV4dCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGg1IGNsYXNzPVwibXktM1wiPkxvZ29zPC9oNT5cbiAgICA8ZGl2PlxuICAgICAgPHA+XG4gICAgICAgIFRoZSBmb2xsb3dpbmcgbG9nb3MgYXJlIHVzZWQgYWNyb3NzIG91ciBwbGF0Zm9ybSBpbiBkaWZmZXJlbnQgcGFnZXMgc3VjaCBhcyB0aGVcbiAgICAgICAgaGVhZGVyIGluIG91ciBwdWJsaWMgcGFnZXMgYW5kIGluIG91ciBkYXNoYm9hcmQuXG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiXG4gICAgICBtYXRjaEhlaWdodD1cImNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29NYWluJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTG9nb01haW4nIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgW2FzcGVjdFJhdGlvXT1cIidmdWxsTG9nbydcIlxuICAgICAgICAgIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIE1haW4nXCJcbiAgICAgICAgICBbcHJldmlld0RhdGFdPVwiZGF0YVsnbG9nb19tYWluJ11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19tYWluXCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29NYWluRGFyaycgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkxvZ29NYWluRGFyaycgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciBbYXNwZWN0UmF0aW9dPVwiJ2Z1bGxMb2dvJ1wiXG4gICAgICAgICAgKHNhdmVFdmVudCk9XCJzYXZlRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0xvZ28gTWFpbiBEYXJrJ1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fbWFpbl9kYXJrJ11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19tYWluX2RhcmtcIj48L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTNcIj5cbiAgICAgICAgPGxhYmVsPnt7ICdBZG1pbi5Eb21haW5Db25maWcuTG9nb01haW5Db250cmFzdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkxvZ29NYWluQ29udHJhc3QnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgW2FzcGVjdFJhdGlvXT1cIidmdWxsTG9nbydcIlxuICAgICAgICAgIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIE1haW4gQ29udHJhc3QnXCJcbiAgICAgICAgICBbcHJldmlld0RhdGFdPVwiZGF0YVsnbG9nb19tYWluX2NvbnRyYXN0J11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19tYWluX2NvbnRyYXN0XCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29TcXVhcmVkTWFpbicgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkxvZ29TcXVhcmVkTWFpbicgfCB0cmFuc2xvY29cbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHB3LWN1c3RvbS11cGxvYWRlciAoc2F2ZUV2ZW50KT1cInNhdmVGaWxlKCRldmVudClcIlxuICAgICAgICAgIFt0aXRsZV09XCInTG9nbyBTcXVhcmVkIE1haW4nXCJcbiAgICAgICAgICBbcHJldmlld0RhdGFdPVwiZGF0YVsnbG9nb19zcXVhcmVkX21haW4nXVwiXG4gICAgICAgICAgY29udHJvbE5hbWU9XCJsb2dvX3NxdWFyZWRfbWFpblwiPjwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvU3F1YXJlZERhcmsnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvU3F1YXJlZERhcmsnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJzYXZlRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0xvZ28gU3F1YXJlZCBEYXJrJ1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fc3F1YXJlZF9kYXJrJ11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19zcXVhcmVkX2RhcmtcIj48L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTNcIj5cbiAgICAgICAgPGxhYmVsPnt7ICdBZG1pbi5Eb21haW5Db25maWcuTG9nb1NxdWFyZWRDb250cmFzdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkxvZ29TcXVhcmVkQ29udHJhc3QnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJzYXZlRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0xvZ28gU3F1YXJlZCBDb250cmFzdCdcIlxuICAgICAgICAgIFtwcmV2aWV3RGF0YV09XCJkYXRhWydsb2dvX3NxdWFyZWRfY29udHJhc3QnXVwiXG4gICAgICAgICAgY29udHJvbE5hbWU9XCJsb2dvX3NxdWFyZWRfY29udHJhc3RcIj48L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L25nLWNvbnRhaW5lcj5cbjxkaXYgKm5nSWY9XCIhZGF0YT8uaG9zdF9uYW1lICYmICFpc0xvYWRpbmdcIj5cbiAgPHB3LW5vLWRhdGEgW21lc3NhZ2VdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5FbmFibGVDb25maWdUYWInIHwgdHJhbnNsb2NvXCI+IDwvcHctbm8tZGF0YT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,83 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, Injector } from '@angular/core';
3
+ import { AdminService } from '../../../../admin.service';
4
+ import { AppAdmin } from '../../../../shared/models/admin.model';
5
+ import { ROUTERS } from '../../../../shared/routers/routers';
6
+ import { AppBaseComponent } from '@posiwise/app-base-component';
7
+ import { PermissionService } from '@posiwise/common-services';
8
+ import { ValidateForm } from '@posiwise/utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../../../admin.service";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "@posiwise/shared-components";
13
+ import * as i4 from "@angular/forms";
14
+ import * as i5 from "@ngneat/transloco";
15
+ export class DomainConfigOrganizationComponent extends AppBaseComponent {
16
+ constructor(injector, adminService) {
17
+ super(injector);
18
+ this.adminService = adminService;
19
+ this.submitted = false;
20
+ this.routers = ROUTERS;
21
+ this.form = AppAdmin.domainConfigOrganizationForm();
22
+ }
23
+ ngOnInit() {
24
+ this.subscriptionId = PermissionService.selectedSubscription?.id;
25
+ this.route.params.subscribe(params => {
26
+ this.id = Number(params['id']);
27
+ if (this.id) {
28
+ this.getDomainConfigDetails();
29
+ }
30
+ });
31
+ }
32
+ get f() {
33
+ return this.form.controls;
34
+ }
35
+ getDomainConfigDetails() {
36
+ this.isLoading = true;
37
+ this.adminService
38
+ .getDomainConfigById(this.id, this.subscriptionId)
39
+ .subscribe((response) => {
40
+ this.data = response;
41
+ this.form.patchValue(this.data);
42
+ })
43
+ .add(() => {
44
+ this.isLoading = false;
45
+ });
46
+ }
47
+ onSave() {
48
+ this.submitted = true;
49
+ const data = {
50
+ ...this.form.value,
51
+ subscription_id: this.subscriptionId
52
+ };
53
+ const filteredData = Object.fromEntries(Object.entries(data).filter(([_, v]) => v !== null && v !== ''));
54
+ const sub$ = this.id
55
+ ? this.adminService.updateDomainConfig(this.id, filteredData)
56
+ : this.adminService.createDomainConfig(filteredData);
57
+ sub$.subscribe({
58
+ next: res => {
59
+ this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));
60
+ this.router.navigate([`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`], {
61
+ queryParams: {
62
+ tabId: 'Integrations'
63
+ }
64
+ });
65
+ }
66
+ }).add(() => {
67
+ this.submitted = false;
68
+ });
69
+ }
70
+ }
71
+ DomainConfigOrganizationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: DomainConfigOrganizationComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component });
72
+ DomainConfigOrganizationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: DomainConfigOrganizationComponent, selector: "pw-domain-config-organization", usesInheritance: true, ngImport: i0, template: "<h3>Organization Related Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyHeader' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyHeader' | transloco\"\n name=\"company_header\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_header\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_header'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyTitle' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyTitle' | transloco\"\n name=\"company_title\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_title'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyKeywords' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyKeywords' | transloco\"\n name=\"company_keywords\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_keywords\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_keywords'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyDescription' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyDescription' | transloco\"\n name=\"company_description\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_description\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_description'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCountry' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCountry' | transloco\"\n name=\"company_country\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_country\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_country'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyAddress' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyAddress' | transloco\"\n name=\"company_address\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_address\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_address'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCity' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCity' | transloco\"\n name=\"company_city\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCityCode' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCityCode' | transloco\"\n name=\"company_city_code\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city_code\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city_code'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyVatNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyVatNumber' | transloco\"\n name=\"company_vat_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_vat_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_vat_number'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyPhoneNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyPhoneNumber' | transloco\"\n name=\"company_phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_phone_number'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.TranslocoPipe, name: "transloco" }] });
73
+ __decorate([
74
+ ValidateForm('form'),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", []),
77
+ __metadata("design:returntype", void 0)
78
+ ], DomainConfigOrganizationComponent.prototype, "onSave", null);
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: DomainConfigOrganizationComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'pw-domain-config-organization', template: "<h3>Organization Related Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyHeader' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyHeader' | transloco\"\n name=\"company_header\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_header\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_header'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyTitle' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyTitle' | transloco\"\n name=\"company_title\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_title'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyKeywords' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyKeywords' | transloco\"\n name=\"company_keywords\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_keywords\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_keywords'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyDescription' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyDescription' | transloco\"\n name=\"company_description\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_description\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_description'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCountry' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCountry' | transloco\"\n name=\"company_country\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_country\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_country'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyAddress' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyAddress' | transloco\"\n name=\"company_address\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_address\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_address'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCity' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCity' | transloco\"\n name=\"company_city\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCityCode' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCityCode' | transloco\"\n name=\"company_city_code\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city_code\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city_code'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyVatNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyVatNumber' | transloco\"\n name=\"company_vat_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_vat_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_vat_number'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyPhoneNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyPhoneNumber' | transloco\"\n name=\"company_phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_phone_number'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n" }]
82
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.AdminService }]; }, propDecorators: { onSave: [] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1vcmdhbml6YXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2RvbWFpbi1jb25maWcvZG9tYWluLWNvbmZpZy1kZXRhaWxzL2RvbWFpbi1jb25maWctb3JnYW5pemF0aW9uL2RvbWFpbi1jb25maWctb3JnYW5pemF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBTS9DLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxnQkFBZ0I7SUFlbkUsWUFBWSxRQUFrQixFQUFVLFlBQTBCO1FBQzlELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURvQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVpsRSxj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QUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzhIQTNFUSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw0RkNmOUMsbWtNQXVJQTtBRHpFSTtJQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7Ozs7K0RBNEJwQjsyRkEzRVEsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNJLCtCQUErQjswSEFtRHpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2FkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tYWluQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9kb21haW4tY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBBZG1pbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvYWRtaW4ubW9kZWwnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctZG9tYWluLWNvbmZpZy1vcmdhbml6YXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRG9tYWluQ29uZmlnT3JnYW5pemF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIGRhdGE6IERvbWFpbkNvbmZpZztcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcEFkbWluLmRvbWFpbkNvbmZpZ09yZ2FuaXphdGlvbkZvcm0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gTnVtYmVyKHBhcmFtc1snaWQnXSk7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RG9tYWluQ29uZmlnRGV0YWlscygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERvbWFpbkNvbmZpZ0RldGFpbHMoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXREb21haW5Db25maWdCeUlkKHRoaXMuaWQsIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogRG9tYWluQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQFZhbGlkYXRlRm9ybSgnZm9ybScpXG4gICAgb25TYXZlKCkge1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWRcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWREYXRhID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YSkuZmlsdGVyKChbXywgdl0pID0+IHYgIT09IG51bGwgJiYgdiAhPT0gJycpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN1YiQgPSB0aGlzLmlkXG4gICAgICAgICAgICA/IHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmlkLCBmaWx0ZXJlZERhdGEpXG4gICAgICAgICAgICA6IHRoaXMuYWRtaW5TZXJ2aWNlLmNyZWF0ZURvbWFpbkNvbmZpZyhmaWx0ZXJlZERhdGEpO1xuICAgICAgICBzdWIkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uRG9tYWluQ29uZmlnLlVwZGF0ZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgICAgICAgICAgICAgICBbYCR7dGhpcy5yb3V0ZXJzLmRvbWFpbkNvbmZpZ0RldGFpbHN9JHt0aGlzLmlkID8gdGhpcy5pZCA6IHJlcy5pZH1gXSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJZDogJ0ludGVncmF0aW9ucydcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8aDM+T3JnYW5pemF0aW9uIFJlbGF0ZWQgQ29uZmlnPC9oMz5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uaG9zdF9uYW1lXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlIZWFkZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55SGVhZGVyJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfaGVhZGVyXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfaGVhZGVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV9oZWFkZXInXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueVRpdGxlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueVRpdGxlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfdGl0bGVcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV90aXRsZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfdGl0bGUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueUtleXdvcmRzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUtleXdvcmRzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfa2V5d29yZHNcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9rZXl3b3Jkc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfa2V5d29yZHMnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfZGVzY3JpcHRpb24nXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55Q291bnRyeScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlDb3VudHJ5JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfY291bnRyeVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55X2NvdW50cnlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2NvdW50cnknXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueUFkZHJlc3MnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55QWRkcmVzcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2FkZHJlc3NcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9hZGRyZXNzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV9hZGRyZXNzJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlDaXR5JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUNpdHknIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV9jaXR5XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfY2l0eVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfY2l0eSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55Q2l0eUNvZGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55Q2l0eUNvZGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV9jaXR5X2NvZGVcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9jaXR5X2NvZGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2NpdHlfY29kZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55VmF0TnVtYmVyJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueVZhdE51bWJlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X3ZhdF9udW1iZXJcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV92YXRfbnVtYmVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV92YXRfbnVtYmVyJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlQaG9uZU51bWJlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlQaG9uZU51bWJlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X3Bob25lX251bWJlclwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55X3Bob25lX251bWJlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfcGhvbmVfbnVtYmVyJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGV4dC1lbmQgbXQtM1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGVmYXVsdCBtZS0yXCJcbiAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiPlxuICAgICAgICB7eyAnQnV0dG9uLkNhbmNlbCcgfCB0cmFuc2xvY28gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj57eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG48ZGl2ICpuZ0lmPVwiIWRhdGE/Lmhvc3RfbmFtZSAmJiAhaXNMb2FkaW5nXCI+XG4gIDxwdy1uby1kYXRhIFttZXNzYWdlXT1cIidBZG1pbi5Eb21haW5Db25maWcuRW5hYmxlQ29uZmlnVGFiJyB8IHRyYW5zbG9jb1wiPiA8L3B3LW5vLWRhdGE+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,84 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, Injector } from '@angular/core';
3
+ import { AdminService } from '../../../../admin.service';
4
+ import { AppAdmin } from '../../../../shared/models/admin.model';
5
+ import { ROUTERS } from '../../../../shared/routers/routers';
6
+ import { AppBaseComponent } from '@posiwise/app-base-component';
7
+ import { PermissionService } from '@posiwise/common-services';
8
+ import { ValidateForm } from '@posiwise/utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../../../admin.service";
11
+ import * as i2 from "primeng/accordion";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "@posiwise/shared-components";
14
+ import * as i5 from "@angular/forms";
15
+ import * as i6 from "@ngneat/transloco";
16
+ export class DomainConfigSecurityComponent extends AppBaseComponent {
17
+ constructor(injector, adminService) {
18
+ super(injector);
19
+ this.adminService = adminService;
20
+ this.submitted = false;
21
+ this.routers = ROUTERS;
22
+ this.form = AppAdmin.domainConfigSecurityForm();
23
+ }
24
+ ngOnInit() {
25
+ this.subscriptionId = PermissionService.selectedSubscription?.id;
26
+ this.route.params.subscribe(params => {
27
+ this.id = Number(params['id']);
28
+ if (this.id) {
29
+ this.getDomainConfigDetails();
30
+ }
31
+ });
32
+ }
33
+ get f() {
34
+ return this.form.controls;
35
+ }
36
+ getDomainConfigDetails() {
37
+ this.isLoading = true;
38
+ this.adminService
39
+ .getDomainConfigById(this.id, this.subscriptionId)
40
+ .subscribe((response) => {
41
+ this.data = response;
42
+ this.form.patchValue(this.data);
43
+ })
44
+ .add(() => {
45
+ this.isLoading = false;
46
+ });
47
+ }
48
+ onSave() {
49
+ this.submitted = true;
50
+ const data = {
51
+ ...this.form.value,
52
+ subscription_id: this.subscriptionId
53
+ };
54
+ const filteredData = Object.fromEntries(Object.entries(data).filter(([_, v]) => v !== null && v !== ''));
55
+ const sub$ = this.id
56
+ ? this.adminService.updateDomainConfig(this.id, filteredData)
57
+ : this.adminService.createDomainConfig(filteredData);
58
+ sub$.subscribe({
59
+ next: res => {
60
+ this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));
61
+ this.router.navigate([`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`], {
62
+ queryParams: {
63
+ tabId: 'Social'
64
+ }
65
+ });
66
+ }
67
+ }).add(() => {
68
+ this.submitted = false;
69
+ });
70
+ }
71
+ }
72
+ DomainConfigSecurityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: DomainConfigSecurityComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component });
73
+ DomainConfigSecurityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: DomainConfigSecurityComponent, selector: "pw-domain-config-security", usesInheritance: true, ngImport: i0, template: "<h3>OAuth Login</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"mt-3\"></div>\n <p-accordion>\n <p-accordionTab [header]=\"'Apple'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginAppleClientId' | transloco\"\n name=\"oauth_login_apple_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_apple_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_apple_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Facebook'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginFacebookClientId' | transloco\"\n name=\"oauth_login_facebook_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_facebook_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_facebook_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginFacebookSecret' | transloco\"\n name=\"oauth_login_facebook_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_facebook_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_facebook_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Google'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginGoogleClientId' | transloco\"\n name=\"oauth_login_google_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_google_client_id\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_google_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginGoogleSecret' | transloco\"\n name=\"oauth_login_google_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_google_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_google_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'LinkedIn'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginLinkedInClientId' | transloco\"\n name=\"oauth_login_linkedin_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_linkedin_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_linkedin_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginLinkedInSecret' | transloco\"\n name=\"oauth_login_linkedin_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_linkedin_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_linkedin_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Microsoft'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginMicrosoftClientId' | transloco\"\n name=\"oauth_login_microsoft_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_microsoft_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_microsoft_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginMicrosoftSecret' | transloco\"\n name=\"oauth_login_microsoft_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_microsoft_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_microsoft_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Twitter'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginTwitterClientId' | transloco\"\n name=\"oauth_login_twitter_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_twitter_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_twitter_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginTwitterSecret' | transloco\"\n name=\"oauth_login_twitter_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_twitter_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_twitter_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "component", type: i2.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i2.AccordionTab, selector: "p-accordionTab", inputs: ["header", "headerStyle", "tabStyle", "contentStyle", "tabStyleClass", "headerStyleClass", "contentStyleClass", "disabled", "cache", "transitionOptions", "iconPos", "selected"], outputs: ["selectedChange"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i6.TranslocoPipe, name: "transloco" }] });
74
+ __decorate([
75
+ ValidateForm('form'),
76
+ __metadata("design:type", Function),
77
+ __metadata("design:paramtypes", []),
78
+ __metadata("design:returntype", void 0)
79
+ ], DomainConfigSecurityComponent.prototype, "onSave", null);
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: DomainConfigSecurityComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'pw-domain-config-security', template: "<h3>OAuth Login</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"mt-3\"></div>\n <p-accordion>\n <p-accordionTab [header]=\"'Apple'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginAppleClientId' | transloco\"\n name=\"oauth_login_apple_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_apple_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_apple_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Facebook'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginFacebookClientId' | transloco\"\n name=\"oauth_login_facebook_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_facebook_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_facebook_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginFacebookSecret' | transloco\"\n name=\"oauth_login_facebook_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_facebook_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_facebook_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Google'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginGoogleClientId' | transloco\"\n name=\"oauth_login_google_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_google_client_id\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_google_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginGoogleSecret' | transloco\"\n name=\"oauth_login_google_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_google_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_google_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'LinkedIn'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginLinkedInClientId' | transloco\"\n name=\"oauth_login_linkedin_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_linkedin_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_linkedin_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginLinkedInSecret' | transloco\"\n name=\"oauth_login_linkedin_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_linkedin_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_linkedin_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Microsoft'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginMicrosoftClientId' | transloco\"\n name=\"oauth_login_microsoft_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_microsoft_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_microsoft_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginMicrosoftSecret' | transloco\"\n name=\"oauth_login_microsoft_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_microsoft_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_microsoft_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab [header]=\"'Twitter'\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginTwitterClientId' | transloco\"\n name=\"oauth_login_twitter_client_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_twitter_client_id\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['oauth_login_twitter_client_id'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [label]=\"'Admin.DomainConfig.OAuthLoginTwitterSecret' | transloco\"\n name=\"oauth_login_twitter_secret\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"oauth_login_twitter_secret\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['oauth_login_twitter_secret'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n" }]
83
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.AdminService }]; }, propDecorators: { onSave: [] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1zZWN1cml0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZG9tYWluLWNvbmZpZy9kb21haW4tY29uZmlnLWRldGFpbHMvZG9tYWluLWNvbmZpZy1zZWN1cml0eS9kb21haW4tY29uZmlnLXNlY3VyaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLXNlY3VyaXR5L2RvbWFpbi1jb25maWctc2VjdXJpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFNL0MsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGdCQUFnQjtJQWUvRCxZQUFZLFFBQWtCLEVBQVUsWUFBMEI7UUFDOUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRG9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBWmxFLGNBQVMsR0FBRyxLQUFLLENBQUM7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Q0FBQzs7MEhBM0VRLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLHdGQ2YxQyxnMlBBK0tBO0FEakhJO0lBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7OzsyREE0QnBCOzJGQTNFUSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0ksMkJBQTJCOzBIQW1EckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vYWRtaW4uc2VydmljZSc7XG5pbXBvcnQgeyBEb21haW5Db25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2RvbWFpbi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscy9hZG1pbi5tb2RlbCc7XG5pbXBvcnQgeyBST1VURVJTIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3JvdXRlcnMvcm91dGVycyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVmFsaWRhdGVGb3JtIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1kb21haW4tY29uZmlnLXNlY3VyaXR5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9tYWluLWNvbmZpZy1zZWN1cml0eS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRG9tYWluQ29uZmlnU2VjdXJpdHlDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogRG9tYWluQ29uZmlnO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZG9tYWluQ29uZmlnU2VjdXJpdHlGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihwYXJhbXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldERvbWFpbkNvbmZpZ0RldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREb21haW5Db25maWdEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0RG9tYWluQ29uZmlnQnlJZCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IERvbWFpbkNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZpbHRlcigoW18sIHZdKSA9PiB2ICE9PSBudWxsICYmIHYgIT09ICcnKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5pZCwgZmlsdGVyZWREYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5jcmVhdGVEb21haW5Db25maWcoZmlsdGVyZWREYXRhKTtcbiAgICAgICAgc3ViJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkRvbWFpbkNvbmZpZy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMucm91dGVycy5kb21haW5Db25maWdEZXRhaWxzfSR7dGhpcy5pZCA/IHRoaXMuaWQgOiByZXMuaWR9YF0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSWQ6ICdTb2NpYWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGgzPk9BdXRoIExvZ2luPC9oMz5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uaG9zdF9uYW1lXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm10LTNcIj48L2Rpdj5cbiAgICA8cC1hY2NvcmRpb24+XG4gICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInQXBwbGUnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLk9BdXRoTG9naW5BcHBsZUNsaWVudElkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9hcHBsZV9jbGllbnRfaWRcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2F1dGhfbG9naW5fYXBwbGVfY2xpZW50X2lkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVkICYmIGZbJ29hdXRoX2xvZ2luX2FwcGxlX2NsaWVudF9pZCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInRmFjZWJvb2snXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLk9BdXRoTG9naW5GYWNlYm9va0NsaWVudElkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9mYWNlYm9va19jbGllbnRfaWRcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2F1dGhfbG9naW5fZmFjZWJvb2tfY2xpZW50X2lkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVkICYmIGZbJ29hdXRoX2xvZ2luX2ZhY2Vib29rX2NsaWVudF9pZCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuT0F1dGhMb2dpbkZhY2Vib29rU2VjcmV0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9mYWNlYm9va19zZWNyZXRcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2F1dGhfbG9naW5fZmFjZWJvb2tfc2VjcmV0XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydvYXV0aF9sb2dpbl9mYWNlYm9va19zZWNyZXQnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ0dvb2dsZSdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuT0F1dGhMb2dpbkdvb2dsZUNsaWVudElkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9nb29nbGVfY2xpZW50X2lkXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9hdXRoX2xvZ2luX2dvb2dsZV9jbGllbnRfaWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ29hdXRoX2xvZ2luX2dvb2dsZV9jbGllbnRfaWQnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLk9BdXRoTG9naW5Hb29nbGVTZWNyZXQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgbmFtZT1cIm9hdXRoX2xvZ2luX2dvb2dsZV9zZWNyZXRcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2F1dGhfbG9naW5fZ29vZ2xlX3NlY3JldFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnb2F1dGhfbG9naW5fZ29vZ2xlX3NlY3JldCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICA8cC1hY2NvcmRpb25UYWIgW2hlYWRlcl09XCInTGlua2VkSW4nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLk9BdXRoTG9naW5MaW5rZWRJbkNsaWVudElkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9saW5rZWRpbl9jbGllbnRfaWRcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2F1dGhfbG9naW5fbGlua2VkaW5fY2xpZW50X2lkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVkICYmIGZbJ29hdXRoX2xvZ2luX2xpbmtlZGluX2NsaWVudF9pZCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuT0F1dGhMb2dpbkxpbmtlZEluU2VjcmV0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9saW5rZWRpbl9zZWNyZXRcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2F1dGhfbG9naW5fbGlua2VkaW5fc2VjcmV0XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydvYXV0aF9sb2dpbl9saW5rZWRpbl9zZWNyZXQnXS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgPHAtYWNjb3JkaW9uVGFiIFtoZWFkZXJdPVwiJ01pY3Jvc29mdCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuT0F1dGhMb2dpbk1pY3Jvc29mdENsaWVudElkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl9taWNyb3NvZnRfY2xpZW50X2lkXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9hdXRoX2xvZ2luX21pY3Jvc29mdF9jbGllbnRfaWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1pbnZhbGlkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXR0ZWQgJiYgZlsnb2F1dGhfbG9naW5fbWljcm9zb2Z0X2NsaWVudF9pZCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuT0F1dGhMb2dpbk1pY3Jvc29mdFNlY3JldCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICBuYW1lPVwib2F1dGhfbG9naW5fbWljcm9zb2Z0X3NlY3JldFwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvYXV0aF9sb2dpbl9taWNyb3NvZnRfc2VjcmV0XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydvYXV0aF9sb2dpbl9taWNyb3NvZnRfc2VjcmV0J10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wLWFjY29yZGlvblRhYj5cbiAgICAgIDxwLWFjY29yZGlvblRhYiBbaGVhZGVyXT1cIidUd2l0dGVyJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5PQXV0aExvZ2luVHdpdHRlckNsaWVudElkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJvYXV0aF9sb2dpbl90d2l0dGVyX2NsaWVudF9pZFwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvYXV0aF9sb2dpbl90d2l0dGVyX2NsaWVudF9pZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCAmJiBmWydvYXV0aF9sb2dpbl90d2l0dGVyX2NsaWVudF9pZCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuT0F1dGhMb2dpblR3aXR0ZXJTZWNyZXQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgbmFtZT1cIm9hdXRoX2xvZ2luX3R3aXR0ZXJfc2VjcmV0XCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9hdXRoX2xvZ2luX3R3aXR0ZXJfc2VjcmV0XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydvYXV0aF9sb2dpbl90d2l0dGVyX3NlY3JldCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgPC9wLWFjY29yZGlvbj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuPGRpdiAqbmdJZj1cIiFkYXRhPy5ob3N0X25hbWUgJiYgIWlzTG9hZGluZ1wiPlxuICA8cHctbm8tZGF0YSBbbWVzc2FnZV09XCInQWRtaW4uRG9tYWluQ29uZmlnLkVuYWJsZUNvbmZpZ1RhYicgfCB0cmFuc2xvY29cIj4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=