@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,148 @@
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 { AppBaseComponent } from '@posiwise/app-base-component';
6
+ import { PermissionService } from '@posiwise/common-services';
7
+ import { ValidateForm } from '@posiwise/utils';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../admin.service";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@posiwise/shared-components";
12
+ import * as i4 from "@posiwise/directives";
13
+ import * as i5 from "@angular/forms";
14
+ import * as i6 from "@ngneat/transloco";
15
+ export class UserDetailsComponent extends AppBaseComponent {
16
+ constructor(adminService, injector) {
17
+ super(injector);
18
+ this.adminService = adminService;
19
+ this.submitted = false;
20
+ this.userRoles = [];
21
+ this.form = AppAdmin.getUsersForm();
22
+ }
23
+ ngOnInit() {
24
+ this.subscriptionId = PermissionService.selectedSubscription?.id;
25
+ this.route.params.subscribe((data) => {
26
+ this.id = +data['id'];
27
+ if (this.id) {
28
+ this.getUserDetails();
29
+ this.getUserRole();
30
+ }
31
+ });
32
+ this.getRoles();
33
+ }
34
+ get f() {
35
+ return this.form.controls;
36
+ }
37
+ getUserDetails() {
38
+ this.adminService.getUserById(this.id, this.subscriptionId).subscribe(user => {
39
+ this.user = user;
40
+ this.user.send_marketing_emails = user.send_marketing_emails || false;
41
+ this.form.patchValue(user);
42
+ });
43
+ }
44
+ getUserRole() {
45
+ this.adminService.getUserRole(this.id, this.subscriptionId).subscribe(response => {
46
+ this.userRoles = response.map(item => {
47
+ return {
48
+ name: item.name,
49
+ id: item.id
50
+ };
51
+ });
52
+ this.form.patchValue({
53
+ roles: this.userRoles.map(x => x.id)
54
+ });
55
+ });
56
+ }
57
+ onSave() {
58
+ this.submitted = true;
59
+ const data = { ...this.form.value };
60
+ delete data.roles;
61
+ if (this.id) {
62
+ this.updateUser(data);
63
+ }
64
+ else {
65
+ this.createUser();
66
+ }
67
+ }
68
+ createUser() {
69
+ this.adminService
70
+ .createUser(this.form.value)
71
+ .subscribe(response => {
72
+ if (response.error) {
73
+ this.toast.error(`${Object.keys(response.error.message)[0]} ${Object.values(response.error.message).join('')}`);
74
+ }
75
+ else {
76
+ this.toast.success(this.translation.translate('Admin.Users.AddedMessage'));
77
+ this.back();
78
+ }
79
+ })
80
+ .add(() => {
81
+ this.submitted = false;
82
+ });
83
+ }
84
+ updateUser(data) {
85
+ this.adminService
86
+ .saveUserDetails({ ...data, subscription_id: this.subscriptionId })
87
+ .subscribe({
88
+ next: () => {
89
+ this.toast.success(this.translation.translate('Admin.Users.UpdatedMessage'));
90
+ this.back();
91
+ },
92
+ error: err => {
93
+ if (err?.error) {
94
+ this.toast.error(err.error);
95
+ }
96
+ }
97
+ })
98
+ .add(() => {
99
+ this.submitted = false;
100
+ });
101
+ }
102
+ getRoles() {
103
+ this.adminService.getRoles({}, this.subscriptionId).subscribe({
104
+ next: response => {
105
+ this.allRoles = response.roles.map((item, index) => {
106
+ return {
107
+ label: item.name,
108
+ value: item.id,
109
+ disabled: index === 0
110
+ };
111
+ });
112
+ },
113
+ error: error => this.toast.showToast(error)
114
+ });
115
+ }
116
+ onRoleChange(event) {
117
+ let ob$;
118
+ if (this.userRoles.length < event.value.length) {
119
+ ob$ = this.adminService.saveUserRole(this.id, event.itemValue, this.subscriptionId);
120
+ }
121
+ else {
122
+ ob$ = this.adminService.deleteUserRole(this.id, event.itemValue, this.subscriptionId);
123
+ }
124
+ ob$.subscribe(() => {
125
+ this.toast.success(this.translation.translate('Admin.Users.UpdatedRole'));
126
+ });
127
+ }
128
+ onDiscard() {
129
+ this.form.reset();
130
+ this.location.back();
131
+ }
132
+ ngOnDestroy() {
133
+ super.ngOnDestroy();
134
+ }
135
+ }
136
+ UserDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: UserDetailsComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
137
+ UserDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: UserDetailsComponent, selector: "pw-user-details", usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard user-details\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">User: {{ user?.first_name || user?.email }}</h3>\n </div>\n\n <div class=\"mt-3\">\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.Users.Tooltip.FirstName'|transloco\"\n [label]=\"'Label.FirstName' | transloco\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Users.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n id=\"first_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['first_name'].errors }\" />\n </pw-input-container>\n\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.PreferredName'|transloco\"\n label=\"Preferred Name\"\n name=\"preferred_name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"preferred_name\"\n id=\"preferred_name\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['preferred_name'].errors\n }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.LastName'|transloco\"\n [label]=\"'Label.LastName' | transloco\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Users.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n id=\"last_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['last_name'].errors }\" />\n </pw-input-container>\n\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.Email'|transloco\"\n [label]=\"'Label.Email' | transloco\"\n name=\"email\"\n [errorMsg]=\"'Admin.Users.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n id=\"email\"\n [ngClass]=\"{ 'is-invalid': submitted && f['email'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.PhoneNumber'|transloco\"\n [label]=\"'Admin.Users.PhoneNumber' | transloco\"\n name=\"phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['phone_number'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-6\"\n *ngIf=\"id\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.UserRoles'|transloco\"\n [label]=\"'Admin.Users.UserRoles' | transloco\"\n name=\"roles\"\n [errorMsg]=\"'Admin.Users.Validation.UserRole' | transloco\">\n <p-multiSelect [options]=\"allRoles\"\n formControlName=\"roles\"\n (onChange)=\"onRoleChange($event)\"\n appendTo=\"body\"></p-multiSelect>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.MarketingEmails'|transloco\"\n [label]=\"'Admin.Users.MarketingEmails' | transloco\"\n name=\"send_marketing_emails\">\n <ui-switch formControlName=\"send_marketing_emails\"\n name=\"send_marketing_emails\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['send_marketing_emails'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\"\n *rbacAllow=\"'SuperAdmin'\">\n <pw-input-container [showTooltip]=\"true\"\n [labelClass]=\"'text-warning'\"\n [tooltipText]=\"'Admin.Users.Tooltip.Alpha'|transloco\"\n [label]=\"'Admin.Users.Alpha' | transloco\"\n name=\"alpha\">\n <ui-switch formControlName=\"alpha\"\n name=\"alpha\"\n [ngClass]=\"{ 'is-invalid': submitted && f['alpha'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\">\n <pw-input-container [showTooltip]=\"true\"\n [labelClass]=\"'text-warning'\"\n [tooltipText]=\"'Admin.Users.Tooltip.Beta'|transloco\"\n [label]=\"'Admin.Users.Beta' | transloco\"\n name=\"beta\">\n <ui-switch formControlName=\"beta\"\n name=\"beta\"\n [ngClass]=\"{ 'is-invalid': submitted && f['beta'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <pw-input-container [showTooltip]=\"true\"\n [labelClass]=\"'text-warning'\"\n [tooltipText]=\"'Admin.Users.Tooltip.Blocked'|transloco\"\n [label]=\"'Admin.Users.Blocked' | transloco\"\n name=\"blocked\">\n <ui-switch formControlName=\"blocked\"\n name=\"blocked\"\n [ngClass]=\"{ 'is-invalid': submitted && f['blocked'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"float-end mb-3 mt-4\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onDiscard()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n class=\"btn btn-primary\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\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.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { 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" }] });
138
+ __decorate([
139
+ ValidateForm('form'),
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", []),
142
+ __metadata("design:returntype", void 0)
143
+ ], UserDetailsComponent.prototype, "onSave", null);
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: UserDetailsComponent, decorators: [{
145
+ type: Component,
146
+ args: [{ selector: 'pw-user-details', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard user-details\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">User: {{ user?.first_name || user?.email }}</h3>\n </div>\n\n <div class=\"mt-3\">\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.Users.Tooltip.FirstName'|transloco\"\n [label]=\"'Label.FirstName' | transloco\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Users.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n id=\"first_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['first_name'].errors }\" />\n </pw-input-container>\n\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.PreferredName'|transloco\"\n label=\"Preferred Name\"\n name=\"preferred_name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"preferred_name\"\n id=\"preferred_name\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['preferred_name'].errors\n }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.LastName'|transloco\"\n [label]=\"'Label.LastName' | transloco\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Users.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n id=\"last_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['last_name'].errors }\" />\n </pw-input-container>\n\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.Email'|transloco\"\n [label]=\"'Label.Email' | transloco\"\n name=\"email\"\n [errorMsg]=\"'Admin.Users.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n id=\"email\"\n [ngClass]=\"{ 'is-invalid': submitted && f['email'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.PhoneNumber'|transloco\"\n [label]=\"'Admin.Users.PhoneNumber' | transloco\"\n name=\"phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['phone_number'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-6\"\n *ngIf=\"id\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.UserRoles'|transloco\"\n [label]=\"'Admin.Users.UserRoles' | transloco\"\n name=\"roles\"\n [errorMsg]=\"'Admin.Users.Validation.UserRole' | transloco\">\n <p-multiSelect [options]=\"allRoles\"\n formControlName=\"roles\"\n (onChange)=\"onRoleChange($event)\"\n appendTo=\"body\"></p-multiSelect>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Users.Tooltip.MarketingEmails'|transloco\"\n [label]=\"'Admin.Users.MarketingEmails' | transloco\"\n name=\"send_marketing_emails\">\n <ui-switch formControlName=\"send_marketing_emails\"\n name=\"send_marketing_emails\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['send_marketing_emails'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\"\n *rbacAllow=\"'SuperAdmin'\">\n <pw-input-container [showTooltip]=\"true\"\n [labelClass]=\"'text-warning'\"\n [tooltipText]=\"'Admin.Users.Tooltip.Alpha'|transloco\"\n [label]=\"'Admin.Users.Alpha' | transloco\"\n name=\"alpha\">\n <ui-switch formControlName=\"alpha\"\n name=\"alpha\"\n [ngClass]=\"{ 'is-invalid': submitted && f['alpha'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\">\n <pw-input-container [showTooltip]=\"true\"\n [labelClass]=\"'text-warning'\"\n [tooltipText]=\"'Admin.Users.Tooltip.Beta'|transloco\"\n [label]=\"'Admin.Users.Beta' | transloco\"\n name=\"beta\">\n <ui-switch formControlName=\"beta\"\n name=\"beta\"\n [ngClass]=\"{ 'is-invalid': submitted && f['beta'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-2\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <pw-input-container [showTooltip]=\"true\"\n [labelClass]=\"'text-warning'\"\n [tooltipText]=\"'Admin.Users.Tooltip.Blocked'|transloco\"\n [label]=\"'Admin.Users.Blocked' | transloco\"\n name=\"blocked\">\n <ui-switch formControlName=\"blocked\"\n name=\"blocked\"\n [ngClass]=\"{ 'is-invalid': submitted && f['blocked'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"float-end mb-3 mt-4\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onDiscard()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n class=\"btn btn-primary\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n" }]
147
+ }], ctorParameters: function () { return [{ type: i1.AdminService }, { type: i0.Injector }]; }, propDecorators: { onSave: [] } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2VyLWRldGFpbHMvdXNlci1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2VyLWRldGFpbHMvdXNlci1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFLdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFldEQsWUFBb0IsWUFBMEIsRUFBRSxRQUFrQjtRQUM5RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVo5QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBUVYsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQU0zQixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FB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QW9CO3FHQUFwQixvQkFBb0IsOEVDaEJqQyxvdU9Bc0tBO0FEM0ZJO0lBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7OztrREFVcEI7MkZBckVRLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSxpQkFBaUI7MEhBK0QzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9hZG1pbi5tb2RlbCc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyLCBSb2xlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctdXNlci1kZXRhaWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyRGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIHVzZXI6IFVzZXIgfCBhbnk7XG5cbiAgICBhbGxSb2xlczogU2VsZWN0SXRlbVtdO1xuXG4gICAgcHJpdmF0ZSB1c2VyUm9sZXM6IFJvbGVbXSA9IFtdO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcEFkbWluLmdldFVzZXJzRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKGRhdGE6IFVzZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSArZGF0YVsnaWQnXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRVc2VyRGV0YWlscygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VXNlclJvbGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZ2V0Um9sZXMoKTtcbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVzZXJEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5nZXRVc2VyQnlJZCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgICAgICAgdGhpcy51c2VyLnNlbmRfbWFya2V0aW5nX2VtYWlscyA9IHVzZXIuc2VuZF9tYXJrZXRpbmdfZW1haWxzIHx8IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodXNlcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXNlclJvbGUoKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmdldFVzZXJSb2xlKHRoaXMuaWQsIHRoaXMuc3Vic2NyaXB0aW9uSWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXJSb2xlcyA9IHJlc3BvbnNlLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgcm9sZXM6IHRoaXMudXNlclJvbGVzLm1hcCh4ID0+IHguaWQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQFZhbGlkYXRlRm9ybSgnZm9ybScpXG4gICAgb25TYXZlKCkge1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMuZm9ybS52YWx1ZSB9O1xuICAgICAgICBkZWxldGUgZGF0YS5yb2xlcztcbiAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVXNlcihkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlVXNlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlVXNlcigpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGVVc2VyKHRoaXMuZm9ybS52YWx1ZSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7T2JqZWN0LmtleXMocmVzcG9uc2UuZXJyb3IubWVzc2FnZSlbMF19ICR7T2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5lcnJvci5tZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICApLmpvaW4oJycpfWBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlVzZXJzLkFkZGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVVc2VyKGRhdGEpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5zYXZlVXNlckRldGFpbHMoeyAuLi5kYXRhLCBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5Vc2Vycy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycj8uZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZXJyb3IoZXJyLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Um9sZXMoKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmdldFJvbGVzKHt9LCB0aGlzLnN1YnNjcmlwdGlvbklkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxsUm9sZXMgPSByZXNwb25zZS5yb2xlcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogaXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogaW5kZXggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IgPT4gdGhpcy50b2FzdC5zaG93VG9hc3QoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUm9sZUNoYW5nZShldmVudCkge1xuICAgICAgICBsZXQgb2IkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgICAgIGlmICh0aGlzLnVzZXJSb2xlcy5sZW5ndGggPCBldmVudC52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIG9iJCA9IHRoaXMuYWRtaW5TZXJ2aWNlLnNhdmVVc2VyUm9sZSh0aGlzLmlkLCBldmVudC5pdGVtVmFsdWUsIHRoaXMuc3Vic2NyaXB0aW9uSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2IkID0gdGhpcy5hZG1pblNlcnZpY2UuZGVsZXRlVXNlclJvbGUodGhpcy5pZCwgZXZlbnQuaXRlbVZhbHVlLCB0aGlzLnN1YnNjcmlwdGlvbklkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9iJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5Vc2Vycy5VcGRhdGVkUm9sZScpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EaXNjYXJkKCkge1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQgdXNlci1kZXRhaWxzXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWUtYXV0byBjb2wteHMtNlwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgICAgICBjbGFzcz1cInByZXZpb3VzXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICAgICAgICA8aDMgY2xhc3M9XCJcIj5Vc2VyOiB7eyB1c2VyPy5maXJzdF9uYW1lIHx8IHVzZXI/LmVtYWlsIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Vc2Vycy5Ub29sdGlwLkZpcnN0TmFtZSd8dHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xhYmVsLkZpcnN0TmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlVzZXJzLlZhbGlkYXRpb24uRmlyc3ROYW1lJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwiZmlyc3RfbmFtZVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2ZpcnN0X25hbWUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uVXNlcnMuVG9vbHRpcC5QcmVmZXJyZWROYW1lJ3x0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiUHJlZmVycmVkIE5hbWVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJwcmVmZXJyZWRfbmFtZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcmVmZXJyZWRfbmFtZVwiXG4gICAgICAgICAgICAgICAgICBpZD1cInByZWZlcnJlZF9uYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydwcmVmZXJyZWRfbmFtZSddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Vc2Vycy5Ub29sdGlwLkxhc3ROYW1lJ3x0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTGFiZWwuTGFzdE5hbWUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwibGFzdF9uYW1lXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0FkbWluLlVzZXJzLlZhbGlkYXRpb24uTGFzdE5hbWUnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhc3RfbmFtZVwiXG4gICAgICAgICAgICAgICAgICBpZD1cImxhc3RfbmFtZVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2xhc3RfbmFtZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Vc2Vycy5Ub29sdGlwLkVtYWlsJ3x0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTGFiZWwuRW1haWwnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uVXNlcnMuVmFsaWRhdGlvbi5FbWFpbCcgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2VtYWlsJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS02XCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uVXNlcnMuVG9vbHRpcC5QaG9uZU51bWJlcid8dHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLlVzZXJzLlBob25lTnVtYmVyJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgbmFtZT1cInBob25lX251bWJlclwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZV9udW1iZXJcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydwaG9uZV9udW1iZXInXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIlxuICAgICAgICAgICAgICAqbmdJZj1cImlkXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uVXNlcnMuVG9vbHRpcC5Vc2VyUm9sZXMnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Vc2Vycy5Vc2VyUm9sZXMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwicm9sZXNcIlxuICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCInQWRtaW4uVXNlcnMuVmFsaWRhdGlvbi5Vc2VyUm9sZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICAgICAgICA8cC1tdWx0aVNlbGVjdCBbb3B0aW9uc109XCJhbGxSb2xlc1wiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyb2xlc1wiXG4gICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwib25Sb2xlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCI+PC9wLW11bHRpU2VsZWN0PlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0yXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uVXNlcnMuVG9vbHRpcC5NYXJrZXRpbmdFbWFpbHMnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Vc2Vycy5NYXJrZXRpbmdFbWFpbHMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwic2VuZF9tYXJrZXRpbmdfZW1haWxzXCI+XG4gICAgICAgICAgICAgICAgPHVpLXN3aXRjaCBmb3JtQ29udHJvbE5hbWU9XCJzZW5kX21hcmtldGluZ19lbWFpbHNcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInNlbmRfbWFya2V0aW5nX2VtYWlsc1wiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnc2VuZF9tYXJrZXRpbmdfZW1haWxzJ10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgPC91aS1zd2l0Y2g+XG4gICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTJcIlxuICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1N1cGVyQWRtaW4nXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbENsYXNzXT1cIid0ZXh0LXdhcm5pbmcnXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlVzZXJzLlRvb2x0aXAuQWxwaGEnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Vc2Vycy5BbHBoYScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJhbHBoYVwiPlxuICAgICAgICAgICAgICAgIDx1aS1zd2l0Y2ggZm9ybUNvbnRyb2xOYW1lPVwiYWxwaGFcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImFscGhhXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnYWxwaGEnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0yXCI+XG4gICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbENsYXNzXT1cIid0ZXh0LXdhcm5pbmcnXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLlVzZXJzLlRvb2x0aXAuQmV0YSd8dHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLlVzZXJzLkJldGEnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiYmV0YVwiPlxuICAgICAgICAgICAgICAgIDx1aS1zd2l0Y2ggZm9ybUNvbnRyb2xOYW1lPVwiYmV0YVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYmV0YVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2JldGEnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0yXCJcbiAgICAgICAgICAgICAgKnJiYWNBbGxvdz1cIidTdWJzY3JpcHRpb25TdXBlckFkbWluJ1wiPlxuICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxDbGFzc109XCIndGV4dC13YXJuaW5nJ1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Vc2Vycy5Ub29sdGlwLkJsb2NrZWQnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Vc2Vycy5CbG9ja2VkJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgbmFtZT1cImJsb2NrZWRcIj5cbiAgICAgICAgICAgICAgICA8dWktc3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImJsb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImJsb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydibG9ja2VkJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1lbmQgbWItMyBtdC00XCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25EaXNjYXJkKClcIj5cbiAgICAgICAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInUGFnZXMuQWRtaW4uVXNlcnMuRWRpdCdcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlxuICAgICAgICAgICAgICB7eyAnQnV0dG9uLlNhdmUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Component, Injector } from '@angular/core';
2
+ import { AdminService } from '../../../admin.service';
3
+ import { AppBaseComponent } from '@posiwise/app-base-component';
4
+ import { PermissionService } from '@posiwise/common-services';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../admin.service";
7
+ import * as i2 from "@angular/common";
8
+ export class UserInsightComponent extends AppBaseComponent {
9
+ constructor(adminService, injector) {
10
+ super(injector);
11
+ this.adminService = adminService;
12
+ }
13
+ ngOnInit() {
14
+ this.subscriptionId = PermissionService.selectedSubscription.id;
15
+ this.getChartData();
16
+ }
17
+ getChartData() {
18
+ this.isLoading = true;
19
+ this.adminService
20
+ .getUsersInsight(this.subscriptionId)
21
+ .subscribe(response => {
22
+ this.graph = response;
23
+ })
24
+ .add(() => {
25
+ this.isLoading = false;
26
+ });
27
+ }
28
+ ngOnDestroy() {
29
+ super.ngOnDestroy();
30
+ }
31
+ }
32
+ UserInsightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: UserInsightComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
33
+ UserInsightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: UserInsightComponent, selector: "pw-admin-user-insight", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-sm-12 mt-3\">\n <h2 class=\"card-title\">User Statistics</h2>\n <ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n </ng-template>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: UserInsightComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'pw-admin-user-insight', template: "<div class=\"row\">\n <div class=\"col-sm-12 mt-3\">\n <h2 class=\"card-title\">User Statistics</h2>\n <ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n </ng-template>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n" }]
37
+ }], ctorParameters: function () { return [{ type: i1.AdminService }, { type: i0.Injector }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtaW5zaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMtaW5zaWdodC91c2Vycy1pbnNpZ2h0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2Vycy1pbnNpZ2h0L3VzZXJzLWluc2lnaHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQU05RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBT3RELFlBQW9CLFlBQTBCLEVBQUUsUUFBa0I7UUFDOUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREEsaUJBQVksR0FBWixZQUFZLENBQWM7SUFFOUMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFlBQVk7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVk7YUFDWixlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUNwQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O2lIQTlCUSxvQkFBb0I7cUdBQXBCLG9CQUFvQixvRkNYakMseVpBYUE7MkZERmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxvdGx5IH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1hZG1pbi11c2VyLWluc2lnaHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2Vycy1pbnNpZ2h0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySW5zaWdodENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZ3JhcGg6IFBsb3RseS5GaWd1cmU7XG5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uLmlkO1xuICAgICAgICB0aGlzLmdldENoYXJ0RGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2hhcnREYXRhKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VXNlcnNJbnNpZ2h0KHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBtdC0zXCI+XG4gICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZVwiPlVzZXIgU3RhdGlzdGljczwvaDI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyYXBoXCI+XG4gICAgICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwiZ3JhcGg/LmRhdGFcIlxuICAgICAgICBbbGF5b3V0XT1cImdyYXBoPy5sYXlvdXRcIj48L3Bsb3RseS1wbG90PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuIl19