@sachin9822/reports-lib 0.0.210 → 0.0.212
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/karma.conf.js +44 -0
- package/ng-package.json +17 -0
- package/package.json +16 -31
- package/src/assets/images/BreadcrumbArrow.png +0 -0
- package/src/lib/assets/images/Search.svg +10 -0
- package/src/lib/assets/images/XMLogo.png +0 -0
- package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.html +27 -0
- package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.scss +46 -0
- package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.spec.ts +23 -0
- package/src/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.ts +292 -0
- package/src/lib/components/accounting-report/accounting-report.component.html +64 -0
- package/src/lib/components/accounting-report/accounting-report.component.scss +24 -0
- package/src/lib/components/accounting-report/accounting-report.component.spec.ts +23 -0
- package/src/lib/components/accounting-report/accounting-report.component.ts +738 -0
- package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.html +46 -0
- package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.scss +2 -0
- package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.spec.ts +23 -0
- package/src/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.ts +247 -0
- package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.html +46 -0
- package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.scss +3 -0
- package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.spec.ts +23 -0
- package/src/lib/components/branch-activity-send-report/branch-activity-send-report.component.ts +276 -0
- package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.html +51 -0
- package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.scss +7 -0
- package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.spec.ts +23 -0
- package/src/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.ts +840 -0
- package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.html +68 -0
- package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.scss +65 -0
- package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.spec.ts +23 -0
- package/src/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.ts +290 -0
- package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.html +25 -0
- package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.scss +1 -0
- package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.spec.ts +23 -0
- package/src/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.ts +213 -0
- package/src/lib/components/funding-report/funding-report.component.html +49 -0
- package/src/lib/components/funding-report/funding-report.component.scss +1 -0
- package/src/lib/components/funding-report/funding-report.component.spec.ts +23 -0
- package/src/lib/components/funding-report/funding-report.component.ts +221 -0
- package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.html +26 -0
- package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.scss +1 -0
- package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.spec.ts +23 -0
- package/src/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.ts +267 -0
- package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.html +95 -0
- package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.scss +54 -0
- package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.spec.ts +23 -0
- package/src/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.ts +904 -0
- package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.html +49 -0
- package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.scss +2 -0
- package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.spec.ts +32 -0
- package/src/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.ts +304 -0
- package/src/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.html +46 -0
- package/src/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.scss +7 -0
- package/src/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.ts +343 -0
- package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.html +25 -0
- package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.scss +23 -0
- package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.spec.ts +23 -0
- package/src/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.ts +745 -0
- package/src/lib/models/acc-gl-details-enquiry-report/accgl-details-enquiry-reportmodel.ts +10 -0
- package/src/lib/models/acc-gl-details-enquiry-report/journal-voucher-entry-model.ts +20 -0
- package/src/lib/models/accounting-report/accounting-report-branch-group.ts +7 -0
- package/src/lib/models/accounting-report/accounting-report-entry-model.ts +25 -0
- package/src/lib/models/accounting-report/accounting-report-model.ts +7 -0
- package/{lib/models/accounting-report/accounting-report-sub-group.d.ts → src/lib/models/accounting-report/accounting-report-sub-group.ts} +3 -2
- package/{lib/models/app-config.model.d.ts → src/lib/models/app-config.model.ts} +8 -7
- package/src/lib/models/branch-activity-receive-report/branch-activity-receive.model.ts +18 -0
- package/src/lib/models/branch-activity-report/branch-activity-send-report-request-domain-model.ts +16 -0
- package/src/lib/models/branch-activity-report/branch-activity-send-report.ts +26 -0
- package/src/lib/models/cancellation-transaction-report/cancellation-transaction.model.ts +65 -0
- package/src/lib/models/component-loading-states.ts +5 -0
- package/src/lib/models/credit-limit-status-enquiry-report/credit-limit-status-enquiry.model.ts +28 -0
- package/{lib/models/revenue-per-transaction-report/revenue-per-transaction.model.d.ts → src/lib/models/revenue-per-transaction-report/revenue-per-transaction.model.ts} +1 -1
- package/src/lib/models/statement-of-account-report/statement-of-accounts.model.ts +21 -0
- package/src/lib/models/transaction-enquiry-report/transaction-enquiry.model.ts +127 -0
- package/src/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.ts +16 -0
- package/src/lib/models/transaction-monitoring-report/transaction-monitoring-report.ts +29 -0
- package/src/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.ts +46 -0
- package/src/lib/reports-lib-routing.module.ts +20 -0
- package/src/lib/reports-lib.component.spec.ts +23 -0
- package/src/lib/reports-lib.component.ts +20 -0
- package/src/lib/reports-lib.module.ts +102 -0
- package/src/lib/reports-lib.service.spec.ts +16 -0
- package/src/lib/reports-lib.service.ts +9 -0
- package/src/lib/services/config.service.ts +43 -0
- package/src/lib/services/report.service.spec.ts +16 -0
- package/src/lib/services/report.service.ts +463 -0
- package/src/lib/shared/export-generic.service.ts +557 -0
- package/src/lib/shared/export.service.spec.ts +16 -0
- package/src/lib/shared/export.service.ts +457 -0
- package/src/lib/shared/loader/loader.component.html +8 -0
- package/src/lib/shared/loader/loader.component.scss +52 -0
- package/src/lib/shared/loader/loader.component.ts +10 -0
- package/src/lib/shared/metadata/metadata.component.html +42 -0
- package/src/lib/shared/metadata/metadata.component.scss +95 -0
- package/src/lib/shared/metadata/metadata.component.spec.ts +23 -0
- package/src/lib/shared/metadata/metadata.component.ts +38 -0
- package/src/lib/shared/page-size-selector/page-size-selector.component.html +7 -0
- package/src/lib/shared/page-size-selector/page-size-selector.component.scss +42 -0
- package/src/lib/shared/page-size-selector/page-size-selector.component.spec.ts +23 -0
- package/src/lib/shared/page-size-selector/page-size-selector.component.ts +38 -0
- package/src/lib/shared/search-filter/search-filter.component.html +601 -0
- package/src/lib/shared/search-filter/search-filter.component.scss +203 -0
- package/src/lib/shared/search-filter/search-filter.component.spec.ts +23 -0
- package/src/lib/shared/search-filter/search-filter.component.ts +2387 -0
- package/src/lib/shared/shared.module.ts +13 -0
- package/{public-api.d.ts → src/public-api.ts} +17 -7
- package/src/styles/ag-grid-report-style.scss +71 -0
- package/src/styles/common-ag-grid-style.scss +146 -0
- package/src/styles/common-report-style.scss +395 -0
- package/src/styles/common-style.scss +615 -0
- package/src/test.ts +27 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/esm2020/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.mjs +0 -240
- package/esm2020/lib/components/accounting-report/accounting-report.component.mjs +0 -596
- package/esm2020/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.mjs +0 -218
- package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs +0 -243
- package/esm2020/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.mjs +0 -700
- package/esm2020/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.mjs +0 -255
- package/esm2020/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.mjs +0 -192
- package/esm2020/lib/components/funding-report/funding-report.component.mjs +0 -198
- package/esm2020/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.mjs +0 -244
- package/esm2020/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.mjs +0 -776
- package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs +0 -266
- package/esm2020/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.mjs +0 -311
- package/esm2020/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.mjs +0 -631
- package/esm2020/lib/models/acc-gl-details-enquiry-report/accgl-details-enquiry-reportmodel.mjs +0 -2
- package/esm2020/lib/models/acc-gl-details-enquiry-report/journal-voucher-entry-model.mjs +0 -2
- package/esm2020/lib/models/accounting-report/accounting-report-branch-group.mjs +0 -2
- package/esm2020/lib/models/accounting-report/accounting-report-entry-model.mjs +0 -2
- package/esm2020/lib/models/accounting-report/accounting-report-model.mjs +0 -2
- package/esm2020/lib/models/accounting-report/accounting-report-sub-group.mjs +0 -2
- package/esm2020/lib/models/app-config.model.mjs +0 -2
- package/esm2020/lib/models/branch-activity-receive-report/branch-activity-receive.model.mjs +0 -2
- package/esm2020/lib/models/branch-activity-report/branch-activity-send-report-request-domain-model.mjs +0 -6
- package/esm2020/lib/models/branch-activity-report/branch-activity-send-report.mjs +0 -3
- package/esm2020/lib/models/cancellation-transaction-report/cancellation-transaction.model.mjs +0 -10
- package/esm2020/lib/models/component-loading-states.mjs +0 -7
- package/esm2020/lib/models/credit-limit-status-enquiry-report/credit-limit-status-enquiry.model.mjs +0 -5
- package/esm2020/lib/models/revenue-per-transaction-report/revenue-per-transaction.model.mjs +0 -2
- package/esm2020/lib/models/statement-of-account-report/statement-of-accounts.model.mjs +0 -2
- package/esm2020/lib/models/transaction-enquiry-report/transaction-enquiry.model.mjs +0 -8
- package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.mjs +0 -6
- package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report.mjs +0 -5
- package/esm2020/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.mjs +0 -3
- package/esm2020/lib/reports-lib-routing.module.mjs +0 -24
- package/esm2020/lib/reports-lib.component.mjs +0 -22
- package/esm2020/lib/reports-lib.module.mjs +0 -172
- package/esm2020/lib/reports-lib.service.mjs +0 -14
- package/esm2020/lib/services/config.service.mjs +0 -39
- package/esm2020/lib/services/report.service.mjs +0 -374
- package/esm2020/lib/shared/export-generic.service.mjs +0 -443
- package/esm2020/lib/shared/export.service.mjs +0 -379
- package/esm2020/lib/shared/loader/loader.component.mjs +0 -11
- package/esm2020/lib/shared/metadata/metadata.component.mjs +0 -51
- package/esm2020/lib/shared/page-size-selector/page-size-selector.component.mjs +0 -44
- package/esm2020/lib/shared/search-filter/search-filter.component.mjs +0 -2134
- package/esm2020/lib/shared/shared.module.mjs +0 -21
- package/esm2020/public-api.mjs +0 -41
- package/esm2020/sachin9822-reports-lib.mjs +0 -5
- package/fesm2015/sachin9822-reports-lib.mjs +0 -8402
- package/fesm2015/sachin9822-reports-lib.mjs.map +0 -1
- package/fesm2020/sachin9822-reports-lib.mjs +0 -8384
- package/fesm2020/sachin9822-reports-lib.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.d.ts +0 -70
- package/lib/components/accounting-report/accounting-report.component.d.ts +0 -76
- package/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.d.ts +0 -58
- package/lib/components/branch-activity-send-report/branch-activity-send-report.component.d.ts +0 -69
- package/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.d.ts +0 -78
- package/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.d.ts +0 -95
- package/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.d.ts +0 -55
- package/lib/components/funding-report/funding-report.component.d.ts +0 -55
- package/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.d.ts +0 -57
- package/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.d.ts +0 -109
- package/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.d.ts +0 -76
- package/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.d.ts +0 -68
- package/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.d.ts +0 -71
- package/lib/models/acc-gl-details-enquiry-report/accgl-details-enquiry-reportmodel.d.ts +0 -8
- package/lib/models/acc-gl-details-enquiry-report/journal-voucher-entry-model.d.ts +0 -18
- package/lib/models/accounting-report/accounting-report-branch-group.d.ts +0 -6
- package/lib/models/accounting-report/accounting-report-entry-model.d.ts +0 -24
- package/lib/models/accounting-report/accounting-report-model.d.ts +0 -6
- package/lib/models/branch-activity-receive-report/branch-activity-receive.model.d.ts +0 -18
- package/lib/models/branch-activity-report/branch-activity-send-report-request-domain-model.d.ts +0 -13
- package/lib/models/branch-activity-report/branch-activity-send-report.d.ts +0 -24
- package/lib/models/cancellation-transaction-report/cancellation-transaction.model.d.ts +0 -44
- package/lib/models/component-loading-states.d.ts +0 -5
- package/lib/models/credit-limit-status-enquiry-report/credit-limit-status-enquiry.model.d.ts +0 -26
- package/lib/models/statement-of-account-report/statement-of-accounts.model.d.ts +0 -18
- package/lib/models/transaction-enquiry-report/transaction-enquiry.model.d.ts +0 -113
- package/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.d.ts +0 -13
- package/lib/models/transaction-monitoring-report/transaction-monitoring-report.d.ts +0 -23
- package/lib/models/trial-balance-accounts-report/trial-balance-accounts.models.d.ts +0 -38
- package/lib/reports-lib-routing.module.d.ts +0 -7
- package/lib/reports-lib.component.d.ts +0 -8
- package/lib/reports-lib.module.d.ts +0 -33
- package/lib/reports-lib.service.d.ts +0 -6
- package/lib/services/config.service.d.ts +0 -20
- package/lib/services/report.service.d.ts +0 -80
- package/lib/shared/export-generic.service.d.ts +0 -50
- package/lib/shared/export.service.d.ts +0 -32
- package/lib/shared/loader/loader.component.d.ts +0 -5
- package/lib/shared/metadata/metadata.component.d.ts +0 -24
- package/lib/shared/page-size-selector/page-size-selector.component.d.ts +0 -15
- package/lib/shared/search-filter/search-filter.component.d.ts +0 -127
- package/lib/shared/shared.module.d.ts +0 -11
- /package/{lib → src}/assets/images/Search.svg +0 -0
- /package/{lib/assets/images/XMLogo.png → src/assets/images/XMCoral.png} +0 -0
- /package/{lib → src/lib}/assets/config/app-config.json +0 -0
- /package/{lib → src/lib}/assets/svg-loaders/blue-tail-spin.svg +0 -0
package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { themeAlpine } from '@ag-grid-community/theming';
|
|
3
|
-
import 'jspdf-autotable';
|
|
4
|
-
import { formatDate } from '@angular/common';
|
|
5
|
-
import { ComponentLoadingStates } from '../../models/component-loading-states';
|
|
6
|
-
import { GenericExportService } from '../../shared/export-generic.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../services/report.service";
|
|
9
|
-
import * as i2 from "ag-grid-angular";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
import * as i4 from "../../shared/page-size-selector/page-size-selector.component";
|
|
12
|
-
import * as i5 from "../../shared/metadata/metadata.component";
|
|
13
|
-
import * as i6 from "@ng-bootstrap/ng-bootstrap";
|
|
14
|
-
import * as i7 from "../../shared/loader/loader.component";
|
|
15
|
-
import * as i8 from "../../shared/search-filter/search-filter.component";
|
|
16
|
-
export class BranchActivitySendReportComponent {
|
|
17
|
-
constructor(reportService, ngZone) {
|
|
18
|
-
this.reportService = reportService;
|
|
19
|
-
this.ngZone = ngZone;
|
|
20
|
-
this.dataMap = {};
|
|
21
|
-
this.filteredData = {};
|
|
22
|
-
this.proxyData = {};
|
|
23
|
-
this.selectedExportOption = 'excel';
|
|
24
|
-
this.gridApis = [];
|
|
25
|
-
this.user = "";
|
|
26
|
-
this.ComponentLoadingState = ComponentLoadingStates;
|
|
27
|
-
this.loadingState = ComponentLoadingStates.Loading;
|
|
28
|
-
this.ReportName = "Branch Activity Send";
|
|
29
|
-
this.exportService = inject(GenericExportService);
|
|
30
|
-
this.searchCriteria = [];
|
|
31
|
-
// flags
|
|
32
|
-
this.showMessage = false;
|
|
33
|
-
this.noDataFound = false;
|
|
34
|
-
this.isFormValid = false;
|
|
35
|
-
this.columnDefs = [
|
|
36
|
-
{ field: 'businessDateTime', headerName: 'Business Date', flex: 1, wrapText: true, autoHeight: true, headerClass: 'ag-left-aligned-header', minWidth: 70, width: 70, tooltipField: 'businessDateTime' },
|
|
37
|
-
{ field: 'transactionDateTime', headerName: 'Transaction Date', minWidth: 100, flex: 2, wrapText: true, autoHeight: true, tooltipField: 'transactionDateTime' },
|
|
38
|
-
{ field: 'transactionNumber', headerName: 'Transaction Number', flex: 1.8, wrapText: true, autoHeight: true, minWidth: 90, width: 130, cellClass: 'ag-left-cols-cell compact-cell-transaction', tooltipField: 'transactionNumber' },
|
|
39
|
-
{ field: 'product', headerName: 'Product', flex: 0.5, wrapText: true, autoHeight: true, minWidth: 80, width: 120, tooltipField: 'product' },
|
|
40
|
-
{ field: 'sendAgentBranchCode', headerName: 'SendClient BranchCode', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 120, tooltipField: 'sendAgentBranchCode' },
|
|
41
|
-
{ field: 'receiveAgentCode', headerName: 'Receive ClientCode', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 70, tooltipField: 'receiveAgentCode' },
|
|
42
|
-
{ field: 'payoutCCcode', headerName: 'ReceiveCcy Code', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, width: 110, tooltipField: 'payoutCCcode' },
|
|
43
|
-
{ field: 'payoutAmount', headerName: 'Receive Amount', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 120, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payoutAmount' },
|
|
44
|
-
{ field: 'payinCCcode', headerName: 'SendCcy Code', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 90, tooltipField: 'payinCCcode' },
|
|
45
|
-
{ field: 'payinAmount', headerName: 'Send Amount', flex: 1, wrapText: true, autoHeight: true, minWidth: 80, maxWidth: 120, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payinAmount' },
|
|
46
|
-
{ field: 'transactionCommissionAmount', headerName: 'Service Fee', flex: 1, wrapText: true, autoHeight: true, minWidth: 90, maxWidth: 100, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'transactionCommissionAmount' },
|
|
47
|
-
{ field: 'tax', headerName: 'Tax', flex: 1, wrapText: true, autoHeight: true, minWidth: 80, maxWidth: 100, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'tax' },
|
|
48
|
-
{ field: 'totalPayinAmount', headerName: 'Total Send Amount', minWidth: 100, flex: 1, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'totalPayinAmount' },
|
|
49
|
-
{ field: 'status', headerName: 'Transaction Status', minWidth: 100, flex: 1, wrapText: true, autoHeight: true, tooltipField: 'status' }
|
|
50
|
-
];
|
|
51
|
-
this.defaultColDef = {
|
|
52
|
-
sortable: true,
|
|
53
|
-
filter: true,
|
|
54
|
-
resizable: true,
|
|
55
|
-
minwidth: 40,
|
|
56
|
-
wrapHeaderText: true,
|
|
57
|
-
autoHeaderHeight: true,
|
|
58
|
-
suppressSizeToFit: false,
|
|
59
|
-
wrapText: true
|
|
60
|
-
};
|
|
61
|
-
this.rowData = [];
|
|
62
|
-
this.reportTheme = themeAlpine.withParams({
|
|
63
|
-
headerFontSize: '10px',
|
|
64
|
-
fontFamily: ['Arial', 'sans-serif'],
|
|
65
|
-
fontSize: '9px'
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
ngOnInit() {
|
|
69
|
-
this.loadingState = ComponentLoadingStates.Complete;
|
|
70
|
-
// Check if User is falcon user or fossilUser
|
|
71
|
-
if (sessionStorage.getItem('fossilusername')) {
|
|
72
|
-
this.sysUserId = sessionStorage.getItem('fossilusername');
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.sysUserId = sessionStorage.getItem('ezremitusername');
|
|
76
|
-
}
|
|
77
|
-
this.sysUserId = this.sysUserId.replace(/^["'](.*)["']$/, '$1');
|
|
78
|
-
this.user = this.sysUserId;
|
|
79
|
-
console.log("System User Id : " + this.sysUserId);
|
|
80
|
-
}
|
|
81
|
-
filter(text) {
|
|
82
|
-
this.searchText = text;
|
|
83
|
-
if (this.searchText == null) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (this.searchText?.length === 0) {
|
|
87
|
-
this.filteredData = structuredClone(this.dataMap);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
this.searchText = this.searchText?.trim()?.toLowerCase();
|
|
91
|
-
for (const [key, entries] of Object.entries(this.proxyData)) {
|
|
92
|
-
const filteredData = entries.filter(entry => Object.values(entry)
|
|
93
|
-
.some(val => {
|
|
94
|
-
let a = val.toString().toLowerCase();
|
|
95
|
-
return a.search(this.searchText) == -1 ? false : true;
|
|
96
|
-
}));
|
|
97
|
-
this.filteredData[key] = filteredData;
|
|
98
|
-
}
|
|
99
|
-
this.filteredData;
|
|
100
|
-
}
|
|
101
|
-
onGridReady(params, id) {
|
|
102
|
-
params.api.sizeColumnsToFit();
|
|
103
|
-
this.gridColumnApi = params.columnApi;
|
|
104
|
-
this.gridApis[id] = params.api;
|
|
105
|
-
}
|
|
106
|
-
handleExport(option) {
|
|
107
|
-
this.selectedExportOption = option;
|
|
108
|
-
if (!this.hasAnyGroups()) {
|
|
109
|
-
alert("There is no data to export based on your current filter.");
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
// If no data, do nothing.
|
|
113
|
-
if (!this.filteredData || Object.keys(this.filteredData).length === 0) {
|
|
114
|
-
alert("No data to export");
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
const title = "Branch Activity Send";
|
|
118
|
-
const reportTimeFormatter = this.dateValueFormatter('dd/MM/yyyy hh:mm a');
|
|
119
|
-
const metadata = [
|
|
120
|
-
['Report Period ', this.fromDate + " - " + this.toDate],
|
|
121
|
-
['Report User & Time', this.user ? this.user + " @ " + this.reportDate : '' + " @ " + this.reportDate],
|
|
122
|
-
];
|
|
123
|
-
// --- search criteria ---
|
|
124
|
-
const searchCriteria = this.searchCriteria;
|
|
125
|
-
const columns = this.columnDefs;
|
|
126
|
-
const data = this.dataMap;
|
|
127
|
-
// const data = this.filteredData;
|
|
128
|
-
const options = {
|
|
129
|
-
currencyFields: [
|
|
130
|
-
'payoutAmount', 'payinAmount', 'transactionCommissionAmount', 'tax', 'totalPayinAmount'
|
|
131
|
-
],
|
|
132
|
-
// specify all date fields expected
|
|
133
|
-
dateFields: [],
|
|
134
|
-
dateFieldFormats: {
|
|
135
|
-
txnDateAndTime: 'dd/MM/yyyy hh:mm a',
|
|
136
|
-
cancellationBranchDateTime: 'dd/MM/yyyy HH:mm',
|
|
137
|
-
cancellationBusinessDate: 'dd/MM/yyyy'
|
|
138
|
-
},
|
|
139
|
-
specialDecimalFields: {
|
|
140
|
-
rate: 8 // future field with 8 decimal places
|
|
141
|
-
},
|
|
142
|
-
groupByKey: true
|
|
143
|
-
};
|
|
144
|
-
switch (this.selectedExportOption) {
|
|
145
|
-
case 'excel':
|
|
146
|
-
this.exportService.exportToExcel({ title, metadata, searchCriteria, columns, data, options });
|
|
147
|
-
break;
|
|
148
|
-
case 'pdf':
|
|
149
|
-
this.exportService.exportToPdf({ title, metadata, searchCriteria, columns, data, options });
|
|
150
|
-
break;
|
|
151
|
-
case 'csv':
|
|
152
|
-
this.exportService.exportToCsv({ title, metadata, searchCriteria, columns, data, options });
|
|
153
|
-
break;
|
|
154
|
-
default:
|
|
155
|
-
alert("Please select an export format.");
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
dateValueFormatter(format) {
|
|
159
|
-
return (params) => {
|
|
160
|
-
if (!params.value)
|
|
161
|
-
return '';
|
|
162
|
-
try {
|
|
163
|
-
return formatDate(params.value, format, 'en-US');
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
return '';
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
getKeys(obj) {
|
|
171
|
-
return obj ? Object.keys(obj) : [];
|
|
172
|
-
}
|
|
173
|
-
hasAnyGroups() {
|
|
174
|
-
return this.filteredData && this.getKeys(this.filteredData).length > 0;
|
|
175
|
-
}
|
|
176
|
-
formatAmount(params) {
|
|
177
|
-
const value = params?.value;
|
|
178
|
-
if (value !== null && value !== undefined && value !== '') {
|
|
179
|
-
const num = Number(value);
|
|
180
|
-
return (Math.trunc(num * 1000) / 1000).toFixed(3);
|
|
181
|
-
}
|
|
182
|
-
return '';
|
|
183
|
-
}
|
|
184
|
-
handleSearch(criteria) {
|
|
185
|
-
this.searchCriteria = criteria.searchCriteria;
|
|
186
|
-
this.reportDate = new Date().toISOString();
|
|
187
|
-
this.reportDate = formatDate(this.reportDate, 'dd/MM/yyyy hh:mm a', 'en-US');
|
|
188
|
-
const modal = criteria.modal;
|
|
189
|
-
this.user = criteria.sysUserID;
|
|
190
|
-
this.fromDate = formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
191
|
-
this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
|
|
192
|
-
console.log(modal);
|
|
193
|
-
// Code For Meta Data
|
|
194
|
-
this.leftData = {
|
|
195
|
-
'Report Period': this.fromDate + " - " + this.toDate,
|
|
196
|
-
};
|
|
197
|
-
this.metaDataTwo = {
|
|
198
|
-
'Report User & Time': this.user + " @ " + this.reportDate,
|
|
199
|
-
};
|
|
200
|
-
const searchData = {
|
|
201
|
-
"StartDate": modal.fromDate,
|
|
202
|
-
"EndDate": modal.toDate,
|
|
203
|
-
"SendCountryCode": modal.sendCountry,
|
|
204
|
-
"RecvCountryCode": modal.receiveCountry,
|
|
205
|
-
"BusinessPartnerCode": modal.client,
|
|
206
|
-
"TransactionStatus": modal.transactionStatus.join(","),
|
|
207
|
-
"PayoutCurrency": modal.receiveCurrency,
|
|
208
|
-
"TransactionType": modal.product,
|
|
209
|
-
"BranchCode": modal.branch
|
|
210
|
-
};
|
|
211
|
-
this.showMessage = true;
|
|
212
|
-
this.loadingState = ComponentLoadingStates.Loading;
|
|
213
|
-
this.reportService.getBranchActivityReport(searchData).subscribe({
|
|
214
|
-
next: (data) => {
|
|
215
|
-
console.log(data);
|
|
216
|
-
this.dataMap = JSON.parse(JSON.stringify(data));
|
|
217
|
-
this.filteredData = data;
|
|
218
|
-
this.noDataFound = Object.keys(this.filteredData).length == 0 ? true : false;
|
|
219
|
-
this.proxyData = structuredClone(data);
|
|
220
|
-
this.paginationArray = new Array(Object.keys(this.filteredData).length).fill(15);
|
|
221
|
-
this.showMessage = Object.keys(this.filteredData).length == 0 ? true : false;
|
|
222
|
-
this.showReport = true;
|
|
223
|
-
},
|
|
224
|
-
error: (err) => {
|
|
225
|
-
this.loadingState = ComponentLoadingStates.Complete;
|
|
226
|
-
},
|
|
227
|
-
complete: () => {
|
|
228
|
-
this.loadingState = ComponentLoadingStates.Complete;
|
|
229
|
-
this.showReport = true;
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
handleFormValid(isValid) {
|
|
234
|
-
this.isFormValid = isValid;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
BranchActivitySendReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BranchActivitySendReportComponent, deps: [{ token: i1.ReportService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
238
|
-
BranchActivitySendReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BranchActivitySendReportComponent, selector: "lib-branch-activity-send-report", ngImport: i0, template: "<lib-search-filter \r\n [ReportName]=\"ReportName\" \r\n (searchClicked)=\"handleSearch($event)\"\r\n (formValid)=\"handleFormValid($event)\"\r\n >\r\n</lib-search-filter>\r\n\r\n<app-loader class=\"\" *ngIf=\"loadingState == ComponentLoadingState.Loading\"></app-loader>\r\n\r\n<section *ngIf=\"showReport && isFormValid\" class=\"my-2\">\r\n <ng-container *ngIf=\"!noDataFound\">\r\n <lib-metadata [reportName]=\"ReportName\" [showmetaDataOne]=\"true\" [showmetaDataTwo]=\"true\" [metaDataOne]=\"leftData\" [metaDataTwo]=\"metaDataTwo\"(exportEvent)=\"handleExport($event)\" (searchEvent)=\"filter($event)\"></lib-metadata>\r\n\r\n <ngb-accordion #acc=\"ngbAccordion\" [closeOthers]=\"false\">\r\n <ng-container *ngFor=\"let item of filteredData | keyvalue; let i = index\">\r\n <ngb-panel *ngIf=\"item.value.length > 0\" [id]=\"'panel-' + i\">\r\n\r\n <ng-template ngbPanelTitle style=\"height: 10%;\">\r\n <label\r\n class=\"panel-cls\">{{\r\n item.key\r\n }}</label>\r\n </ng-template>\r\n\r\n <ng-template ngbPanelContent>\r\n <div style=\"position: relative;\">\r\n <lib-page-size-selector [totalEntries]=\"item?.value?.length\"\r\n [defaultSize]=\"'15'\" [gridApi]=\"gridApis[i]\">\r\n ></lib-page-size-selector>\r\n\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" style=\"width: 100%;height: 380px;\"\r\n [columnDefs]=\"columnDefs\" [defaultColDef]=\"defaultColDef\" [rowData]=\"item.value\" [rowHeight]=\"20\"\r\n [headerHeight]=\"22\"[pagination]=\"true\" [paginationPageSize]=\"paginationArray[i]\" (gridReady)=\"onGridReady($event,i)\"\r\n >\r\n </ag-grid-angular>\r\n </div>\r\n </ng-template>\r\n\r\n </ngb-panel>\r\n </ng-container>\r\n </ngb-accordion>\r\n </ng-container>\r\n <div class=\"alert alert-warning mt-3\" *ngIf=\"noDataFound\">\r\n No Data found matching your search criteria.\r\n </div>\r\n</section>", styles: [".btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px!important;height:32px;min-width:110px;margin:0 0 0 20px!important;padding:4px 15px!important}.tooltip-block{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #ccc!important}.dpicker{border:1px solid #ccc!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2!important}.cal:focus{box-shadow:none!important}.input-group-button{background:none;border:1px solid #0081c6;background-color:#0081c6;border-radius:0 3px 3px 0;min-width:35px;margin-left:1px;cursor:pointer}.labl{font-size:11.2px;font-weight:700!important}.info{font-size:12px!important;font-weight:400;padding-left:.5rem}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}.meta-td{padding:0!important}.title{text-align:center;font-size:18px;font-weight:700!important}.export-options{display:inline-flex;font-size:.75rem;height:2rem!important;width:5rem!important;margin-right:-1;margin-left:.4rem}.opt-cls{display:block;height:100%;width:5rem;border:1px solid #ccc!important;border-radius:4px!important;margin-right:1rem!important;outline:none!important}.opt-cls:focus{box-shadow:0 0 5px 3px #1877f2}.export-selector{height:2rem!important;width:100%}.search-btn{height:32px!important;height:32px;width:36px;background-color:#8091a5;border:none;border-radius:0 4px 4px 0;display:flex;justify-content:center;align-items:center}.search-btn:hover{background-color:#8091a5}.search-icon{height:16px;width:16px;object-fit:contain}.search-input{outline:none!important;border:1px solid #ccc!important;width:190px;height:32px!important;font-size:.75rem;padding:.25rem .5rem;border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0!important;border-bottom-right-radius:0!important;text-transform:uppercase}.search-input:focus{box-shadow:0 0 5px 3px #1877f2!important}.searchBox{margin-right:auto;display:flex}table{width:100%;border-collapse:separate;margin-bottom:0!important;table-layout:fixed!important}td{padding:0 1rem 6px 0!important;border-right:0 solid #ffffff!important;background-color:#fff!important}.row-cls{height:2.5rem!important}.inputbox{padding-left:1rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}::ng-deep .ng-select.ng-select-single .ng-select-container{height:32px I!important}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;overflow-y:auto;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container .ng-value{max-width:200px!important;overflow:hidden!important;text-overflow:hidden!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow-x:scroll!important;text-overflow:clip!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option::-webkit-scrollbar{display:none!important;width:0!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container,::ng-deep .ng-select.ng-select-single .ng-select-container,::ng-deep .ng-select.ng-select-multiple .ng-select-container{min-height:32px!important;height:32px!important;font-size:12px!important}.panel-cls{font-weight:700;font-size:13px;line-height:1.2;margin:0;padding:2px 0;color:#16181e}.transaction-grid ::ng-deep .ag-header{background-color:#f9f9f9;font-weight:600;font-size:10px;color:#000;border-right:1px solid #e0e0e0}:host ::ng-deep .ag-header-cell{padding:2px!important;align-items:center!important;justify-content:center!important;border-right:1px solid #e0e0e0;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;text-align:center!important}::ng-deep .ag-header-cell-label{display:flex!important;justify-content:center!important;align-items:center!important;width:100%;text-align:center!important}::ng-deep .ag-header-cell-text{text-align:center!important;width:100%!important;display:flex!important;justify-content:center!important}.transaction-grid ::ng-deep .ag-row{border-bottom:1px solid #e0e0e0}.transaction-grid ::ng-deep .ag-cell{font-size:9px;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere;line-height:1.4;padding:4px!important;color:#000;font-weight:500;border-right:.5px solid #e0e0e0;align-content:center;user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;cursor:text}::ng-deep .ag-cell-label-container{padding:0!important}.ag-theme-alpine{--ag-header-font-size: 10px;--ag-font-size: 10px;--ag-header-background-color: #fdfdfd;--ag-header-foreground-color: rgb(0, 0, 0)}::ng-deep .ag-paging-panel{height:30px!important;font-weight:500!important}\n"], dependencies: [{ kind: "component", type: i2.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "suppressMenuHide", "enableBrowserTooltips", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "maintainColumnOrder", "suppressFieldDotNotation", "deltaColumnMode", "applyColumnDefOrder", "immutableColumns", "suppressSetColumnStateEvents", "suppressColumnStateEvents", "colWidth", "minColWidth", "maxColWidth", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "components", "frameworkComponents", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "stopEditingWhenGridLosesFocus", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "defaultExportParams", "quickFilterText", "cacheQuickFilter", "excludeChildrenWhenTreeDataFiltering", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "chartToolPanelsDef", "loadingCellRenderer", "loadingCellRendererFramework", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererFramework", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentFramework", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentFramework", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDelay", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererFramework", "fullWidthCellRendererParams", "embedFullWidthRows", "deprecatedEmbedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererFramework", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "groupRowsSticky", "groupRowInnerRenderer", "groupRowInnerRendererFramework", "groupMultiAutoColumn", "groupUseEntireRow", "groupSuppressAutoColumn", "rememberGroupStateWhenNewData", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "immutableData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "deltaRowDataMode", "batchUpdateWaitMillis", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "serverSideStoreType", "serverSideInfiniteScroll", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSideSortingAlwaysResets", "serverSideFilteringAlwaysResets", "suppressEnterpriseResetOnNewColumns", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellSelection", "suppressCellFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "deltaSort", "treeDataDisplayType", "angularCompileRows", "angularCompileFilters", "functionsPassive", "enableGroupEdit", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "suppressKeyboardEvent", "localeTextFunc", "getLocaleText", "getDocument", "paginationNumberFormatter", "groupRowAggNodes", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "defaultGroupOrderComparator", "processSecondaryColDef", "processSecondaryColGroupDef", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "defaultGroupSortComparator", "getChildCount", "getServerSideGroupLevelParams", "getServerSideStoreParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowNodeId", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSort", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthCell", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "filterOpened", "filterChanged", "filterModified", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "cellKeyPress", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pinnedRowDataChanged", "rowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PageSizeSelectorComponent, selector: "lib-page-size-selector", inputs: ["pageSizeArray", "defaultSize", "totalEntries", "gridApi"] }, { kind: "component", type: i5.MetadataComponent, selector: "lib-metadata", inputs: ["metaDataOne", "metaDataTwo", "showmetaDataOne", "showmetaDataTwo", "reportName"], outputs: ["searchEvent", "exportEvent"] }, { kind: "component", type: i6.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i6.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i6.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i6.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i7.LoaderComponent, selector: "app-loader" }, { kind: "component", type: i8.SearchFilterComponent, selector: "lib-search-filter", inputs: ["ReportName", "initialFilters"], outputs: ["searchClicked", "formValid"] }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }] });
|
|
239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BranchActivitySendReportComponent, decorators: [{
|
|
240
|
-
type: Component,
|
|
241
|
-
args: [{ selector: 'lib-branch-activity-send-report', template: "<lib-search-filter \r\n [ReportName]=\"ReportName\" \r\n (searchClicked)=\"handleSearch($event)\"\r\n (formValid)=\"handleFormValid($event)\"\r\n >\r\n</lib-search-filter>\r\n\r\n<app-loader class=\"\" *ngIf=\"loadingState == ComponentLoadingState.Loading\"></app-loader>\r\n\r\n<section *ngIf=\"showReport && isFormValid\" class=\"my-2\">\r\n <ng-container *ngIf=\"!noDataFound\">\r\n <lib-metadata [reportName]=\"ReportName\" [showmetaDataOne]=\"true\" [showmetaDataTwo]=\"true\" [metaDataOne]=\"leftData\" [metaDataTwo]=\"metaDataTwo\"(exportEvent)=\"handleExport($event)\" (searchEvent)=\"filter($event)\"></lib-metadata>\r\n\r\n <ngb-accordion #acc=\"ngbAccordion\" [closeOthers]=\"false\">\r\n <ng-container *ngFor=\"let item of filteredData | keyvalue; let i = index\">\r\n <ngb-panel *ngIf=\"item.value.length > 0\" [id]=\"'panel-' + i\">\r\n\r\n <ng-template ngbPanelTitle style=\"height: 10%;\">\r\n <label\r\n class=\"panel-cls\">{{\r\n item.key\r\n }}</label>\r\n </ng-template>\r\n\r\n <ng-template ngbPanelContent>\r\n <div style=\"position: relative;\">\r\n <lib-page-size-selector [totalEntries]=\"item?.value?.length\"\r\n [defaultSize]=\"'15'\" [gridApi]=\"gridApis[i]\">\r\n ></lib-page-size-selector>\r\n\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" style=\"width: 100%;height: 380px;\"\r\n [columnDefs]=\"columnDefs\" [defaultColDef]=\"defaultColDef\" [rowData]=\"item.value\" [rowHeight]=\"20\"\r\n [headerHeight]=\"22\"[pagination]=\"true\" [paginationPageSize]=\"paginationArray[i]\" (gridReady)=\"onGridReady($event,i)\"\r\n >\r\n </ag-grid-angular>\r\n </div>\r\n </ng-template>\r\n\r\n </ngb-panel>\r\n </ng-container>\r\n </ngb-accordion>\r\n </ng-container>\r\n <div class=\"alert alert-warning mt-3\" *ngIf=\"noDataFound\">\r\n No Data found matching your search criteria.\r\n </div>\r\n</section>", styles: [".btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px!important;height:32px;min-width:110px;margin:0 0 0 20px!important;padding:4px 15px!important}.tooltip-block{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #ccc!important}.dpicker{border:1px solid #ccc!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2!important}.cal:focus{box-shadow:none!important}.input-group-button{background:none;border:1px solid #0081c6;background-color:#0081c6;border-radius:0 3px 3px 0;min-width:35px;margin-left:1px;cursor:pointer}.labl{font-size:11.2px;font-weight:700!important}.info{font-size:12px!important;font-weight:400;padding-left:.5rem}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}.meta-td{padding:0!important}.title{text-align:center;font-size:18px;font-weight:700!important}.export-options{display:inline-flex;font-size:.75rem;height:2rem!important;width:5rem!important;margin-right:-1;margin-left:.4rem}.opt-cls{display:block;height:100%;width:5rem;border:1px solid #ccc!important;border-radius:4px!important;margin-right:1rem!important;outline:none!important}.opt-cls:focus{box-shadow:0 0 5px 3px #1877f2}.export-selector{height:2rem!important;width:100%}.search-btn{height:32px!important;height:32px;width:36px;background-color:#8091a5;border:none;border-radius:0 4px 4px 0;display:flex;justify-content:center;align-items:center}.search-btn:hover{background-color:#8091a5}.search-icon{height:16px;width:16px;object-fit:contain}.search-input{outline:none!important;border:1px solid #ccc!important;width:190px;height:32px!important;font-size:.75rem;padding:.25rem .5rem;border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0!important;border-bottom-right-radius:0!important;text-transform:uppercase}.search-input:focus{box-shadow:0 0 5px 3px #1877f2!important}.searchBox{margin-right:auto;display:flex}table{width:100%;border-collapse:separate;margin-bottom:0!important;table-layout:fixed!important}td{padding:0 1rem 6px 0!important;border-right:0 solid #ffffff!important;background-color:#fff!important}.row-cls{height:2.5rem!important}.inputbox{padding-left:1rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}::ng-deep .ng-select.ng-select-single .ng-select-container{height:32px I!important}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;overflow-y:auto;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container .ng-value{max-width:200px!important;overflow:hidden!important;text-overflow:hidden!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow-x:scroll!important;text-overflow:clip!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option::-webkit-scrollbar{display:none!important;width:0!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container,::ng-deep .ng-select.ng-select-single .ng-select-container,::ng-deep .ng-select.ng-select-multiple .ng-select-container{min-height:32px!important;height:32px!important;font-size:12px!important}.panel-cls{font-weight:700;font-size:13px;line-height:1.2;margin:0;padding:2px 0;color:#16181e}.transaction-grid ::ng-deep .ag-header{background-color:#f9f9f9;font-weight:600;font-size:10px;color:#000;border-right:1px solid #e0e0e0}:host ::ng-deep .ag-header-cell{padding:2px!important;align-items:center!important;justify-content:center!important;border-right:1px solid #e0e0e0;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;text-align:center!important}::ng-deep .ag-header-cell-label{display:flex!important;justify-content:center!important;align-items:center!important;width:100%;text-align:center!important}::ng-deep .ag-header-cell-text{text-align:center!important;width:100%!important;display:flex!important;justify-content:center!important}.transaction-grid ::ng-deep .ag-row{border-bottom:1px solid #e0e0e0}.transaction-grid ::ng-deep .ag-cell{font-size:9px;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere;line-height:1.4;padding:4px!important;color:#000;font-weight:500;border-right:.5px solid #e0e0e0;align-content:center;user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;cursor:text}::ng-deep .ag-cell-label-container{padding:0!important}.ag-theme-alpine{--ag-header-font-size: 10px;--ag-font-size: 10px;--ag-header-background-color: #fdfdfd;--ag-header-foreground-color: rgb(0, 0, 0)}::ng-deep .ag-paging-panel{height:30px!important;font-weight:500!important}\n"] }]
|
|
242
|
-
}], ctorParameters: function () { return [{ type: i1.ReportService }, { type: i0.NgZone }]; } });
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7QUFhM0UsTUFBTSxPQUFPLGlDQUFpQztJQTRENUMsWUFBb0IsYUFBNEIsRUFBVSxNQUFjO1FBQXBELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTNEeEUsWUFBTyxHQUEyQyxFQUFFLENBQUE7UUFDcEQsaUJBQVksR0FBMkMsRUFBRSxDQUFBO1FBQ3pELGNBQVMsR0FBMkMsRUFBRSxDQUFBO1FBR3RELHlCQUFvQixHQUFHLE9BQU8sQ0FBQztRQUMvQixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBRXpCLFNBQUksR0FBVyxFQUFFLENBQUM7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LEtBQUssQ0FBQztnQkFDN0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDekIsQ0FBQztZQUVELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDO1lBQ3RELENBQUM7WUFFRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDOzs4SEEzUFUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsdUVDckI5Qyx1aEVBNkNVOzJGRHhCRyxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBOZ1pvbmUsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJyYW5jaEFjdGl2aXR5UmVwb3J0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyYW5jaC1hY3Rpdml0eS1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0JztcclxuaW1wb3J0IHsgQ29sRGVmLCBHcmlkQXBpLCBHcmlkT3B0aW9ucywgR3JpZFJlYWR5RXZlbnQsIFJvd0dyb3VwaW5nRGlzcGxheVR5cGUgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IHRoZW1lQWxwaW5lIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L3RoZW1pbmcnO1xyXG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGluZ1N0YXRlcyB9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQtbG9hZGluZy1zdGF0ZXMnO1xyXG5pbXBvcnQgeyBHZW5lcmljRXhwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9leHBvcnQtZ2VuZXJpYy5zZXJ2aWNlJztcclxuXHJcbmRlY2xhcmUgbW9kdWxlICdqc3BkZicge1xyXG4gIGludGVyZmFjZSBqc1BERiB7XHJcbiAgICBhdXRvVGFibGU6IChvcHRpb25zOiBhbnkpID0+IGpzUERGO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnJhbmNoQWN0aXZpdHlTZW5kUmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkYXRhTWFwOiBSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlcG9ydFtdPiA9IHt9XHJcbiAgZmlsdGVyZWREYXRhOiBSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlcG9ydFtdPiA9IHt9XHJcbiAgcHJveHlEYXRhOiBSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlcG9ydFtdPiA9IHt9XHJcbiAgc2hvd1JlcG9ydDogYm9vbGVhbjtcclxuICBwYWdpbmF0aW9uQXJyYXk6IGFueVtdO1xyXG4gIHNlbGVjdGVkRXhwb3J0T3B0aW9uID0gJ2V4Y2VsJztcclxuICBncmlkQXBpczogR3JpZEFwaVtdID0gW107XHJcbiAgZ3JpZENvbHVtbkFwaTtcclxuICB1c2VyOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHJlcG9ydERhdGU6IHN0cmluZztcclxuICBmcm9tRGF0ZTogc3RyaW5nO1xyXG4gIHRvRGF0ZTogc3RyaW5nO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZztcclxuICBidWZmZXI6IGFueTtcclxuICBzeXNVc2VySWQ6IHN0cmluZztcclxuICBwcml2YXRlIGxvZ29CYXNlNjQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBDb21wb25lbnRMb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzO1xyXG4gIGxvYWRpbmdTdGF0ZTogQ29tcG9uZW50TG9hZGluZ1N0YXRlcyA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuTG9hZGluZztcclxuICBSZXBvcnROYW1lOiBzdHJpbmcgPSBcIkJyYW5jaCBBY3Rpdml0eSBTZW5kXCI7XHJcbiAgbGVmdERhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgbWV0YURhdGFUd286IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgZXhwb3J0U2VydmljZTogR2VuZXJpY0V4cG9ydFNlcnZpY2UgPSBpbmplY3QoR2VuZXJpY0V4cG9ydFNlcnZpY2UpO1xyXG4gIHNlYXJjaENyaXRlcmlhOiBbc3RyaW5nLHN0cmluZ11bXSA9IFtdO1xyXG5cclxuICAvLyBmbGFnc1xyXG4gIHNob3dNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbm9EYXRhRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0Zvcm1WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb2x1bW5EZWZzOiBDb2xEZWY8QnJhbmNoQWN0aXZpdHlSZXBvcnQ+W10gPSBbXHJcbiAgICB7IGZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScsIGhlYWRlck5hbWU6ICdCdXNpbmVzcyBEYXRlJywgZmxleDogMSx3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDcwLCB3aWR0aDogNzAsIHRvb2x0aXBGaWVsZDogJ2J1c2luZXNzRGF0ZVRpbWUnIH0sXHJcbiAgICB7IGZpZWxkOiAndHJhbnNhY3Rpb25EYXRlVGltZScsIGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBEYXRlJywgbWluV2lkdGg6MTAwLGZsZXg6IDIsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvbkRhdGVUaW1lJyB9LFxyXG4gICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uTnVtYmVyJywgaGVhZGVyTmFtZTogJ1RyYW5zYWN0aW9uIE51bWJlcicsIGZsZXg6IDEuOCx3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgbWluV2lkdGg6OTAsIHdpZHRoOiAxMzAsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbC10cmFuc2FjdGlvbicsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uTnVtYmVyJyB9LFxyXG4gICAgeyBmaWVsZDogJ3Byb2R1Y3QnLCBoZWFkZXJOYW1lOiAnUHJvZHVjdCcsIGZsZXg6IDAuNSx3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgbWluV2lkdGg6ODAsIHdpZHRoOiAxMjAsIHRvb2x0aXBGaWVsZDogJ3Byb2R1Y3QnIH0sXHJcbiAgICB7IGZpZWxkOiAnc2VuZEFnZW50QnJhbmNoQ29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2xpZW50IEJyYW5jaENvZGUnLCBmbGV4OiAxLHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBtaW5XaWR0aDo5MCwgd2lkdGg6IDEyMCwgdG9vbHRpcEZpZWxkOiAnc2VuZEFnZW50QnJhbmNoQ29kZScgfSxcclxuICAgIHsgZmllbGQ6ICdyZWNlaXZlQWdlbnRDb2RlJywgaGVhZGVyTmFtZTogJ1JlY2VpdmUgQ2xpZW50Q29kZScsIGZsZXg6IDEsd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIG1pbldpZHRoOiA5MCwgd2lkdGg6IDcwLCB0b29sdGlwRmllbGQ6ICdyZWNlaXZlQWdlbnRDb2RlJyB9LFxyXG4gICAgeyBmaWVsZDogJ3BheW91dENDY29kZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlQ2N5IENvZGUnLCBmbGV4OiAxLHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLG1pbldpZHRoOjkwLCB3aWR0aDogMTEwLCB0b29sdGlwRmllbGQ6ICdwYXlvdXRDQ2NvZGUnIH0sXHJcbiAgICB7IGZpZWxkOiAncGF5b3V0QW1vdW50JywgaGVhZGVyTmFtZTogJ1JlY2VpdmUgQW1vdW50JywgZmxleDogMSx3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSxtaW5XaWR0aDo5MCwgbWF4V2lkdGg6IDEyMCwgIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICdwYXlvdXRBbW91bnQnIH0sXHJcbiAgICB7IGZpZWxkOiAncGF5aW5DQ2NvZGUnLCBoZWFkZXJOYW1lOiAnU2VuZENjeSBDb2RlJywgZmxleDogMSx3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgbWluV2lkdGg6OTAsbWF4V2lkdGg6IDkwLCB0b29sdGlwRmllbGQ6ICdwYXlpbkNDY29kZScgfSxcclxuICAgIHsgZmllbGQ6ICdwYXlpbkFtb3VudCcsIGhlYWRlck5hbWU6ICdTZW5kIEFtb3VudCcsIGZsZXg6IDEsd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIG1pbldpZHRoOjgwLCBtYXhXaWR0aDogMTIwLCAgY2VsbENsYXNzOiAnYWctcmlnaHQtYWxpZ25lZC1jZWxsIGNvbXBhY3QtY2VsbCcsIHRvb2x0aXBGaWVsZDogJ3BheWluQW1vdW50JyB9LFxyXG4gICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uQ29tbWlzc2lvbkFtb3VudCcsIGhlYWRlck5hbWU6ICdTZXJ2aWNlIEZlZScsIGZsZXg6IDEsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBtaW5XaWR0aDo5MCwgbWF4V2lkdGg6IDEwMCwgIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvbkNvbW1pc3Npb25BbW91bnQnIH0sXHJcbiAgICB7IGZpZWxkOiAndGF4JywgaGVhZGVyTmFtZTogJ1RheCcsIGZsZXg6IDEsd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIG1pbldpZHRoOiA4MCwgbWF4V2lkdGg6IDEwMCwgIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0YXgnIH0sXHJcbiAgICB7IGZpZWxkOiAndG90YWxQYXlpbkFtb3VudCcsIGhlYWRlck5hbWU6ICdUb3RhbCBTZW5kIEFtb3VudCcsbWluV2lkdGg6MTAwLCBmbGV4OiAxLHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAndG90YWxQYXlpbkFtb3VudCcgfSxcclxuICAgIHsgZmllbGQ6ICdzdGF0dXMnLCBoZWFkZXJOYW1lOiAnVHJhbnNhY3Rpb24gU3RhdHVzJyxtaW5XaWR0aDoxMDAsIGZsZXg6IDEsd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3N0YXR1cycgfVxyXG4gIF07XHJcblxyXG5cclxuICBkZWZhdWx0Q29sRGVmID0ge1xyXG4gICAgc29ydGFibGU6IHRydWUsXHJcbiAgICBmaWx0ZXI6IHRydWUsXHJcbiAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICBtaW53aWR0aDogNDAsXHJcbiAgICB3cmFwSGVhZGVyVGV4dDogdHJ1ZSxcclxuICAgIGF1dG9IZWFkZXJIZWlnaHQ6IHRydWUsXHJcbiAgICBzdXBwcmVzc1NpemVUb0ZpdDogZmFsc2UsXHJcbiAgICB3cmFwVGV4dDogdHJ1ZVxyXG4gIH07XHJcbiAgcm93RGF0YTogQnJhbmNoQWN0aXZpdHlSZXBvcnRbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHsgfVxyXG5cclxuICByZXBvcnRUaGVtZSA9IHRoZW1lQWxwaW5lLndpdGhQYXJhbXMoe1xyXG4gICAgaGVhZGVyRm9udFNpemU6ICcxMHB4JyxcclxuICAgIGZvbnRGYW1pbHk6IFsnQXJpYWwnLCAnc2Fucy1zZXJpZiddLFxyXG4gICAgZm9udFNpemU6ICc5cHgnXHJcbiAgfSk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzLkNvbXBsZXRlO1xyXG4gICAgLy8gQ2hlY2sgaWYgVXNlciBpcyBmYWxjb24gdXNlciBvciBmb3NzaWxVc2VyXHJcbiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9zc2lsdXNlcm5hbWUnKSkge1xyXG4gICAgICB0aGlzLnN5c1VzZXJJZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Zvc3NpbHVzZXJuYW1lJylcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnN5c1VzZXJJZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2V6cmVtaXR1c2VybmFtZScpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zeXNVc2VySWQgPSB0aGlzLnN5c1VzZXJJZC5yZXBsYWNlKC9eW1wiJ10oLiopW1wiJ10kLywgJyQxJyk7XHJcbiAgICB0aGlzLnVzZXIgPSB0aGlzLnN5c1VzZXJJZDtcclxuICAgIGNvbnNvbGUubG9nKFwiU3lzdGVtIFVzZXIgSWQgOiBcIiArIHRoaXMuc3lzVXNlcklkKTtcclxuICB9XHJcblxyXG4gIGZpbHRlcih0ZXh0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRleHQ7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0ID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoVGV4dD8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gc3RydWN0dXJlZENsb25lKHRoaXMuZGF0YU1hcCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuc2VhcmNoVGV4dD8udHJpbSgpPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgZm9yIChjb25zdCBba2V5LCBlbnRyaWVzXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnByb3h5RGF0YSkpIHtcclxuICAgICAgY29uc3QgZmlsdGVyZWREYXRhID0gZW50cmllcy5maWx0ZXIoZW50cnkgPT4gT2JqZWN0LnZhbHVlcyhlbnRyeSlcclxuICAgICAgICAuc29tZSh2YWwgPT4ge1xyXG4gICAgICAgICAgbGV0IGE6IHN0cmluZyA9IHZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICByZXR1cm4gYS5zZWFyY2godGhpcy5zZWFyY2hUZXh0KSA9PSAtMSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICB9KSlcclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhW2tleV0gPSBmaWx0ZXJlZERhdGE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0YTtcclxuICB9XHJcblxyXG4gIG9uR3JpZFJlYWR5KHBhcmFtczogR3JpZFJlYWR5RXZlbnQsIGlkOiBudW1iZXIpIHtcclxuICAgIHBhcmFtcy5hcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICAgIHRoaXMuZ3JpZEFwaXNbaWRdID0gcGFyYW1zLmFwaTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUV4cG9ydChvcHRpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmICghdGhpcy5oYXNBbnlHcm91cHMoKSkge1xyXG4gICAgICBhbGVydChcIlRoZXJlIGlzIG5vIGRhdGEgdG8gZXhwb3J0IGJhc2VkIG9uIHlvdXIgY3VycmVudCBmaWx0ZXIuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBJZiBubyBkYXRhLCBkbyBub3RoaW5nLlxyXG4gICAgaWYgKCF0aGlzLmZpbHRlcmVkRGF0YSB8fCBPYmplY3Qua2V5cyh0aGlzLmZpbHRlcmVkRGF0YSkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGFsZXJ0KFwiTm8gZGF0YSB0byBleHBvcnRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHRpdGxlID0gXCJCcmFuY2ggQWN0aXZpdHkgU2VuZFwiO1xyXG4gICAgY29uc3QgcmVwb3J0VGltZUZvcm1hdHRlciA9IHRoaXMuZGF0ZVZhbHVlRm9ybWF0dGVyKCdkZC9NTS95eXl5IGhoOm1tIGEnKTtcclxuICAgIGNvbnN0IG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXHJcbiAgICAgIFsnUmVwb3J0IFBlcmlvZCAnLCB0aGlzLmZyb21EYXRlICsgXCIgLSBcIiArIHRoaXMudG9EYXRlXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUnLCB0aGlzLnVzZXI/dGhpcy51c2VyK1wiIEAgXCIrdGhpcy5yZXBvcnREYXRlOicnK1wiIEAgXCIrdGhpcy5yZXBvcnREYXRlXSxcclxuICAgIF07XHJcbiAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhIC0tLVxyXG4gICAgY29uc3Qgc2VhcmNoQ3JpdGVyaWE6IFtzdHJpbmcsIHN0cmluZ11bXSA9IHRoaXMuc2VhcmNoQ3JpdGVyaWE7XHJcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5EZWZzO1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YU1hcDtcclxuICAgIC8vIGNvbnN0IGRhdGEgPSB0aGlzLmZpbHRlcmVkRGF0YTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbXHJcbiAgICAgICAgJ3BheW91dEFtb3VudCcsICdwYXlpbkFtb3VudCcsICd0cmFuc2FjdGlvbkNvbW1pc3Npb25BbW91bnQnLCAndGF4JywgJ3RvdGFsUGF5aW5BbW91bnQnXHJcbiAgICAgIF0sXHJcbiAgICAgIC8vIHNwZWNpZnkgYWxsIGRhdGUgZmllbGRzIGV4cGVjdGVkXHJcbiAgICAgIGRhdGVGaWVsZHM6IFtdLFxyXG5cclxuICAgICAgZGF0ZUZpZWxkRm9ybWF0czoge1xyXG4gICAgICAgIHR4bkRhdGVBbmRUaW1lOiAnZGQvTU0veXl5eSBoaDptbSBhJyxcclxuICAgICAgICBjYW5jZWxsYXRpb25CcmFuY2hEYXRlVGltZTogJ2RkL01NL3l5eXkgSEg6bW0nLFxyXG4gICAgICAgIGNhbmNlbGxhdGlvbkJ1c2luZXNzRGF0ZTogJ2RkL01NL3l5eXknXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBzcGVjaWFsRGVjaW1hbEZpZWxkczoge1xyXG4gICAgICAgIHJhdGU6IDggICAgICAgLy8gZnV0dXJlIGZpZWxkIHdpdGggOCBkZWNpbWFsIHBsYWNlc1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgZ3JvdXBCeUtleTogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24pIHtcclxuICAgICAgY2FzZSAnZXhjZWwnOlxyXG4gICAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnRUb0V4Y2VsKHsgdGl0bGUsIG1ldGFkYXRhLCBzZWFyY2hDcml0ZXJpYSwgY29sdW1ucywgZGF0YSwgb3B0aW9ucyB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncGRmJzpcclxuICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuZXhwb3J0VG9QZGYoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjc3YnOlxyXG4gICAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnRUb0Nzdih7IHRpdGxlLCBtZXRhZGF0YSwgc2VhcmNoQ3JpdGVyaWEsIGNvbHVtbnMsIGRhdGEsIG9wdGlvbnMgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYWxlcnQoXCJQbGVhc2Ugc2VsZWN0IGFuIGV4cG9ydCBmb3JtYXQuXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZVZhbHVlRm9ybWF0dGVyKGZvcm1hdDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghcGFyYW1zLnZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdERhdGUocGFyYW1zLnZhbHVlLCBmb3JtYXQsICdlbi1VUycpO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEtleXMob2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XHJcbiAgfVxyXG5cclxuICBoYXNBbnlHcm91cHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZERhdGEgJiYgdGhpcy5nZXRLZXlzKHRoaXMuZmlsdGVyZWREYXRhKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0QW1vdW50KHBhcmFtczogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zPy52YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJykge1xyXG4gICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xyXG4gICAgICByZXR1cm4gKE1hdGgudHJ1bmMobnVtICogMTAwMCkgLyAxMDAwKS50b0ZpeGVkKDMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VhcmNoKGNyaXRlcmlhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoQ3JpdGVyaWEgPSBjcml0ZXJpYS5zZWFyY2hDcml0ZXJpYTtcclxuICAgIHRoaXMucmVwb3J0RGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcclxuICAgIHRoaXMucmVwb3J0RGF0ZSA9IGZvcm1hdERhdGUodGhpcy5yZXBvcnREYXRlLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJyk7XHJcbiAgICBjb25zdCBtb2RhbCA9IGNyaXRlcmlhLm1vZGFsO1xyXG4gICAgdGhpcy51c2VyID0gY3JpdGVyaWEuc3lzVXNlcklEO1xyXG4gICAgdGhpcy5mcm9tRGF0ZSA9IGZvcm1hdERhdGUobW9kYWwuZnJvbURhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLDEwKTtcclxuICAgIHRoaXMudG9EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLDEwKTtcclxuICAgIGNvbnNvbGUubG9nKG1vZGFsKTtcclxuICAgIC8vIENvZGUgRm9yIE1ldGEgRGF0YVxyXG4gICAgdGhpcy5sZWZ0RGF0YSA9IHtcclxuICAgICAgJ1JlcG9ydCBQZXJpb2QnOiB0aGlzLmZyb21EYXRlICsgXCIgLSBcIiArIHRoaXMudG9EYXRlLFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWV0YURhdGFUd28gPSB7XHJcbiAgICAgICdSZXBvcnQgVXNlciAmIFRpbWUnOiB0aGlzLnVzZXIrXCIgQCBcIit0aGlzLnJlcG9ydERhdGUsXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VhcmNoRGF0YSA9IHtcclxuICAgICAgXCJTdGFydERhdGVcIjogbW9kYWwuZnJvbURhdGUsXHJcbiAgICAgIFwiRW5kRGF0ZVwiOiBtb2RhbC50b0RhdGUsXHJcbiAgICAgIFwiU2VuZENvdW50cnlDb2RlXCI6IG1vZGFsLnNlbmRDb3VudHJ5LFxyXG4gICAgICBcIlJlY3ZDb3VudHJ5Q29kZVwiOiBtb2RhbC5yZWNlaXZlQ291bnRyeSxcclxuICAgICAgXCJCdXNpbmVzc1BhcnRuZXJDb2RlXCI6IG1vZGFsLmNsaWVudCxcclxuICAgICAgXCJUcmFuc2FjdGlvblN0YXR1c1wiOiBtb2RhbC50cmFuc2FjdGlvblN0YXR1cy5qb2luKFwiLFwiKSxcclxuICAgICAgXCJQYXlvdXRDdXJyZW5jeVwiOiBtb2RhbC5yZWNlaXZlQ3VycmVuY3ksXHJcbiAgICAgIFwiVHJhbnNhY3Rpb25UeXBlXCI6IG1vZGFsLnByb2R1Y3QsXHJcbiAgICAgIFwiQnJhbmNoQ29kZVwiOiBtb2RhbC5icmFuY2hcclxuICAgIH07XHJcbiAgICB0aGlzLnNob3dNZXNzYWdlID0gdHJ1ZTtcclxuICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Mb2FkaW5nO1xyXG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlLmdldEJyYW5jaEFjdGl2aXR5UmVwb3J0KHNlYXJjaERhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgdGhpcy5kYXRhTWFwID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMubm9EYXRhRm91bmQgPSBPYmplY3Qua2V5cyh0aGlzLmZpbHRlcmVkRGF0YSkubGVuZ3RoID09IDAgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wcm94eURhdGEgPSBzdHJ1Y3R1cmVkQ2xvbmUoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkgPSBuZXcgQXJyYXkoT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCkuZmlsbCgxNSk7XHJcbiAgICAgICAgdGhpcy5zaG93TWVzc2FnZSA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyZWREYXRhKS5sZW5ndGggPT0gMCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dSZXBvcnQgPSB0cnVlO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICB0aGlzLnNob3dSZXBvcnQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVZhbGlkKGlzVmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb3JtVmFsaWQgPSBpc1ZhbGlkO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIjxsaWItc2VhcmNoLWZpbHRlciBcclxuICAgIFtSZXBvcnROYW1lXT1cIlJlcG9ydE5hbWVcIiBcclxuICAgIChzZWFyY2hDbGlja2VkKT1cImhhbmRsZVNlYXJjaCgkZXZlbnQpXCJcclxuICAgIChmb3JtVmFsaWQpPVwiaGFuZGxlRm9ybVZhbGlkKCRldmVudClcIlxyXG4gICAgPlxyXG48L2xpYi1zZWFyY2gtZmlsdGVyPlxyXG5cclxuPGFwcC1sb2FkZXIgY2xhc3M9XCJcIiAqbmdJZj1cImxvYWRpbmdTdGF0ZSA9PSBDb21wb25lbnRMb2FkaW5nU3RhdGUuTG9hZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuXHJcbjxzZWN0aW9uICpuZ0lmPVwic2hvd1JlcG9ydCAmJiBpc0Zvcm1WYWxpZFwiIGNsYXNzPVwibXktMlwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbm9EYXRhRm91bmRcIj5cclxuICAgICA8bGliLW1ldGFkYXRhIFtyZXBvcnROYW1lXT1cIlJlcG9ydE5hbWVcIiBbc2hvd21ldGFEYXRhT25lXT1cInRydWVcIiBbc2hvd21ldGFEYXRhVHdvXT1cInRydWVcIiBbbWV0YURhdGFPbmVdPVwibGVmdERhdGFcIiBbbWV0YURhdGFUd29dPVwibWV0YURhdGFUd29cIihleHBvcnRFdmVudCk9XCJoYW5kbGVFeHBvcnQoJGV2ZW50KVwiIChzZWFyY2hFdmVudCk9XCJmaWx0ZXIoJGV2ZW50KVwiPjwvbGliLW1ldGFkYXRhPlxyXG5cclxuICA8bmdiLWFjY29yZGlvbiAjYWNjPVwibmdiQWNjb3JkaW9uXCIgW2Nsb3NlT3RoZXJzXT1cImZhbHNlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YSB8IGtleXZhbHVlOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxuZ2ItcGFuZWwgKm5nSWY9XCJpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIiBbaWRdPVwiJ3BhbmVsLScgKyBpXCI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JQYW5lbFRpdGxlIHN0eWxlPVwiaGVpZ2h0OiAxMCU7XCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgY2xhc3M9XCJwYW5lbC1jbHNcIj57e1xyXG4gICAgICAgICAgICBpdGVtLmtleVxyXG4gICAgICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgICAgICAgICAgIDxsaWItcGFnZS1zaXplLXNlbGVjdG9yIFt0b3RhbEVudHJpZXNdPVwiaXRlbT8udmFsdWU/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgIFtkZWZhdWx0U2l6ZV09XCInMTUnXCIgW2dyaWRBcGldPVwiZ3JpZEFwaXNbaV1cIj5cclxuICAgICAgICAgICAgPjwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgdHJhbnNhY3Rpb24tZ3JpZFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAzODBweDtcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIiBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCIgW3Jvd0RhdGFdPVwiaXRlbS52YWx1ZVwiIFtyb3dIZWlnaHRdPVwiMjBcIlxyXG4gICAgICAgICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjJcIltwYWdpbmF0aW9uXT1cInRydWVcIiBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25BcnJheVtpXVwiIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvbmdiLXBhbmVsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZ2ItYWNjb3JkaW9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG10LTNcIiAqbmdJZj1cIm5vRGF0YUZvdW5kXCI+XHJcbiAgICBObyBEYXRhIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
|