@posiwise/admin-module 0.0.179 → 0.0.181
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/fesm2022/posiwise-admin-module.mjs +464 -442
- package/fesm2022/posiwise-admin-module.mjs.map +1 -1
- package/lib/components/resources/resources-admin-details/resources-admin-details.component.d.ts +1 -1
- package/lib/components/subscriptions/subscription-users/subscription-users.component.d.ts +1 -1
- package/package.json +4 -6
- package/esm2022/index.mjs +0 -87
- package/esm2022/lib/admin-guard.service.mjs +0 -44
- package/esm2022/lib/admin-module.routing.mjs +0 -919
- package/esm2022/lib/admin.module.mjs +0 -485
- package/esm2022/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +0 -93
- package/esm2022/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +0 -98
- package/esm2022/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.mjs +0 -26
- package/esm2022/lib/components/config/global-config-details/global-config-details.component.mjs +0 -75
- package/esm2022/lib/components/config/global-config-list/global-config-list.component.mjs +0 -92
- package/esm2022/lib/components/config/global-config-tabs/global-config-tabs.component.mjs +0 -24
- package/esm2022/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +0 -101
- package/esm2022/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.mjs +0 -25
- package/esm2022/lib/components/credentials/credentials/credentials.component.mjs +0 -88
- package/esm2022/lib/components/credentials/credentials-details/credentials-details.component.mjs +0 -79
- package/esm2022/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +0 -31
- package/esm2022/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +0 -92
- package/esm2022/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +0 -102
- package/esm2022/lib/components/domain-config/domain-config-details/base-domain-config.component.mjs +0 -88
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +0 -731
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +0 -123
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +0 -57
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +0 -91
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +0 -144
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +0 -30
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +0 -31
- package/esm2022/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +0 -30
- package/esm2022/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +0 -98
- package/esm2022/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +0 -25
- package/esm2022/lib/components/faqs/add-faq/add-faq.component.mjs +0 -218
- package/esm2022/lib/components/faqs/edit-faq/edit-faq.component.mjs +0 -204
- package/esm2022/lib/components/faqs/faqs-list/faqs-list.component.mjs +0 -277
- package/esm2022/lib/components/faqs/faqs-tabs/faqs-tabs.component.mjs +0 -25
- package/esm2022/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +0 -84
- package/esm2022/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +0 -98
- package/esm2022/lib/components/generic/generic-insight/generic-insight.component.mjs +0 -12
- package/esm2022/lib/components/generic/generic-misc/generic-misc.component.mjs +0 -127
- package/esm2022/lib/components/generic/generic-tabs/generic-tabs.component.mjs +0 -31
- package/esm2022/lib/components/incidents/add-edit-incident/add-edit-incident.component.mjs +0 -152
- package/esm2022/lib/components/incidents/incidents-list/incidents-list.component.mjs +0 -118
- package/esm2022/lib/components/incidents/incidents-tabs/incidents-tabs.component.mjs +0 -25
- package/esm2022/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +0 -111
- package/esm2022/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.mjs +0 -25
- package/esm2022/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +0 -97
- package/esm2022/lib/components/mailer/mailer-details/mailer-details.component.mjs +0 -115
- package/esm2022/lib/components/mailer/mailer-list/mailer-list.component.mjs +0 -113
- package/esm2022/lib/components/mailer/mailer-tabs/mailer-tabs.component.mjs +0 -24
- package/esm2022/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +0 -87
- package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +0 -284
- package/esm2022/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +0 -76
- package/esm2022/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +0 -53
- package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items-view-details/newsletters-items-view-details.component.mjs +0 -59
- package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +0 -179
- package/esm2022/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +0 -103
- package/esm2022/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +0 -38
- package/esm2022/lib/components/permissions/permissions-details/permissions-details.component.mjs +0 -109
- package/esm2022/lib/components/permissions/permissions-list/permissions-list.component.mjs +0 -87
- package/esm2022/lib/components/permissions/permissions-tabs/permissions-tabs.component.mjs +0 -31
- package/esm2022/lib/components/permissions/role-details/role-details.component.mjs +0 -140
- package/esm2022/lib/components/permissions/roles-list/roles-list.component.mjs +0 -93
- package/esm2022/lib/components/products/product-details/product-details.component.mjs +0 -370
- package/esm2022/lib/components/products/products-insight/products-insight.component.mjs +0 -52
- package/esm2022/lib/components/products/products-list/products-list.component.mjs +0 -144
- package/esm2022/lib/components/products/products-tabs/products-tabs.component.mjs +0 -28
- package/esm2022/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +0 -55
- package/esm2022/lib/components/resources/resources-admin-details/resources-admin-details.component.mjs +0 -380
- package/esm2022/lib/components/resources/resources-admin-tabs/resources-admin-tabs.component.mjs +0 -33
- package/esm2022/lib/components/resources/resources-admin-tabs/resources-index/resources-index.component.mjs +0 -154
- package/esm2022/lib/components/resources/resources-admin-tabs/resources-insight/resources-insight.component.mjs +0 -54
- package/esm2022/lib/components/resources/resources-lists-insight/resources-lists-insight.component.mjs +0 -61
- package/esm2022/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +0 -120
- package/esm2022/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +0 -135
- package/esm2022/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +0 -210
- package/esm2022/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +0 -225
- package/esm2022/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +0 -66
- package/esm2022/lib/components/subscriptions/subscription-users/add-members/add-members.component.mjs +0 -173
- package/esm2022/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +0 -215
- package/esm2022/lib/components/subscriptions/subscriptions-insight/base-subscription-insight.component.mjs +0 -47
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-price/subscription-insight-average-price.component.mjs +0 -34
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-average-user/subscription-insight-average-user.component.mjs +0 -34
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-churn/subscription-insight-churn.component.mjs +0 -55
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +0 -103
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-product-session/subscription-insight-product-session.component.mjs +0 -34
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +0 -55
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.mjs +0 -23
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-user-session/subscription-insight-user-session.component.mjs +0 -34
- package/esm2022/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +0 -55
- package/esm2022/lib/components/subscriptions/subscriptions-list/invite-users/invite-users.component.mjs +0 -232
- package/esm2022/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +0 -311
- package/esm2022/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.mjs +0 -35
- package/esm2022/lib/components/tags/tags-category/tags-category.component.mjs +0 -153
- package/esm2022/lib/components/tags/tags-details/tags-details.component.mjs +0 -153
- package/esm2022/lib/components/tags/tags-list/tags-list.component.mjs +0 -145
- package/esm2022/lib/components/tags/tags-tabs/tags-tabs.component.mjs +0 -32
- package/esm2022/lib/components/tips/tip-detail/tip-detail.component.mjs +0 -88
- package/esm2022/lib/components/tips/tips-list/tips-list.component.mjs +0 -49
- package/esm2022/lib/components/tips/tips-tabs/tips-tabs.component.mjs +0 -25
- package/esm2022/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +0 -216
- package/esm2022/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +0 -200
- package/esm2022/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +0 -198
- package/esm2022/lib/components/tracking/events/events.component.mjs +0 -198
- package/esm2022/lib/components/tracking/tracking-tabs/tracking-tabs.component.mjs +0 -49
- package/esm2022/lib/components/tracking/versions/versions.component.mjs +0 -208
- package/esm2022/lib/components/users/user-details/user-details.component.mjs +0 -167
- package/esm2022/lib/components/users/users-insight/users-insight.component.mjs +0 -53
- package/esm2022/lib/components/users/users-list/users-list.component.mjs +0 -338
- package/esm2022/lib/components/users/users-tabs/users-tabs.component.mjs +0 -32
- package/esm2022/lib/shared/interface/admin-module-shared.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/api-response.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/contact-us.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/credential.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/domain-config.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/feedback-question.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/global-config.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/login-notification.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/newsletter.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/permission.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/privacy-tos.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/tip.interface.mjs +0 -2
- package/esm2022/lib/shared/interface/tracking.interface.mjs +0 -2
- package/esm2022/lib/shared/routers/routers.mjs +0 -40
- package/esm2022/posiwise-admin-module.mjs +0 -5
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, Injector } from '@angular/core';
|
|
2
|
-
import { AdminService } from '@posiwise/admin-module-utils';
|
|
3
|
-
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
4
|
-
import { PAGE_SIZE } from '@posiwise/common-utilities';
|
|
5
|
-
import { HelperService } from '@posiwise/helper-service';
|
|
6
|
-
import { ROUTERS } from '../../../shared/routers/routers';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@posiwise/admin-module-utils";
|
|
9
|
-
import * as i2 from "primeng/table";
|
|
10
|
-
import * as i3 from "primeng/api";
|
|
11
|
-
import * as i4 from "primeng/inputtext";
|
|
12
|
-
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
13
|
-
import * as i6 from "@angular/common";
|
|
14
|
-
import * as i7 from "@angular/forms";
|
|
15
|
-
import * as i8 from "@angular/router";
|
|
16
|
-
import * as i9 from "primeng/progressspinner";
|
|
17
|
-
import * as i10 from "@posiwise/shared-components";
|
|
18
|
-
import * as i11 from "@posiwise/directives";
|
|
19
|
-
import * as i12 from "@jsverse/transloco";
|
|
20
|
-
export class GlobalConfigListComponent extends AppBaseComponent {
|
|
21
|
-
constructor(adminService, injector, cdr) {
|
|
22
|
-
super(injector);
|
|
23
|
-
this.adminService = adminService;
|
|
24
|
-
this.cdr = cdr;
|
|
25
|
-
this.searchText = '';
|
|
26
|
-
this.isLoaded = true;
|
|
27
|
-
this.loading = true;
|
|
28
|
-
this.page = 1;
|
|
29
|
-
this.fieldTypes = [];
|
|
30
|
-
this.routers = ROUTERS;
|
|
31
|
-
this.data = {
|
|
32
|
-
global_configs: [],
|
|
33
|
-
object_count: 0,
|
|
34
|
-
unfiltered_count: 0
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
ngAfterViewChecked() {
|
|
38
|
-
this.cdr.detectChanges();
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.getFieldTypes();
|
|
42
|
-
}
|
|
43
|
-
onLazyLoad(event) {
|
|
44
|
-
const pageDetails = HelperService.onTableLazyLoad(event);
|
|
45
|
-
this.page = pageDetails.page;
|
|
46
|
-
this.getAllGlobalConfigs({
|
|
47
|
-
page: this.page,
|
|
48
|
-
page_size: PAGE_SIZE,
|
|
49
|
-
order_by: pageDetails.sortField,
|
|
50
|
-
order_direction: pageDetails.sortOrder,
|
|
51
|
-
search: this.searchText
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/** Function to get all configs */
|
|
55
|
-
getAllGlobalConfigs(paging) {
|
|
56
|
-
this.isLoaded = false;
|
|
57
|
-
this.adminService
|
|
58
|
-
.getAllGlobalConfigs(paging)
|
|
59
|
-
.subscribe((response) => {
|
|
60
|
-
this.data = response;
|
|
61
|
-
})
|
|
62
|
-
.add(() => {
|
|
63
|
-
this.loading = false;
|
|
64
|
-
this.isLoaded = true;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
onDelete(id) {
|
|
68
|
-
HelperService.raiseDeletePopup().then(rep => {
|
|
69
|
-
if (rep.value) {
|
|
70
|
-
this.adminService.deleteGlobalConfig(id).subscribe(() => {
|
|
71
|
-
this.toast.success(this.translation.translate('Admin.GlobalConfigMessage.DeletedMessage'));
|
|
72
|
-
this.getAllGlobalConfigs({ page: this.page, page_size: PAGE_SIZE });
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
getFieldTypes() {
|
|
78
|
-
this.adminService.getAllFieldType().subscribe((response) => {
|
|
79
|
-
this.fieldTypes = response;
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
ngOnDestroy() {
|
|
83
|
-
super.ngOnDestroy();
|
|
84
|
-
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigListComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GlobalConfigListComponent, selector: "pw-global-config-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\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=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\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]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\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 list-action\">\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 (keydown.enter)=\"onDelete(config.id)\"\n (keydown.space)=\"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 [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" />\n</div>\n <span *ngIf=\"data.object_count !== 0\" 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 [withImage]=\"true\" [message]=\"'Admin.GlobalConfigMessage.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", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "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: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i9.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i10.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i11.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color", "colorByName", "dataName"] }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }] }); }
|
|
87
|
-
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigListComponent, decorators: [{
|
|
89
|
-
type: Component,
|
|
90
|
-
args: [{ selector: 'pw-global-config-list', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\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=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\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]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\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 list-action\">\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 (keydown.enter)=\"onDelete(config.id)\"\n (keydown.space)=\"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 [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" />\n</div>\n <span *ngIf=\"data.object_count !== 0\" 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 [withImage]=\"true\" [message]=\"'Admin.GlobalConfigMessage.NoDataMessage' | transloco\" > </pw-no-data>\n</div>\n" }]
|
|
91
|
-
}], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb25maWcvZ2xvYmFsLWNvbmZpZy1saXN0L2dsb2JhbC1jb25maWctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlnL2dsb2JhbC1jb25maWctbGlzdC9nbG9iYWwtY29uZmlnLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFNMUQsTUFBTSxPQUFPLHlCQUNULFNBQVEsZ0JBQWdCO0lBb0J4QixZQUNxQixZQUEwQixFQUMzQyxRQUFrQixFQUNELEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcEIzQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVMLFNBQUksR0FBRyxDQUFDLENBQUM7UUFFbkIsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUUxQixZQUFPLEdBQUcsT0FBTyxDQUFDO1FBRWxCLFNBQUksR0FBeUI7WUFDekIsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLENBQUM7WUFDZixnQkFBZ0IsRUFBRSxDQUFDO1NBQ3RCLENBQUM7SUFRRixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixTQUFTLEVBQUUsU0FBUztZQUNwQixRQUFRLEVBQUUsV0FBVyxDQUFDLFNBQVM7WUFDL0IsZUFBZSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0NBQWtDO0lBQzFCLG1CQUFtQixDQUFDLE1BQWM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVk7YUFDWixtQkFBbUIsQ0FBQyxNQUFNLENBQUM7YUFDM0IsU0FBUyxDQUFDLENBQUMsUUFBOEIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBVTtRQUNmLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQ3pFLENBQUM7b0JBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hFLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FwRlEseUJBQXlCO21HQUF6Qix5QkFBeUIsb0ZDdkJ0QywreUlBMEdBOzs0RkRuRmEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNJLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQQUdFX1NJWkUsIFBhZ2luZyB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuXG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBHbG9iYWxDb25maWdSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvZ2xvYmFsLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWdsb2JhbC1jb25maWctbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dsb2JhbC1jb25maWctbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsQ29uZmlnTGlzdENvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBzZWFyY2hUZXh0ID0gJyc7XG5cbiAgICBpc0xvYWRlZCA9IHRydWU7XG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBwcm90ZWN0ZWQgcGFnZSA9IDE7XG5cbiAgICBmaWVsZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBkYXRhOiBHbG9iYWxDb25maWdSZXNwb25zZSA9IHtcbiAgICAgICAgZ2xvYmFsX2NvbmZpZ3M6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRGaWVsZFR5cGVzKCk7XG4gICAgfVxuXG4gICAgb25MYXp5TG9hZChldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBwYWdlRGV0YWlscyA9IEhlbHBlclNlcnZpY2Uub25UYWJsZUxhenlMb2FkKGV2ZW50KTtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZURldGFpbHMucGFnZTtcbiAgICAgICAgdGhpcy5nZXRBbGxHbG9iYWxDb25maWdzKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgb3JkZXJfYnk6IHBhZ2VEZXRhaWxzLnNvcnRGaWVsZCxcbiAgICAgICAgICAgIG9yZGVyX2RpcmVjdGlvbjogcGFnZURldGFpbHMuc29ydE9yZGVyLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaFRleHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCBhbGwgY29uZmlncyAqL1xuICAgIHByaXZhdGUgZ2V0QWxsR2xvYmFsQ29uZmlncyhwYWdpbmc6IFBhZ2luZykge1xuICAgICAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QWxsR2xvYmFsQ29uZmlncyhwYWdpbmcpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogR2xvYmFsQ29uZmlnUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGVsZXRlKGlkOiBudW1iZXIpIHtcbiAgICAgICAgSGVscGVyU2VydmljZS5yYWlzZURlbGV0ZVBvcHVwKCkudGhlbihyZXAgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmRlbGV0ZUdsb2JhbENvbmZpZyhpZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuRGVsZXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbEdsb2JhbENvbmZpZ3MoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkVHlwZXMoKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmdldEFsbEZpZWxkVHlwZSgpLnN1YnNjcmliZSgocmVzcG9uc2U6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkVHlwZXMgPSByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlIHAtMCBmbG9hdC1zdGFydFwiPkdsb2JhbCBDb25maWdzPC9oMj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1wcmltYXJ5IGZsb2F0LWVuZFwiXG4gICAgICBkYXRhLWN5PVwiYWRkLWdsb2JhbC1jb25maWdcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiW3JvdXRlcnMuZ2xvYmFsQ29uZmlnRGV0YWlscyArICdhZGQnXVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIHt7ICdBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLkFkZEdsb2JhbENvbmZpZycgfCB0cmFuc2xvY28gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCIhaXNMb2FkZWRcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIG10IHRhYmxlLXJlc3BvbnNpdmVcIlxuICBbY2xhc3MuaGlkZVRhYmxlXT1cImRhdGEudW5maWx0ZXJlZF9jb3VudCA9PT0gMFwiPlxuICA8cC10YWJsZSAjZHRcbiAgICBbdmFsdWVdPVwiZGF0YS5nbG9iYWxfY29uZmlnc1wiXG4gICAgW3BhZ2luYXRvcl09XCJkYXRhLm9iamVjdF9jb3VudCAhPT0gMFwiXG4gICAgW2xhenldPVwidHJ1ZVwiXG4gICAgW3Jvd3NdPVwiUEFHRV9TSVpFXCJcbiAgICBbdG90YWxSZWNvcmRzXT1cImRhdGEub2JqZWN0X2NvdW50XCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICBbZmlsdGVyRGVsYXldPVwiMTAwMFwiXG4gICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcbiAgICBbY3VzdG9tU29ydF09XCJ0cnVlXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCBtdC0yIG1lLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgc2l6ZT1cIjUwXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBnbG9iYWwgY29uZmlncy4uLlwiXG4gICAgICAgICAgKGlucHV0KT1cImR0LmZpbHRlckdsb2JhbCgkZXZlbnQudGFyZ2V0LnZhbHVlLCAnY29udGFpbnMnKVwiXG4gICAgICAgICAgY2xhc3M9XCJtdy05MFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgcFNvcnRhYmxlQ29sdW1uPVwibmFtZVwiPlxuICAgICAgICAgIHt7ICdBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLk5hbWUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJuYW1lXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJmaWVsZF90eXBlXCI+XG4gICAgICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuRmllbGRUeXBlJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiZmllbGRfdHlwZVwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgcFNvcnRhYmxlQ29sdW1uPVwiZGVmYXVsdFwiPlxuICAgICAgICAgIHt7ICdBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLkRlZmF1bHQnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJkZWZhdWx0XCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbnMtbGlzdC10d29cIj57eyAnTGFiZWwuQWN0aW9ucycgfCB0cmFuc2xvY28gfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCJcbiAgICAgIGxldC1jb25maWc+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJOYW1lXCI+e3sgY29uZmlnLm5hbWUgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiRmllbGQgVHlwZVwiPlxuICAgICAgICAgIDxzcGFuIFthcHBEeW5hbWljQmFkZ2VdPVwieyBpdGVtc0FycmF5OiBmaWVsZFR5cGVzLCBpdGVtOiBjb25maWc/LmZpZWxkX3R5cGUgfVwiXG4gICAgICAgICAgICBjb2xvcj1cImN5YW5cIlxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiPlxuICAgICAgICAgICAge3sgY29uZmlnLmZpZWxkX3R5cGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJEZWZhdWx0XCI+XG4gICAgICAgICAgPHNwYW4gW2FwcER5bmFtaWNCYWRnZV09XCJ7IGl0ZW1zQXJyYXk6IFt0cnVlLCBmYWxzZV0sIGl0ZW06IGNvbmZpZz8uZGVmYXVsdCB9XCJcbiAgICAgICAgICAgIGNvbG9yPVwic3VjY2Vzcy1kYW5nZXJcIlxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiPnt7IGNvbmZpZz8uZGVmYXVsdCA/ICdZZXMnIDogJ05vJyB9fTwvc3Bhbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkFjdGlvblwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbGlzdC1pbmxpbmUgbGlzdC1hY3Rpb25cIj5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRWRpdFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWUtMiBtZS1zbS0zXCJcbiAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW3JvdXRlcnMuZ2xvYmFsQ29uZmlnRGV0YWlscyArIGNvbmZpZy5pZF1cIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0IGVkaXQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgbmdiVG9vbHRpcD1cIkRlbGV0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWUtMiBtZS1zbS0zXCI+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZShjb25maWcuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25EZWxldGUoY29uZmlnLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uRGVsZXRlKGNvbmZpZy5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG48ZGl2ICpuZ0lmPVwiZGF0YS5vYmplY3RfY291bnQgPT09IDAgJiYgZGF0YS51bmZpbHRlcmVkX2NvdW50ICE9PSAwXCI+XG4gICAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ1NlYXJjaC5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiIFtkZXNjcmlwdGlvbl09XCInU2VhcmNoLk5vRGF0YURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiIC8+XG48L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCJkYXRhLm9iamVjdF9jb3VudCAhPT0gMFwiIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiPnt7ICdMYWJlbC5Ub3RhbCcgfCB0cmFuc2xvY28gfX06IHt7ICBkYXRhLm9iamVjdF9jb3VudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImRhdGEudW5maWx0ZXJlZF9jb3VudCA9PT0gMCAmJiBpc0xvYWRlZFwiPlxuICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiID4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@posiwise/shared-components";
|
|
4
|
-
export class GlobalConfigTabsComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.items = [
|
|
7
|
-
{
|
|
8
|
-
id: 'global-config',
|
|
9
|
-
label: 'Global Configs',
|
|
10
|
-
icon: 'fa fa-fw fa-cog',
|
|
11
|
-
routerLink: ['/admin/global-config/list']
|
|
12
|
-
}
|
|
13
|
-
];
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GlobalConfigTabsComponent, selector: "ng-component", ngImport: i0, template: `<pw-tabs [items]="items"></pw-tabs>`, isInline: true, dependencies: [{ kind: "component", type: i1.PwTabsComponent, selector: "pw-tabs", inputs: ["items", "withSubscription"] }] }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigTabsComponent, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{
|
|
21
|
-
template: `<pw-tabs [items]="items"></pw-tabs>`
|
|
22
|
-
}]
|
|
23
|
-
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy10YWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb25maWcvZ2xvYmFsLWNvbmZpZy10YWJzL2dsb2JhbC1jb25maWctdGFicy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTzFDLE1BQU0sT0FBTyx5QkFBeUI7SUFIdEM7UUFJSSxVQUFLLEdBQWU7WUFDaEI7Z0JBQ0ksRUFBRSxFQUFFLGVBQWU7Z0JBQ25CLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFVBQVUsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQzVDO1NBQ0osQ0FBQztLQUNMOytHQVRZLHlCQUF5QjttR0FBekIseUJBQXlCLG9EQUZ4QixxQ0FBcUM7OzRGQUV0Qyx5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFDQUFxQztpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBgPHB3LXRhYnMgW2l0ZW1zXT1cIml0ZW1zXCI+PC9wdy10YWJzPmBcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsQ29uZmlnVGFic0NvbXBvbmVudCB7XG4gICAgaXRlbXM6IE1lbnVJdGVtW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnZ2xvYmFsLWNvbmZpZycsXG4gICAgICAgICAgICBsYWJlbDogJ0dsb2JhbCBDb25maWdzJyxcbiAgICAgICAgICAgIGljb246ICdmYSBmYS1mdyBmYS1jb2cnLFxuICAgICAgICAgICAgcm91dGVyTGluazogWycvYWRtaW4vZ2xvYmFsLWNvbmZpZy9saXN0J11cbiAgICAgICAgfVxuICAgIF07XG59XG4iXX0=
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, Injector } from '@angular/core';
|
|
2
|
-
import { AdminService } from '@posiwise/admin-module-utils';
|
|
3
|
-
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
4
|
-
import { PermissionService } from '@posiwise/common-services';
|
|
5
|
-
import { PAGE_SIZE } from '@posiwise/common-utilities';
|
|
6
|
-
import { HelperService } from '@posiwise/helper-service';
|
|
7
|
-
import swal from 'sweetalert2';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@posiwise/admin-module-utils";
|
|
10
|
-
import * as i2 from "primeng/table";
|
|
11
|
-
import * as i3 from "primeng/api";
|
|
12
|
-
import * as i4 from "primeng/dropdown";
|
|
13
|
-
import * as i5 from "primeng/inputtext";
|
|
14
|
-
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
15
|
-
import * as i7 from "@angular/common";
|
|
16
|
-
import * as i8 from "@angular/forms";
|
|
17
|
-
import * as i9 from "primeng/progressspinner";
|
|
18
|
-
import * as i10 from "@posiwise/shared-components";
|
|
19
|
-
import * as i11 from "@jsverse/transloco";
|
|
20
|
-
import * as i12 from "@posiwise/pipes";
|
|
21
|
-
export class ContactUsListComponent extends AppBaseComponent {
|
|
22
|
-
constructor(injector, adminService, cdr) {
|
|
23
|
-
super(injector);
|
|
24
|
-
this.adminService = adminService;
|
|
25
|
-
this.cdr = cdr;
|
|
26
|
-
this.page = 1;
|
|
27
|
-
this.searchText = '';
|
|
28
|
-
this.loading = true;
|
|
29
|
-
this.isLoaded = false;
|
|
30
|
-
this.data = {
|
|
31
|
-
contact_request: [],
|
|
32
|
-
object_count: 0,
|
|
33
|
-
unfiltered_count: 0
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
this.subscriptionId = PermissionService.selectedSubscription?.id;
|
|
38
|
-
this.productId = PermissionService.selectedProduct?.id;
|
|
39
|
-
}
|
|
40
|
-
ngAfterViewChecked() {
|
|
41
|
-
this.cdr.detectChanges();
|
|
42
|
-
}
|
|
43
|
-
onLazyLoad(event) {
|
|
44
|
-
const pageDetails = HelperService.onTableLazyLoad(event);
|
|
45
|
-
this.page = pageDetails.page;
|
|
46
|
-
this.getAllContactUs({
|
|
47
|
-
page: this.page,
|
|
48
|
-
page_size: PAGE_SIZE,
|
|
49
|
-
order_by: pageDetails.sortField,
|
|
50
|
-
order_direction: pageDetails.sortOrder,
|
|
51
|
-
search: this.searchText
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
getAllContactUs(paging) {
|
|
55
|
-
this.isLoaded = false;
|
|
56
|
-
this.adminService
|
|
57
|
-
.getAllContactUs(this.subscriptionId, this.productId, this.closed, paging)
|
|
58
|
-
.subscribe((response) => {
|
|
59
|
-
this.data = response;
|
|
60
|
-
})
|
|
61
|
-
.add(() => {
|
|
62
|
-
this.isLoaded = true;
|
|
63
|
-
this.loading = false;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
toggleRecord(id, action) {
|
|
67
|
-
swal.fire({
|
|
68
|
-
title: 'Update',
|
|
69
|
-
text: `Are you sure want to ${action ? 'Close' : 'reOpen'} this record?`,
|
|
70
|
-
showCancelButton: true,
|
|
71
|
-
reverseButtons: true,
|
|
72
|
-
icon: 'warning'
|
|
73
|
-
}).then(rep => {
|
|
74
|
-
if (rep.value) {
|
|
75
|
-
const data = {
|
|
76
|
-
subscription_id: this.subscriptionId,
|
|
77
|
-
closed: action,
|
|
78
|
-
product_id: this.productId
|
|
79
|
-
};
|
|
80
|
-
this.adminService.updateContactUs(id, data).subscribe(res => {
|
|
81
|
-
this.toast.success(res.message);
|
|
82
|
-
this.getAllContactUs({ page: this.page, page_size: PAGE_SIZE });
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
filterClosed(value) {
|
|
88
|
-
this.closed = value;
|
|
89
|
-
this.getAllContactUs({ page: this.page, page_size: PAGE_SIZE });
|
|
90
|
-
}
|
|
91
|
-
ngOnDestroy() {
|
|
92
|
-
super.ngOnDestroy();
|
|
93
|
-
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContactUsListComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContactUsListComponent, selector: "pw-contact-us-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end\">\n <h2 class=\"card-title p-0 float-start\">Contact Us</h2>\n </div>\n <div class=\"col-12 mb-3\">\n <p>The <strong>Contact US</strong> module shows all submissions from the contact forms embedded on select landing pages.<br/>\n It\u2019s your central hub to track and follow up with interested users or potential leads.</p>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\" *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]=\"data.object_count !== 0\"\n [rows]=\"PAGE_SIZE\"\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=\"search-contact\">\n <div class=\"col-12 col-sm-3\">\n <p-dropdown\n [options]=\"[\n { label: 'Select status', value: null },\n { label: 'Open', value: false },\n { label: 'Closed', value: true }\n ]\"\n placeholder=\"Select status\"\n (onChange)=\"filterClosed($event.value)\">\n </p-dropdown>\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\">\n <span\n [ngbTooltip]=\"item?.message\"\n container=\"body\"\n tooltipClass=\"custom-tooltip\"\n placement=\"bottom\"\n >\n {{ item?.message | textTruncate: 200 }}\n </span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline list-action\">\n <li *ngIf=\"!item.closed\"\n ngbTooltip=\"Close\"\n class=\"me-2 me-sm-3\"\n (keydown.enter)=\"toggleRecord(item.id, true)\"\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 (keydown.enter)=\"onKeyDown($event, item.id)\"\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 [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span class=\"total-records-count\" *ngIf=\"data.object_count !== 0\">Total: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" message=\"No Contact Requests\"> </pw-no-data>\n</div>\n", styles: [".search-contact{display:flex;justify-content:space-between}@media (min-width: 320px) and (max-width: 720px){.search-contact{display:block}}\n"], dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "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: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i4.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i6.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i9.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i10.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "pipe", type: i11.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i12.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i12.TextTruncatePipe, name: "textTruncate" }] }); }
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContactUsListComponent, decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{ selector: 'pw-contact-us-list', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center text-end\">\n <h2 class=\"card-title p-0 float-start\">Contact Us</h2>\n </div>\n <div class=\"col-12 mb-3\">\n <p>The <strong>Contact US</strong> module shows all submissions from the contact forms embedded on select landing pages.<br/>\n It\u2019s your central hub to track and follow up with interested users or potential leads.</p>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\" *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]=\"data.object_count !== 0\"\n [rows]=\"PAGE_SIZE\"\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=\"search-contact\">\n <div class=\"col-12 col-sm-3\">\n <p-dropdown\n [options]=\"[\n { label: 'Select status', value: null },\n { label: 'Open', value: false },\n { label: 'Closed', value: true }\n ]\"\n placeholder=\"Select status\"\n (onChange)=\"filterClosed($event.value)\">\n </p-dropdown>\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\">\n <span\n [ngbTooltip]=\"item?.message\"\n container=\"body\"\n tooltipClass=\"custom-tooltip\"\n placement=\"bottom\"\n >\n {{ item?.message | textTruncate: 200 }}\n </span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline list-action\">\n <li *ngIf=\"!item.closed\"\n ngbTooltip=\"Close\"\n class=\"me-2 me-sm-3\"\n (keydown.enter)=\"toggleRecord(item.id, true)\"\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 (keydown.enter)=\"onKeyDown($event, item.id)\"\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 [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span class=\"total-records-count\" *ngIf=\"data.object_count !== 0\">Total: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" message=\"No Contact Requests\"> </pw-no-data>\n</div>\n", styles: [".search-contact{display:flex;justify-content:space-between}@media (min-width: 320px) and (max-width: 720px){.search-contact{display:block}}\n"] }]
|
|
100
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AdminService }, { type: i0.ChangeDetectorRef }] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LXVzL2NvbnRhY3QtdXMtbGlzdC9jb250YWN0LXVzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhY3QtdXMvY29udGFjdC11cy1saXN0L2NvbnRhY3QtdXMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQixNQUFNLE9BQU8sc0JBQ1QsU0FBUSxnQkFBZ0I7SUFvQnhCLFlBQ0ksUUFBa0IsRUFDRCxZQUEwQixFQUMxQixHQUFzQjtRQUV2QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBCbkMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVqQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFNBQUksR0FBc0I7WUFDdEIsZUFBZSxFQUFFLEVBQUU7WUFDbkIsWUFBWSxFQUFFLENBQUM7WUFDZixnQkFBZ0IsRUFBRSxDQUFDO1NBQ3RCLENBQUM7SUFZRixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQy9CLGVBQWUsRUFBRSxXQUFXLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFjO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZO2FBQ1osZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQzthQUN6RSxTQUFTLENBQUMsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDekIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFVLEVBQUUsTUFBZTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ04sS0FBSyxFQUFFLFFBQVE7WUFDZixJQUFJLEVBQUUsd0JBQXdCLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLGVBQWU7WUFDeEUsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixjQUFjLEVBQUUsSUFBSTtZQUNwQixJQUFJLEVBQUUsU0FBUztTQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1YsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osTUFBTSxJQUFJLEdBQUc7b0JBQ1QsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjO29CQUNwQyxNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQzdCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BFLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0E1RlEsc0JBQXNCO21HQUF0QixzQkFBc0IsaUZDekJuQyw4bUtBdUlBOzs0RkQ5R2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgUEFHRV9TSVpFLCBQYWdpbmcgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCBzd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuaW1wb3J0IHsgQ29udGFjdFVzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2NvbnRhY3QtdXMuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1jb250YWN0LXVzLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LXVzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9jb250YWN0LXVzLWxpc3QuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3RVc0xpc3RDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgcHJpdmF0ZSBwYWdlID0gMTtcblxuICAgIHNlYXJjaFRleHQgPSAnJztcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuICAgIGlzTG9hZGVkID0gZmFsc2U7XG5cbiAgICBkYXRhOiBDb250YWN0VXNSZXNwb25zZSA9IHtcbiAgICAgICAgY29udGFjdF9yZXF1ZXN0OiBbXSxcbiAgICAgICAgb2JqZWN0X2NvdW50OiAwLFxuICAgICAgICB1bmZpbHRlcmVkX2NvdW50OiAwXG4gICAgfTtcblxuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgcHJvZHVjdElkOiBudW1iZXI7XG4gICAgY2xvc2VkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICAgICAgdGhpcy5wcm9kdWN0SWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFByb2R1Y3Q/LmlkO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uTGF6eUxvYWQoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFnZURldGFpbHMgPSBIZWxwZXJTZXJ2aWNlLm9uVGFibGVMYXp5TG9hZChldmVudCk7XG4gICAgICAgIHRoaXMucGFnZSA9IHBhZ2VEZXRhaWxzLnBhZ2U7XG4gICAgICAgIHRoaXMuZ2V0QWxsQ29udGFjdFVzKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgb3JkZXJfYnk6IHBhZ2VEZXRhaWxzLnNvcnRGaWVsZCxcbiAgICAgICAgICAgIG9yZGVyX2RpcmVjdGlvbjogcGFnZURldGFpbHMuc29ydE9yZGVyLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaFRleHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxDb250YWN0VXMocGFnaW5nOiBQYWdpbmcpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldEFsbENvbnRhY3RVcyh0aGlzLnN1YnNjcmlwdGlvbklkLCB0aGlzLnByb2R1Y3RJZCwgdGhpcy5jbG9zZWQsIHBhZ2luZylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBDb250YWN0VXNSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlUmVjb3JkKGlkOiBudW1iZXIsIGFjdGlvbjogYm9vbGVhbikge1xuICAgICAgICBzd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdVcGRhdGUnLFxuICAgICAgICAgICAgdGV4dDogYEFyZSB5b3Ugc3VyZSB3YW50IHRvICR7YWN0aW9uID8gJ0Nsb3NlJyA6ICdyZU9wZW4nfSB0aGlzIHJlY29yZD9gLFxuICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIHJldmVyc2VCdXR0b25zOiB0cnVlLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgIH0pLnRoZW4ocmVwID0+IHtcbiAgICAgICAgICAgIGlmIChyZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25faWQ6IHRoaXMuc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlZDogYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0X2lkOiB0aGlzLnByb2R1Y3RJZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlQ29udGFjdFVzKGlkLCBkYXRhKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHJlcy5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb250YWN0VXMoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmaWx0ZXJDbG9zZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5nZXRBbGxDb250YWN0VXMoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHRleHQtZW5kXCI+XG4gICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZSBwLTAgZmxvYXQtc3RhcnRcIj5Db250YWN0IFVzPC9oMj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItM1wiPlxuICAgIDxwPlRoZSA8c3Ryb25nPkNvbnRhY3QgVVM8L3N0cm9uZz4gbW9kdWxlIHNob3dzIGFsbCBzdWJtaXNzaW9ucyBmcm9tIHRoZSBjb250YWN0IGZvcm1zIGVtYmVkZGVkIG9uIHNlbGVjdCBsYW5kaW5nIHBhZ2VzLjxici8+XG4gICAgSXTigJlzIHlvdXIgY2VudHJhbCBodWIgdG8gdHJhY2sgYW5kIGZvbGxvdyB1cCB3aXRoIGludGVyZXN0ZWQgdXNlcnMgb3IgcG90ZW50aWFsIGxlYWRzLjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCIgKm5nSWY9XCIhaXNMb2FkZWRcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIHRhYmxlLXJlc3BvbnNpdmUgbXQtMFwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwiZGF0YS51bmZpbHRlcmVkX2NvdW50ID09PSAwXCI+XG4gIDxwLXRhYmxlICN0dFxuICAgIFt2YWx1ZV09XCJkYXRhLmNvbnRhY3RfcmVxdWVzdFwiXG4gICAgW3BhZ2luYXRvcl09XCJkYXRhLm9iamVjdF9jb3VudCAhPT0gMFwiXG4gICAgW3Jvd3NdPVwiUEFHRV9TSVpFXCJcbiAgICBbdG90YWxSZWNvcmRzXT1cImRhdGEub2JqZWN0X2NvdW50XCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICBbZmlsdGVyRGVsYXldPVwiMTAwMFwiXG4gICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcbiAgICBbY3VzdG9tU29ydF09XCJ0cnVlXCI+XG4gICAgPCEtLXNvcnQgb3JkZXIgc2hvdWxkIGJlIGRlZmF1bHQgZW1wdHkgd2hlbiBwYWdlIGxvYWQtLT5cblxuICAgIDwhLS0gQ2FwdGlvbiBIZWFkZXIsIFNlYXJjaCBCYXIgLS0+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFjdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgIFtvcHRpb25zXT1cIltcbiAgICAgICAgICAgICAgeyBsYWJlbDogJ1NlbGVjdCBzdGF0dXMnLCB2YWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgICB7IGxhYmVsOiAnT3BlbicsIHZhbHVlOiBmYWxzZSB9LFxuICAgICAgICAgICAgICB7IGxhYmVsOiAnQ2xvc2VkJywgdmFsdWU6IHRydWUgfVxuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBzdGF0dXNcIlxuICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImZpbHRlckNsb3NlZCgkZXZlbnQudmFsdWUpXCI+XG4gICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG1zLWF1dG9cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCBtdC0yIG1lLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgIHNpemU9XCI1MFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgICAgKGlucHV0KT1cInR0LmZpbHRlckdsb2JhbCgkZXZlbnQudGFyZ2V0LnZhbHVlLCAnY29udGFpbnMnKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS0gQ29sdW1uIEhlYWRlciAtLT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cImNyZWF0ZWRfYXRcIj5cbiAgICAgICAgICB7eyAnQWRtaW4uQ29udGFjdFVzLkNyZWF0ZWRBdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cImNyZWF0ZWRfYXRcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cIm5hbWVcIj5cbiAgICAgICAgICB7eyAnTGFiZWwuTmFtZScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cIm5hbWVcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cImVtYWlsXCI+XG4gICAgICAgICAge3sgJ0xhYmVsLkVtYWlsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiZW1haWxcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cInN1YmplY3RcIj5cbiAgICAgICAgICB7eyAnQWRtaW4uQ29udGFjdFVzLlN1YmplY3QnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJzdWJqZWN0XCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJtZXNzYWdlXCI+XG4gICAgICAgICAge3sgJ0FkbWluLkNvbnRhY3RVcy5NZXNzYWdlJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwibWVzc2FnZVwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIGNsYXNzPVwiYWN0aW9ucy1saXN0LXR3b1wiXG4gICAgICAgICAgc2NvcGU9XCJ0cnVlXCI+e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS0gVGFibGUgQm9keSAtLT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgICBsZXQtaXRlbT5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cImNyZWF0ZWRfYXRcIj57eyBpdGVtPy5jcmVhdGVkX2F0IHwgZGF0ZUZvcm1hdCB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJuYW1lXCI+e3sgaXRlbT8ubmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJlbWFpbFwiPlxuICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86e3sgaXRlbT8uZW1haWwgfX1cIj57eyBpdGVtPy5lbWFpbCB9fTwvYT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cInN1YmplY3RcIj57eyBpdGVtPy5zdWJqZWN0IH19PC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiaXRlbT8ubWVzc2FnZVwiXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgIHRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtPy5tZXNzYWdlIHwgdGV4dFRydW5jYXRlOiAyMDAgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJBY3Rpb25cIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIGxpc3QtaW5saW5lIGxpc3QtYWN0aW9uXCI+XG4gICAgICAgICAgICA8bGkgKm5nSWY9XCIhaXRlbS5jbG9zZWRcIlxuICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1lLTIgbWUtc20tM1wiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZVJlY29yZChpdGVtLmlkLCB0cnVlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWNvcmQoaXRlbS5pZCwgdHJ1ZSlcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lcyBkZWxldGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJpdGVtLmNsb3NlZFwiXG4gICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJSZSBPcGVuXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbktleURvd24oJGV2ZW50LCBpdGVtLmlkKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWNvcmQoaXRlbS5pZCwgZmFsc2UpXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmV0d2VldCBlZGl0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC10YWJsZT5cbjxkaXYgKm5nSWY9XCJkYXRhLm9iamVjdF9jb3VudCA9PT0gMCAmJiBkYXRhLnVuZmlsdGVyZWRfY291bnQgIT09IDBcIj5cbiAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidTZWFyY2guTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIiBbZGVzY3JpcHRpb25dPVwiJ1NlYXJjaC5Ob0RhdGFEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiA+XG4gICAgPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiICAqbmdJZj1cImRhdGEub2JqZWN0X2NvdW50ICE9PSAwXCI+VG90YWw6IHt7IGRhdGEub2JqZWN0X2NvdW50IH19PC9zcGFuPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZGF0YS51bmZpbHRlcmVkX2NvdW50ID09PSAwICYmIGlzTG9hZGVkXCI+XG4gIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIG1lc3NhZ2U9XCJObyBDb250YWN0IFJlcXVlc3RzXCI+IDwvcHctbm8tZGF0YT5cbjwvZGl2PlxuIl19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@posiwise/shared-components";
|
|
4
|
-
export class ContactUsTabsComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.items = [
|
|
7
|
-
{
|
|
8
|
-
id: 'contact-us',
|
|
9
|
-
label: 'Contact Us',
|
|
10
|
-
icon: 'far fa-fw fa-address-book',
|
|
11
|
-
routerLink: ['/admin/contact-us/list']
|
|
12
|
-
}
|
|
13
|
-
];
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContactUsTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContactUsTabsComponent, selector: "contact-us-tabs", ngImport: i0, template: `<pw-tabs [items]="items"></pw-tabs>`, isInline: true, dependencies: [{ kind: "component", type: i1.PwTabsComponent, selector: "pw-tabs", inputs: ["items", "withSubscription"] }] }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContactUsTabsComponent, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{
|
|
21
|
-
template: `<pw-tabs [items]="items"></pw-tabs>`,
|
|
22
|
-
selector: 'contact-us-tabs'
|
|
23
|
-
}]
|
|
24
|
-
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy10YWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LXVzL2NvbnRhY3QtdXMtdGFicy9jb250YWN0LXVzLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVExQyxNQUFNLE9BQU8sc0JBQXNCO0lBSm5DO1FBS0ksVUFBSyxHQUFlO1lBQ2hCO2dCQUNJLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUM7YUFDekM7U0FDSixDQUFDO0tBQ0w7K0dBVFksc0JBQXNCO21HQUF0QixzQkFBc0IsdURBSHJCLHFDQUFxQzs7NEZBR3RDLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxRQUFRLEVBQUUsaUJBQWlCO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGA8cHctdGFicyBbaXRlbXNdPVwiaXRlbXNcIj48L3B3LXRhYnM+YCxcbiAgICBzZWxlY3RvcjogJ2NvbnRhY3QtdXMtdGFicydcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFjdFVzVGFic0NvbXBvbmVudCB7XG4gICAgaXRlbXM6IE1lbnVJdGVtW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnY29udGFjdC11cycsXG4gICAgICAgICAgICBsYWJlbDogJ0NvbnRhY3QgVXMnLFxuICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS1mdyBmYS1hZGRyZXNzLWJvb2snLFxuICAgICAgICAgICAgcm91dGVyTGluazogWycvYWRtaW4vY29udGFjdC11cy9saXN0J11cbiAgICAgICAgfVxuICAgIF07XG59XG4iXX0=
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, Injector } from '@angular/core';
|
|
2
|
-
import { AdminService } from '@posiwise/admin-module-utils';
|
|
3
|
-
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
4
|
-
import { PAGE_SIZE } from '@posiwise/common-utilities';
|
|
5
|
-
import { HelperService } from '@posiwise/helper-service';
|
|
6
|
-
import { ROUTERS } from '../../../shared/routers/routers';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@posiwise/admin-module-utils";
|
|
9
|
-
import * as i2 from "primeng/table";
|
|
10
|
-
import * as i3 from "primeng/api";
|
|
11
|
-
import * as i4 from "primeng/inputtext";
|
|
12
|
-
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
13
|
-
import * as i6 from "@angular/common";
|
|
14
|
-
import * as i7 from "@angular/forms";
|
|
15
|
-
import * as i8 from "@angular/router";
|
|
16
|
-
import * as i9 from "primeng/progressspinner";
|
|
17
|
-
import * as i10 from "@posiwise/shared-components";
|
|
18
|
-
import * as i11 from "@posiwise/directives";
|
|
19
|
-
import * as i12 from "@jsverse/transloco";
|
|
20
|
-
export class CredentialsComponent extends AppBaseComponent {
|
|
21
|
-
constructor(adminService, injector, cdr) {
|
|
22
|
-
super(injector);
|
|
23
|
-
this.adminService = adminService;
|
|
24
|
-
this.cdr = cdr;
|
|
25
|
-
this.page = 1;
|
|
26
|
-
this.searchText = '';
|
|
27
|
-
this.data = {
|
|
28
|
-
credentials: [],
|
|
29
|
-
object_count: 0,
|
|
30
|
-
unfiltered_count: 0
|
|
31
|
-
};
|
|
32
|
-
this.loading = true;
|
|
33
|
-
this.isLoaded = true;
|
|
34
|
-
this.routers = ROUTERS;
|
|
35
|
-
}
|
|
36
|
-
ngAfterViewChecked() {
|
|
37
|
-
this.cdr.detectChanges();
|
|
38
|
-
}
|
|
39
|
-
onLazyLoad(event) {
|
|
40
|
-
const pageDetails = HelperService.onTableLazyLoad(event);
|
|
41
|
-
this.page = pageDetails.page;
|
|
42
|
-
this.getAllCredentials({
|
|
43
|
-
page: this.page,
|
|
44
|
-
page_size: PAGE_SIZE,
|
|
45
|
-
order_by: pageDetails.sortField,
|
|
46
|
-
order_direction: pageDetails.sortOrder,
|
|
47
|
-
search: this.searchText
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
/** Function to call all credentials */
|
|
51
|
-
getAllCredentials(params) {
|
|
52
|
-
this.isLoaded = false;
|
|
53
|
-
this.adminService
|
|
54
|
-
.getAllCredentials(params)
|
|
55
|
-
.subscribe((response) => {
|
|
56
|
-
this.data = response;
|
|
57
|
-
})
|
|
58
|
-
.add(() => {
|
|
59
|
-
this.loading = false;
|
|
60
|
-
this.isLoaded = true;
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
/** Function to delete credential */
|
|
64
|
-
onDelete(credential) {
|
|
65
|
-
HelperService.raiseDeletePopup().then(rep => {
|
|
66
|
-
if (rep.value) {
|
|
67
|
-
this.adminService.deleteCredentials(credential.id).subscribe(() => {
|
|
68
|
-
this.toast.success(this.translation.translate('Admin.Credentials.DeletedMessage'));
|
|
69
|
-
this.getAllCredentials({
|
|
70
|
-
page: this.page,
|
|
71
|
-
page_size: PAGE_SIZE,
|
|
72
|
-
search: this.searchText
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
ngOnDestroy() {
|
|
79
|
-
super.ngOnDestroy();
|
|
80
|
-
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CredentialsComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: CredentialsComponent, selector: "pw-credentials", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\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> Add Credential\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 mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.credentials\"\n [paginator]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\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 <span [appDynamicBadge]=\"{\n itemsArray: [true, false],\n item: credential?.is_required\n }\"\n color=\"success-danger\"\n class=\"badge\">\n {{ !!credential?.is_required }}\n </span>\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 list-action\">\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 (keydown.enter)=\"onDelete(credential)\"\n (keydown.space)=\"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 [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span *ngIf=\"data.object_count !== 0\" 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 [withImage]=\"true\" [message]=\"'Credentials.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", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "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: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i9.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i10.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i11.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color", "colorByName", "dataName"] }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }] }); }
|
|
83
|
-
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: CredentialsComponent, decorators: [{
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ selector: 'pw-credentials', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\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> Add Credential\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 mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.credentials\"\n [paginator]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\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 <span [appDynamicBadge]=\"{\n itemsArray: [true, false],\n item: credential?.is_required\n }\"\n color=\"success-danger\"\n class=\"badge\">\n {{ !!credential?.is_required }}\n </span>\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 list-action\">\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 (keydown.enter)=\"onDelete(credential)\"\n (keydown.space)=\"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 [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span *ngIf=\"data.object_count !== 0\" 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 [withImage]=\"true\" [message]=\"'Credentials.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n" }]
|
|
87
|
-
}], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jcmVkZW50aWFscy9jcmVkZW50aWFscy9jcmVkZW50aWFscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBZ0J0RCxZQUNxQixZQUEwQixFQUMzQyxRQUFrQixFQUNELEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRTFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEJuQyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsU0FBSSxHQUF1QjtZQUN2QixXQUFXLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QixDQUFDO1FBRUYsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFaEIsWUFBTyxHQUFHLE9BQU8sQ0FBQztJQVFsQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzNCLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixTQUFTLEVBQUUsU0FBUztZQUNwQixRQUFRLEVBQUUsV0FBVyxDQUFDLFNBQVM7WUFDL0IsZUFBZSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsdUNBQXVDO0lBQy9CLGlCQUFpQixDQUFDLE1BQWM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVk7YUFDWixpQkFBaUIsQ0FBQyxNQUFNLENBQUM7YUFDekIsU0FBUyxDQUFDLENBQUMsUUFBNEIsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsUUFBUSxDQUFDLFVBQXNCO1FBQzNCLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDZCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUNqRSxDQUFDO29CQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLFNBQVMsRUFBRSxTQUFTO3dCQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7cUJBQzFCLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTFFUSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw2RUNoQmpDLGtrTEEySUE7OzRGRDNIYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBBR0VfU0laRSwgUGFnaW5nIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5cbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IENyZWRlbnRpYWwsIENyZWRlbnRpYWxSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvY3JlZGVudGlhbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWNyZWRlbnRpYWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3JlZGVudGlhbHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENyZWRlbnRpYWxzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgcHJpdmF0ZSBwYWdlID0gMTtcblxuICAgIHNlYXJjaFRleHQgPSAnJztcblxuICAgIGRhdGE6IENyZWRlbnRpYWxSZXNwb25zZSA9IHtcbiAgICAgICAgY3JlZGVudGlhbHM6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG4gICAgaXNMb2FkZWQgPSB0cnVlO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uTGF6eUxvYWQoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFnZURldGFpbHMgPSBIZWxwZXJTZXJ2aWNlLm9uVGFibGVMYXp5TG9hZChldmVudCk7XG4gICAgICAgIHRoaXMucGFnZSA9IHBhZ2VEZXRhaWxzLnBhZ2U7XG4gICAgICAgIHRoaXMuZ2V0QWxsQ3JlZGVudGlhbHMoe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgcGFnZV9zaXplOiBQQUdFX1NJWkUsXG4gICAgICAgICAgICBvcmRlcl9ieTogcGFnZURldGFpbHMuc29ydEZpZWxkLFxuICAgICAgICAgICAgb3JkZXJfZGlyZWN0aW9uOiBwYWdlRGV0YWlscy5zb3J0T3JkZXIsXG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGV4dFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY2FsbCBhbGwgY3JlZGVudGlhbHMgKi9cbiAgICBwcml2YXRlIGdldEFsbENyZWRlbnRpYWxzKHBhcmFtczogUGFnaW5nKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRBbGxDcmVkZW50aWFscyhwYXJhbXMpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQ3JlZGVudGlhbFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gZGVsZXRlIGNyZWRlbnRpYWwgKi9cbiAgICBvbkRlbGV0ZShjcmVkZW50aWFsOiBDcmVkZW50aWFsKSB7XG4gICAgICAgIEhlbHBlclNlcnZpY2UucmFpc2VEZWxldGVQb3B1cCgpLnRoZW4ocmVwID0+IHtcbiAgICAgICAgICAgIGlmIChyZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZS5kZWxldGVDcmVkZW50aWFscyhjcmVkZW50aWFsLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uQ3JlZGVudGlhbHMuRGVsZXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENyZWRlbnRpYWxzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaFRleHRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZSBwLTAgZmxvYXQtc3RhcnRcIj5DcmVkZW50aWFsczwvaDI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1lbmRcIlxuICAgICAgZGF0YS1jeT1cImNyZWF0ZS1yb2xlXCJcbiAgICAgIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXJzLmFkbWluQ3JlZGVudGlhbHNEZXRhaWxzICsgJ2FkZCddXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiBBZGQgQ3JlZGVudGlhbFxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cIiFpc0xvYWRlZFwiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwcmltZW5nLWRhdGF0YWJsZS1jb250YWluZXIgbXQgdGFibGUtcmVzcG9uc2l2ZVwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwiZGF0YS51bmZpbHRlcmVkX2NvdW50ID09PSAwXCI+XG4gIDxwLXRhYmxlICNkdFxuICAgIFt2YWx1ZV09XCJkYXRhLmNyZWRlbnRpYWxzXCJcbiAgICBbcGFnaW5hdG9yXT1cImRhdGEub2JqZWN0X2NvdW50ICE9PSAwXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICBbcm93c109XCJQQUdFX1NJWkVcIlxuICAgIFt0b3RhbFJlY29yZHNdPVwiZGF0YS5vYmplY3RfY291bnRcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtmaWx0ZXJEZWxheV09XCIxMDAwXCJcbiAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIlxuICAgIFtjdXN0b21Tb3J0XT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIG10LTIgbWUtMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBzaXplPVwiNTBcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIENyZWRlbnRpYWxzLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcbiAgICAgICAgICBjbGFzcz1cIm13LTkwXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJuYW1lXCI+XG4gICAgICAgICAge3sgJ0xhYmVsLk5hbWUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJuYW1lXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJmaWVsZFwiPlxuICAgICAgICAgIHt7ICdBZG1pbi5DcmVkZW50aWFscy5GaWVsZCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cImZpZWxkXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJpc19yZXF1aXJlZFwiPlxuICAgICAgICAgIHt7ICdBZG1pbi5DcmVkZW50aWFscy5SZXF1aXJlZCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cImlzX3JlcXVpcmVkXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJhY3RpdmVcIj5cbiAgICAgICAgICB7eyAnTGFiZWwuSXNBY3RpdmUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJhY3RpdmVcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cImlzX3Zpc2libGVcIj5cbiAgICAgICAgICB7eyAnTGFiZWwuSXNWaXNpYmxlJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwiaXNfdmlzaWJsZVwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJhY3Rpb25zLWxpc3QtdHdvXCI+e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgICBsZXQtY3JlZGVudGlhbD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIk5hbWVcIj57eyBjcmVkZW50aWFsLm5hbWUgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiRmllbGRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiY3JlZGVudGlhbD8uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vRGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj57eyBjcmVkZW50aWFsLmZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWwuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRGVzY3JpcHRpb24+XG4gICAgICAgICAgICB7eyBjcmVkZW50aWFsLmZpZWxkIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIlJlcXVpcmVkXCI+XG4gICAgICAgICAgPHNwYW4gW2FwcER5bmFtaWNCYWRnZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNBcnJheTogW3RydWUsIGZhbHNlXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiBjcmVkZW50aWFsPy5pc19yZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBjb2xvcj1cInN1Y2Nlc3MtZGFuZ2VyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIj5cbiAgICAgICAgICAgIHt7ICEhY3JlZGVudGlhbD8uaXNfcmVxdWlyZWQgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJJcyBBY3RpdmVcIj5cbiAgICAgICAgICA8c3BhbiBbYXBwRHluYW1pY0JhZGdlXT1cInsgaXRlbXNBcnJheTogW3RydWUsIGZhbHNlXSwgaXRlbTogY3JlZGVudGlhbD8uYWN0aXZlIH1cIlxuICAgICAgICAgICAgY29sb3I9XCJzdWNjZXNzLWRhbmdlclwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCI+e3sgY3JlZGVudGlhbD8uYWN0aXZlID8gJ1llcycgOiAnTm8nIH19PC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiSXMgVmlzaWJsZVwiPlxuICAgICAgICAgIDxzcGFuIFthcHBEeW5hbWljQmFkZ2VdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zQXJyYXk6IFt0cnVlLCBmYWxzZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogY3JlZGVudGlhbD8uaXNfdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBjb2xvcj1cInN1Y2Nlc3MtZGFuZ2VyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIj57eyBjcmVkZW50aWFsPy5pc192aXNpYmxlID8gJ1llcycgOiAnTm8nIH19PC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZSBsaXN0LWFjdGlvblwiPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy5hZG1pbkNyZWRlbnRpYWxzRGV0YWlscyArIGNyZWRlbnRpYWwuaWRdXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdCBlZGl0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJEZWxldGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1lLTIgbWUtc20tM1wiPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGUoY3JlZGVudGlhbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkRlbGV0ZShjcmVkZW50aWFsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uRGVsZXRlKGNyZWRlbnRpYWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRhYmxlPlxuPGRpdiAqbmdJZj1cImRhdGEub2JqZWN0X2NvdW50ID09PSAwICYmIGRhdGEudW5maWx0ZXJlZF9jb3VudCAhPT0gMFwiPlxuICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidTZWFyY2guTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIiBbZGVzY3JpcHRpb25dPVwiJ1NlYXJjaC5Ob0RhdGFEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiA+XG4gICAgPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4gIDxzcGFuICpuZ0lmPVwiZGF0YS5vYmplY3RfY291bnQgIT09IDBcIiBjbGFzcz1cInRvdGFsLXJlY29yZHMtY291bnRcIj57eyAnTGFiZWwuVG90YWwnIHwgdHJhbnNsb2NvIH19OiB7eyAgZGF0YS5vYmplY3RfY291bnQgfX08L3NwYW4+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJkYXRhLnVuZmlsdGVyZWRfY291bnQgPT09IDAgJiYgaXNMb2FkZWRcIj5cbiAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ0NyZWRlbnRpYWxzLk5vRGF0YU1lc3NhZ2UnIHwgdHJhbnNsb2NvXCI+IDwvcHctbm8tZGF0YT5cbjwvZGl2PlxuIl19
|