@posiwise/admin-module 0.0.46 → 0.0.48

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 (109) hide show
  1. package/esm2022/lib/admin-guard.service.mjs +44 -0
  2. package/{esm2020 → esm2022}/lib/admin-module.routing.mjs +5 -5
  3. package/esm2022/lib/admin.module.mjs +361 -0
  4. package/{esm2020 → esm2022}/lib/admin.service.mjs +5 -5
  5. package/{esm2020 → esm2022}/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +5 -5
  7. package/{esm2020 → esm2022}/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.mjs +5 -5
  8. package/{esm2020 → esm2022}/lib/components/config/global-config-details/global-config-details.component.mjs +5 -5
  9. package/{esm2020 → esm2022}/lib/components/config/global-config-list/global-config-list.component.mjs +5 -5
  10. package/{esm2020 → esm2022}/lib/components/config/global-config-tabs/global-config-tabs.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +5 -5
  12. package/{esm2020 → esm2022}/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/components/credentials/credentials/credentials.component.mjs +5 -5
  14. package/{esm2020 → esm2022}/lib/components/credentials/credentials-details/credentials-details.component.mjs +5 -5
  15. package/{esm2020 → esm2022}/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +5 -5
  16. package/{esm2020 → esm2022}/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +5 -5
  17. package/{esm2020 → esm2022}/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +5 -5
  19. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +5 -5
  21. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +5 -5
  22. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +5 -5
  23. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +5 -5
  24. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +5 -5
  25. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +5 -5
  26. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +5 -5
  27. package/{esm2020 → esm2022}/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +4 -4
  28. package/esm2022/lib/components/faqs/faqs-list/faqs-list.component.mjs +294 -0
  29. package/{esm2020 → esm2022}/lib/components/faqs/faqs-tabs/faqs-tabs.component.mjs +4 -4
  30. package/{esm2020 → esm2022}/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +5 -5
  31. package/{esm2020 → esm2022}/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +5 -5
  32. package/{esm2020 → esm2022}/lib/components/generic/generic-insight/generic-insight.component.mjs +4 -4
  33. package/{esm2020 → esm2022}/lib/components/generic/generic-misc/generic-misc.component.mjs +5 -5
  34. package/{esm2020 → esm2022}/lib/components/generic/generic-tabs/generic-tabs.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +5 -5
  36. package/{esm2020 → esm2022}/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +5 -5
  39. package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +240 -0
  40. package/{esm2020 → esm2022}/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +5 -5
  41. package/{esm2020 → esm2022}/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +5 -5
  43. package/{esm2020 → esm2022}/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/components/permissions/permissions-details/permissions-details.component.mjs +5 -5
  46. package/{esm2020 → esm2022}/lib/components/permissions/permissions-list/permissions-list.component.mjs +5 -5
  47. package/{esm2020 → esm2022}/lib/components/permissions/permissions-tabs/permissions-tabs.component.mjs +5 -5
  48. package/{esm2020 → esm2022}/lib/components/permissions/role-details/role-details.component.mjs +5 -5
  49. package/{esm2020 → esm2022}/lib/components/permissions/roles-list/roles-list.component.mjs +5 -5
  50. package/{esm2020 → esm2022}/lib/components/products/product-details/product-details.component.mjs +5 -5
  51. package/{esm2020 → esm2022}/lib/components/products/products-insight/products-insight.component.mjs +5 -5
  52. package/{esm2020 → esm2022}/lib/components/products/products-list/products-list.component.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/components/products/products-tabs/products-tabs.component.mjs +5 -5
  54. package/{esm2020 → esm2022}/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +5 -5
  55. package/{esm2020 → esm2022}/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +5 -5
  56. package/{esm2020 → esm2022}/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +5 -5
  57. package/{esm2020 → esm2022}/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +5 -5
  58. package/{esm2020 → esm2022}/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +5 -5
  59. package/{esm2020 → esm2022}/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +5 -5
  60. package/{esm2020 → esm2022}/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +5 -5
  61. package/{esm2020 → esm2022}/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +5 -5
  62. package/{esm2020 → esm2022}/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +5 -5
  63. package/{esm2020 → esm2022}/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +5 -5
  65. package/{esm2020 → esm2022}/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +5 -5
  66. package/{esm2020 → esm2022}/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/components/tags/tags-category/tags-category.component.mjs +5 -5
  68. package/{esm2020 → esm2022}/lib/components/tags/tags-list/tags-list.component.mjs +5 -5
  69. package/{esm2020 → esm2022}/lib/components/tags/tags-tabs/tags-tabs.component.mjs +5 -5
  70. package/{esm2020 → esm2022}/lib/components/tips/tip-detail/tip-detail.component.mjs +5 -5
  71. package/{esm2020 → esm2022}/lib/components/tips/tips-list/tips-list.component.mjs +5 -5
  72. package/{esm2020 → esm2022}/lib/components/tips/tips-tabs/tips-tabs.component.mjs +4 -4
  73. package/{esm2020 → esm2022}/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +5 -5
  74. package/{esm2020 → esm2022}/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +5 -5
  75. package/{esm2020 → esm2022}/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +5 -5
  76. package/{esm2020 → esm2022}/lib/components/tracking/events/events.component.mjs +5 -5
  77. package/{esm2020 → esm2022}/lib/components/tracking/tracking-tabs/tracking-tabs.component.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/components/tracking/versions/versions.component.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/components/users/user-details/user-details.component.mjs +5 -5
  80. package/{esm2020 → esm2022}/lib/components/users/users-insight/users-insight.component.mjs +5 -5
  81. package/{esm2020 → esm2022}/lib/components/users/users-list/users-list.component.mjs +5 -5
  82. package/{esm2020 → esm2022}/lib/components/users/users-tabs/users-tabs.component.mjs +5 -5
  83. package/{fesm2020 → fesm2022}/posiwise-admin-module.mjs +445 -444
  84. package/fesm2022/posiwise-admin-module.mjs.map +1 -0
  85. package/lib/admin-guard.service.d.ts +2 -2
  86. package/lib/admin.module.d.ts +2 -2
  87. package/package.json +11 -26
  88. package/esm2020/lib/admin-guard.service.mjs +0 -44
  89. package/esm2020/lib/admin.module.mjs +0 -361
  90. package/esm2020/lib/components/faqs/faqs-list/faqs-list.component.mjs +0 -294
  91. package/esm2020/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +0 -240
  92. package/fesm2015/posiwise-admin-module.mjs +0 -7808
  93. package/fesm2015/posiwise-admin-module.mjs.map +0 -1
  94. package/fesm2020/posiwise-admin-module.mjs.map +0 -1
  95. /package/{esm2020 → esm2022}/index.mjs +0 -0
  96. /package/{esm2020 → esm2022}/lib/shared/interface/contact-us.interface.mjs +0 -0
  97. /package/{esm2020 → esm2022}/lib/shared/interface/credential.interface.mjs +0 -0
  98. /package/{esm2020 → esm2022}/lib/shared/interface/domain-config.interface.mjs +0 -0
  99. /package/{esm2020 → esm2022}/lib/shared/interface/feedback-question.interface.mjs +0 -0
  100. /package/{esm2020 → esm2022}/lib/shared/interface/global-config.interface.mjs +0 -0
  101. /package/{esm2020 → esm2022}/lib/shared/interface/login-notification.interface.mjs +0 -0
  102. /package/{esm2020 → esm2022}/lib/shared/interface/newsletter.interface.mjs +0 -0
  103. /package/{esm2020 → esm2022}/lib/shared/interface/permission.interface.mjs +0 -0
  104. /package/{esm2020 → esm2022}/lib/shared/interface/privacy-tos.interface.mjs +0 -0
  105. /package/{esm2020 → esm2022}/lib/shared/interface/tip.interface.mjs +0 -0
  106. /package/{esm2020 → esm2022}/lib/shared/interface/tracking.interface.mjs +0 -0
  107. /package/{esm2020 → esm2022}/lib/shared/models/admin.model.mjs +0 -0
  108. /package/{esm2020 → esm2022}/lib/shared/routers/routers.mjs +0 -0
  109. /package/{esm2020 → esm2022}/posiwise-admin-module.mjs +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"posiwise-admin-module.mjs","sources":["../../../../libs/admin-module/src/lib/admin.service.ts","../../../../libs/admin-module/src/lib/shared/models/admin.model.ts","../../../../libs/admin-module/src/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.ts","../../../../libs/admin-module/src/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.html","../../../../libs/admin-module/src/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.ts","../../../../libs/admin-module/src/lib/shared/routers/routers.ts","../../../../libs/admin-module/src/lib/components/TOS/terms-of-service/terms-of-service.component.ts","../../../../libs/admin-module/src/lib/components/TOS/terms-of-service/terms-of-service.component.html","../../../../libs/admin-module/src/lib/components/config/global-config-details/global-config-details.component.ts","../../../../libs/admin-module/src/lib/components/config/global-config-details/global-config-details.component.html","../../../../libs/admin-module/src/lib/components/config/global-config-list/global-config-list.component.ts","../../../../libs/admin-module/src/lib/components/config/global-config-list/global-config-list.component.html","../../../../libs/admin-module/src/lib/components/config/global-config-tabs/global-config-tabs.component.ts","../../../../libs/admin-module/src/lib/components/contact-us/contact-us-list/contact-us-list.component.ts","../../../../libs/admin-module/src/lib/components/contact-us/contact-us-list/contact-us-list.component.html","../../../../libs/admin-module/src/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.ts","../../../../libs/admin-module/src/lib/components/credentials/credentials-details/credentials-details.component.ts","../../../../libs/admin-module/src/lib/components/credentials/credentials-details/credentials-details.component.html","../../../../libs/admin-module/src/lib/components/credentials/credentials-tab/credentials-tab.component.ts","../../../../libs/admin-module/src/lib/components/credentials/credentials/credentials.component.ts","../../../../libs/admin-module/src/lib/components/credentials/credentials/credentials.component.html","../../../../libs/admin-module/src/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.ts","../../../../libs/admin-module/src/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.html","../../../../libs/admin-module/src/lib/components/credentials/subscription-credentials/subscription-credentials.component.ts","../../../../libs/admin-module/src/lib/components/credentials/subscription-credentials/subscription-credentials.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-details.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-details/domain-config-details.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-list/domain-config-list.component.ts","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-list/domain-config-list.component.html","../../../../libs/admin-module/src/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.ts","../../../../libs/admin-module/src/lib/components/faqs/faqs-list/faqs-list.component.ts","../../../../libs/admin-module/src/lib/components/faqs/faqs-list/faqs-list.component.html","../../../../libs/admin-module/src/lib/components/faqs/faqs-tabs/faqs-tabs.component.ts","../../../../libs/admin-module/src/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.ts","../../../../libs/admin-module/src/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.html","../../../../libs/admin-module/src/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.ts","../../../../libs/admin-module/src/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.html","../../../../libs/admin-module/src/lib/components/generic/generic-insight/generic-insight.component.ts","../../../../libs/admin-module/src/lib/components/generic/generic-insight/generic-insight.component.html","../../../../libs/admin-module/src/lib/components/generic/generic-misc/generic-misc.component.ts","../../../../libs/admin-module/src/lib/components/generic/generic-misc/generic-misc.component.html","../../../../libs/admin-module/src/lib/components/generic/generic-tabs/generic-tabs.component.ts","../../../../libs/admin-module/src/lib/components/login-notifications/login-notification-details/login-notification-details.component.ts","../../../../libs/admin-module/src/lib/components/login-notifications/login-notification-details/login-notification-details.component.html","../../../../libs/admin-module/src/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.ts","../../../../libs/admin-module/src/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.ts","../../../../libs/admin-module/src/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletter-details/newsletter-details.component.ts","../../../../libs/admin-module/src/lib/components/newsletters/newsletter-details/newsletter-details.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.ts","../../../../libs/admin-module/src/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.ts","../../../../libs/admin-module/src/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-insight/newsletters-insight.component.ts","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-insight/newsletters-insight.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-items/newsletters-items.component.ts","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-items/newsletters-items.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-list/newsletters-list.component.ts","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-list/newsletters-list.component.html","../../../../libs/admin-module/src/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.ts","../../../../libs/admin-module/src/lib/components/permissions/permissions-details/permissions-details.component.ts","../../../../libs/admin-module/src/lib/components/permissions/permissions-details/permissions-details.component.html","../../../../libs/admin-module/src/lib/components/permissions/permissions-list/permissions-list.component.ts","../../../../libs/admin-module/src/lib/components/permissions/permissions-list/permissions-list.component.html","../../../../libs/admin-module/src/lib/components/permissions/permissions-tabs/permissions-tabs.component.ts","../../../../libs/admin-module/src/lib/components/permissions/role-details/role-details.component.ts","../../../../libs/admin-module/src/lib/components/permissions/role-details/role-details.component.html","../../../../libs/admin-module/src/lib/components/permissions/roles-list/roles-list.component.ts","../../../../libs/admin-module/src/lib/components/permissions/roles-list/roles-list.component.html","../../../../libs/admin-module/src/lib/components/products/product-details/product-details.component.ts","../../../../libs/admin-module/src/lib/components/products/product-details/product-details.component.html","../../../../libs/admin-module/src/lib/components/products/products-insight/products-insight.component.ts","../../../../libs/admin-module/src/lib/components/products/products-insight/products-insight.component.html","../../../../libs/admin-module/src/lib/components/products/products-list/products-list.component.ts","../../../../libs/admin-module/src/lib/components/products/products-list/products-list.component.html","../../../../libs/admin-module/src/lib/components/products/products-tabs/products-tabs.component.ts","../../../../libs/admin-module/src/lib/components/products/users-list-for-product/users-list-for-product.component.ts","../../../../libs/admin-module/src/lib/components/products/users-list-for-product/users-list-for-product.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-agents/subscription-agents.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-agents/subscription-agents.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-products/subscription-products.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-products/subscription-products.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-users/subscription-users.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-users/subscription-users.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-details/subscription-details.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-details/subscription-details.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.ts","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.html","../../../../libs/admin-module/src/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.ts","../../../../libs/admin-module/src/lib/components/tags/tags-category/tags-category.component.ts","../../../../libs/admin-module/src/lib/components/tags/tags-category/tags-category.component.html","../../../../libs/admin-module/src/lib/components/tags/tags-list/tags-list.component.ts","../../../../libs/admin-module/src/lib/components/tags/tags-list/tags-list.component.html","../../../../libs/admin-module/src/lib/components/tags/tags-tabs/tags-tabs.component.ts","../../../../libs/admin-module/src/lib/components/tips/tip-detail/tip-detail.component.ts","../../../../libs/admin-module/src/lib/components/tips/tip-detail/tip-detail.component.html","../../../../libs/admin-module/src/lib/components/tips/tips-list/tips-list.component.ts","../../../../libs/admin-module/src/lib/components/tips/tips-list/tips-list.component.html","../../../../libs/admin-module/src/lib/components/tips/tips-tabs/tips-tabs.component.ts","../../../../libs/admin-module/src/lib/components/tracking/ahoy-events/ahoy-events.component.ts","../../../../libs/admin-module/src/lib/components/tracking/ahoy-events/ahoy-events.component.html","../../../../libs/admin-module/src/lib/components/tracking/ahoy-messages/ahoy-messages.component.ts","../../../../libs/admin-module/src/lib/components/tracking/ahoy-messages/ahoy-messages.component.html","../../../../libs/admin-module/src/lib/components/tracking/ahoy-visits/ahoy-visits.component.ts","../../../../libs/admin-module/src/lib/components/tracking/ahoy-visits/ahoy-visits.component.html","../../../../libs/admin-module/src/lib/components/tracking/events/events.component.ts","../../../../libs/admin-module/src/lib/components/tracking/events/events.component.html","../../../../libs/admin-module/src/lib/components/tracking/tracking-tabs/tracking-tabs.component.ts","../../../../libs/admin-module/src/lib/components/tracking/versions/versions.component.ts","../../../../libs/admin-module/src/lib/components/tracking/versions/versions.component.html","../../../../libs/admin-module/src/lib/components/users/user-details/user-details.component.ts","../../../../libs/admin-module/src/lib/components/users/user-details/user-details.component.html","../../../../libs/admin-module/src/lib/components/users/users-insight/users-insight.component.ts","../../../../libs/admin-module/src/lib/components/users/users-insight/users-insight.component.html","../../../../libs/admin-module/src/lib/components/users/users-list/users-list.component.ts","../../../../libs/admin-module/src/lib/components/users/users-list/users-list.component.html","../../../../libs/admin-module/src/lib/components/users/users-tabs/users-tabs.component.ts","../../../../libs/admin-module/src/lib/admin-module.routing.ts","../../../../libs/admin-module/src/lib/admin.module.ts","../../../../libs/admin-module/src/lib/admin-guard.service.ts","../../../../libs/admin-module/src/index.ts","../../../../libs/admin-module/src/posiwise-admin-module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { ADMIN_PATH, Paging, User, Role } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { MainApiHttpService } from '@posiwise/common-services';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminService {\n private endpoint = ADMIN_PATH;\n\n private newsletters = '/newsletters';\n\n private newslettersItems = '/newsletter_items';\n\n private permissions = '/admin/permissions';\n\n private ahoy = '/ahoy';\n\n private subscriptionCredentials = '/subscription_credentials';\n\n private globalConfigs = '/global_configs';\n\n private feedbackQuestionsUrl = `${ADMIN_PATH}/feedback_questions`;\n\n private contactUs = `${ADMIN_PATH}/contact_us`;\n\n constructor(private api: MainApiHttpService) {}\n\n /**\n * User API\n * @param page\n * @param pageSize\n * @param search\n */\n getUsers(paging?: Paging, params?) {\n return this.api.getWithParams(`${this.endpoint}/users/get_all`, {\n ...HelperService.getPagingParams(paging),\n ...params\n });\n }\n\n postAgent(id: number, data) {\n return this.api.post(`${ADMIN_PATH}/subscriptions/${id}/agents`, data);\n }\n\n getAgents(id: number) {\n return this.api.get(`${ADMIN_PATH}/subscriptions/${id}/agents`);\n }\n\n getAgentById(subscription_id: number, agent_id: number) {\n return this.api.get(`${ADMIN_PATH}/subscriptions/${subscription_id}/agents/${agent_id}`);\n }\n\n destroyAgent(id: number, agent_id: number) {\n return this.api.delete(`${ADMIN_PATH}/subscriptions/${id}/agents/${agent_id}`);\n }\n\n inspectAgent(type: string) {\n return this.api.getWithParams(`${ADMIN_PATH}/inspect`, { type });\n }\n\n updateSubscriptionProduct(data) {\n return this.api.put(`${ADMIN_PATH}/subscription_product`, data);\n }\n\n getSubscriptionProduct(id: number, subscription_id) {\n return this.api.getWithParams(`${ADMIN_PATH}/subscription_product/${id}`, {\n subscription_id\n });\n }\n\n getUserById(id: number, subscription_id: number) {\n return this.api.getWithParams(`/users/${id}`, { subscription_id });\n }\n\n deleteUser(id: number, subscription_id: number) {\n return this.api.delete(`/user/?id=${id}&subscription_id=${subscription_id}`);\n }\n\n createUser(user: User) {\n return this.api.post('/admin/users', user);\n }\n\n getUsersInsight(subscription_id: number) {\n return this.api.get(`/admin/users_analytics?type=users&subscription_id=${subscription_id}`);\n }\n\n saveUserDetails(user: User) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in user) {\n if (key in user) {\n formData.append(key, user[key]);\n }\n }\n\n return this.api.put('/user', formData);\n }\n\n /**\n * Roles Management\n * @param page\n * @param pageSize\n * @param search\n */\n\n getRoles(paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams('/admin/roles/get_all', {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n deleteRole(id: number) {\n return this.api.delete(`${this.endpoint}/roles/${id}`);\n }\n\n saveRole(role: Role, id: number) {\n return this.api.put(`${this.endpoint}/roles/${id}`, role);\n }\n\n addRole(role: Role) {\n return this.api.post(`${this.endpoint}/roles`, role);\n }\n\n // User Roles\n getUserRole(id: number, subscription_id: number) {\n return this.api.getWithParams(`/users/${id}/roles`, { subscription_id });\n }\n\n saveUserRole(userId: number, role_id: number, subscription_id: number) {\n return this.api.post(`/admin/user_roles/`, { id: userId, role_id, subscription_id });\n }\n\n deleteUserRole(userId: number, role_id: number, subscription_id: number) {\n return this.api.delete(\n `/admin/user_roles?role_id=${role_id}&id=${userId}&subscription_id=${subscription_id}`\n );\n }\n\n /**\n * Newsletter API\n */\n getNewsletters(paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams(`${this.newsletters}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getNewsletterById(id: number) {\n return this.api.get(`${this.newsletters}/${id}`);\n }\n\n deleteNewsletter(id: number, subscription_id: number) {\n return this.api.delete(`${this.newsletters}/${id}?subscription_id=${subscription_id}`);\n }\n\n updateNewsletter(data, id: number) {\n return this.api.put(`${this.newsletters}/${id}`, data);\n }\n\n addNewsletter(data) {\n return this.api.post(this.newsletters, data);\n }\n\n getNewsletterInsight() {\n return this.api.get('/admin/newsletters_analytics?type=global');\n }\n\n /**\n * Newsletters Items API\n */\n getNewslettersItems(paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams(`${this.newslettersItems}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getNewsletterItemById(id: number, subscription_id?: number) {\n return this.api.getWithParams(`${this.newslettersItems}/${id}`, { subscription_id });\n }\n\n deleteNewsletterItem(id: number) {\n return this.api.delete(`${this.newslettersItems}/${id}`);\n }\n\n updateNewsletterItem(data, id: number) {\n return this.api.put(`${this.newslettersItems}/${id}`, data);\n }\n\n addNewsletterItem(data) {\n return this.api.post(`${this.newslettersItems}`, data);\n }\n\n getNewsletterItemUserList(id: number, subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(\n `${this.newslettersItems}/${id}/insights?subscription_id=${subscription_id}`,\n HelperService.getPagingParams(paging)\n );\n }\n\n /**\n * Subscription API\n */\n getSubscriptions(feature_keys, subscription_status, paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams(`${this.endpoint}/subscriptions/get_all`, {\n feature_keys,\n subscription_status,\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getSubscriptionAnalytics(type: string, subscription_id: number, starting_at?, ending_at?) {\n return this.api.getWithParams(\n `/admin/subscriptions_analytics?type=${type}&subscription_id=${subscription_id}`,\n { starting_at, ending_at }\n );\n }\n\n deleteSubscription(id: number, reqJson) {\n return this.api.delete(`/subscriptions/${id}`, reqJson);\n }\n\n /**\n * Permissions API\n */\n\n getPermissions(paging?: Paging) {\n return this.api.getWithParams(\n `${this.permissions}/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n private getPermissionById(id: number) {\n return this.api.get(`${this.endpoint}/permissions/${id}`);\n }\n\n savePermission(permission: Role, id: number) {\n return this.api.put(`${this.endpoint}/permissions/${id}`, permission);\n }\n\n addPermission(permission: Role) {\n return this.api.post(`${this.endpoint}/permissions`, permission);\n }\n\n deletePermission(id: number) {\n return this.api.delete(`${this.endpoint}/permissions/${id}`);\n }\n\n /**\n *\n *\n */\n\n postFaq(data, subscription_id: number) {\n return this.api.post('/admin/faq', { ...data, subscription_id });\n }\n\n putFaq(data, subscription_id: number) {\n return this.api.put(`/admin/faq/${data.id}`, { ...data, subscription_id });\n }\n\n deleteFaq(id: number, subscription_id: number) {\n return this.api.delete(`/admin/faq/${id}?subscription_id=${subscription_id}`);\n }\n\n updateDB(type: string) {\n return this.api.get(`/admin/update_db?type=${type}`);\n }\n\n flushRedis(type: string) {\n return this.api.get(`/admin/rediscache_ops?type=${type}`);\n }\n\n flushMemcached(type: string) {\n return this.api.get(`/admin/memcached_ops?type=${type}`);\n }\n\n saveSubscriptionRoles(data) {\n return this.api.post('/admin/subscription_roles', data);\n }\n\n getSubscriptionRoles(id: number) {\n return this.api.get(`/subscription_roles/${id}`);\n }\n\n saveProductRoles(data) {\n return this.api.post(`/admin/product_roles`, data);\n }\n\n getProductsRoles(id: number) {\n return this.api.get(`/admin/product_roles/${id}`);\n }\n\n saveUserSubscriptionRole(data) {\n return this.api.post('/admin/user_roles', data);\n }\n\n deleteUserSubscriptionRole(data) {\n return this.api.delete(`/admin/user_roles?role_id=${data.role_id}&id=${data.id}`);\n }\n\n sendTestMail(id: number, subscription_id?: number) {\n return this.api.getWithParams(`/newsletter_items/${id}/send_test_email`, {\n subscription_id\n });\n }\n\n getAllTos(paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams(`/product_privacy_services/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n deleteTos(id: number) {\n return this.api.delete(`/product_privacy_services/${id}`);\n }\n\n postTos(data) {\n return this.api.post(`/product_privacy_services`, data);\n }\n\n getTosDetails(id: number) {\n return this.api.get(`/product_privacy_services/${id}`);\n }\n\n updateTos(id: number, data) {\n return this.api.put(`/product_privacy_services/${id}`, data);\n }\n\n getAllCredentials(paging?: Paging) {\n return this.api.getWithParams(\n `/credentials/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n deleteCredentials(id: number) {\n return this.api.delete(`${this.endpoint}/credentials/${id}`);\n }\n\n saveCredentials(data) {\n return this.api.post(`${this.endpoint}/credentials`, data);\n }\n\n updateCredentials(id: number, data) {\n return this.api.put(`${this.endpoint}/credentials/${id}`, data);\n }\n\n getCredentialsDetails(id: number) {\n return this.api.get(`${this.endpoint}/credentials/${id}`);\n }\n\n getAllSubscriptionCredentials(paging?: Paging) {\n return this.api.getWithParams(\n `${this.endpoint}${this.subscriptionCredentials}/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getSubscriptionCredentials(id: number, subscription_id: number) {\n return this.api.get(\n `${this.subscriptionCredentials}/${id}?subscription_id=${subscription_id}`\n );\n }\n\n postSubscriptionCredential(data) {\n return this.api.post(`${this.subscriptionCredentials}`, data);\n }\n\n editSubscriptionCredential(id: number, data) {\n return this.api.put(`${this.subscriptionCredentials}/${id}`, data);\n }\n\n deleteSubscriptionCredential(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.subscriptionCredentials}/${id}?subscription_id=${subscription_id}`\n );\n }\n\n getAhoyEvents(paging?: Paging) {\n return this.api.getWithParams(`${this.ahoy}/events`, HelperService.getPagingParams(paging));\n }\n\n getAhoyMessages(paging?: Paging) {\n return this.api.getWithParams(`${this.ahoy}/messages`, paging);\n }\n\n getAhoyVisits(paging?: Paging) {\n return this.api.getWithParams(`${this.ahoy}/visits`, HelperService.getPagingParams(paging));\n }\n\n getVersions(paging?: Paging) {\n return this.api.getWithParams(`versions/get_all`, HelperService.getPagingParams(paging));\n }\n\n getEvents(paging?: Paging) {\n return this.api.getWithParams(`events/get_all`, HelperService.getPagingParams(paging));\n }\n\n getAllGlobalConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${this.globalConfigs}/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getGlobalConfigDetails(id: number) {\n return this.api.get(`${this.globalConfigs}/${id}`);\n }\n\n postGlobalConfig(data) {\n return this.api.post(`${this.globalConfigs}`, data);\n }\n\n editGlobalConfig(id: number, data) {\n return this.api.put(`${this.globalConfigs}/${id}`, data);\n }\n\n deleteGlobalConfig(id: number) {\n return this.api.delete(`${this.globalConfigs}/${id}`);\n }\n\n getAllFieldType() {\n return this.api.get(`/global_configs/valid_field_types`);\n }\n\n // domain config\n\n getAllDomainConfig(paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams(`${this.endpoint}/domains_metadata/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n deleteDomainConfig(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.endpoint}/domains_metadata/${id}?subscription_id=${subscription_id}`\n );\n }\n\n updateDomainConfig(id: number, data) {\n return this.api.put(`${this.endpoint}/domains_metadata/${id}`, data);\n }\n\n createDomainConfig(data) {\n return this.api.post(`${this.endpoint}/domains_metadata`, data);\n }\n\n getDomainConfigById(id: number, subscription_id: number) {\n return this.api.getWithParams(`${this.endpoint}/domains_metadata/${id}`, {\n subscription_id\n });\n }\n\n getAvailableDomainOptions(subscription_id: number) {\n return this.api.get(\n `${this.endpoint}/domains_metadata/available_domain_options?subscription_id=${subscription_id}`\n );\n }\n\n // login notifications\n getAllLoginNotifications(paging?: Paging, subscription_id?: number) {\n return this.api.getWithParams(`${this.endpoint}/login_notifications/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n createLoginNotification(data) {\n return this.api.post(`${this.endpoint}/login_notifications`, data);\n }\n\n deleteLoginNotification(id: number, subscription_id: number) {\n return this.api.delete(`login_notifications/${id}?subscription_id=${subscription_id}`);\n }\n\n updateLoginNotification(id: number, data) {\n return this.api.put(`login_notifications/${id}`, data);\n }\n\n getLoginNotificationById(id: number, subscription_id: number) {\n return this.api.getWithParams(`login_notifications/${id}`, {\n subscription_id\n });\n }\n\n getAvailableLoginNotificationTypes(subscription_id: number) {\n return this.api.getWithParams(`login_notifications/available_types`, {\n subscription_id\n });\n }\n\n // feedback questions\n\n getAllFeedbackQuestions(subscription_id: number, product_id: number, paging?: Paging) {\n return this.api.getWithParams(`${this.feedbackQuestionsUrl}/get_all`, {\n subscription_id,\n product_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n deleteFeedbackQuestion(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.feedbackQuestionsUrl}/${id}?subscription_id=${subscription_id}`\n );\n }\n\n updateFeedbackQuestion(id: number, data) {\n return this.api.put(`${this.feedbackQuestionsUrl}/${id}`, data);\n }\n\n createFeedbackQuestion(data) {\n return this.api.post(`${this.feedbackQuestionsUrl}`, data);\n }\n\n getDomainFeedbackQuestionById(id: number, subscription_id: number) {\n return this.api.getWithParams(`${this.feedbackQuestionsUrl}/${id}`, { subscription_id });\n }\n\n // contact-us\n getAllContactUs(subscription_id: number, product_id: number, closed: boolean, paging?: Paging) {\n return this.api.getWithParams(`${this.contactUs}/get_all`, {\n subscription_id,\n product_id,\n ...HelperService.getPagingParams(paging),\n closed: closed || ''\n });\n }\n\n updateContactUs(id: number, data) {\n return this.api.put(`${this.contactUs}/${id}`, data);\n }\n\n remove2fa(userId: number, subscription_id: number) {\n return this.api.put(`${ADMIN_PATH}/users/${userId}/remove_2fa`, { subscription_id });\n }\n}\n","import { UntypedFormBuilder, Validators } from '@angular/forms';\n\nexport class AppAdmin {\n static getGlobalConfigForm() {\n return new UntypedFormBuilder().group({\n name: ['', [Validators.required]],\n default: [false],\n field_type: ['', [Validators.required]]\n });\n }\n\n static getCredentialsForm() {\n return new UntypedFormBuilder().group({\n name: ['', [Validators.required]],\n field: ['', [Validators.required]],\n active: ['', [Validators.required]],\n is_visible: [false],\n is_required: [false],\n description: ['']\n });\n }\n\n static getSubscriptionCredentialsForm() {\n return new UntypedFormBuilder().group({\n subscription_id: ['', [Validators.required]],\n credential_id: ['', [Validators.required]],\n value: ['', [Validators.required]]\n });\n }\n\n static getFaqForm() {\n return new UntypedFormBuilder().group({\n id: [''],\n question: ['', Validators.required],\n answer: ['', Validators.required],\n visible: [true],\n position: [null],\n category: [null, Validators.required],\n product_id: [null],\n public: [false],\n feature_keys: [''],\n is_shared_faq: [false],\n is_admin_faq: [false],\n is_build_faq: [false]\n });\n }\n\n static getNewsletterForm() {\n return new UntypedFormBuilder().group({\n name: ['', Validators.required],\n code: ['', Validators.required],\n active: [true, Validators.required],\n visible: [true, Validators.required]\n });\n }\n\n static getNewsletterItemForm() {\n return new UntypedFormBuilder().group({\n id: [],\n newsletter_id: [null, Validators.required],\n product_ids: [null],\n feature_keys: [''],\n title: [null, Validators.required],\n body: [null, Validators.required],\n location: [null],\n main_tag_id: [null],\n send_at: [null, Validators.required],\n is_pushed: [false, Validators.required],\n send_until: [null, Validators.required],\n days_to_wait_from_previous_newsletter: [],\n only_new_users: []\n });\n }\n\n static getPermissionsForm() {\n return new UntypedFormBuilder().group({\n id: [''],\n name: ['', Validators.required],\n active: [false, Validators.required]\n });\n }\n\n static getRolesForm() {\n return new UntypedFormBuilder().group({\n id: [''],\n name: ['', Validators.required],\n active: [false, Validators.required]\n });\n }\n\n static getProductsForm() {\n return new UntypedFormBuilder().group({\n name: ['', Validators.required],\n gitlab_service_desk_email: [''],\n nickname: ['', Validators.required],\n category: ['', Validators.required],\n feature_key: ['', Validators.required],\n billing_frequency: [''],\n max_units: [null, Validators.required],\n min_units: [null, Validators.required],\n stripe_plan_id: [''],\n price_per_unit: [null, Validators.required],\n trial_days: [null, Validators.required],\n active: [true, Validators.required],\n multiple_allowed: [true, Validators.required],\n description: ['', Validators.required],\n signup_instructions: [''],\n signup_instruction_employees: [''],\n product_key: ['', Validators.required],\n max_hits_trial: [0],\n max_hits: [0],\n permission_key: ['', Validators.required],\n visible: [true, Validators.required],\n product_privacy_service_id: [''],\n roles: [''],\n members_visible: [true],\n chat_visible: [true],\n master_product_id: [''],\n is_master_product: [false],\n region: ['', Validators.required],\n currency: ['', Validators.required]\n });\n }\n\n static getSubscriptionAgentsForm() {\n return new UntypedFormBuilder().group({\n percentage: ['', [Validators.required, Validators.min(0), Validators.max(100)]],\n end_date: ['', [Validators.required]],\n email: ['', [Validators.required]]\n });\n }\n\n static getSubscriptionsForm() {\n return new UntypedFormBuilder().group({\n organisation: [''],\n contact_name: [''],\n created_at: [''],\n purchased_units: [''],\n tax_id: [''],\n expires_at: [''],\n contact_tel: [''],\n contact_email: ['', [Validators.email]],\n reference_number: [''],\n units_in_use: [''],\n max_units: [''],\n calculated_price: [''],\n roles: [null],\n organization_type_id: [''],\n organization_industry_id: [''],\n organization_size_id: [''],\n facebook_handle: [''],\n twitter_handle: [''],\n linkedin_handle: [''],\n reddit_handle: [''],\n company_url: [''],\n enforce_2fa: [false]\n });\n }\n\n static getEmbassadorForm() {\n return new UntypedFormBuilder().group({\n percentage: ['', [Validators.required, Validators.min(0), Validators.max(100)]],\n enddate: ['', Validators.required],\n email: ['', [Validators.required]]\n });\n }\n\n static getTagsForm() {\n return new UntypedFormBuilder().group({\n name: [null, Validators.required],\n id: [null],\n tag_category_id: [null, Validators.required],\n tag_type: [null, Validators.required]\n });\n }\n\n static getTipsForm() {\n return new UntypedFormBuilder().group({\n name: ['', Validators.required],\n instructions: ['', Validators.required],\n active: [true, Validators.required]\n });\n }\n\n static getTosForm() {\n return new UntypedFormBuilder().group({\n title: ['', [Validators.required]],\n privacy: ['', [Validators.required]],\n tos: ['', [Validators.required]]\n });\n }\n\n static getUsersForm() {\n return new UntypedFormBuilder().group({\n id: [''],\n first_name: ['', Validators.required],\n last_name: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n send_marketing_emails: [false],\n preferred_name: [''],\n roles: [null],\n alpha: [null],\n beta: [null],\n phone_number: [],\n blocked: [false]\n });\n }\n\n static domainConfigCoreForm() {\n return new UntypedFormBuilder().group({\n host_name: ['', Validators.required],\n internal_path: ['', Validators.required],\n shard_name: ['', Validators.required],\n shard_url: ['', Validators.required],\n company_name: ['', Validators.required],\n company_email: ['', Validators.required],\n company_url: ['', Validators.required]\n });\n }\n\n static domainConfigOrganizationForm() {\n return new UntypedFormBuilder().group({\n company_keywords: [''],\n company_description: [''],\n company_country: [''],\n company_address: [''],\n company_city: [''],\n company_city_code: [''],\n company_vat_number: [''],\n company_phone_number: [''],\n company_header: [''],\n company_title: ['']\n });\n }\n\n static domainConfigInterfaceForm() {\n return new UntypedFormBuilder().group({\n color_code_first: [''],\n color_code_second: [''],\n color_code_third: [''],\n color_code_titles: [''],\n color_code_text: [''],\n color_code_tabs_bg: [''],\n color_code_tabs_text: [''],\n color_code_sidebar_bg: [''],\n color_code_sidebar_text: ['']\n });\n }\n\n static domainConfigSocialForm() {\n return new UntypedFormBuilder().group({\n twitter_seo_card: [''],\n twitter_seo_site: [''],\n twitter_seo_creator: [''],\n linkedin_url: [''],\n twitter_url: [''],\n facebook_url: [''],\n youtube_url: ['']\n });\n }\n\n static domainConfigIntegrationsForm() {\n return new UntypedFormBuilder().group({\n integrations_drift_code: [''],\n integrations_fb_app_id: [''],\n integrations_captcha_key: [''],\n integrations_captcha_key_V2: [''],\n integrations_google_analytics: [''],\n integrations_google_api_key: [''],\n integrations_sentry_config_dns: [''],\n webhook_token: ['']\n });\n }\n\n static domainConfigSecurityForm() {\n return new UntypedFormBuilder().group({\n oauth_login_google_client_id: [''],\n oauth_login_facebook_client_id: [''],\n oauth_login_linkedin_client_id: [''],\n oauth_login_twitter_client_id: [''],\n oauth_login_microsoft_client_id: [''],\n oauth_login_apple_client_id: [''],\n oauth_login_twitter_secret: [''],\n oauth_login_facebook_secret: [''],\n oauth_login_linkedin_secret: [''],\n oauth_login_google_secret: [''],\n oauth_login_microsoft_secret: ['']\n });\n }\n\n static domainConfigBuildForm() {\n return new UntypedFormBuilder().group({\n active: [false],\n main_tos_id: [''],\n notify_logins: [false],\n master_subscription_product_id: [''],\n master_subscription_id: [''],\n can_register_through_main_page: [false],\n is_product_domain: [false],\n social_login_enabled: [false],\n blog_feature_key: [{ value: '', disabled: true }],\n crm_subscription_id: [''],\n crm_source_id: [''],\n crm_product_id: [''],\n trial_join_message: [''],\n trial_product_id: [''],\n trial_crm_source_id: [''],\n trial_video_url: [''],\n trial_book_demo_url: [''],\n trial_pdf_download_text: [''],\n trial_pdf_source_id: [''],\n cs_join_message: [''],\n cs_product_id: [''],\n cs_crm_source_id: [''],\n cs_video_url: [''],\n cs_book_demo_url: [''],\n cs_pdf_download_text: [''],\n cs_pdf_source_id: [''],\n cs_cta_iframe: [],\n trial_cta_iframe: []\n });\n }\n\n static loginNotificationForm() {\n return new UntypedFormBuilder().group({\n feature_keys: ['', Validators.required],\n notification_type: ['', Validators.required],\n visible_until: ['', Validators.required],\n visible_from: ['', Validators.required],\n body: ['', Validators.required]\n });\n }\n\n static customerSupportForm() {\n return new UntypedFormBuilder().group({\n title: ['', Validators.required],\n description: ['', Validators.required],\n product_id: ['', Validators.required],\n attachment: ['']\n });\n }\n\n static feedbackQuestionsForm() {\n return new UntypedFormBuilder().group({\n question: ['', Validators.required],\n product_id: [''],\n subscription_id: ['', Validators.required]\n });\n }\n\n static subscriptionProductForm() {\n return new UntypedFormBuilder().group({\n subscription_id: [''],\n min_units: [''],\n product_id: [''],\n expires_at: [''],\n external_payment: [''],\n signed_up_at: [''],\n purchased_units: [''],\n stripe_subscription_id: [''],\n new_product_id: ['']\n });\n }\n}\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { PrivacyTos } from '../../../shared/interface/privacy-tos.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-terms-of-service-details',\n templateUrl: './terms-of-service-details.component.html'\n})\nexport class TermsOfServiceDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n id: number;\n\n data: PrivacyTos;\n\n submitted = false;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getTosForm();\n }\n\n ngOnInit() {\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getTosDetails();\n }\n });\n }\n\n @ValidateForm('form')\n onSave() {\n const subscriptionId = PermissionService.selectedSubscription?.id;\n this.submitted = true;\n const data = { ...this.form.value, subscription_id: subscriptionId };\n const sub$ = this.id\n ? this.adminService.updateTos(this.id, data)\n : this.adminService.postTos(data);\n sub$.subscribe(response => {\n this.form.patchValue(response);\n this.toast.success(this.translation.translate('Tos.UpdatedMessage'));\n this.back();\n }).add(() => {\n this.submitted = true;\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n /** Function to call TosDetails */\n private getTosDetails() {\n this.adminService.getTosDetails(this.id).subscribe((response: PrivacyTos) => {\n this.data = response;\n this.form.patchValue(this.data);\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../tos\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Terms of Service: {{ data?.title ? data?.title : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Title' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <textarea type=\"text\"\n class=\"form-control\"\n rows=\"2\"\n formControlName=\"title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['title'].errors }\"></textarea>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Privacy' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor [styles]=\"{ height: '450px' }\"\n formControlName=\"privacy\"\n [ngClass]=\"{ 'is-invalid': submitted && f['privacy'].errors }\">\n </quill-editor>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Tos' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor [styles]=\"{ height: '450px' }\"\n formControlName=\"tos\"\n [ngClass]=\"{ 'is-invalid': submitted && f['tos'].errors }\">\n </quill-editor>\n </div>\n </div>\n\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\"\n *rbacAllow=\"'SubscriptionAdmin'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-terms-of-service-tabs',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class TermsOfServiceTabsComponent {\n items: MenuItem[];\n\n searchText = '';\n\n constructor() {\n this.items = [\n {\n id: 'Tos',\n label: 'Privacy & TOS',\n icon: 'fas fa-sticky-note',\n routerLink: ['/admin/tos/list']\n }\n ];\n }\n}\n","const baseUrl = '/admin/';\n\nexport const ROUTERS = {\n globalConfigDetails: `${baseUrl}global-config/details/`,\n adminCredentialsDetails: `${baseUrl}credentials-details/`,\n subscriptionCredentialDetails: `${baseUrl}subscription-credentials-details/`,\n newsletter: `${baseUrl}newsletter`,\n newsletterItemDetails: `${baseUrl}newsletter-item/`,\n newslettersUserList: `${baseUrl}newsletter/items/users-list/`,\n newsletterDetails: `${baseUrl}newsletter-details/`,\n permissionsList: `${baseUrl}permissions/list`,\n permissionsDetails: `${baseUrl}permissions-details/`,\n rolesDetails: `${baseUrl}role-details/`,\n productDetails: `${baseUrl}products/list/product-details/`,\n productsUserList: `${baseUrl}products/list/users/`,\n feedbackQuestions: `${baseUrl}products/list/feedback-questions-list`,\n feedbackQuestionsDetails: `${baseUrl}products/list/feedback-questions-details/`,\n subscriptionDetails: `${baseUrl}subscription/`,\n subscriptionProductDetails: `${baseUrl}/subscription-product-details/`,\n tipsDetails: `${baseUrl}tips/`,\n tosAndPrivacyDetails: `${baseUrl}tos-details/`,\n usersDetails: `${baseUrl}user-details/`,\n domainConfig: `${baseUrl}domain-config/`,\n domainConfigDetails: `${baseUrl}domain-config-details/`,\n loginNotifications: `${baseUrl}login-notifications/`,\n loginNotificationDetails: `${baseUrl}login-notification-details/`\n};\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { PrivacyTosResponse } from '../../../shared/interface/privacy-tos.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-terms-of-service',\n templateUrl: './terms-of-service.component.html'\n})\nexport class TermsOfServiceComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n searchText = '';\n\n data: PrivacyTosResponse = {\n product_privacy_services: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = true;\n\n routers = ROUTERS;\n\n private page = 1;\n\n subscriptionId: number;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllTos({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n /** Function to call all tos */\n private getAllTos(paging: Paging) {\n this.adminService\n .getAllTos(paging, this.subscriptionId)\n .subscribe((response: PrivacyTosResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n /** Function to delete tos */\n onDelete(id: number) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService.deleteTos(id).subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Tos.DeletedMessage'));\n this.getAllTos({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Terms of Services</h2>\n <button *rbacAllow=\"'SuperAdmin'\"\n class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-Tos\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Terms of Services\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.product_privacy_services\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Tos...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n data-head=\"Privacy\">Privacy</th>\n <th scope=\"true\"\n data-head=\"Terms of Services\">Terms of Services</th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-tos>\n <tr>\n <td data-head=\"Name\">{{ tos.privacy | removeHtml | textTruncate: 220 }}</td>\n <td data-head=\"Terms of Services\">\n {{ tos.tos | removeHtml | textTruncate: 220 }}\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <!-- Show only to SubscriptionSuperAdmin or SubscriptionOwner -->\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + tos.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n *rbacAllow=\"'SuperAdmin'\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(tos.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [message]=\"'Tos.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { GlobalConfig } from '../../../shared/interface/global-config.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-global-config-details',\n templateUrl: './global-config-details.component.html'\n})\nexport class GlobalConfigDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n private id: number;\n\n data: GlobalConfig;\n\n submitted = false;\n\n fieldTypes: string[] = [];\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getGlobalConfigForm();\n }\n\n ngOnInit(): void {\n this.getFieldTypes();\n this.id = Number(this.route.snapshot.params['id']);\n if (this.id) {\n this.getGlobalConfigDetails(this.id);\n }\n }\n\n private getGlobalConfigDetails(id: number) {\n this.adminService.getGlobalConfigDetails(id).subscribe((response: GlobalConfig) => {\n this.data = response;\n this.form.patchValue(this.data);\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n onSaveForm() {\n const data = this.form.value;\n const sub$ = this.id\n ? this.adminService.editGlobalConfig(this.id, data)\n : this.adminService.postGlobalConfig(data);\n sub$.subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.GlobalConfigMessage.UpdatedMessage')\n );\n this.back();\n });\n }\n\n private getFieldTypes() {\n this.adminService.getAllFieldType().subscribe((response: string[]) => {\n this.fieldTypes = response;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\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\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ 'Admin.GlobalConfigMessage.Config' | transloco }}:\n {{ data?.name || 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.NameValidator' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.FieldType' | transloco\"\n name=\"field_type\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.FieldTypeValidator' | transloco\n \">\n <select formControlName=\"field_type\"\n class=\"form-control form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['field_type'].errors\n }\">\n <option *ngFor=\"let option of fieldTypes\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Default' | transloco\"\n class=\"nowrap\"\n name=\"default\">\n <ui-switch class=\"d-block\"\n formControlName=\"default\"\n name=\"default\"\n [ngClass]=\"{ 'is-invalid': submitted && f['default'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\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\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { GlobalConfigResponse } from '../../../shared/interface/global-config.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-global-config-list',\n templateUrl: './global-config-list.component.html'\n})\nexport class GlobalConfigListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n searchText = '';\n\n loading = true;\n\n protected page = 1;\n\n fieldTypes: string[] = [];\n\n routers = ROUTERS;\n\n data: GlobalConfigResponse = {\n global_configs: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n ngOnInit(): void {\n this.getFieldTypes();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllGlobalConfigs({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n /** Function to get all configs */\n private getAllGlobalConfigs(paging: Paging) {\n this.adminService\n .getAllGlobalConfigs(paging)\n .subscribe((response: GlobalConfigResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDelete(id: number) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService.deleteGlobalConfig(id).subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.GlobalConfigMessage.DeletedMessage')\n );\n this.getAllGlobalConfigs({ page: this.page, page_size: PAGE_SIZE });\n });\n }\n });\n }\n\n private getFieldTypes() {\n this.adminService.getAllFieldType().subscribe((response: string[]) => {\n this.fieldTypes = response;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Global Configs</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"add-global-config\"\n [routerLink]=\"[routers.globalConfigDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Admin.GlobalConfigMessage.AddGlobalConfig' | transloco }}\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.global_configs\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search global configs...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Admin.GlobalConfigMessage.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field_type\">\n {{ 'Admin.GlobalConfigMessage.FieldType' | transloco }}\n <p-sortIcon field=\"field_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"default\">\n {{ 'Admin.GlobalConfigMessage.Default' | transloco }}\n <p-sortIcon field=\"default\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-config>\n <tr>\n <td data-head=\"Name\">{{ config.name }}</td>\n <td data-head=\"Field Type\">\n <span [appDynamicBadge]=\"{ itemsArray: fieldTypes, item: config?.field_type }\"\n color=\"cyan\"\n class=\"badge\">\n {{ config.field_type }}\n </span>\n </td>\n <td data-head=\"Default\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: config?.default }\"\n color=\"success-danger\"\n class=\"badge\">{{ config?.default ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.globalConfigDetails + config.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(config.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [message]=\"'Admin.GlobalConfigMessage.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class GlobalConfigTabsComponent {\n items: MenuItem[] = [\n {\n id: 'global-config',\n label: 'Global Configs',\n icon: 'fa fa-fw fa-cog',\n routerLink: ['/admin/global-config/list']\n }\n ];\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport swal from 'sweetalert2';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AdminService } from '../../../admin.service';\nimport { ContactUsResponse } from '../../../shared/interface/contact-us.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-contact-us-list',\n templateUrl: './contact-us-list.component.html'\n})\nexport class ContactUsListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n searchText = '';\n\n loading = true;\n\n data: ContactUsResponse = {\n contact_request: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n isLoaded = false;\n\n private page = 1;\n\n subscriptionId: number;\n\n productId: number;\n\n closed: boolean;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.productId = PermissionService.selectedProduct?.id;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllContactUs({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getAllContactUs(paging: Paging) {\n this.adminService\n .getAllContactUs(this.subscriptionId, this.productId, this.closed, paging)\n .subscribe((response: ContactUsResponse) => {\n this.data = response;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n toggleRecord(id: number, action: boolean) {\n swal.fire({\n title: 'Update',\n text: `Are you sure want to ${action ? 'Close' : 'reOpen'} this record?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n const data = {\n subscription_id: this.subscriptionId,\n closed: action,\n product_id: this.productId\n };\n this.adminService.updateContactUs(id, data).subscribe(res => {\n this.toast.success(res.message);\n this.getAllContactUs({ page: this.page, page_size: PAGE_SIZE });\n });\n }\n });\n }\n\n filterClosed(value: boolean) {\n this.closed = value;\n this.getAllContactUs({ page: this.page, page_size: PAGE_SIZE });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end my-3\">\n <h2 class=\"card-title p-0 float-start\">Contact Us</h2>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #tt\n [value]=\"data.contact_request\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [lazy]=\"true\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <!--sort order should be default empty when page load-->\n\n <!-- Caption Header, Search Bar -->\n <ng-template pTemplate=\"caption\">\n <div class=\"d-flex\">\n <div class=\"col-sm-3\">\n <select class=\"form-select\"\n (change)=\"filterClosed($event.target.value)\">\n <option value=\"\">Select</option>\n <option [value]=\"false\">Open</option>\n <option [value]=\"true\">Closed</option>\n </select>\n </div>\n <div class=\"text-end ms-auto\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n pInputText\n size=\"50\"\n placeholder=\"Search\"\n [(ngModel)]=\"searchText\"\n (input)=\"tt.filterGlobal($event.target.value, 'contains')\" />\n </div>\n </div>\n </ng-template>\n\n <!-- Column Header -->\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"created_at\">\n {{ 'Admin.ContactUs.CreatedAt' | transloco }}\n <p-sortIcon field=\"created_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"email\">\n {{ 'Label.Email' | transloco }}\n <p-sortIcon field=\"email\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"subject\">\n {{ 'Admin.ContactUs.Subject' | transloco }}\n <p-sortIcon field=\"subject\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"message\">\n {{ 'Admin.ContactUs.Message' | transloco }}\n <p-sortIcon field=\"message\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n\n <!-- Table Body -->\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"created_at\">{{ item?.created_at | dateFormat }}</td>\n <td data-head=\"name\">{{ item?.name }}</td>\n <td data-head=\"email\">\n <a href=\"mailto:{{ item?.email }}\">{{ item?.email }}</a>\n </td>\n <td data-head=\"subject\">{{ item?.subject }}</td>\n <td data-head=\"message\">{{ item?.message }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li *ngIf=\"!item.closed\"\n ngbTooltip=\"Close\"\n class=\"me-2 me-sm-3\"\n (click)=\"toggleRecord(item.id, true)\">\n <i class=\"fa fa-times delete-icon\" aria-hidden=\"true\"></i>\n </li>\n <li *ngIf=\"item.closed\"\n ngbTooltip=\"Re Open\"\n class=\"me-2 me-sm-3\"\n (click)=\"toggleRecord(item.id, false)\">\n <i class=\"fa fa-retweet edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">Total: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data message=\"No Contact Requests\"> </pw-no-data>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class ContactUsTabsComponent {\n items: MenuItem[] = [\n {\n id: 'contact-us',\n label: 'Contact Us',\n icon: 'far fa-fw fa-address-book',\n routerLink: ['/admin/contact-us/list']\n }\n ];\n}\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { Credential } from '../../../shared/interface/credential.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-credentials-details',\n templateUrl: './credentials-details.component.html'\n})\nexport class CredentialsDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n id: number;\n\n data: Credential;\n\n submitted = false;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getCredentialsForm();\n }\n\n ngOnInit() {\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.credentialDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n /** Function to get credential details */\n private credentialDetails() {\n this.adminService.getCredentialsDetails(this.id).subscribe((response: Credential) => {\n this.data = response;\n this.form.patchValue(this.data);\n });\n }\n\n /** Function on form submit */\n @ValidateForm('form')\n onSaveForm() {\n this.submitted = true;\n const sub$ = this.id\n ? this.adminService.updateCredentials(this.id, this.form.value)\n : this.adminService.saveCredentials(this.form.value);\n sub$.subscribe(response => {\n this.form.patchValue(response);\n this.toast.success(this.translation.translate('Credentials.UpdatedMessage'));\n this.back();\n }).add(() => {\n this.submitted = false;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../credentials\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Credentials: {{ data?.name ? data?.name : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Credentials.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"'Admin.Credentials.Validation.Name' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-3\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Credentials.Field' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"field\"\n [errorMsg]=\"'Admin.Credentials.Validation.Field' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"field\"\n [ngClass]=\"{ 'is-invalid': submitted && f['field'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Credentials.Active' | transloco\"\n class=\"nowrap\"\n name=\"active\">\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\"\n [ngClass]=\"{ 'is-invalid': submitted && f['active'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Credentials.Visible' | transloco\"\n class=\"nowrap\"\n name=\"is_visible\">\n <ui-switch class=\"d-block\"\n formControlName=\"is_visible\"\n name=\"is_visible\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['is_visible'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Credentials.IsRequired' | transloco\"\n class=\"nowrap\"\n name=\"is_required\">\n <ui-switch class=\"d-block\"\n formControlName=\"is_required\"\n name=\"is_required\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['is_required'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.Credentials.Description' | transloco\"\n name=\"description\"\n [errorMsg]=\"'Admin.Credentials.Validation.Description' | transloco\">\n <textarea type=\"text\"\n rows=\"3\"\n class=\"form-control\"\n formControlName=\"description\"></textarea>\n </pw-input-container>\n </div>\n\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\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-credentials-tab',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class CredentialsTabComponent {\n items: MenuItem[];\n\n constructor() {\n this.items = [\n {\n id: 'list',\n label: 'Credentials',\n icon: 'fas fa-file-signature',\n routerLink: ['/admin/credentials/list']\n },\n {\n id: 'subscription-credentials',\n label: 'Subscription-Credentials',\n icon: 'fa fa-fw fa-tag',\n routerLink: ['/admin/credentials/subscription-credentials']\n }\n ];\n }\n}\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnDestroy } from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { Credential, CredentialResponse } from '../../../shared/interface/credential.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-credentials',\n templateUrl: './credentials.component.html'\n})\nexport class CredentialsComponent extends AppBaseComponent implements OnDestroy, AfterViewChecked {\n searchText = '';\n\n data: CredentialResponse = {\n credentials: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = true;\n\n private page = 1;\n\n routers = ROUTERS;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllCredentials({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n /** Function to call all credentials */\n private getAllCredentials(params: Paging) {\n this.adminService\n .getAllCredentials(params)\n .subscribe((response: CredentialResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n /** Function to delete credential */\n onDelete(credential: Credential) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService.deleteCredentials(credential.id).subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Credentials.DeletedMessage')\n );\n this.getAllCredentials({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Credentials</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-role\"\n [routerLink]=\"[routers.adminCredentialsDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Credential\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.credentials\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Credentials...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field\">\n {{ 'Admin.Credentials.Field' | transloco }}\n <p-sortIcon field=\"field\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"is_required\">\n {{ 'Admin.Credentials.Required' | transloco }}\n <p-sortIcon field=\"is_required\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Label.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"is_visible\">\n {{ 'Label.IsVisible' | transloco }}\n <p-sortIcon field=\"is_visible\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-credential>\n <tr>\n <td data-head=\"Name\">{{ credential.name }}</td>\n <td data-head=\"Field\">\n <ng-template [ngIf]=\"credential?.description\"\n [ngIfElse]=\"noDescription\">\n <span class=\"info-circle\">{{ credential.field\n }}<span class=\"tooltiptext gradient-custom-branding\">{{\n credential.description\n }}</span></span>\n </ng-template>\n <ng-template #noDescription>\n {{ credential.field }}\n </ng-template>\n </td>\n <td data-head=\"Required\">\n <p [appDynamicBadge]=\"{\n itemsArray: [true, false],\n item: credential?.is_required\n }\"\n color=\"success-danger\"\n class=\"badge\">\n {{ !!credential?.is_required }}\n </p>\n </td>\n <td data-head=\"Is Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: credential?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ credential?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Is Visible\">\n <span [appDynamicBadge]=\"{\n itemsArray: [true, false],\n item: credential?.is_visible\n }\"\n color=\"success-danger\"\n class=\"badge\">{{ credential?.is_visible ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.adminCredentialsDetails + credential.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(credential)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [message]=\"'Admin.Credentials.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport {\n Credential,\n SubscriptionCredentialDetail\n} from '../../../shared/interface/credential.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-subscription-credentials-details',\n templateUrl: './subscription-credentials-details.component.html'\n})\nexport class SubscriptionCredentialsDetailsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy\n{\n form: UntypedFormGroup;\n\n id: number;\n\n data: SubscriptionCredentialDetail;\n\n submitted = false;\n\n allCredentials: Credential[];\n\n subscriptionId: number;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getSubscriptionCredentialsForm();\n }\n\n ngOnInit() {\n this.getAllCredentials();\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n });\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n if (this.subscriptionId) {\n this.form.get('subscription_id').setValue(this.subscriptionId);\n if (this.id) {\n this.credentialDetails();\n }\n }\n }\n\n get f() {\n return this.form.controls;\n }\n\n /** Function to call all credentials */\n private getAllCredentials() {\n this.adminService.getAllCredentials().subscribe(response => {\n this.allCredentials = response?.credentials;\n });\n }\n\n /** Function to get subscription credential details */\n private credentialDetails() {\n this.adminService\n .getSubscriptionCredentials(this.id, this.subscriptionId)\n .subscribe((response: SubscriptionCredentialDetail) => {\n this.data = response;\n this.form.patchValue(this.data);\n });\n }\n\n @ValidateForm('form')\n onSaveForm() {\n this.submitted = true;\n const data = this.form.value;\n const sub$ = this.id\n ? this.adminService.editSubscriptionCredential(this.id, data)\n : this.adminService.postSubscriptionCredential(data);\n\n sub$.subscribe(() => {\n this.toast.success(this.translation.translate('Credentials.UpdatedMessage'));\n this.back();\n }).add(() => {\n this.submitted = false;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\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=\"m-subheader__title m-subheader__title--separator\">\n <span>{{\n 'Admin.SubscriptionCredentialMessages.SubscriptionCredential'\n | transloco\n }}: {{ data?.name || 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"\n 'Admin.SubscriptionCredentialMessages.Credential' | transloco\n \"\n name=\"credential_id\"\n [errorMsg]=\"\n 'Admin.SubscriptionCredentialMessages.CredentialValidation'\n | transloco\n \">\n <select class=\"form-select\"\n formControlName=\"credential_id\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['credential_id'].errors\n }\">\n <option *ngFor=\"let option of allCredentials\"\n [value]=\"option.id\">\n {{ option.name }} - {{option?.field}}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"'Admin.SubscriptionCredentialMessages.Value' | transloco\"\n name=\"value\"\n [errorMsg]=\"\n 'Admin.SubscriptionCredentialMessages.ValueValidation'\n | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"value\"\n [ngClass]=\"{ 'is-invalid': submitted && f['value'].errors }\" />\n </pw-input-container>\n </div>\n\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\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { SubscriptionCredentialResponse } from '../../../shared/interface/credential.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-subscription-credentials',\n templateUrl: './subscription-credentials.component.html'\n})\nexport class SubscriptionCredentialsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n searchText = '';\n\n loading = true;\n\n data: SubscriptionCredentialResponse = {\n subscription_credentials: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n subscriptionId: number;\n\n isLoaded = false;\n\n private page = 1;\n\n routers = ROUTERS;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllSubscriptionCredentials({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n /** Function to get all credentials */\n private getAllSubscriptionCredentials(paging: Paging) {\n this.adminService\n .getAllSubscriptionCredentials(paging)\n .subscribe((response: SubscriptionCredentialResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n /** Function to delete subscription credentials */\n onDelete(id: number) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService\n .deleteSubscriptionCredential(id, this.subscriptionId)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Credentials.DeletedMessage')\n );\n this.getAllSubscriptionCredentials({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Subscription Credentials</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-subscription-credential\"\n [routerLink]=\"[routers.subscriptionCredentialDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Admin.SubscriptionCredentialMessages.CreateSubscriptionCredential' | transloco }}\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.subscription_credentials\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Credentials...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"subscription_id\">\n {{ 'Admin.SubscriptionCredentialMessages.SubscriptionOwner' | transloco }}\n <p-sortIcon field=\"subscription_id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"credential_id\">\n {{ 'Admin.SubscriptionCredentialMessages.Credential' | transloco }}\n <p-sortIcon field=\"credential_id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field\">\n {{ 'Admin.SubscriptionCredentialMessages.Field' | transloco }}\n <p-sortIcon field=\"field\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"value\">\n {{ 'Admin.SubscriptionCredentialMessages.Value' | transloco }}\n <p-sortIcon field=\"value\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"is_visible\">\n {{ 'Admin.SubscriptionCredentialMessages.Visible' | transloco }}\n <p-sortIcon field=\"is_visible\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-credential>\n <tr>\n <td data-head=\"Name\">{{ credential?.subscription?.contact_name }}</td>\n <td data-head=\"Credential Name\">{{ credential?.credential?.name }}</td>\n <td data-head=\"Field\">{{ credential?.credential?.field }}</td>\n <td data-head=\"Value\">{{ credential.value }}</td>\n <td data-head=\"Is Active\">\n <span *ngIf=\"credential?.is_visible\"\n class=\"badge bg-success\">yes</span>\n <span *ngIf=\"!credential?.is_visible\"\n class=\"badge bg-danger\">No</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.subscriptionCredentialDetails + credential.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(credential.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [message]=\"'Admin.Credentials.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { AfterViewInit, Component, Injector, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport groupBy from 'lodash/groupBy';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomUploaderComponent } from '@posiwise/shared-components';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\nimport { forkJoin } from 'rxjs';\n\n@Component({\n selector: 'pw-domain-config-build',\n templateUrl: './domain-config-build.component.html'\n})\nexport class DomainConfigBuildComponent extends AppBaseComponent implements OnInit, AfterViewInit {\n @ViewChildren(CustomUploaderComponent) uploader: QueryList<CustomUploaderComponent>;\n\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n masterSubscriptionProductList = [];\n\n masterSubscriptionsList = [];\n\n subscriptionTosList = [];\n\n crmProductList = [];\n\n crmSubscriptionsList = [];\n\n crmSourcesList = [];\n\n isLoading: boolean;\n\n productsList = [];\n\n childList = [];\n\n shardUrl: string;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private productService: ProductService\n ) {\n super(injector);\n this.form = AppAdmin.domainConfigBuildForm();\n }\n\n ngOnInit() {\n this.id = Number(this.route.snapshot.params['id']);\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n if (this.id) {\n this.getAllOptions();\n }\n if (this.permissionService.isSuperAdmin()) {\n this.form.get('master_subscription_id').enable();\n this.form.get('master_subscription_product_id').enable();\n this.form.get('is_product_domain').enable();\n } else {\n this.form.get('master_subscription_id').disable();\n this.form.get('master_subscription_product_id').disable();\n this.form.get('is_product_domain').disable();\n }\n }\n\n getAllOptions() {\n this.isLoading = true;\n forkJoin({\n options: this.adminService.getAvailableDomainOptions(this.subscriptionId),\n getProduct: this.productService.getProductList({}, this.subscriptionId),\n config: this.adminService.getDomainConfigById(this.id, this.subscriptionId)\n })\n .subscribe(res => {\n // options\n this.masterSubscriptionProductList = res?.options?.master_subscription?.products;\n this.masterSubscriptionsList = res?.options?.master_subscription?.subscriptions;\n this.subscriptionTosList = res?.options?.master_subscription?.subscription_tos;\n this.crmSubscriptionsList = res?.options?.master_crm.subscriptions;\n this.crmSourcesList = res?.options?.master_crm.sources;\n this.crmProductList = res?.options?.master_crm.products;\n // end options\n this.productsList = this.groupProducts(res?.getProduct?.products);\n // config to patch values\n this.data = res.config;\n this.shardUrl = res?.config?.shard_url;\n this.form.patchValue(this.data);\n this.form.patchValue({\n cs_product_id: this.productsList.find(x => x.id === this.data?.cs_product_id),\n trial_product_id: this.productsList.find(\n x => x.id === this.data?.trial_product_id\n )\n });\n if (res?.config?.cs_cta_iframe) {\n this.form.patchValue({\n cs_cta_iframe: JSON.parse(res?.config?.cs_cta_iframe)\n });\n }\n if (res?.config?.trial_cta_iframe) {\n this.form.patchValue({\n trial_cta_iframe: JSON.parse(res?.config?.trial_cta_iframe)\n });\n }\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n ngAfterViewInit() {\n this.uploader.changes.subscribe(() => {\n this.childList = this.uploader.toArray();\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private sortObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce((result, key) => {\n result[key] = obj[key];\n\n return result;\n }, {});\n }\n\n searchProduct(event) {\n this.productService\n .getProductList({ search: event?.query || '' }, this.subscriptionId)\n .subscribe(response => {\n this.productsList = this.groupProducts(response.products);\n });\n }\n\n private groupProducts(products) {\n if (products && products?.length) {\n products = products.filter(x => x.dependency_products?.length < 1 && x.active);\n products = groupBy(products, 'currency');\n products = this.sortObj(products);\n let groupedArray = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const p in products) {\n if (p in products) {\n const value = products[p].sort(\n (a, b) => Number(b.price_per_unit) - Number(a.price_per_unit)\n );\n groupedArray.push(...value);\n }\n }\n\n groupedArray = groupedArray.map(x => {\n return {\n id: x.id,\n name: `${x.name} | ${x.region} | ${x.billing_frequency} | ${x.min_units} x ${(\n x.price_per_unit / 100\n ).toFixed(2)} | ${x.currency}`\n };\n });\n\n return groupedArray;\n }\n\n return [];\n }\n\n onSaveFile(event) {\n const item: CustomUploaderComponent = this.childList.find(\n x => x.controlName === event.name\n );\n const formData = new FormData();\n const data = { subscription_id: this.subscriptionId };\n if (event.file) {\n data[event.name] = event.file;\n } else {\n data[`remove_${event.name}`] = true;\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, formData)\n : this.adminService.createDomainConfig(formData);\n\n sub$.subscribe(() => {\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe(response => {\n item.clearValues();\n this.data[event.name] = response[event.name];\n });\n }).add(() => {\n item.buttonBusy = false;\n item.onClose();\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n master_subscription_id: this.appConfig?.master_subscription?.subscription_id,\n subscription_id: this.subscriptionId,\n ...this.form.value\n };\n data.cs_product_id = this.form.get('cs_product_id').value?.id || null;\n data.trial_product_id = this.form.get('trial_product_id').value?.id || null;\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_, v]) => v !== null && v !== '')\n );\n filteredData['cs_cta_iframe'] = this.form.value?.cs_cta_iframe || '';\n filteredData['trial_cta_iframe'] = this.form.value?.trial_cta_iframe || '';\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: () => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate([this.routers.domainConfig]);\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<h3>Public Pages and Onboarding</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 <p>\n The following parameters and settings will be applied to all public pages of this given\n domain.\n </p>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.MasterSubscription' | transloco\"\n name=\"master_subscription_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.MasterSubscription' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{ 'is-invalid': submitted && f['master_subscription_id']?.errors }\"\n formControlName=\"master_subscription_id\">\n <option [value]=\"null\">Select Master Subscription</option>\n <option *ngFor=\"let item of masterSubscriptionsList\"\n [value]=\"item.id\">\n {{item?.organisation ? item?.organisation +' - '+ item.contact_name : item?.contact_name}}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.MasterSubscriptionProduct' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.MasterSubscriptionProduct' | transloco\n \"\n name=\"master_subscription_product_id\">\n <select class=\"form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['master_subscription_product_id']?.errors\n }\"\n formControlName=\"master_subscription_product_id\">\n <option [value]=\"null\">Select Master Product</option>\n <option *ngFor=\"let item of masterSubscriptionProductList\"\n [value]=\"item.id\">\n {{ item.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.BlogFeatureKey' | transloco\"\n name=\"blog_feature_key\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.BlogFeatureKey' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"blog_feature_key\"\n [ngClass]=\"{ 'is-invalid': submitted && f['blog_feature_key'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.MainTos' | transloco\"\n name=\"main_tos_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.MainTos' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{ 'is-invalid': submitted && f['main_tos_id']?.errors }\"\n formControlName=\"main_tos_id\">\n <option [value]=\"null\">Select Main TOS</option>\n <option *ngFor=\"let item of subscriptionTosList\"\n [value]=\"item.id\">\n <span [innerHTML]=\"item.title\"></span>\n </option>\n </select>\n </pw-input-container>\n </div>\n <!-- crm subscription fields -->\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CrmSubscription' | transloco\"\n name=\"crm_subscription_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CrmSubscription' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{ 'is-invalid': submitted && f['crm_subscription_id']?.errors }\"\n formControlName=\"crm_subscription_id\">\n <option [value]=\"null\">Select CRM Subscription</option>\n <option *ngFor=\"let item of crmSubscriptionsList\"\n [value]=\"item.id\">\n {{item?.organisation ? item?.organisation +' - '+ item.contact_name : item?.contact_name}}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CrmProduct' | transloco\"\n name=\"crm_product_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CrmProduct' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{ 'is-invalid': submitted && f['crm_product_id']?.errors }\"\n formControlName=\"crm_product_id\">\n <option [value]=\"null\">Select CRM Product</option>\n <option *ngFor=\"let item of crmProductList\"\n [value]=\"item.id\">\n {{item?.subscription_id ? item?.name +' - SubscriptionID = '+ item.subscription_id : item?.name}}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CrmSource' | transloco\"\n name=\"crm_source_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CrmSource' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{ 'is-invalid': submitted && f['crm_source_id']?.errors }\"\n formControlName=\"crm_source_id\">\n <option [value]=\"null\">Select CRM Source</option>\n <option *ngFor=\"let item of crmSourcesList\"\n [value]=\"item.id\">\n {{ item.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <!-- crm subscription fields end-->\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.IsProductDomain' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.IsProductDomain' | transloco\"\n name=\"is_product_domain\">\n <ui-switch size=\"small\"\n uncheckedLabel=\"false\"\n checkedLabel=\"true\"\n formControlName=\"is_product_domain\"\n name=\"is_product_domain\"\n [ngClass]=\"{ 'is-invalid': submitted && f['is_product_domain'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.Active' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.Active' | transloco\"\n name=\"active\">\n <ui-switch size=\"small\"\n uncheckedLabel=\"false\"\n checkedLabel=\"true\"\n formControlName=\"active\"\n name=\"active\"\n [ngClass]=\"{ 'is-invalid': submitted && f['active'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.NotifyLogins' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.NotifyLogins' | transloco\"\n name=\"notify_logins\">\n <ui-switch size=\"small\"\n uncheckedLabel=\"false\"\n checkedLabel=\"true\"\n formControlName=\"notify_logins\"\n name=\"notify_logins\"\n [ngClass]=\"{ 'is-invalid': submitted && f['notify_logins'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CanRegisterOnMainPage' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CanRegisterOnMainPage' | transloco\"\n name=\"can_register_through_main_page\">\n <ui-switch size=\"small\"\n uncheckedLabel=\"false\"\n checkedLabel=\"true\"\n formControlName=\"can_register_through_main_page\"\n name=\"can_register_through_main_page\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['can_register_through_main_page'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.SocialLoginEnabled' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.SocialLoginEnable' | transloco\"\n name=\"social_login_enabled\">\n <ui-switch size=\"small\"\n uncheckedLabel=\"false\"\n checkedLabel=\"true\"\n formControlName=\"social_login_enabled\"\n name=\"social_login_enabled\"\n [ngClass]=\"{ 'is-invalid': submitted && f['social_login_enabled'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"mt-3\"></div>\n <!-- cs start -->\n <p-accordion>\n <p-accordionTab [header]=\"'Coming soon pages - Subscribe to newsletter'\">\n <!-- live page link -->\n <div class=\"text-end\"\n *ngIf=\"shardUrl\">\n <span>See the live page <span class=\"tooltip-wrap ms-1\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.DomainConfig.Tooltip.SeeLiveCs' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span> :\n <a [href]=\"shardUrl + '/join/cs1'\"\n target=\"_blank\">{{ shardUrl }}/join/cs1</a></span>\n </div>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsProduct' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsProduct' | transloco\"\n name=\"cs_product_id\">\n <p-autoComplete [suggestions]=\"productsList\"\n formControlName=\"cs_product_id\"\n dataKey=\"id\"\n field=\"name\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n (completeMethod)=\"searchProduct($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('cs_product_id').touched &&\n form.get('cs_product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsCrmSourceId' | transloco\"\n name=\"cs_crm_source_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsCrmSourceId' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['cs_crm_source_id']?.errors\n }\"\n formControlName=\"cs_crm_source_id\">\n <option [value]=\"null\">Select CRM Source</option>\n <option *ngFor=\"let item of crmSourcesList\"\n [value]=\"item.id\">\n {{ item.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsPdfSourceId' | transloco\"\n name=\"cs_pdf_source_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsPdfSourceId' | transloco\">\n <select class=\"form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['cs_pdf_source_id']?.errors\n }\"\n formControlName=\"cs_pdf_source_id\">\n <option [value]=\"null\">Select CRM Source</option>\n <option *ngFor=\"let item of crmSourcesList\"\n [value]=\"item.id\">\n {{ item.name }}\n </option>\n </select>\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.CsVideoUrl' | transloco\"\n name=\"cs_video_url\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsVideoUrl' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"cs_video_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['cs_video_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsBookDemoUrl' | transloco\"\n name=\"cs_book_demo_url\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsBookDemoUrl' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"cs_book_demo_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['cs_book_demo_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsCtaIframe' | transloco\"\n name=\"cs_cta_iframe\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsCtaIframe' | transloco\">\n <textarea class=\"form-control\"\n rows=\"3\"\n formControlName=\"cs_cta_iframe\"\n [ngClass]=\"{ 'is-invalid': submitted && f['cs_cta_iframe'].errors }\">\n </textarea>\n </pw-input-container>\n </div>\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsJoinMessage' | transloco\"\n name=\"cs_join_message\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CsJoinMessage' | transloco\">\n <textarea class=\"form-control\"\n rows=\"3\"\n formControlName=\"cs_join_message\"\n [ngClass]=\"{ 'is-invalid': submitted && f['cs_join_message'].errors }\">\n </textarea>\n </pw-input-container>\n </div>\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CsPdfDownloadText' | transloco\"\n name=\"cs_pdf_download_text\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.CsPdfDownloadText' | transloco\n \">\n <textarea class=\"form-control\"\n rows=\"3\"\n formControlName=\"cs_pdf_download_text\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['cs_pdf_download_text'].errors\n }\">\n </textarea>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.CsImage' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.CsImage' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [aspectRatio]=\"'custom'\"\n [title]=\"'Cs Image'\"\n [controlName]=\"'cs_image'\"\n [previewData]=\"data['cs_image']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.CsImage2' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.CsImage2' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [aspectRatio]=\"'custom'\"\n [title]=\"'Cs Image2'\"\n [controlName]=\"'cs_image2'\"\n [previewData]=\"data['cs_image2']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.CsPdfImage' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.CsPdfImage' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [aspectRatio]=\"'custom'\"\n [title]=\"'Cs Pdf Image'\"\n [controlName]=\"'cs_pdf_image'\"\n [previewData]=\"data['cs_pdf_image']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.CsImageBg' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.CsImageBg' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [aspectRatio]=\"'custom'\"\n [title]=\"'Cs Pdf Image Bg'\"\n [controlName]=\"'cs_image_bg'\"\n [previewData]=\"data['cs_image_bg']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.CsImageBg2' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.CsImageBg2' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [aspectRatio]=\"'custom'\"\n [title]=\"'Cs Pdf Image Bg2'\"\n [controlName]=\"'cs_image_bg2'\"\n [previewData]=\"data['cs_image_bg2']\">\n </pw-custom-uploader>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n <!-- cs image section end -->\n <!-- cs fields end -->\n <div class=\"mt-3\"></div>\n <!-- trial start -->\n <p-accordion>\n <p-accordionTab [header]=\"'Join now pages - Subscribe to product'\">\n <!-- live page link -->\n <div class=\"text-end\"\n *ngIf=\"shardUrl\">\n <span>See the live page <span class=\"tooltip-wrap ms-1\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.DomainConfig.Tooltip.SeeLiveTrial' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span> :\n <a [href]=\"shardUrl + '/join/trial1'\"\n target=\"_blank\">{{ shardUrl }}/join/trial1</a></span>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialProduct' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.TrialProduct' | transloco\"\n name=\"trial_product_id\">\n <p-autoComplete [suggestions]=\"productsList\"\n formControlName=\"trial_product_id\"\n dataKey=\"id\"\n field=\"name\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n (completeMethod)=\"searchProduct($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('trial_product_id').touched &&\n form.get('trial_product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialCrmSourceId' | transloco\"\n name=\"trial_crm_source_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.TrialCrmSourceId' | transloco\n \">\n <select class=\"form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_crm_source_id']?.errors\n }\"\n formControlName=\"trial_crm_source_id\">\n <option [value]=\"null\">Select CRM Source</option>\n <option *ngFor=\"let item of crmSourcesList\"\n [value]=\"item.id\">\n {{ item.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialPdfSourceId' | transloco\"\n name=\"trial_pdf_source_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.TrialPdfSourceId' | transloco\n \">\n <select class=\"form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_pdf_source_id']?.errors\n }\"\n formControlName=\"trial_pdf_source_id\">\n <option [value]=\"null\">Select CRM Source</option>\n <option *ngFor=\"let item of crmSourcesList\"\n [value]=\"item.id\">\n {{ item.name }}\n </option>\n </select>\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.TrialVideoUrl' | transloco\"\n name=\"trial_video_url\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.TrialVideoUrl' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"trial_video_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['trial_video_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialBookDemoUrl' | transloco\"\n name=\"trial_book_demo_url\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.TrialBookDemoUrl' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"trial_book_demo_url\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_book_demo_url'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialCtaIframe' | transloco\"\n name=\"trial_cta_iframe\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.TrialCtaIframe' | transloco\n \">\n <textarea rows=\"3\"\n class=\"form-control\"\n formControlName=\"trial_cta_iframe\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_cta_iframe'].errors\n }\">\n </textarea>\n </pw-input-container>\n </div>\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialJoinMessage' | transloco\"\n name=\"trial_join_message\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.TrialJoinMessage' | transloco\n \">\n <textarea rows=\"3\"\n class=\"form-control\"\n formControlName=\"trial_join_message\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_join_message'].errors\n }\">\n </textarea>\n </pw-input-container>\n </div>\n <div class=\"col-12\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TrialPdfDownloadText' | transloco\"\n name=\"trial_pdf_download_text\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.DomainConfig.Tooltip.TrialPdfDownloadText' | transloco\n \">\n <textarea rows=\"3\"\n class=\"form-control\"\n formControlName=\"trial_pdf_download_text\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_pdf_download_text'].errors\n }\">\n </textarea>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.TrialImage' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.TrialImage' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [aspectRatio]=\"'custom'\"\n [title]=\"'Trial Image'\"\n [controlName]=\"'trial_image'\"\n [previewData]=\"data['trial_image']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.TrialImage2' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.TrialImage2' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [title]=\"'Trial Image2'\"\n [aspectRatio]=\"'custom'\"\n [controlName]=\"'trial_image2'\"\n [previewData]=\"data['trial_image2']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.TrialPdfImage' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.TrialPdfImage' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [title]=\"'Trial Pdf Image'\"\n [aspectRatio]=\"'custom'\"\n [controlName]=\"'trial_pdf_image'\"\n [previewData]=\"data['trial_pdf_image']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.TrialImageBg' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.TrialImageBg' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [title]=\"'Trial Image Bg'\"\n [aspectRatio]=\"'custom'\"\n [controlName]=\"'trial_image_bg'\"\n [previewData]=\"data['trial_image_bg']\">\n </pw-custom-uploader>\n </div>\n <div class=\"col-md-4\">\n <label>{{ 'Admin.DomainConfig.TrialImageBg2' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.TrialImageBg2' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"onSaveFile($event)\"\n [title]=\"'Trial Image Bg2'\"\n [aspectRatio]=\"'custom'\"\n [controlName]=\"'trial_image_bg2'\"\n [previewData]=\"data['trial_image_bg2']\">\n </pw-custom-uploader>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n <!-- trial image section end -->\n <!-- trial image section end -->\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","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-core',\n templateUrl: './domain-config-core.component.html'\n})\nexport class DomainConfigCoreComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n isLoading: boolean;\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n this.form = AppAdmin.domainConfigCoreForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getDomainConfigDetails() {\n this.isLoading = true;\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe((response: DomainConfig) => {\n this.data = response;\n this.form.patchValue(this.data);\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n subscription_id: this.subscriptionId,\n ...this.form.value\n };\n if (!this.id) {\n data.master_subscription_id = this.appConfig?.master_subscription?.subscription_id;\n }\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_, v]) => v !== null && v !== '')\n );\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: res => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate(\n [`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`],\n {\n queryParams: {\n tabId: 'Organization'\n }\n }\n );\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<h3>Core Config</h3>\n<form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [label]=\"'Admin.DomainConfig.HostName' | transloco\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.HostName' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.HostName' | transloco\"\n name=\"host_name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"host_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['host_name'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [label]=\"'Admin.DomainConfig.InternalPath' | transloco\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.InternalPath' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.InternalPath' | transloco\"\n name=\"internal_path\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"internal_path\"\n [ngClass]=\"{ 'is-invalid': submitted && f['internal_path'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [label]=\"'Admin.DomainConfig.ShardName' | transloco\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ShardName' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.ShardName' | transloco\"\n name=\"shard_name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"shard_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['shard_name'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [label]=\"'Admin.DomainConfig.ShardUrl' | transloco\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ShardUrl' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.ShardUrl' | transloco\"\n name=\"shard_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"shard_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['shard_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CompanyName' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.CompanyName' | transloco\"\n name=\"company_name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_name'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CompanyEmail' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.CompanyEmail' | transloco\"\n name=\"company_email\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_email\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_email'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.CompanyUrl' | transloco\"\n [errorMsg]=\"'Admin.DomainConfig.Validation.CompanyUrl' | transloco\"\n name=\"company_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_url'].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","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-organization',\n templateUrl: './domain-config-organization.component.html'\n})\nexport class DomainConfigOrganizationComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n isLoading: boolean;\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n this.form = AppAdmin.domainConfigOrganizationForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getDomainConfigDetails() {\n this.isLoading = true;\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe((response: DomainConfig) => {\n this.data = response;\n this.form.patchValue(this.data);\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_, v]) => v !== null && v !== '')\n );\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: res => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate(\n [`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`],\n {\n queryParams: {\n tabId: 'Integrations'\n }\n }\n );\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<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","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-security',\n templateUrl: './domain-config-security.component.html'\n})\nexport class DomainConfigSecurityComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n isLoading: boolean;\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n this.form = AppAdmin.domainConfigSecurityForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getDomainConfigDetails() {\n this.isLoading = true;\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe((response: DomainConfig) => {\n this.data = response;\n this.form.patchValue(this.data);\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_, v]) => v !== null && v !== '')\n );\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: res => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate(\n [`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`],\n {\n queryParams: {\n tabId: 'Social'\n }\n }\n );\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<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","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-social',\n templateUrl: './domain-config-social.component.html'\n})\nexport class DomainConfigSocialComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n isLoading: boolean;\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n this.form = AppAdmin.domainConfigSocialForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getDomainConfigDetails() {\n this.isLoading = true;\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe(response => {\n this.data = response;\n this.form.patchValue(this.data);\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_, v]) => v !== null && v !== '')\n );\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: res => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate(\n [`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`],\n {\n queryParams: {\n tabId: 'Interface'\n }\n }\n );\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<h3>Social Presence</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>Twitter SEO</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TwitterSeoCard' | transloco\"\n name=\"twitter_seo_card\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"twitter_seo_card\"\n [ngClass]=\"{ 'is-invalid': submitted && f['twitter_seo_card'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TwitterSeoSite' | transloco\"\n name=\"twitter_seo_site\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"twitter_seo_site\"\n [ngClass]=\"{ 'is-invalid': submitted && f['twitter_seo_site'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TwitterSeoCreator' | transloco\"\n name=\"twitter_seo_creator\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"twitter_seo_creator\"\n [ngClass]=\"{ 'is-invalid': submitted && f['twitter_seo_creator'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <!-- social networks -->\n <h5>Social Networks</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.LinkedInUrl' | transloco\"\n name=\"linkedin_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"linkedin_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['linkedin_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.TwitterUrl' | transloco\"\n name=\"twitter_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"twitter_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['twitter_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.FacebookUrl' | transloco\"\n name=\"facebook_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"facebook_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['facebook_url'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.YoutubeUrl' | transloco\"\n name=\"youtube_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"youtube_url\"\n id=\"youtube_url\"\n [ngClass]=\"{ 'is-invalid': submitted && f['youtube_url'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <!-- social networks end -->\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","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-integrations',\n templateUrl: './domain-config-integrations.component.html'\n})\nexport class DomainConfigIntegrationsComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n isLoading: boolean;\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n this.form = AppAdmin.domainConfigIntegrationsForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getDomainConfigDetails() {\n this.isLoading = true;\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe((response: DomainConfig) => {\n this.data = response;\n this.form.patchValue(this.data);\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_, v]) => v !== null && v !== '')\n );\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: res => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate(\n [`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`],\n {\n queryParams: {\n tabId: 'Security'\n }\n }\n );\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<h3>Integrations</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-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.IntegrationCaptchaKey' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationCaptchaKey' | transloco\"\n name=\"integrations_captcha_key\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_captcha_key\"\n [ngClass]=\"{ 'is-invalid': submitted && f.integrations_captcha_key.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.IntegrationCaptchaKeyV2' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationCaptchaKeyV2' | transloco\"\n name=\"integrations_captcha_key_V2\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_captcha_key_V2\"\n [ngClass]=\"{\n 'is-invalid': submitted && f.integrations_captcha_key_V2.errors\n }\" />\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.IntegrationGoogleAnalytics' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationGoogleAnalytics' | transloco\"\n name=\"integrations_google_analytics\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_google_analytics\"\n [ngClass]=\"{\n 'is-invalid': submitted && f.integrations_google_analytics.errors\n }\" />\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.IntegrationsGoogleApiKey' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationsGoogleApiKey' | transloco\"\n name=\"integrations_google_api_key\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_google_api_key\"\n [ngClass]=\"{\n 'is-invalid': submitted && f.integrations_google_api_key.errors\n }\" />\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.IntegrationsSentryConfigDns' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationsSentryConfigDns' | transloco\"\n name=\"integrations_sentry_config_dns\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_sentry_config_dns\"\n [ngClass]=\"{\n 'is-invalid': submitted && f.integrations_sentry_config_dns.errors\n }\" />\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.IntegrationDriftCode' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationDriftCode' | transloco\"\n name=\"integrations_drift_code\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_drift_code\"\n [ngClass]=\"{ 'is-invalid': submitted && f.integrations_drift_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.IntegrationFbAppId' | transloco\"\n [label]=\"'Admin.DomainConfig.IntegrationFbAppId' | transloco\"\n name=\"integrations_fb_app_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"integrations_fb_app_id\"\n [ngClass]=\"{ 'is-invalid': submitted && f.integrations_fb_app_id.errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'This is the token you need to append to all webhooks. Eg: /integrations-api/v1/paypal/{your_token}'\"\n [label]=\"'Admin.DomainConfig.WebhookToken' | transloco\"\n name=\"webhook_token\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"webhook_token\"\n [ngClass]=\"{ 'is-invalid': submitted && f?.webhook_token?.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","import { AfterViewInit, Component, Injector, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../../admin.service';\nimport { DomainConfig } from '../../../../shared/interface/domain-config.interface';\nimport { AppAdmin } from '../../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomUploaderComponent } from '@posiwise/shared-components';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-interface',\n templateUrl: './domain-config-interface.component.html'\n})\nexport class DomainConfigInterfaceComponent\n extends AppBaseComponent\n implements OnInit, AfterViewInit\n{\n @ViewChildren(CustomUploaderComponent) uploader: QueryList<CustomUploaderComponent>;\n\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n isLoading: boolean;\n\n childList = [];\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n this.form = AppAdmin.domainConfigInterfaceForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n }\n\n ngAfterViewInit() {\n this.uploader.changes.subscribe(() => {\n this.childList = this.uploader.toArray();\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getDomainConfigDetails() {\n this.isLoading = true;\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe((response: DomainConfig) => {\n this.data = response;\n this.form.patchValue(this.data);\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n saveFile(event) {\n const item: CustomUploaderComponent = this.childList.find(\n x => x.controlName === event.name\n );\n const formData = new FormData();\n const data = { subscription_id: this.subscriptionId };\n if (event.file) {\n data[event.name] = event.file;\n } else {\n data[`remove_${event.name}`] = true;\n }\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, formData)\n : this.adminService.createDomainConfig(formData);\n\n sub$.subscribe(() => {\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe(response => {\n item.clearValues();\n this.data[event.name] = response[event.name];\n });\n }).add(() => {\n item.buttonBusy = false;\n item.onClose();\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const filteredData = Object.fromEntries(\n Object.entries(data).filter(([_key, value]) => value !== null && value !== '')\n );\n const sub$ = this.id\n ? this.adminService.updateDomainConfig(this.id, filteredData)\n : this.adminService.createDomainConfig(filteredData);\n sub$.subscribe({\n next: res => {\n this.toast.success(this.translation.translate('Admin.DomainConfig.UpdatedMessage'));\n this.router.navigate(\n [`${this.routers.domainConfigDetails}${this.id ? this.id : res.id}`],\n {\n queryParams: {\n tabId: 'Build'\n }\n }\n );\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<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","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { DomainConfig } from '../../../shared/interface/domain-config.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { appendQueryParam } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-domain-config-details',\n templateUrl: './domain-config-details.component.html'\n})\nexport class DomainConfigDetailsComponent extends AppBaseComponent implements OnInit {\n id: number;\n\n data: DomainConfig;\n\n routers = ROUTERS;\n\n isLoading: boolean;\n\n subscriptionId: number;\n\n activeTab = 'Core';\n\n constructor(injector: Injector, private adminService: AdminService) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getDomainConfigDetails();\n }\n });\n this.route.queryParams.subscribe(res => {\n this.activeTab = res['tabId'] || 'Core';\n });\n }\n\n onTabChange(event) {\n appendQueryParam(this.router, this.route, {\n tabId: event.nextId\n });\n }\n\n private getDomainConfigDetails() {\n this.adminService\n .getDomainConfigById(this.id, this.subscriptionId)\n .subscribe((response: DomainConfig) => {\n this.data = response;\n });\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n [routerLink]=\"[routers.domainConfig]\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i>\n </a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Domain Config: {{ data?.host_name ? data?.host_name : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"activeTab\"\n (navChange)=\"onTabChange($event)\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'Core'\">\n <a ngbNavLink>Core</a>\n <ng-template ngbNavContent>\n <pw-domain-config-core></pw-domain-config-core>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'Organization'\">\n <a ngbNavLink>Organization</a>\n <ng-template ngbNavContent>\n <pw-domain-config-organization></pw-domain-config-organization>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'Integrations'\">\n <a ngbNavLink>Integrations</a>\n <ng-template ngbNavContent>\n <pw-domain-config-integrations></pw-domain-config-integrations>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'Security'\">\n <a ngbNavLink>Security</a>\n <ng-template ngbNavContent>\n <pw-domain-config-security></pw-domain-config-security>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'Social'\">\n <a ngbNavLink>Social</a>\n <ng-template ngbNavContent>\n <pw-domain-config-social></pw-domain-config-social>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'Interface'\">\n <a ngbNavLink>Interface</a>\n <ng-template ngbNavContent>\n <pw-domain-config-interface></pw-domain-config-interface>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'Build'\">\n <a ngbNavLink>Build</a>\n <ng-template ngbNavContent>\n <pw-domain-config-build></pw-domain-config-build>\n </ng-template>\n </li>\n </ul>\n\n <div [ngbNavOutlet]=\"nav\"></div>\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { DomainConfigResponse } from '../../../shared/interface/domain-config.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-domain-config-list',\n templateUrl: './domain-config-list.component.html'\n})\nexport class DomainConfigListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: DomainConfigResponse = {\n domains: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n searchText = '';\n\n loading = true;\n\n isLoaded = false;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getDomainConfigs({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getDomainConfigs(paging: Paging) {\n this.adminService\n .getAllDomainConfig(paging, this.subscriptionId)\n .subscribe((response: DomainConfigResponse) => {\n this.data = response;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n onDelete(id: number) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService.deleteDomainConfig(id, this.subscriptionId).subscribe(res => {\n this.toast.success(res?.message);\n this.getDomainConfigs({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end my-3\">\n <h2 class=\"card-title p-0 float-start\">Domain Configs</h2>\n <button class=\"btn btn-outline-primary btn-sm float-end m-0\"\n [routerLink]=\"[routers.domainConfigDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Domain Config\n </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #tt\n [value]=\"data.domains\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [lazy]=\"true\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <!--sort order should be default empty when page load-->\n\n <!-- Caption Header, Search Bar -->\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n pInputText\n size=\"50\"\n placeholder=\"Search\"\n [(ngModel)]=\"searchText\"\n (input)=\"tt.filterGlobal($event.target.value, 'contains')\" />\n </div>\n </ng-template>\n\n <!-- Column Header -->\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"host_name\">\n {{ 'Admin.DomainConfig.HostName' | transloco }}\n <p-sortIcon field=\"host_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"internal_path\">\n {{ 'Admin.DomainConfig.InternalPath' | transloco }}\n <p-sortIcon field=\"internal_path\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"shard_name\">\n {{ 'Admin.DomainConfig.ShardName' | transloco }}\n <p-sortIcon field=\"shard_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"shard_url\">\n {{ 'Admin.DomainConfig.ShardUrl' | transloco }}\n <p-sortIcon field=\"shard_url\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"company_name\">\n {{ 'Admin.DomainConfig.CompanyName' | transloco }}\n <p-sortIcon field=\"company_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"company_email\">\n {{ 'Admin.DomainConfig.CompanyUrl' | transloco }}\n <p-sortIcon field=\"company_email\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"social_login_enabled\">\n {{ 'Admin.DomainConfig.SocialLoginEnabled' | transloco }}\n <p-sortIcon field=\"social_login_enabled\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n\n <!-- Table Body -->\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"host_name\">{{ item?.host_name }}</td>\n <td data-head=\"internal_path\">{{ item?.internal_path }}</td>\n <td data-head=\"shard_name\">{{ item?.shard_name }}</td>\n <td data-head=\"shard_url\">{{ item?.shard_url }}</td>\n <td data-head=\"company_name\">{{ item?.company_name }}</td>\n <td data-head=\"company_email\">{{ item?.company_email }}</td>\n <td data-head=\"social_login_enabled\">\n <span [appDynamicBadge]=\"{\n itemsArray: [true, false],\n item: item?.social_login_enabled\n }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.social_login_enabled ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n [routerLink]=\"[routers.domainConfigDetails + item?.id]\"\n class=\"me-2 me-sm-3\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(item?.id)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">Total: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.DomainConfig.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class DomainConfigTabsComponent {\n items: MenuItem[] = [\n {\n id: 'domain-config',\n label: 'Domain Config',\n icon: 'fa fa-fw fa-cog',\n routerLink: ['/admin/domain-config/list']\n }\n ];\n}\n","import { Component, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup, NgForm } from '@angular/forms';\nimport groupBy from 'lodash/groupBy';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Product, FAQ } from '@posiwise/common-utilities';\nimport { CommonService, PermissionService, ProductService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-faq-list',\n templateUrl: './faqs-list.component.html',\n styleUrls: ['./faqs-list.component.scss']\n})\nexport class FaqListComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n faqs: FAQ[] = [];\n\n faqList: FAQ[] = [];\n\n backUpFAQ: FAQ[] = [];\n\n submitted = false;\n\n isLoaded = false;\n\n @ViewChild('editForm', { static: false }) editForm: NgForm;\n\n currentFaq: any;\n\n categories = [];\n\n isProductEnabled = true;\n\n productList: any = [];\n\n searchText: string;\n\n allProducts: Product[] = [];\n\n allFaqs = [];\n\n showList = true;\n\n showFilters = true;\n\n defaultValue = null;\n\n totalRecordsUnFilter: number;\n\n totalRecords: number;\n\n subscriptionId: number;\n\n featureKeysList = [];\n\n selectedFeatureKeys = [];\n\n buttonBusy = false;\n\n categoryForBadges = [];\n\n slug: any;\n\n faqHashMap = {};\n\n constructor(\n private commonService: CommonService,\n private adminService: AdminService,\n private productService: ProductService,\n injector: Injector\n ) {\n super(injector);\n this.form = AppAdmin.getFaqForm();\n }\n\n ngOnInit() {\n this.slug = PermissionService.selectedSubscription?.slug;\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.getCategories();\n this.getFaqs();\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getFaqs() {\n this.categories = [];\n this.faqHashMap = {};\n const params = {\n subscription_id: this.subscriptionId,\n feature_key: this.selectedFeatureKeys.join(',') || ''\n };\n this.commonService.getFaq(params).subscribe(response => {\n this.isLoaded = true;\n this.faqs = response.faqs;\n this.allFaqs = response.faqs;\n this.totalRecords = response.object_count;\n this.totalRecordsUnFilter = response.unfiltered_count;\n this.faqs = this.faqs.map(x => {\n x.isEdit = false;\n\n return x;\n });\n\n this.backUpFAQ = [...this.faqs];\n response?.available_category?.forEach(x => {\n this.faqHashMap[x.key] = x;\n });\n\n const categories = response.available_category;\n this.categoryForBadges = response.available_category.map(x => x.key);\n categories.forEach(element => {\n this.categories.push({\n label: element.name,\n value: element.key\n });\n });\n this.allFaqs = this.faqs;\n this.faqList = this.faqs;\n });\n }\n\n onSubmit() {\n this.form.markAllAsTouched();\n if (this.form.valid) {\n this.submitted = true;\n this.faqs = this.allFaqs;\n this.addNew();\n }\n }\n\n onCancel() {\n this.faqs = this.allFaqs;\n this.showFilters = true;\n }\n\n /** Function to filter faq list */\n filterFaq() {\n if (this.searchText) {\n const searchedList = this.faqList.filter(\n faq =>\n faq['question'].toLowerCase().includes(this.searchText.toLowerCase()) ||\n faq['answer'].toLowerCase().includes(this.searchText.toLowerCase())\n );\n this.faqs = searchedList;\n } else {\n this.faqs = this.faqList;\n }\n }\n\n addNew() {\n this.buttonBusy = true;\n this.adminService\n .postFaq(this.form.value, this.subscriptionId)\n .subscribe(response => {\n const item = new FAQ(response.id, response.question, response.answer);\n this.getFaqs();\n this.faqs.unshift(item);\n this.form.reset();\n this.isProductEnabled = true;\n $('[href=\"#faqCollapse\"]').trigger('click');\n this.toast.success(this.translation.translate('Admin.Faq.AddedMessage'));\n })\n .add(() => (this.buttonBusy = false));\n }\n\n private getCategories() {\n this.productService\n .getProducts({\n subscription_id: this.subscriptionId\n })\n .subscribe(resp => {\n if (resp.products) {\n this.allProducts = resp.products;\n this.productList = this.groupProducts(resp.products);\n this.productList.unshift({ label: 'Select Product', value: null });\n this.form.get('product_id').setValue(this.productList[0].value);\n const featureKeys = Array.from(\n new Set(resp.products.map(item => item?.feature_key))\n );\n this.featureKeysList = featureKeys.map(element => {\n return {\n value: element,\n label: element\n };\n });\n }\n });\n }\n\n private sortObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce((result, key) => {\n result[key] = obj[key];\n\n return result;\n }, {});\n }\n\n private groupProducts(products) {\n if (products && products?.length) {\n products = products.filter(x => x.dependency_products?.length < 1 && x.active);\n products = groupBy(products, 'currency');\n products = this.sortObj(products);\n let groupedArray = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const p in products) {\n if (p in products) {\n const value = products[p].sort(\n (a, b) => Number(b.price_per_unit) - Number(a.price_per_unit)\n );\n groupedArray.push(...value);\n }\n }\n groupedArray = groupedArray.map(x => {\n return {\n value: x.id,\n label: `${x.name} | ${x.region} | ${x.billing_frequency} | ${x.min_units} x ${(\n x.price_per_unit / 100\n ).toFixed(2)} | ${x.currency}`\n };\n });\n\n return groupedArray;\n }\n\n return [];\n }\n\n onProductChange(event) {\n this.searchText = '';\n this.selectedFeatureKeys = event.value;\n this.getFaqs();\n }\n\n onChange(item) {\n this.isProductEnabled = item.value !== 'product';\n if (this.isProductEnabled) {\n this.form.get('product_id').setValue(null);\n } else {\n this.form.get('product_id');\n }\n }\n\n onUpdate(form) {\n this.showFilters = true;\n const data = {\n id: this.currentFaq.id,\n question: form['question'],\n answer: form['answer'],\n category: form['category'],\n position: form['position'],\n product_id: form['product_id'],\n feature_keys: form['feature_keys'],\n is_shared_faq: form['is_shared_faq'],\n is_admin_faq: form['is_admin_faq'],\n is_build_faq: form['is_build_faq']\n };\n this.buttonBusy = true;\n this.adminService\n .putFaq(data, this.subscriptionId)\n .subscribe({\n next: response => {\n this.currentFaq = response;\n this.getFaqs();\n this.toast.success(this.translation.translate('Admin.Faq.UpdatedMessage'));\n }\n })\n .add(() => (this.buttonBusy = false));\n }\n\n onEdit(faq: FAQ) {\n this.faqs.forEach(item => {\n item.isEdit = false;\n });\n faq.isEdit = true;\n this.showFilters = false;\n this.faqs = this.faqs.filter(item => item.id === faq.id);\n if (faq.product_id === null) {\n this.isProductEnabled = true;\n } else {\n this.isProductEnabled = false;\n }\n this.currentFaq = { ...faq };\n }\n\n onDelete(faq: FAQ) {\n swal.fire({\n title: 'Delete',\n\n html: `Are you sure you want to delete?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.deleteFaq(faq.id, this.subscriptionId).subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Faq.DeletedMessage'));\n this.getFaqs();\n });\n }\n });\n }\n\n onValueChange(faq: FAQ, value: boolean) {\n const data = {\n id: faq.id,\n visible: value\n };\n\n this.adminService.putFaq(data, this.subscriptionId).subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Faq.UpdatedMessage'));\n });\n }\n\n onPublicValueChange(faq: FAQ, value: boolean) {\n const data = {\n id: faq.id,\n public: value\n };\n\n this.adminService.putFaq(data, this.subscriptionId).subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Faq.UpdatedMessage'));\n });\n }\n\n onDiscard(faq: FAQ) {\n const item = this.backUpFAQ.find(x => x.id === faq.id);\n this.currentFaq = { ...item };\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\"\n [class.custom-disable-wrapper]=\"buttonBusy\">\n <div class=\"col-12 d-flex flex-wrap justify-content-between align-items-center my-3\"\n *rbacAllow=\"'Pages.Admin.FAQ.Create'\">\n <h2 class=\"card-title p-0 float-start\">FAQ</h2>\n <a href=\"javascript:void(0)\"\n *ngIf=\"showList\"\n (click)=\"showList = !showList\"\n class=\"btn btn-sm btn-outline-primary float-end\"\n role=\"button\"\n aria-expanded=\"false\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Label.AddNew' | transloco }} FAQ\n </a>\n </div>\n</div>\n<!-- Add FAQ Section -->\n<div *ngIf=\"!showList\"\n [class.custom-disable-wrapper]=\"buttonBusy\">\n <div class=\"row\">\n <div class=\"col-12\">\n <h4 class=\"fw-bold mb-4\">{{ 'Label.AddNew' | transloco }} FAQ</h4>\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\">\n <div class=\"row\">\n <pw-input-container class=\"col-12\"\n [label]=\"'Admin.Faq.Question' | transloco\"\n name=\"question\"\n [errorMsg]=\"'Admin.Faq.Validation.FieldRequired' | transloco\">\n <input type=\"text\"\n formControlName=\"question\"\n class=\"form-control\"\n [ngClass]=\"{ 'is-invalid': submitted && f['question'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"row\">\n <pw-input-container class=\"col-12\"\n [label]=\"'Admin.Faq.Answer' | transloco\"\n name=\"answer\"\n [errorMsg]=\"'Admin.Faq.Validation.FieldRequired' | transloco\">\n <quill-editor [styles]=\"{ height: '200px' }\"\n formControlName=\"answer\"\n [ngClass]=\"{ 'is-invalid': submitted && f['answer'].errors }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"row justify-content-between\">\n <div class=\"col-lg-2\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Faq.Tooltip.Category' | transloco\"\n [label]=\"'Admin.Faq.Category' | transloco\"\n name=\"category\"\n [errorMsg]=\"'Admin.Faq.Validation.FieldRequired' | transloco\">\n <p-dropdown [options]=\"categories\"\n class=\"dropdown-bg-transparent\"\n (onChange)=\"onChange($event)\"\n placeholder=\"Select\"\n formControlName=\"category\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </pw-input-container>\n </div>\n <div class=\"col-lg-2\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Faq.Tooltip.Product' | transloco\"\n [label]=\"'Admin.Faq.Product' | transloco\"\n name=\"product_id\"\n [errorMsg]=\"'Admin.Faq.Validation.FieldRequired' | transloco\">\n <p-dropdown [options]=\"productList\"\n class=\"dropdown-bg-transparent\"\n formControlName=\"product_id\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </pw-input-container>\n </div>\n <!-- Features keys-->\n <div class=\"col-lg-2\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Faq.Tooltip.Features' | transloco\"\n [label]=\"'Admin.Faq.Features' | transloco\"\n name=\"feature_keys\">\n <p-multiSelect [options]=\"featureKeysList\"\n defaultLabel=\"Select feature keys\"\n [showHeader]=\"true\"\n [showToggleAll]=\"true\"\n formControlName=\"feature_keys\"\n appendTo=\"body\"></p-multiSelect>\n </pw-input-container>\n </div>\n <div class=\"col-lg-2\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Faq.Tooltip.Position' | transloco\"\n [label]=\"'Admin.Faq.Position' | transloco\"\n name=\"position\"\n [errorMsg]=\"'Admin.Faq.Validation.FieldRequired' | transloco\">\n <div class=\"position\">\n <input type=\"number\"\n min=\"0\"\n formControlName=\"position\"\n class=\"form-control\" />\n </div>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-4 col-lg-2\">\n <label>{{ 'Admin.Faq.Visible' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Visible' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch formControlName=\"visible\"></ui-switch>\n </div>\n <div class=\"col-4 col-lg-2\">\n <label>{{ 'Admin.Faq.Public' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Public' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch formControlName=\"public\"></ui-switch>\n </div>\n\n </div>\n <div class=\"row\"\n *rbacAllow=\"'SuperAdmin'\">\n <div class=\"col-4 col-lg-2\">\n <label class=\"text-warning\">{{ 'Admin.Faq.SharedFaq' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.SharedFaq' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch name=\"is_shared_faq\"\n formControlName=\"is_shared_faq\"></ui-switch>\n </div>\n <div class=\"col-4 col-lg-2\">\n <label class=\"text-warning\">{{ 'Admin.Faq.AdminFaq' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.AdminFaq' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch formControlName=\"is_admin_faq\"\n name=\"is_admin_faq\"></ui-switch>\n </div>\n <div class=\"col-4 col-lg-2\">\n <label class=\"text-warning\">{{ 'Admin.Faq.BuildFaq' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.BuildFaq' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch formControlName=\"is_build_faq\"\n name=\"is_build_faq\"></ui-switch>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mt-4\">\n <div class=\"mb-3 text-end\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n data-bs-toggle=\"collapse\"\n href=\"#faqCollapse\"\n role=\"button\"\n aria-expanded=\"false\"\n aria-controls=\"faqCollapse\"\n (click)=\"\n form.reset(); showList = !showList; isProductEnabled = true\n \">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button class=\"btn btn-primary\"\n [buttonBusy]=\"buttonBusy\">{{ 'Button.Save' | transloco }}</button>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>\n<!-- FAQ List/Edit -->\n<div class=\"row faqlist primeng-datatable-container mt-0\"\n *ngIf=\"showList\"\n [class.custom-disable-wrapper]=\"buttonBusy\">\n <div class=\"col-12 px-0\">\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <p-table [value]=\"faqs\"\n [responsive]=\"true\"\n *ngIf=\"isLoaded\"\n [class.hideTable]=\"totalRecordsUnFilter === 0\">\n <ng-template pTemplate=\"caption\">\n <div class=\"search-filter\">\n <div class=\"col-sm-4\">\n <p-multiSelect [showToggleAll]=\"true\"\n [options]=\"featureKeysList\"\n (onChange)=\"onProductChange($event)\"\n placeholder=\"Search by Feature keys\"\n [showHeader]=\"true\"\n maxSelectedLabels=\"2\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search FAQ...\"\n (input)=\"filterFaq()\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Admin.Faq.Question' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Faq.Answer' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Faq.Position' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Faq.Category' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Faq.Visible' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Faq.Public' | transloco }}</th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-faq>\n <tr>\n <td data-head=\"Question\">{{ faq.question }}\n\n </td>\n <td data-head=\"Answer\">{{(faq.answer|removeHtml)|textTruncate: 200}}\n </td>\n <td data-head=\"Position\">{{faq.position}}</td>\n <td data-head=\"Category\">\n <span [appDynamicBadge]=\"{ itemsArray: categoryForBadges, item: faq?.category }\"\n color=\"cyan\"\n class=\"badge ms-1\">\n <span [pTooltip]=\"faq?.feature_keys?.join(',')\"\n tooltipPosition=\"top\">{{ faqHashMap[faq?.category]?.name }}</span>\n </span>\n <span class=\"ms-1 badge bg-warning\"\n *ngIf=\"faq.is_shared_faq || faq.is_admin_faq || faq.is_build_faq\">Super FAQ</span>\n </td>\n <td data-head=\"Visible\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: faq?.visible }\"\n color=\"success-danger\"\n class=\"badge\">{{ faq?.visible }}</span>\n </td>\n <td data-head=\"Public\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: faq?.public }\"\n color=\"success-danger\"\n class=\"badge\">{{ faq?.public }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-2\">\n <i\n class=\"fa fa-edit edit-icon\"\n (click)=\"onEdit(faq)\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-2\">\n <i\n class=\"fa fa-trash delete-icon\"\n (click)=\"onDelete(faq)\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <li ngbTooltip=\"View faq\">\n <a [routerLink]=\"['/',slug,'faq',faq.id]\"\n target=\"_blank\">\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </a>\n </li>\n </ul>\n </td>\n </tr>\n <tr *ngIf=\"faq.isEdit\">\n <td colspan=\"6\">\n <form (ngSubmit)=\"onSubmit()\"\n #editForm=\"ngForm\">\n <div class=\"mb-3\">\n <label for=\"name\">{{ 'Admin.Faq.Question' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n required\n [(ngModel)]=\"currentFaq.question\"\n name=\"question\"\n #question=\"ngModel\" />\n <small class=\"form-text text-muted danger\"\n *ngIf=\"!question.valid && (question.dirty || question.touched)\">\n Please enter a question</small>\n </div>\n <div class=\"mb-3\">\n <label>{{ 'Admin.Faq.Answer' | transloco }}</label>\n <quill-editor [styles]=\"{ height: '200px' }\"\n [(ngModel)]=\"currentFaq.answer\"\n name=\"answer\"\n required\n #answer=\"ngModel\"></quill-editor>\n <small class=\"form-text text-muted danger\"\n *ngIf=\"!answer.valid && (answer.dirty || answer.touched)\">\n Please enter an answer</small>\n </div>\n <div class=\"row no-gutters justify-content-between\">\n <div class=\"col-lg-2\">\n <label>{{ 'Admin.Faq.Category' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Category' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <p-dropdown [options]=\"categories\"\n name=\"category\"\n [required]=\"true\"\n [(ngModel)]=\"currentFaq.category\"\n (onChange)=\"onChange($event)\"\n [style]=\"{ width: '100%' }\"\n class=\"custom-dropdown\">\n </p-dropdown>\n </div>\n <div class=\"col-lg-2\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <label>{{ 'Admin.Faq.Product' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Product' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <p-dropdown [options]=\"productList\"\n name=\"product_id\"\n [required]=\"true\"\n [(ngModel)]=\"currentFaq.product_id\"\n [style]=\"{ width: '100%' }\"\n class=\"custom-dropdown\">\n </p-dropdown>\n </div>\n <!-- feature keys -->\n <div class=\"col-lg-2\">\n <div class=\"mb-3\">\n <label for=\"\">{{ 'Admin.Faq.Features' | transloco }}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Features' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label>\n <p-multiSelect [options]=\"featureKeysList\"\n defaultLabel=\"Select feature keys\"\n [showHeader]=\"true\"\n [showToggleAll]=\"true\"\n [(ngModel)]=\"currentFaq.feature_keys\"\n [ngModelOptions]=\"{ standalone: true }\"\n appendTo=\"body\"></p-multiSelect>\n </div>\n </div>\n <div class=\"col-lg-2\">\n <label for=\"\">{{ 'Admin.Faq.Position' | transloco }}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Position' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label>\n <input type=\"number\"\n name=\"position\"\n class=\"form-control\"\n required\n [(ngModel)]=\"currentFaq.position\" />\n </div>\n <div class=\"col-4 col-lg-1\">\n <label>{{ 'Admin.Faq.Visible' | transloco}}\n <span class=\"tooltip-wrap \"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Visible' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label>\n <div>\n <ui-switch class=\"visible\"\n [checked]=\"currentFaq.visible\"\n (valueChange)=\"onValueChange(currentFaq, $event)\">\n </ui-switch>\n </div>\n </div>\n <div class=\"col-4 col-lg-1\">\n <label>{{ 'Admin.Faq.Public' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.Public' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label>\n <div>\n <ui-switch class=\"public\"\n [checked]=\"currentFaq.public\"\n (valueChange)=\"onPublicValueChange(currentFaq, $event)\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row\"\n *rbacAllow=\"'SuperAdmin'\">\n <div class=\"col-4 col-lg-2\">\n <label class=\"text-warning\">{{ 'Admin.Faq.SharedFaq' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.SharedFaq' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch [checked]=\"currentFaq.is_shared_faq\"\n name=\"is_shared_faq\"\n [(ngModel)]=\"currentFaq.is_shared_faq\"></ui-switch>\n </div>\n <div class=\"col-4 col-lg-2\">\n <label class=\"text-warning\">{{ 'Admin.Faq.AdminFaq' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.AdminFaq' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch [checked]=\"currentFaq.is_admin_faq\"\n name=\"is_admin_faq\"\n [(ngModel)]=\"currentFaq.is_admin_faq\"></ui-switch>\n </div>\n <div class=\"col-4 col-lg-2\">\n <label class=\"text-warning\">{{ 'Admin.Faq.BuildFaq' | transloco}}\n <span class=\"tooltip-wrap\"\n [appendTo]=\"'body'\"\n [pTooltip]=\"'Admin.Faq.Tooltip.BuildFaq' | transloco\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label><br />\n <ui-switch [checked]=\"currentFaq.is_build_faq\"\n name=\"is_build_faq\"\n [(ngModel)]=\"currentFaq.is_build_faq\"></ui-switch>\n </div>\n </div>\n </form>\n <div class=\"text-end\">\n <ng-container *rbacAllow=\"'Pages.Admin.FAQ.Delete'\">\n <button class=\"btn btn-outline-danger me-2\"\n *ngIf=\"!faq.isEdit\"\n (click)=\"onDelete(faq)\">\n Delete\n </button>\n </ng-container>\n <button class=\"btn btn-outline-default me-2\"\n *ngIf=\"faq.isEdit\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#collapseEdit\"\n aria-expanded=\"false\"\n aria-controls=\"collapseEdit\"\n (click)=\"faq.isEdit = !faq.isEdit; onCancel()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <ng-container *rbacAllow=\"'Pages.Admin.FAQ.Edit'\">\n <button class=\"btn btn-primary me-2\"\n *ngIf=\"!faq.isEdit\"\n (click)=\"onEdit(faq)\">\n {{ 'Button.Edit' | transloco }}\n </button>\n <button class=\"btn btn-primary me-2\"\n [buttonBusy]=\"buttonBusy\"\n *ngIf=\"faq.isEdit\"\n (click)=\"onUpdate(currentFaq)\">\n {{ 'Button.Update' | transloco }}\n </button>\n </ng-container>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <pw-no-data [message]=\"'Admin.Faq.NoDataMessage' | transloco\"\n *ngIf=\"totalRecordsUnFilter === 0\">\n </pw-no-data>\n <pw-no-data message=\"No Result\"\n *ngIf=\"faqs.length === 0\"> </pw-no-data>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class FaqTabsComponent {\n items: MenuItem[] = [\n {\n id: 'faq',\n label: 'FAQs',\n icon: 'far fa-fw fa-book',\n routerLink: ['/admin/faq/list']\n }\n ];\n}\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { FeedbackQuestion } from '../../../shared/interface/feedback-question.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Product } from '@posiwise/common-utilities';\nimport { PermissionService, ProductService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-feedback-questions-details',\n templateUrl: './feedback-questions-details.component.html'\n})\nexport class FeedbackQuestionsDetailsComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: FeedbackQuestion;\n\n routers = ROUTERS;\n\n productId: number;\n\n productData: Product;\n\n subscriptionId: number;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private productService: ProductService\n ) {\n super(injector);\n this.form = AppAdmin.feedbackQuestionsForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.productId = Number(this.route.snapshot.queryParamMap.get('product_id'));\n this.form.get('subscription_id').setValue(PermissionService.selectedSubscription.id);\n this.form.get('product_id').setValue(this.productId);\n this.getProductDetails();\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getFeedbackQuestionDetails();\n }\n });\n }\n\n private getProductDetails() {\n if (this.productId) {\n this.productService.getProductById(this.productId).subscribe((response: Product) => {\n this.productData = response;\n });\n }\n }\n\n private getFeedbackQuestionDetails() {\n this.adminService\n .getDomainFeedbackQuestionById(this.id, this.subscriptionId)\n .subscribe((response: FeedbackQuestion) => {\n this.data = response;\n this.form.patchValue(this.data);\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value\n };\n const sub$ = this.id\n ? this.adminService.updateFeedbackQuestion(this.id, data)\n : this.adminService.createFeedbackQuestion(data);\n sub$.subscribe({\n next: () => {\n this.toast.success(\n this.translation.translate('Admin.FeedbackQuestions.UpdatedMessage')\n );\n this.back();\n }\n });\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\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=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ data?.question ? 'Edit' : 'Add New' }} feedback question for product\n {{ productData?.name }}\n </span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-12\">\n <pw-input-container [label]=\"'Admin.FeedbackQuestions.Question' | transloco\"\n name=\"question\"\n errorMsg=\"question is required\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"question\"\n id=\"question\" />\n </pw-input-container>\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\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api/public_api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { FeedbackQuestionResponse } from '../../../shared/interface/feedback-question.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { Product } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService, ProductService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-feedback-questions-list',\n templateUrl: './feedback-questions-list.component.html'\n})\nexport class FeedbackQuestionsListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: FeedbackQuestionResponse = {\n feedback_questions: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n searchText = '';\n\n loading = true;\n\n isLoaded = false;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n productId: number;\n\n productData: Product;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private productService: ProductService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.productId = Number(this.route.snapshot.queryParamMap.get('product_id'));\n this.getProductDetails();\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllFeedbackQuestions({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getProductDetails() {\n if (this.productId) {\n this.productService.getProductById(this.productId).subscribe(response => {\n this.productData = response;\n });\n }\n }\n\n private getAllFeedbackQuestions(paging: Paging) {\n this.adminService\n .getAllFeedbackQuestions(this.subscriptionId, this.productId, paging)\n .subscribe((response: FeedbackQuestionResponse) => {\n this.data = response;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n onDelete(id: number) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService.deleteFeedbackQuestion(id, this.subscriptionId).subscribe(res => {\n this.toast.success(res?.message);\n this.getAllFeedbackQuestions({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end my-3\">\n <div class=\"float-start d-flex align-items-baseline\">\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 <h2 class=\"card-title p-0\">Feedback Questions for product {{ productData?.name }}</h2>\n </div>\n <button class=\"btn btn-outline-primary btn-sm float-end m-0\"\n [routerLink]=\"[routers.feedbackQuestionsDetails + 'add']\"\n [queryParams]=\"{ product_id: productId }\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create feedback question\n </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #tt\n [value]=\"data.feedback_questions\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [lazy]=\"true\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <!--sort order should be default empty when page load-->\n\n <!-- Caption Header, Search Bar -->\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n pInputText\n size=\"50\"\n placeholder=\"Search\"\n [(ngModel)]=\"searchText\"\n (input)=\"tt.filterGlobal($event.target.value, 'contains')\" />\n </div>\n </ng-template>\n\n <!-- Column Header -->\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"question\">\n {{ 'Admin.FeedbackQuestions.Question' | transloco }}\n <p-sortIcon field=\"question\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n\n <!-- Table Body -->\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"question\">{{ item?.question }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n [routerLink]=\"[routers.feedbackQuestionsDetails + item?.id]\"\n [queryParams]=\"{ product_id: productId }\"\n class=\"me-2 me-sm-3\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(item?.id)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">Total: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.FeedbackQuestions.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'pw-admin-generic-insight',\n templateUrl: './generic-insight.component.html'\n})\nexport class GenericInsightComponent {}\n","<pw-coming-soon message=\"Insight\"></pw-coming-soon>\n","import { Component, Injector, OnDestroy } from '@angular/core';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-admin-generic-misc',\n templateUrl: './generic-misc.component.html'\n})\nexport class GenericMiscComponent extends AppBaseComponent implements OnDestroy {\n inspectedData: any;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n }\n\n updateDb() {\n swal.fire({\n title: 'Update',\n text: `Are you sure?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.updateDB('update_db').subscribe(res => {\n this.toast.success(res.message);\n });\n }\n });\n }\n\n flushRedis() {\n swal.fire({\n title: 'Flush Redis',\n text: `Are you sure?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.flushRedis('flushall').subscribe(res => {\n this.toast.success(res.message);\n });\n }\n });\n }\n\n flushMemcached() {\n swal.fire({\n title: 'Flush Memcached',\n text: `Are you sure?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.flushMemcached('flush_all').subscribe(res => {\n this.toast.success(res.message);\n });\n }\n });\n }\n\n inspect() {\n this.adminService.inspectAgent('redis').subscribe(res => {\n this.inspectedData = res;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-start mt-2\">\n <button class=\"btn btn-outline-primary\"\n (click)=\"updateDb()\">Update DB</button>\n <button class=\"btn btn-outline-primary ms-2\"\n (click)=\"flushRedis()\">Flush Redis</button>\n <button class=\"btn btn-outline-primary ms-2\"\n (click)=\"flushMemcached()\">\n Flush Memcached\n </button>\n </div>\n </div>\n</div>\n<div class=\"d-flex mt-4\">\n <div>\n <div class=\"dropdown\">\n <button class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"dropdownMenuButton\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n Sidekiq Web - Connect\n </button>\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuButton\">\n <a class=\"dropdown-item\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://ruby-template-api.prod.posiwise.com/ruby-template-api/sidekiq\">https://ruby-template-api.prod.posiwise.com/ruby-template-api/sidekiq</a>\n <a class=\"dropdown-item\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://main-api.prod.posiwise.com/main-api/sidekiq\">https://main-api.prod.posiwise.com/main-api/sidekiq</a>\n <a class=\"dropdown-item\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://products-api.prod.posiwise.com/products-api/sidekiq\">https://products-api.prod.posiwise.com/products-api/sidekiq</a>\n <a class=\"dropdown-item\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://integrations-api.prod.posiwise.com/integrations-api/sidekiq\">https://integrations-api.prod.posiwise.com/integrations-api/sidekiq</a>\n <a class=\"dropdown-item\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://cloudolive-api.prod.posiwise.com/cloudolive-api/sidekiq\">https://cloudolive-api.prod.posiwise.com/cloudolive-api/sidekiq</a>\n </div>\n </div>\n </div>\n <div class=\"ms-2\">\n <button class=\"btn btn-primary\"\n (click)=\"inspect()\">Inspect</button>\n </div>\n</div>\n<div *ngIf=\"inspectedData\"\n class=\"mt-2\">\n <ngx-json-viewer [json]=\"inspectedData\"\n [expanded]=\"true\"\n [depth]=\"2\"></ngx-json-viewer>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-generic-tabs',\n template: '<pw-tabs [items]=\"items\"></pw-tabs>'\n})\nexport class GeneralTabsComponent {\n items: MenuItem[] = [\n {\n id: 'misc',\n label: 'MISC',\n icon: 'far fa-fw fa-book',\n routerLink: ['/admin/generic/misc']\n },\n {\n id: 'insight',\n label: 'INSIGHT',\n icon: 'far fa-fw fa-signature',\n routerLink: ['/admin/generic/insight']\n }\n ];\n}\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService, ProductService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-login-notification-details',\n templateUrl: './login-notification-details.component.html'\n})\nexport class LoginNotificationDetailsComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n loginNotificationTypes$: Observable<any>;\n\n isLoading: boolean;\n\n featureKeys = [];\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private productService: ProductService\n ) {\n super(injector);\n this.form = AppAdmin.loginNotificationForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.loginNotificationTypes$ = this.adminService.getAvailableLoginNotificationTypes(\n this.subscriptionId\n );\n this.getFeatureKeys();\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getLoginNotificationDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getLoginNotificationDetails() {\n this.adminService\n .getLoginNotificationById(this.id, this.subscriptionId)\n .subscribe(response => {\n const data = response;\n this.form.patchValue({\n visible_until: data?.visible_until ? new Date(data?.visible_until) : '',\n visible_from: data?.visible_from ? new Date(data?.visible_from) : '',\n feature_keys: data?.feature_keys || [],\n notification_type: data?.notification_type,\n body: data?.body\n });\n });\n }\n\n private getFeatureKeys() {\n this.productService.getProductList({}, this.subscriptionId).subscribe(response => {\n const featureKeys = Array.from(\n new Set(response.products.map(item => item.feature_key))\n );\n this.featureKeys = featureKeys.map(item => {\n return {\n label: item,\n value: item\n };\n });\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const sub$ = this.id\n ? this.adminService.updateLoginNotification(this.id, data)\n : this.adminService.createLoginNotification(data);\n sub$.subscribe({\n next: () => {\n this.toast.success(\n this.translation.translate('Admin.LoginNotification.UpdatedMessage')\n );\n this.back();\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-5\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n [routerLink]=\"[routers.loginNotifications]\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i>\n </a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ id ? 'Edit' : 'Add New' }}: Login Notification</span>\n </h3>\n </div>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-4 col-md-3\"\n *ngIf=\"loginNotificationTypes$ | async as types\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.LoginNotification.Tooltip.NotificationType' | transloco\"\n [label]=\"'Admin.LoginNotification.NotificationType' | transloco\"\n name=\"notification_type\"\n [errorMsg]=\"\n 'Admin.LoginNotification.Validation.NotificationType'\n | transloco\n \">\n\n <select id=\"type\"\n class=\"form-select mt-2 no-radius\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['notification_type'].errors\n }\"\n formControlName=\"notification_type\">\n <option value=\"\">Select Type</option>\n <option *ngFor=\"let item of types['available_types']\"\n [value]=\"item\">\n {{ item }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <!-- Feature keys -->\n <div class=\"mb-3 col-12 col-sm-4 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.LoginNotification.Tooltip.Features' | transloco\"\n [label]=\"'Admin.LoginNotification.Features' | transloco\"\n name=\"feature_keys\"\n [errorMsg]=\"\n 'Admin.LoginNotification.Validation.Features' | transloco\n \">\n <p-multiSelect [options]=\"featureKeys\"\n defaultLabel=\"Select feature keys\"\n [showHeader]=\"true\"\n [showToggleAll]=\"true\"\n formControlName=\"feature_keys\"\n appendTo=\"body\"></p-multiSelect>\n </pw-input-container>\n </div>\n <!-- visible_from -->\n <div class=\"col-12 col-sm-4 col-md-3\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.LoginNotification.Tooltip.VisibleFrom' | transloco\"\n [label]=\"'Admin.LoginNotification.VisibleFrom' | transloco\"\n name=\"visible_from\"\n [errorMsg]=\"\n 'Admin.LoginNotification.Validation.VisibleFrom' | transloco\n \">\n <div>\n <p-calendar formControlName=\"visible_from\"\n [showIcon]=\"true\"\n [showTime]=\"true\"\n dateFormat=\"yy-mm-dd\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['visible_from'].errors\n }\">\n </p-calendar>\n </div>\n </pw-input-container>\n </div>\n </div>\n <!-- visible_until -->\n <div class=\"col-12 col-sm-4 col-md-3\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.LoginNotification.Tooltip.VisibleUntil' | transloco\"\n [label]=\"'Admin.LoginNotification.VisibleUntil' | transloco\"\n name=\"visible_until\"\n [errorMsg]=\"\n 'Admin.LoginNotification.Validation.VisibleUntil'\n | transloco\n \">\n <div>\n <p-calendar formControlName=\"visible_until\"\n [showIcon]=\"true\"\n [showTime]=\"true\"\n dateFormat=\"yy-mm-dd\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['visible_until'].errors\n }\">\n </p-calendar>\n </div>\n </pw-input-container>\n </div>\n </div>\n <!-- body -->\n <div class=\"col-12 col-sm-12\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.LoginNotification.Tooltip.Body' | transloco\"\n [label]=\"'Admin.LoginNotification.Body' | transloco\"\n name=\"body\"\n [errorMsg]=\"'Admin.LoginNotification.Validation.Body' | transloco\">\n <textarea rows=\"3\"\n type=\"text\"\n class=\"form-control\"\n formControlName=\"body\"\n [ngClass]=\"{ 'is-invalid': submitted && f['body'].errors }\"></textarea>\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\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class LoginNotificationTabsComponent {\n items: MenuItem[] = [\n {\n id: 'login-notification',\n label: 'Notifications',\n icon: 'fa fa-fw fa-bell',\n routerLink: ['/admin/login-notifications/list']\n }\n ];\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AdminService } from '../../../admin.service';\nimport { LoginNotificationResponse } from '../../../shared/interface/login-notification.interface';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-login-notifications-list',\n templateUrl: './login-notifications-list.component.html'\n})\nexport class LoginNotificationsListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: LoginNotificationResponse = {\n notifications: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n searchText = '';\n\n loading = true;\n\n isLoaded = false;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getLoginNotifications({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getLoginNotifications(paging: Paging) {\n this.adminService\n .getAllLoginNotifications(paging, this.subscriptionId)\n .subscribe((response: LoginNotificationResponse) => {\n this.data = response;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n onDelete(id: number) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService\n .deleteLoginNotification(id, this.subscriptionId)\n .subscribe(res => {\n this.toast.success(res?.message);\n this.getLoginNotifications({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end my-3\">\n <h2 class=\"card-title p-0 float-start\">Login Notifications</h2>\n <button class=\"btn btn-outline-primary btn-sm float-end m-0\"\n [routerLink]=\"[routers.loginNotificationDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create\n </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #tt\n [value]=\"data.notifications\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [lazy]=\"true\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <!--sort order should be default empty when page load-->\n\n <!-- Caption Header, Search Bar -->\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n pInputText\n size=\"50\"\n placeholder=\"Search\"\n [(ngModel)]=\"searchText\"\n (input)=\"tt.filterGlobal($event.target.value, 'contains')\" />\n </div>\n </ng-template>\n\n <!-- Column Header -->\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"notification_type\">\n {{ 'Admin.LoginNotification.NotificationType' | transloco }}\n <p-sortIcon field=\"notification_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"body\">\n {{ 'Admin.LoginNotification.Body' | transloco }}\n <p-sortIcon field=\"body\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"w-25\">\n {{ 'Admin.LoginNotification.FeatureKeys' | transloco }}\n </th>\n <th scope=\"true\"\n pSortableColumn=\"visible_from\">\n {{ 'Admin.LoginNotification.VisibleFrom' | transloco }}\n <p-sortIcon field=\"visible_from\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"visible_until\">\n {{ 'Admin.LoginNotification.VisibleUntil' | transloco }}\n <p-sortIcon field=\"visible_until\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n\n <!-- Table Body -->\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"notification_type\">{{ item?.notification_type }}</td>\n <td data-head=\"body\">{{ item?.body | textTruncate: 30 }}</td>\n <td data-head=\"feature_keys\">\n <span *ngFor=\"let data of item?.feature_keys\"\n class=\"badge m-1\"\n [appDynamicBadge]=\"{ itemsArray: item?.feature_keys, item: data }\"\n color=\"cyan\">{{ data }}</span>\n </td>\n <td data-head=\"visible_from\">{{ item?.visible_from | dateFormat }}</td>\n <td data-head=\"visible_until\">{{ item?.visible_until | dateFormat }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n [routerLink]=\"[routers.loginNotificationDetails + item?.id]\"\n class=\"me-2 me-sm-3\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(item?.id)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.LoginNotification.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { NewsLetter } from '../../../shared/interface/newsletter.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-newsletter-details',\n templateUrl: './newsletter-details.component.html'\n})\nexport class NewsletterDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: NewsLetter;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getNewsletterForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n if (this.id) {\n this.getNewsLetterDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getNewsLetterDetails() {\n this.adminService.getNewsletterById(this.id).subscribe((response: NewsLetter) => {\n this.data = response;\n this.form.patchValue(this.data);\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = {\n ...this.form.value,\n subscription_id: this.subscriptionId\n };\n const sub$ = this.id\n ? this.adminService.updateNewsletter(data, this.id)\n : this.adminService.addNewsletter(data);\n sub$.subscribe({\n next: response => {\n this.form.patchValue(response);\n this.toast.success(this.translation.translate('Admin.Newsletter.UpdatedMessage'));\n this.back();\n }\n }).add(() => {\n this.submitted = false;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n [routerLink]=\"[routers.newsletter]\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Newsletter: {{ data?.name ? data?.name : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-8\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Name' | transloco }} </label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <label class=\"info-circle\">{{ 'Label.Code' | transloco }}\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.Newsletter.Tooltip.Code' | transloco\n }}</span>\n </label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"code\"\n [ngClass]=\"{ 'is-invalid': submitted && f['code'].errors }\" />\n </div>\n </div>\n <div class=\"col-6 col-md-2\">\n <div class=\"mb-3\">\n <label class=\"me-3 info-circle\">{{ 'Label.IsActive' | transloco }}\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.Newsletter.Tooltip.IsActive' | transloco\n }}</span>\n </label>\n <br />\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\"\n [ngClass]=\"{ 'is-invalid': submitted && f['active'].errors }\">\n </ui-switch>\n </div>\n </div>\n <div class=\"col-6 col-md-2\">\n <div class=\"mb-3\">\n <label class=\"me-3 info-circle\">{{ 'Label.CanUnsubscribe' | transloco }}\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.Newsletter.Tooltip.CanUnsubscribe' | transloco\n }}</span>\n </label>\n <br />\n <ui-switch class=\"d-block\"\n formControlName=\"visible\"\n name=\"visible\"\n [ngClass]=\"{ 'is-invalid': submitted && f['visible'].errors }\">\n </ui-switch>\n </div>\n </div>\n\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\"\n *rbacAllow=\"'Pages.Admin.Newsletter.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GooglePlaceDirective } from 'ngx-google-places-autocomplete';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE, TAG_ENTITY, TOKEN_KEY } from '@posiwise/common-utilities';\nimport { NewsLetterItem, Tag } from '../../../shared/interface/newsletter.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\nimport { TagService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\nimport { timer } from 'rxjs';\n\n@Component({\n selector: 'pw-newsletter-item-details',\n templateUrl: './newsletter-item-details.component.html'\n})\nexport class NewsletterItemDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: NewsLetterItem;\n\n newsletters = [];\n\n options = [];\n\n @ViewChild('places', { static: true })\n places: GooglePlaceDirective;\n\n newsletterItems = [];\n\n allTags: Tag[] = [];\n\n tagsSuggestion = [];\n\n selectedTags = [];\n\n products = [];\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n private page = 1;\n\n userLoggedIn: boolean;\n\n featureKeys = [];\n\n userNameSyntax = '{{ @user.share_name }}';\n\n newsletterId: number;\n\n constructor(\n private adminService: AdminService,\n private tagService: TagService,\n private productService: ProductService,\n injector: Injector\n ) {\n super(injector);\n this.form = AppAdmin.getNewsletterItemForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.newsletterId = Number(this.route.snapshot.queryParamMap.get('newsletter_id'));\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n this.getNewsletter(this.page, PAGE_SIZE);\n });\n this.getProducts();\n this.getNewslettersItem(1, PAGE_SIZE);\n this.getNewsletterTags();\n this.route.params.subscribe(params => {\n this.id = Number(params['id']) || 0;\n if (this.id) {\n this.getNewsLetterDetails();\n }\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n handleAddressChange(_event) {\n this.form.patchValue({\n latitude: _event.geometry.location.lat(),\n longitude: _event.geometry.location.lng(),\n location: _event.formatted_address\n });\n }\n\n private getNewsletter(page: number, page_size: number, sortField?: string, sortOrder?: string) {\n const subscriptionId = this.userLoggedIn ? this.subscriptionId : null;\n this.adminService\n .getNewsletters(\n {\n page,\n page_size,\n order_by: sortField || '',\n order_direction: sortOrder || ''\n },\n subscriptionId\n )\n .subscribe(response => {\n this.newsletters = response.newsletters.filter(x => x.visible);\n this.newsletters = response.newsletters.map(item => {\n return {\n label: item.name,\n value: item.id\n };\n });\n this.newsletters.unshift({\n label: 'Select',\n value: null\n });\n // to catch the newsletterid value we are using settimout here\n setTimeout(() => {\n if (this.newsletterId) {\n this.form.get('newsletter_id').patchValue(this.newsletterId);\n }\n }, 0);\n });\n }\n\n private getNewslettersItem(\n page: number,\n page_size: number,\n sortField?: string,\n sortOrder?: string\n ) {\n this.adminService\n .getNewslettersItems(\n {\n page,\n page_size,\n order_by: sortField || '',\n order_direction: sortOrder || ''\n },\n this.subscriptionId || null\n )\n .subscribe(response => {\n this.newsletterItems = response.newsletter_items;\n if (this.id) {\n this.newsletterItems = this.newsletterItems.filter(x => x.id !== this.id);\n }\n this.newsletterItems = this.newsletterItems.map(item => {\n return {\n label: item.title,\n value: item.id\n };\n });\n\n this.newsletterItems.unshift({\n label: 'Select',\n value: null\n });\n });\n }\n\n private getNewsLetterDetails() {\n this.adminService\n .getNewsletterItemById(Number(this.id), this.subscriptionId)\n .subscribe(response => {\n this.data = response;\n this.selectedTags = this.data.tags;\n this.form.patchValue(this.data);\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n if (Number(this.id)) {\n this.onUpdate();\n } else {\n this.onAdd();\n }\n }\n\n onAdd() {\n const data = { ...this.form.value };\n [data.send_until] = data.send_until.toISOString().split('T');\n [data.send_at] = data.send_at.toISOString().split('T');\n data.subscription_id = this.subscriptionId;\n delete data.id;\n\n this.adminService.addNewsletterItem(data).subscribe(response => {\n this.data = response;\n this.postTags();\n this.toast.success(this.translation.translate('Admin.Newsletter.AddedMessage'));\n this.back();\n });\n }\n\n onUpdate() {\n const data = { ...this.form.value, subscription_id: this.subscriptionId };\n this.adminService.updateNewsletterItem(data, this.id).subscribe(response => {\n this.data = response;\n this.postTags();\n this.toast.success(this.translation.translate('Admin.Newsletter.UpdatedMessage'));\n this.back();\n });\n }\n\n private getNewsletterTags() {\n this.tagService.getTagsByType('newsletter_items', {}).subscribe(response => {\n this.allTags = response.tags;\n });\n }\n\n search(event) {\n let values = [];\n if (event.query) {\n values = this.allTags.filter(x =>\n x.name.toLowerCase().includes(event.query.toLowerCase())\n );\n } else {\n this.allTags.forEach(element => {\n values.push(element);\n });\n }\n this.tagsSuggestion = values;\n }\n\n postTags() {\n if (this.selectedTags.length > 0) {\n const data = {\n entity_tags: this.selectedTags.map(item => {\n const tag = {};\n tag['tag_id'] = item.id;\n\n return tag;\n }),\n slug: this.data.id,\n tag_entity: TAG_ENTITY.NEWSLETTER_ITEM\n };\n this.tagService.addTags(data).subscribe();\n }\n }\n\n /** Calling getProductList API To Display Product Names In the Products Dropdown */\n private getProducts() {\n this.productService.getProductList({}, this.subscriptionId).subscribe(response => {\n this.products = response.products.filter(x => x.name);\n this.products = response.products.map(item => {\n return {\n label: item.name,\n value: item.id\n };\n });\n const featureKeys = Array.from(\n new Set(response.products.map(item => item.feature_key))\n );\n this.featureKeys = featureKeys.map(item => {\n return {\n label: item,\n value: item\n };\n });\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n [routerLink]=\"[routers.newsletter]\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Newsletter Item: {{ data?.title ? data?.title : 'Add New' }}</h3>\n </div>\n <div class=\"mt-4\">\n <p class=\"my-3\">\n You can insert the user name by adding the following syntax in the body or\n title: {{ userNameSyntax }}\n </p>\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <!-- Title -->\n <pw-input-container [label]=\"'Admin.NewsletterItem.Title' | transloco\"\n class=\"col-md-6\"\n name=\"title\"\n [errorMsg]=\"'Admin.NewsletterItem.Validation.Title' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['title'].errors }\" />\n </pw-input-container>\n <!-- Newsletter -->\n <pw-input-container [label]=\"'Admin.NewsletterItem.Newsletter' | transloco\"\n class=\"col-md-6\"\n name=\"newsletter_id\"\n [errorMsg]=\"'Admin.NewsletterItem.Validation.Newsletter' | transloco\">\n <p-dropdown [options]=\"newsletters\"\n formControlName=\"newsletter_id\"\n [style]=\"{ width: '100%' }\"\n [ngClass]=\"{ 'is-invalid': submitted && f['newsletter_id'].errors }\">\n </p-dropdown>\n </pw-input-container>\n <!-- Rich Text Editor -->\n <pw-input-container [label]=\"'Admin.NewsletterItem.Body' | transloco\"\n class=\"col-12\"\n name=\"body\"\n [errorMsg]=\"'Admin.NewsletterItem.Validation.Body' | transloco\">\n <quill-editor [styles]=\"{ height: '450px' }\"\n formControlName=\"body\"\n [ngClass]=\"{ 'is-invalid': submitted && f['body'].errors }\">\n </quill-editor>\n </pw-input-container>\n <!-- Location -->\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.NewsletterItem.Tooltip.Location' | transloco\"\n [label]=\"'Admin.NewsletterItem.Location' | transloco\"\n class=\"col-md-6\"\n name=\"location\">\n <input ngx-google-places-autocomplete\n class=\"form-control\"\n #places=\"ngx-places\"\n formControlName=\"location\"\n (onAddressChange)=\"handleAddressChange($event)\"\n [ngClass]=\"{ 'is-invalid': submitted && f['location'].errors }\" />\n </pw-input-container>\n <div class=\"ui-fluid skills-modal col-12 col-md-6 mb-3\">\n <label for=\"\">{{ 'Admin.NewsletterItem.Tags' | transloco }}\n <span class=\"ms-1 tooltip-wrap\"\n [pTooltip]=\"'Admin.NewsletterItem.Tooltip.Tags' | transloco\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"'top'\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </label>\n <p-autoComplete [(ngModel)]=\"selectedTags\"\n [suggestions]=\"tagsSuggestion\"\n dataKey=\"id\"\n field=\"name\"\n (completeMethod)=\"search($event)\"\n styleClass=\"w-100\"\n [minLength]=\"1\"\n [maxlength]=\"10\"\n [dropdown]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Tags\"\n [multiple]=\"true\"></p-autoComplete>\n </div>\n <!-- Products -->\n <div class=\"col-12 col-md-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.NewsletterItem.Tooltip.Products' | transloco\"\n [label]=\"'Admin.NewsletterItem.Products' | transloco\"\n name=\"product_ids\">\n <p-multiSelect [options]=\"products\"\n defaultLabel=\"Select Products\"\n [showHeader]=\"true\"\n [showToggleAll]=\"true\"\n formControlName=\"product_ids\"\n appendTo=\"body\"></p-multiSelect>\n </pw-input-container>\n </div>\n <!-- Features -->\n <div class=\"col-12 col-md-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.NewsletterItem.Tooltip.Features' | transloco\"\n [label]=\"'Admin.NewsletterItem.Features' | transloco\"\n name=\"feature_keys\">\n <p-multiSelect [options]=\"featureKeys\"\n defaultLabel=\"Select feature keys\"\n [showHeader]=\"true\"\n [showToggleAll]=\"true\"\n formControlName=\"feature_keys\"\n appendTo=\"body\"></p-multiSelect>\n </pw-input-container>\n </div>\n <!-- Previous Newsletter Items -->\n <div class=\"col-12\"\n [ngClass]=\"f['main_tag_id'].value ? 'col-md-3' : 'col-md-6'\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.NewsletterItem.PreviousNewsletter' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.NewsletterItem.Tooltip.PreviousNewsletter'\n | transloco\n \"\n name=\"main_tag_id\">\n <p-dropdown [options]=\"newsletterItems\"\n formControlName=\"main_tag_id\"\n [style]=\"{ width: '100%' }\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['main_tag_id'].errors\n }\">\n </p-dropdown>\n </pw-input-container>\n </div>\n </div>\n <!-- DAYS TO WAIT -->\n <div class=\"col-md-3 col-xs-6\"\n *ngIf=\"form.get('main_tag_id').value\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.NewsletterItem.DaysToWait' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.NewsletterItem.Tooltip.DaysToWaitFromPreviousNewsletter'\n | transloco\n \"\n name=\"days_to_wait_from_previous_newsletter\">\n <input type=\"number\"\n class=\"form-control\"\n formControlName=\"days_to_wait_from_previous_newsletter\"\n [ngClass]=\"{\n 'is-invalid':\n submitted &&\n f['days_to_wait_from_previous_newsletter'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n <!-- IS SENT -->\n <div class=\"col-md-3 col-xs-6\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.NewsletterItem.SendDate' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.NewsletterItem.Tooltip.SendDate' | transloco\n \"\n [errorMsg]=\"\n 'Admin.NewsletterItem.Validation.SendDate' | transloco\n \"\n name=\"send_at\">\n <div>\n <p-calendar formControlName=\"send_at\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['send_at'].errors\n }\">\n </p-calendar>\n </div>\n </pw-input-container>\n </div>\n </div>\n <!-- Expiry Date for Newsletter -->\n <div class=\"col-md-3 col-xs-6\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.NewsletterItem.Tooltip.SendUntil' | transloco\n \"\n [label]=\"'Admin.NewsletterItem.SendUntil' | transloco\"\n name=\"send_until\"\n [errorMsg]=\"\n 'Admin.NewsletterItem.Validation.SendUntil' | transloco\n \">\n <div>\n <p-calendar formControlName=\"send_until\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['send_until'].errors\n }\">\n </p-calendar>\n </div>\n </pw-input-container>\n </div>\n </div>\n <!-- Only new users -->\n <div class=\"col-md-3\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.NewsletterItem.Tooltip.OnlyNewUsers' | transloco\n \"\n [label]=\"'Admin.NewsletterItem.OnlyNewUsers' | transloco\"\n name=\"only_new_users\">\n <ui-switch formControlName=\"only_new_users\"\n name=\"only_new_users\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['only_new_users'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <!-- IS PUSHED -->\n <div class=\"col-md-3\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.NewsletterItem.Tooltip.ShouldDeliver' | transloco\n \"\n [label]=\"'Admin.NewsletterItem.ShouldDeliver' | transloco\"\n name=\"is_pushed\">\n <ui-switch formControlName=\"is_pushed\"\n name=\"is_pushed\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['is_pushed'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n </div>\n <div class=\"row\"></div>\n <div class=\"row text-end mt-3\">\n <div class=\"col-12\">\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\"\n *rbacAllow=\"'Pages.Admin.Newsletter.Edit'\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { NewsLetterUserResponse } from '../../../shared/interface/newsletter.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-newsletter-users-list',\n templateUrl: './newsletter-users-list.component.html'\n})\nexport class NewsletterUsersListComponent\n extends AppBaseComponent\n implements OnInit, AfterViewChecked, OnDestroy\n{\n id: number;\n\n searchText = '';\n\n data: NewsLetterUserResponse = {\n newsletter_users: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n isLoaded = false;\n\n loading = true;\n\n private page = 1;\n\n subscriptionId: number;\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.subscriptionId = PermissionService?.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n });\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getNewsletterInsight({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n /** Function to get newsletter insight */\n private getNewsletterInsight(paging: Paging) {\n this.adminService\n .getNewsletterItemUserList(this.id, this.subscriptionId, paging)\n .subscribe(response => {\n this.data = response;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 mb-3\">\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=\"m-subheader__title m-subheader__title--separator\">Newsletter recipients</h3>\n </div>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.newsletter_users\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search users...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"first_name\">\n {{ 'Lable.Name' | transloco }}\n <p-sortIcon field=\"first_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"email\">\n {{ 'Lable.Email' | transloco }}\n <p-sortIcon field=\"email\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"joined_at\">\n {{ 'Admin.NewsletterItem.JoinedAt' | transloco }}\n <p-sortIcon field=\"joined_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_sign_in_at\">\n {{ 'Admin.NewsletterItem.LastSignInAt' | transloco }}\n <p-sortIcon field=\"last_sign_in_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_opened\">\n {{ 'Admin.NewsletterItem.LastOpened' | transloco }}\n <p-sortIcon field=\"last_opened\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"open_count\">\n {{ 'Admin.NewsletterItem.OpenCount' | transloco }}\n <p-sortIcon field=\"open_count\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"clicked_at\">\n {{ 'Admin.NewsletterItem.ClickedAt' | transloco }}\n <p-sortIcon field=\"clicked_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"clicked_count\">\n {{ 'Admin.NewsletterItem.ClickedCount' | transloco }}\n <p-sortIcon field=\"clicked_count\"></p-sortIcon>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-user>\n <tr>\n <td data-head=\"Name\">\n <a [routerLink]=\"['/members', user?.slug]\">{{ user?.first_name }} {{ user?.last_name }}</a>\n </td>\n <td data-head=\"Email\">{{ user?.email }}</td>\n <td data-head=\"Joined At\">{{ user?.joined_at | dateFormat }}</td>\n <td data-head=\"Last Sign In At\">{{ user?.last_sign_in_at | dateFormat }}</td>\n <td data-head=\"Last Opened\">{{ user?.last_opened }}</td>\n <td data-head=\"Open Count\">{{ user?.open_count }}</td>\n <td data-head=\"Clicked At\">{{ user?.clicked_at }}</td>\n <td data-head=\"Clicked Count\">{{ user?.clicked_count }}</td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.NewsletterItem.NewsLetterRecipientsNoDataMessage' | transloco\">\n </pw-no-data>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Plotly } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-newsletter-insight',\n templateUrl: './newsletters-insight.component.html',\n styleUrls: ['./newsletters-insight.component.scss']\n})\nexport class NewsletterInsightComponent extends AppBaseComponent implements OnInit, OnDestroy {\n graph: Plotly.Figure;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.getChartData();\n }\n\n private getChartData() {\n this.adminService.getNewsletterInsight().subscribe(response => {\n this.graph = response;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"my-3 title\">\n <h2 class=\"card-title p-0 float-start\">Newsletters Insight</h2>\n</div>\n\n<ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n</ng-template>\nCalendar\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE, TOKEN_KEY } from '@posiwise/common-utilities';\nimport { NewsLetterItem } from '../../../shared/interface/newsletter.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-newsletters-items',\n templateUrl: './newsletters-items.component.html',\n styleUrls: ['./newsletters-items.component.scss']\n})\nexport class NewslettersItemsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n newslettersItemsTotal: number;\n\n searchTextItems = '';\n\n newslettersItems: NewsLetterItem[] = [];\n\n allNewslettersItems: NewsLetterItem[] = [];\n\n isLoading = true;\n\n newsletters = [];\n\n isItemsEmpty = true;\n\n user: User;\n\n newsletterId: number;\n\n selectedNewsletter: any;\n\n isLoaded = false;\n\n totalRecordsUnFilter = 0;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n userLoggedIn: boolean;\n\n newsletterIdForItem: number;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n this.getNewsletterForSelect({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n // this.getNewsletterItems(1, PAGE_SIZE);\n this.getUserInfo();\n this.newsletterId = Number(this.route.snapshot.queryParamMap.get('newsletter_id'));\n this.newsletterIdForItem = Number(this.route.snapshot.queryParamMap.get('newsletter_id'));\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoadNewsletterItems(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getNewsletterItems({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchTextItems\n });\n }\n\n private getNewsletterItems(paging: Paging) {\n this.adminService.getNewslettersItems(paging, this.subscriptionId).subscribe(response => {\n this.newslettersItems = response.newsletter_items;\n this.allNewslettersItems = this.newslettersItems.slice(0);\n this.newslettersItemsTotal = response.object_count;\n this.totalRecordsUnFilter = response.unfiltered_count;\n this.isLoading = false;\n this.isLoaded = true;\n if (this.newslettersItems.length > 0) {\n this.isItemsEmpty = false;\n }\n if (this.newsletterId) {\n this.newslettersItems = this.allNewslettersItems.filter(\n x => x.newsletter_id === this.newsletterId\n );\n this.newslettersItemsTotal = this.newslettersItems.length;\n }\n });\n }\n\n onNewsletterChange(event) {\n this.newsletterIdForItem =\n !event.value?.length || event.value?.length > 1 ? '' : event.value[0];\n this.newslettersItems =\n event.value.length > 0\n ? this.allNewslettersItems.filter(x => event.value.includes(x.newsletter_id))\n : this.allNewslettersItems;\n this.selectedNewsletter = '';\n this.newslettersItemsTotal = this.newslettersItems?.length;\n }\n\n onDelete(item: NewsLetterItem) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete ${item.title}?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.deleteNewsletterItem(item.id).subscribe(() => {\n this.newslettersItems = this.newslettersItems.filter(x => x.id !== item.id);\n this.toast.success(\n this.translation.translate('Admin.Newsletter.DeletedMessage')\n );\n });\n }\n });\n }\n\n private getNewsletterForSelect(paging: Paging) {\n const subscriptionId = this.userLoggedIn ? this.subscriptionId : null;\n this.adminService.getNewsletters(paging, subscriptionId).subscribe(response => {\n this.newsletters = response.newsletters.map(item => {\n return {\n label: item.name,\n value: item.id\n };\n });\n if (this.newsletterId) {\n const data = this.newsletters.find(x => x.value === this.newsletterId);\n this.selectedNewsletter = data;\n }\n });\n }\n\n private getUserInfo() {\n this.userStore().subscribe(user => {\n this.user = user;\n });\n }\n\n sendTestEmail(item: NewsLetterItem) {\n swal.fire({\n title: 'Send Email',\n text: `A test email will be sent to \"${this.user.email}\". Do you want to continue?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(sendOk => {\n if (sendOk.value === true) {\n this.adminService.sendTestMail(item.id, this.subscriptionId).subscribe(response => {\n if (response) {\n this.toast.success(\n this.translation.translate('Newsletter test email sent correctly')\n );\n }\n });\n }\n });\n }\n\n navigateToCreateNewsletterItem() {\n if (this.newsletterIdForItem) {\n this.router.navigate([`${this.routers.newsletterItemDetails}add`], {\n queryParams: { newsletter_id: this.newsletterIdForItem }\n });\n } else {\n this.router.navigate([`${this.routers.newsletterItemDetails}add`]);\n }\n }\n\n getSendUntilColor(val) {\n return { 'text-success fw-bold': val && new Date(val) > new Date() };\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row mt-3\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Newsletters Items</h2>\n <button *rbacAllow=\"'SubscriptionAdmin'\"\n class=\"btn btn-sm btn-outline-primary float-end m-0\"\n (click)=\"navigateToCreateNewsletterItem()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Newsletter Item\n </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"totalRecordsUnFilter === 0\">\n <div class=\"row\">\n <div class=\"col-8\">\n <div>\n <span class=\"d-block\"> Search </span>\n <input type=\"text\"\n [(ngModel)]=\"searchTextItems\"\n pInputText\n size=\"50\"\n placeholder=\"Search...\"\n data-cy=\"user-search\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"wd-90\" />\n </div>\n </div>\n <div class=\"col-4 float-end\">\n Filter By Newsletter\n <p-multiSelect [options]=\"newsletters\"\n (onChange)=\"onNewsletterChange($event)\"\n [defaultLabel]=\"selectedNewsletter?.label\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n </div>\n <p-table #dt\n [value]=\"newslettersItems\"\n [paginator]=\"true\"\n [globalFilterFields]=\"['title']\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"newslettersItemsTotal\"\n [lazy]=\"true\"\n (onLazyLoad)=\"onLazyLoadNewsletterItems($event)\"\n [loading]=\"isLoading\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"title\">\n {{ 'Label.Title' | transloco }}\n <p-sortIcon field=\"title\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"body\">\n {{ 'Admin.NewsletterItem.Body' | transloco }}\n <p-sortIcon field=\"body\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"location\">\n {{ 'Admin.NewsletterItem.Location' | transloco }}\n <p-sortIcon field=\"location'\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"send_until\">\n {{ 'Admin.NewsletterItem.SendUntil' | transloco }}\n <p-sortIcon field=\"send_until\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"is_pushed\">\n {{ 'Admin.NewsletterItem.Pushed' | transloco }}\n <p-sortIcon field=\"is_pushed\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"is_sent\">\n {{ 'Admin.NewsletterItem.Sent' | transloco }}\n <p-sortIcon field=\"is_sent\"></p-sortIcon>\n </th>\n <th class=\"actions-list-four\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Title\">{{ item.title }}</td>\n <td data-head=\"Body\"\n class=\"custom-td\">\n {{ item.body | removeHtml | textTruncate: 200 }}\n </td>\n <td data-head=\"Location\">{{ item.location }}</td>\n <td data-head=\"Send Until\">\n <span [ngClass]=\"getSendUntilColor(item?.send_until)\">{{\n item.send_until | dateFormat\n }}</span>\n </td>\n <td data-head=\"Is Pushed\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: item?.is_pushed }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.is_pushed }}</span>\n </td>\n <td data-head=\"Is Sent\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: item?.is_sent }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.is_sent }}</span>\n </td>\n <td data-head=\"Action\"\n *rbacAllow=\"'SubscriptionAdmin'\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Send test email\"\n class=\"me-2 me-sm-3\">\n <i\n class=\"fa fa-comment-alt cta1-icon\"\n (click)=\"sendTestEmail(item)\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.newsletterItemDetails + item.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Newsletter recipients\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.newslettersUserList + item.id]\">\n <i class=\"fa fa-tasks cta1-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"newslettersItemsTotal === 0 && totalRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ newslettersItemsTotal }}</span>\n</div>\n<div *ngIf=\"totalRecordsUnFilter === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.NewsletterItem.NewsletterItemsNoDataMessage' | transloco\">\n </pw-no-data>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE, TOKEN_KEY } from '@posiwise/common-utilities';\nimport { NewsLetter, NewsLetterResponse } from '../../../shared/interface/newsletter.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-newsletters-list',\n templateUrl: './newsletters-list.component.html'\n})\nexport class NewslettersListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: NewsLetterResponse = {\n newsletters: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n searchText = '';\n\n loading = true;\n\n isLoaded = false;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n userLoggedIn: boolean;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n });\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getNewsletters({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getNewsletters(paging: Paging) {\n this.adminService\n .getNewsletters(paging, this.subscriptionId || null)\n .subscribe((response: NewsLetterResponse) => {\n this.data = response;\n this.loading = false;\n this.isLoaded = true;\n });\n }\n\n onDelete(item: NewsLetter) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete ${item.name}?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n const subscriptionId = PermissionService.selectedSubscription.id;\n this.adminService.deleteNewsletter(item.id, subscriptionId).subscribe(() => {\n this.data.newsletters = this.data.newsletters.filter(x => x.id !== item.id);\n this.data.object_count--;\n this.toast.success(\n this.translation.translate('Admin.Newsletter.DeletedMessage')\n );\n });\n }\n });\n }\n\n navigateNewsletterItems(id: number) {\n this.router.navigate([`/admin/newsletter/items`], { queryParams: { newsletter_id: id } });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end my-3\">\n <h2 class=\"card-title p-0 float-start\">Newsletters</h2>\n <button *rbacAllow=\"'SubscriptionSuperAdmin'\"\n class=\"btn btn-outline-primary btn-sm float-end m-0\"\n [routerLink]=\"[routers.newsletterDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Newsletter\n </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #tt\n [value]=\"data.newsletters\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [lazy]=\"true\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <!--sort order should be default empty when page load-->\n\n <!-- Caption Header, Search Bar -->\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n pInputText\n size=\"50\"\n placeholder=\"Search\"\n [(ngModel)]=\"searchText\"\n (input)=\"tt.filterGlobal($event.target.value, 'contains')\" />\n </div>\n </ng-template>\n\n <!-- Column Header -->\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Label.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"visible\">\n {{ 'Label.IsVisible' | transloco }}\n <p-sortIcon field=\"visible\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n\n <!-- Table Body -->\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Name\">\n <a (click)=\"navigateNewsletterItems(item.id)\">\n <span class=\"item-hoverable\">{{ item.name }}</span>\n </a>\n </td>\n <td data-head=\"Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: item?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Visible\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: item?.visible }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.visible ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.newsletterDetails + item.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Newsletter Items\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"'/admin/newsletter/items'\"\n [queryParams]=\"{ newsletter_id: item.id }\">\n <i class=\"fa fa-tasks cta1-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.Newsletter.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\nimport { PERMISSION_NAMES } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-newsletter',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`,\n styles: [\n `\n .text-truncate {\n max-width: 150px;\n }\n .card-body {\n min-height: 65vh;\n }\n `\n ]\n})\nexport class NewsletterComponent extends AppBaseComponent {\n activeItem: MenuItem;\n\n items: MenuItem[] = [\n {\n id: 'newsletter',\n label: 'Newsletters',\n icon: 'fa fa-fw fa-book',\n routerLink: ['/admin/newsletter/list']\n },\n {\n id: 'items',\n label: 'Newsletter-Items',\n icon: 'fa fa-fw fa-calendar',\n routerLink: ['/admin/newsletter/items']\n },\n {\n id: 'insight',\n label: 'Insight',\n icon: 'fa fa-fw fa-signature',\n routerLink: ['/admin/newsletter/insight'],\n visible: this.permissionService.evaluatePermissions(PERMISSION_NAMES.SuperAdmin)\n }\n ];\n}\n","import { Component, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MenuItem } from 'primeng/api';\nimport { Params } from '@angular/router';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { Permission } from '../../../shared/interface/permission.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionTreeComponent } from '@posiwise/shared-components';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-permissions-details',\n templateUrl: './permissions-details.component.html'\n})\nexport class PermissionsDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n @ViewChild('menuItems', { static: true }) menu: MenuItem[];\n\n @ViewChild('permissionTree', { static: false }) permissionTree: PermissionTreeComponent;\n\n form: UntypedFormGroup;\n\n id: number;\n\n activeItem: MenuItem;\n\n items: MenuItem[];\n\n permissions: Permission;\n\n routers = ROUTERS;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.items = [\n { id: 'permission-details', label: 'Permission details', icon: 'fa fa-fw fa-user-cog' }\n ];\n\n [this.activeItem] = this.items;\n this.form = AppAdmin.getPermissionsForm();\n }\n\n ngOnInit() {\n this.route.params.subscribe((data: Params) => {\n this.id = Number(data['id']);\n this.getRoleDetails();\n });\n }\n\n private getRoleDetails() {\n this.adminService.getPermissions().subscribe(response => {\n if (response.permissions && response.permissions.length > 0) {\n this.permissions = response.permissions.find(x => x.id === this.id);\n if (this.permissions) {\n this.form.patchValue(this.permissions);\n }\n }\n });\n }\n\n @ValidateForm('form')\n savePermissionDetails() {\n if (this.form.value['id']) {\n this.adminService.savePermission(this.form.value, this.id).subscribe(() => {\n this.back();\n this.toast.success(this.translation.translate('Admin.Permissions.UpdatedMessage'));\n });\n } else {\n this.adminService.addPermission(this.form.value).subscribe(() => {\n this.back();\n this.toast.success(this.translation.translate('Admin.Permissions.AddedMessage'));\n });\n }\n }\n\n onDiscard() {\n this.form.reset();\n this.location.back();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu #menuItems\n [model]=\"items\"\n [activeItem]=\"activeItem\"></p-tabMenu>\n\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"mb-4\">\n <div class=\"d-flex align-items-center\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n [routerLink]=\"[routers.permissionsList]\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Permission: {{ permissions?.name }}</h3>\n </div>\n </div>\n </div>\n\n <form [formGroup]=\"form\"\n (ngSubmit)=\"savePermissionDetails()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-8\">\n <div class=\"mb-3\">\n <label>{{ 'Permissions.PermissionName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3 text-center\">\n <label>{{ 'Permissions.IsActive' | transloco }}</label>\n <br />\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\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 class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Roles.Create'\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n</div>\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnDestroy } from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { PermissionResponse } from '../../../shared/interface/permission.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { Role } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-permissions-list',\n templateUrl: './permissions-list.component.html',\n styleUrls: ['./permissions-list.component.scss']\n})\nexport class PermissionsListComponent\n extends AppBaseComponent\n implements OnDestroy, AfterViewChecked\n{\n searchText = '';\n\n data: PermissionResponse = {\n permissions: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = true;\n\n private page = 1;\n\n routers = ROUTERS;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getPermissions({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getPermissions(paging: Paging) {\n this.adminService\n .getPermissions(paging)\n .subscribe(response => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDelete(permission: Role) {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.adminService.deletePermission(permission.id).subscribe(() => {\n this.data.permissions = this.data.permissions.filter(\n x => x.id !== permission.id\n );\n this.toast.success(\n this.translation.translate('Admin.Permissions.DeletedMessage')\n );\n this.getPermissions({ page: this.page, page_size: PAGE_SIZE });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Permissions</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-role\"\n [routerLink]=\"[routers.permissionsDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Permissions\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive -0\">\n <p-table #dt\n [value]=\"data.permissions\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Permissions...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Permissions.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-permissions>\n <tr>\n <td data-head=\"Name\">{{ permissions.name }}</td>\n <td data-head=\"Is Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: permissions?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ permissions?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.permissionsDetails + permissions.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(permissions)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-permissions-tabs',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class PermissionsTabsComponent {\n items: MenuItem[];\n\n constructor() {\n this.items = [\n {\n id: 'permissions',\n label: 'Permissions',\n icon: 'fa fa-fw fa-list',\n routerLink: ['/admin/permissions/list']\n },\n {\n id: 'role_management',\n label: 'Roles',\n icon: 'fa fa-fw fa-list',\n routerLink: ['/admin/permissions/roles-list']\n }\n ];\n }\n}\n","import { Component, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MenuItem } from 'primeng/api';\nimport { Params } from '@angular/router';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionTreeComponent } from '@posiwise/shared-components';\nimport { Role } from '@posiwise/common-utilities';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-role-details',\n templateUrl: './role-details.component.html'\n})\nexport class RoleDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n @ViewChild('menuItems', { static: true }) menu: MenuItem[];\n\n @ViewChild('permissionTree', { static: false }) permissionTree: PermissionTreeComponent;\n\n form: UntypedFormGroup;\n\n id: number;\n\n role: Role;\n\n activeItem: MenuItem;\n\n items: MenuItem[];\n\n permissions: any;\n\n subscriptionId: number;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.items = [\n { id: 'details', label: 'Role details', icon: 'fa fa-fw fa-user-cog' },\n { id: 'permission', label: 'Role Permissions', icon: 'fa fa-fw fa-signature' }\n ];\n\n [this.activeItem] = this.items;\n\n this.form = AppAdmin.getRolesForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe((data: Params) => {\n this.id = Number(data['id']);\n this.getRoleDetails();\n });\n }\n\n private getRolePermissions() {\n this.permissionService.getPermissionByRole(this.id).subscribe(permissions => {\n this.permissions = this.permissionService.getPermissionTreeDataByRole(permissions);\n });\n }\n\n activateMenu() {\n this.activeItem = this.menu['activeItem'];\n if (this.activeItem.id === 'permission') {\n this.getRolePermissions();\n }\n }\n\n private getRoleDetails() {\n this.adminService.getRoles({}, this.subscriptionId).subscribe(response => {\n if (response.roles && response.roles.length > 0) {\n this.role = response.roles.find(x => x.id === this.id);\n if (this.role) {\n this.form.patchValue(this.role);\n }\n }\n });\n }\n\n savePermission() {\n const checked = this.permissionTree.getGrantedPermissionNames();\n const granted = [];\n checked.forEach(item => {\n const permissionId = this.permissions.permissions.find(x => x.name === item)['id'];\n granted.push({\n permission_id: permissionId\n });\n }, this);\n\n const data = {\n role_id: this.id,\n role_permissions: granted\n };\n\n this.permissionService.saveUserPermission(data).subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Roles.Permissions.UpdatedMessage')\n );\n });\n }\n\n @ValidateForm('form')\n onSave() {\n if (this.form.value['id']) {\n this.adminService.saveRole(this.form.value, this.id).subscribe(() => {\n this.back();\n this.toast.success(this.translation.translate('Admin.Roles.AddedMessage'));\n });\n } else {\n this.adminService.addRole(this.form.value).subscribe(() => {\n this.back();\n this.toast.success(this.translation.translate('Admin.Roles.UpdatedMessage'));\n });\n }\n }\n\n previous() {\n this.form.reset();\n this.back();\n }\n\n onDiscard() {\n this.form.reset();\n this.back();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu #menuItems\n [model]=\"items\"\n [activeItem]=\"activeItem\"\n (click)=\"activateMenu()\">\n </p-tabMenu>\n\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <ng-template [ngIf]=\"activeItem.id === 'details'\">\n <div class=\"mb-4\">\n <div class=\"d-flex align-items-center\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"previous()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Role: {{ role?.name }}</h3>\n </div>\n </div>\n </div>\n\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-8\">\n <div class=\"mb-3\">\n <label>{{ 'Admin.Roles.RoleName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3 text-center\">\n <label>{{ 'Admin.Roles.IsActive' | transloco }}</label>\n <br />\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\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 class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Roles.Create'\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template [ngIf]=\"activeItem.id === 'permission'\">\n <div class=\"p-4\">\n <ng-container *ngIf=\"permissions\">\n <permission-tree [data]=\"permissions\"\n #permissionTree></permission-tree>\n\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\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 class=\"btn btn-primary\"\n (click)=\"savePermission()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging, Role } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-roles-list',\n templateUrl: './roles-list.component.html',\n styleUrls: ['./roles-list.component.scss']\n})\nexport class RolesListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n totalRecords: number;\n\n searchText = '';\n\n roles: Role[] = [];\n\n loading = true;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getRoles({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getRoles(paging: Paging) {\n this.adminService.getRoles(paging, this.subscriptionId).subscribe(response => {\n this.roles = response.roles;\n this.totalRecords = response.object_count;\n this.loading = false;\n });\n }\n\n onDeleteRole(role: Role) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete ${role.name}?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.deleteRole(role.id).subscribe(() => {\n this.roles = this.roles.filter(x => x.id !== role.id);\n this.toast.success(this.translation.translate('Admin.Roles.DeletedMessage'));\n this.getRoles({\n page: this.page,\n page_size: PAGE_SIZE\n });\n });\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Roles</h2>\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-role\"\n [routerLink]=\"[routers.rolesDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Role\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt-0 table-responsive\">\n <p-table #dt\n [value]=\"roles\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Role...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Admin.Roles.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-role>\n <tr>\n <td data-head=\"Name\">{{ role.name }}</td>\n <td data-head=\"Is Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: role?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ role?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.rolesDetails + role.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDeleteRole(role)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SelectItem } from 'primeng/api';\nimport { Observable } from 'rxjs';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { PrivacyTos } from '../../../shared/interface/privacy-tos.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-product-details',\n templateUrl: './product-details.component.html',\n styleUrls: ['./product-details.component.scss']\n})\nexport class ProductDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n duplicateId: number;\n\n data: any;\n\n productsList: SelectItem[];\n\n selectedProducts: SelectItem[] = [];\n\n selectedScopes: SelectItem[] = [];\n\n squaredLogo = '';\n\n frequency = [\n {\n label: 'Select',\n value: null\n },\n {\n label: 'Monthly',\n value: 'month'\n },\n {\n label: 'Yearly',\n value: 'year'\n }\n ];\n\n categories = [];\n\n allTos: PrivacyTos[];\n\n allRoles: any[];\n\n subscriptionsRolesData: any;\n\n productRoles: any;\n\n slug: string;\n\n fullLogo = '';\n\n subscriptionId: number;\n\n masterProductId: number;\n\n supportedCurrency$: Observable<any>;\n\n supportedRegions$: Observable<any>;\n\n constructor(\n injector: Injector,\n private productService: ProductService,\n private modalService: NgbModal,\n private adminService: AdminService\n ) {\n super(injector);\n this.form = AppAdmin.getProductsForm();\n }\n\n ngOnInit() {\n this.supportedCurrency$ = this.productService.getSupportedCurrency();\n this.supportedRegions$ = this.productService.getSupportedRegions();\n this.masterProductId = this.appConfig.master_subscription.product_id;\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.duplicateId = Number(this.route.snapshot.queryParams['duplicate_product_id']);\n this.route.params.subscribe(params => {\n this.id = +params['id'] || 0;\n this.getCategories();\n if (this.id) {\n this.getProductDetails();\n this.getSubscriptionRole(this.id);\n }\n });\n if (this.duplicateId) {\n this.getDuplicateProductDetails();\n this.getSubscriptionRole(this.duplicateId);\n }\n this.userStore().subscribe(user => {\n if (user) {\n this.slug = user.slug;\n }\n });\n this.getProducts();\n this.getAllTos(1, this.PAGE_SIZE);\n this.getRoles();\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getProducts() {\n this.productService\n .getProducts({\n subscription_id: this.subscriptionId,\n master_product_id: this.masterProductId\n })\n .subscribe(resp => {\n if (resp?.products?.length) {\n this.productsList = resp.products.map(element => {\n return {\n value: element.id,\n label: element.name\n };\n });\n }\n });\n }\n\n onSearchCriteria(event) {\n this.selectedProducts = event.value.map(x => x);\n }\n\n private getDuplicateProductDetails() {\n this.productService.getProductById(this.duplicateId).subscribe(response => {\n this.selectedScopes = response.dependency_products;\n const data = response;\n delete data['id'];\n this.form.patchValue(data);\n });\n }\n\n private getProductDetails() {\n if (this.id) {\n this.productService.getProductById(this.id).subscribe(response => {\n this.selectedScopes = response.dependency_products;\n this.data = response;\n this.form.patchValue(this.data);\n if (response.full_logo) {\n this.fullLogo = response.full_logo.url;\n }\n if (response.squared_logo) {\n this.squaredLogo = response.squared_logo.url;\n }\n });\n }\n }\n\n private getCategories() {\n this.productService.getProductCategories().subscribe(response => {\n if (response && response.categories) {\n response.categories.forEach(element => {\n const item = {\n label: element,\n value: element\n };\n this.categories.push(item);\n });\n }\n });\n this.categories.unshift({\n label: 'Select',\n value: null\n });\n }\n\n /** Function to call all tos */\n private getAllTos(page: number, page_size: number) {\n this.adminService\n .getAllTos({ page, page_size }, this.subscriptionId)\n .subscribe(response => {\n this.allTos = response.product_privacy_services;\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n if (this.id) {\n this.onUpdate();\n } else {\n this.onAdd();\n }\n }\n\n onAdd() {\n const data = { ...this.form.value, subscription_id: this.subscriptionId };\n delete data.roles;\n this.productService\n .addProduct(data)\n .subscribe({\n next: response => {\n if (!response.error) {\n this.form.patchValue(response);\n if (this.form.value.roles) {\n this.subscriptionsRolesData = {\n product_roles: this.form.get('roles').value?.map(res => {\n return { role_id: res };\n }),\n product_id: response.id\n };\n this.adminService\n .saveProductRoles(this.subscriptionsRolesData)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Users.UpdatedRole')\n );\n });\n }\n this.back();\n this.toast.success(\n this.translation.translate('Admin.Products.AddedMessage')\n );\n } else {\n this.toast.error(this.translation.translate('GenericMessage.WentWrong'));\n }\n },\n error: error => this.toast.showToast(error)\n })\n .add(() => {\n this.submitted = false;\n });\n }\n\n onUpdate() {\n const data = {\n ...this.form.value,\n dependency_products: this.selectedProducts,\n subscription_id: this.subscriptionId\n };\n delete data.roles;\n\n this.productService.updateProduct(data, this.id).subscribe(response => {\n if (response.error) {\n this.toast.error(this.translation.translate('GenericMessage.WentWrong'));\n } else {\n this.form.patchValue(response);\n this.toast.success(this.translation.translate('Admin.Products.UpdatedMessage'));\n this.back();\n }\n });\n this.subscriptionsRolesData = {\n product_roles: this.form.get('roles').value?.map(res => {\n return { role_id: res };\n }),\n product_id: this.id\n };\n this.adminService\n .saveProductRoles(this.subscriptionsRolesData)\n .subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Users.UpdatedRole'));\n })\n .add(() => {\n this.submitted = false;\n });\n }\n\n private getRoles() {\n this.adminService.getRoles({}, this.subscriptionId).subscribe(response => {\n this.allRoles = response.roles.map((item, index) => {\n return {\n label: item.name,\n value: item.id,\n disabled: index === 0\n };\n });\n });\n }\n\n private getSubscriptionRole(id: number) {\n this.adminService.getProductsRoles(id).subscribe(response => {\n this.productRoles = response?.map(item => {\n return {\n name: item.name,\n id: item.id\n };\n });\n\n this.form.patchValue({\n roles: this.productRoles.map(x => x.id)\n });\n });\n }\n\n openModal(content) {\n this.modalService.open(content, { centered: true, windowClass: 'modal-holder' });\n }\n\n onImageSelection(event) {\n const blob = this.dataURLtoBlob(event);\n const filename = `${`${this.slug.toLocaleLowerCase()}_${Date.parse(\n new Date().toString()\n )}`}.png`;\n const file: File = new File([blob], filename);\n const fileData = new FormData();\n fileData.append('full_logo', file);\n fileData.append('subscription_id', `${this.subscriptionId}`);\n this.productService.updateProduct(fileData, this.id).subscribe(res => {\n this.modalService.dismissAll();\n this.fullLogo = res?.full_logo?.url;\n });\n }\n\n uploadSquaredLogo(event) {\n const blob = this.dataURLtoBlob(event);\n const filename = `${`${this.slug.toLocaleLowerCase()}_${Date.parse(\n new Date().toString()\n )}`}.png`;\n const file: File = new File([blob], filename);\n const fileData = new FormData();\n fileData.append('squared_logo', file);\n fileData.append('subscription_id', `${this.subscriptionId}`);\n this.productService.updateProduct(fileData, this.id).subscribe(res => {\n this.modalService.dismissAll();\n this.squaredLogo = res?.squared_logo?.url;\n });\n }\n\n onClose() {\n this.modalService.dismissAll();\n }\n\n dataURLtoBlob(dataurl: string) {\n const arr = dataurl.split(',');\n const mime = arr[0].match(/^[A-Z]*[a-z]*:(.*?);[A-Z]*/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], { type: mime });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"container-fluid pw-tab product-form overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\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=\"\">Product: {{ data?.name ? data?.name : 'Add New' }}</h3>\n <div class=\"my-4\">\n <p-accordion>\n <p-accordionTab [header]=\"'How To'\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6\">\n <h4>Product / Feature logic</h4>\n <p>\n Logic for back-end/front-end permissions binding: <br />\n * product.permission_key =&gt; users can be subscribed to only\n one product of same permission_key <br />\n * product.category (these are features) =&gt; users can\n subscribed to multiple features within the same\n product.permission_key<br />\n * product.product_key =&gt; this is unique, it defines the\n permission for frontend binding<br />\n * Example of permission =&gt;\n {{ 'Pages.Product.{permission_key}.{product_key}' }}<br />\n * If it's a feature associated to an existing project, you can\n to set the \"dependency product\" accordingly.\n </p>\n </div>\n <div class=\"col-12 col-md-6\">\n <h4>If free product</h4>\n <p>\n Stripe Plan needs to be nil. <br />\n \"Price\" per Unit needs to be set as 0. <br />\n \"Trial Days\" needs to be something like 99999. <br />\n The product should be set as \"visible===false\".\n </p>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n <div class=\"row\"\n *ngIf=\"id\">\n <div class=\"col-md-6\">\n <div class=\"text-center mt-5\">\n <div class=\"image-container\">\n <h4 class=\"mb-2\">\n {{ 'User.Subscriptions.FullLogo' | transloco }}\n <span class=\"tooltip-wrap ms-1\"\n [pTooltip]=\"'User.Subscriptions.Tooltip.FullLogo'|transloco\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"'top'\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </h4>\n <img [src]=\"fullLogo\"\n alt=\"\"\n class=\"image full-logo w-100 h-100\"\n onerror=\"this.onerror=null;this.src='assets/img/icons/demo_logo1.png';\" />\n <div class=\"overlay mt-2\"\n (click)=\"openModal(content)\">\n <div class=\"overlay-text\">\n <a href=\"javascript:void(0)\">{{\n 'User.Profile.Change' | transloco\n }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"text-center mt-5\">\n <div class=\"image-container\">\n <h4 class=\"mb-2\">\n {{ 'User.Subscriptions.SquaredLogo' | transloco }}\n <span class=\"tooltip-wrap ms-1\"\n [pTooltip]=\"'User.Subscriptions.Tooltip.SquaredLogo'|transloco\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"'top'\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </h4>\n <img [src]=\"squaredLogo\"\n alt=\"\"\n width=\"70\"\n class=\"squared_logo\"\n height=\"70\"\n onerror=\"this.onerror=null;this.src='assets/img/icons/company.png';\" />\n <div class=\"overlay mt-2\"\n (click)=\"openModal(squaredLogoContent)\">\n <div class=\"overlay-text\">\n <a href=\"javascript:void(0)\">{{\n 'User.Profile.Change' | transloco\n }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.Name' | transloco\"\n [label]=\"'Label.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"'Admin.Products.Validation.Name' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-md-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.NickName' | transloco\"\n [label]=\"'Admin.Products.NickName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"nickname\"\n [errorMsg]=\"\n 'Admin.Products.Validation.NickName' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"nickname\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['nickname'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </div>\n <div class=\"col-12 col-md-6\">\n <div class=\"row\">\n <div class=\"mb-3 col-12 col-md-6\">\n <pw-input-container [label]=\"'Admin.Products.MinUnit' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.MinUnits' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Products.Validation.MinUnit' | transloco\">\n <input type=\"number\"\n min=\"1\"\n class=\"form-control\"\n formControlName=\"min_units\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['min_units'].errors\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-12 col-md-6\">\n <pw-input-container [label]=\"'Admin.Products.MaxUnit' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.MaxUnits' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"max_units\"\n [errorMsg]=\"'Admin.Products.Validation.MaxUnit' | transloco\">\n <input type=\"number\"\n min=\"1\"\n class=\"form-control\"\n formControlName=\"max_units\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['max_units'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n </div>\n <div class=\"col-12 col-md-6\">\n <label class=\"info-circle\">\n {{ 'Admin.Products.DependencyProducts' | transloco\n }}<span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.Products.Tooltip.DependencyProducts' | transloco\n }}</span>\n </label>\n <p-multiSelect [options]=\"productsList\"\n [(ngModel)]=\"selectedScopes\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onChange)=\"onSearchCriteria($event)\"\n [showHeader]=\"false\"\n maxSelectedLabels=\"1\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n <div class=\"col-12 col-md-6\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.StripePlan' | transloco\"\n [label]=\"'Admin.Products.StripePlan' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"stripe_plan_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"stripe_plan_id\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-6\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.Price' | transloco\"\n [label]=\"'Admin.Products.Price' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"price_per_unit\"\n [errorMsg]=\"'Admin.Products.Validation.Name' | transloco\">\n <input type=\"text\"\n numbersOnly\n class=\"form-control\"\n formControlName=\"price_per_unit\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['price_per_unit'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-6\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.TrialDays' | transloco\"\n [label]=\"'Admin.Products.TrialDays' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"trial_days\"\n [errorMsg]=\"'Admin.Products.Validation.TrialDays' | transloco\">\n <input type=\"number\"\n min=\"1\"\n class=\"form-control\"\n formControlName=\"trial_days\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['trial_days'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-6\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.MaxTrialHits' | transloco\"\n [label]=\"'Admin.Products.MaxTrialHits' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"max_hits_trial\">\n <input type=\"number\"\n min=\"0\"\n class=\"form-control\"\n formControlName=\"max_hits_trial\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['max_hits_trial'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-6\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.TrialHits' | transloco\"\n [label]=\"'Admin.Products.TrialHits' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"max_hits\">\n <input type=\"number\"\n min=\"0\"\n class=\"form-control\"\n formControlName=\"max_hits\"\n [ngClass]=\"{ 'is-invalid': submitted && f['max_hits'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.Description' | transloco\"\n [label]=\"'Admin.Products.Description' | transloco\"\n name=\"description\"\n [errorMsg]=\"'Admin.Products.Validation.Description' | transloco\">\n <quill-editor [styles]=\"{ height: '220px' }\"\n formControlName=\"description\"\n [ngClass]=\"{ 'is-invalid': submitted && f['description'].errors }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-md-12\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.SignupInstructions' | transloco\"\n [label]=\"'Admin.Products.SignupInstructions' | transloco\"\n name=\"signup_instructions\">\n <quill-editor [styles]=\"{ height: '220px' }\"\n formControlName=\"signup_instructions\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['signup_instructions'].errors\n }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-md-12\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.SignupInstructionEmployees' | transloco\"\n [label]=\"'Admin.Products.SignupInstructionEmployees' | transloco\"\n name=\"signup_instruction_employees\">\n <quill-editor [styles]=\"{ height: '220px' }\"\n formControlName=\"signup_instruction_employees\"\n [ngClass]=\"{\n 'is-invalid':\n submitted && f['signup_instruction_employees'].errors\n }\">\n </quill-editor>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.PermissionKey' | transloco\"\n [label]=\"'Admin.Products.PermissionKey' | transloco\"\n name=\"permission_key\"\n [errorMsg]=\"\n 'Admin.Products.Validation.PermissionKey' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['permission_key'].errors\n }\"\n formControlName=\"permission_key\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.FeatureKey' | transloco\"\n [label]=\"'Admin.Products.FeatureKey' | transloco\"\n name=\"feature_key\"\n [errorMsg]=\"'Admin.Products.Validation.FeatureKey' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['feature_key'].errors\n }\"\n formControlName=\"feature_key\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Products.ProductKey' | transloco\"\n class=\"col-md-6 p-0\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.Products.Tooltip.PermissionKey' | transloco\n \"\n name=\"product_key\"\n [errorMsg]=\"'Admin.Products.Validation.ProductKey' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"product_key\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['product_key'].errors\n }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.Products.Category' | transloco\"\n class=\"col-md-6 p-0\"\n [showTooltip]=\"true\"\n [tooltipText]=\"\n 'Admin.Products.Tooltip.PermissionKey' | transloco\n \"\n name=\"category\"\n [errorMsg]=\"'Admin.Products.Validation.Category' | transloco\">\n <p-dropdown [options]=\"categories\"\n class=\"dropdown-bg-transparent\"\n formControlName=\"category\"\n [style]=\"{ width: '100%' }\"\n [ngClass]=\"{ 'is-invalid': submitted && f['category'].errors }\">\n </p-dropdown>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.BillingFrequency' | transloco\"\n [label]=\"'Admin.Products.BillingFrequency' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"billing_frequency\">\n <p-dropdown [options]=\"frequency\"\n class=\"dropdown-bg-transparent\"\n formControlName=\"billing_frequency\"\n [required]=\"true\"\n [style]=\"{ width: '100%' }\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['billing_frequency'].errors\n }\">\n </p-dropdown>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.ProductPrivacyService' | transloco\"\n [label]=\"'Admin.Products.ProductPrivacyService' | transloco\"\n name=\"product_privacy_service_id\">\n <select formControlName=\"product_privacy_service_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of allTos\"\n [value]=\"option.id\">\n {{ option.title }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\"\n *rbacAllow=\"'SuperAdmin'\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.MasterProduct' | transloco\"\n [label]=\"'Admin.Products.MasterProduct' | transloco\"\n name=\"master_product_id\">\n <select formControlName=\"master_product_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of productsList\"\n [value]=\"option.value\">\n {{ option.label }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-4\">\n <label class=\"info-circle\">{{ 'Admin.Products.AssignedRoles' | transloco }}\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.Subscriptions.Tooltip.AssignedRoles' | transloco\n }}</span>\n </label>\n <p-multiSelect [options]=\"allRoles\"\n formControlName=\"roles\"\n appendTo=\"body\"></p-multiSelect>\n </div>\n <div class=\"col-12 col-md-4\"\n *ngIf=\"supportedCurrency$ | async as currency\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.Currency' | transloco\"\n [label]=\"'Admin.Products.Currency' | transloco\"\n name=\"currency\"\n [errorMsg]=\"'Admin.Products.Validation.Currency' | transloco\">\n <select class=\"form-select\"\n formControlName=\"currency\"\n [ngClass]=\"{ 'is-invalid': submitted && f['currency'].errors }\">\n <option *ngFor=\"let option of currency['regions']\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-md-4\"\n *ngIf=\"supportedRegions$ | async as region\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.Region' | transloco\"\n [label]=\"'Admin.Products.Region' | transloco\"\n name=\"region\"\n [errorMsg]=\"'Admin.Products.Validation.Region' | transloco\">\n <select class=\"form-select\"\n formControlName=\"region\"\n [ngClass]=\"{ 'is-invalid': submitted && f['region'].errors }\">\n <option *ngFor=\"let option of region['regions']\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-md-4\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.GitLabServiceDeskEmail' | transloco\"\n [label]=\"'Admin.Products.GitLabServiceDeskEmail' | transloco\"\n name=\"gitlab_service_desk_email\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"gitlab_service_desk_email\" />\n </pw-input-container>\n </div>\n <!--start toggles -->\n <div class=\"col-12 row\">\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.IsActive' | transloco\"\n [label]=\"'Admin.Products.IsActive' | transloco\"\n name=\"active\">\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\"\n [ngClass]=\"{ 'is-invalid': submitted && f['active'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\"\n *rbacAllow=\"'SuperAdmin'\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.MultipleAllowed' | transloco\"\n [label]=\"'Admin.Products.MultipleAllowed' | transloco\"\n class=\"nowrap\"\n name=\"multiple_allowed\">\n <ui-switch class=\"d-block\"\n formControlName=\"multiple_allowed\"\n name=\"multiple_allowed\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['multiple_allowed'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.IsVisible' | transloco\"\n [label]=\"'Admin.Products.IsVisible' | transloco\"\n name=\"visible\">\n <ui-switch class=\"d-block\"\n formControlName=\"visible\"\n name=\"visible\"\n [ngClass]=\"{ 'is-invalid': submitted && f['visible'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.MembersVisible' | transloco\"\n [label]=\"'Admin.Products.MembersVisible' | transloco\"\n name=\"members_visible\">\n <ui-switch class=\"d-block\"\n formControlName=\"members_visible\"\n name=\"members_visible\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['members_visible'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.ChatVisible' | transloco\"\n [label]=\"'Admin.Products.ChatVisible' | transloco\"\n name=\"chat_visible\">\n <ui-switch class=\"d-block\"\n formControlName=\"chat_visible\"\n name=\"chat_visible\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['chat_visible'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\"\n *rbacAllow=\"'SuperAdmin'\">\n <div class=\"mb-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Products.Tooltip.IsMasterProduct' | transloco\"\n [label]=\"'Admin.Products.IsMasterProduct' | transloco\"\n name=\"is_master_product\">\n <ui-switch class=\"d-block\"\n formControlName=\"is_master_product\"\n name=\"is_master_product\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['is_master_product'].errors\n }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n </div>\n <!-- end toggles -->\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\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\"\n *rbacAllow=\"'Pages.Admin.Product.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n<ng-template #content\n let-modal>\n <div class=\"modal-header\">\n <h3 class=\"modal-title mb-0 p-0\">{{ 'User.Subscriptions.FullLogo' | transloco }}</h3>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n </button>\n </div>\n <div class=\"modal-body\">\n <small> {{ 'User.Profile.PictureMessage' | transloco }}</small>\n <pw-image-cropper #profile\n (imageSelectionEvent)=\"onImageSelection($event)\"\n aspectRatio=\"fullLogo\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n<ng-template #squaredLogoContent\n let-modal>\n <div class=\"modal-header\">\n <h3 class=\"modal-title mb-0 p-0\">{{ 'User.Subscriptions.SquaredLogo' | transloco }}</h3>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <small> {{ 'User.Profile.PictureMessage' | transloco }}</small>\n <pw-image-cropper #profile\n (imageSelectionEvent)=\"uploadSquaredLogo($event)\"\n aspectRatio=\"auto\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n</ng-template>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Plotly } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-product-insight',\n templateUrl: './products-insight.component.html',\n styleUrls: ['./products-insight.component.scss']\n})\nexport class ProductInsightComponent extends AppBaseComponent implements OnInit, OnDestroy {\n graph: Plotly.Figure;\n\n isLoading: boolean;\n\n subscriptionId: number;\n\n startDate: NgbDateStruct;\n\n endDate: NgbDateStruct;\n\n constructor(private productService: ProductService, injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.getChartData();\n }\n\n private getChartData() {\n this.isLoading = true;\n this.productService\n .getProductInsight(\n this.subscriptionId,\n this.startDate ? HelperService.dateFormat(this.startDate) : '',\n this.endDate ? HelperService.dateFormat(this.endDate) : ''\n )\n .subscribe(response => {\n this.graph = response;\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n onDateSelect() {\n if (this.startDate && this.endDate) {\n this.getChartData();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"my-3 title\">\n <h2 class=\"card-title p-0\">Products Insight</h2>\n</div>\n<!-- selectdate -->\n<div class=\"mb-3\">\n <h5 class=\"mb-4\">Select date</h5>\n <div class=\"row\">\n <!-- startdate -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"start date\"\n [(ngModel)]=\"startDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n <!-- end date -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"end date\"\n [(ngModel)]=\"endDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #c=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"c.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n<!-- end -->\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n</ng-template>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\nimport { forkJoin } from 'rxjs';\n\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE, TOKEN_KEY } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PasswordValidationComponent } from '@posiwise/shared-components';\nimport { Paging } from '@posiwise/common-utilities';\nimport { Product } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\nimport uniqBy from 'lodash/uniqBy';\n\n@Component({\n selector: 'pw-admin-products-list',\n templateUrl: './products-list.component.html',\n styleUrls: ['./products-list.component.scss']\n})\nexport class ProductsListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('passwordValidationModalForProductDelete', { static: false })\n passwordValidationModalForProductDelete: PasswordValidationComponent;\n\n totalRecords: number;\n\n loading = true;\n\n searchText = '';\n\n products = [];\n\n page = 1;\n\n billingFrequency = ['week', 'month', 'year'];\n\n categories = [];\n\n totalRecordsUnFilter = 0;\n\n routers = ROUTERS;\n\n userLoggedIn: boolean;\n\n subscriptionId: number;\n\n currency = [];\n\n regions = [];\n\n filterByFeatureKeys = [];\n\n featureKeysList = [];\n\n private productToDelete: Product;\n\n constructor(\n private productService: ProductService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getCategories();\n this.getCurrencyAndRegions();\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n }\n });\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getData({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getCurrencyAndRegions() {\n forkJoin({\n currency: this.productService.getSupportedCurrency(),\n regions: this.productService.getSupportedRegions()\n }).subscribe(res => {\n this.currency = res?.currency?.regions;\n this.regions = res?.regions?.regions;\n });\n }\n\n private getData(paging: Paging) {\n this.productService\n .getProductList(paging, this.subscriptionId, {\n feature_keys: this.filterByFeatureKeys.join() || ''\n })\n .subscribe(response => {\n this.products = response.products;\n this.totalRecords = response.object_count;\n this.totalRecordsUnFilter = response.unfiltered_count;\n\n if (\n !this.featureKeysList?.length &&\n response?.products &&\n response.products?.length\n ) {\n this.featureKeysList = response.products.map(element => {\n return {\n value: element.feature_key,\n label: element.feature_key\n };\n });\n this.featureKeysList = uniqBy(this.featureKeysList, 'label');\n }\n\n this.products.forEach(element => {\n element.price_per_unit = (element.price_per_unit / 100).toFixed(2);\n });\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onSearchOptionChange(event) {\n this.filterByFeatureKeys = event.value;\n this.getData({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n onDelete(item: Product) {\n this.productToDelete = item;\n this.passwordValidationModalForProductDelete.open();\n }\n\n deleteProduct(_evnt) {\n this.productService\n .deleteProduct(this.productToDelete?.id, this.subscriptionId)\n .subscribe(() => {\n this.products = this.products.filter(x => x.id !== this.productToDelete?.id);\n })\n .add(() => {\n this.productToDelete = null;\n });\n }\n\n private getCategories() {\n this.productService.getProductCategories().subscribe(response => {\n if (response?.categories) {\n this.categories = response?.categories || [];\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"col-xs-12 text-end d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Products</h2>\n <button *rbacAllow=\"'Pages.Admin.Product.Create'\"\n class=\"btn btn-sm btn-outline-primary\"\n [routerLink]=\"[routers.productDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Product\n </button>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"totalRecordsUnFilter === 0\">\n <p-table #dt\n [value]=\"products\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"search-filter\">\n <div class=\"col-12 col-sm-4\">\n <p-multiSelect defaultLabel=\"Select Feature Keys\"\n [options]=\"featureKeysList\"\n (onChange)=\"onSearchOptionChange($event)\"\n [showHeader]=\"true\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Product...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr class=\"head\">\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"stripe_plan_id\">\n {{ 'Admin.Products.StripePlan' | transloco }}\n <p-sortIcon field=\"stripe_plan_id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"permission_key\">\n {{ 'Admin.Products.PermissionKey' | transloco }}\n <p-sortIcon field=\"permission_key\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"feature_key\">\n {{ 'Admin.Products.FeatureKey' | transloco }}\n <p-sortIcon field=\"feature_key\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"product_key\">\n {{ 'Admin.Products.ProductKey' | transloco }}\n <p-sortIcon field=\"product_key\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"category\">\n {{ 'Admin.Products.Category' | transloco }}\n <p-sortIcon field=\"category\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"region\">\n {{ 'Admin.Products.Region' | transloco }}\n <p-sortIcon field=\"region\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"currency\">\n {{ 'Admin.Products.Currency' | transloco }}\n <p-sortIcon field=\"currency\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"price_per_unit\">\n {{ 'Admin.Products.Price' | transloco }}\n <p-sortIcon field=\"price_per_unit\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Label.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"billing_frequency\">\n {{ 'Admin.Products.Billing' | transloco }}\n <p-sortIcon field=\"billing_frequency\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Name\">{{ item.name }}</td>\n <td data-head=\"Stripe Plan\">{{ item.stripe_plan_id }}</td>\n <td data-head=\"Permission Key\">{{ item.permission_key }}</td>\n <td data-head=\"Feature Key\">{{ item.feature_key }}</td>\n <td data-head=\"Product Key\">{{ item.product_key }}</td>\n <td data-head=\"Category\">\n <span [appDynamicBadge]=\"{ itemsArray: categories, item: item.category }\"\n color=\"warning\"\n class=\"badge\">{{ item.category }}</span>\n </td>\n <td data-head=\"Region\">\n <span [appDynamicBadge]=\"{ itemsArray: regions, item: item.region }\"\n color=\"cyan\"\n class=\"badge\">{{ item.region }}</span>\n </td>\n <td data-head=\"Currency\">\n <span [appDynamicBadge]=\"{ itemsArray: currency, item: item.currency }\"\n color=\"blue-grey\"\n class=\"badge\">{{ item.currency }}</span>\n </td>\n <td data-head=\"Price\">{{ item.price_per_unit }}</td>\n <td data-head=\"Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: item?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Billing\">\n <span class=\"badge\"\n [appDynamicBadge]=\"{\n itemsArray: billingFrequency,\n item: item?.billing_frequency\n }\"\n color=\"blue-grey\">{{ item.billing_frequency }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline width-max-content\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Product.Edit'\"\n [routerLink]=\"[routers.productDetails + item.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Product.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Users List\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Product.Edit'\"\n [routerLink]=\"[routers.productsUserList + item.id]\">\n <i class=\"fa fa-tasks cta1-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Duplicate The Product\"\n class=\"me-sm-3\"\n [routerLink]=\"['product-details/add']\"\n [queryParams]=\"{ duplicate_product_id: item.id }\">\n <i class=\"fa fa-clone edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Feedback Questions\"\n container=\"body\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.feedbackQuestions]\"\n [queryParams]=\"{ product_id: item.id }\">\n <i class=\"fa fa-comments edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"totalRecords === 0 && totalRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">Total: {{ totalRecords }}</span>\n</div>\n<div *ngIf=\"!loading && totalRecordsUnFilter === 0\">\n <pw-no-data [message]=\"'Admin.Products.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n<!-- password validation modal for delete product -->\n<pw-password-validation #passwordValidationModalForProductDelete\n (successEvent)=\"deleteProduct($event)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <p>{{ 'User.Account.Message.ActionCanNotUndone' | transloco }}</p>\n <p>{{ 'User.Account.Message.ConfirmPassword' | transloco }}</p>\n </div>\n </div>\n</pw-password-validation>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-products-tabs',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`,\n styleUrls: ['./products-tabs.component.scss']\n})\nexport class ProductsComponent {\n items: MenuItem[];\n\n constructor() {\n this.items = [\n {\n id: 'products',\n label: 'Products',\n icon: 'fa fa-fw fa-list',\n routerLink: ['/admin/products/list']\n },\n {\n id: 'insight',\n label: 'Insight',\n icon: 'fa fa-fw fa-tag',\n routerLink: ['/admin/products/insight']\n }\n ];\n }\n}\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { SubscriptionMember, User } from '@posiwise/common-utilities';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-users-list-for-product',\n templateUrl: './users-list-for-product.component.html'\n})\nexport class UsersListForProductComponent extends AppBaseComponent implements OnInit, OnDestroy {\n totalRecords: number;\n\n loading = true;\n\n searchText = '';\n\n id: number;\n\n users: SubscriptionMember[];\n\n productName: string;\n\n currentUser: User;\n\n subscriptionId: number;\n\n constructor(private productService: ProductService, injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe(params => {\n this.id = +params['id'];\n if (this.id) {\n this.getUsersForProduct();\n }\n });\n this.userStore().subscribe(response => {\n this.currentUser = response;\n });\n }\n\n private getUsersForProduct() {\n this.productService.getUsersForProduct(this.id, this.subscriptionId).subscribe(response => {\n if (response && response.subscription_members) {\n this.productName = response.name;\n this.users = response.subscription_members;\n this.loading = false;\n this.totalRecords = response.subscription_members.length;\n }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 mb-3\">\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=\"m-subheader__title m-subheader__title--separator\">\n Users list for Product ({{ productName }})\n </h3>\n </div>\n </div>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\">\n <p-table #dt\n [value]=\"users\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n [globalFilterFields]=\"['first_name', 'email']\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search User...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr class=\"head\">\n <th scope=\"true\"\n pSortableColumn=\"first_name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"first_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"email\">\n {{ 'Label.Email' | transloco }}\n <p-sortIcon field=\"email\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"joined_at\">\n {{ 'Admin.Products.JoinedAt' | transloco }}\n <p-sortIcon field=\"joined_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_sign_in_at\">\n {{ 'Admin.Products.LastSignInAt' | transloco }}\n <p-sortIcon field=\"last_sign_in_at\"></p-sortIcon>\n </th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Name\">\n <a [routerLink]=\"['/members', item?.slug]\">{{ item?.first_name }} {{ item?.last_name }}</a>\n </td>\n <td data-head=\"Email\">{{ item.email }}</td>\n <td data-head=\"Joined At\">{{ item?.joined_at | dateFormat }}</td>\n <td data-head=\"Last Sign In At\">{{ item?.last_sign_in_at | dateFormat }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <ng-template [ngIf]=\"currentUser && item.id !== currentUser.id\">\n <li ngbTooltip=\"Message\"\n *rbacAllow=\"'Pages.Chat'\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"['/message']\"\n [fragment]=\"item.slug\">\n <i class=\"fa fa-comments cta1-icon\" aria-hidden=\"true\"></i>\n </li>\n </ng-template>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { User } from '@posiwise/common-utilities';\nimport { GroupService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-agent-details',\n templateUrl: './subscription-agents.component.html'\n})\nexport class AgentDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n submitted = false;\n\n subscriptionId: number;\n\n agentId: number;\n\n allAgents: any = [];\n\n private agentDetails: any;\n\n allUsers = [];\n\n filteredUsers = [];\n\n constructor(\n private adminService: AdminService,\n private groupService: GroupService,\n private config: NgbDatepickerConfig,\n injector: Injector\n ) {\n super(injector);\n this.form = AppAdmin.getSubscriptionAgentsForm();\n }\n\n ngOnInit() {\n this.route.params.subscribe((data: User) => {\n this.subscriptionId = data['id'];\n this.agentId = data['agent_id'];\n });\n\n const current = new Date();\n this.config.minDate = {\n year: current.getFullYear(),\n month: current.getMonth() + 1,\n day: current.getDate()\n };\n this.config.outsideDays = 'hidden';\n this.getAgentsDetails();\n this.getUsers();\n }\n\n private getAgentsDetails() {\n this.adminService.getAgentById(this.subscriptionId, this.agentId).subscribe(response => {\n const res = response.subscription_agent;\n const endDate = response.subscription_agent?.end_date;\n const dobObject = {\n year: Number(endDate.substring(0, 4)),\n month: Number(endDate.substring(5, 7)),\n day: Number(endDate.substring(8, 10))\n };\n response.subscription_agent.user.displayName = `${res?.user?.first_name} ${\n res?.user?.last_name || ''\n } ${res?.user?.email}`.trim();\n this.agentDetails = response.subscription_agent;\n this.form.patchValue(response.subscription_agent);\n this.form.patchValue({ end_date: dobObject });\n this.form.get('email').patchValue(res?.user);\n });\n }\n\n @ValidateForm('form')\n updateDetails() {\n this.submitted = true;\n const formValue = this.form.value;\n const data = {\n percentage: formValue.percentage,\n end_date: HelperService.dateFormat(formValue.end_date),\n email: formValue.email.email\n };\n this.groupService\n .updateAgent(this.subscriptionId, this.agentId, data)\n .subscribe(() => {\n this.toast.success(this.translation.translate('User.Subscriptions.UpdatedMessage'));\n this.back();\n })\n .add(() => {\n this.submitted = false;\n });\n }\n\n private getUsers() {\n this.adminService\n .getUsers({}, { subscription_id: this.subscriptionId })\n .subscribe(response => {\n this.allUsers = response.users;\n this.allUsers.forEach(member => {\n const firstName = member.first_name || '';\n const lastName = member.last_name || '';\n member.displayName = `${firstName} ${lastName} ${member.email}`.trim();\n });\n });\n }\n\n search(event) {\n let values = [];\n if (event.query) {\n values = this.allUsers.filter(x => {\n return x.displayName.toLowerCase().includes(event.query.toLowerCase());\n });\n } else {\n this.allUsers.forEach(element => {\n values.push(element);\n });\n }\n this.filteredUsers = values;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"d-flex align-items-center ms-3\">\n <div class=\"me-auto col-xs-6 d-flex\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">Update Ambassador Details</h3>\n </div>\n</div>\n<div class=\"p-2 mt-3 ms-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"updateDetails()\">\n <!-- Agent Details -->\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <div class=\"ui-fluid skills-modal\">\n <label>Ambassador</label>\n <p-autoComplete [suggestions]=\"filteredUsers\"\n formControlName=\"email\"\n dataKey=\"id\"\n field=\"displayName\"\n [dropdown]=\"true\"\n (completeMethod)=\"search($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search ambassador\"\n [multiple]=\"false\"\n autocomplete=\"off\">\n </p-autoComplete>\n </div>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label>Percentage</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"percentage\" />\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label>End Date</label>\n <div class=\"input-group\">\n <input class=\"form-control\"\n formControlName=\"end_date\"\n ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n Cancel\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Subscription.Edit'\">\n {{ 'Button.Update' | transloco }}\n </button>\n </div>\n </div>\n </form>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\n\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { ProductService, SubscriptionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-subscription-products',\n templateUrl: './subscription-products.component.html'\n})\nexport class SubscriptionProductsComponent extends AppBaseComponent implements OnInit {\n id: number;\n\n subscriptionProducts = [];\n\n totalRecords: number;\n\n isLoaded = false;\n\n loading = true;\n\n searchText = '';\n\n routers = ROUTERS;\n\n currency = [];\n\n objectKeys = Object.keys;\n\n constructor(\n private subscriptionService: SubscriptionService,\n injector: Injector,\n private productService: ProductService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.getSupportedCurrency();\n this.route.params.subscribe(data => {\n this.id = Number(data['id']);\n this.getSubscriptionDetails();\n });\n }\n\n private getSupportedCurrency() {\n this.productService.getSupportedCurrency().subscribe(res => {\n this.currency = res?.regions;\n });\n }\n\n private getSubscriptionDetails() {\n this.subscriptionService\n .getById(this.id)\n .subscribe(response => {\n this.subscriptionProducts = response?.products || [];\n this.totalRecords = response?.products?.length;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n}\n","<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"totalRecords === 0\">\n <p-table #dt\n [value]=\"subscriptionProducts\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search subscription products...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.Name' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.PricePerUnit' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.Currency' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.BillingFrequency' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.MinUnits' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.MaxUnits' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.PurchasedUnits' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.CalculatedPrice' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.IsDeleted' | transloco }}</th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Name\">{{ item.name }}</td>\n <td data-head=\"Price Per Unit\">\n <span>{{ (item.price_per_unit / 100).toFixed(2) }}\n <i\n class=\"fa fa-info-circle\"\n *ngIf=\"item?.discount && objectKeys(item?.discount)?.length\"\n aria-hidden=\"true\"\n tooltipPosition=\"top\"\n [pTooltip]=\"item?.discount | json\"\n ></i>\n </span>\n </td>\n <td data-head=\"Currency\">\n <span [appDynamicBadge]=\"{ itemsArray: currency, item: item.currency }\"\n color=\"blue-grey\"\n class=\"badge\">{{ item.currency }}</span>\n </td>\n <td data-head=\"Billing Frequency\">\n {{ item.billing_frequency }}\n <span *ngIf=\"item?.pause_collection && objectKeys(item?.pause_collection)?.length\"\n class=\"ms-2\"\n [pTooltip]=\"item?.pause_collection | json\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-exclamation-triangle text-warning\"></i>\n </span>\n </td>\n <td data-head=\"Min Units\">{{ item.min_units }}</td>\n <td data-head=\"Max Units\">{{ item.max_units }}</td>\n <td data-head=\"Purchased Units\">{{ item.purchased_units }}</td>\n <td data-head=\"Calculated Price\">{{ (item.calculated_price / 100).toFixed(2) }}</td>\n <td data-head=\"Deleted\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: item?.is_deleted }\"\n color=\"success-danger\"\n class=\"badge\">{{ item?.is_deleted ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\"\n [routerLink]=\"[\n routers.subscriptionProductDetails + item.subscription_product_id\n ]\"\n [queryParams]=\"{ subscription_id: id }\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n<div *ngIf=\"totalRecords === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.Subscriptions.NoSubscriptionProductsMessage' | transloco\">\n </pw-no-data>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PasswordValidationComponent } from '@posiwise/shared-components';\nimport { Paging } from '@posiwise/common-utilities';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService, AuthService } from '@posiwise/common-services';\nimport { SubscriptionService, WindowService } from '@posiwise/common-services';\nimport { ROUTERS } from '../../../shared/routers/routers';\n\n@Component({\n selector: 'pw-subscription-users',\n templateUrl: './subscription-users.component.html',\n styleUrls: ['./subscription-users.component.scss']\n})\nexport class SubscriptionUsersComponent\n extends AppBaseComponent\n implements OnInit, AfterViewChecked\n{\n @ViewChild('passwordValidationModalForImpersonate', { static: false })\n passwordValidationModalForImpersonate: PasswordValidationComponent;\n\n id: number;\n\n subscriptionMembers = [];\n\n totalRecords: number;\n\n isLoaded = false;\n\n loading = true;\n\n searchText = '';\n\n page = 1;\n\n userToImpersonate: User;\n\n routers = ROUTERS;\n\n constructor(\n private subscriptionService: SubscriptionService,\n injector: Injector,\n private cdr: ChangeDetectorRef,\n private authService: AuthService,\n private windowService: WindowService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.route.params.subscribe(data => {\n this.id = Number(data['id']);\n });\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getSubscriptionDetails({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n onImpersonate(user: User) {\n this.userToImpersonate = user;\n this.passwordValidationModalForImpersonate.open();\n }\n\n onUserImpersonation(_event) {\n this.authService.platform$.subscribe(res => {\n const platform = res;\n this.authService\n .impersonateUser({\n email: this.userToImpersonate.email,\n subscription_id: PermissionService.selectedSubscription.id,\n phonegap: platform !== 'browser'\n })\n .subscribe(_ => {\n this.toast.success(`You're now being logged in as another user...`);\n setTimeout(() => {\n this.windowService.replaceUrl('/home');\n }, 2000);\n });\n });\n }\n\n private getSubscriptionDetails(paging: Paging) {\n this.subscriptionService\n .getEnrolledSubscription(this.id, paging)\n .subscribe(response => {\n this.subscriptionMembers = response?.members || [];\n this.totalRecords = response?.length;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n}\n","<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"totalRecords === 0\">\n <p-table #dt\n [value]=\"subscriptionMembers\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search subscription users...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"id\">\n {{ 'Admin.Users.Id' | transloco }}\n <p-sortIcon field=\"id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"first_name\">\n {{ 'Label.FirstName' | transloco }}\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_name\">\n {{ 'Label.LastName' | transloco }}\n <p-sortIcon field=\"last_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"email\">\n {{ 'Label.Email' | transloco }}\n <p-sortIcon field=\"email\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"slug\">\n {{ 'Admin.Subscriptions.NickName' | transloco }}\n <p-sortIcon field=\"slug\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"has_password\">\n {{ 'Admin.Subscriptions.EmailConfirmed' | transloco }}\n <p-sortIcon field=\"has_password\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_sign_in_at\">\n {{ 'Admin.Subscriptions.LastLogin' | transloco }}\n <p-sortIcon field=\"last_sign_in_at\"></p-sortIcon>\n </th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-user>\n <tr>\n <td data-head=\"Id\">{{ user.id }}</td>\n <td data-head=\"First Name\">{{ user.first_name }}</td>\n <td data-head=\"Last Name\">{{ user.last_name }}\n <span *ngIf=\"user?.alpha\"\n [pTooltip]=\"'Admin.Users.Tooltip.AlphaIcon'|transloco\"\n tooltipPosition=\"top\">\n <i class=\"fa-regular fa-square-a alpha-beta text-warning\"></i>\n </span>\n <span class=\"ms-2\"\n *ngIf=\"user?.beta\"\n [pTooltip]=\"'Admin.Users.Tooltip.BetaIcon'|transloco\"\n tooltipPosition=\"top\">\n <i class=\"fa-regular fa-square-b alpha-beta text-primary\" ></i>\n </span>\n </td>\n <td data-head=\"Email\">{{ user.email }}</td>\n <td data-head=\"Nick Name\">\n <a [routerLink]=\"['/members', user.slug]\">{{ user.slug }}</a>\n </td>\n <td data-head=\"Email Confirm\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: user?.has_password }\"\n color=\"success-danger\"\n class=\"badge\">{{ user?.has_password ? 'Yes' : 'No' }}\n\n </span>\n <span class=\"ms-2\"\n *ngIf=\"user?.blocked\"\n [pTooltip]=\"'This user has been blocked'\"\n tooltipPosition=\"top\">\n <i class=\"fa-solid fa-hexagon-exclamation text-danger hexa-warning\"></i>\n </span>\n </td>\n <td data-head=\"Last Login\">\n <span *ngIf=\"user?.current_sign_in_at; else lastSignin\">\n <span>{{ user.current_sign_in_at | dateFormat }}</span>\n <span *ngIf=\"user.current_sign_in_at\">&nbsp;({{ user.current_sign_in_at | sinceAgo }})</span>\n </span>\n <ng-template #lastSignin>\n <span>\n <span>{{ user.last_sign_in_at | dateFormat }}</span>\n <span *ngIf=\"user.last_sign_in_at\">&nbsp;({{ user.last_sign_in_at | sinceAgo }})</span>\n </span>\n </ng-template>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Log in as\"\n *rbacAllow=\"'Pages.Alpha'\"\n class=\"me-2 me-sm-3\">\n <i\n class=\"fas fa-people-arrows\"\n (click)=\"onImpersonate(user)\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.usersDetails + user.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n<div *ngIf=\"totalRecords === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.Subscriptions.NoSubscriptionUsersMessage' | transloco\">\n </pw-no-data>\n</div>\n<!-- password validaton modal for impersonate -->\n<pw-password-validation #passwordValidationModalForImpersonate\n (successEvent)=\"onUserImpersonation($event)\">\n</pw-password-validation>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, forkJoin } from 'rxjs';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-subscription-agents-list',\n templateUrl: './subscription-agents-list.component.html',\n styleUrls: ['./subscription-agents-list.component.scss']\n})\nexport class SubscriptionAgentsListComponent extends AppBaseComponent implements OnInit {\n id: number;\n\n allAgents = [];\n\n totalRecords: number;\n\n isLoaded = false;\n\n loading = true;\n\n searchText = '';\n\n newEmbass = false;\n\n formEmbassador: UntypedFormGroup;\n\n allUsers: any = [];\n\n filteredUsers = [];\n\n submitted = false;\n\n subscriptionId: number;\n\n constructor(\n private adminService: AdminService,\n private parserFormatter: NgbDateParserFormatter,\n injector: Injector\n ) {\n super(injector);\n this.formEmbassador = AppAdmin.getEmbassadorForm();\n }\n\n ngOnInit(): void {\n this.subscriptionId = PermissionService.selectedSubscription.id;\n this.route.params.subscribe(data => {\n this.id = Number(data['id']);\n this.getAgentsDetails(this.id);\n });\n this.getUsers();\n }\n\n private getAgentsDetails(id: number) {\n this.adminService\n .getAgents(id)\n .subscribe(response => {\n this.allAgents = response.subscription_agents;\n this.totalRecords = this.allAgents?.length;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n private getUsers() {\n this.adminService\n .getUsers({}, { subscription_id: this.subscriptionId })\n .subscribe(response => {\n this.allUsers = response.users;\n this.allUsers.forEach(member => {\n const firstName = member.first_name || '';\n const lastName = member.last_name || '';\n member.displayName = `${firstName} ${lastName} ${member.email}`.trim();\n });\n });\n }\n\n search(event) {\n let values = [];\n if (event.query) {\n values = this.allUsers.filter((x: any) => {\n return x.displayName.toLowerCase().includes(event.query.toLowerCase());\n });\n } else {\n this.allUsers.forEach(element => {\n values.push(element);\n });\n }\n this.filteredUsers = values;\n }\n\n onAddEmbassador() {\n this.submitted = true;\n if (this.formEmbassador.valid) {\n const emails = this.formEmbassador.value.email.map(x => x.email);\n const formValue = this.formEmbassador.value;\n const data = {\n percentage: formValue.percentage,\n end_date: this.parserFormatter.format(formValue.enddate)\n };\n\n const observableList: Observable<any>[] = [];\n emails.forEach(email => {\n observableList.push(this.adminService.postAgent(this.id, { ...data, email }));\n });\n\n forkJoin(observableList).subscribe(_ => {\n this.toast.success(this.translation.translate('Admin.Subscriptions.SavedMessage'));\n\n this.getAgentsDetails(this.id);\n this.newEmbass = !this.newEmbass;\n this.formEmbassador.reset();\n });\n }\n }\n\n onDelete(userId: number) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete this agent`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.adminService.destroyAgent(this.id, userId).subscribe(_ => {\n this.toast.success(\n this.translation.translate('Admin.Subscriptions.DeletedMessage')\n );\n\n this.getAgentsDetails(this.id);\n });\n }\n });\n }\n}\n","<ng-container *ngIf=\"!newEmbass\">\n <div class=\"w-100 text-center mt-3\">\n <div class=\"d-flex align-items-center\">\n <div class=\"ms-auto col-xs-12\">\n <a class=\"btn btn-sm btn-outline-primary float-end\"\n (click)=\"newEmbass = true\"\n id=\"btn-create\">\n <i class=\"fa fa-plus-circle me-2\" aria-hidden=\"true\"></i>Add Ambassadors\n </a>\n </div>\n </div>\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n </div>\n <div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"totalRecords === 0\">\n <p-table #dt\n [value]=\"allAgents\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Ambassadors...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Admin.Subscriptions.AgentName' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Email' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.Percentage' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.EndDate' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-agent>\n <tr>\n <td data-head=\"Agent Name\">\n {{ agent.user.first_name !== null ? agent.user.first_name : 'N/A' }}\n </td>\n <td data-head=\"Email\">\n {{ agent.user.email !== null ? agent.user.email : 'N/A' }}\n </td>\n <td data-head=\"Percentage\">{{ agent.percentage }}</td>\n <td data-head=\"End Date\">{{ agent.end_date | dateFormat }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[\n '/admin/subscription/',\n agent.subscription_id,\n 'agent_details',\n agent.user_id\n ]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(agent?.user_id)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n </div>\n <div *ngIf=\"totalRecords === 0 && isLoaded\">\n <pw-no-data [message]=\"'Admin.Subscriptions.NoAmbassadorsMessage' | transloco\">\n </pw-no-data>\n </div>\n</ng-container>\n<ng-container *ngIf=\"newEmbass\">\n <form [formGroup]=\"formEmbassador\"\n id=\"mainFrom\"\n (ngSubmit)=\"onAddEmbassador()\">\n <div class=\"row mb-2\">\n <div class=\"col-10 col-md-6 offset-md-3\">\n <div class=\"ui-fluid skills-modal\">\n <p-autoComplete [suggestions]=\"filteredUsers\"\n formControlName=\"email\"\n dataKey=\"id\"\n field=\"displayName\"\n (completeMethod)=\"search($event)\"\n styleClass=\"w-100\"\n [dropdown]=\"true\"\n placeholder=\"Search embassador\"\n [multiple]=\"true\">\n </p-autoComplete>\n </div>\n\n <div class=\"row mt-3\">\n <div class=\"col\">\n <input type=\"number\"\n formControlName=\"percentage\"\n class=\"form-control\"\n placeholder=\"Enter percentage\" />\n </div>\n <div class=\"col\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"yyyy-mm-dd\"\n formControlName=\"enddate\"\n ngbDatepicker\n #d=\"ngbDatepicker\"\n [minDate]=\"{ day: 1, month: 1, year: 1950 }\"\n [maxDate]=\"{ day: 31, month: 12, year: 2050 }\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"text-center mt-2\">\n <button type=\"button\"\n (click)=\"newEmbass = false\"\n class=\"btn btn-sm btn-outline-default me-2\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-sm btn-primary me-2\">Add Ambassador</button>\n </div>\n </form>\n</ng-container>\n","import { DatePipe } from '@angular/common';\nimport { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Subscription } from '@posiwise/common-utilities';\nimport { CommonService } from '@posiwise/common-services';\nimport { NgbDateCustomParserFormatter } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\nimport { SubscriptionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-subscription-details',\n templateUrl: './subscription-details.component.html',\n styleUrls: ['./subscription-details.component.scss']\n})\nexport class SubscriptionDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n allAgents: any = [];\n\n currentSubscriber: Subscription;\n\n allRoles = [];\n\n private subscribeRoles = [];\n\n subscriptionsRolesData: any;\n\n organizationSizes$: Observable<any>;\n\n organizationTypes$: Observable<any>;\n\n organizationIndustries$: Observable<any>;\n\n subscriptionId: number;\n\n constructor(\n private subscriptionService: SubscriptionService,\n private adminService: AdminService,\n private datePipe: DatePipe,\n private commonService: CommonService,\n private dateFormatService: NgbDateCustomParserFormatter,\n injector: Injector\n ) {\n super(injector);\n this.form = AppAdmin.getSubscriptionsForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.organizationIndustries$ = this.commonService.getOrganizationIndustries();\n this.organizationTypes$ = this.commonService.getOrganizationTypes();\n this.organizationSizes$ = this.commonService.getOrganizationSizes();\n this.route.params.subscribe(data => {\n this.id = Number(data['id']);\n this.getSubscriptionDetails();\n this.getAgentsDetails(this.id);\n this.getSubscriptionRole();\n });\n\n this.getRoles();\n }\n\n onSkillsSave() {\n this.getAgentsDetails(this.id);\n }\n\n onSaveProject(_event) {\n this.getAgentsDetails(this.id);\n }\n\n private getSubscriptionRole() {\n if (this.permissionService.isSuperAdmin()) {\n this.adminService.getSubscriptionRoles(this.id).subscribe(response => {\n if (response && response?.length) {\n this.subscribeRoles = response?.map(item => {\n return {\n name: item.name,\n id: item.id\n };\n });\n this.form.patchValue({\n roles: this.subscribeRoles?.map(x => x.id)\n });\n }\n });\n }\n }\n\n private getRoles() {\n if (this.permissionService.isSuperAdmin()) {\n this.adminService.getRoles({}, this.subscriptionId).subscribe(response => {\n if (response?.roles && response?.roles?.length) {\n this.allRoles = response.roles?.map(item => {\n return {\n label: item.name,\n value: item.id\n };\n });\n }\n });\n }\n }\n\n private getAgentsDetails(id: number) {\n if (this.permissionService.isSuperAdmin()) {\n this.adminService.getAgents(id).subscribe(response => {\n this.allAgents = response.subscription_agents;\n });\n }\n }\n\n private getSubscriptionDetails() {\n this.subscriptionService.getById(this.id).subscribe(response => {\n this.currentSubscriber = response;\n response.expires_at = this.datePipe.transform(response.expires_at, 'yyyy-MM-dd');\n this.form.patchValue(response);\n const expdate = this.dateFormatService.dateFormatForPicker(\n response.products[0]?.expires_at\n );\n this.form.get('purchased_units').patchValue(response.products[0]?.purchased_units);\n this.form.get('expires_at').patchValue(expdate);\n });\n }\n\n saveDetails() {\n this.submitted = true;\n if (this.form.value) {\n const formValue = this.form.value;\n const data = {\n contact_name: formValue.contact_name,\n organisation: formValue.organisation,\n address: formValue.address,\n tax_id: formValue.tax_id,\n contact_email: formValue.contact_email,\n contact_tel: formValue.contact_tel,\n organization_type_id: formValue.organization_type_id,\n organization_industry_id: formValue.organization_industry_id,\n organization_size_id: formValue.organization_size_id,\n facebook_handle: formValue.facebook_handle,\n twitter_handle: formValue.twitter_handle,\n linkedin_handle: formValue.linkedin_handle,\n company_url: formValue.company_url\n } as Partial<Subscription>;\n this.subscriptionService.updateSubscription(this.id, data).subscribe(() => {\n this.router.navigate(['/admin/subscriptions/list']);\n this.toast.success(\n this.translation.translate('Admin.Subscriptions.UpdatedMessage')\n );\n\n this.getAgentsDetails(this.id);\n });\n }\n this.subscriptionsRolesData = {\n subscription_id: this.id\n };\n if (this.form.get('roles').value && this.form.get('roles').value?.length) {\n this.subscriptionsRolesData['subscription_roles'] = this.form\n .get('roles')\n .value?.map(res => {\n return { role_id: res };\n });\n } else {\n this.subscriptionsRolesData['subscription_roles'] = [];\n }\n this.adminService.saveSubscriptionRoles(this.subscriptionsRolesData).subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Users.UpdatedRole'));\n });\n this.updateSubscriptionProduct();\n }\n\n updateSubscriptionProduct() {\n const expdate = this.form.value.expires_at;\n if (expdate) {\n const data = {\n subscription_id: this.id,\n product_id: this.currentSubscriber?.products[0]?.id,\n expires_at: HelperService.dateFormat(expdate)\n };\n if (this.form.value.purchased_units) {\n data['purchased_units'] = this.form.value.purchased_units;\n }\n this.adminService.updateSubscriptionProduct(data).subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Subscriptions.UpdatedMessage')\n );\n });\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"d-flex\">\n <a href=\"javascript:void(0)\"\n routerLink=\"/admin/subscriptions/list\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">Subscription Details</h3>\n <span class=\"badge rounded-pill bg-danger ms-2\"\n *ngIf=\"currentSubscriber?.is_deleted\">Deleted</span>\n</div>\n\n<ul ngbNav\n #nav=\"ngbNav\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"1\">\n <a ngbNavLink>Subscription</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"mt-4\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"saveDetails()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Organization' | transloco\"\n [label]=\"'Admin.Subscriptions.Organization' | transloco\"\n name=\"organisation\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"organisation\" />\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.ContactName' | transloco\"\n [label]=\"'Admin.Subscriptions.ContactName' | transloco\"\n name=\"contact_name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"contact_name\" />\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.ContactEmail' | transloco\"\n [label]=\"'Admin.Subscriptions.ContactEmail' | transloco\"\n name=\"contact_email\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"contact_email\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.ContactTel' | transloco\"\n [label]=\"'Admin.Subscriptions.ContactTel' | transloco\"\n name=\"contact_tel\">\n <input type=\"text\"\n formControlName=\"contact_tel\"\n class=\"form-control\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [label]=\"'Tax Id'\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.TaxId' | transloco\"\n name=\"tax_id\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"tax_id\" />\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\"\n *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <label class=\"info-circle\">{{ 'Admin.Subscriptions.AssignedRoles' | transloco }}\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.Subscriptions.Tooltip.AssignedRoles'\n | transloco\n }}</span>\n </label>\n\n <p-multiSelect [options]=\"allRoles\"\n formControlName=\"roles\"\n appendTo=\"body\"></p-multiSelect>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\"\n *ngIf=\"organizationTypes$ | async as types\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationType' | transloco\"\n [label]=\"'Organization.OrganizationType' | transloco\"\n name=\"organization_type_id\">\n <select formControlName=\"organization_type_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of types['organization_types']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-sm-6 col-md-3\"\n *ngIf=\"organizationIndustries$ | async as industries\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationIndustry' | transloco\"\n [label]=\"'Organization.OrganizationIndustry' | transloco\"\n name=\"organization_industry_id\">\n <select formControlName=\"organization_industry_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"\n let option of industries[\n 'organization_industries'\n ]\n \"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-sm-6 col-md-3\"\n *ngIf=\"organizationSizes$ | async as sizes\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationSize' | transloco\"\n [label]=\"'Size' | transloco\"\n name=\"organization_size_id\">\n <select formControlName=\"organization_size_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of sizes['organization_sizes']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.CompanyUrl' | transloco\"\n [label]=\"'Admin.Subscriptions.CompanyUrl' | transloco\"\n name=\"company_url\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_url\" />\n </pw-input-container>\n </div>\n\n <!-- Readonly Starts -->\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Reference' | transloco\"\n [label]=\"'Admin.Subscriptions.Reference' | transloco\"\n name=\"reference_number\">\n <input type=\"text\"\n readonly\n class=\"form-control\"\n data-control=\"reference\"\n *ngIf=\"form\"\n [value]=\"form.get('reference_number')?.value\" />\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.UnitsInUse' | transloco\"\n [label]=\"'Admin.Subscriptions.UnitsInUse' | transloco\"\n name=\"units_in_use\">\n <input type=\"text\"\n readonly\n class=\"form-control\"\n formControlName=\"units_in_use\" />\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MaxUnits' | transloco\"\n [label]=\"'Admin.Subscriptions.MaxUnits' | transloco\"\n name=\"max_units\">\n <input type=\"text\"\n readonly\n class=\"form-control\"\n formControlName=\"max_units\" />\n </pw-input-container>\n </div>\n\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.CalculatedPrice' | transloco\"\n [label]=\"'Admin.Subscriptions.CalculatedPrice' | transloco\"\n name=\"calculated_price\">\n <input type=\"text\"\n class=\"form-control\"\n readonly\n formControlName=\"calculated_price\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MainExpiryDate' | transloco\"\n [label]=\"\n 'Admin.Subscriptions.MainExpiryDate' | transloco\n \"\n name=\"expires_at\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n container=\"body\"\n placeholder=\"Expiry Date\"\n formControlName=\"expires_at\"\n [readonly]=\"true\"\n ngbDatepicker\n #c=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n [disabled]=\"true\"\n (click)=\"c.toggle()\"\n type=\"button\">\n <i\n class=\"fa fa-calendar\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n </div>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\"\n *rbacAllow=\"'SuperAdmin'\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.PurchasedSeats' | transloco\"\n [label]=\"'Admin.Subscriptions.PurchasedSeats' | transloco\"\n name=\"purchased_units\">\n <input type=\"number\"\n min=\"0\"\n readonly\n class=\"form-control\"\n formControlName=\"purchased_units\" />\n </pw-input-container>\n </div>\n\n <!-- Readonly Ends -->\n </div>\n <!-- social links -->\n <h3>Social Links</h3>\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Facebook' | transloco\"\n [label]=\"'Admin.Subscriptions.Facebook' | transloco\"\n name=\"facebook_handle\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"facebook_handle\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Twitter' | transloco\"\n [label]=\"'Admin.Subscriptions.Twitter' | transloco\"\n name=\"twitter_handle\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"twitter_handle\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Linkedin' | transloco\"\n [label]=\"'Admin.Subscriptions.LinkedIn' | transloco\"\n name=\"linkedin_handle\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"linkedin_handle\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Reddit' | transloco\"\n [label]=\"'Admin.Subscriptions.Reddit' | transloco\"\n name=\"reddit_handle\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"reddit_handle\" />\n </pw-input-container>\n </div>\n </div>\n <ng-container *rbacAllow=\"'SubscriptionSuperAdmin'\">\n <h3>Security</h3>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Enforce2fa'| transloco\"\n label=\"Enforce 2FA\"\n name=\"enforce_2fa\">\n <ui-switch formControlName=\"enforce_2fa\"\n name=\"enforce_2fa\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n </ng-container>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\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\"\n *rbacAllow=\"'Pages.Admin.Subscription.Edit'\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"2\">\n <a ngbNavLink>Products</a>\n <ng-template ngbNavContent>\n <pw-subscription-products></pw-subscription-products>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"3\">\n <a ngbNavLink>Members</a>\n <ng-template ngbNavContent>\n <pw-subscription-users></pw-subscription-users>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"4\"\n *rbacAllow=\"'SuperAdmin'\">\n <a ngbNavLink>Ambassadors</a>\n <ng-template ngbNavContent>\n <pw-subscription-agents-list></pw-subscription-agents-list>\n </ng-template>\n </li>\n</ul>\n\n<div [ngbNavOutlet]=\"nav\"></div>\n","import { DatePipe } from '@angular/common';\nimport { Component, Injector, OnInit } from '@angular/core';\nimport { UntypedFormGroup, Validators } from '@angular/forms';\nimport groupBy from 'lodash/groupBy';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { NgbDateCustomParserFormatter } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\nimport { ProductService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-subscription-product-details',\n templateUrl: './subscription-product-details.component.html'\n})\nexport class SubscriptionProductDetailsComponent extends AppBaseComponent implements OnInit {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n data: any;\n\n routers = ROUTERS;\n\n isLoading: boolean;\n\n subscriptionId: number;\n\n minDate = HelperService.minDateToday();\n\n private isPurchasedUnitsDisable: boolean;\n\n filteredProducts = [];\n\n productsList = [];\n\n disableExpiresAt = false;\n\n isSuperAdmin = this.permissionService.isSuperAdmin();\n\n constructor(\n injector: Injector,\n private adminService: AdminService,\n private productService: ProductService,\n private dateFormatService: NgbDateCustomParserFormatter,\n private datePipe: DatePipe\n ) {\n super(injector);\n this.form = AppAdmin.subscriptionProductForm();\n }\n\n ngOnInit() {\n this.addValidation();\n this.subscriptionId = Number(this.route.snapshot.queryParamMap.get('subscription_id'));\n this.route.params.subscribe(params => {\n this.id = Number(params['id']);\n this.getProductList();\n });\n }\n\n get f() {\n return this.form.controls;\n }\n\n getProductList() {\n this.productService\n .getProductList({}, this.subscriptionId)\n .subscribe(response => {\n this.productsList = this.groupProducts(response.products);\n })\n .add(() => {\n if (this.id) {\n this.subscriptionProductDetails();\n }\n });\n }\n\n private subscriptionProductDetails() {\n this.adminService\n .getSubscriptionProduct(this.id, this.subscriptionId)\n .subscribe(response => {\n this.data = response;\n this.isPurchasedUnitsDisable =\n this.permissionService.isSuperAdmin() ||\n (this.permissionService.isUserSubscriptionSuperAdmin() &&\n !response.stripe_subscription_id);\n if (this.isPurchasedUnitsDisable) {\n this.form.get('purchased_units').enable();\n this.form.get('new_product_id').enable();\n this.form.get('expires_at').enable();\n // this.form.get('signed_up_at').enable();\n this.disableExpiresAt = false;\n } else {\n this.form.get('purchased_units').disable();\n this.form.get('new_product_id').disable();\n this.form.get('expires_at').disable();\n // this.form.get('signed_up_at').disable();\n this.disableExpiresAt = true;\n }\n const externalPayment =\n this.permissionService.isSuperAdmin() || !response?.stripe_subscription_id;\n if (externalPayment) {\n this.form.get('external_payment').enable();\n } else {\n this.form.get('external_payment').disable();\n }\n response.expires_at = this.datePipe.transform(response.expires_at, 'yyyy-MM-dd');\n if (response?.signed_up_at) {\n response.signed_up_at = this.datePipe.transform(\n response?.signed_up_at,\n 'yyyy-MM-dd'\n );\n }\n this.form.patchValue(response);\n const expdate = this.dateFormatService.dateFormatForPicker(response?.expires_at);\n let signedUpDate;\n if (response?.signed_up_at) {\n signedUpDate = this.dateFormatService.dateFormatForPicker(\n response?.signed_up_at\n );\n this.form.get('signed_up_at').patchValue(signedUpDate);\n }\n this.form.get('expires_at').patchValue(expdate);\n if (response?.product_id) {\n this.form.patchValue({\n new_product_id: this.productsList.find(\n x => x.value === this.data?.product_id\n )\n });\n }\n });\n }\n\n private sortObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce((result, key) => {\n result[key] = obj[key];\n\n return result;\n }, {});\n }\n\n searchProduct(event) {\n this.productService\n .getProductList({ search: event.query }, this.subscriptionId)\n .subscribe(response => {\n this.filteredProducts = this.groupProducts(response.products);\n });\n }\n\n private groupProducts(products) {\n if (products && products?.length) {\n products = products.filter(x => x.dependency_products?.length < 1 && x.active);\n products = groupBy(products, 'currency');\n products = this.sortObj(products);\n let groupedArray = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const p in products) {\n const value = products[p].sort(\n (a, b) => Number(b.price_per_unit) - Number(a.price_per_unit)\n );\n groupedArray.push(...value);\n }\n groupedArray = groupedArray.map(x => {\n return {\n value: x.id,\n label: `${x.name} | ${x.region} | ${x.billing_frequency} | ${x.min_units} x ${(\n x.price_per_unit / 100\n ).toFixed(2)} | ${x.currency}`\n };\n });\n\n return groupedArray;\n }\n\n return [];\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const expdate = this.form.value.expires_at;\n const signedUpAt = this.form.value.signed_up_at;\n const data = {\n subscription_id: this.subscriptionId,\n product_id: this.data?.product_id,\n expires_at: expdate ? HelperService.dateFormat(expdate) : null,\n signed_up_at: signedUpAt ? HelperService.dateFormat(signedUpAt) : null,\n external_payment: this.form.value.external_payment,\n stripe_subscription_id: this.form.value.stripe_subscription_id,\n min_units: this.form.value.min_units\n };\n if (this.form.value?.new_product_id) {\n data['new_product_id'] = this.form.value?.new_product_id?.value || null;\n }\n if (this.form.value.purchased_units) {\n data['purchased_units'] = this.form.value.purchased_units;\n }\n this.adminService\n .updateSubscriptionProduct(data)\n .subscribe({\n next: () => {\n this.toast.success(\n this.translation.translate('Admin.Subscriptions.UpdatedMessage')\n );\n this.back();\n }\n })\n .add(() => {\n this.submitted = false;\n });\n }\n\n private addValidation() {\n // stripe subscription should be disable if not superadmin\n if (!this.isSuperAdmin) {\n this.form.get('signed_up_at').disable();\n this.form.get('stripe_subscription_id').disable();\n } else {\n this.form.get('signed_up_at').enable();\n this.form.get('stripe_subscription_id').enable();\n }\n // external payment\n // this.form.get('external_payment').valueChanges.subscribe(res => {\n // if (!res) {\n // this.form.controls['signed_up_at'].clearValidators();\n // } else {\n // this.form.controls['signed_up_at'].setValidators([Validators.required]);\n // }\n // this.form.controls['signed_up_at'].updateValueAndValidity();\n // });\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\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\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i>\n </a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Subscription Product</span>\n </h3>\n </div>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"p-2 mt-3\">\n <p>\n You can update the Purchased Seats, Product, and Product Expiry date as long as the user hasn't subscribed using stripe.\n </p>\n <p class=\"mb-5\">\n If you set the subscription as External Payment you'll have to manually manage the Product Expiry Date.\n </p>\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3 col-lg-2\">\n <pw-input-container [label]=\"'Admin.Subscriptions.PurchasedSeats' | transloco\"\n [showTooltip]=\"true\"\n name=\"purchased_units\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.PurchasedSeats' | transloco\">\n <input type=\"number\"\n min=\"0\"\n class=\"form-control\"\n formControlName=\"purchased_units\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3 col-lg-2\">\n <pw-input-container [label]=\"'Admin.Subscriptions.MinUnits' | transloco\"\n [showTooltip]=\"true\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.MinUnits' | transloco\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MinUnits' | transloco\">\n <input type=\"number\"\n min=\"0\"\n [max]=\"form.get('purchased_units').value\"\n class=\"form-control\"\n formControlName=\"min_units\" />\n </pw-input-container>\n </div>\n <!-- product expiry date -->\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [label]=\"'Admin.Subscriptions.ProductExpiryDate' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.ProductExpiryDate' | transloco\"\n name=\"expires_at\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n container=\"body\"\n placeholder=\"Expiry Date\"\n formControlName=\"expires_at\"\n [outsideDays]=\"'hidden'\"\n ngbDatepicker\n #c=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n [disabled]=\"disableExpiresAt\"\n (click)=\"c.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </pw-input-container>\n </div>\n\n <!-- signedup at-->\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3 col-lg-2\">\n <pw-input-container [label]=\"'Admin.Subscriptions.SignedUpAt' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.SignedUpAt' | transloco\"\n name=\"signed_up_at\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.SignedUpAt' | transloco\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n container=\"body\"\n placeholder=\"Signed Up At\"\n formControlName=\"signed_up_at\"\n ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n [disabled]=\"!isSuperAdmin\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </pw-input-container>\n </div>\n <!-- stripe subscription id -->\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <pw-input-container [label]=\"'Admin.Subscriptions.StripeSubscriptionId' | transloco\"\n name=\"stripe_subscription_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.StripeSubscriptionId' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"stripe_subscription_id\" />\n </pw-input-container>\n </div>\n <!-- external payment toggle -->\n <div class=\"col-12 col-sm-2\">\n <pw-input-container [label]=\"'Admin.Subscriptions.ExternalPayment' | transloco\"\n name=\"external_payment\"\n [showTooltip]=\"true\"\n [tooltipPosition]=\"'left'\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.ExternalPayment' | transloco\">\n <ui-switch formControlName=\"external_payment\"\n name=\"external_payment\">\n </ui-switch>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Product' | transloco\"\n name=\"new_product_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Product' | transloco\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Product' | transloco\">\n <p-autoComplete [suggestions]=\"filteredProducts\"\n formControlName=\"new_product_id\"\n dataKey=\"value\"\n field=\"label\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n (completeMethod)=\"searchProduct($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('new_product_id').touched && form.get('new_product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\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\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AdminService } from '../../../admin.service';\nimport { SUBSCRIPTION_ANALYTICS_TYPES } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Plotly } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-subscription-insight',\n templateUrl: './subscriptions-insight.component.html',\n styleUrls: ['./subscriptions-insight.component.scss']\n})\nexport class InsightComponent extends AppBaseComponent implements OnInit, OnDestroy {\n graph: Plotly.Figure;\n\n subscriptionId: number;\n\n loading: boolean;\n\n startDate: NgbDateStruct;\n\n endDate: NgbDateStruct;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.getChartData();\n }\n\n /** Function to get the data for the graph */\n private getChartData() {\n this.loading = true;\n this.adminService\n .getSubscriptionAnalytics(\n SUBSCRIPTION_ANALYTICS_TYPES.SUBSCRIPTIONS,\n this.subscriptionId,\n this.startDate ? HelperService.dateFormat(this.startDate) : '',\n this.endDate ? HelperService.dateFormat(this.endDate) : ''\n )\n .subscribe(response => {\n this.graph = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelect() {\n if (this.startDate && this.endDate) {\n this.getChartData();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<!-- selectdate -->\n<div class=\"mb-3\">\n <h5 class=\"mb-4\">Select date</h5>\n <div class=\"row\">\n <!-- startdate -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"start date\"\n [(ngModel)]=\"startDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n <!-- end date -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"end date\"\n [(ngModel)]=\"endDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #c=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"c.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n<!-- end -->\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n</ng-template>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { NgbDateStruct, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { AdminService } from '../../../../admin.service';\nimport { PAGE_SIZE, SUBSCRIPTION_ANALYTICS_TYPES } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { Plotly } from '@posiwise/common-utilities';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService, CommonService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-subscription-insight-nps',\n templateUrl: './subscription-insight-nps.component.html'\n})\nexport class SubscriptionInsightNpsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('showComment', { static: true }) content: TemplateRef<any>;\n\n graph: Plotly.Figure;\n\n totalRecords: number;\n\n feedbacks = [];\n\n loading = true;\n\n isLoaded = false;\n\n page = 1;\n\n graphLoading: boolean;\n\n subscriptionId: number;\n\n currentUser: User;\n\n commentToShow: string;\n\n startDate: NgbDateStruct;\n\n endDate: NgbDateStruct;\n\n constructor(\n private adminService: AdminService,\n injector: Injector,\n private commonService: CommonService,\n private modalService: NgbModal,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.getChartData();\n this.userStore().subscribe(response => {\n this.currentUser = response;\n });\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAllFeedbacks({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder\n });\n }\n\n private getAllFeedbacks(paging: Paging) {\n this.commonService\n .getAllUserFeedbacks(this.subscriptionId, paging)\n .subscribe(response => {\n this.feedbacks = response?.user_feedbacks;\n this.totalRecords = response?.object_count;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n openComment(val: string) {\n this.commentToShow = val;\n this.modalService.open(this.content, {\n centered: true,\n windowClass: 'modal-holder'\n });\n }\n\n /** Function to get the data for the graph */\n private getChartData() {\n this.graphLoading = true;\n this.adminService\n .getSubscriptionAnalytics(\n SUBSCRIPTION_ANALYTICS_TYPES.NPS,\n this.subscriptionId,\n this.startDate ? HelperService.dateFormat(this.startDate) : '',\n this.endDate ? HelperService.dateFormat(this.endDate) : ''\n )\n .subscribe(response => {\n this.graph = response;\n })\n .add(() => {\n this.graphLoading = false;\n });\n }\n\n onDateSelect() {\n if (this.startDate && this.endDate) {\n this.getChartData();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<!-- selectdate -->\n<div class=\"mb-3\">\n <h5 class=\"mb-4\">Select date</h5>\n <div class=\"row\">\n <!-- startdate -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"start date\"\n [(ngModel)]=\"startDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n <!-- end date -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"end date\"\n [(ngModel)]=\"endDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #c=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"c.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n<!-- end -->\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"graphLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n</ng-template>\n\n<div class=\"row m-0\">\n <h2 class=\"card-title p-0 my-4\">User Feedbacks</h2>\n</div>\n\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"totalRecords === 0\">\n <p-table #tt\n [value]=\"feedbacks\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [lazy]=\"true\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"created_at\">\n Created At\n <p-sortIcon field=\"created_at\"></p-sortIcon>\n </th>\n <th scope=\"true\">User Name</th>\n <th scope=\"true\">Product Name</th>\n <th scope=\"true\">Feedback Question Name</th>\n <th scope=\"true\">Comment</th>\n <th scope=\"true\"\n pSortableColumn=\"value\">\n Value\n <p-sortIcon field=\"value\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">Action</th>\n </tr>\n </ng-template>\n <!-- Table Body -->\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"created_at\">{{ item?.created_at | dateFormat }}</td>\n <td data-head=\"user_name\">\n <a [routerLink]=\"['/members/' + item.user_slug]\">{{ item?.user_name }}</a>\n </td>\n <td data-head=\"product_name\">{{ item?.product_name }}</td>\n <td data-head=\"feedback_question_name\">{{ item?.feedback_question_name }}</td>\n <td data-head=\"comment\">\n <button *ngIf=\"item?.comment\"\n class=\"btn btn-sm btn-info\"\n (click)=\"openComment(item?.comment)\">\n Display\n </button>\n </td>\n <td data-head=\"value\">\n <span [ngClass]=\"{'fw-bold text-danger':item?.value <= 6,'fw-bold text-success':item.value>8}\">\n {{ item?.value }}\n </span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <ng-template [ngIf]=\"currentUser && item.user_id !== currentUser.id\">\n <li ngbTooltip=\"Send Chat Message\"\n *rbacAllow=\"'Pages.Chat'\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"['/message']\"\n [fragment]=\"item.user_slug\">\n <i class=\"fa fa-comments cta1-icon\" aria-hidden=\"true\"></i>\n </li>\n </ng-template>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">Total: {{ totalRecords }}</span>\n</div>\n<div *ngIf=\"totalRecords === 0 && isLoaded\">\n <pw-no-data message=\"No Feedback Found\"> </pw-no-data>\n</div>\n\n<ng-template #showComment\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"mb-0\">Comment</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <h6 class=\"text-center modal-basic-title\">{{ commentToShow }}</h6>\n </div>\n</ng-template>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nimport { SUBSCRIPTION_ANALYTICS_TYPES } from '@posiwise/common-utilities';\nimport { AdminService } from '../../../../admin.service';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Plotly } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-subscription-insight-revenue',\n templateUrl: './subscription-insight-revenue.component.html'\n})\nexport class SubscriptionInsightRevenueComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy\n{\n graph: Plotly.Figure;\n\n subscriptionId: number;\n\n loading: boolean;\n\n startDate: NgbDateStruct;\n\n endDate: NgbDateStruct;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.getChartData();\n }\n\n /** Function to get the data for the graph */\n private getChartData() {\n this.loading = true;\n this.adminService\n .getSubscriptionAnalytics(\n SUBSCRIPTION_ANALYTICS_TYPES.REVENUES,\n this.subscriptionId,\n this.startDate ? HelperService.dateFormat(this.startDate) : '',\n this.endDate ? HelperService.dateFormat(this.endDate) : ''\n )\n .subscribe(response => {\n this.graph = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelect() {\n if (this.startDate && this.endDate) {\n this.getChartData();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<!-- selectdate -->\n<div class=\"mb-3\">\n <h5 class=\"mb-4\">Select date</h5>\n <div class=\"row\">\n <!-- startdate -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"start date\"\n [(ngModel)]=\"startDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"d.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n <!-- end date -->\n <div class=\"col-12 col-sm-3\">\n <div class=\"input-group\">\n <input class=\"form-control\"\n placeholder=\"end date\"\n [(ngModel)]=\"endDate\"\n (dateSelect)=\"onDateSelect()\"\n ngbDatepicker\n #c=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\"\n (click)=\"c.toggle()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n<!-- end -->\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'pw-admin-subscription-insight-tabs',\n templateUrl: './subscription-insight-tabs.component.html',\n styleUrls: ['../subscriptions-insight.component.scss']\n})\nexport class SubscriptionInsightTabsComponent {\n activeTab = 'growth';\n}\n","<div class=\"my-3 title\">\n <h2 class=\"card-title p-0\">Subscriptions Insight</h2>\n</div>\n\n<ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"activeTab\"\n [destroyOnHide]=\"true\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'growth'\">\n <a ngbNavLink>Growth</a>\n <ng-template ngbNavContent>\n <pw-admin-subscription-insight></pw-admin-subscription-insight>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'revenues'\">\n <a ngbNavLink>Revenues</a>\n <ng-template ngbNavContent>\n <pw-subscription-insight-revenue></pw-subscription-insight-revenue>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'nps'\">\n <a ngbNavLink>Net Promoter Score</a>\n <ng-template ngbNavContent>\n <pw-subscription-insight-nps></pw-subscription-insight-nps>\n </ng-template>\n </li>\n</ul>\n\n<div [ngbNavOutlet]=\"nav\"></div>\n","import { HttpParams } from '@angular/common/http';\nimport {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport groupBy from 'lodash/groupBy';\nimport { LazyLoadEvent } from 'primeng/api';\nimport uniqBy from 'lodash/uniqBy';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport swal from 'sweetalert2';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { CommonService, FormHelperService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ProductService } from '@posiwise/common-services';\nimport { NavigationEnd } from '@angular/router';\n\n@Component({\n selector: 'pw-subscriptions-list',\n templateUrl: './subscriptions-list.component.html',\n styleUrls: ['./subscriptions-list.component.scss']\n})\nexport class SubscriptionsListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n totalRecords = 0;\n\n loading = true;\n\n searchText = '';\n\n subscriptions = [];\n\n form: UntypedFormGroup;\n\n showInviteForm = false;\n\n products = [];\n\n organizationSizes$: Observable<any>;\n\n organizationTypes$: Observable<any>;\n\n organizationIndustries$: Observable<any>;\n\n searchOptions: any = [];\n\n filterByFeatureKeys = [];\n\n isLoaded = false;\n\n private page = 1;\n\n billingFrequency = ['week', 'month', 'year'];\n\n routers = ROUTERS;\n\n subscriptionStatus = ['all', 'expired', 'active', 'paid'];\n\n status = '';\n\n subscriptionId: number;\n\n totalRecordsUnFilter = 0;\n\n filteredProducts = [];\n\n currency = [];\n\n objectKeys = Object.keys;\n\n unitsText = '';\n\n buttonBusy = false;\n\n selectedFeatureKeys: any;\n\n subscriptionInsights: any;\n\n constructor(\n private adminService: AdminService,\n private fb: UntypedFormBuilder,\n private productService: ProductService,\n private commonService: CommonService,\n injector: Injector,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n this.form = this.fb.group({\n product_id: ['', Validators.required],\n first_name: ['', Validators.required],\n last_name: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n organization_industry_id: [''],\n organization_type_id: [''],\n organization_size_id: [''],\n name: [''],\n units: [''],\n min_units: ['']\n });\n this.getTableState();\n }\n\n ngOnInit() {\n // this.getData(1, 100);\n this.organizationIndustries$ = this.commonService.getOrganizationIndustries();\n this.organizationTypes$ = this.commonService.getOrganizationTypes();\n this.organizationSizes$ = this.commonService.getOrganizationSizes();\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.getSupportedCurrency();\n this.getProductsList();\n this.getMinMaxUnits();\n }\n\n getTableState() {\n this.localStorage.getItem$('subscription-list-state').subscribe(res => {\n if (res) {\n const result = JSON.parse(res);\n this.searchText = result?.searchText || '';\n (this.status = result?.status || ''),\n (this.selectedFeatureKeys = result?.featureKeys || []),\n (this.filterByFeatureKeys = this.selectedFeatureKeys);\n }\n });\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getData({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n getSupportedCurrency() {\n this.productService.getSupportedCurrency().subscribe(res => {\n this.currency = res?.regions;\n });\n }\n\n getMinMaxUnits() {\n this.form.get('product_id').valueChanges.subscribe(x => {\n this.unitsText = x?.unitsText || '';\n });\n }\n\n onSave() {\n if (this.form.invalid) {\n FormHelperService.validateAllFormFields(this.form);\n } else {\n this.buttonBusy = true;\n const productId = this.form.get('product_id').value.value;\n const inviteObj = {\n email: this.form.get('email').value,\n first_name: this.form.get('first_name').value,\n last_name: this.form.get('last_name').value,\n units: this.form.get('units').value,\n organization_industry_id: this.form.get('organization_industry_id').value,\n organization_type_id: this.form.get('organization_type_id').value,\n organization_size_id: this.form.get('organization_size_id').value,\n name: this.form.get('name').value,\n min_units: this.form.get('min_units').value,\n product_id: productId\n };\n this.productService\n .inviteForTrial(productId, inviteObj, this.subscriptionId)\n .subscribe(() => {\n this.showInviteForm = !this.showInviteForm;\n this.form.reset();\n this.getData({\n page: this.page,\n page_size: PAGE_SIZE\n });\n this.isLoaded = false;\n this.loading = true;\n this.toast.success(\n this.translation.translate('Admin.Subscriptions.InvitationSent')\n );\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n }\n\n private getData(paging: Paging) {\n this.subscriptions = [];\n this.adminService\n .getSubscriptions(\n this.filterByFeatureKeys.join() || '',\n this.status || '',\n paging,\n this.subscriptionId || null\n )\n .subscribe(response => {\n if (response.subscriptions && response.subscriptions.length > 0) {\n response.subscriptions.forEach(subscription => {\n subscription.products.forEach(product => {\n subscription.productId = product.id;\n subscription.productName = product.name;\n subscription.active = product.active;\n subscription.billingFrequency = product.billing_frequency;\n subscription.pricePerUnit = product.price_per_unit;\n subscription.currency = product.currency;\n this.subscriptions.push(subscription);\n });\n });\n this.subscriptions = uniqBy(this.subscriptions, 'id');\n }\n this.subscriptionInsights = response?.subscription_insights;\n this.totalRecords = response.object_count || 0;\n this.totalRecordsUnFilter = response?.unfiltered_count;\n })\n .add(() => {\n this.isLoaded = true;\n this.loading = false;\n });\n }\n\n onDelete(item) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete the ${item?.productName} subscription for the customer ${item.contact_email} ?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n const httpParams = new HttpParams().set('product_id', item.productId);\n this.adminService\n .deleteSubscription(item.id, { params: httpParams })\n .subscribe(() => {\n this.subscriptions = this.subscriptions.filter(\n x => x.productId !== item.productId\n );\n this.totalRecords--;\n this.toast.success(\n this.translation.translate('Admin.Subscriptions.DeletedMessage')\n );\n });\n }\n });\n }\n\n private getProductsList() {\n this.productService.getProductList({}, this.subscriptionId).subscribe(response => {\n const featureKeys = Array.from(\n new Set(response.products.map(item => item.feature_key))\n );\n this.searchOptions = featureKeys.map(element => {\n return {\n value: element,\n label: element\n };\n });\n });\n }\n\n onSearchOptionChange(event) {\n this.filterByFeatureKeys = event.value;\n this.getData({\n page: this.page,\n page_size: PAGE_SIZE,\n search: this.searchText || ''\n });\n }\n\n filterByStatus(event) {\n this.status = event.target.value || '';\n this.getData({\n page: this.page,\n page_size: PAGE_SIZE,\n search: this.searchText || ''\n });\n }\n\n private sortObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce((result, key) => {\n result[key] = obj[key];\n\n return result;\n }, {});\n }\n\n searchProduct(event) {\n this.productService\n .getProductList({ search: event.query }, this.subscriptionId)\n .subscribe(response => {\n this.filteredProducts = this.groupProducts(response.products);\n });\n }\n\n private groupProducts(products) {\n if (products && products?.length) {\n products = products.filter(x => x.dependency_products?.length < 1 && x.active);\n products = groupBy(products, 'currency');\n products = this.sortObj(products);\n let groupedArray = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const p in products) {\n const value = products[p].sort(\n (a, b) => Number(b.price_per_unit) - Number(a.price_per_unit)\n );\n groupedArray.push(...value);\n }\n groupedArray = groupedArray.map(x => {\n return {\n value: x.id,\n label: `${x.name} | ${x.region} | ${x.billing_frequency} | ${x.min_units} x ${(\n x.price_per_unit / 100\n ).toFixed(2)} | ${x.currency}`,\n unitsText: `(min ${x.min_units} - max ${x.max_units})`\n };\n });\n\n return groupedArray;\n }\n\n return [];\n }\n\n getExpiresAtColor(item) {\n const d = new Date();\n const monthBefore = d.setMonth(d.getMonth() - 1);\n\n return {\n 'text-danger fw-bold': new Date(item.expires_at) < new Date(),\n 'text-warning text-bold-700':\n item.billingFrequency === 'year' &&\n new Date(item.expires_at) < new Date(monthBefore) &&\n new Date(item.expires_at) > new Date()\n };\n }\n\n override ngOnDestroy() {\n const data = {\n searchText: this.searchText,\n status: this.status,\n featureKeys: this.filterByFeatureKeys\n };\n localStorage.setItem('subscription-list-state', JSON.stringify(data));\n const notifier = new Subject();\n this.router.events.pipe(takeUntil(notifier)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n if (!event.urlAfterRedirects.includes('/subscription')) {\n this.localStorage.removeItem$('subscription-list-state');\n notifier.next('');\n }\n }\n });\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div *ngIf=\"!showInviteForm\"\n class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Subscriptions</h2>\n <a class=\"btn btn-sm btn-outline-primary float-end\"\n id=\"btn-create\"\n (click)=\"showInviteForm = !showInviteForm\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Invite\n </a>\n </div>\n <div *ngIf=\"showInviteForm\"\n class=\"col-12 justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0\">Invite new users</h2>\n <p>Here you can send an invitation to a new user to try any of our products</p>\n </div>\n</div>\n<form [formGroup]=\"form\"\n *ngIf=\"showInviteForm\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row my-4\">\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.FirstName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.FirstName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"first_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.FirstName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"first_name\"\n [ngClass]=\"{\n 'is-invalid':\n form.get('first_name').touched && form.get('first_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.LastName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.LastName' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"last_name\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.LastName' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"last_name\"\n [ngClass]=\"{\n 'is-invalid': form.get('last_name').touched && form.get('last_name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Email' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Email' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"email\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Email' | transloco\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"email\"\n [ngClass]=\"{\n 'is-invalid': form.get('email').touched && form.get('email').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Label.Product' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.SubscriptionProduct' | transloco\"\n name=\"product_id\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Product' | transloco\">\n <p-autoComplete [suggestions]=\"filteredProducts\"\n formControlName=\"product_id\"\n dataKey=\"value\"\n field=\"label\"\n [dropdown]=\"true\"\n [delay]=\"1000\"\n (completeMethod)=\"searchProduct($event)\"\n styleClass=\"w-100\"\n placeholder=\"Search Product\"\n [inputStyle]=\"\n form.get('product_id').touched && form.get('product_id').invalid\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \"\n [multiple]=\"false\">\n </p-autoComplete>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container label=\"{{'Label.Seats' | transloco}}{{unitsText}}\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.Units' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.Units' | transloco\">\n <input type=\"number\"\n class=\"form-control\"\n formControlName=\"units\"\n [ngClass]=\"{\n 'is-invalid': form.get('units').touched && form.get('units').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Admin.Subscriptions.MinUnits' | transloco\"\n [showTooltip]=\"true\"\n name=\"min_units\"\n [errorMsg]=\"'Admin.Subscriptions.Validation.MinUnits' | transloco\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.MinUnits' | transloco\">\n <input type=\"number\"\n min=\"0\"\n [max]=\"form.get('units').value\"\n class=\"form-control\"\n formControlName=\"min_units\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationIndustries$ | async as industries\">\n <pw-input-container [label]=\"'Organization.OrganizationIndustry' | transloco\"\n name=\"organization_industry_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationIndustry'| transloco\">\n <select formControlName=\"organization_industry_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of industries['organization_industries']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\">\n <pw-input-container [label]=\"'Organization.OrganizationName' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationName'| transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{\n 'is-invalid': form.get('name').touched && form.get('name').invalid\n }\" />\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationTypes$ | async as types\">\n <pw-input-container [label]=\"'Organization.OrganizationType' | transloco\"\n name=\"organization_type_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationType'| transloco\">\n <select formControlName=\"organization_type_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of types['organization_types']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"mb-3 col-sm-4\"\n *ngIf=\"organizationSizes$ | async as sizes\">\n <pw-input-container [label]=\"'Organization.OrganizationSize' | transloco\"\n name=\"organization_size_id\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.Subscriptions.Tooltip.OrganizationSize'| transloco\">\n <select formControlName=\"organization_size_id\"\n class=\"form-control form-select\">\n <option *ngFor=\"let option of sizes['organization_sizes']\"\n [value]=\"option.id\">\n {{ option.name }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 text-end\">\n <input type=\"button\"\n class=\"btn btn-outline-primary me-3\"\n value=\"Cancel\"\n (click)=\"showInviteForm = !showInviteForm; form.reset()\" />\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n [disabled]=\"buttonBusy\"\n class=\"btn btn-primary\">Invite</button>\n </div>\n </div>\n</form>\n<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded && !showInviteForm\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n [class.hideTable]=\"showInviteForm\">\n <p-table #dt\n [value]=\"subscriptions\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <ng-container *ngIf=\"subscriptionInsights\">\n <div class=\"row mb-4\">\n <ng-container *ngFor=\"let temp of objectKeys(subscriptionInsights)\">\n <div class=\"col-12 col-lg-3 mt-2 summary\">\n <div class=\"card\">\n <div class=\"card-body\">\n <ng-container *ngFor=\"let item of subscriptionInsights[temp]\">\n <div>\n <p class=\"mb-0 px-2\">{{ item?.title }}\n <span *ngIf=\"item?.info\"\n [pTooltip]=\"item?.info\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </p>\n <h4 class=\"fw-bold mt-2 mb-2\">\n {{ item?.value }}\n </h4>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"search-filter\">\n <div class=\"col-12 col-sm-4\">\n <p-multiSelect defaultLabel=\"Select Feature Keys\"\n [showToggleAll]=\"true\"\n [showHeader]=\"true\"\n [(ngModel)]=\"selectedFeatureKeys\"\n [options]=\"searchOptions\"\n (onChange)=\"onSearchOptionChange($event)\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n <div class=\"col-12 col-sm-4\">\n <select class=\"form-select\"\n (change)=\"filterByStatus($event)\">\n <option [value]=\"\">Select status</option>\n <option *ngFor=\"let option of subscriptionStatus\"\n [value]=\"option\"\n [selected]=\"option === status\">\n {{ option }}\n </option>\n </select>\n </div>\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2 d-none\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"30\"\n placeholder=\"Search Subscription...\"\n class=\"mw-90\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"id\">\n {{ 'Admin.Subscriptions.Id' | transloco }}\n <p-sortIcon field=\"id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"organisation\">\n {{ 'Admin.Subscriptions.Organization' | transloco }}\n <p-sortIcon field=\"organisation\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"contact_name\">\n {{ 'Admin.Subscriptions.ContactName' | transloco }}\n <p-sortIcon field=\"contact_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"contact_email\">\n {{ 'Admin.Subscriptions.ContactEmail' | transloco }}\n <p-sortIcon field=\"contact_email\"></p-sortIcon>\n </th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.Product' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.Currency' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.PricePerMonth' | transloco }}</th>\n <th scope=\"true\"\n pSortableColumn=\"stripe_customer_id\">\n {{ 'Admin.Subscriptions.Paid' | transloco }}\n <p-sortIcon field=\"stripe_customer_id\"></p-sortIcon>\n </th>\n <th scope=\"true\">{{ 'Admin.Subscriptions.Billing' | transloco }}</th>\n <th scope=\"true\"\n class=\"expires-at-width\">\n {{ 'Admin.Subscriptions.ExpiresAt' | transloco }}\n </th>\n <th scope=\"true\"\n pSortableColumn=\"sessions_total\">\n {{ 'Admin.Subscriptions.SessionsTotal' | transloco }}\n <p-sortIcon field=\"sessions_total\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"sessions_last_month\">\n {{ 'Admin.Subscriptions.SessionsTotalLastMonth' | transloco }}\n <p-sortIcon field=\"sessions_last_month\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"deleted_at\">\n {{ 'Admin.Subscriptions.Deleted' | transloco }}\n <p-sortIcon field=\"deleted_at\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"id\">{{ item.id }}</td>\n <td data-head=\"Organization\">\n <span class=\"cursor-pointer custom-break-word\"\n [pTooltip]=\"item.organisation\"\n tooltipPosition=\"top\">{{ item.organisation | textTruncate: 20 }}</span>\n </td>\n <td data-head=\"ContactName\"\n class=\"custom-break-word\">\n {{ item.contact_name }}\n </td>\n <td data-head=\"ContactEmail\">{{ item.contact_email }}</td>\n <td data-head=\"Name\">\n <span class=\"cursor-pointer custom-break-word\"\n [pTooltip]=\"item.productName\"\n tooltipPosition=\"top\">{{ item.productName }}</span>\n </td>\n <td data-head=\"Currency\">\n <span [appDynamicBadge]=\"{ itemsArray: currency, item: item.currency }\"\n color=\"blue-grey\"\n class=\"badge\">{{ item.currency }}</span>\n </td>\n <td data-head=\"Price/M\">\n <span>{{ (item.price / 100).toFixed(2) | currency:item.currency }}\n <i\n class=\"fa fa-info-circle\"\n *ngIf=\"item?.discount && objectKeys(item?.discount)?.length\"\n aria-hidden=\"true\"\n [pTooltip]=\"item?.discount | json\"\n tooltipPosition=\"top\"\n ></i>\n </span>\n </td>\n <td data-head=\"Paid\">\n <ng-container *ngIf=\"item?.unsubscribed_at\">\n <span class=\"badge bg-warning\">Unsub</span>\n </ng-container>\n <ng-container *ngIf=\"!item?.unsubscribed_at\">\n <ng-template [ngIf]=\"item?.stripe_customer_id || item?.external_payment\"\n [ngIfElse]=\"noBlock\">\n <span class=\"badge bg-success\">Yes</span>\n </ng-template>\n <ng-template #noBlock>\n <span class=\"badge bg-blue-grey\">No</span>\n </ng-template>\n </ng-container>\n <span *ngIf=\"item?.pause_collection && objectKeys(item?.pause_collection)?.length\"\n class=\"ms-2\"\n [pTooltip]=\"item?.pause_collection | json\"\n tooltipPosition=\"top\">\n <i class=\"fas fa-exclamation-triangle text-warning\"></i>\n </span>\n </td>\n <td data-head=\"Billing\">\n <span class=\"badge\"\n [appDynamicBadge]=\"{\n itemsArray: billingFrequency,\n item: item?.billingFrequency\n }\"\n color=\"blue-grey\">{{ item.billingFrequency }}</span>\n </td>\n <td data-head=\"Expires\">\n <span [ngClass]=\"getExpiresAtColor(item)\">{{item?.expires_at | dateFormat}}</span><br />\n <span>{{item?.created_at | sinceAgo}}</span>\n </td>\n <td data-head=\"S#\">{{ item?.sessions_total }}</td>\n <td data-head=\"S/m #\">\n <span [ngClass]=\"{\n 'text-danger fw-bold': item?.sessions_last_month < 3\n }\">{{ item?.sessions_last_month }}</span>\n </td>\n <td data-head=\"Deleted\">\n <span *ngIf=\"item?.deleted_at\"\n class=\"badge bg-danger\">Yes</span>\n <span *ngIf=\"!item?.deleted_at\"\n class=\"badge bg-blue-grey\">No</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.subscriptionDetails, item.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Subscription.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"totalRecords === 0 && totalRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-subscriptions',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class SubscriptionComponent extends AppBaseComponent {\n items: MenuItem[] = [\n {\n id: 'subscription',\n label: 'Subscription',\n icon: 'fa fa-fw fa-user-cog',\n routerLink: ['/admin/subscriptions/list'],\n visible: this.permissionService.evaluatePermissions('SubscriptionSuperAdmin')\n },\n {\n id: 'insight',\n label: 'Insight',\n icon: 'fa fa-fw fa-signature',\n routerLink: ['/admin/subscriptions/insight'],\n visible: this.permissionService.evaluatePermissions('SubscriptionSuperAdmin')\n }\n ];\n}\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnDestroy } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { LazyLoadEvent } from 'primeng/api';\nimport swal from 'sweetalert2';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PrimeNgHelper } from '@posiwise/common-services';\nimport { TagService, CustomToastService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-tags-category',\n templateUrl: './tags-category.component.html',\n styleUrls: ['./tags-category.component.scss']\n})\nexport class TagsCategoryComponent extends AppBaseComponent implements OnDestroy, AfterViewChecked {\n totalCategoryRecords: number;\n\n searchText = '';\n\n tagCategories = [];\n\n tags = [];\n\n totalTagRecords: number;\n\n loading = true;\n\n categoryModel: any;\n\n private tagModel: any;\n\n private page = 1;\n\n initialize() {\n this.tagModel = {\n name: '',\n id: 0,\n tag_category_id: 0,\n tag_type: ''\n };\n\n this.categoryModel = {\n name: '',\n id: 0\n };\n }\n\n constructor(\n injector: Injector,\n private tagService: TagService,\n private toastr: CustomToastService,\n private modalService: NgbModal,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getTags({\n page: this.page,\n page_size: PAGE_SIZE,\n search: this.searchText,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder\n });\n }\n\n private getTags(params: Paging) {\n this.tagService.getTagCategories(params).subscribe(response => {\n this.tagCategories = PrimeNgHelper.dropdownDataSource(\n response.tag_categories,\n 'name',\n 'id'\n );\n\n this.totalCategoryRecords = this.tagCategories.length;\n this.tagService.getTagsByType(null, {}).subscribe(tags => {\n this.tags = tags.tags;\n this.totalTagRecords = this.tags.length;\n this.tags.forEach(element => {\n element.category = this.tagCategories.find(\n x => x.id === element.tag_category_id\n );\n });\n this.loading = false;\n });\n });\n }\n\n onDelete(category) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete ${category.name}?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.tagService.deleteTagCategoryById(category.id).subscribe(() => {\n this.tagCategories = this.tagCategories.filter(x => x.value !== category.id);\n this.toastr.success(this.translation.translate('Admin.Tags.DeletedMessage'));\n this.getTags({ page_size: PAGE_SIZE });\n });\n }\n });\n }\n\n onCategoryEdit(content, item) {\n this.initialize();\n if (item) {\n this.categoryModel = item;\n }\n this.modalService.open(content, { centered: true, windowClass: 'modal-holder' });\n }\n\n onSave() {\n if (this.categoryModel.id) {\n this.tagService\n .updateTagCategoryById(this.categoryModel.id, { name: this.categoryModel.name })\n .subscribe(() => {\n this.toastr.success(this.translation.translate('Admin.Tags.UpdatedMessage'));\n this.getTags({ page_size: PAGE_SIZE });\n this.initialize();\n this.modalService.dismissAll();\n });\n } else {\n this.tagService.addTagCategoryById(this.categoryModel).subscribe(() => {\n this.toastr.success(this.translation.translate('Admin.Tags.AddedMessage'));\n this.getTags({ page_size: PAGE_SIZE });\n this.initialize();\n this.modalService.dismissAll();\n });\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"mt-3\">\n <h2 class=\"card-title p-0\">Categories</h2>\n <p>Tags needs to be associated to \"categories\". You can create them here.</p>\n</div>\n<div class=\"mt-3\">\n <div class=\"text-end\">\n <button data-cy=\"create-category\"\n *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onCategoryEdit(tagCategoryModal, null)\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Category\n </button>\n </div>\n</div>\n\n<pw-no-data message=\"No tag categories found. Please consider adding some.\"\n *ngIf=\"totalCategoryRecords === 0\">\n</pw-no-data>\n<div class=\"primeng-datatable-container table-responsive\">\n <p-table #dt\n [value]=\"tagCategories\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [lazy]=\"true\"\n [totalRecords]=\"totalTagRecords\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Category...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Name\">{{ item?.name }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Roles.Edit'\"\n (click)=\"onCategoryEdit(tagCategoryModal, item)\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Roles.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalCategoryRecords }}</span>\n</div>\n<!-- Category Template -->\n<ng-template #tagCategoryModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Category</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <form action=\"\"\n #editForm=\"ngForm\">\n <input type=\"text\"\n class=\"form-control\"\n data-cy=\"category-field\"\n name=\"name\"\n placeholder=\"Category Name\"\n [(ngModel)]=\"categoryModel.name\"\n #name=\"ngModel\"\n required />\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"modal.close()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnDestroy } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { LazyLoadEvent } from 'primeng/api';\nimport { forkJoin } from 'rxjs';\nimport swal from 'sweetalert2';\n\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { PrimeNgHelper, TagService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-tags-list',\n templateUrl: './tags-list.component.html'\n})\nexport class TagsListComponent extends AppBaseComponent implements OnDestroy, AfterViewChecked {\n form: UntypedFormGroup;\n\n tagCategories = [];\n\n totalCategoryRecords: number;\n\n tags: any[] = [];\n\n totalTagRecords: number;\n\n loading = true;\n\n searchText = '';\n\n tagTypes = [];\n\n private page = 1;\n\n totalTagRecordsUnFilter = 0;\n\n constructor(\n injector: Injector,\n private modalService: NgbModal,\n private tagService: TagService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n\n this.form = AppAdmin.getTagsForm();\n this.getTagTypes();\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getTags({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getTags(params: Paging) {\n forkJoin({\n categories: this.tagService.getTagCategories({}),\n tags: this.tagService.getTagsByType('', params)\n })\n .subscribe(response => {\n this.tagCategories = PrimeNgHelper.dropdownDataSource(\n response.categories.tag_categories,\n 'name',\n 'id'\n );\n this.tags = [];\n this.totalCategoryRecords = this.tagCategories.length;\n this.totalTagRecordsUnFilter = response.tags?.unfiltered_count;\n response.tags?.tags?.forEach(item => {\n const matchedTag = this.tagCategories.filter(\n tag => item.tag_category_id === tag.id\n );\n if (matchedTag.length > 0) {\n this.tags.push(Object.assign(item, { category_name: matchedTag[0].name }));\n } else {\n this.tags.push(Object.assign(item, { category_name: '' }));\n }\n });\n this.totalTagRecords = this.tags.length;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n private getTagTypes() {\n this.tagService.getAvailableTagType().subscribe(response => {\n response.available_tag_types.forEach(element => {\n this.tagTypes.push({\n label: element,\n value: element\n });\n });\n });\n }\n\n onDelete(tag) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete ${tag.name}?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.tagService.deleteTagById(tag.id).subscribe(() => {\n this.getTags({ page: this.page, page_size: PAGE_SIZE });\n this.toast.success(this.translation.translate('Admin.Tags.DeletedMessage'));\n });\n }\n });\n }\n\n onTagEdit(content, item) {\n if (item) {\n this.form.patchValue(item);\n }\n this.modalService.open(content, { centered: true, windowClass: 'modal-holder' });\n }\n\n onSave() {\n if (this.form.invalid) {\n return;\n }\n if (this.form.get('id').value) {\n this.tagService\n .updateTagById(this.form.get('id').value, this.form.value)\n .subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Tags.UpdatedMessage'));\n this.getTags({});\n this.form.reset();\n this.modalService.dismissAll();\n });\n } else {\n this.tagService.addAdminTag(this.form.value).subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Tags.AddedMessage'));\n\n this.getTags({});\n this.form.reset();\n this.modalService.dismissAll();\n });\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"mt-3\">\n <h2 class=\"card-title p-0\">Tags</h2>\n <p>\n Here you can define the tags to be used site-wide.<br />\n Tags need to be associated to categories (definable in the \"category\" tab).<br />\n Tags also need to be associated to a \"tag_type\", which is the entity you want to associate\n the tag to, for example \"user\".\n </p>\n</div>\n\n<div class=\"mt-3\">\n <div class=\"text-end\">\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n data-cy=\"create-tag\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onTagEdit(tagModal, null)\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tag\n </button>\n </div>\n</div>\n\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"totalTagRecordsUnFilter === 0\">\n <p-table #dt\n [value]=\"tags\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [lazy]=\"true\"\n [totalRecords]=\"totalTagRecords\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Tag...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"tag_category_id\">\n {{ 'Admin.Tags.Category' | transloco }}\n <p-sortIcon field=\"tag_category_id\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-item>\n <tr>\n <td data-head=\"Name\">{{ item?.name }}</td>\n <td data-head=\"Category\">{{ item?.category_name }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Roles.Edit'\"\n (click)=\"onTagEdit(tagModal, item)\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Roles.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"totalTagRecords === 0 && totalTagRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalTagRecords }}</span>\n</div>\n<pw-no-data [message]=\"'Admin.Tags.Category' | transloco\"\n *ngIf=\"totalTagRecordsUnFilter === 0 && !loading\">\n</pw-no-data>\n<!-- Tag Modal Template -->\n<ng-template #tagModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Tag</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"mb-3\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n placeholder=\"Tag Name\" />\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagTypes\"\n formControlName=\"tag_type\"\n placeholder=\"Tag Types\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagCategories\"\n formControlName=\"tag_category_id\"\n placeholder=\"Category\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"modal.close(); form.reset()\"></button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-tags-tabs',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class TagsTabsComponent {\n items: MenuItem[];\n\n searchText = '';\n\n constructor() {\n this.items = [\n {\n id: 'tag_category',\n label: 'Categories',\n icon: 'fa fa-fw fa-list',\n routerLink: ['/admin/tags/categories']\n },\n {\n id: 'tags',\n label: 'Tags',\n icon: 'fa fa-fw fa-tag',\n routerLink: ['/admin/tags/list']\n }\n ];\n }\n}\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { User } from '@posiwise/common-utilities';\nimport { TipsService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-admin-tip',\n templateUrl: './tip-detail.component.html'\n})\nexport class TipComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n positions = [\n {\n label: 'Left',\n value: 'left'\n },\n {\n label: 'Right',\n value: 'right'\n },\n {\n label: 'Top',\n value: 'top'\n },\n {\n label: 'Bottom',\n value: 'bottom'\n }\n ];\n\n id: number;\n\n constructor(private tipService: TipsService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getTipsForm();\n }\n\n ngOnInit() {\n this.route.params.subscribe((data: User) => {\n this.id = +data['id'];\n if (this.id) {\n this.getTipDetails();\n }\n });\n }\n\n private getTipDetails() {\n this.tipService.getById(this.id).subscribe(response => {\n this.form.patchValue(response);\n });\n }\n\n @ValidateForm('form')\n onSave() {\n const sub$ = this.id\n ? this.tipService.saveTips(this.id, this.form.value)\n : this.tipService.addTips(this.form.value);\n sub$.subscribe(() => {\n this.router.navigate(['../list'], { relativeTo: this.route });\n this.toast.success(this.translation.translate('Admin.Tips.UpdatedMessage'));\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"px-2\">\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=\"d-inline-block\">Tips</h3>\n <p>Example of \"instructions\":</p>\n <p>\n {{\n '{\"steps\":[{\"title\": \"Step 1\", \"content\":\"PosiWise welcomes you on board\", \"target\":\n \"user-message\", \"placement\": \"bottom\"}, {\"title\":\"Step 2\",\"content\": \"We have great features\n to showcase\", \"target\":\"cards\", \"placement\":\"bottom\", \"showPrevButton\":true}, {\"title\":\"Step\n 3\", \"content\": \"Get Help\", \"target\":\"step3\", \"placement\":\"left\",\n \"showPrevButton\":true}]}{\"steps\":[{\"title\": \"Step 1\", \"content\":\"PosiWise welcomes you on\n board\", \"target\": \"user-message\", \"placement\": \"bottom\"}, {\"title\":\"Step 2\",\"content\": \"We\n have great features to showcase\", \"target\":\"cards\", \"placement\":\"bottom\",\n \"showPrevButton\":true}, {\"title\":\"Step 3\", \"content\": \"Get Help\", \"target\":\"step3\",\n \"placement\":\"left\", \"showPrevButton\":true}]}'\n }}\n </p>\n </div>\n <div class=\"mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-12\">\n <pw-input-container label=\"Name\"\n name=\"name\"\n errorMsg=\"Please enter Name\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n id=\"name\" />\n </pw-input-container>\n\n <pw-input-container label=\"Instructions\"\n name=\"instructions\"\n errorMsg=\"Please enter steps\">\n <textarea type=\"text\"\n class=\"form-control bg-transparent\"\n formControlName=\"instructions\"\n [rows]=\"5\"\n [cols]=\"30\"\n pInputTextarea\n autoResize=\"autoResize\"></textarea>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-12 col-sm-12\">\n <pw-input-container label=\"Is Active\"\n name=\"active\">\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\">\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)=\"back()\">\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","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\n\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { TipResponse } from '../../../shared/interface/tip.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TipsService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-tips-list',\n templateUrl: './tips-list.component.html'\n})\nexport class TipsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n data: TipResponse = {\n tips: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n isLoaded = false;\n\n routers = ROUTERS;\n\n constructor(private tipService: TipsService, inject: Injector) {\n super(inject);\n }\n\n ngOnInit() {\n this.getTips();\n }\n\n private getTips() {\n this.tipService.getAll().subscribe((response: TipResponse) => {\n this.data = response;\n this.isLoaded = true;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"col-xs-12 text-end my-3\">\n <h2 class=\"card-title float-start\">Tips</h2>\n <a data-cy=\"create-tip\"\n *rbacAllow=\"'Pages.Admin.Product.Create'\"\n class=\"btn btn-sm btn-outline-primary\"\n [routerLink]=\"[routers.tipsDetails + '/add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tip\n </a>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n *ngIf=\"isLoaded\">\n <p-table [value]=\"data.tips\"\n [responsive]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.Name' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Instructions' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.IsActive' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Updated' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-tip>\n <tr>\n <td data-head=\"Name\">{{ tip.name }}</td>\n <td data-head=\"Instructions\"\n class=\"w-md-50\">{{ tip.instructions }}</td>\n <td data-head=\"Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: tip?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ tip?.active }}</span>\n </td>\n <td data-head=\"Updated On\">{{ tip.updated_at | dateFormat }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n [routerLink]=\"[routers.tipsDetails + tip.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n<pw-no-data [message]=\"'Admin.Tips.NoDataMessage' | transloco\"\n *ngIf=\"data.tips.length === 0\">\n</pw-no-data>\n","import { Component, OnInit } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-tips',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class TipsTabsComponent implements OnInit {\n items: MenuItem[];\n\n ngOnInit() {\n this.items = [\n {\n id: 'tips',\n label: 'Tips',\n icon: 'far fa-fw fa-code',\n routerLink: ['/admin/tips/list']\n }\n ];\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AhoyEventResponse } from '../../../shared/interface/tracking.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { AhoyService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'pw-ahoy-events',\n templateUrl: './ahoy-events.component.html',\n styleUrls: ['./ahoy-events.component.scss']\n})\nexport class AhoyEventsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n ahoyEvents: any;\n\n data: AhoyEventResponse = {\n events: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = false;\n\n searchText = '';\n\n private page = 1;\n\n defaultSortField = 'time';\n\n defaultSortOrder = -1;\n\n microServices = [];\n\n selectedMicroService: string;\n\n activeObject: any;\n\n startDate: any;\n\n endDate: any;\n\n constructor(\n injector: Injector,\n private ahoyService: AhoyService,\n private modalService: NgbModal,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.microServices = HelperService.getMicroServices(this.appConfig.links);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAhoyEvents({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getAhoyEvents(paging: Paging) {\n this.loading = true;\n let service = this.microServices.find(x => x.name === this.selectedMicroService);\n if (!service) {\n service = this.microServices.find(x => x.value === this.appConfig.links?.main_api);\n }\n const obj = {};\n if (this.startDate && this.endDate) {\n obj['start_at'] = new Date(this.startDate).toISOString();\n obj['end_at'] = new Date(this.endDate).toISOString();\n }\n this.ahoyService\n .getAhoyEvents(obj, service, paging)\n .subscribe((response: AhoyEventResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelection() {\n if (this.startDate && this.endDate) {\n this.getAhoyEvents({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n }\n\n onServiceChange(value: string) {\n this.selectedMicroService = value;\n this.getAhoyEvents({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n revealProp(modal, value) {\n this.activeObject = value;\n this.modalService.open(modal, { centered: true, windowClass: 'modal-holder' });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 create-user d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Ahoy Events</h2>\n </div>\n</div>\n\n<div class=\"primeng-datatable-container mt-0\">\n <div class=\"user-management-table table-responsive\">\n <p-table #dt\n [value]=\"data.events\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [sortField]=\"defaultSortField\"\n [sortOrder]=\"defaultSortOrder\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\">\n <ng-template pTemplate=\"caption\">\n <div class=\"d-flex\">\n <div *rbacAllow=\"'SuperAdmin'\"\n class=\"col-sm-3 mb-2 mb-md-0\">\n <select (change)=\"onServiceChange($event.target.value)\"\n class=\"form-control form-select\">\n <option *ngFor=\"let item of microServices\"\n [value]=\"item.name\">\n {{ item.name }}\n </option>\n </select>\n </div>\n <div class=\"col-sm-2 \">\n <p-calendar [showTime]=\"true\"\n [appendTo]=\"'body'\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'start date'\"\n [(ngModel)]=\"startDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"col-sm-2\">\n <p-calendar [appendTo]=\"'body'\"\n [showTime]=\"true\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'end date'\"\n [(ngModel)]=\"endDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"text-end ms-auto\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Events...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\">\n {{ 'Admin.Tracking.Properties' | transloco }}\n </th>\n <th scope=\"true\"\n pSortableColumn=\"time\">\n {{ 'Admin.Tracking.Time' | transloco }}\n <p-sortIcon field=\"time\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"user_id\">\n {{ 'Admin.Tracking.User' | transloco }}\n <p-sortIcon field=\"user_id\"></p-sortIcon>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-event>\n <tr [class.d-none]=\"loading\">\n <td data-head=\"Name\">{{ event.name }}</td>\n <td data-head=\"Properties\"><span class=\"badge bg-info cursor-pointer\"\n (click)=\"revealProp(objModal,event?.properties)\">Reveal properties</span></td>\n <td data-head=\"Time\">{{ event.time }}</td>\n <td data-head=\"User\">\n <span *ngIf=\"event?.user_id\">\n <span *ngIf=\"event?.user\"><a [routerLink]=\"['/members', event?.user?.slug]\">{{ event?.user?.first_name }} {{ event?.user?.last_name }}</a></span>\n <span *ngIf=\"!event?.user\">{{ event?.user_id }}</span>\n </span>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n </div>\n</div>\n\n<!-- Object Modal -->\n<ng-template #objModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\">{{ 'Admin.Tracking.Properties' | transloco }}</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"activeObject\">\n <ngx-json-viewer [json]=\"activeObject\"\n [expanded]=\"false\"></ngx-json-viewer>\n </div>\n </div>\n</ng-template>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AhoyMessageResponse } from '../../../shared/interface/tracking.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { AhoyService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-ahoy-messages',\n templateUrl: './ahoy-messages.component.html',\n styleUrls: ['./ahoy-messages.component.scss']\n})\nexport class AhoyMessagesComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: AhoyMessageResponse = {\n messages: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = false;\n\n searchText = '';\n\n private page = 1;\n\n microServices = [];\n\n selectedMicroService: string;\n\n startDate: any;\n\n endDate: any;\n\n constructor(\n injector: Injector,\n private ahoyService: AhoyService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.microServices = HelperService.getMicroServices(this.appConfig.links);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAhoyMessages({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getAhoyMessages(paging: Paging) {\n this.loading = true;\n let service = this.microServices.find(x => x.name === this.selectedMicroService);\n if (!service) {\n service = this.microServices.find(x => x.value === this.appConfig.links?.main_api);\n }\n const obj = {};\n if (this.startDate && this.endDate) {\n obj['start_at'] = new Date(this.startDate).toISOString();\n obj['end_at'] = new Date(this.endDate).toISOString();\n }\n this.ahoyService\n .getAhoyMessages(obj, service, paging)\n .subscribe((response: AhoyMessageResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelection() {\n if (this.startDate && this.endDate) {\n this.getAhoyMessages({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n }\n\n onServiceChange(value: string) {\n this.selectedMicroService = value;\n this.getAhoyMessages({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 create-user d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Ahoy Messages</h2>\n </div>\n</div>\n\n<div class=\"primeng-datatable-container mt-0\">\n <div class=\"user-management-table table-responsive\">\n <p-table #dt\n [value]=\"data.messages\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [sortField]=\"'sent_at'\"\n [sortOrder]=\"-1\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\">\n <ng-template pTemplate=\"caption\">\n <div class=\"d-flex\">\n <div *rbacAllow=\"'SuperAdmin'\"\n class=\"col-sm-3 mb-2 mb-md-0\">\n <select (change)=\"onServiceChange($event.target.value)\"\n class=\"form-control form-select\">\n <option *ngFor=\"let item of microServices\"\n [value]=\"item.name\">\n {{ item.name }}\n </option>\n </select>\n </div>\n <div class=\"col-sm-2 \">\n <p-calendar [showTime]=\"true\"\n [appendTo]=\"'body'\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'start date'\"\n [(ngModel)]=\"startDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"col-sm-2\">\n <p-calendar [appendTo]=\"'body'\"\n [showTime]=\"true\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'end date'\"\n [(ngModel)]=\"endDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"text-end ms-auto\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Messages...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"mailer\">\n {{ 'Admin.Tracking.Mailer' | transloco }}\n <p-sortIcon field=\"mailer\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"sent_at\">\n {{ 'Admin.Tracking.SentAt' | transloco }}\n <p-sortIcon field=\"sent_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"subject\">\n {{ 'Admin.Tracking.Subject' | transloco }}\n <p-sortIcon field=\"subject\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"to\">\n {{ 'Admin.Tracking.To' | transloco }}\n <p-sortIcon field=\"to\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"user_id\">\n {{ 'Admin.Tracking.User' | transloco }}\n <p-sortIcon field=\"user_id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"clicked_at\">\n {{ 'Admin.Tracking.LastClickedAt' | transloco }}\n <p-sortIcon field=\"clicked_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"opened_at\">\n {{ 'Admin.Tracking.LastOpenedAt' | transloco }}\n <p-sortIcon field=\"opened_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"click_count\">\n {{ 'Admin.Tracking.ClickCount' | transloco }}\n <p-sortIcon field=\"click_count\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"open_count\">\n {{ 'Admin.Tracking.OpenCount' | transloco }}\n <p-sortIcon field=\"open_count\"></p-sortIcon>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-messages>\n <tr [class.d-none]=\"loading\">\n <td data-head=\"Mailer\">{{ messages.mailer }}</td>\n <td data-head=\"Sent At\">{{ messages.sent_at | dateFormat: 'datetime' }}</td>\n <td data-head=\"Subject\">{{ messages.subject | textTruncate: 30 }}</td>\n <td data-head=\"To\">{{ messages.to }}</td>\n <td data-head=\"User\">\n <span *ngIf=\"messages?.user_id\">\n <span *ngIf=\"messages?.user\"><a [routerLink]=\"['/members', messages?.user?.slug]\">{{ messages?.user?.first_name }} {{ messages?.user?.last_name }}</a></span>\n <span *ngIf=\"!messages?.user\">{{ messages?.user_id }}</span>\n </span>\n </td>\n <td data-head=\"Last Clicked At\">\n {{ messages?.clicked_at | dateFormat: 'datetime' }}\n </td>\n <td data-head=\"Last Opened At\">\n {{ messages?.opened_at | dateFormat: 'datetime' }}\n </td>\n <td data-head=\"Click Count\">{{ messages?.click_count }}</td>\n <td data-head=\"Open Count\">{{ messages?.open_count }}</td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AhoyVisitResponse } from '../../../shared/interface/tracking.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { AhoyService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-ahoy-visits',\n templateUrl: './ahoy-visits.component.html',\n styleUrls: ['./ahoy-visits.component.scss']\n})\nexport class AhoyVisitsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: AhoyVisitResponse = {\n visits: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = false;\n\n searchText = '';\n\n private page = 1;\n\n microServices = [];\n\n selectedMicroService: string;\n\n startDate: any;\n\n endDate: any;\n\n constructor(\n injector: Injector,\n private ahoyService: AhoyService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.microServices = HelperService.getMicroServices(this.appConfig.links);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getAhoyVisits({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getAhoyVisits(paging: Paging) {\n this.loading = true;\n let service = this.microServices.find(x => x.name === this.selectedMicroService);\n if (!service) {\n service = this.microServices.find(x => x.value === this.appConfig.links?.main_api);\n }\n const obj = {};\n if (this.startDate && this.endDate) {\n obj['start_at'] = new Date(this.startDate).toISOString();\n obj['end_at'] = new Date(this.endDate).toISOString();\n }\n this.ahoyService\n .getAhoyVisits(obj, service, paging)\n .subscribe((response: AhoyVisitResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelection() {\n if (this.startDate && this.endDate) {\n this.getAhoyVisits({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n }\n\n onServiceChange(value: string) {\n this.selectedMicroService = value;\n this.getAhoyVisits({ page: this.page, page_size: PAGE_SIZE });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 create-user d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Ahoy Visits</h2>\n </div>\n</div>\n\n<div class=\"primeng-datatable-container mt-0\">\n <div class=\"user-management-table table-responsive\">\n <p-table #dt\n [value]=\"data.visits\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [sortField]=\"'started_at'\"\n [sortOrder]=\"-1\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\">\n <ng-template pTemplate=\"caption\">\n <div class=\"d-flex\">\n <div *rbacAllow=\"'SuperAdmin'\"\n class=\"col-sm-3 mb-2 mb-md-0\">\n <select (change)=\"onServiceChange($event.target.value)\"\n class=\"form-control form-select\">\n <option *ngFor=\"let item of microServices\"\n [value]=\"item.name\">\n {{ item.name }}\n </option>\n </select>\n </div>\n <div class=\"col-sm-2 \">\n <p-calendar [showTime]=\"true\"\n [appendTo]=\"'body'\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'start date'\"\n [(ngModel)]=\"startDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"col-sm-2\">\n <p-calendar [appendTo]=\"'body'\"\n [showTime]=\"true\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'end date'\"\n [(ngModel)]=\"endDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"text-end ms-auto\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Visits...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"browser\">\n {{ 'Admin.Tracking.Browser' | transloco }}\n <p-sortIcon field=\"browser\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"device_type\">\n {{ 'Admin.Tracking.DeviceType' | transloco }}\n <p-sortIcon field=\"device_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"ip\">\n {{ 'Admin.Tracking.Ip' | transloco }}\n <p-sortIcon field=\"ip\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"os\">\n {{ 'Admin.Tracking.Os' | transloco }}\n <p-sortIcon field=\"os\"></p-sortIcon>\n </th>\n <th scope=\"true\">\n {{ 'Admin.Tracking.User' | transloco }}\n </th>\n <th scope=\"true\"\n pSortableColumn=\"started_at\">\n {{ 'Admin.Tracking.StartedAt' | transloco }}\n <p-sortIcon field=\"started_at\"></p-sortIcon>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-visits>\n <tr [class.d-none]=\"loading\">\n <td data-head=\"Browser\">{{ visits.browser }}</td>\n <td data-head=\"Device Type\">{{ visits.device_type }}</td>\n <td data-head=\"IP\">{{ visits.ip }}</td>\n <td data-head=\"OS\">{{ visits.os }}</td>\n <td data-head=\"User\">\n <span *ngIf=\"visits?.user_id\">\n <span *ngIf=\"visits?.user\"><a [routerLink]=\"['/members', visits?.user?.slug]\">{{ visits?.user?.first_name }} {{ visits?.user?.last_name }}</a></span>\n <span *ngIf=\"!visits?.user\">{{ visits?.user_id }}</span>\n </span>\n </td>\n <td data-head=\"Started At\">{{ visits.started_at }}</td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n </div>\n</div>\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { TrackEventResponse } from '../../../shared/interface/tracking.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { AhoyService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-events',\n templateUrl: './events.component.html',\n styleUrls: ['./events.component.scss']\n})\nexport class EventsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: TrackEventResponse = {\n events: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = false;\n\n searchText = '';\n\n private page = 1;\n\n microServices = [];\n\n selectedMicroService: string;\n\n startDate: any;\n\n endDate: any;\n\n constructor(\n injector: Injector,\n private ahoyService: AhoyService,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.microServices = HelperService.getMicroServices(this.appConfig.links);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getEvents({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getEvents(paging?: Paging) {\n this.loading = true;\n let service = this.microServices.find(x => x.name === this.selectedMicroService);\n if (!service) {\n service = this.microServices.find(x => x.value === this.appConfig.links?.main_api);\n }\n const obj = {};\n if (this.startDate && this.endDate) {\n obj['start_at'] = new Date(this.startDate).toISOString();\n obj['end_at'] = new Date(this.endDate).toISOString();\n }\n this.ahoyService\n .getEvents(obj, service, paging)\n .subscribe((response: TrackEventResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelection() {\n if (this.startDate && this.endDate) {\n this.getEvents({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n }\n\n onServiceChange(value: string) {\n this.selectedMicroService = value;\n this.getEvents({ page: this.page, page_size: PAGE_SIZE });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 create-user d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Events</h2>\n </div>\n</div>\n\n<div class=\"primeng-datatable-container mt-0\">\n <div class=\"user-management-table table-responsive\">\n <p-table #dt\n [value]=\"data.events\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\">\n <ng-template pTemplate=\"caption\">\n <div class=\"d-flex\">\n <div *rbacAllow=\"'SuperAdmin'\"\n class=\"col-sm-3 mb-2 mb-md-0\">\n <select (change)=\"onServiceChange($event.target.value)\"\n class=\"form-control form-select\">\n <option *ngFor=\"let item of microServices\"\n [value]=\"item.name\">\n {{ item.name }}\n </option>\n </select>\n </div>\n <div class=\"col-sm-2 \">\n <p-calendar [showTime]=\"true\"\n [appendTo]=\"'body'\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'start date'\"\n [(ngModel)]=\"startDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"col-sm-2\">\n <p-calendar [appendTo]=\"'body'\"\n [showTime]=\"true\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'end date'\"\n [(ngModel)]=\"endDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"text-end ms-auto\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Events...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"created_at\">\n {{ 'Admin.Tracking.CreatedAt' | transloco }}\n <p-sortIcon field=\"created_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"event_type\">\n {{ 'Admin.Tracking.EventType' | transloco }}\n <p-sortIcon field=\"event_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"related_entity_type\">\n {{ 'Admin.Tracking.EntityType' | transloco }}\n <p-sortIcon field=\"related_entity_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"updated_at\">\n {{ 'Admin.Tracking.UpdatedAt' | transloco }}\n <p-sortIcon field=\"updated_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"user_id\">\n {{ 'Admin.Tracking.User' | transloco }}\n <p-sortIcon field=\"user_id\"></p-sortIcon>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-events>\n <tr [class.d-none]=\"loading\">\n <td data-head=\"Created At\">{{ events.created_at }}</td>\n <td data-head=\"Event Type\">{{ events.event_type }}</td>\n <td data-head=\"Entity Type\">{{ events.related_entity_type }}</td>\n <td data-head=\"Updated At\">{{ events.updated_at }}</td>\n <td data-head=\"User\">\n <span *ngIf=\"events?.user_id\">\n <span *ngIf=\"events?.user\"><a [routerLink]=\"['/members', events?.user?.slug]\">{{ events?.user?.first_name }} {{ events?.user?.last_name }}</a></span>\n <span *ngIf=\"!events?.user\">{{ events?.user_id }}</span>\n </span>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\n@Component({\n selector: 'pw-tracking',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`\n})\nexport class TrackingComponent {\n items: MenuItem[];\n\n constructor() {\n this.items = [\n {\n id: 'ahoy_events',\n label: 'Ahoy Events',\n icon: 'fas fa-calendar-alt',\n routerLink: ['/admin/tracking/ahoy-events']\n },\n {\n id: 'ahoy_messages',\n label: 'Ahoy Messages',\n icon: 'fa fa-envelope',\n routerLink: ['/admin/tracking/ahoy-messages']\n },\n {\n id: 'ahoy_visits',\n label: 'Ahoy Visits',\n icon: 'fas fa-archway',\n routerLink: ['/admin/tracking/ahoy-visits']\n },\n {\n id: 'events',\n label: 'Events',\n icon: 'far fa-calendar-alt',\n routerLink: ['/admin/tracking/events']\n },\n {\n id: 'versions',\n label: 'Versions',\n icon: 'fas fa-layer-group',\n routerLink: ['/admin/tracking/versions']\n }\n ];\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { LazyLoadEvent } from 'primeng/api';\n\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AhoyVersionResponse } from '../../../shared/interface/tracking.interface';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Paging } from '@posiwise/common-utilities';\nimport { AhoyService } from '@posiwise/common-services';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-versions',\n templateUrl: './versions.component.html',\n styleUrls: ['./versions.component.scss']\n})\nexport class VersionsComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n data: AhoyVersionResponse = {\n versions: [],\n object_count: 0,\n unfiltered_count: 0\n };\n\n loading = false;\n\n searchText = '';\n\n page = 1;\n\n activeObject;\n\n microServices = [];\n\n selectedMicroService: string;\n\n events = ['updated', 'created', 'deleted'];\n\n startDate: any;\n\n endDate: any;\n\n constructor(\n injector: Injector,\n private ahoyService: AhoyService,\n private modalService: NgbModal,\n private cdr: ChangeDetectorRef\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n this.microServices = HelperService.getMicroServices(this.appConfig.links);\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getVersions({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n openObjectModal(content, item) {\n this.activeObject = item;\n this.modalService.open(content, { centered: true, windowClass: 'modal-holder' });\n }\n\n getVersions(paging: Paging) {\n this.loading = true;\n let service = this.microServices.find(x => x.name === this.selectedMicroService);\n if (!service) {\n service = this.microServices.find(x => x.value === this.appConfig.links?.main_api);\n }\n const obj = {};\n if (this.startDate && this.endDate) {\n obj['start_at'] = new Date(this.startDate).toISOString();\n obj['end_at'] = new Date(this.endDate).toISOString();\n }\n this.ahoyService\n .getVersions(obj, service, paging)\n .subscribe((response: AhoyVersionResponse) => {\n this.data = response;\n })\n .add(() => {\n this.loading = false;\n });\n }\n\n onDateSelection() {\n if (this.startDate && this.endDate) {\n this.getVersions({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n }\n\n onServiceChange(value: string) {\n this.selectedMicroService = value;\n this.getVersions({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 create-user d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Versions</h2>\n </div>\n</div>\n\n<div class=\"primeng-datatable-container mt-0\">\n <div class=\"user-management-table table-responsive\">\n <p-table #dt\n [value]=\"data.versions\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\">\n <ng-template pTemplate=\"caption\">\n <div class=\"d-flex\">\n <div *rbacAllow=\"'SuperAdmin'\"\n class=\"col-sm-3 mb-2 mb-md-0\">\n <select (change)=\"onServiceChange($event.target.value)\"\n class=\"form-control form-select\">\n <option *ngFor=\"let item of microServices\"\n [value]=\"item.name\">\n {{ item.name }}\n </option>\n </select>\n </div>\n <div class=\"col-sm-2 \">\n <p-calendar [showTime]=\"true\"\n [appendTo]=\"'body'\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'start date'\"\n [(ngModel)]=\"startDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"col-sm-2\">\n <p-calendar [appendTo]=\"'body'\"\n [showTime]=\"true\"\n (onSelect)=\"onDateSelection()\"\n [placeholder]=\"'end date'\"\n [(ngModel)]=\"endDate\"\n [showIcon]=\"true\"\n dateFormat=\"yy-mm-dd\">\n </p-calendar>\n </div>\n <div class=\"text-end ms-auto\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Versions...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"author\">\n {{ 'Admin.Tracking.User' | transloco }}\n <p-sortIcon field=\"author\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"created_at\">\n {{ 'Admin.Tracking.CreatedAt' | transloco }}\n <p-sortIcon field=\"created_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"event\">\n {{ 'Admin.Tracking.Event' | transloco }}\n <p-sortIcon field=\"event\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"item_type\">\n {{ 'Admin.Tracking.ItemType' | transloco }}\n <p-sortIcon field=\"item_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"item_id\">\n {{ 'Admin.Tracking.ItemId' | transloco }}\n <p-sortIcon field=\"item_id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"object\">\n {{ 'Admin.Tracking.Object' | transloco }}\n <p-sortIcon field=\"object\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"updated_at\">\n {{ 'Admin.Tracking.UpdatedAt' | transloco }}\n <p-sortIcon field=\"updated_at\"></p-sortIcon>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-version>\n <tr [class.d-none]=\"loading\">\n <td data-head=\"User\">\n <span *ngIf=\"version?.author\"><a [routerLink]=\"['/members', version?.author?.slug]\">{{ version?.author?.first_name }}\n {{ version?.author?.last_name }}</a></span>\n <span *ngIf=\"!version?.author && version?.whodunnit\">{{\n version?.whodunnit\n }}</span>\n </td>\n <td data-head=\"Created At\">{{ version.created_at }}</td>\n <td data-head=\"Event\">\n <span class=\"badge\"\n color=\"warning\"\n [appDynamicBadge]=\"{\n itemsArray: events,\n item: version?.event\n }\">{{version?.event}}</span>\n </td>\n <td data-head=\"Item Type\">{{ version.item_type }}</td>\n <td data-head=\"Item Id\">{{ version.item_id }}</td>\n <td data-head=\"Object\">\n <span (click)=\"openObjectModal(objModal, version?.object)\"\n class=\"badge bg-info cursor-pointer\">Open Object</span>\n </td>\n <td data-head=\"Updated At\">{{ version.updated_at }}</td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n </div>\n</div>\n<!-- Object Modal -->\n<ng-template #objModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\">{{ 'Admin.Tracking.Object' | transloco }}</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"activeObject\">\n <ngx-json-viewer [json]=\"activeObject\"\n [expanded]=\"false\"></ngx-json-viewer>\n </div>\n </div>\n</ng-template>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { SelectItem } from 'primeng/api';\nimport { Observable } from 'rxjs';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppAdmin } from '../../../shared/models/admin.model';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { User, Role } from '@posiwise/common-utilities';\nimport { PermissionService } from '@posiwise/common-services';\nimport { ValidateForm } from '@posiwise/utils';\n\n@Component({\n selector: 'pw-user-details',\n templateUrl: './user-details.component.html'\n})\nexport class UserDetailsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n form: UntypedFormGroup;\n\n submitted = false;\n\n id: number;\n\n user: User | any;\n\n allRoles: SelectItem[];\n\n private userRoles: Role[] = [];\n\n subscriptionId: number;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n this.form = AppAdmin.getUsersForm();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.route.params.subscribe((data: User) => {\n this.id = +data['id'];\n if (this.id) {\n this.getUserDetails();\n this.getUserRole();\n }\n });\n this.getRoles();\n }\n\n get f() {\n return this.form.controls;\n }\n\n private getUserDetails() {\n this.adminService.getUserById(this.id, this.subscriptionId).subscribe(user => {\n this.user = user;\n this.user.send_marketing_emails = user.send_marketing_emails || false;\n this.form.patchValue(user);\n });\n }\n\n private getUserRole() {\n this.adminService.getUserRole(this.id, this.subscriptionId).subscribe(response => {\n this.userRoles = response.map(item => {\n return {\n name: item.name,\n id: item.id\n };\n });\n\n this.form.patchValue({\n roles: this.userRoles.map(x => x.id)\n });\n });\n }\n\n @ValidateForm('form')\n onSave() {\n this.submitted = true;\n const data = { ...this.form.value };\n delete data.roles;\n if (this.id) {\n this.updateUser(data);\n } else {\n this.createUser();\n }\n }\n\n createUser() {\n this.adminService\n .createUser(this.form.value)\n .subscribe(response => {\n if (response.error) {\n this.toast.error(\n `${Object.keys(response.error.message)[0]} ${Object.values(\n response.error.message\n ).join('')}`\n );\n } else {\n this.toast.success(this.translation.translate('Admin.Users.AddedMessage'));\n this.back();\n }\n })\n .add(() => {\n this.submitted = false;\n });\n }\n\n updateUser(data) {\n this.adminService\n .saveUserDetails({ ...data, subscription_id: this.subscriptionId })\n .subscribe({\n next: () => {\n this.toast.success(this.translation.translate('Admin.Users.UpdatedMessage'));\n this.back();\n },\n error: err => {\n if (err?.error) {\n this.toast.error(err.error);\n }\n }\n })\n .add(() => {\n this.submitted = false;\n });\n }\n\n getRoles() {\n this.adminService.getRoles({}, this.subscriptionId).subscribe({\n next: response => {\n this.allRoles = response.roles.map((item, index) => {\n return {\n label: item.name,\n value: item.id,\n disabled: index === 0\n };\n });\n },\n error: error => this.toast.showToast(error)\n });\n }\n\n onRoleChange(event) {\n let ob$: Observable<any>;\n if (this.userRoles.length < event.value.length) {\n ob$ = this.adminService.saveUserRole(this.id, event.itemValue, this.subscriptionId);\n } else {\n ob$ = this.adminService.deleteUserRole(this.id, event.itemValue, this.subscriptionId);\n }\n\n ob$.subscribe(() => {\n this.toast.success(this.translation.translate('Admin.Users.UpdatedRole'));\n });\n }\n\n onDiscard() {\n this.form.reset();\n this.location.back();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<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","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\n\nimport { AdminService } from '../../../admin.service';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Plotly } from '@posiwise/common-utilities';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-admin-user-insight',\n templateUrl: './users-insight.component.html'\n})\nexport class UserInsightComponent extends AppBaseComponent implements OnInit, OnDestroy {\n graph: Plotly.Figure;\n\n isLoading: boolean;\n\n subscriptionId: number;\n\n constructor(private adminService: AdminService, injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription.id;\n this.getChartData();\n }\n\n private getChartData() {\n this.isLoading = true;\n this.adminService\n .getUsersInsight(this.subscriptionId)\n .subscribe(response => {\n this.graph = response;\n })\n .add(() => {\n this.isLoading = false;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<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","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { LazyLoadEvent, SelectItem } from 'primeng/api';\n\nimport { AdminService } from '../../../admin.service';\nimport { ROUTERS } from '../../../shared/routers/routers';\nimport { PAGE_SIZE } from '@posiwise/common-utilities';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PasswordValidationComponent } from '@posiwise/shared-components';\nimport { Paging } from '@posiwise/common-utilities';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport {\n ProductService,\n WindowService,\n PermissionService,\n AuthService,\n CustomToastService\n} from '@posiwise/common-services';\nimport { NavigationEnd } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'pw-admin-user-list',\n templateUrl: './users-list.component.html',\n styleUrls: ['./users-list.component.scss']\n})\nexport class UserListComponent\n extends AppBaseComponent\n implements OnInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('passwordValidationModalForUserDelete', { static: false })\n passwordValidationModalForUserDelete: PasswordValidationComponent;\n\n @ViewChild('passwordValidationModalForImpersonate', { static: false })\n passwordValidationModalForImpersonate: PasswordValidationComponent;\n\n @ViewChild('passwordValidationModalForRemove2fa', { static: false })\n passwordValidationModalForRemove2fa: PasswordValidationComponent;\n\n totalRecords: number;\n\n users: User[] = [];\n\n allRoles: SelectItem[];\n\n searchText = '';\n\n allUsers: User[] = [];\n\n productList: SelectItem[];\n\n loading = true;\n\n searchOptions = [\n {\n label: 'Role',\n value: 'role'\n },\n {\n label: 'Product',\n value: 'product'\n },\n {\n label: 'Feature Key',\n value: 'feature_key'\n }\n ];\n\n searchDataSource = [];\n\n selectedOption: SelectItem;\n\n currentUser: User;\n\n private page = 1;\n\n routers = ROUTERS;\n\n subscriptionId: number;\n\n masterProductId = this.appConfig.master_subscription.product_id;\n\n featureKeysList = [];\n\n private filterByProducts = [];\n\n private filterByRoles = [];\n\n filterByFeatureKeys = [];\n\n private userToDelete: User;\n\n chatPermission: string;\n\n userToImpersonate: User;\n\n remove2faUserId: number;\n\n filterSource: any;\n\n criteria = [];\n\n constructor(\n private adminService: AdminService,\n private toastr: CustomToastService,\n private productService: ProductService,\n injector: Injector,\n private authService: AuthService,\n private cdr: ChangeDetectorRef,\n private windowService: WindowService\n ) {\n super(injector);\n this.getTableState();\n }\n\n ngOnInit() {\n this.subscriptionId = PermissionService.selectedSubscription?.id;\n this.chatPermission = `${PermissionService.selectedProduct.permission}.${PermissionService.selectedProduct.feature_key}`;\n this.getRoles();\n this.getProducts();\n\n this.userStore().subscribe(response => {\n this.currentUser = response;\n });\n }\n\n getTableState() {\n this.localStorage.getItem$('user-list-state').subscribe(result => {\n if (result) {\n const res = JSON.parse(result);\n this.searchText = res?.searchText || '';\n if (res?.selectedOption?.value) {\n this.selectedOption = res?.selectedOption;\n this.filterSource = [this.selectedOption?.value];\n }\n if (res?.searchDataSource?.length) {\n this.searchDataSource = res?.searchDataSource || [];\n }\n if (res?.selectedOption?.value === 'feature_key') {\n this.criteria = res?.filterByFeatureKeys || [];\n }\n if (res?.selectedOption?.value === 'product') {\n this.criteria = res?.filterByProducts || [];\n }\n if (res?.selectedOption?.value === 'role') {\n this.criteria = res?.filterByRoles || [];\n }\n this.filterByFeatureKeys = res?.filterByFeatureKeys || [];\n this.filterByProducts = res?.filterByProducts || [];\n this.filterByRoles = res?.filterByRoles || [];\n }\n });\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n onLazyLoad(event: LazyLoadEvent) {\n const pageDetails = HelperService.onTableLazyLoad(event);\n this.page = pageDetails.page;\n this.getUsers({\n page: this.page,\n page_size: PAGE_SIZE,\n order_by: pageDetails.sortField,\n order_direction: pageDetails.sortOrder,\n search: this.searchText\n });\n }\n\n private getRoles() {\n this.adminService.getRoles({}, this.subscriptionId).subscribe(response => {\n this.allRoles = response.roles.map(item => {\n return {\n label: item.name,\n value: item.id\n };\n });\n });\n }\n\n private getProducts() {\n this.productService\n .getProducts({\n master_product_id: this.masterProductId,\n subscription_id: this.subscriptionId\n })\n .subscribe(resp => {\n if (resp.products) {\n this.productList = resp.products.map(element => {\n return {\n value: element.id,\n label: element.name\n };\n });\n this.featureKeysList = resp.products.map(element => {\n return {\n value: element.feature_key,\n label: element.feature_key\n };\n });\n\n this.productList.unshift({\n label: 'None',\n value: null\n });\n }\n });\n }\n\n private getUsers(paging: Paging) {\n const params = {\n product_ids: this.filterByProducts.join() || '',\n role_ids: this.filterByRoles.join() || '',\n feature_keys: this.filterByFeatureKeys.join() || '',\n subscription_id: this.subscriptionId\n };\n this.adminService.getUsers(paging, params).subscribe(response => {\n this.users = response.users;\n this.allUsers = [...this.users];\n this.totalRecords = response.object_count;\n this.loading = false;\n });\n }\n\n onSearchOptionChange($event) {\n this.criteria = [];\n this.selectedOption = this.searchOptions.find(x => x.value === $event.value[0]);\n if (this.selectedOption && this.selectedOption.value === 'role') {\n this.searchDataSource = this.allRoles;\n } else if (this.selectedOption && this.selectedOption.value === 'product') {\n this.searchDataSource = this.productList;\n } else if (this.selectedOption && this.selectedOption.value === 'feature_key') {\n this.searchDataSource = this.featureKeysList;\n } else {\n this.searchDataSource = [];\n this.clearFilters();\n this.getUsers({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n }\n\n clearFilters() {\n this.filterByProducts = [];\n this.filterByFeatureKeys = [];\n this.filterByRoles = [];\n }\n\n onSearchCriteria(evt) {\n this.clearFilters();\n if (this.selectedOption.value === 'role') {\n this.onRoleChange(evt);\n } else if (this.selectedOption.value === 'product') {\n this.onProductChange(evt);\n } else if (this.selectedOption.value === 'feature_key') {\n this.onFeatureKeyChange(evt);\n } else {\n this.searchDataSource = [];\n }\n }\n\n onRoleChange(event) {\n this.clearFilters();\n this.filterByRoles = event.value;\n this.getUsers({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n onProductChange(event) {\n this.clearFilters();\n this.filterByProducts = event.value;\n this.getUsers({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n private onFeatureKeyChange(event) {\n this.clearFilters();\n this.filterByFeatureKeys = event.value;\n this.getUsers({\n page: this.page,\n page_size: PAGE_SIZE\n });\n }\n\n onDelete(user: User) {\n this.userToDelete = user;\n this.passwordValidationModalForUserDelete.open();\n }\n\n deleteUser(_evnt) {\n this.adminService\n .deleteUser(this.userToDelete.id, this.subscriptionId)\n .subscribe(() => {\n this.users = this.users.filter(x => x.id !== this.userToDelete.id);\n this.toastr.success(this.translation.translate('Admin.Users.DeletedMessage'));\n\n this.getUsers({\n page: this.page,\n page_size: PAGE_SIZE\n });\n })\n .add(() => {\n this.userToDelete = null;\n });\n }\n\n onImpersonate(user: User) {\n this.userToImpersonate = user;\n this.passwordValidationModalForImpersonate.open();\n }\n\n onUserImpersonation(_event) {\n this.authService.platform$.subscribe(res => {\n const platform = res;\n this.authService\n .impersonateUser({\n email: this.userToImpersonate.email,\n subscription_id: PermissionService.selectedSubscription.id,\n phonegap: platform !== 'browser'\n })\n .subscribe(_ => {\n this.toast.success(`You're now being logged in as another user...`);\n // wait for 2 sec before redirecting user to home page\n setTimeout(() => {\n this.windowService.replaceUrl('/home');\n }, 2000);\n });\n });\n }\n\n override ngOnDestroy() {\n const val = {\n searchText: this.searchText,\n filterByFeatureKeys: this.filterByFeatureKeys,\n filterByRoles: this.filterByRoles,\n filterByProducts: this.filterByProducts,\n selectedOption: this.selectedOption,\n searchDataSource: this.searchDataSource\n };\n localStorage.setItem('user-list-state', JSON.stringify(val));\n const notifier = new Subject();\n this.router.events.pipe(takeUntil(notifier)).subscribe(event => {\n if (event instanceof NavigationEnd) {\n if (!event.urlAfterRedirects.includes('/user')) {\n this.localStorage.removeItem$('user-list-state');\n notifier.next('');\n }\n }\n });\n super.ngOnDestroy();\n }\n\n disable2fa(id: number) {\n this.remove2faUserId = id;\n this.passwordValidationModalForRemove2fa.open();\n }\n\n remove2fa(_event) {\n this.adminService.remove2fa(this.remove2faUserId, this.subscriptionId).subscribe();\n }\n}\n","<div class=\"row\">\n <div class=\"col-12 create-user d-flex justify-content-between align-items-center my-3\">\n <h2 class=\"card-title p-0 float-start\">Users</h2>\n <a class=\"btn btn-sm btn-outline-primary float-end\"\n id=\"btn-create\"\n *rbacAllow=\"'SuperAdmin'\"\n [routerLink]=\"[routers.usersDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create User\n </a>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt-0\">\n <div class=\"user-management-table table-responsive\">\n <p-table #dt\n [value]=\"users\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"search-filter\">\n <div class=\"col-sm-4\">\n <p-multiSelect [options]=\"searchOptions\"\n (onChange)=\"onSearchOptionChange($event)\"\n placeholder=\"Filter users by role, product, or feature\"\n [selectionLimit]=\"1\"\n [(ngModel)]=\"filterSource\"\n [showToggleAll]=\"true\"\n [showHeader]=\"true\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n <div class=\"col-4\"\n *ngIf=\"selectedOption\">\n <p-multiSelect [options]=\"searchDataSource\"\n (onChange)=\"onSearchCriteria($event)\"\n [showToggleAll]=\"true\"\n [(ngModel)]=\"criteria\"\n [showHeader]=\"true\"\n placeholder=\"Select {{ selectedOption.value }}s\"\n maxSelectedLabels=\"2\"\n appendTo=\"body\">\n </p-multiSelect>\n </div>\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search User...\"\n data-cy=\"user-search\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"wd-90\" />\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"id\">\n {{ 'Admin.Users.Id' | transloco }}\n <p-sortIcon field=\"id\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"first_name\">\n {{ 'Label.FirstName' | transloco }}\n <p-sortIcon field=\"first_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_name\">\n {{ 'Label.LastName' | transloco }}\n <p-sortIcon field=\"last_name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"email\">\n {{ 'Label.Email' | transloco }}\n <p-sortIcon field=\"email\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"slug\">\n {{ 'Admin.Users.Slug' | transloco }}\n <p-sortIcon field=\"slug\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"encrypted_password\">\n {{ 'Admin.Users.EmailConfirm' | transloco }}\n <p-sortIcon field=\"encrypted_password\"></p-sortIcon>\n </th>\n\n <th scope=\"true\"\n pSortableColumn=\"sessions_last_month\">\n {{ 'Admin.Subscriptions.SessionsTotalLastMonth' | transloco }}\n <p-sortIcon field=\"sessions_last_month\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"last_sign_in_at\">\n {{ 'Admin.Users.LastLogin' | transloco }}\n <p-sortIcon field=\"last_sign_in_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"signed_up_at\">\n {{ 'Admin.Users.RegisteredOn' | transloco }}\n <p-sortIcon field=\"signed_up_at\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-four\">\n {{ 'Label.Actions' | transloco }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-user>\n <tr>\n <td data-head=\"id\"> {{ user.id }}</td>\n <td data-head=\"First Name\"><a [routerLink]=\"['/members', user.slug]\">{{ user.first_name }}</a></td>\n <td data-head=\"Last Name\">{{ user.last_name }}\n <span *ngIf=\"user?.alpha\"\n [pTooltip]=\"'Admin.Users.Tooltip.AlphaIcon'|transloco\"\n tooltipPosition=\"top\">\n <i class=\"fa-regular fa-square-a alpha-beta text-warning\"></i>\n </span>\n <span class=\"ms-2\"\n *ngIf=\"user?.beta\"\n [pTooltip]=\"'Admin.Users.Tooltip.BetaIcon'|transloco\"\n tooltipPosition=\"top\">\n <i class=\"fa-regular fa-square-b alpha-beta text-primary\" ></i>\n </span>\n </td>\n <td data-head=\"Email\">{{ user.email }}</td>\n <td data-head=\"Slug\">{{ user.slug }}</td>\n <td data-head=\"Email Confirm\">\n <span [appDynamicBadge]=\"{\n itemsArray: [true, false],\n item: user?.has_password\n }\"\n color=\"success-danger\"\n class=\"badge\">{{ user?.has_password ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"S/m #\">\n <span [ngClass]=\"{\n 'text-danger fw-bold': user?.sessions_last_month < 3\n }\">{{ user?.sessions_last_month }}</span>\n </td>\n <td data-head=\"Last Login\">\n <span *ngIf=\"user?.current_sign_in_at;else lastSignin\">\n {{ user.current_sign_in_at | dateFormat }}\n </span>\n <ng-template #lastSignin>\n {{ user.last_sign_in_at | dateFormat }}\n </ng-template>\n </td>\n <td data-head=\"Registered On\">{{ user.signed_up_at | dateFormat }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Impersonate this user\"\n *rbacAllow=\"'Pages.Alpha'\"\n class=\"me-2 me-sm-3\">\n <i\n class=\"fas fa-people-arrows\"\n (click)=\"onImpersonate(user)\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <ng-template [ngIf]=\"user?.enable_two_factor_authenticator\">\n <li ngbTooltip=\"Disable 2fa\"\n (click)=\"disable2fa(user?.id)\"\n *rbacAllow=\"'Pages.Alpha'\"\n class=\"me-2 me-sm-3\">\n <i class=\"fa fa-lock\" aria-hidden=\"true\"></i>\n </li>\n </ng-template>\n <ng-template [ngIf]=\"currentUser && user.id !== currentUser.id\">\n <li ngbTooltip=\"Message\"\n *rbacAllow=\"chatPermission\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"['/message']\"\n [fragment]=\"user.slug\">\n <i class=\"fa fa-comments cta1-icon\" aria-hidden=\"true\"></i>\n </li>\n </ng-template>\n <li ngbTooltip=\"Edit\"\n *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.usersDetails + user.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n *rbacAllow=\"'Pages.Admin.Users.Delete'\"\n class=\"me-2 me-sm-3\">\n <i\n class=\"fa fa-trash delete-icon\"\n (click)=\"onDelete(user)\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n </div>\n</div>\n<!-- password validation modal for delete user -->\n<pw-password-validation #passwordValidationModalForUserDelete\n (successEvent)=\"deleteUser($event)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <p>{{ 'User.Account.Message.ActionCanNotUndone' | transloco }}</p>\n <p>{{ 'User.Account.Message.ConfirmPassword' | transloco }}</p>\n </div>\n </div>\n</pw-password-validation>\n<!-- password validaton modal for impersonate -->\n<pw-password-validation #passwordValidationModalForImpersonate\n (successEvent)=\"onUserImpersonation($event)\">\n</pw-password-validation>\n<!-- password validaton modal for remove2fa -->\n<pw-password-validation #passwordValidationModalForRemove2fa\n (successEvent)=\"remove2fa($event)\">\n</pw-password-validation>\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\n\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-users-management',\n template: `<pw-tabs [items]=\"items\"></pw-tabs>`,\n styleUrls: ['./users-tabs.component.scss']\n})\nexport class UserTabComponent {\n constructor(private permission: PermissionService) {}\n\n items: MenuItem[] = [\n {\n id: 'users',\n label: 'Users',\n icon: 'fa fa-fw fa-user-cog',\n routerLink: ['/admin/users/list'],\n visible: this.permission.evaluatePermissions(\n 'Pages.Admin.Users.Edit || Pages.Admin.Users.Create'\n )\n },\n {\n id: 'insight',\n label: 'Insight',\n icon: 'fa fa-fw fa-signature',\n routerLink: ['/admin/users/insight']\n }\n ];\n\n view: any[];\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { TermsOfServiceDetailsComponent } from './components/TOS/terms-of-service-details/terms-of-service-details.component';\nimport { TermsOfServiceTabsComponent } from './components/TOS/terms-of-service-tabs/terms-of-service-tabs.component';\nimport { TermsOfServiceComponent } from './components/TOS/terms-of-service/terms-of-service.component';\nimport { GlobalConfigDetailsComponent } from './components/config/global-config-details/global-config-details.component';\nimport { GlobalConfigListComponent } from './components/config/global-config-list/global-config-list.component';\nimport { GlobalConfigTabsComponent } from './components/config/global-config-tabs/global-config-tabs.component';\nimport { ContactUsListComponent } from './components/contact-us/contact-us-list/contact-us-list.component';\nimport { ContactUsTabsComponent } from './components/contact-us/contact-us-tabs/contact-us-tabs.component';\nimport { CredentialsDetailsComponent } from './components/credentials/credentials-details/credentials-details.component';\nimport { CredentialsTabComponent } from './components/credentials/credentials-tab/credentials-tab.component';\nimport { CredentialsComponent } from './components/credentials/credentials/credentials.component';\nimport { SubscriptionCredentialsDetailsComponent } from './components/credentials/subscription-credentials-details/subscription-credentials-details.component';\nimport { SubscriptionCredentialsComponent } from './components/credentials/subscription-credentials/subscription-credentials.component';\nimport { DomainConfigDetailsComponent } from './components/domain-config/domain-config-details/domain-config-details.component';\nimport { DomainConfigListComponent } from './components/domain-config/domain-config-list/domain-config-list.component';\nimport { DomainConfigTabsComponent } from './components/domain-config/domain-config-tabs/domain-config-tabs.component';\nimport { FaqListComponent } from './components/faqs/faqs-list/faqs-list.component';\nimport { FaqTabsComponent } from './components/faqs/faqs-tabs/faqs-tabs.component';\nimport { FeedbackQuestionsDetailsComponent } from './components/feedback-questions/feedback-questions-details/feedback-questions-details.component';\nimport { FeedbackQuestionsListComponent } from './components/feedback-questions/feedback-questions-list/feedback-questions-list.component';\nimport { GenericInsightComponent } from './components/generic/generic-insight/generic-insight.component';\nimport { GenericMiscComponent } from './components/generic/generic-misc/generic-misc.component';\nimport { GeneralTabsComponent } from './components/generic/generic-tabs/generic-tabs.component';\nimport { LoginNotificationDetailsComponent } from './components/login-notifications/login-notification-details/login-notification-details.component';\nimport { LoginNotificationTabsComponent } from './components/login-notifications/login-notification-tabs/login-notification-tabs.component';\nimport { LoginNotificationsListComponent } from './components/login-notifications/login-notifications-list/login-notifications-list.component';\nimport { NewsletterDetailsComponent } from './components/newsletters/newsletter-details/newsletter-details.component';\nimport { NewsletterItemDetailsComponent } from './components/newsletters/newsletter-item-details/newsletter-item-details.component';\nimport { NewsletterUsersListComponent } from './components/newsletters/newsletter-users-list/newsletter-users-list.component';\nimport { NewsletterInsightComponent } from './components/newsletters/newsletters-insight/newsletters-insight.component';\nimport { NewslettersItemsComponent } from './components/newsletters/newsletters-items/newsletters-items.component';\nimport { NewslettersListComponent } from './components/newsletters/newsletters-list/newsletters-list.component';\nimport { NewsletterComponent } from './components/newsletters/newsletters-tabs/newsletters-tabs.component';\nimport { PermissionsDetailsComponent } from './components/permissions/permissions-details/permissions-details.component';\nimport { PermissionsListComponent } from './components/permissions/permissions-list/permissions-list.component';\nimport { PermissionsTabsComponent } from './components/permissions/permissions-tabs/permissions-tabs.component';\nimport { RoleDetailsComponent } from './components/permissions/role-details/role-details.component';\nimport { RolesListComponent } from './components/permissions/roles-list/roles-list.component';\nimport { ProductDetailsComponent } from './components/products/product-details/product-details.component';\nimport { ProductInsightComponent } from './components/products/products-insight/products-insight.component';\nimport { ProductsListComponent } from './components/products/products-list/products-list.component';\nimport { ProductsComponent } from './components/products/products-tabs/products-tabs.component';\nimport { UsersListForProductComponent } from './components/products/users-list-for-product/users-list-for-product.component';\nimport { AgentDetailsComponent } from './components/subscriptions/subscription-agents/subscription-agents.component';\nimport { SubscriptionDetailsComponent } from './components/subscriptions/subscription-details/subscription-details.component';\nimport { SubscriptionProductDetailsComponent } from './components/subscriptions/subscription-product-details/subscription-product-details.component';\nimport { SubscriptionInsightTabsComponent } from './components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component';\nimport { SubscriptionsListComponent } from './components/subscriptions/subscriptions-list/subscriptions-list.component';\nimport { SubscriptionComponent } from './components/subscriptions/subscriptions-tabs/subscriptions-tabs.component';\nimport { TagsCategoryComponent } from './components/tags/tags-category/tags-category.component';\nimport { TagsListComponent } from './components/tags/tags-list/tags-list.component';\nimport { TagsTabsComponent } from './components/tags/tags-tabs/tags-tabs.component';\nimport { TipComponent } from './components/tips/tip-detail/tip-detail.component';\nimport { TipsComponent } from './components/tips/tips-list/tips-list.component';\nimport { TipsTabsComponent } from './components/tips/tips-tabs/tips-tabs.component';\nimport { AhoyEventsComponent } from './components/tracking/ahoy-events/ahoy-events.component';\nimport { AhoyMessagesComponent } from './components/tracking/ahoy-messages/ahoy-messages.component';\nimport { AhoyVisitsComponent } from './components/tracking/ahoy-visits/ahoy-visits.component';\nimport { EventsComponent } from './components/tracking/events/events.component';\nimport { TrackingComponent } from './components/tracking/tracking-tabs/tracking-tabs.component';\nimport { VersionsComponent } from './components/tracking/versions/versions.component';\nimport { UserDetailsComponent } from './components/users/user-details/user-details.component';\nimport { UserInsightComponent } from './components/users/users-insight/users-insight.component';\nimport { UserListComponent } from './components/users/users-list/users-list.component';\nimport { UserTabComponent } from './components/users/users-tabs/users-tabs.component';\nimport { PageAccessGuard } from '@posiwise/core-guards';\n\nconst routes: Routes = [\n {\n path: '',\n canLoad: [PageAccessGuard],\n data: { permission: 'Pages.Admin' },\n canActivateChild: [PageAccessGuard],\n children: [\n {\n path: 'generic',\n component: GeneralTabsComponent,\n data: {\n title: 'Generic',\n permission: 'Pages.Admin'\n },\n children: [\n {\n path: '',\n redirectTo: 'misc',\n pathMatch: 'full'\n },\n {\n path: 'misc',\n component: GenericMiscComponent\n },\n {\n path: 'insight',\n component: GenericInsightComponent\n }\n ]\n },\n {\n path: 'tips',\n component: TipsTabsComponent,\n data: {\n title: 'Tips',\n permission: 'Pages.Admin'\n },\n children: [\n {\n path: '',\n redirectTo: 'misc',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: TipsComponent\n }\n ]\n },\n {\n path: 'tips/:id',\n component: TipComponent,\n data: {\n title: 'Tip',\n permission: 'Pages.Admin'\n }\n },\n {\n path: 'tips/add',\n component: TipComponent,\n data: {\n title: 'Tip',\n permission: 'Pages.Admin'\n }\n },\n {\n path: 'faq',\n component: FaqTabsComponent,\n data: {\n title: 'General',\n permission: 'Pages.Admin.FAQ'\n },\n children: [\n {\n path: 'list',\n component: FaqListComponent\n }\n ]\n },\n {\n path: 'contact-us',\n component: ContactUsTabsComponent,\n data: {\n title: 'General',\n permission: 'Pages.Admin.ContactUs'\n },\n children: [\n {\n path: 'list',\n component: ContactUsListComponent\n }\n ]\n },\n {\n path: 'domain-config',\n component: DomainConfigTabsComponent,\n data: {\n title: 'DomainConfig',\n permission: 'Pages.Admin.DomainConfig'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: DomainConfigListComponent\n }\n ]\n },\n {\n path: 'domain-config-details/add',\n component: DomainConfigDetailsComponent,\n data: {\n title: 'DomainConfig',\n permission: 'Pages.Admin.DomainConfig'\n }\n },\n {\n path: 'domain-config-details/:id',\n component: DomainConfigDetailsComponent,\n data: {\n title: 'DomainConfig',\n permission: 'Pages.Admin.DomainConfig'\n }\n },\n {\n path: 'login-notifications',\n component: LoginNotificationTabsComponent,\n data: {\n title: 'Login Notifications',\n permission: 'Pages.Admin.LoginNotification'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: LoginNotificationsListComponent\n }\n ]\n },\n {\n path: 'login-notification-details/add',\n component: LoginNotificationDetailsComponent,\n data: {\n title: 'LoginNotification',\n permission: 'Pages.Admin.LoginNotification'\n }\n },\n {\n path: 'login-notification-details/:id',\n component: LoginNotificationDetailsComponent,\n data: {\n title: 'LoginNotification',\n permission: 'Pages.Admin.LoginNotification'\n }\n },\n {\n path: 'newsletter',\n component: NewsletterComponent,\n data: {\n title: 'Newsletter',\n permission: 'Pages.Admin.Newsletter'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: NewslettersListComponent\n },\n {\n path: 'items',\n component: NewslettersItemsComponent\n },\n {\n path: 'items/users-list/:id',\n component: NewsletterUsersListComponent\n },\n {\n path: 'insight',\n component: NewsletterInsightComponent\n }\n ]\n },\n {\n path: 'newsletter-details/:id',\n component: NewsletterDetailsComponent,\n data: {\n title: 'Newsletter',\n permission: 'Pages.Admin.Newsletter'\n }\n },\n {\n path: 'newsletter-details/add',\n component: NewsletterDetailsComponent,\n data: {\n title: 'Newsletter',\n permission: 'Pages.Admin.Newsletter'\n }\n },\n {\n path: 'newsletter-item/:id',\n component: NewsletterItemDetailsComponent,\n data: {\n title: 'Newsletter Item',\n permission: 'Pages.Admin.Newsletter'\n }\n },\n {\n path: 'newsletter-item/add',\n component: NewsletterItemDetailsComponent,\n data: {\n title: 'Newsletter Item',\n permission: 'Pages.Admin.Newsletter'\n }\n },\n {\n path: 'subscriptions',\n component: SubscriptionComponent,\n data: {\n title: 'Subscription',\n permission: 'Pages.Admin.Subscription'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: SubscriptionsListComponent\n },\n {\n path: 'insight',\n component: SubscriptionInsightTabsComponent\n }\n ]\n },\n {\n path: 'users',\n component: UserTabComponent,\n data: {\n title: 'Users Management',\n permission: 'Pages.Admin.Users'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: UserListComponent\n },\n {\n path: 'insight',\n component: UserInsightComponent\n }\n ]\n },\n {\n path: 'user-details/:id',\n component: UserDetailsComponent,\n data: {\n title: 'User Management',\n permission: 'Pages.Admin.Users'\n }\n },\n {\n path: 'user-details/add',\n component: UserDetailsComponent,\n data: {\n title: 'User Management',\n permission: 'Pages.Admin.Users'\n }\n },\n {\n path: 'subscription-product-details/:id',\n component: SubscriptionProductDetailsComponent,\n data: {\n title: 'Subscription',\n permission: 'Pages.Admin.Subscription'\n }\n },\n {\n path: 'subscription/:id',\n component: SubscriptionDetailsComponent,\n data: {\n title: 'Subscription',\n permission: 'Pages.Admin.Subscription'\n }\n },\n {\n path: 'subscription/:id/agent_details/:agent_id',\n component: AgentDetailsComponent,\n data: {\n title: 'Subscription',\n permission: 'Pages.Admin.Subscription'\n }\n },\n {\n path: 'products',\n component: ProductsComponent,\n data: {\n title: 'Product Management',\n permission: 'Pages.Admin.Product'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: ProductsListComponent\n },\n {\n path: 'insight',\n component: ProductInsightComponent\n },\n {\n path: 'list/users/:id',\n component: UsersListForProductComponent,\n data: {\n title: 'Product Management',\n permission: 'Pages.Admin.Product'\n }\n },\n {\n path: 'list/product-details/:id',\n component: ProductDetailsComponent,\n data: {\n title: 'Product Management',\n permission: 'Pages.Admin.Product'\n }\n },\n {\n path: 'list/product-details/add',\n component: ProductDetailsComponent,\n data: {\n title: 'Product Management',\n permission: 'Pages.Admin.Product'\n }\n },\n {\n path: 'list/feedback-questions-list',\n component: FeedbackQuestionsListComponent,\n data: {\n title: 'FeedbackQuestions',\n permission: 'Pages.Admin.FeedbackQuestions'\n }\n },\n {\n path: 'list/feedback-questions-details/add',\n component: FeedbackQuestionsDetailsComponent,\n data: {\n title: 'FeedbackQuestions',\n permission: 'Pages.Admin.FeedbackQuestions'\n }\n },\n {\n path: 'list/feedback-questions-details/:id',\n component: FeedbackQuestionsDetailsComponent,\n data: {\n title: 'FeedbackQuestions',\n permission: 'Pages.Admin.FeedbackQuestions'\n }\n }\n ]\n },\n\n {\n path: 'tags',\n component: TagsTabsComponent,\n data: {\n title: 'Tag Management',\n permission: 'Pages.Admin.Tags'\n },\n children: [\n {\n path: '',\n redirectTo: 'categories',\n pathMatch: 'full'\n },\n {\n path: 'categories',\n component: TagsCategoryComponent\n },\n {\n path: 'list',\n component: TagsListComponent\n }\n ]\n },\n {\n path: 'details',\n component: UserDetailsComponent,\n data: {\n permission: 'Pages.Admin.Users'\n }\n },\n {\n path: 'permissions',\n component: PermissionsTabsComponent,\n data: {\n title: 'Permissions',\n permission: 'Pages.Admin.Roles'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: PermissionsListComponent\n },\n {\n path: 'roles-list',\n component: RolesListComponent\n }\n ]\n },\n {\n path: 'permissions-details/:id',\n component: PermissionsDetailsComponent,\n data: {\n title: 'Permissions',\n permission: 'Pages.Admin.Roles'\n }\n },\n {\n path: 'permissions-details/add',\n component: PermissionsDetailsComponent,\n data: {\n title: 'Permissions',\n permission: 'Pages.Admin.Roles'\n }\n },\n {\n path: 'role-details/:id',\n component: RoleDetailsComponent,\n data: {\n title: 'Role Management',\n permission: 'Pages.Admin.Roles'\n }\n },\n {\n path: 'role-details/add',\n component: RoleDetailsComponent,\n data: {\n title: 'Role Management',\n permission: 'Pages.Admin.Roles'\n }\n },\n {\n path: 'tos',\n component: TermsOfServiceTabsComponent,\n data: {\n title: 'Tos',\n permission: 'Pages.Admin.Tos'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: TermsOfServiceComponent\n }\n ]\n },\n {\n path: 'tos-details/:id',\n component: TermsOfServiceDetailsComponent,\n data: {\n title: 'Tos',\n permission: 'Pages.Admin.Tos'\n }\n },\n {\n path: 'tos-details/add',\n component: TermsOfServiceDetailsComponent,\n data: {\n title: 'Tos',\n permission: 'Pages.Admin.Tos'\n }\n },\n {\n path: 'credentials',\n component: CredentialsTabComponent,\n data: {\n title: 'Credential Management',\n permission: 'Pages.Admin.Credential'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: CredentialsComponent\n },\n {\n path: 'subscription-credentials',\n component: SubscriptionCredentialsComponent\n }\n ]\n },\n {\n path: 'credentials-details/:id',\n component: CredentialsDetailsComponent,\n data: {\n title: 'Credential Management',\n permission: 'Pages.Admin.Credential'\n }\n },\n {\n path: 'credentials-details/add',\n component: CredentialsDetailsComponent,\n data: {\n title: 'Product Management',\n permission: 'Pages.Admin.Credential'\n }\n },\n {\n path: 'subscription-credentials-details/:id',\n component: SubscriptionCredentialsDetailsComponent,\n data: {\n title: 'Credential Management',\n permission: 'Pages.Admin.Credential'\n }\n },\n {\n path: 'subscription-credentials-details/add',\n component: SubscriptionCredentialsDetailsComponent,\n data: {\n title: 'Product Management',\n permission: 'Pages.Admin.Credential'\n }\n },\n {\n path: 'tracking',\n component: TrackingComponent,\n data: {\n title: 'Tracking',\n permission: 'Pages.Admin.Tracking'\n },\n children: [\n {\n path: '',\n redirectTo: 'ahoy-events',\n pathMatch: 'full'\n },\n {\n path: 'ahoy-events',\n component: AhoyEventsComponent\n },\n {\n path: 'ahoy-messages',\n component: AhoyMessagesComponent\n },\n {\n path: 'ahoy-visits',\n component: AhoyVisitsComponent\n },\n {\n path: 'events',\n component: EventsComponent\n },\n {\n path: 'versions',\n component: VersionsComponent\n }\n ]\n },\n {\n path: 'global-config',\n component: GlobalConfigTabsComponent,\n data: {\n title: 'Global config',\n permission: 'Pages.Admin.Global-Config'\n },\n children: [\n {\n path: '',\n redirectTo: 'list',\n pathMatch: 'full'\n },\n {\n path: 'list',\n component: GlobalConfigListComponent\n },\n {\n path: 'details/add',\n component: GlobalConfigDetailsComponent\n },\n {\n path: 'details/:id',\n component: GlobalConfigDetailsComponent\n }\n ]\n }\n ]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AdminRoutingModule {}\n","import { CommonModule, NgIf } from '@angular/common';\nimport { DatePipe } from '@angular/common';\n\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { GooglePlaceModule } from 'ngx-google-places-autocomplete';\nimport { QuillModule } from 'ngx-quill';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TableModule } from 'primeng/table';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { AccordionModule } from 'primeng/accordion';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { CalendarModule } from 'primeng/calendar';\nimport { PlotlyViaCDNModule } from 'angular-plotly.js';\n\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\n\nimport { AdminRoutingModule } from './admin-module.routing';\nimport { AdminService } from './admin.service';\nimport { TermsOfServiceDetailsComponent } from './components/TOS/terms-of-service-details/terms-of-service-details.component';\nimport { TermsOfServiceTabsComponent } from './components/TOS/terms-of-service-tabs/terms-of-service-tabs.component';\nimport { TermsOfServiceComponent } from './components/TOS/terms-of-service/terms-of-service.component';\nimport { GlobalConfigDetailsComponent } from './components/config/global-config-details/global-config-details.component';\nimport { GlobalConfigListComponent } from './components/config/global-config-list/global-config-list.component';\nimport { GlobalConfigTabsComponent } from './components/config/global-config-tabs/global-config-tabs.component';\nimport { ContactUsListComponent } from './components/contact-us/contact-us-list/contact-us-list.component';\nimport { ContactUsTabsComponent } from './components/contact-us/contact-us-tabs/contact-us-tabs.component';\nimport { CredentialsDetailsComponent } from './components/credentials/credentials-details/credentials-details.component';\nimport { CredentialsTabComponent } from './components/credentials/credentials-tab/credentials-tab.component';\nimport { CredentialsComponent } from './components/credentials/credentials/credentials.component';\nimport { SubscriptionCredentialsDetailsComponent } from './components/credentials/subscription-credentials-details/subscription-credentials-details.component';\nimport { SubscriptionCredentialsComponent } from './components/credentials/subscription-credentials/subscription-credentials.component';\nimport { DomainConfigBuildComponent } from './components/domain-config/domain-config-details/domain-config-build/domain-config-build.component';\nimport { DomainConfigCoreComponent } from './components/domain-config/domain-config-details/domain-config-core/domain-config-core.component';\nimport { DomainConfigDetailsComponent } from './components/domain-config/domain-config-details/domain-config-details.component';\nimport { DomainConfigIntegrationsComponent } from './components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component';\nimport { DomainConfigInterfaceComponent } from './components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component';\nimport { DomainConfigOrganizationComponent } from './components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component';\nimport { DomainConfigSecurityComponent } from './components/domain-config/domain-config-details/domain-config-security/domain-config-security.component';\nimport { DomainConfigSocialComponent } from './components/domain-config/domain-config-details/domain-config-social/domain-config-social.component';\nimport { DomainConfigListComponent } from './components/domain-config/domain-config-list/domain-config-list.component';\nimport { DomainConfigTabsComponent } from './components/domain-config/domain-config-tabs/domain-config-tabs.component';\nimport { FaqListComponent } from './components/faqs/faqs-list/faqs-list.component';\nimport { FaqTabsComponent } from './components/faqs/faqs-tabs/faqs-tabs.component';\nimport { FeedbackQuestionsDetailsComponent } from './components/feedback-questions/feedback-questions-details/feedback-questions-details.component';\nimport { FeedbackQuestionsListComponent } from './components/feedback-questions/feedback-questions-list/feedback-questions-list.component';\nimport { GenericInsightComponent } from './components/generic/generic-insight/generic-insight.component';\nimport { GenericMiscComponent } from './components/generic/generic-misc/generic-misc.component';\nimport { GeneralTabsComponent } from './components/generic/generic-tabs/generic-tabs.component';\nimport { LoginNotificationDetailsComponent } from './components/login-notifications/login-notification-details/login-notification-details.component';\nimport { LoginNotificationTabsComponent } from './components/login-notifications/login-notification-tabs/login-notification-tabs.component';\nimport { LoginNotificationsListComponent } from './components/login-notifications/login-notifications-list/login-notifications-list.component';\nimport { NewsletterDetailsComponent } from './components/newsletters/newsletter-details/newsletter-details.component';\nimport { NewsletterItemDetailsComponent } from './components/newsletters/newsletter-item-details/newsletter-item-details.component';\nimport { NewsletterUsersListComponent } from './components/newsletters/newsletter-users-list/newsletter-users-list.component';\nimport { NewsletterInsightComponent } from './components/newsletters/newsletters-insight/newsletters-insight.component';\nimport { NewslettersItemsComponent } from './components/newsletters/newsletters-items/newsletters-items.component';\nimport { NewslettersListComponent } from './components/newsletters/newsletters-list/newsletters-list.component';\nimport { NewsletterComponent } from './components/newsletters/newsletters-tabs/newsletters-tabs.component';\nimport { PermissionsDetailsComponent } from './components/permissions/permissions-details/permissions-details.component';\nimport { PermissionsListComponent } from './components/permissions/permissions-list/permissions-list.component';\nimport { PermissionsTabsComponent } from './components/permissions/permissions-tabs/permissions-tabs.component';\nimport { RoleDetailsComponent } from './components/permissions/role-details/role-details.component';\nimport { RolesListComponent } from './components/permissions/roles-list/roles-list.component';\nimport { ProductDetailsComponent } from './components/products/product-details/product-details.component';\nimport { ProductInsightComponent } from './components/products/products-insight/products-insight.component';\nimport { ProductsListComponent } from './components/products/products-list/products-list.component';\nimport { ProductsComponent } from './components/products/products-tabs/products-tabs.component';\nimport { UsersListForProductComponent } from './components/products/users-list-for-product/users-list-for-product.component';\nimport { SubscriptionAgentsListComponent } from './components/subscriptions/subscription-agents-list/subscription-agents-list.component';\nimport { AgentDetailsComponent } from './components/subscriptions/subscription-agents/subscription-agents.component';\nimport { SubscriptionDetailsComponent } from './components/subscriptions/subscription-details/subscription-details.component';\nimport { SubscriptionProductDetailsComponent } from './components/subscriptions/subscription-product-details/subscription-product-details.component';\nimport { SubscriptionProductsComponent } from './components/subscriptions/subscription-products/subscription-products.component';\nimport { SubscriptionUsersComponent } from './components/subscriptions/subscription-users/subscription-users.component';\nimport { SubscriptionInsightNpsComponent } from './components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component';\nimport { SubscriptionInsightRevenueComponent } from './components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component';\nimport { SubscriptionInsightTabsComponent } from './components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component';\nimport { InsightComponent } from './components/subscriptions/subscriptions-insight/subscriptions-insight.component';\nimport { SubscriptionsListComponent } from './components/subscriptions/subscriptions-list/subscriptions-list.component';\nimport { SubscriptionComponent } from './components/subscriptions/subscriptions-tabs/subscriptions-tabs.component';\nimport { TagsCategoryComponent } from './components/tags/tags-category/tags-category.component';\nimport { TagsListComponent } from './components/tags/tags-list/tags-list.component';\nimport { TagsTabsComponent } from './components/tags/tags-tabs/tags-tabs.component';\nimport { TipComponent } from './components/tips/tip-detail/tip-detail.component';\nimport { TipsComponent } from './components/tips/tips-list/tips-list.component';\nimport { TipsTabsComponent } from './components/tips/tips-tabs/tips-tabs.component';\nimport { AhoyEventsComponent } from './components/tracking/ahoy-events/ahoy-events.component';\nimport { AhoyMessagesComponent } from './components/tracking/ahoy-messages/ahoy-messages.component';\nimport { AhoyVisitsComponent } from './components/tracking/ahoy-visits/ahoy-visits.component';\nimport { EventsComponent } from './components/tracking/events/events.component';\nimport { TrackingComponent } from './components/tracking/tracking-tabs/tracking-tabs.component';\nimport { VersionsComponent } from './components/tracking/versions/versions.component';\nimport { UserDetailsComponent } from './components/users/user-details/user-details.component';\nimport { UserInsightComponent } from './components/users/users-insight/users-insight.component';\nimport { UserListComponent } from './components/users/users-list/users-list.component';\nimport { UserTabComponent } from './components/users/users-tabs/users-tabs.component';\nimport { SharedComponentsModule } from '@posiwise/shared-components';\nimport { InputTextModule } from 'primeng/inputtext';\n\n// import { LazyLoadModules } from '@app/shared/lazy-load.module';\nimport { SubscriptionService } from '@posiwise/common-services';\nimport { PipesModule } from '@posiwise/pipes';\nimport { QuillHelper } from '@posiwise/utils';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\n\n// import { SharedModule } from '@app/shared/shared.module';\n\nQuillHelper.init();\n\nconst primeNgModules = [\n TableModule,\n TooltipModule,\n AccordionModule,\n AutoCompleteModule,\n DropdownModule,\n MultiSelectModule,\n InputTextModule\n];\n\n@NgModule({\n declarations: [\n UserTabComponent,\n SubscriptionComponent,\n NewsletterComponent,\n FaqListComponent,\n DomainConfigListComponent,\n DomainConfigDetailsComponent,\n DomainConfigBuildComponent,\n DomainConfigCoreComponent,\n DomainConfigOrganizationComponent,\n DomainConfigSecurityComponent,\n DomainConfigSocialComponent,\n DomainConfigIntegrationsComponent,\n DomainConfigInterfaceComponent,\n DomainConfigTabsComponent,\n LoginNotificationTabsComponent,\n LoginNotificationsListComponent,\n LoginNotificationDetailsComponent,\n FeedbackQuestionsListComponent,\n FeedbackQuestionsDetailsComponent,\n UserDetailsComponent,\n ProductsComponent,\n SubscriptionDetailsComponent,\n NewsletterDetailsComponent,\n NewsletterItemDetailsComponent,\n ProductDetailsComponent,\n // RoleManagementComponent,\n RoleDetailsComponent,\n TagsTabsComponent,\n TipComponent,\n TipsComponent,\n AgentDetailsComponent,\n UserListComponent,\n RolesListComponent,\n SubscriptionsListComponent,\n SubscriptionProductDetailsComponent,\n InsightComponent,\n SubscriptionInsightNpsComponent,\n SubscriptionInsightRevenueComponent,\n ProductsListComponent,\n ProductInsightComponent,\n NewslettersListComponent,\n NewslettersItemsComponent,\n NewsletterInsightComponent,\n UserInsightComponent,\n TagsCategoryComponent,\n TagsListComponent,\n TipsTabsComponent,\n GenericMiscComponent,\n GenericInsightComponent,\n FaqTabsComponent,\n ContactUsTabsComponent,\n GeneralTabsComponent,\n PermissionsListComponent,\n PermissionsDetailsComponent,\n PermissionsTabsComponent,\n TermsOfServiceComponent,\n TermsOfServiceTabsComponent,\n TermsOfServiceDetailsComponent,\n CredentialsComponent,\n SubscriptionCredentialsComponent,\n SubscriptionCredentialsDetailsComponent,\n CredentialsDetailsComponent,\n CredentialsTabComponent,\n AhoyEventsComponent,\n TrackingComponent,\n AhoyMessagesComponent,\n AhoyVisitsComponent,\n EventsComponent,\n VersionsComponent,\n UsersListForProductComponent,\n NewsletterUsersListComponent,\n GlobalConfigListComponent,\n GlobalConfigDetailsComponent,\n GlobalConfigTabsComponent,\n SubscriptionProductsComponent,\n SubscriptionUsersComponent,\n SubscriptionAgentsListComponent,\n SubscriptionInsightTabsComponent,\n ContactUsListComponent\n ],\n imports: [\n ...primeNgModules,\n NgxJsonViewerModule,\n CalendarModule,\n PlotlyViaCDNModule,\n CommonModule,\n UiSwitchModule,\n SharedComponentsModule,\n GooglePlaceModule,\n CoreTranslocoModule,\n PipesModule,\n DirectivesModule,\n // SharedModule,\n AdminRoutingModule,\n NgbModule,\n FormsModule,\n ReactiveFormsModule,\n // LazyLoadModules,\n QuillModule.forRoot({\n modules: {\n imageResize: {\n displaySize: true\n }\n }\n })\n ],\n // exports: [\n // ...primeNgModules\n // ],\n providers: [AdminService, DatePipe, SubscriptionService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class AdminModule {}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanLoad,\n Route,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { catchError, concatMap, map, take } from 'rxjs/operators';\n\nimport { PermissionService, UserService } from '@posiwise/common-services';\n\n@Injectable()\nexport class AdminGuardService implements CanLoad, CanActivate {\n constructor(\n private userService: UserService,\n private router: Router,\n private permissionService: PermissionService\n ) {}\n\n canLoad(route: Route): Observable<boolean> | boolean {\n return this.userService.getUserInfo().pipe(\n take(1),\n concatMap(user => {\n this.permissionService.user = user;\n if (route.data && this.permissionService.isGranted(route.data['permission'])) {\n return of(true);\n }\n this.router.navigate(['notfound']);\n\n return of(false);\n })\n );\n }\n\n canActivate(\n _route: ActivatedRouteSnapshot,\n _state: RouterStateSnapshot\n ): Observable<boolean> | Promise<boolean> | boolean {\n return this.userService.getUserState().pipe(\n map(_ => {\n if (this.permissionService.isSuperAdmin()) {\n return true;\n }\n this.router.navigate(['/notfound']);\n\n return false;\n }),\n catchError(() => {\n // this.router.navigate(['/login']);\n window.location.href = '/login';\n\n return of(false);\n })\n );\n }\n}\n","// Admin\nexport * from './lib/admin.module';\nexport * from './lib/admin.service';\nexport * from './lib/admin-guard.service';\nexport * from './lib/admin-module.routing';\n\n// components\nexport * from './lib/components/TOS/terms-of-service-details/terms-of-service-details.component';\nexport * from './lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component';\nexport * from './lib/components/TOS/terms-of-service/terms-of-service.component';\nexport * from './lib/components/config/global-config-details/global-config-details.component';\nexport * from './lib/components/config/global-config-list/global-config-list.component';\nexport * from './lib/components/config/global-config-tabs/global-config-tabs.component';\nexport * from './lib/components/contact-us/contact-us-list/contact-us-list.component';\nexport * from './lib/components/contact-us/contact-us-tabs/contact-us-tabs.component';\nexport * from './lib/components/credentials/credentials-details/credentials-details.component';\nexport * from './lib/components/credentials/credentials-tab/credentials-tab.component';\nexport * from './lib/components/credentials/credentials/credentials.component';\nexport * from './lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component';\nexport * from './lib/components/credentials/subscription-credentials/subscription-credentials.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-details.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component';\nexport * from './lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component';\nexport * from './lib/components/domain-config/domain-config-list/domain-config-list.component';\nexport * from './lib/components/domain-config/domain-config-tabs/domain-config-tabs.component';\nexport * from './lib/components/faqs/faqs-list/faqs-list.component';\nexport * from './lib/components/faqs/faqs-tabs/faqs-tabs.component';\nexport * from './lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component';\nexport * from './lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component';\nexport * from './lib/components/generic/generic-insight/generic-insight.component';\nexport * from './lib/components/generic/generic-misc/generic-misc.component';\nexport * from './lib/components/generic/generic-tabs/generic-tabs.component';\nexport * from './lib/components/login-notifications/login-notification-details/login-notification-details.component';\nexport * from './lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component';\nexport * from './lib/components/login-notifications/login-notifications-list/login-notifications-list.component';\nexport * from './lib/components/newsletters/newsletter-details/newsletter-details.component';\nexport * from './lib/components/newsletters/newsletter-item-details/newsletter-item-details.component';\nexport * from './lib/components/newsletters/newsletter-users-list/newsletter-users-list.component';\nexport * from './lib/components/newsletters/newsletters-insight/newsletters-insight.component';\nexport * from './lib/components/newsletters/newsletters-items/newsletters-items.component';\nexport * from './lib/components/newsletters/newsletters-list/newsletters-list.component';\nexport * from './lib/components/newsletters/newsletters-tabs/newsletters-tabs.component';\nexport * from './lib/components/permissions/permissions-details/permissions-details.component';\nexport * from './lib/components/permissions/permissions-list/permissions-list.component';\nexport * from './lib/components/permissions/permissions-tabs/permissions-tabs.component';\nexport * from './lib/components/permissions/role-details/role-details.component';\nexport * from './lib/components/permissions/roles-list/roles-list.component';\nexport * from './lib/components/products/product-details/product-details.component';\nexport * from './lib/components/products/products-insight/products-insight.component';\nexport * from './lib/components/products/products-list/products-list.component';\nexport * from './lib/components/products/products-tabs/products-tabs.component';\nexport * from './lib/components/products/users-list-for-product/users-list-for-product.component';\nexport * from './lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component';\nexport * from './lib/components/subscriptions/subscription-agents/subscription-agents.component';\nexport * from './lib/components/subscriptions/subscription-details/subscription-details.component';\nexport * from './lib/components/subscriptions/subscription-product-details/subscription-product-details.component';\nexport * from './lib/components/subscriptions/subscription-products/subscription-products.component';\nexport * from './lib/components/subscriptions/subscription-users/subscription-users.component';\nexport * from './lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component';\nexport * from './lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component';\nexport * from './lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component';\nexport * from './lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component';\nexport * from './lib/components/subscriptions/subscriptions-list/subscriptions-list.component';\nexport * from './lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component';\nexport * from './lib/components/tags/tags-category/tags-category.component';\nexport * from './lib/components/tags/tags-list/tags-list.component';\nexport * from './lib/components/tags/tags-tabs/tags-tabs.component';\nexport * from './lib/components/tips/tip-detail/tip-detail.component';\nexport * from './lib/components/tips/tips-list/tips-list.component';\nexport * from './lib/components/tips/tips-tabs/tips-tabs.component';\nexport * from './lib/components/tracking/ahoy-events/ahoy-events.component';\nexport * from './lib/components/tracking/ahoy-messages/ahoy-messages.component';\nexport * from './lib/components/tracking/ahoy-visits/ahoy-visits.component';\nexport * from './lib/components/tracking/events/events.component';\nexport * from './lib/components/tracking/tracking-tabs/tracking-tabs.component';\nexport * from './lib/components/tracking/versions/versions.component';\nexport * from './lib/components/users/user-details/user-details.component';\nexport * from './lib/components/users/users-insight/users-insight.component';\nexport * from './lib/components/users/users-list/users-list.component';\nexport * from './lib/components/users/users-tabs/users-tabs.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AdminService","i4","i5","i7","i1","i2","i3","i6","i8","i9","i10","i11","i12","i4.DomainConfigBuildComponent","i5.DomainConfigCoreComponent","i6.DomainConfigOrganizationComponent","i7.DomainConfigSecurityComponent","i8.DomainConfigSocialComponent","i9.DomainConfigIntegrationsComponent","i10.DomainConfigInterfaceComponent","i2.AdminService","i13","i14","i15","i16","i17","i18","i19","i3.AdminService","i11.SubscriptionProductsComponent","i12.SubscriptionUsersComponent","i13.SubscriptionAgentsListComponent","i2.InsightComponent","i3.SubscriptionInsightNpsComponent","i4.SubscriptionInsightRevenueComponent"],"mappings":"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"}