@posiwise/admin-module 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/assets/scss/_bootstrap_modules.scss +40 -0
- package/assets/scss/_custom-bootstrap.scss +13 -0
- package/assets/scss/_dashboard.scss +31 -0
- package/assets/scss/_dynamic-styles.scss +534 -0
- package/assets/scss/_plugins.scss +3 -0
- package/assets/scss/_public-pages.scss +7 -0
- package/assets/scss/_shared.scss +3 -0
- package/assets/scss/_variables.scss +5 -0
- package/assets/scss/common/landing-page-a/landing-page-style-1.scss +670 -0
- package/assets/scss/common/landing-page-b/banner.scss +141 -0
- package/assets/scss/common/landing-page-b/contact-us.scss +167 -0
- package/assets/scss/common/landing-page-b/explainer.scss +75 -0
- package/assets/scss/common/landing-page-b/explainer2.scss +35 -0
- package/assets/scss/common/landing-page-b/header.scss +56 -0
- package/assets/scss/common/landing-page-b/landing-page-style-2.scss +20 -0
- package/assets/scss/custom-bootstrap/_badge.scss +468 -0
- package/assets/scss/custom-bootstrap/_bootstrap_variables.scss +30 -0
- package/assets/scss/custom-bootstrap/_buttons.scss +84 -0
- package/assets/scss/custom-bootstrap/_card.scss +319 -0
- package/assets/scss/custom-bootstrap/_carousel.scss +6 -0
- package/assets/scss/custom-bootstrap/_form_select.scss +7 -0
- package/assets/scss/custom-bootstrap/_forms.scss +337 -0
- package/assets/scss/custom-bootstrap/_links.scss +7 -0
- package/assets/scss/custom-bootstrap/_modal.scss +16 -0
- package/assets/scss/custom-bootstrap/_navbar.scss +42 -0
- package/assets/scss/custom-bootstrap/_popover.scss +10 -0
- package/assets/scss/custom-bootstrap/_progress.scss +12 -0
- package/assets/scss/custom-bootstrap/_reboot.scss +93 -0
- package/assets/scss/custom-bootstrap/_type.scss +202 -0
- package/assets/scss/dashboard/_admin.scss +15 -0
- package/assets/scss/dashboard/_animations.scss +20 -0
- package/assets/scss/dashboard/_bootstrap-social.scss +641 -0
- package/assets/scss/dashboard/_chat.scss +250 -0
- package/assets/scss/dashboard/_coming-soon.scss +34 -0
- package/assets/scss/dashboard/_components.scss +229 -0
- package/assets/scss/dashboard/_email.scss +184 -0
- package/assets/scss/dashboard/_fixed-navbar.scss +18 -0
- package/assets/scss/dashboard/_gallery.scss +1201 -0
- package/assets/scss/dashboard/_helper.scss +736 -0
- package/assets/scss/dashboard/_horizontal-timeline.scss +314 -0
- package/assets/scss/dashboard/_icons.scss +107 -0
- package/assets/scss/dashboard/_layout.scss +23 -0
- package/assets/scss/dashboard/_misc.scss +220 -0
- package/assets/scss/dashboard/_notifications.scss +27 -0
- package/assets/scss/dashboard/_palette.scss +308 -0
- package/assets/scss/dashboard/_profile.scss +36 -0
- package/assets/scss/dashboard/_responsive.scss +209 -0
- package/assets/scss/dashboard/_search.scss +33 -0
- package/assets/scss/dashboard/_select.scss +16 -0
- package/assets/scss/dashboard/_sidebar-content.scss +632 -0
- package/assets/scss/dashboard/_tables.scss +17 -0
- package/assets/scss/dashboard/_tabs.scss +151 -0
- package/assets/scss/dashboard/_ui-switch.scss +6 -0
- package/assets/scss/dashboard/_upload.scss +249 -0
- package/assets/scss/dashboard/_utilities.scss +105 -0
- package/assets/scss/dashboard/_vertical-timeline.scss +1261 -0
- package/assets/scss/dashboard/mixins/_buttons.scss +78 -0
- package/assets/scss/dashboard/mixins/_colors.scss +29 -0
- package/assets/scss/dashboard/mixins/_custom.scss +34 -0
- package/assets/scss/dashboard/mixins/_shadows.scss +62 -0
- package/assets/scss/dashboard/mixins/_type.scss +16 -0
- package/assets/scss/dashboard/mixins/_typography.scss +29 -0
- package/assets/scss/dashboard/mixins/_utilities.scss +129 -0
- package/assets/scss/dashboard/mixins/_vendor-prefixes.scss +71 -0
- package/assets/scss/plugins/_plugin-nouislider.scss +199 -0
- package/assets/scss/plugins/_toastr.scss +71 -0
- package/assets/scss/plugins/perfect-scrollbar/_main.scss +3 -0
- package/assets/scss/plugins/perfect-scrollbar/_mixins.scss +135 -0
- package/assets/scss/plugins/perfect-scrollbar/_ps-custom.scss +134 -0
- package/assets/scss/plugins/perfect-scrollbar/_themes.scss +23 -0
- package/assets/scss/plugins/perfect-scrollbar/_variables.scss +19 -0
- package/assets/scss/public-pages/_buttons.scss +136 -0
- package/assets/scss/public-pages/_input-fields.scss +29 -0
- package/assets/scss/public-pages/_layout.scss +108 -0
- package/assets/scss/public-pages/mixins/_buttons.scss +28 -0
- package/assets/scss/shared/_modal.scss +28 -0
- package/assets/scss/shared/_prime-ng-tables.scss +107 -0
- package/assets/scss/shared/_prime-ng.scss +5100 -0
- package/assets/scss/variables/_app-colors-variables.scss +760 -0
- package/assets/scss/variables/_branding-variables.scss +93 -0
- package/assets/scss/variables/_dashboard-variables.scss +96 -0
- package/assets/scss/variables/_generic-variables.scss +33 -0
- package/assets/scss/variables/_landing-page-new-variables.scss +11 -0
- package/assets/scss/variables/_primeng-variables.scss +190 -0
- package/esm2020/admin-module.mjs +5 -0
- package/esm2020/index.mjs +85 -0
- package/esm2020/lib/admin-guard.service.mjs +44 -0
- package/esm2020/lib/admin-module.routing.mjs +706 -0
- package/esm2020/lib/admin.module.mjs +328 -0
- package/esm2020/lib/admin.service.mjs +411 -0
- package/esm2020/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +86 -0
- package/esm2020/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +72 -0
- package/esm2020/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.mjs +26 -0
- package/esm2020/lib/components/config/global-config-details/global-config-details.component.mjs +61 -0
- package/esm2020/lib/components/config/global-config-list/global-config-list.component.mjs +86 -0
- package/esm2020/lib/components/config/global-config-tabs/global-config-tabs.component.mjs +24 -0
- package/esm2020/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +96 -0
- package/esm2020/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.mjs +24 -0
- package/esm2020/lib/components/credentials/credentials/credentials.component.mjs +81 -0
- package/esm2020/lib/components/credentials/credentials-details/credentials-details.component.mjs +70 -0
- package/esm2020/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +31 -0
- package/esm2020/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +87 -0
- package/esm2020/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +82 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +214 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +86 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +56 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +83 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +124 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +83 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +84 -0
- package/esm2020/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +83 -0
- package/esm2020/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +85 -0
- package/esm2020/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +24 -0
- package/esm2020/lib/components/faqs/faqs-list/faqs-list.component.mjs +289 -0
- package/esm2020/lib/components/faqs/faqs-tabs/faqs-tabs.component.mjs +24 -0
- package/esm2020/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +80 -0
- package/esm2020/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +95 -0
- package/esm2020/lib/components/generic/generic-insight/generic-insight.component.mjs +11 -0
- package/esm2020/lib/components/generic/generic-misc/generic-misc.component.mjs +73 -0
- package/esm2020/lib/components/generic/generic-tabs/generic-tabs.component.mjs +31 -0
- package/esm2020/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +97 -0
- package/esm2020/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.mjs +24 -0
- package/esm2020/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +88 -0
- package/esm2020/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +77 -0
- package/esm2020/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +236 -0
- package/esm2020/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +73 -0
- package/esm2020/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +30 -0
- package/esm2020/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +167 -0
- package/esm2020/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +97 -0
- package/esm2020/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +38 -0
- package/esm2020/lib/components/permissions/permissions-details/permissions-details.component.mjs +83 -0
- package/esm2020/lib/components/permissions/permissions-list/permissions-list.component.mjs +76 -0
- package/esm2020/lib/components/permissions/permissions-tabs/permissions-tabs.component.mjs +31 -0
- package/esm2020/lib/components/permissions/role-details/role-details.component.mjs +117 -0
- package/esm2020/lib/components/permissions/roles-list/roles-list.component.mjs +83 -0
- package/esm2020/lib/components/products/product-details/product-details.component.mjs +305 -0
- package/esm2020/lib/components/products/products-insight/products-insight.component.mjs +46 -0
- package/esm2020/lib/components/products/products-list/products-list.component.mjs +142 -0
- package/esm2020/lib/components/products/products-tabs/products-tabs.component.mjs +28 -0
- package/esm2020/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +55 -0
- package/esm2020/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +122 -0
- package/esm2020/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +125 -0
- package/esm2020/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +174 -0
- package/esm2020/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +210 -0
- package/esm2020/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +60 -0
- package/esm2020/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +98 -0
- package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +100 -0
- package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +48 -0
- package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.mjs +18 -0
- package/esm2020/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +48 -0
- package/esm2020/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +301 -0
- package/esm2020/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.mjs +35 -0
- package/esm2020/lib/components/tags/tags-category/tags-category.component.mjs +125 -0
- package/esm2020/lib/components/tags/tags-list/tags-list.component.mjs +139 -0
- package/esm2020/lib/components/tags/tags-tabs/tags-tabs.component.mjs +32 -0
- package/esm2020/lib/components/tips/tip-detail/tip-detail.component.mjs +75 -0
- package/esm2020/lib/components/tips/tips-list/tips-list.component.mjs +46 -0
- package/esm2020/lib/components/tips/tips-tabs/tips-tabs.component.mjs +25 -0
- package/esm2020/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +101 -0
- package/esm2020/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +93 -0
- package/esm2020/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +89 -0
- package/esm2020/lib/components/tracking/events/events.component.mjs +89 -0
- package/esm2020/lib/components/tracking/tracking-tabs/tracking-tabs.component.mjs +49 -0
- package/esm2020/lib/components/tracking/versions/versions.component.mjs +100 -0
- package/esm2020/lib/components/users/user-details/user-details.component.mjs +148 -0
- package/esm2020/lib/components/users/users-insight/users-insight.component.mjs +38 -0
- package/esm2020/lib/components/users/users-list/users-list.component.mjs +312 -0
- package/esm2020/lib/components/users/users-tabs/users-tabs.component.mjs +32 -0
- package/esm2020/lib/shared/interface/contact-us.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/credential.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/domain-config.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/feedback-question.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/global-config.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/login-notification.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/newsletter.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/permission.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/privacy-tos.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/tip.interface.mjs +2 -0
- package/esm2020/lib/shared/interface/tracking.interface.mjs +2 -0
- package/esm2020/lib/shared/models/admin.model.mjs +337 -0
- package/esm2020/lib/shared/routers/routers.mjs +27 -0
- package/fesm2015/admin-module.mjs +7762 -0
- package/fesm2015/admin-module.mjs.map +1 -0
- package/fesm2020/admin-module.mjs +7767 -0
- package/fesm2020/admin-module.mjs.map +1 -0
- package/index.d.ts +82 -0
- package/lib/admin-guard.service.d.ts +14 -0
- package/lib/admin-module.routing.d.ts +7 -0
- package/lib/admin.module.d.ts +98 -0
- package/lib/admin.service.d.ts +145 -0
- package/lib/components/TOS/terms-of-service/terms-of-service.component.d.ts +51 -0
- package/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.d.ts +24 -0
- package/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.d.ts +9 -0
- package/lib/components/config/global-config-details/global-config-details.component.d.ts +25 -0
- package/lib/components/config/global-config-list/global-config-list.component.d.ts +51 -0
- package/lib/components/config/global-config-tabs/global-config-tabs.component.d.ts +7 -0
- package/lib/components/contact-us/contact-us-list/contact-us-list.component.d.ts +28 -0
- package/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.d.ts +7 -0
- package/lib/components/credentials/credentials/credentials.component.d.ts +49 -0
- package/lib/components/credentials/credentials-details/credentials-details.component.d.ts +25 -0
- package/lib/components/credentials/credentials-tab/credentials-tab.component.d.ts +8 -0
- package/lib/components/credentials/subscription-credentials/subscription-credentials.component.d.ts +52 -0
- package/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.d.ts +28 -0
- package/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.d.ts +67 -0
- package/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.d.ts +49 -0
- package/lib/components/domain-config/domain-config-details/domain-config-details.component.d.ts +44 -0
- package/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.d.ts +49 -0
- package/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.d.ts +54 -0
- package/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.d.ts +49 -0
- package/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.d.ts +49 -0
- package/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.d.ts +49 -0
- package/lib/components/domain-config/domain-config-list/domain-config-list.component.d.ts +50 -0
- package/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.d.ts +7 -0
- package/lib/components/faqs/faqs-list/faqs-list.component.d.ts +63 -0
- package/lib/components/faqs/faqs-tabs/faqs-tabs.component.d.ts +7 -0
- package/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.d.ts +51 -0
- package/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.d.ts +56 -0
- package/lib/components/generic/generic-insight/generic-insight.component.d.ts +5 -0
- package/lib/components/generic/generic-misc/generic-misc.component.d.ts +16 -0
- package/lib/components/generic/generic-tabs/generic-tabs.component.d.ts +7 -0
- package/lib/components/login-notifications/login-notification-details/login-notification-details.component.d.ts +53 -0
- package/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.d.ts +7 -0
- package/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.d.ts +50 -0
- package/lib/components/newsletters/newsletter-details/newsletter-details.component.d.ts +49 -0
- package/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.d.ts +77 -0
- package/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.d.ts +26 -0
- package/lib/components/newsletters/newsletters-insight/newsletters-insight.component.d.ts +15 -0
- package/lib/components/newsletters/newsletters-items/newsletters-items.component.d.ts +69 -0
- package/lib/components/newsletters/newsletters-list/newsletters-list.component.d.ts +52 -0
- package/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.d.ts +9 -0
- package/lib/components/permissions/permissions-details/permissions-details.component.d.ts +51 -0
- package/lib/components/permissions/permissions-list/permissions-list.component.d.ts +48 -0
- package/lib/components/permissions/permissions-tabs/permissions-tabs.component.d.ts +8 -0
- package/lib/components/permissions/role-details/role-details.component.d.ts +32 -0
- package/lib/components/permissions/roles-list/roles-list.component.d.ts +50 -0
- package/lib/components/products/product-details/product-details.component.d.ts +64 -0
- package/lib/components/products/products-insight/products-insight.component.d.ts +21 -0
- package/lib/components/products/products-list/products-list.component.d.ts +65 -0
- package/lib/components/products/products-tabs/products-tabs.component.d.ts +8 -0
- package/lib/components/products/users-list-for-product/users-list-for-product.component.d.ts +22 -0
- package/lib/components/subscriptions/subscription-agents/subscription-agents.component.d.ts +29 -0
- package/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.d.ts +31 -0
- package/lib/components/subscriptions/subscription-details/subscription-details.component.d.ts +43 -0
- package/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.d.ts +69 -0
- package/lib/components/subscriptions/subscription-products/subscription-products.component.d.ts +50 -0
- package/lib/components/subscriptions/subscription-users/subscription-users.component.d.ts +57 -0
- package/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.d.ts +40 -0
- package/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.d.ts +22 -0
- package/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.d.ts +6 -0
- package/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.d.ts +22 -0
- package/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.d.ts +93 -0
- package/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.d.ts +8 -0
- package/lib/components/tags/tags-category/tags-category.component.d.ts +32 -0
- package/lib/components/tags/tags-list/tags-list.component.d.ts +33 -0
- package/lib/components/tags/tags-tabs/tags-tabs.component.d.ts +9 -0
- package/lib/components/tips/tip-detail/tip-detail.component.d.ts +21 -0
- package/lib/components/tips/tips-list/tips-list.component.d.ts +41 -0
- package/lib/components/tips/tips-tabs/tips-tabs.component.d.ts +9 -0
- package/lib/components/tracking/ahoy-events/ahoy-events.component.d.ts +35 -0
- package/lib/components/tracking/ahoy-messages/ahoy-messages.component.d.ts +28 -0
- package/lib/components/tracking/ahoy-visits/ahoy-visits.component.d.ts +28 -0
- package/lib/components/tracking/events/events.component.d.ts +28 -0
- package/lib/components/tracking/tracking-tabs/tracking-tabs.component.d.ts +8 -0
- package/lib/components/tracking/versions/versions.component.d.ts +34 -0
- package/lib/components/users/user-details/user-details.component.d.ts +33 -0
- package/lib/components/users/users-insight/users-insight.component.d.ts +17 -0
- package/lib/components/users/users-list/users-list.component.d.ts +94 -0
- package/lib/components/users/users-tabs/users-tabs.component.d.ts +11 -0
- package/lib/shared/interface/contact-us.interface.d.ts +16 -0
- package/lib/shared/interface/credential.interface.d.ts +37 -0
- package/lib/shared/interface/domain-config.interface.d.ts +120 -0
- package/lib/shared/interface/feedback-question.interface.d.ts +10 -0
- package/lib/shared/interface/global-config.interface.d.ts +11 -0
- package/lib/shared/interface/login-notification.interface.d.ts +15 -0
- package/lib/shared/interface/newsletter.interface.d.ts +44 -0
- package/lib/shared/interface/permission.interface.d.ts +10 -0
- package/lib/shared/interface/privacy-tos.interface.d.ts +12 -0
- package/lib/shared/interface/tip.interface.d.ts +15 -0
- package/lib/shared/interface/tracking.interface.d.ts +105 -0
- package/lib/shared/models/admin.model.d.ts +29 -0
- package/lib/shared/routers/routers.d.ts +25 -0
- package/package.json +49 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ADMIN_PATH } from '@posiwise/common-utilities';
|
|
3
|
+
import { HelperService } from '@posiwise/helper-service';
|
|
4
|
+
import { MainApiHttpService } from '@posiwise/common-services';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@posiwise/common-services";
|
|
7
|
+
export class AdminService {
|
|
8
|
+
constructor(api) {
|
|
9
|
+
this.api = api;
|
|
10
|
+
this.endpoint = ADMIN_PATH;
|
|
11
|
+
this.newsletters = '/newsletters';
|
|
12
|
+
this.newslettersItems = '/newsletter_items';
|
|
13
|
+
this.permissions = '/admin/permissions';
|
|
14
|
+
this.ahoy = '/ahoy';
|
|
15
|
+
this.subscriptionCredentials = '/subscription_credentials';
|
|
16
|
+
this.globalConfigs = '/global_configs';
|
|
17
|
+
this.feedbackQuestionsUrl = `${ADMIN_PATH}/feedback_questions`;
|
|
18
|
+
this.contactUs = `${ADMIN_PATH}/contact_us`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* User API
|
|
22
|
+
* @param page
|
|
23
|
+
* @param pageSize
|
|
24
|
+
* @param search
|
|
25
|
+
*/
|
|
26
|
+
getUsers(paging, params) {
|
|
27
|
+
return this.api.getWithParams(`${this.endpoint}/users/get_all`, {
|
|
28
|
+
...HelperService.getPagingParams(paging),
|
|
29
|
+
...params
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
postAgent(id, data) {
|
|
33
|
+
return this.api.post(`${ADMIN_PATH}/subscriptions/${id}/agents`, data);
|
|
34
|
+
}
|
|
35
|
+
getAgents(id) {
|
|
36
|
+
return this.api.get(`${ADMIN_PATH}/subscriptions/${id}/agents`);
|
|
37
|
+
}
|
|
38
|
+
getAgentById(subscription_id, agent_id) {
|
|
39
|
+
return this.api.get(`${ADMIN_PATH}/subscriptions/${subscription_id}/agents/${agent_id}`);
|
|
40
|
+
}
|
|
41
|
+
destroyAgent(id, agent_id) {
|
|
42
|
+
return this.api.delete(`${ADMIN_PATH}/subscriptions/${id}/agents/${agent_id}`);
|
|
43
|
+
}
|
|
44
|
+
inspectAgent(type) {
|
|
45
|
+
return this.api.getWithParams(`${ADMIN_PATH}/inspect`, { type });
|
|
46
|
+
}
|
|
47
|
+
updateSubscriptionProduct(data) {
|
|
48
|
+
return this.api.put(`${ADMIN_PATH}/subscription_product`, data);
|
|
49
|
+
}
|
|
50
|
+
getSubscriptionProduct(id, subscription_id) {
|
|
51
|
+
return this.api.getWithParams(`${ADMIN_PATH}/subscription_product/${id}`, {
|
|
52
|
+
subscription_id
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getUserById(id, subscription_id) {
|
|
56
|
+
return this.api.getWithParams(`/users/${id}`, { subscription_id });
|
|
57
|
+
}
|
|
58
|
+
deleteUser(id, subscription_id) {
|
|
59
|
+
return this.api.delete(`/user/?id=${id}&subscription_id=${subscription_id}`);
|
|
60
|
+
}
|
|
61
|
+
createUser(user) {
|
|
62
|
+
return this.api.post('/admin/users', user);
|
|
63
|
+
}
|
|
64
|
+
getUsersInsight(subscription_id) {
|
|
65
|
+
return this.api.get(`/admin/users_analytics?type=users&subscription_id=${subscription_id}`);
|
|
66
|
+
}
|
|
67
|
+
saveUserDetails(user) {
|
|
68
|
+
const formData = new FormData();
|
|
69
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
70
|
+
for (const key in user) {
|
|
71
|
+
if (key in user) {
|
|
72
|
+
formData.append(key, user[key]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return this.api.put('/user', formData);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Roles Management
|
|
79
|
+
* @param page
|
|
80
|
+
* @param pageSize
|
|
81
|
+
* @param search
|
|
82
|
+
*/
|
|
83
|
+
getRoles(paging, subscription_id) {
|
|
84
|
+
return this.api.getWithParams('/admin/roles/get_all', {
|
|
85
|
+
...HelperService.getPagingParams(paging),
|
|
86
|
+
subscription_id
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
deleteRole(id) {
|
|
90
|
+
return this.api.delete(`${this.endpoint}/roles/${id}`);
|
|
91
|
+
}
|
|
92
|
+
saveRole(role, id) {
|
|
93
|
+
return this.api.put(`${this.endpoint}/roles/${id}`, role);
|
|
94
|
+
}
|
|
95
|
+
addRole(role) {
|
|
96
|
+
return this.api.post(`${this.endpoint}/roles`, role);
|
|
97
|
+
}
|
|
98
|
+
// User Roles
|
|
99
|
+
getUserRole(id, subscription_id) {
|
|
100
|
+
return this.api.getWithParams(`/users/${id}/roles`, { subscription_id });
|
|
101
|
+
}
|
|
102
|
+
saveUserRole(userId, role_id, subscription_id) {
|
|
103
|
+
return this.api.post(`/admin/user_roles/`, { id: userId, role_id, subscription_id });
|
|
104
|
+
}
|
|
105
|
+
deleteUserRole(userId, role_id, subscription_id) {
|
|
106
|
+
return this.api.delete(`/admin/user_roles?role_id=${role_id}&id=${userId}&subscription_id=${subscription_id}`);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Newsletter API
|
|
110
|
+
*/
|
|
111
|
+
getNewsletters(paging, subscription_id) {
|
|
112
|
+
return this.api.getWithParams(`${this.newsletters}/get_all`, {
|
|
113
|
+
...HelperService.getPagingParams(paging),
|
|
114
|
+
subscription_id
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
getNewsletterById(id) {
|
|
118
|
+
return this.api.get(`${this.newsletters}/${id}`);
|
|
119
|
+
}
|
|
120
|
+
deleteNewsletter(id, subscription_id) {
|
|
121
|
+
return this.api.delete(`${this.newsletters}/${id}?subscription_id=${subscription_id}`);
|
|
122
|
+
}
|
|
123
|
+
updateNewsletter(data, id) {
|
|
124
|
+
return this.api.put(`${this.newsletters}/${id}`, data);
|
|
125
|
+
}
|
|
126
|
+
addNewsletter(data) {
|
|
127
|
+
return this.api.post(this.newsletters, data);
|
|
128
|
+
}
|
|
129
|
+
getNewsletterInsight() {
|
|
130
|
+
return this.api.get('/admin/newsletters_analytics?type=global');
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Newsletters Items API
|
|
134
|
+
*/
|
|
135
|
+
getNewslettersItems(paging, subscription_id) {
|
|
136
|
+
return this.api.getWithParams(`${this.newslettersItems}/get_all`, {
|
|
137
|
+
...HelperService.getPagingParams(paging),
|
|
138
|
+
subscription_id
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
getNewsletterItemById(id, subscription_id) {
|
|
142
|
+
return this.api.getWithParams(`${this.newslettersItems}/${id}`, { subscription_id });
|
|
143
|
+
}
|
|
144
|
+
deleteNewsletterItem(id) {
|
|
145
|
+
return this.api.delete(`${this.newslettersItems}/${id}`);
|
|
146
|
+
}
|
|
147
|
+
updateNewsletterItem(data, id) {
|
|
148
|
+
return this.api.put(`${this.newslettersItems}/${id}`, data);
|
|
149
|
+
}
|
|
150
|
+
addNewsletterItem(data) {
|
|
151
|
+
return this.api.post(`${this.newslettersItems}`, data);
|
|
152
|
+
}
|
|
153
|
+
getNewsletterItemUserList(id, subscription_id, paging) {
|
|
154
|
+
return this.api.getWithParams(`${this.newslettersItems}/${id}/insights?subscription_id=${subscription_id}`, HelperService.getPagingParams(paging));
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Subscription API
|
|
158
|
+
*/
|
|
159
|
+
getSubscriptions(feature_keys, subscription_status, paging, subscription_id) {
|
|
160
|
+
return this.api.getWithParams(`${this.endpoint}/subscriptions/get_all`, {
|
|
161
|
+
feature_keys,
|
|
162
|
+
subscription_status,
|
|
163
|
+
...HelperService.getPagingParams(paging),
|
|
164
|
+
subscription_id
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
getSubscriptionAnalytics(type, subscription_id, starting_at, ending_at) {
|
|
168
|
+
return this.api.getWithParams(`/admin/subscriptions_analytics?type=${type}&subscription_id=${subscription_id}`, { starting_at, ending_at });
|
|
169
|
+
}
|
|
170
|
+
deleteSubscription(id, reqJson) {
|
|
171
|
+
return this.api.delete(`/subscriptions/${id}`, reqJson);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Permissions API
|
|
175
|
+
*/
|
|
176
|
+
getPermissions(paging) {
|
|
177
|
+
return this.api.getWithParams(`${this.permissions}/get_all`, HelperService.getPagingParams(paging));
|
|
178
|
+
}
|
|
179
|
+
getPermissionById(id) {
|
|
180
|
+
return this.api.get(`${this.endpoint}/permissions/${id}`);
|
|
181
|
+
}
|
|
182
|
+
savePermission(permission, id) {
|
|
183
|
+
return this.api.put(`${this.endpoint}/permissions/${id}`, permission);
|
|
184
|
+
}
|
|
185
|
+
addPermission(permission) {
|
|
186
|
+
return this.api.post(`${this.endpoint}/permissions`, permission);
|
|
187
|
+
}
|
|
188
|
+
deletePermission(id) {
|
|
189
|
+
return this.api.delete(`${this.endpoint}/permissions/${id}`);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
*
|
|
193
|
+
*
|
|
194
|
+
*/
|
|
195
|
+
postFaq(data, subscription_id) {
|
|
196
|
+
return this.api.post('/admin/faq', { ...data, subscription_id });
|
|
197
|
+
}
|
|
198
|
+
putFaq(data, subscription_id) {
|
|
199
|
+
return this.api.put(`/admin/faq/${data.id}`, { ...data, subscription_id });
|
|
200
|
+
}
|
|
201
|
+
deleteFaq(id, subscription_id) {
|
|
202
|
+
return this.api.delete(`/admin/faq/${id}?subscription_id=${subscription_id}`);
|
|
203
|
+
}
|
|
204
|
+
updateDB(type) {
|
|
205
|
+
return this.api.get(`/admin/update_db?type=${type}`);
|
|
206
|
+
}
|
|
207
|
+
flushRedis(type) {
|
|
208
|
+
return this.api.get(`/admin/rediscache_ops?type=${type}`);
|
|
209
|
+
}
|
|
210
|
+
flushMemcached(type) {
|
|
211
|
+
return this.api.get(`/admin/memcached_ops?type=${type}`);
|
|
212
|
+
}
|
|
213
|
+
saveSubscriptionRoles(data) {
|
|
214
|
+
return this.api.post('/admin/subscription_roles', data);
|
|
215
|
+
}
|
|
216
|
+
getSubscriptionRoles(id) {
|
|
217
|
+
return this.api.get(`/subscription_roles/${id}`);
|
|
218
|
+
}
|
|
219
|
+
saveProductRoles(data) {
|
|
220
|
+
return this.api.post(`/admin/product_roles`, data);
|
|
221
|
+
}
|
|
222
|
+
getProductsRoles(id) {
|
|
223
|
+
return this.api.get(`/admin/product_roles/${id}`);
|
|
224
|
+
}
|
|
225
|
+
saveUserSubscriptionRole(data) {
|
|
226
|
+
return this.api.post('/admin/user_roles', data);
|
|
227
|
+
}
|
|
228
|
+
deleteUserSubscriptionRole(data) {
|
|
229
|
+
return this.api.delete(`/admin/user_roles?role_id=${data.role_id}&id=${data.id}`);
|
|
230
|
+
}
|
|
231
|
+
sendTestMail(id, subscription_id) {
|
|
232
|
+
return this.api.getWithParams(`/newsletter_items/${id}/send_test_email`, {
|
|
233
|
+
subscription_id
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
getAllTos(paging, subscription_id) {
|
|
237
|
+
return this.api.getWithParams(`/product_privacy_services/get_all`, {
|
|
238
|
+
...HelperService.getPagingParams(paging),
|
|
239
|
+
subscription_id
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
deleteTos(id) {
|
|
243
|
+
return this.api.delete(`/product_privacy_services/${id}`);
|
|
244
|
+
}
|
|
245
|
+
postTos(data) {
|
|
246
|
+
return this.api.post(`/product_privacy_services`, data);
|
|
247
|
+
}
|
|
248
|
+
getTosDetails(id) {
|
|
249
|
+
return this.api.get(`/product_privacy_services/${id}`);
|
|
250
|
+
}
|
|
251
|
+
updateTos(id, data) {
|
|
252
|
+
return this.api.put(`/product_privacy_services/${id}`, data);
|
|
253
|
+
}
|
|
254
|
+
getAllCredentials(paging) {
|
|
255
|
+
return this.api.getWithParams(`/credentials/get_all`, HelperService.getPagingParams(paging));
|
|
256
|
+
}
|
|
257
|
+
deleteCredentials(id) {
|
|
258
|
+
return this.api.delete(`${this.endpoint}/credentials/${id}`);
|
|
259
|
+
}
|
|
260
|
+
saveCredentials(data) {
|
|
261
|
+
return this.api.post(`${this.endpoint}/credentials`, data);
|
|
262
|
+
}
|
|
263
|
+
updateCredentials(id, data) {
|
|
264
|
+
return this.api.put(`${this.endpoint}/credentials/${id}`, data);
|
|
265
|
+
}
|
|
266
|
+
getCredentialsDetails(id) {
|
|
267
|
+
return this.api.get(`${this.endpoint}/credentials/${id}`);
|
|
268
|
+
}
|
|
269
|
+
getAllSubscriptionCredentials(paging) {
|
|
270
|
+
return this.api.getWithParams(`${this.endpoint}${this.subscriptionCredentials}/get_all`, HelperService.getPagingParams(paging));
|
|
271
|
+
}
|
|
272
|
+
getSubscriptionCredentials(id, subscription_id) {
|
|
273
|
+
return this.api.get(`${this.subscriptionCredentials}/${id}?subscription_id=${subscription_id}`);
|
|
274
|
+
}
|
|
275
|
+
postSubscriptionCredential(data) {
|
|
276
|
+
return this.api.post(`${this.subscriptionCredentials}`, data);
|
|
277
|
+
}
|
|
278
|
+
editSubscriptionCredential(id, data) {
|
|
279
|
+
return this.api.put(`${this.subscriptionCredentials}/${id}`, data);
|
|
280
|
+
}
|
|
281
|
+
deleteSubscriptionCredential(id, subscription_id) {
|
|
282
|
+
return this.api.delete(`${this.subscriptionCredentials}/${id}?subscription_id=${subscription_id}`);
|
|
283
|
+
}
|
|
284
|
+
getAhoyEvents(paging) {
|
|
285
|
+
return this.api.getWithParams(`${this.ahoy}/events`, HelperService.getPagingParams(paging));
|
|
286
|
+
}
|
|
287
|
+
getAhoyMessages(paging) {
|
|
288
|
+
return this.api.getWithParams(`${this.ahoy}/messages`, paging);
|
|
289
|
+
}
|
|
290
|
+
getAhoyVisits(paging) {
|
|
291
|
+
return this.api.getWithParams(`${this.ahoy}/visits`, HelperService.getPagingParams(paging));
|
|
292
|
+
}
|
|
293
|
+
getVersions(paging) {
|
|
294
|
+
return this.api.getWithParams(`versions/get_all`, HelperService.getPagingParams(paging));
|
|
295
|
+
}
|
|
296
|
+
getEvents(paging) {
|
|
297
|
+
return this.api.getWithParams(`events/get_all`, HelperService.getPagingParams(paging));
|
|
298
|
+
}
|
|
299
|
+
getAllGlobalConfigs(paging) {
|
|
300
|
+
return this.api.getWithParams(`${this.globalConfigs}/get_all`, HelperService.getPagingParams(paging));
|
|
301
|
+
}
|
|
302
|
+
getGlobalConfigDetails(id) {
|
|
303
|
+
return this.api.get(`${this.globalConfigs}/${id}`);
|
|
304
|
+
}
|
|
305
|
+
postGlobalConfig(data) {
|
|
306
|
+
return this.api.post(`${this.globalConfigs}`, data);
|
|
307
|
+
}
|
|
308
|
+
editGlobalConfig(id, data) {
|
|
309
|
+
return this.api.put(`${this.globalConfigs}/${id}`, data);
|
|
310
|
+
}
|
|
311
|
+
deleteGlobalConfig(id) {
|
|
312
|
+
return this.api.delete(`${this.globalConfigs}/${id}`);
|
|
313
|
+
}
|
|
314
|
+
getAllFieldType() {
|
|
315
|
+
return this.api.get(`/global_configs/valid_field_types`);
|
|
316
|
+
}
|
|
317
|
+
// domain config
|
|
318
|
+
getAllDomainConfig(paging, subscription_id) {
|
|
319
|
+
return this.api.getWithParams(`${this.endpoint}/domains_metadata/get_all`, {
|
|
320
|
+
...HelperService.getPagingParams(paging),
|
|
321
|
+
subscription_id
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
deleteDomainConfig(id, subscription_id) {
|
|
325
|
+
return this.api.delete(`${this.endpoint}/domains_metadata/${id}?subscription_id=${subscription_id}`);
|
|
326
|
+
}
|
|
327
|
+
updateDomainConfig(id, data) {
|
|
328
|
+
return this.api.put(`${this.endpoint}/domains_metadata/${id}`, data);
|
|
329
|
+
}
|
|
330
|
+
createDomainConfig(data) {
|
|
331
|
+
return this.api.post(`${this.endpoint}/domains_metadata`, data);
|
|
332
|
+
}
|
|
333
|
+
getDomainConfigById(id, subscription_id) {
|
|
334
|
+
return this.api.getWithParams(`${this.endpoint}/domains_metadata/${id}`, {
|
|
335
|
+
subscription_id
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
getAvailableDomainOptions(subscription_id) {
|
|
339
|
+
return this.api.get(`${this.endpoint}/domains_metadata/available_domain_options?subscription_id=${subscription_id}`);
|
|
340
|
+
}
|
|
341
|
+
// login notifications
|
|
342
|
+
getAllLoginNotifications(paging, subscription_id) {
|
|
343
|
+
return this.api.getWithParams(`${this.endpoint}/login_notifications/get_all`, {
|
|
344
|
+
...HelperService.getPagingParams(paging),
|
|
345
|
+
subscription_id
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
createLoginNotification(data) {
|
|
349
|
+
return this.api.post(`${this.endpoint}/login_notifications`, data);
|
|
350
|
+
}
|
|
351
|
+
deleteLoginNotification(id, subscription_id) {
|
|
352
|
+
return this.api.delete(`login_notifications/${id}?subscription_id=${subscription_id}`);
|
|
353
|
+
}
|
|
354
|
+
updateLoginNotification(id, data) {
|
|
355
|
+
return this.api.put(`login_notifications/${id}`, data);
|
|
356
|
+
}
|
|
357
|
+
getLoginNotificationById(id, subscription_id) {
|
|
358
|
+
return this.api.getWithParams(`login_notifications/${id}`, {
|
|
359
|
+
subscription_id
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
getAvailableLoginNotificationTypes(subscription_id) {
|
|
363
|
+
return this.api.getWithParams(`login_notifications/available_types`, {
|
|
364
|
+
subscription_id
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
// feedback questions
|
|
368
|
+
getAllFeedbackQuestions(subscription_id, product_id, paging) {
|
|
369
|
+
return this.api.getWithParams(`${this.feedbackQuestionsUrl}/get_all`, {
|
|
370
|
+
subscription_id,
|
|
371
|
+
product_id,
|
|
372
|
+
...HelperService.getPagingParams(paging)
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
deleteFeedbackQuestion(id, subscription_id) {
|
|
376
|
+
return this.api.delete(`${this.feedbackQuestionsUrl}/${id}?subscription_id=${subscription_id}`);
|
|
377
|
+
}
|
|
378
|
+
updateFeedbackQuestion(id, data) {
|
|
379
|
+
return this.api.put(`${this.feedbackQuestionsUrl}/${id}`, data);
|
|
380
|
+
}
|
|
381
|
+
createFeedbackQuestion(data) {
|
|
382
|
+
return this.api.post(`${this.feedbackQuestionsUrl}`, data);
|
|
383
|
+
}
|
|
384
|
+
getDomainFeedbackQuestionById(id, subscription_id) {
|
|
385
|
+
return this.api.getWithParams(`${this.feedbackQuestionsUrl}/${id}`, { subscription_id });
|
|
386
|
+
}
|
|
387
|
+
// contact-us
|
|
388
|
+
getAllContactUs(subscription_id, product_id, closed, paging) {
|
|
389
|
+
return this.api.getWithParams(`${this.contactUs}/get_all`, {
|
|
390
|
+
subscription_id,
|
|
391
|
+
product_id,
|
|
392
|
+
...HelperService.getPagingParams(paging),
|
|
393
|
+
closed: closed || ''
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
updateContactUs(id, data) {
|
|
397
|
+
return this.api.put(`${this.contactUs}/${id}`, data);
|
|
398
|
+
}
|
|
399
|
+
remove2fa(userId, subscription_id) {
|
|
400
|
+
return this.api.put(`${ADMIN_PATH}/users/${userId}/remove_2fa`, { subscription_id });
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
AdminService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: AdminService, deps: [{ token: i1.MainApiHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
404
|
+
AdminService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: AdminService, providedIn: 'root' });
|
|
405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: AdminService, decorators: [{
|
|
406
|
+
type: Injectable,
|
|
407
|
+
args: [{
|
|
408
|
+
providedIn: 'root'
|
|
409
|
+
}]
|
|
410
|
+
}], ctorParameters: function () { return [{ type: i1.MainApiHttpService }]; } });
|
|
411
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvYWRtaW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFLL0QsTUFBTSxPQUFPLFlBQVk7SUFtQnJCLFlBQW9CLEdBQXVCO1FBQXZCLFFBQUcsR0FBSCxHQUFHLENBQW9CO1FBbEJuQyxhQUFRLEdBQUcsVUFBVSxDQUFDO1FBRXRCLGdCQUFXLEdBQUcsY0FBYyxDQUFDO1FBRTdCLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO1FBRXZDLGdCQUFXLEdBQUcsb0JBQW9CLENBQUM7UUFFbkMsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQUVmLDRCQUF1QixHQUFHLDJCQUEyQixDQUFDO1FBRXRELGtCQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFFbEMseUJBQW9CLEdBQUcsR0FBRyxVQUFVLHFCQUFxQixDQUFDO1FBRTFELGNBQVMsR0FBRyxHQUFHLFVBQVUsYUFBYSxDQUFDO0lBRUQsQ0FBQztJQUUvQzs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxNQUFlLEVBQUUsTUFBTztRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsZ0JBQWdCLEVBQUU7WUFDNUQsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUN4QyxHQUFHLE1BQU07U0FDWixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVUsRUFBRSxJ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QUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELGFBQWE7SUFDYixlQUFlLENBQUMsZUFBdUIsRUFBRSxVQUFrQixFQUFFLE1BQWUsRUFBRSxNQUFlO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxVQUFVLEVBQUU7WUFDdkQsZUFBZTtZQUNmLFVBQVU7WUFDVixHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRTtTQUN2QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQVUsRUFBRSxJQUFJO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYyxFQUFFLGVBQXVCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLFVBQVUsTUFBTSxhQUFhLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7O3lHQXpoQlEsWUFBWTs2R0FBWixZQUFZLGNBRlQsTUFBTTsyRkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQURNSU5fUEFUSCwgUGFnaW5nLCBVc2VyLCBSb2xlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBNYWluQXBpSHR0cFNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pblNlcnZpY2Uge1xuICAgIHByaXZhdGUgZW5kcG9pbnQgPSBBRE1JTl9QQVRIO1xuXG4gICAgcHJpdmF0ZSBuZXdzbGV0dGVycyA9ICcvbmV3c2xldHRlcnMnO1xuXG4gICAgcHJpdmF0ZSBuZXdzbGV0dGVyc0l0ZW1zID0gJy9uZXdzbGV0dGVyX2l0ZW1zJztcblxuICAgIHByaXZhdGUgcGVybWlzc2lvbnMgPSAnL2FkbWluL3Blcm1pc3Npb25zJztcblxuICAgIHByaXZhdGUgYWhveSA9ICcvYWhveSc7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbkNyZWRlbnRpYWxzID0gJy9zdWJzY3JpcHRpb25fY3JlZGVudGlhbHMnO1xuXG4gICAgcHJpdmF0ZSBnbG9iYWxDb25maWdzID0gJy9nbG9iYWxfY29uZmlncyc7XG5cbiAgICBwcml2YXRlIGZlZWRiYWNrUXVlc3Rpb25zVXJsID0gYCR7QURNSU5fUEFUSH0vZmVlZGJhY2tfcXVlc3Rpb25zYDtcblxuICAgIHByaXZhdGUgY29udGFjdFVzID0gYCR7QURNSU5fUEFUSH0vY29udGFjdF91c2A7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaTogTWFpbkFwaUh0dHBTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogVXNlciBBUElcbiAgICAgKiBAcGFyYW0gcGFnZVxuICAgICAqIEBwYXJhbSBwYWdlU2l6ZVxuICAgICAqIEBwYXJhbSBzZWFyY2hcbiAgICAgKi9cbiAgICBnZXRVc2VycyhwYWdpbmc/OiBQYWdpbmcsIHBhcmFtcz8pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoYCR7dGhpcy5lbmRwb2ludH0vdXNlcnMvZ2V0X2FsbGAsIHtcbiAgICAgICAgICAgIC4uLkhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZyksXG4gICAgICAgICAgICAuLi5wYXJhbXNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcG9zdEFnZW50KGlkOiBudW1iZXIsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoYCR7QURNSU5fUEFUSH0vc3Vic2NyaXB0aW9ucy8ke2lkfS9hZ2VudHNgLCBkYXRhKTtcbiAgICB9XG5cbiAgICBnZXRBZ2VudHMoaWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KGAke0FETUlOX1BBVEh9L3N1YnNjcmlwdGlvbnMvJHtpZH0vYWdlbnRzYCk7XG4gICAgfVxuXG4gICAgZ2V0QWdlbnRCeUlkKHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyLCBhZ2VudF9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQoYCR7QURNSU5fUEFUSH0vc3Vic2NyaXB0aW9ucy8ke3N1YnNjcmlwdGlvbl9pZH0vYWdlbnRzLyR7YWdlbnRfaWR9YCk7XG4gICAgfVxuXG4gICAgZGVzdHJveUFnZW50KGlkOiBudW1iZXIsIGFnZW50X2lkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShgJHtBRE1JTl9QQVRIfS9zdWJzY3JpcHRpb25zLyR7aWR9L2FnZW50cy8ke2FnZW50X2lkfWApO1xuICAgIH1cblxuICAgIGluc3BlY3RBZ2VudCh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoYCR7QURNSU5fUEFUSH0vaW5zcGVjdGAsIHsgdHlwZSB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVTdWJzY3JpcHRpb25Qcm9kdWN0KGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgJHtBRE1JTl9QQVRIfS9zdWJzY3JpcHRpb25fcHJvZHVjdGAsIGRhdGEpO1xuICAgIH1cblxuICAgIGdldFN1YnNjcmlwdGlvblByb2R1Y3QoaWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uX2lkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAke0FETUlOX1BBVEh9L3N1YnNjcmlwdGlvbl9wcm9kdWN0LyR7aWR9YCwge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFVzZXJCeUlkKGlkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAvdXNlcnMvJHtpZH1gLCB7IHN1YnNjcmlwdGlvbl9pZCB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVVc2VyKGlkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5kZWxldGUoYC91c2VyLz9pZD0ke2lkfSZzdWJzY3JpcHRpb25faWQ9JHtzdWJzY3JpcHRpb25faWR9YCk7XG4gICAgfVxuXG4gICAgY3JlYXRlVXNlcih1c2VyOiBVc2VyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KCcvYWRtaW4vdXNlcnMnLCB1c2VyKTtcbiAgICB9XG5cbiAgICBnZXRVc2Vyc0luc2lnaHQoc3Vic2NyaXB0aW9uX2lkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgL2FkbWluL3VzZXJzX2FuYWx5dGljcz90eXBlPXVzZXJzJnN1YnNjcmlwdGlvbl9pZD0ke3N1YnNjcmlwdGlvbl9pZH1gKTtcbiAgICB9XG5cbiAgICBzYXZlVXNlckRldGFpbHModXNlcjogVXNlcikge1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB1c2VyKSB7XG4gICAgICAgICAgICBpZiAoa2V5IGluIHVzZXIpIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB1c2VyW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dCgnL3VzZXInLCBmb3JtRGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUm9sZXMgTWFuYWdlbWVudFxuICAgICAqIEBwYXJhbSBwYWdlXG4gICAgICogQHBhcmFtIHBhZ2VTaXplXG4gICAgICogQHBhcmFtIHNlYXJjaFxuICAgICAqL1xuXG4gICAgZ2V0Um9sZXMocGFnaW5nPzogUGFnaW5nLCBzdWJzY3JpcHRpb25faWQ/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoJy9hZG1pbi9yb2xlcy9nZXRfYWxsJywge1xuICAgICAgICAgICAgLi4uSGVscGVyU2VydmljZS5nZXRQYWdpbmdQYXJhbXMocGFnaW5nKSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVSb2xlKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShgJHt0aGlzLmVuZHBvaW50fS9yb2xlcy8ke2lkfWApO1xuICAgIH1cblxuICAgIHNhdmVSb2xlKHJvbGU6IFJvbGUsIGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgJHt0aGlzLmVuZHBvaW50fS9yb2xlcy8ke2lkfWAsIHJvbGUpO1xuICAgIH1cblxuICAgIGFkZFJvbGUocm9sZTogUm9sZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdChgJHt0aGlzLmVuZHBvaW50fS9yb2xlc2AsIHJvbGUpO1xuICAgIH1cblxuICAgIC8vIFVzZXIgUm9sZXNcbiAgICBnZXRVc2VyUm9sZShpZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgL3VzZXJzLyR7aWR9L3JvbGVzYCwgeyBzdWJzY3JpcHRpb25faWQgfSk7XG4gICAgfVxuXG4gICAgc2F2ZVVzZXJSb2xlKHVzZXJJZDogbnVtYmVyLCByb2xlX2lkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KGAvYWRtaW4vdXNlcl9yb2xlcy9gLCB7IGlkOiB1c2VySWQsIHJvbGVfaWQsIHN1YnNjcmlwdGlvbl9pZCB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVVc2VyUm9sZSh1c2VySWQ6IG51bWJlciwgcm9sZV9pZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKFxuICAgICAgICAgICAgYC9hZG1pbi91c2VyX3JvbGVzP3JvbGVfaWQ9JHtyb2xlX2lkfSZpZD0ke3VzZXJJZH0mc3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOZXdzbGV0dGVyIEFQSVxuICAgICAqL1xuICAgIGdldE5ld3NsZXR0ZXJzKHBhZ2luZz86IFBhZ2luZywgc3Vic2NyaXB0aW9uX2lkPzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAke3RoaXMubmV3c2xldHRlcnN9L2dldF9hbGxgLCB7XG4gICAgICAgICAgICAuLi5IZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5ld3NsZXR0ZXJCeUlkKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgJHt0aGlzLm5ld3NsZXR0ZXJzfS8ke2lkfWApO1xuICAgIH1cblxuICAgIGRlbGV0ZU5ld3NsZXR0ZXIoaWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uX2lkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShgJHt0aGlzLm5ld3NsZXR0ZXJzfS8ke2lkfT9zdWJzY3JpcHRpb25faWQ9JHtzdWJzY3JpcHRpb25faWR9YCk7XG4gICAgfVxuXG4gICAgdXBkYXRlTmV3c2xldHRlcihkYXRhLCBpZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wdXQoYCR7dGhpcy5uZXdzbGV0dGVyc30vJHtpZH1gLCBkYXRhKTtcbiAgICB9XG5cbiAgICBhZGROZXdzbGV0dGVyKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QodGhpcy5uZXdzbGV0dGVycywgZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0TmV3c2xldHRlckluc2lnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQoJy9hZG1pbi9uZXdzbGV0dGVyc19hbmFseXRpY3M/dHlwZT1nbG9iYWwnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOZXdzbGV0dGVycyBJdGVtcyBBUElcbiAgICAgKi9cbiAgICBnZXROZXdzbGV0dGVyc0l0ZW1zKHBhZ2luZz86IFBhZ2luZywgc3Vic2NyaXB0aW9uX2lkPzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAke3RoaXMubmV3c2xldHRlcnNJdGVtc30vZ2V0X2FsbGAsIHtcbiAgICAgICAgICAgIC4uLkhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZyksXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TmV3c2xldHRlckl0ZW1CeUlkKGlkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZD86IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLm5ld3NsZXR0ZXJzSXRlbXN9LyR7aWR9YCwgeyBzdWJzY3JpcHRpb25faWQgfSk7XG4gICAgfVxuXG4gICAgZGVsZXRlTmV3c2xldHRlckl0ZW0oaWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKGAke3RoaXMubmV3c2xldHRlcnNJdGVtc30vJHtpZH1gKTtcbiAgICB9XG5cbiAgICB1cGRhdGVOZXdzbGV0dGVySXRlbShkYXRhLCBpZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wdXQoYCR7dGhpcy5uZXdzbGV0dGVyc0l0ZW1zfS8ke2lkfWAsIGRhdGEpO1xuICAgIH1cblxuICAgIGFkZE5ld3NsZXR0ZXJJdGVtKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoYCR7dGhpcy5uZXdzbGV0dGVyc0l0ZW1zfWAsIGRhdGEpO1xuICAgIH1cblxuICAgIGdldE5ld3NsZXR0ZXJJdGVtVXNlckxpc3QoaWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uX2lkOiBudW1iZXIsIHBhZ2luZz86IFBhZ2luZykge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhcbiAgICAgICAgICAgIGAke3RoaXMubmV3c2xldHRlcnNJdGVtc30vJHtpZH0vaW5zaWdodHM/c3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWAsXG4gICAgICAgICAgICBIZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic2NyaXB0aW9uIEFQSVxuICAgICAqL1xuICAgIGdldFN1YnNjcmlwdGlvbnMoZmVhdHVyZV9rZXlzLCBzdWJzY3JpcHRpb25fc3RhdHVzLCBwYWdpbmc/OiBQYWdpbmcsIHN1YnNjcmlwdGlvbl9pZD86IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLmVuZHBvaW50fS9zdWJzY3JpcHRpb25zL2dldF9hbGxgLCB7XG4gICAgICAgICAgICBmZWF0dXJlX2tleXMsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25fc3RhdHVzLFxuICAgICAgICAgICAgLi4uSGVscGVyU2VydmljZS5nZXRQYWdpbmdQYXJhbXMocGFnaW5nKSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTdWJzY3JpcHRpb25BbmFseXRpY3ModHlwZTogc3RyaW5nLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlciwgc3RhcnRpbmdfYXQ/LCBlbmRpbmdfYXQ/KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKFxuICAgICAgICAgICAgYC9hZG1pbi9zdWJzY3JpcHRpb25zX2FuYWx5dGljcz90eXBlPSR7dHlwZX0mc3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWAsXG4gICAgICAgICAgICB7IHN0YXJ0aW5nX2F0LCBlbmRpbmdfYXQgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRlbGV0ZVN1YnNjcmlwdGlvbihpZDogbnVtYmVyLCByZXFKc29uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5kZWxldGUoYC9zdWJzY3JpcHRpb25zLyR7aWR9YCwgcmVxSnNvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVybWlzc2lvbnMgQVBJXG4gICAgICovXG5cbiAgICBnZXRQZXJtaXNzaW9ucyhwYWdpbmc/OiBQYWdpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoXG4gICAgICAgICAgICBgJHt0aGlzLnBlcm1pc3Npb25zfS9nZXRfYWxsYCxcbiAgICAgICAgICAgIEhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBlcm1pc3Npb25CeUlkKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgJHt0aGlzLmVuZHBvaW50fS9wZXJtaXNzaW9ucy8ke2lkfWApO1xuICAgIH1cblxuICAgIHNhdmVQZXJtaXNzaW9uKHBlcm1pc3Npb246IFJvbGUsIGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgJHt0aGlzLmVuZHBvaW50fS9wZXJtaXNzaW9ucy8ke2lkfWAsIHBlcm1pc3Npb24pO1xuICAgIH1cblxuICAgIGFkZFBlcm1pc3Npb24ocGVybWlzc2lvbjogUm9sZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdChgJHt0aGlzLmVuZHBvaW50fS9wZXJtaXNzaW9uc2AsIHBlcm1pc3Npb24pO1xuICAgIH1cblxuICAgIGRlbGV0ZVBlcm1pc3Npb24oaWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKGAke3RoaXMuZW5kcG9pbnR9L3Blcm1pc3Npb25zLyR7aWR9YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKlxuICAgICAqL1xuXG4gICAgcG9zdEZhcShkYXRhLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdCgnL2FkbWluL2ZhcScsIHsgLi4uZGF0YSwgc3Vic2NyaXB0aW9uX2lkIH0pO1xuICAgIH1cblxuICAgIHB1dEZhcShkYXRhLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucHV0KGAvYWRtaW4vZmFxLyR7ZGF0YS5pZH1gLCB7IC4uLmRhdGEsIHN1YnNjcmlwdGlvbl9pZCB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVGYXEoaWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uX2lkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShgL2FkbWluL2ZhcS8ke2lkfT9zdWJzY3JpcHRpb25faWQ9JHtzdWJzY3JpcHRpb25faWR9YCk7XG4gICAgfVxuXG4gICAgdXBkYXRlREIodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQoYC9hZG1pbi91cGRhdGVfZGI/dHlwZT0ke3R5cGV9YCk7XG4gICAgfVxuXG4gICAgZmx1c2hSZWRpcyh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgL2FkbWluL3JlZGlzY2FjaGVfb3BzP3R5cGU9JHt0eXBlfWApO1xuICAgIH1cblxuICAgIGZsdXNoTWVtY2FjaGVkKHR5cGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KGAvYWRtaW4vbWVtY2FjaGVkX29wcz90eXBlPSR7dHlwZX1gKTtcbiAgICB9XG5cbiAgICBzYXZlU3Vic2NyaXB0aW9uUm9sZXMoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdCgnL2FkbWluL3N1YnNjcmlwdGlvbl9yb2xlcycsIGRhdGEpO1xuICAgIH1cblxuICAgIGdldFN1YnNjcmlwdGlvblJvbGVzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgL3N1YnNjcmlwdGlvbl9yb2xlcy8ke2lkfWApO1xuICAgIH1cblxuICAgIHNhdmVQcm9kdWN0Um9sZXMoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdChgL2FkbWluL3Byb2R1Y3Rfcm9sZXNgLCBkYXRhKTtcbiAgICB9XG5cbiAgICBnZXRQcm9kdWN0c1JvbGVzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgL2FkbWluL3Byb2R1Y3Rfcm9sZXMvJHtpZH1gKTtcbiAgICB9XG5cbiAgICBzYXZlVXNlclN1YnNjcmlwdGlvblJvbGUoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdCgnL2FkbWluL3VzZXJfcm9sZXMnLCBkYXRhKTtcbiAgICB9XG5cbiAgICBkZWxldGVVc2VyU3Vic2NyaXB0aW9uUm9sZShkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5kZWxldGUoYC9hZG1pbi91c2VyX3JvbGVzP3JvbGVfaWQ9JHtkYXRhLnJvbGVfaWR9JmlkPSR7ZGF0YS5pZH1gKTtcbiAgICB9XG5cbiAgICBzZW5kVGVzdE1haWwoaWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uX2lkPzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAvbmV3c2xldHRlcl9pdGVtcy8ke2lkfS9zZW5kX3Rlc3RfZW1haWxgLCB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb25faWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0QWxsVG9zKHBhZ2luZz86IFBhZ2luZywgc3Vic2NyaXB0aW9uX2lkPzogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAvcHJvZHVjdF9wcml2YWN5X3NlcnZpY2VzL2dldF9hbGxgLCB7XG4gICAgICAgICAgICAuLi5IZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlbGV0ZVRvcyhpZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5kZWxldGUoYC9wcm9kdWN0X3ByaXZhY3lfc2VydmljZXMvJHtpZH1gKTtcbiAgICB9XG5cbiAgICBwb3N0VG9zKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoYC9wcm9kdWN0X3ByaXZhY3lfc2VydmljZXNgLCBkYXRhKTtcbiAgICB9XG5cbiAgICBnZXRUb3NEZXRhaWxzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgL3Byb2R1Y3RfcHJpdmFjeV9zZXJ2aWNlcy8ke2lkfWApO1xuICAgIH1cblxuICAgIHVwZGF0ZVRvcyhpZDogbnVtYmVyLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wdXQoYC9wcm9kdWN0X3ByaXZhY3lfc2VydmljZXMvJHtpZH1gLCBkYXRhKTtcbiAgICB9XG5cbiAgICBnZXRBbGxDcmVkZW50aWFscyhwYWdpbmc/OiBQYWdpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoXG4gICAgICAgICAgICBgL2NyZWRlbnRpYWxzL2dldF9hbGxgLFxuICAgICAgICAgICAgSGVscGVyU2VydmljZS5nZXRQYWdpbmdQYXJhbXMocGFnaW5nKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRlbGV0ZUNyZWRlbnRpYWxzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShgJHt0aGlzLmVuZHBvaW50fS9jcmVkZW50aWFscy8ke2lkfWApO1xuICAgIH1cblxuICAgIHNhdmVDcmVkZW50aWFscyhkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KGAke3RoaXMuZW5kcG9pbnR9L2NyZWRlbnRpYWxzYCwgZGF0YSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ3JlZGVudGlhbHMoaWQ6IG51bWJlciwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucHV0KGAke3RoaXMuZW5kcG9pbnR9L2NyZWRlbnRpYWxzLyR7aWR9YCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0Q3JlZGVudGlhbHNEZXRhaWxzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgJHt0aGlzLmVuZHBvaW50fS9jcmVkZW50aWFscy8ke2lkfWApO1xuICAgIH1cblxuICAgIGdldEFsbFN1YnNjcmlwdGlvbkNyZWRlbnRpYWxzKHBhZ2luZz86IFBhZ2luZykge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhcbiAgICAgICAgICAgIGAke3RoaXMuZW5kcG9pbnR9JHt0aGlzLnN1YnNjcmlwdGlvbkNyZWRlbnRpYWxzfS9nZXRfYWxsYCxcbiAgICAgICAgICAgIEhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRTdWJzY3JpcHRpb25DcmVkZW50aWFscyhpZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KFxuICAgICAgICAgICAgYCR7dGhpcy5zdWJzY3JpcHRpb25DcmVkZW50aWFsc30vJHtpZH0/c3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwb3N0U3Vic2NyaXB0aW9uQ3JlZGVudGlhbChkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KGAke3RoaXMuc3Vic2NyaXB0aW9uQ3JlZGVudGlhbHN9YCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZWRpdFN1YnNjcmlwdGlvbkNyZWRlbnRpYWwoaWQ6IG51bWJlciwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucHV0KGAke3RoaXMuc3Vic2NyaXB0aW9uQ3JlZGVudGlhbHN9LyR7aWR9YCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZGVsZXRlU3Vic2NyaXB0aW9uQ3JlZGVudGlhbChpZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKFxuICAgICAgICAgICAgYCR7dGhpcy5zdWJzY3JpcHRpb25DcmVkZW50aWFsc30vJHtpZH0/c3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBaG95RXZlbnRzKHBhZ2luZz86IFBhZ2luZykge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLmFob3l9L2V2ZW50c2AsIEhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZykpO1xuICAgIH1cblxuICAgIGdldEFob3lNZXNzYWdlcyhwYWdpbmc/OiBQYWdpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoYCR7dGhpcy5haG95fS9tZXNzYWdlc2AsIHBhZ2luZyk7XG4gICAgfVxuXG4gICAgZ2V0QWhveVZpc2l0cyhwYWdpbmc/OiBQYWdpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoYCR7dGhpcy5haG95fS92aXNpdHNgLCBIZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpKTtcbiAgICB9XG5cbiAgICBnZXRWZXJzaW9ucyhwYWdpbmc/OiBQYWdpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoYHZlcnNpb25zL2dldF9hbGxgLCBIZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpKTtcbiAgICB9XG5cbiAgICBnZXRFdmVudHMocGFnaW5nPzogUGFnaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGBldmVudHMvZ2V0X2FsbGAsIEhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZykpO1xuICAgIH1cblxuICAgIGdldEFsbEdsb2JhbENvbmZpZ3MocGFnaW5nPzogUGFnaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKFxuICAgICAgICAgICAgYCR7dGhpcy5nbG9iYWxDb25maWdzfS9nZXRfYWxsYCxcbiAgICAgICAgICAgIEhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRHbG9iYWxDb25maWdEZXRhaWxzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgJHt0aGlzLmdsb2JhbENvbmZpZ3N9LyR7aWR9YCk7XG4gICAgfVxuXG4gICAgcG9zdEdsb2JhbENvbmZpZyhkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KGAke3RoaXMuZ2xvYmFsQ29uZmlnc31gLCBkYXRhKTtcbiAgICB9XG5cbiAgICBlZGl0R2xvYmFsQ29uZmlnKGlkOiBudW1iZXIsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgJHt0aGlzLmdsb2JhbENvbmZpZ3N9LyR7aWR9YCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZGVsZXRlR2xvYmFsQ29uZmlnKGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShgJHt0aGlzLmdsb2JhbENvbmZpZ3N9LyR7aWR9YCk7XG4gICAgfVxuXG4gICAgZ2V0QWxsRmllbGRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KGAvZ2xvYmFsX2NvbmZpZ3MvdmFsaWRfZmllbGRfdHlwZXNgKTtcbiAgICB9XG5cbiAgICAvLyBkb21haW4gY29uZmlnXG5cbiAgICBnZXRBbGxEb21haW5Db25maWcocGFnaW5nPzogUGFnaW5nLCBzdWJzY3JpcHRpb25faWQ/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFdpdGhQYXJhbXMoYCR7dGhpcy5lbmRwb2ludH0vZG9tYWluc19tZXRhZGF0YS9nZXRfYWxsYCwge1xuICAgICAgICAgICAgLi4uSGVscGVyU2VydmljZS5nZXRQYWdpbmdQYXJhbXMocGFnaW5nKSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZWxldGVEb21haW5Db25maWcoaWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uX2lkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmRlbGV0ZShcbiAgICAgICAgICAgIGAke3RoaXMuZW5kcG9pbnR9L2RvbWFpbnNfbWV0YWRhdGEvJHtpZH0/c3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVEb21haW5Db25maWcoaWQ6IG51bWJlciwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucHV0KGAke3RoaXMuZW5kcG9pbnR9L2RvbWFpbnNfbWV0YWRhdGEvJHtpZH1gLCBkYXRhKTtcbiAgICB9XG5cbiAgICBjcmVhdGVEb21haW5Db25maWcoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdChgJHt0aGlzLmVuZHBvaW50fS9kb21haW5zX21ldGFkYXRhYCwgZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0RG9tYWluQ29uZmlnQnlJZChpZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLmVuZHBvaW50fS9kb21haW5zX21ldGFkYXRhLyR7aWR9YCwge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEF2YWlsYWJsZURvbWFpbk9wdGlvbnMoc3Vic2NyaXB0aW9uX2lkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChcbiAgICAgICAgICAgIGAke3RoaXMuZW5kcG9pbnR9L2RvbWFpbnNfbWV0YWRhdGEvYXZhaWxhYmxlX2RvbWFpbl9vcHRpb25zP3N1YnNjcmlwdGlvbl9pZD0ke3N1YnNjcmlwdGlvbl9pZH1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gbG9naW4gbm90aWZpY2F0aW9uc1xuICAgIGdldEFsbExvZ2luTm90aWZpY2F0aW9ucyhwYWdpbmc/OiBQYWdpbmcsIHN1YnNjcmlwdGlvbl9pZD86IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLmVuZHBvaW50fS9sb2dpbl9ub3RpZmljYXRpb25zL2dldF9hbGxgLCB7XG4gICAgICAgICAgICAuLi5IZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNyZWF0ZUxvZ2luTm90aWZpY2F0aW9uKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoYCR7dGhpcy5lbmRwb2ludH0vbG9naW5fbm90aWZpY2F0aW9uc2AsIGRhdGEpO1xuICAgIH1cblxuICAgIGRlbGV0ZUxvZ2luTm90aWZpY2F0aW9uKGlkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5kZWxldGUoYGxvZ2luX25vdGlmaWNhdGlvbnMvJHtpZH0/c3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWApO1xuICAgIH1cblxuICAgIHVwZGF0ZUxvZ2luTm90aWZpY2F0aW9uKGlkOiBudW1iZXIsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgbG9naW5fbm90aWZpY2F0aW9ucy8ke2lkfWAsIGRhdGEpO1xuICAgIH1cblxuICAgIGdldExvZ2luTm90aWZpY2F0aW9uQnlJZChpZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgbG9naW5fbm90aWZpY2F0aW9ucy8ke2lkfWAsIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRBdmFpbGFibGVMb2dpbk5vdGlmaWNhdGlvblR5cGVzKHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGBsb2dpbl9ub3RpZmljYXRpb25zL2F2YWlsYWJsZV90eXBlc2AsIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBmZWVkYmFjayBxdWVzdGlvbnNcblxuICAgIGdldEFsbEZlZWRiYWNrUXVlc3Rpb25zKHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyLCBwcm9kdWN0X2lkOiBudW1iZXIsIHBhZ2luZz86IFBhZ2luZykge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLmZlZWRiYWNrUXVlc3Rpb25zVXJsfS9nZXRfYWxsYCwge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkLFxuICAgICAgICAgICAgcHJvZHVjdF9pZCxcbiAgICAgICAgICAgIC4uLkhlbHBlclNlcnZpY2UuZ2V0UGFnaW5nUGFyYW1zKHBhZ2luZylcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmVlZGJhY2tRdWVzdGlvbihpZDogbnVtYmVyLCBzdWJzY3JpcHRpb25faWQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKFxuICAgICAgICAgICAgYCR7dGhpcy5mZWVkYmFja1F1ZXN0aW9uc1VybH0vJHtpZH0/c3Vic2NyaXB0aW9uX2lkPSR7c3Vic2NyaXB0aW9uX2lkfWBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVGZWVkYmFja1F1ZXN0aW9uKGlkOiBudW1iZXIsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgJHt0aGlzLmZlZWRiYWNrUXVlc3Rpb25zVXJsfS8ke2lkfWAsIGRhdGEpO1xuICAgIH1cblxuICAgIGNyZWF0ZUZlZWRiYWNrUXVlc3Rpb24oZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkucG9zdChgJHt0aGlzLmZlZWRiYWNrUXVlc3Rpb25zVXJsfWAsIGRhdGEpO1xuICAgIH1cblxuICAgIGdldERvbWFpbkZlZWRiYWNrUXVlc3Rpb25CeUlkKGlkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRXaXRoUGFyYW1zKGAke3RoaXMuZmVlZGJhY2tRdWVzdGlvbnNVcmx9LyR7aWR9YCwgeyBzdWJzY3JpcHRpb25faWQgfSk7XG4gICAgfVxuXG4gICAgLy8gY29udGFjdC11c1xuICAgIGdldEFsbENvbnRhY3RVcyhzdWJzY3JpcHRpb25faWQ6IG51bWJlciwgcHJvZHVjdF9pZDogbnVtYmVyLCBjbG9zZWQ6IGJvb2xlYW4sIHBhZ2luZz86IFBhZ2luZykge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0V2l0aFBhcmFtcyhgJHt0aGlzLmNvbnRhY3RVc30vZ2V0X2FsbGAsIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZCxcbiAgICAgICAgICAgIHByb2R1Y3RfaWQsXG4gICAgICAgICAgICAuLi5IZWxwZXJTZXJ2aWNlLmdldFBhZ2luZ1BhcmFtcyhwYWdpbmcpLFxuICAgICAgICAgICAgY2xvc2VkOiBjbG9zZWQgfHwgJydcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ29udGFjdFVzKGlkOiBudW1iZXIsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnB1dChgJHt0aGlzLmNvbnRhY3RVc30vJHtpZH1gLCBkYXRhKTtcbiAgICB9XG5cbiAgICByZW1vdmUyZmEodXNlcklkOiBudW1iZXIsIHN1YnNjcmlwdGlvbl9pZDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wdXQoYCR7QURNSU5fUEFUSH0vdXNlcnMvJHt1c2VySWR9L3JlbW92ZV8yZmFgLCB7IHN1YnNjcmlwdGlvbl9pZCB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, Injector } from '@angular/core';
|
|
2
|
+
import { AdminService } from '../../../admin.service';
|
|
3
|
+
import { ROUTERS } from '../../../shared/routers/routers';
|
|
4
|
+
import { PAGE_SIZE } from '@posiwise/common-utilities';
|
|
5
|
+
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
6
|
+
import { HelperService } from '@posiwise/helper-service';
|
|
7
|
+
import { PermissionService } from '@posiwise/common-services';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../admin.service";
|
|
10
|
+
import * as i2 from "primeng/table";
|
|
11
|
+
import * as i3 from "primeng/api";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/router";
|
|
14
|
+
import * as i6 from "@posiwise/directives";
|
|
15
|
+
import * as i7 from "@ng-bootstrap/ng-bootstrap";
|
|
16
|
+
import * as i8 from "@angular/forms";
|
|
17
|
+
import * as i9 from "@ngneat/transloco";
|
|
18
|
+
import * as i10 from "@posiwise/pipes";
|
|
19
|
+
export class TermsOfServiceComponent extends AppBaseComponent {
|
|
20
|
+
constructor(adminService, injector, cdr) {
|
|
21
|
+
super(injector);
|
|
22
|
+
this.adminService = adminService;
|
|
23
|
+
this.cdr = cdr;
|
|
24
|
+
this.searchText = '';
|
|
25
|
+
this.data = {
|
|
26
|
+
product_privacy_services: [],
|
|
27
|
+
object_count: 0,
|
|
28
|
+
unfiltered_count: 0
|
|
29
|
+
};
|
|
30
|
+
this.loading = true;
|
|
31
|
+
this.routers = ROUTERS;
|
|
32
|
+
this.page = 1;
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.subscriptionId = PermissionService.selectedSubscription?.id;
|
|
36
|
+
}
|
|
37
|
+
ngAfterViewChecked() {
|
|
38
|
+
this.cdr.detectChanges();
|
|
39
|
+
}
|
|
40
|
+
onLazyLoad(event) {
|
|
41
|
+
const pageDetails = HelperService.onTableLazyLoad(event);
|
|
42
|
+
this.page = pageDetails.page;
|
|
43
|
+
this.getAllTos({
|
|
44
|
+
page: this.page,
|
|
45
|
+
page_size: PAGE_SIZE,
|
|
46
|
+
order_by: pageDetails.sortField,
|
|
47
|
+
order_direction: pageDetails.sortOrder,
|
|
48
|
+
search: this.searchText
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/** Function to call all tos */
|
|
52
|
+
getAllTos(paging) {
|
|
53
|
+
this.adminService
|
|
54
|
+
.getAllTos(paging, this.subscriptionId)
|
|
55
|
+
.subscribe((response) => {
|
|
56
|
+
this.data = response;
|
|
57
|
+
})
|
|
58
|
+
.add(() => {
|
|
59
|
+
this.loading = false;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/** Function to delete tos */
|
|
63
|
+
onDelete(id) {
|
|
64
|
+
HelperService.raiseDeletePopup().then(rep => {
|
|
65
|
+
if (rep.value) {
|
|
66
|
+
this.adminService.deleteTos(id).subscribe(() => {
|
|
67
|
+
this.toast.success(this.translation.translate('Admin.Tos.DeletedMessage'));
|
|
68
|
+
this.getAllTos({
|
|
69
|
+
page: this.page,
|
|
70
|
+
page_size: PAGE_SIZE
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
ngOnDestroy() {
|
|
77
|
+
super.ngOnDestroy();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
TermsOfServiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TermsOfServiceComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
TermsOfServiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TermsOfServiceComponent, selector: "pw-terms-of-service", usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i7.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i9.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i10.RemoveHtmlPipe, name: "removeHtml" }, { kind: "pipe", type: i10.TextTruncatePipe, name: "textTruncate" }] });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TermsOfServiceComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{ selector: 'pw-terms-of-service', template: "<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" }]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i1.AdminService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UvdGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UvdGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7QUFNOUQsTUFBTSxPQUFPLHVCQUNULFNBQVEsZ0JBQWdCO0lBbUJ4QixZQUNZLFlBQTBCLEVBQ2xDLFFBQWtCLEVBQ1YsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSlIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFMUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQmxDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsU0FBSSxHQUF1QjtZQUN2Qix3QkFBd0IsRUFBRSxFQUFFO1lBQzVCLFlBQVksRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QixDQUFDO1FBRUYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFVixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBVWpCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQy9CLGVBQWUsRUFBRSxXQUFXLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELCtCQUErQjtJQUN2QixTQUFTLENBQUMsTUFBYztRQUM1QixJQUFJLENBQUMsWUFBWTthQUNaLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUN0QyxTQUFTLENBQUMsQ0FBQyxRQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDekIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixRQUFRLENBQUMsRUFBVTtRQUNmLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO29CQUMzRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTt3QkFDZixTQUFTLEVBQUUsU0FBUztxQkFDdkIsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOztvSEE3RVEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsa0ZDdkJwQyxndEdBbUZBOzJGRDVEYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4uc2VydmljZSc7XG5pbXBvcnQgeyBST1VURVJTIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3JvdXRlcnMvcm91dGVycyc7XG5pbXBvcnQgeyBQQUdFX1NJWkUgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQcml2YWN5VG9zUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL3ByaXZhY3ktdG9zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmcgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctdGVybXMtb2Ytc2VydmljZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1zLW9mLXNlcnZpY2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1zT2ZTZXJ2aWNlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICAgIHNlYXJjaFRleHQgPSAnJztcblxuICAgIGRhdGE6IFByaXZhY3lUb3NSZXNwb25zZSA9IHtcbiAgICAgICAgcHJvZHVjdF9wcml2YWN5X3NlcnZpY2VzOiBbXSxcbiAgICAgICAgb2JqZWN0X2NvdW50OiAwLFxuICAgICAgICB1bmZpbHRlcmVkX2NvdW50OiAwXG4gICAgfTtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBwcml2YXRlIHBhZ2UgPSAxO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25MYXp5TG9hZChldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBwYWdlRGV0YWlscyA9IEhlbHBlclNlcnZpY2Uub25UYWJsZUxhenlMb2FkKGV2ZW50KTtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZURldGFpbHMucGFnZTtcbiAgICAgICAgdGhpcy5nZXRBbGxUb3Moe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgcGFnZV9zaXplOiBQQUdFX1NJWkUsXG4gICAgICAgICAgICBvcmRlcl9ieTogcGFnZURldGFpbHMuc29ydEZpZWxkLFxuICAgICAgICAgICAgb3JkZXJfZGlyZWN0aW9uOiBwYWdlRGV0YWlscy5zb3J0T3JkZXIsXG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGV4dFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY2FsbCBhbGwgdG9zICovXG4gICAgcHJpdmF0ZSBnZXRBbGxUb3MocGFnaW5nOiBQYWdpbmcpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRBbGxUb3MocGFnaW5nLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IFByaXZhY3lUb3NSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGRlbGV0ZSB0b3MgKi9cbiAgICBvbkRlbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgICAgIEhlbHBlclNlcnZpY2UucmFpc2VEZWxldGVQb3B1cCgpLnRoZW4ocmVwID0+IHtcbiAgICAgICAgICAgIGlmIChyZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZS5kZWxldGVUb3MoaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uVG9zLkRlbGV0ZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbFRvcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3NpemU6IFBBR0VfU0laRVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgY3JlYXRlLXVzZXIgbXktM1wiPlxuICAgIDxoMiBjbGFzcz1cImNhcmQtdGl0bGUgcC0wIGZsb2F0LXN0YXJ0XCI+VGVybXMgb2YgU2VydmljZXM8L2gyPlxuICAgIDxidXR0b24gKnJiYWNBbGxvdz1cIidTdXBlckFkbWluJ1wiXG4gICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1lbmRcIlxuICAgICAgZGF0YS1jeT1cImNyZWF0ZS1Ub3NcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiW3JvdXRlcnMudG9zQW5kUHJpdmFjeURldGFpbHMgKyAnYWRkJ11cIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cy1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IENyZWF0ZSBUZXJtcyBvZiBTZXJ2aWNlc1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInByaW1lbmctZGF0YXRhYmxlLWNvbnRhaW5lciBtdCB0YWJsZS1yZXNwb25zaXZlXCJcbiAgW2NsYXNzLmhpZGVUYWJsZV09XCJkYXRhLnVuZmlsdGVyZWRfY291bnQgPT09IDBcIj5cbiAgPHAtdGFibGUgI2R0XG4gICAgW3ZhbHVlXT1cImRhdGEucHJvZHVjdF9wcml2YWN5X3NlcnZpY2VzXCJcbiAgICBbcGFnaW5hdG9yXT1cInRydWVcIlxuICAgIFtsYXp5XT1cInRydWVcIlxuICAgIFtyb3dzXT1cIlBBR0VfU0laRVwiXG4gICAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiXG4gICAgW3RvdGFsUmVjb3Jkc109XCJkYXRhLm9iamVjdF9jb3VudFwiXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgW2ZpbHRlckRlbGF5XT1cIjEwMDBcIlxuICAgIChvbkxhenlMb2FkKT1cIm9uTGF6eUxvYWQoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggbXQtMiBtZS0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIHNpemU9XCI1MFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggVG9zLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcbiAgICAgICAgICBjbGFzcz1cIm13LTkwXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBkYXRhLWhlYWQ9XCJQcml2YWN5XCI+UHJpdmFjeTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIGRhdGEtaGVhZD1cIlRlcm1zIG9mIFNlcnZpY2VzXCI+VGVybXMgb2YgU2VydmljZXM8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJhY3Rpb25zLWxpc3QtdHdvXCJcbiAgICAgICAgICBzY29wZT1cInRydWVcIj57eyAnTGFiZWwuQWN0aW9ucycgfCB0cmFuc2xvY28gfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCJcbiAgICAgIGxldC10b3M+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJOYW1lXCI+e3sgdG9zLnByaXZhY3kgfCByZW1vdmVIdG1sIHwgdGV4dFRydW5jYXRlOiAyMjAgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiVGVybXMgb2YgU2VydmljZXNcIj5cbiAgICAgICAgICB7eyB0b3MudG9zIHwgcmVtb3ZlSHRtbCB8IHRleHRUcnVuY2F0ZTogMjIwIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJBY3Rpb25cIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIGxpc3QtaW5saW5lXCI+XG4gICAgICAgICAgICA8IS0tIFNob3cgb25seSB0byBTdWJzY3JpcHRpb25TdXBlckFkbWluIG9yIFN1YnNjcmlwdGlvbk93bmVyIC0tPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1N1YnNjcmlwdGlvblN1cGVyQWRtaW4nXCJcbiAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW3JvdXRlcnMudG9zQW5kUHJpdmFjeURldGFpbHMgKyB0b3MuaWRdXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdCBlZGl0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJEZWxldGVcIlxuICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1N1cGVyQWRtaW4nXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKHRvcy5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG4gIDxkaXYgKm5nSWY9XCJkYXRhLm9iamVjdF9jb3VudCA9PT0gMCAmJiBkYXRhLnVuZmlsdGVyZWRfY291bnQgIT09IDBcIj5cbiAgICA8cHctbm8tZGF0YSBtZXNzYWdlPVwiTm8gUmVzdWx0XCI+IDwvcHctbm8tZGF0YT5cbiAgPC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiPnt7ICdMYWJlbC5Ub3RhbCcgfCB0cmFuc2xvY28gfX06IHt7IGRhdGEub2JqZWN0X2NvdW50IH19PC9zcGFuPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZGF0YS51bmZpbHRlcmVkX2NvdW50ID09PSAwXCI+XG4gIDxwdy1uby1kYXRhIFttZXNzYWdlXT1cIidUb3MuTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIj4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=
|