@sachin9822/reports-lib 0.0.209 → 0.0.210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/esm2020/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.mjs +13 -12
  2. package/esm2020/lib/components/accounting-report/accounting-report.component.mjs +4 -3
  3. package/esm2020/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.mjs +1 -1
  4. package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs +1 -1
  5. package/esm2020/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.mjs +700 -0
  6. package/esm2020/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.mjs +1 -1
  7. package/esm2020/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.mjs +3 -3
  8. package/esm2020/lib/components/funding-report/funding-report.component.mjs +3 -3
  9. package/esm2020/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.mjs +4 -3
  10. package/esm2020/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.mjs +3 -3
  11. package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs +1 -1
  12. package/esm2020/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.mjs +311 -0
  13. package/esm2020/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.mjs +6 -5
  14. package/esm2020/lib/models/branch-activity-report/branch-activity-send-report.mjs +1 -1
  15. package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.mjs +6 -0
  16. package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report.mjs +5 -0
  17. package/esm2020/lib/reports-lib.module.mjs +15 -5
  18. package/esm2020/lib/services/report.service.mjs +62 -4
  19. package/esm2020/lib/shared/export-generic.service.mjs +10 -1
  20. package/esm2020/lib/shared/search-filter/search-filter.component.mjs +525 -189
  21. package/esm2020/public-api.mjs +5 -1
  22. package/fesm2015/sachin9822-reports-lib.mjs +1714 -329
  23. package/fesm2015/sachin9822-reports-lib.mjs.map +1 -1
  24. package/fesm2020/sachin9822-reports-lib.mjs +1720 -328
  25. package/fesm2020/sachin9822-reports-lib.mjs.map +1 -1
  26. package/lib/assets/images/Search.svg +9 -9
  27. package/lib/assets/svg-loaders/blue-tail-spin.svg +31 -31
  28. package/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.d.ts +78 -0
  29. package/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.d.ts +68 -0
  30. package/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.d.ts +1 -1
  31. package/lib/models/branch-activity-report/branch-activity-send-report.d.ts +4 -0
  32. package/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.d.ts +13 -0
  33. package/lib/models/transaction-monitoring-report/transaction-monitoring-report.d.ts +23 -0
  34. package/lib/reports-lib.module.d.ts +12 -10
  35. package/lib/services/report.service.d.ts +11 -1
  36. package/lib/shared/search-filter/search-filter.component.d.ts +7 -5
  37. package/package.json +1 -1
  38. package/public-api.d.ts +4 -0
@@ -255,7 +255,7 @@ export class TransactionEnquiryComponent {
255
255
  }
256
256
  }
257
257
  TransactionEnquiryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionEnquiryComponent, deps: [{ token: i1.ReportService }, { token: i2.ExportService }, { token: i3.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
258
- TransactionEnquiryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionEnquiryComponent, selector: "app-transaction-enquiry", viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }], 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 *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n\r\n<span *ngIf=\"loadingState === ComponentLoadingState.Error\">{{ errorMessage }}</span>\r\n\r\n<div class=\"alert alert-warning mt-3\" *ngIf=\"hasSearched && transactionData.length === 0 && loadingState === ComponentLoadingState.Complete\">\r\n No transactions found matching your search criteria.\r\n</div>\r\n\r\n<div *ngIf=\"transactionData && transactionData.length > 0 && loadingState === ComponentLoadingState.Complete && isFormValid\">\r\n\r\n <lib-metadata \r\n [reportName]=\"ReportName\" \r\n [showmetaDataOne]=\"true\" \r\n [showmetaDataTwo]=\"true\" \r\n [metaDataOne]=\"metaDataOne\"\r\n [metaDataTwo]=\"metaDataTwo\" \r\n (exportEvent)=\"handleExport($event)\" \r\n (searchEvent)=\"filter($event)\">\r\n </lib-metadata>\r\n\r\n <div style=\"position: relative;\" *ngIf=\"filteredData.length > 0\">\r\n\r\n <lib-page-size-selector \r\n [totalEntries]=\"transactionData.length\" \r\n [defaultSize]=\"'15'\" \r\n [gridApi]=\"gridApi\">\r\n </lib-page-size-selector>\r\n\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" \r\n [rowData]=\"filteredData\" \r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowHeight]=\"22\" \r\n [pagination]=\"true\" \r\n [headerHeight]=\"30\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n (gridReady)=\"onGridReady($event)\" \r\n style=\"width: 100%; height: 435px;\">\r\n </ag-grid-angular>\r\n </div>\r\n\r\n</div>", 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: i4.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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PageSizeSelectorComponent, selector: "lib-page-size-selector", inputs: ["pageSizeArray", "defaultSize", "totalEntries", "gridApi"] }, { kind: "component", type: i7.MetadataComponent, selector: "lib-metadata", inputs: ["metaDataOne", "metaDataTwo", "showmetaDataOne", "showmetaDataTwo", "reportName"], outputs: ["searchEvent", "exportEvent"] }, { kind: "component", type: i8.LoaderComponent, selector: "app-loader" }, { kind: "component", type: i9.SearchFilterComponent, selector: "lib-search-filter", inputs: ["ReportName"], outputs: ["searchClicked", "formValid"] }] });
258
+ TransactionEnquiryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionEnquiryComponent, selector: "app-transaction-enquiry", viewQueries: [{ propertyName: "agGrid", first: true, predicate: ["agGrid"], descendants: true }], 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 *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n\r\n<span *ngIf=\"loadingState === ComponentLoadingState.Error\">{{ errorMessage }}</span>\r\n\r\n<div class=\"alert alert-warning mt-3\" *ngIf=\"hasSearched && transactionData.length === 0 && loadingState === ComponentLoadingState.Complete\">\r\n No transactions found matching your search criteria.\r\n</div>\r\n\r\n<div *ngIf=\"transactionData && transactionData.length > 0 && loadingState === ComponentLoadingState.Complete && isFormValid\">\r\n\r\n <lib-metadata \r\n [reportName]=\"ReportName\" \r\n [showmetaDataOne]=\"true\" \r\n [showmetaDataTwo]=\"true\" \r\n [metaDataOne]=\"metaDataOne\"\r\n [metaDataTwo]=\"metaDataTwo\" \r\n (exportEvent)=\"handleExport($event)\" \r\n (searchEvent)=\"filter($event)\">\r\n </lib-metadata>\r\n\r\n <div style=\"position: relative;\" *ngIf=\"filteredData.length > 0\">\r\n\r\n <lib-page-size-selector \r\n [totalEntries]=\"transactionData.length\" \r\n [defaultSize]=\"'15'\" \r\n [gridApi]=\"gridApi\">\r\n </lib-page-size-selector>\r\n\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" \r\n [rowData]=\"filteredData\" \r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowHeight]=\"22\" \r\n [pagination]=\"true\" \r\n [headerHeight]=\"30\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n (gridReady)=\"onGridReady($event)\" \r\n style=\"width: 100%; height: 435px;\">\r\n </ag-grid-angular>\r\n </div>\r\n\r\n</div>", 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: i4.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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PageSizeSelectorComponent, selector: "lib-page-size-selector", inputs: ["pageSizeArray", "defaultSize", "totalEntries", "gridApi"] }, { kind: "component", type: i7.MetadataComponent, selector: "lib-metadata", inputs: ["metaDataOne", "metaDataTwo", "showmetaDataOne", "showmetaDataTwo", "reportName"], outputs: ["searchEvent", "exportEvent"] }, { kind: "component", type: i8.LoaderComponent, selector: "app-loader" }, { kind: "component", type: i9.SearchFilterComponent, selector: "lib-search-filter", inputs: ["ReportName", "initialFilters"], outputs: ["searchClicked", "formValid"] }] });
259
259
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionEnquiryComponent, decorators: [{
260
260
  type: Component,
261
261
  args: [{ selector: 'app-transaction-enquiry', 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 *ngIf=\"loadingState === ComponentLoadingState.Loading\"></app-loader>\r\n\r\n<span *ngIf=\"loadingState === ComponentLoadingState.Error\">{{ errorMessage }}</span>\r\n\r\n<div class=\"alert alert-warning mt-3\" *ngIf=\"hasSearched && transactionData.length === 0 && loadingState === ComponentLoadingState.Complete\">\r\n No transactions found matching your search criteria.\r\n</div>\r\n\r\n<div *ngIf=\"transactionData && transactionData.length > 0 && loadingState === ComponentLoadingState.Complete && isFormValid\">\r\n\r\n <lib-metadata \r\n [reportName]=\"ReportName\" \r\n [showmetaDataOne]=\"true\" \r\n [showmetaDataTwo]=\"true\" \r\n [metaDataOne]=\"metaDataOne\"\r\n [metaDataTwo]=\"metaDataTwo\" \r\n (exportEvent)=\"handleExport($event)\" \r\n (searchEvent)=\"filter($event)\">\r\n </lib-metadata>\r\n\r\n <div style=\"position: relative;\" *ngIf=\"filteredData.length > 0\">\r\n\r\n <lib-page-size-selector \r\n [totalEntries]=\"transactionData.length\" \r\n [defaultSize]=\"'15'\" \r\n [gridApi]=\"gridApi\">\r\n </lib-page-size-selector>\r\n\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" \r\n [rowData]=\"filteredData\" \r\n [columnDefs]=\"columnDefs\"\r\n [defaultColDef]=\"defaultColDef\"\r\n [rowHeight]=\"22\" \r\n [pagination]=\"true\" \r\n [headerHeight]=\"30\" \r\n [paginationPageSize]=\"paginationPageSize\"\r\n (gridReady)=\"onGridReady($event)\" \r\n style=\"width: 100%; height: 435px;\">\r\n </ag-grid-angular>\r\n </div>\r\n\r\n</div>", 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"] }]
@@ -0,0 +1,311 @@
1
+ // import { Component, NgZone, OnInit, inject } from '@angular/core';
2
+ // import { ReportService } from 'src/app/services/report.service';
3
+ // import { BranchActivityReport } from 'src/app/models/branch-activity-report/branch-activity-send-report';
4
+ // import { ColDef, GridApi, GridReadyEvent } from 'ag-grid-community';
5
+ import { themeAlpine } from '@ag-grid-community/theming';
6
+ // import { formatDate } from '@angular/common';
7
+ // import { ComponentLoadingStates } from 'src/app/models/component-loading-states';
8
+ // import { GenericExportService } from 'src/app/shared/export-generic.service';
9
+ // import { TransactionMonitoringReport } from 'src/app/models/transaction-monitoring-report/transaction-monitoring-report';
10
+ import { Component, inject } from "@angular/core";
11
+ import { ComponentLoadingStates } from "../../models/component-loading-states";
12
+ import { GenericExportService } from "../../shared/export-generic.service";
13
+ import { formatDate } from '@angular/common';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "../../services/report.service";
16
+ import * as i2 from "@angular/router";
17
+ import * as i3 from "ag-grid-angular";
18
+ import * as i4 from "@angular/common";
19
+ import * as i5 from "../../shared/page-size-selector/page-size-selector.component";
20
+ import * as i6 from "../../shared/metadata/metadata.component";
21
+ import * as i7 from "@ng-bootstrap/ng-bootstrap";
22
+ import * as i8 from "../../shared/loader/loader.component";
23
+ import * as i9 from "../../shared/search-filter/search-filter.component";
24
+ export class TransactionMonitoringReportComponent {
25
+ constructor(reportService, ngZone, route) {
26
+ this.reportService = reportService;
27
+ this.ngZone = ngZone;
28
+ this.route = route;
29
+ this.dataMap = {};
30
+ this.filteredData = {};
31
+ this.proxyData = {};
32
+ this.selectedExportOption = 'excel';
33
+ this.gridApis = [];
34
+ this.user = "";
35
+ this.ComponentLoadingState = ComponentLoadingStates;
36
+ this.loadingState = ComponentLoadingStates.Loading;
37
+ this.ReportName = "Transaction Monitoring";
38
+ this.exportService = inject(GenericExportService);
39
+ this.searchCriteria = [];
40
+ // flags
41
+ this.showMessage = false;
42
+ this.noDataFound = false;
43
+ this.isFormValid = false;
44
+ this.columnDefs = [
45
+ { field: 'businessDateTime', headerName: 'Business Date', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 70, wrapText: true, autoHeight: true, tooltipField: 'businessDateTime' },
46
+ { field: 'transactionDateTime', headerName: 'Transaction Date', flex: 2, headerClass: 'ag-left-aligned-header', minWidth: 100, wrapText: true, autoHeight: true, tooltipField: 'transactionDateTime' },
47
+ { field: 'transactionNumber', headerName: 'Transaction Number', flex: 1.8, headerClass: 'ag-left-aligned-header', minWidth: 90, wrapText: true, autoHeight: true, cellClass: 'ag-left-cols-cell compact-cell-transaction', tooltipField: 'transactionNumber' },
48
+ { field: 'product', headerName: 'Product', flex: 0.5, headerClass: 'ag-left-aligned-header', minWidth: 60, wrapText: true, autoHeight: true, tooltipField: 'product' },
49
+ { field: 'sendAgentCode', headerName: 'SendClient Code', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 90, wrapText: true, autoHeight: true, tooltipField: 'sendAgentCode' },
50
+ { field: 'sendAgentBranchCode', headerName: 'SendClient BranchCode', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 90, wrapText: true, autoHeight: true, tooltipField: 'sendAgentBranchCode' },
51
+ { field: 'sendAgentBranchName', headerName: 'SendClient BranchName', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 120, wrapText: true, autoHeight: true, tooltipField: 'sendAgentBranchName' },
52
+ { field: 'senderName', headerName: 'Sender Name', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 120, wrapText: true, autoHeight: true, tooltipField: 'senderName' },
53
+ { field: 'receiverName', headerName: 'Receiver Name', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 100, wrapText: true, autoHeight: true, tooltipField: 'receiverName' },
54
+ { field: 'receiveAgentCode', headerName: 'Receive ClientCode', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 90, wrapText: true, autoHeight: true, tooltipField: 'receiveAgentCode' },
55
+ { field: 'payoutCCcode', headerName: 'ReceiveCcy Code', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 80, wrapText: true, autoHeight: true, tooltipField: 'payoutCCcode' },
56
+ { field: 'payoutAmount', headerName: 'Receive Amount', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 90, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payoutAmount' },
57
+ { field: 'payinCCcode', headerName: 'SendCcy Code', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 60, wrapText: true, autoHeight: true, tooltipField: 'payinCCcode' },
58
+ { field: 'payinAmount', headerName: 'Send Amount', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 80, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'payinAmount' },
59
+ { field: 'transactionCommissionAmount', headerName: 'Service Fee', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 70, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'transactionCommissionAmount' },
60
+ { field: 'tax', headerName: 'Tax', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 60, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'tax' },
61
+ { field: 'totalPayinAmount', headerName: 'Total Send Amount', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 100, wrapText: true, autoHeight: true, cellClass: 'ag-right-aligned-cell compact-cell', tooltipField: 'totalPayinAmount' },
62
+ { field: 'txnStatusDateAndTime', headerName: 'Txn Status Date & Time', flex: 1, headerClass: 'ag-left-aligned-header', minWidth: 100, wrapText: true, autoHeight: true, tooltipField: 'txnStatusDateAndTime' }
63
+ ];
64
+ this.defaultColDef = {
65
+ sortable: true,
66
+ filter: true,
67
+ resizable: true,
68
+ minwidth: 40,
69
+ wrapHeaderText: true,
70
+ autoHeaderHeight: true,
71
+ suppressSizeToFit: false,
72
+ wrapText: true
73
+ };
74
+ this.rowData = [];
75
+ this.reportTheme = themeAlpine.withParams({
76
+ headerFontSize: '10px',
77
+ fontFamily: ['Arial', 'sans-serif'],
78
+ fontSize: '9px'
79
+ });
80
+ this.statusOrderMap = {
81
+ PendingAuthorisation: 1,
82
+ Confirmed: 2,
83
+ InAMLReview: 3,
84
+ InProcess: 3,
85
+ AMLRejected: 4,
86
+ Decline: 4,
87
+ Submitted: 5,
88
+ Dispatched: 6,
89
+ Paid: 7,
90
+ BankRejected: 8,
91
+ StopApproved: 9,
92
+ ReadytoCancel: 10,
93
+ Cancelled: 11,
94
+ PaidCancelled: 12,
95
+ Void: 13,
96
+ Rejected: 14
97
+ };
98
+ this.statusOrderComparator = (a, b) => {
99
+ const orderA = this.statusOrderMap[a.key] ?? 20;
100
+ const orderB = this.statusOrderMap[b.key] ?? 20;
101
+ return orderA - orderB;
102
+ };
103
+ }
104
+ ngOnInit() {
105
+ this.loadingState = ComponentLoadingStates.Complete;
106
+ // Check if User is falcon user or fossilUser
107
+ if (sessionStorage.getItem('fossilusername')) {
108
+ this.sysUserId = sessionStorage.getItem('fossilusername');
109
+ }
110
+ else {
111
+ this.sysUserId = sessionStorage.getItem('ezremitusername');
112
+ }
113
+ this.sysUserId = this.sysUserId.replace(/^["'](.*)["']$/, '$1');
114
+ this.user = this.sysUserId;
115
+ console.log("System User Id : " + this.sysUserId);
116
+ const params = this.route.snapshot.queryParams;
117
+ console.log("params length:" + Object.keys(params).length);
118
+ if (Object.keys(params).length > 0) {
119
+ this.initialFilters = {
120
+ transactionStatus: params['transactionStatus'],
121
+ receiveCountry: params['receiveCountry'],
122
+ toDate: params['toDate'],
123
+ fromDate: params['fromDate'],
124
+ isRealtime: params['isRealtime'] === 'true' || params['isRealtime'] === true
125
+ };
126
+ }
127
+ else {
128
+ this.initialFilters = null;
129
+ }
130
+ }
131
+ filter(text) {
132
+ this.searchText = text;
133
+ if (this.searchText == null) {
134
+ return;
135
+ }
136
+ if (this.searchText?.length === 0) {
137
+ this.filteredData = structuredClone(this.dataMap);
138
+ return;
139
+ }
140
+ this.searchText = this.searchText?.trim()?.toLowerCase();
141
+ for (const [key, entries] of Object.entries(this.proxyData)) {
142
+ const filteredData = entries.filter(entry => Object.values(entry)
143
+ .some(val => {
144
+ let a = val?.toString().toLowerCase();
145
+ if (a == null) {
146
+ return false;
147
+ }
148
+ return a?.search(this.searchText) == -1 ? false : true;
149
+ }));
150
+ this.filteredData[key] = filteredData;
151
+ }
152
+ this.filteredData;
153
+ }
154
+ onGridReady(params, id) {
155
+ params.api.sizeColumnsToFit();
156
+ this.gridColumnApi = params.columnApi;
157
+ this.gridApis[id] = params.api;
158
+ }
159
+ handleExport(option) {
160
+ this.selectedExportOption = option;
161
+ if (!this.hasAnyGroups()) {
162
+ alert("There is no data to export based on your current filter.");
163
+ return;
164
+ }
165
+ // If no data, do nothing.
166
+ if (!this.filteredData || Object.keys(this.filteredData).length === 0) {
167
+ alert("No data to export");
168
+ return;
169
+ }
170
+ const title = "Transaction Monitoring";
171
+ const reportTimeFormatter = this.dateValueFormatter('dd/MM/yyyy hh:mm a');
172
+ const metadata = [
173
+ ['Report Period ', this.fromDate + " - " + this.toDate],
174
+ ['Report User & Time', this.user ? this.user + " @ " + this.reportDate : '' + " @ " + this.reportDate],
175
+ ];
176
+ // --- search criteria ---
177
+ const searchCriteria = this.searchCriteria;
178
+ const columns = this.columnDefs;
179
+ // const data = this.dataMap;
180
+ const data = {};
181
+ Object.entries(this.dataMap).forEach(([status, rows]) => {
182
+ const count = rows.length;
183
+ const newKey = `${status} - ${count}`;
184
+ data[newKey] = rows;
185
+ });
186
+ const options = {
187
+ currencyFields: [
188
+ 'payoutAmount', 'payinAmount', 'transactionCommissionAmount', 'tax', 'totalPayinAmount'
189
+ ],
190
+ // specify all date fields expected
191
+ dateFields: [],
192
+ dateFieldFormats: {
193
+ txnDateAndTime: 'dd/MM/yyyy hh:mm a',
194
+ cancellationBranchDateTime: 'dd/MM/yyyy HH:mm',
195
+ cancellationBusinessDate: 'dd/MM/yyyy'
196
+ },
197
+ specialDecimalFields: {
198
+ rate: 8 // future field with 8 decimal places
199
+ },
200
+ groupByKey: true
201
+ };
202
+ switch (this.selectedExportOption) {
203
+ case 'excel':
204
+ this.exportService.exportToExcel({ title, metadata, searchCriteria, columns, data, options });
205
+ break;
206
+ case 'pdf':
207
+ this.exportService.exportToPdf({ title, metadata, searchCriteria, columns, data, options });
208
+ break;
209
+ case 'csv':
210
+ this.exportService.exportToCsv({ title, metadata, searchCriteria, columns, data, options });
211
+ break;
212
+ default:
213
+ alert("Please select an export format.");
214
+ }
215
+ }
216
+ dateValueFormatter(format) {
217
+ return (params) => {
218
+ if (!params.value)
219
+ return '';
220
+ try {
221
+ return formatDate(params.value, format, 'en-US');
222
+ }
223
+ catch {
224
+ return '';
225
+ }
226
+ };
227
+ }
228
+ getKeys(obj) {
229
+ return obj ? Object.keys(obj) : [];
230
+ }
231
+ hasAnyGroups() {
232
+ return this.filteredData && this.getKeys(this.filteredData).length > 0;
233
+ }
234
+ formatAmount(params) {
235
+ const value = params?.value;
236
+ if (value !== null && value !== undefined && value !== '') {
237
+ const num = Number(value);
238
+ return (Math.trunc(num * 1000) / 1000).toFixed(3);
239
+ }
240
+ return '';
241
+ }
242
+ handleSearch(criteria) {
243
+ this.searchCriteria = criteria.searchCriteria;
244
+ this.reportDate = new Date().toISOString();
245
+ this.reportDate = formatDate(this.reportDate, 'dd/MM/yyyy hh:mm a', 'en-US');
246
+ const modal = criteria.modal;
247
+ this.user = criteria.sysUserID;
248
+ // this.fromDate = formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
249
+ //this.toDate = formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10);
250
+ this.fromDate = modal.fromDate
251
+ ? formatDate(modal.fromDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10)
252
+ : null;
253
+ this.toDate = modal.toDate
254
+ ? formatDate(modal.toDate, 'dd/MM/yyyy hh:mm a', 'en-US').slice(0, 10)
255
+ : null;
256
+ console.log(modal);
257
+ // Code For Meta Data
258
+ this.leftData = {
259
+ // 'Report Period': this.fromDate + " - " + this.toDate,
260
+ 'Report Period': this.fromDate && this.toDate
261
+ ? `${this.fromDate} - ${this.toDate}`
262
+ : ''
263
+ };
264
+ this.metaDataTwo = {
265
+ 'Report User & Time': this.user + " @ " + this.reportDate,
266
+ };
267
+ const searchData = {
268
+ "StartDate": modal.fromDate,
269
+ "EndDate": modal.toDate,
270
+ "SendCountryCode": modal.sendCountry,
271
+ "RecvCountryCode": modal.receiveCountry,
272
+ "BusinessPartnerCode": modal.client,
273
+ "TransactionStatus": modal.transactionStatus.join(","),
274
+ "PayoutCurrency": modal.receiveCurrency,
275
+ "TransactionType": modal.product,
276
+ "BranchCode": modal.branch,
277
+ "IsrealTime": criteria.isRealtime
278
+ };
279
+ this.showMessage = true;
280
+ this.loadingState = ComponentLoadingStates.Loading;
281
+ this.reportService.getTransactionMonitoringReport(searchData).subscribe({
282
+ next: (data) => {
283
+ console.log(data);
284
+ this.dataMap = JSON.parse(JSON.stringify(data));
285
+ this.filteredData = data;
286
+ this.noDataFound = Object.keys(this.filteredData).length == 0 ? true : false;
287
+ this.proxyData = structuredClone(data);
288
+ this.paginationArray = new Array(Object.keys(this.filteredData).length).fill(15);
289
+ this.showMessage = Object.keys(this.filteredData).length == 0 ? true : false;
290
+ this.showReport = true;
291
+ },
292
+ error: (err) => {
293
+ this.loadingState = ComponentLoadingStates.Complete;
294
+ },
295
+ complete: () => {
296
+ this.loadingState = ComponentLoadingStates.Complete;
297
+ this.showReport = true;
298
+ }
299
+ });
300
+ }
301
+ handleFormValid(isValid) {
302
+ this.isFormValid = isValid;
303
+ }
304
+ }
305
+ TransactionMonitoringReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionMonitoringReportComponent, deps: [{ token: i1.ReportService }, { token: i0.NgZone }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
306
+ TransactionMonitoringReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionMonitoringReportComponent, selector: "lib-transaction-monitoring-report", ngImport: i0, template: "<lib-search-filter \r\n [ReportName]=\"ReportName\" \r\n [initialFilters]=\"initialFilters\"\r\n (searchClicked)=\"handleSearch($event)\"\r\n (formValid)=\"handleFormValid($event)\">\r\n</lib-search-filter>\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 <ng-container *ngFor=\"let item of filteredData | keyvalue: statusOrderComparator; 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 }} - {{item.value.length\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: i3.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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PageSizeSelectorComponent, selector: "lib-page-size-selector", inputs: ["pageSizeArray", "defaultSize", "totalEntries", "gridApi"] }, { kind: "component", type: i6.MetadataComponent, selector: "lib-metadata", inputs: ["metaDataOne", "metaDataTwo", "showmetaDataOne", "showmetaDataTwo", "reportName"], outputs: ["searchEvent", "exportEvent"] }, { kind: "component", type: i7.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i7.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i7.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i7.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i8.LoaderComponent, selector: "app-loader" }, { kind: "component", type: i9.SearchFilterComponent, selector: "lib-search-filter", inputs: ["ReportName", "initialFilters"], outputs: ["searchClicked", "formValid"] }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }] });
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionMonitoringReportComponent, decorators: [{
308
+ type: Component,
309
+ args: [{ selector: 'lib-transaction-monitoring-report', template: "<lib-search-filter \r\n [ReportName]=\"ReportName\" \r\n [initialFilters]=\"initialFilters\"\r\n (searchClicked)=\"handleSearch($event)\"\r\n (formValid)=\"handleFormValid($event)\">\r\n</lib-search-filter>\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 <ng-container *ngFor=\"let item of filteredData | keyvalue: statusOrderComparator; 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 }} - {{item.value.length\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"] }]
310
+ }], ctorParameters: function () { return [{ type: i1.ReportService }, { type: i0.NgZone }, { type: i2.ActivatedRoute }]; } });
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0L3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7QUFDckUsbUVBQW1FO0FBQ25FLDRHQUE0RztBQUM1Ryx1RUFBdUU7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELGdEQUFnRDtBQUNoRCxvRkFBb0Y7QUFDcEYsZ0ZBQWdGO0FBQ2hGLDRIQUE0SDtBQUU1SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVE3QyxNQUFNLE9BQU8sb0NBQW9DO0lBa0U3QyxZQUFvQixhQUE0QixFQUFVLE1BQWMsRUFBUyxLQUFxQjtRQUFsRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWpFdEcsWUFBTyxHQUFrRCxFQUFFLENBQUE7UUFDM0Qs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QUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztZQUN4RCxDQUFDO1lBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztTQUNKLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQzs7aUlBNVRRLG9DQUFvQztxSEFBcEMsb0NBQW9DLHlFQ3hCakQsdXNFQTZDVTsyRkRyQkcsb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNJLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IENvbXBvbmVudCwgTmdab25lLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBpbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnc3JjL2FwcC9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IEJyYW5jaEFjdGl2aXR5UmVwb3J0IH0gZnJvbSAnc3JjL2FwcC9tb2RlbHMvYnJhbmNoLWFjdGl2aXR5LXJlcG9ydC9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQnO1xyXG4vLyBpbXBvcnQgeyBDb2xEZWYsIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyB0aGVtZUFscGluZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS90aGVtaW5nJztcclxuLy8gaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbi8vIGltcG9ydCB7IENvbXBvbmVudExvYWRpbmdTdGF0ZXMgfSBmcm9tICdzcmMvYXBwL21vZGVscy9jb21wb25lbnQtbG9hZGluZy1zdGF0ZXMnO1xyXG4vLyBpbXBvcnQgeyBHZW5lcmljRXhwb3J0U2VydmljZSB9IGZyb20gJ3NyYy9hcHAvc2hhcmVkL2V4cG9ydC1nZW5lcmljLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQgfSBmcm9tICdzcmMvYXBwL21vZGVscy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydCc7XHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgTmdab25lLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0L3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0XCI7XHJcbmltcG9ydCB7IENvbERlZiwgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGluZ1N0YXRlcyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50LWxvYWRpbmctc3RhdGVzXCI7XHJcbmltcG9ydCB7IEdlbmVyaWNFeHBvcnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9leHBvcnQtZ2VuZXJpYy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItdHJhbnNhY3Rpb24tbW9uaXRvcmluZy1yZXBvcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RyYW5zYWN0aW9uLW1vbml0b3JpbmctcmVwb3J0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBkYXRhTWFwOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4gPSB7fVxyXG4gICAgZmlsdGVyZWREYXRhOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4gPSB7fVxyXG4gICAgcHJveHlEYXRhOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4gPSB7fVxyXG4gICAgc2hvd1JlcG9ydDogYm9vbGVhbjtcclxuICAgIHBhZ2luYXRpb25BcnJheTogYW55W107XHJcbiAgICBzZWxlY3RlZEV4cG9ydE9wdGlvbiA9ICdleGNlbCc7XHJcbiAgICBncmlkQXBpczogR3JpZEFwaVtdID0gW107XHJcbiAgICBncmlkQ29sdW1uQXBpO1xyXG4gICAgdXNlcjogc3RyaW5nID0gXCJcIjtcclxuICAgIHJlcG9ydERhdGU6IHN0cmluZztcclxuICAgIGZyb21EYXRlOiBzdHJpbmc7XHJcbiAgICB0b0RhdGU6IHN0cmluZztcclxuICAgIHNlYXJjaFRleHQ6IHN0cmluZztcclxuICAgIGJ1ZmZlcjogYW55O1xyXG4gICAgc3lzVXNlcklkOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGxvZ29CYXNlNjQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIENvbXBvbmVudExvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXM7XHJcbiAgICBsb2FkaW5nU3RhdGU6IENvbXBvbmVudExvYWRpbmdTdGF0ZXMgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzLkxvYWRpbmc7XHJcbiAgICBSZXBvcnROYW1lOiBzdHJpbmcgPSBcIlRyYW5zYWN0aW9uIE1vbml0b3JpbmdcIjtcclxuICAgIGxlZnREYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gICAgbWV0YURhdGFUd286IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgICBleHBvcnRTZXJ2aWNlOiBHZW5lcmljRXhwb3J0U2VydmljZSA9IGluamVjdChHZW5lcmljRXhwb3J0U2VydmljZSk7XHJcbiAgICBzZWFyY2hDcml0ZXJpYTogW3N0cmluZywgc3RyaW5nXVtdID0gW107XHJcbiAgICBpbml0aWFsRmlsdGVyczogYW55O1xyXG5cclxuICAgIC8vIGZsYWdzXHJcbiAgICBzaG93TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbm9EYXRhRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlzRm9ybVZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29sdW1uRGVmczogQ29sRGVmPFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydD5bXSA9IFtcclxuICAgICAgICAgICB7IGZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScsIGhlYWRlck5hbWU6ICdCdXNpbmVzcyBEYXRlJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDcwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAnYnVzaW5lc3NEYXRlVGltZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAndHJhbnNhY3Rpb25EYXRlVGltZScsIGhlYWRlck5hbWU6ICdUcmFuc2FjdGlvbiBEYXRlJywgZmxleDogMiwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uRGF0ZVRpbWUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uTnVtYmVyJywgaGVhZGVyTmFtZTogJ1RyYW5zYWN0aW9uIE51bWJlcicsIGZsZXg6IDEuOCwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDkwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgY2VsbENsYXNzOiAnYWctbGVmdC1jb2xzLWNlbGwgY29tcGFjdC1jZWxsLXRyYW5zYWN0aW9uJywgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25OdW1iZXInIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3QnLCBoZWFkZXJOYW1lOiAnUHJvZHVjdCcsIGZsZXg6IDAuNSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDYwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAncHJvZHVjdCcgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAnc2VuZEFnZW50Q29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2xpZW50IENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdzZW5kQWdlbnRDb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdzZW5kQWdlbnRCcmFuY2hDb2RlJywgaGVhZGVyTmFtZTogJ1NlbmRDbGllbnQgQnJhbmNoQ29kZScsIGZsZXg6IDEsIGhlYWRlckNsYXNzOiAnYWctbGVmdC1hbGlnbmVkLWhlYWRlcicsIG1pbldpZHRoOiA5MCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRBZ2VudEJyYW5jaENvZGUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3NlbmRBZ2VudEJyYW5jaE5hbWUnLCBoZWFkZXJOYW1lOiAnU2VuZENsaWVudCBCcmFuY2hOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEyMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRBZ2VudEJyYW5jaE5hbWUnIH0sXHJcbiAgIFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdzZW5kZXJOYW1lJywgaGVhZGVyTmFtZTogJ1NlbmRlciBOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEyMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3NlbmRlck5hbWUnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3JlY2VpdmVyTmFtZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlciBOYW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3JlY2VpdmVyTmFtZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAncmVjZWl2ZUFnZW50Q29kZScsIGhlYWRlck5hbWU6ICdSZWNlaXZlIENsaWVudENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdyZWNlaXZlQWdlbnRDb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlvdXRDQ2NvZGUnLCBoZWFkZXJOYW1lOiAnUmVjZWl2ZUNjeSBDb2RlJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDgwLCB3cmFwVGV4dDogdHJ1ZSwgYXV0b0hlaWdodDogdHJ1ZSwgdG9vbHRpcEZpZWxkOiAncGF5b3V0Q0Njb2RlJyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlvdXRBbW91bnQnLCBoZWFkZXJOYW1lOiAnUmVjZWl2ZSBBbW91bnQnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogOTAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAncGF5b3V0QW1vdW50JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICdwYXlpbkNDY29kZScsIGhlYWRlck5hbWU6ICdTZW5kQ2N5IENvZGUnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogNjAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCB0b29sdGlwRmllbGQ6ICdwYXlpbkNDY29kZScgfSxcclxuICAgICAgICAgICB7IGZpZWxkOiAncGF5aW5BbW91bnQnLCBoZWFkZXJOYW1lOiAnU2VuZCBBbW91bnQnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogODAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAncGF5aW5BbW91bnQnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RyYW5zYWN0aW9uQ29tbWlzc2lvbkFtb3VudCcsIGhlYWRlck5hbWU6ICdTZXJ2aWNlIEZlZScsIGZsZXg6IDEsIGhlYWRlckNsYXNzOiAnYWctbGVmdC1hbGlnbmVkLWhlYWRlcicsIG1pbldpZHRoOiA3MCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0cmFuc2FjdGlvbkNvbW1pc3Npb25BbW91bnQnIH0sXHJcbiAgICAgICAgICAgeyBmaWVsZDogJ3RheCcsIGhlYWRlck5hbWU6ICdUYXgnLCBmbGV4OiAxLCBoZWFkZXJDbGFzczogJ2FnLWxlZnQtYWxpZ25lZC1oZWFkZXInLCBtaW5XaWR0aDogNjAsIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgdG9vbHRpcEZpZWxkOiAndGF4JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICd0b3RhbFBheWluQW1vdW50JywgaGVhZGVyTmFtZTogJ1RvdGFsIFNlbmQgQW1vdW50JywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIGNlbGxDbGFzczogJ2FnLXJpZ2h0LWFsaWduZWQtY2VsbCBjb21wYWN0LWNlbGwnLCB0b29sdGlwRmllbGQ6ICd0b3RhbFBheWluQW1vdW50JyB9LFxyXG4gICAgICAgICAgIHsgZmllbGQ6ICd0eG5TdGF0dXNEYXRlQW5kVGltZScsIGhlYWRlck5hbWU6ICdUeG4gU3RhdHVzIERhdGUgJiBUaW1lJywgZmxleDogMSwgaGVhZGVyQ2xhc3M6ICdhZy1sZWZ0LWFsaWduZWQtaGVhZGVyJywgbWluV2lkdGg6IDEwMCwgd3JhcFRleHQ6IHRydWUsIGF1dG9IZWlnaHQ6IHRydWUsIHRvb2x0aXBGaWVsZDogJ3R4blN0YXR1c0RhdGVBbmRUaW1lJyB9XHJcbiAgICAgICBdO1xyXG4gICBcclxuXHJcbiAgICBkZWZhdWx0Q29sRGVmID0ge1xyXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgbWlud2lkdGg6IDQwLFxyXG4gICAgICAgIHdyYXBIZWFkZXJUZXh0OiB0cnVlLFxyXG4gICAgICAgIGF1dG9IZWFkZXJIZWlnaHQ6IHRydWUsXHJcbiAgICAgICAgc3VwcHJlc3NTaXplVG9GaXQ6IGZhbHNlLFxyXG4gICAgICAgIHdyYXBUZXh0OiB0cnVlXHJcbiAgICB9O1xyXG4gICAgcm93RGF0YTogVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUscHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHsgfVxyXG5cclxuICAgIHJlcG9ydFRoZW1lID0gdGhlbWVBbHBpbmUud2l0aFBhcmFtcyh7XHJcbiAgICAgICAgaGVhZGVyRm9udFNpemU6ICcxMHB4JyxcclxuICAgICAgICBmb250RmFtaWx5OiBbJ0FyaWFsJywgJ3NhbnMtc2VyaWYnXSxcclxuICAgICAgICBmb250U2l6ZTogJzlweCdcclxuICAgIH0pO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAvLyBDaGVjayBpZiBVc2VyIGlzIGZhbGNvbiB1c2VyIG9yIGZvc3NpbFVzZXJcclxuICAgICAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9zc2lsdXNlcm5hbWUnKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN5c1VzZXJJZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Zvc3NpbHVzZXJuYW1lJylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3lzVXNlcklkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZXpyZW1pdHVzZXJuYW1lJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3lzVXNlcklkID0gdGhpcy5zeXNVc2VySWQucmVwbGFjZSgvXltcIiddKC4qKVtcIiddJC8sICckMScpO1xyXG4gICAgICAgIHRoaXMudXNlciA9IHRoaXMuc3lzVXNlcklkO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3lzdGVtIFVzZXIgSWQgOiBcIiArIHRoaXMuc3lzVXNlcklkKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgICBjb25zb2xlLmxvZyhcInBhcmFtcyBsZW5ndGg6XCIgKyBPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aClcclxuICAgICAgICBcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbEZpbHRlcnMgPSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblN0YXR1czogcGFyYW1zWyd0cmFuc2FjdGlvblN0YXR1cyddLFxyXG4gICAgICAgICAgICAgICAgcmVjZWl2ZUNvdW50cnk6IHBhcmFtc1sncmVjZWl2ZUNvdW50cnknXSxcclxuICAgICAgICAgICAgICAgIHRvRGF0ZTogcGFyYW1zWyd0b0RhdGUnXSxcclxuICAgICAgICAgICAgICAgIGZyb21EYXRlOiBwYXJhbXNbJ2Zyb21EYXRlJ10sXHJcbiAgICAgICAgICAgICAgICBpc1JlYWx0aW1lOiBwYXJhbXNbJ2lzUmVhbHRpbWUnXSA9PT0gJ3RydWUnIHx8IHBhcmFtc1snaXNSZWFsdGltZSddID09PSB0cnVlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsRmlsdGVycyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlcih0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSB0ZXh0O1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRleHQ/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRhdGFNYXApO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRoaXMuc2VhcmNoVGV4dD8udHJpbSgpPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgZW50cmllc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wcm94eURhdGEpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IGVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IE9iamVjdC52YWx1ZXMoZW50cnkpXHJcbiAgICAgICAgICAgICAgIC5zb21lKHZhbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGE6IHN0cmluZyA9IHZhbD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE/LnNlYXJjaCh0aGlzLnNlYXJjaFRleHQpID09IC0xID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSkpXHJcblxyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVtrZXldID0gZmlsdGVyZWREYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50LCBpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgcGFyYW1zLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICAgICAgICB0aGlzLmdyaWRBcGlzW2lkXSA9IHBhcmFtcy5hcGk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXhwb3J0KG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9IG9wdGlvbjtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzQW55R3JvdXBzKCkpIHtcclxuICAgICAgICAgICAgYWxlcnQoXCJUaGVyZSBpcyBubyBkYXRhIHRvIGV4cG9ydCBiYXNlZCBvbiB5b3VyIGN1cnJlbnQgZmlsdGVyLlwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBubyBkYXRhLCBkbyBub3RoaW5nLlxyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJlZERhdGEgfHwgT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICBhbGVydChcIk5vIGRhdGEgdG8gZXhwb3J0XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gXCJUcmFuc2FjdGlvbiBNb25pdG9yaW5nXCI7XHJcbiAgICAgICAgY29uc3QgcmVwb3J0VGltZUZvcm1hdHRlciA9IHRoaXMuZGF0ZVZhbHVlRm9ybWF0dGVyKCdkZC9NTS95eXl5IGhoOm1tIGEnKTtcclxuICAgICAgICBjb25zdCBtZXRhZGF0YTogW3N0cmluZywgc3RyaW5nXVtdID0gW1xyXG4gICAgICAgICAgICBbJ1JlcG9ydCBQZXJpb2QgJywgdGhpcy5mcm9tRGF0ZSArIFwiIC0gXCIgKyB0aGlzLnRvRGF0ZV0sXHJcbiAgICAgICAgICAgIFsnUmVwb3J0IFVzZXIgJiBUaW1lJywgdGhpcy51c2VyID8gdGhpcy51c2VyICsgXCIgQCBcIiArIHRoaXMucmVwb3J0RGF0ZSA6ICcnICsgXCIgQCBcIiArIHRoaXMucmVwb3J0RGF0ZV0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhIC0tLVxyXG4gICAgICAgIGNvbnN0IHNlYXJjaENyaXRlcmlhOiBbc3RyaW5nLCBzdHJpbmddW10gPSB0aGlzLnNlYXJjaENyaXRlcmlhO1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZnM7XHJcbiAgICAgICAvLyBjb25zdCBkYXRhID0gdGhpcy5kYXRhTWFwOyAgXHJcbiAgICAgICBjb25zdCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuXHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5kYXRhTWFwKS5mb3JFYWNoKChbc3RhdHVzLCByb3dzXSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb3VudCA9IHJvd3MubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdLZXkgPSBgJHtzdGF0dXN9IC0gJHtjb3VudH1gO1xyXG4gICAgICAgICAgICBkYXRhW25ld0tleV0gPSByb3dzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGN1cnJlbmN5RmllbGRzOiBbXHJcbiAgICAgICAgICAgICAgICAncGF5b3V0QW1vdW50JywgJ3BheWluQW1vdW50JywgJ3RyYW5zYWN0aW9uQ29tbWlzc2lvbkFtb3VudCcsICd0YXgnLCAndG90YWxQYXlpbkFtb3VudCdcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgLy8gc3BlY2lmeSBhbGwgZGF0ZSBmaWVsZHMgZXhwZWN0ZWRcclxuICAgICAgICAgICAgZGF0ZUZpZWxkczogW10sXHJcblxyXG4gICAgICAgICAgICBkYXRlRmllbGRGb3JtYXRzOiB7XHJcbiAgICAgICAgICAgICAgICB0eG5EYXRlQW5kVGltZTogJ2RkL01NL3l5eXkgaGg6bW0gYScsXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxsYXRpb25CcmFuY2hEYXRlVGltZTogJ2RkL01NL3l5eXkgSEg6bW0nLFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsbGF0aW9uQnVzaW5lc3NEYXRlOiAnZGQvTU0veXl5eSdcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIHNwZWNpYWxEZWNpbWFsRmllbGRzOiB7XHJcbiAgICAgICAgICAgICAgICByYXRlOiA4ICAgICAgIC8vIGZ1dHVyZSBmaWVsZCB3aXRoIDggZGVjaW1hbCBwbGFjZXNcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGdyb3VwQnlLZXk6IHRydWVcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnZXhjZWwnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvRXhjZWwoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3BkZic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuZXhwb3J0VG9QZGYoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Nzdic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuZXhwb3J0VG9Dc3YoeyB0aXRsZSwgbWV0YWRhdGEsIHNlYXJjaENyaXRlcmlhLCBjb2x1bW5zLCBkYXRhLCBvcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBhbGVydChcIlBsZWFzZSBzZWxlY3QgYW4gZXhwb3J0IGZvcm1hdC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRhdGVWYWx1ZUZvcm1hdHRlcihmb3JtYXQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFwYXJhbXMudmFsdWUpIHJldHVybiAnJztcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKHBhcmFtcy52YWx1ZSwgZm9ybWF0LCAnZW4tVVMnKTtcclxuICAgICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0S2V5cyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XHJcbiAgICB9XHJcblxyXG4gICAgaGFzQW55R3JvdXBzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkRGF0YSAmJiB0aGlzLmdldEtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0QW1vdW50KHBhcmFtczogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcz8udmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoTWF0aC50cnVuYyhudW0gKiAxMDAwKSAvIDEwMDApLnRvRml4ZWQoMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHN0YXR1c09yZGVyTWFwOiBhbnkgPSB7XHJcbiAgICAgICAgUGVuZGluZ0F1dGhvcmlzYXRpb246IDEsXHJcbiAgICAgICAgQ29uZmlybWVkOiAyLFxyXG4gICAgICAgIEluQU1MUmV2aWV3OiAzLFxyXG4gICAgICAgIEluUHJvY2VzczogMyxcclxuICAgICAgICBBTUxSZWplY3RlZDogNCxcclxuICAgICAgICBEZWNsaW5lOiA0LFxyXG4gICAgICAgIFN1Ym1pdHRlZDogNSxcclxuICAgICAgICBEaXNwYXRjaGVkOiA2LFxyXG4gICAgICAgIFBhaWQ6IDcsXHJcbiAgICAgICAgQmFua1JlamVjdGVkOiA4LFxyXG4gICAgICAgIFN0b3BBcHByb3ZlZDogOSxcclxuICAgICAgICBSZWFkeXRvQ2FuY2VsOiAxMCxcclxuICAgICAgICBDYW5jZWxsZWQ6IDExLFxyXG4gICAgICAgIFBhaWRDYW5jZWxsZWQ6IDEyLFxyXG4gICAgICAgIFZvaWQ6IDEzLFxyXG4gICAgICAgIFJlamVjdGVkOiAxNFxyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0dXNPcmRlckNvbXBhcmF0b3IgPSAoYTogYW55LCBiOiBhbnkpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyQSA9IHRoaXMuc3RhdHVzT3JkZXJNYXBbYS5rZXldID8/IDIwO1xyXG4gICAgICAgIGNvbnN0IG9yZGVyQiA9IHRoaXMuc3RhdHVzT3JkZXJNYXBbYi5rZXldID8/IDIwO1xyXG4gICAgICAgIHJldHVybiBvcmRlckEgLSBvcmRlckI7XHJcbiAgICB9O1xyXG4gICAgaGFuZGxlU2VhcmNoKGNyaXRlcmlhOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlYXJjaENyaXRlcmlhID0gY3JpdGVyaWEuc2VhcmNoQ3JpdGVyaWE7XHJcbiAgICAgICAgdGhpcy5yZXBvcnREYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0RGF0ZSA9IGZvcm1hdERhdGUodGhpcy5yZXBvcnREYXRlLCAnZGQvTU0veXl5eSBoaDptbSBhJywgJ2VuLVVTJyk7XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSBjcml0ZXJpYS5tb2RhbDtcclxuICAgICAgICB0aGlzLnVzZXIgPSBjcml0ZXJpYS5zeXNVc2VySUQ7XHJcbiAgICAgICAvLyB0aGlzLmZyb21EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpLnNsaWNlKDAsIDEwKTtcclxuICAgICAgICAvL3RoaXMudG9EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLCAxMCk7XHJcbiAgICAgICAgdGhpcy5mcm9tRGF0ZSA9IG1vZGFsLmZyb21EYXRlXHJcbiAgICAgICAgICAgID8gZm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpLnNsaWNlKDAsIDEwKVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMudG9EYXRlID0gbW9kYWwudG9EYXRlXHJcbiAgICAgICAgICAgID8gZm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKS5zbGljZSgwLCAxMClcclxuICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnNvbGUubG9nKG1vZGFsKTtcclxuICAgICAgICAvLyBDb2RlIEZvciBNZXRhIERhdGFcclxuICAgICAgICB0aGlzLmxlZnREYXRhID0ge1xyXG4gICAgICAgICAgICAvLyAgJ1JlcG9ydCBQZXJpb2QnOiB0aGlzLmZyb21EYXRlICsgXCIgLSBcIiArIHRoaXMudG9EYXRlLFxyXG4gICAgICAgICAgICAnUmVwb3J0IFBlcmlvZCc6IHRoaXMuZnJvbURhdGUgJiYgdGhpcy50b0RhdGVcclxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5mcm9tRGF0ZX0gLSAke3RoaXMudG9EYXRlfWBcclxuICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWV0YURhdGFUd28gPSB7XHJcbiAgICAgICAgICAgICdSZXBvcnQgVXNlciAmIFRpbWUnOiB0aGlzLnVzZXIgKyBcIiBAIFwiICsgdGhpcy5yZXBvcnREYXRlLFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc2VhcmNoRGF0YSA9IHtcclxuICAgICAgICAgICAgXCJTdGFydERhdGVcIjogbW9kYWwuZnJvbURhdGUsXHJcbiAgICAgICAgICAgIFwiRW5kRGF0ZVwiOiBtb2RhbC50b0RhdGUsXHJcbiAgICAgICAgICAgIFwiU2VuZENvdW50cnlDb2RlXCI6IG1vZGFsLnNlbmRDb3VudHJ5LFxyXG4gICAgICAgICAgICBcIlJlY3ZDb3VudHJ5Q29kZVwiOiBtb2RhbC5yZWNlaXZlQ291bnRyeSxcclxuICAgICAgICAgICAgXCJCdXNpbmVzc1BhcnRuZXJDb2RlXCI6IG1vZGFsLmNsaWVudCxcclxuICAgICAgICAgICAgXCJUcmFuc2FjdGlvblN0YXR1c1wiOiBtb2RhbC50cmFuc2FjdGlvblN0YXR1cy5qb2luKFwiLFwiKSxcclxuICAgICAgICAgICAgXCJQYXlvdXRDdXJyZW5jeVwiOiBtb2RhbC5yZWNlaXZlQ3VycmVuY3ksXHJcbiAgICAgICAgICAgIFwiVHJhbnNhY3Rpb25UeXBlXCI6IG1vZGFsLnByb2R1Y3QsXHJcbiAgICAgICAgICAgIFwiQnJhbmNoQ29kZVwiOiBtb2RhbC5icmFuY2gsXHJcbiAgICAgICAgICAgIFwiSXNyZWFsVGltZVwiOiBjcml0ZXJpYS5pc1JlYWx0aW1lXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnNob3dNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuTG9hZGluZztcclxuICAgICAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0KHNlYXJjaERhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YU1hcCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub0RhdGFGb3VuZCA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyZWREYXRhKS5sZW5ndGggPT0gMCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJveHlEYXRhID0gc3RydWN0dXJlZENsb25lKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQXJyYXkgPSBuZXcgQXJyYXkoT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCkuZmlsbCgxNSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dNZXNzYWdlID0gT2JqZWN0LmtleXModGhpcy5maWx0ZXJlZERhdGEpLmxlbmd0aCA9PSAwID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93UmVwb3J0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dSZXBvcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVGb3JtVmFsaWQoaXNWYWxpZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSBpc1ZhbGlkO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bGliLXNlYXJjaC1maWx0ZXIgXHJcbiAgICBbUmVwb3J0TmFtZV09XCJSZXBvcnROYW1lXCIgXHJcbiAgICBbaW5pdGlhbEZpbHRlcnNdPVwiaW5pdGlhbEZpbHRlcnNcIlxyXG4gICAgKHNlYXJjaENsaWNrZWQpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxyXG4gICAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiPlxyXG48L2xpYi1zZWFyY2gtZmlsdGVyPlxyXG48YXBwLWxvYWRlciBjbGFzcz1cIlwiICpuZ0lmPVwibG9hZGluZ1N0YXRlID09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPHNlY3Rpb24gKm5nSWY9XCJzaG93UmVwb3J0ICYmIGlzRm9ybVZhbGlkXCIgY2xhc3M9XCJteS0yXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub0RhdGFGb3VuZFwiPlxyXG4gICAgIDxsaWItbWV0YWRhdGEgW3JlcG9ydE5hbWVdPVwiUmVwb3J0TmFtZVwiIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFtzaG93bWV0YURhdGFUd29dPVwidHJ1ZVwiIFttZXRhRGF0YU9uZV09XCJsZWZ0RGF0YVwiIFttZXRhRGF0YVR3b109XCJtZXRhRGF0YVR3b1wiKGV4cG9ydEV2ZW50KT1cImhhbmRsZUV4cG9ydCgkZXZlbnQpXCIgKHNlYXJjaEV2ZW50KT1cImZpbHRlcigkZXZlbnQpXCI+PC9saWItbWV0YWRhdGE+XHJcblxyXG4gIDxuZ2ItYWNjb3JkaW9uICNhY2M9XCJuZ2JBY2NvcmRpb25cIiBbY2xvc2VPdGhlcnNdPVwiZmFsc2VcIj5cclxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZERhdGEgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiPiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YSB8IGtleXZhbHVlOiBzdGF0dXNPcmRlckNvbXBhcmF0b3I7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPG5nYi1wYW5lbCAqbmdJZj1cIml0ZW0udmFsdWUubGVuZ3RoID4gMFwiIFtpZF09XCIncGFuZWwtJyArIGlcIj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGUgc3R5bGU9XCJoZWlnaHQ6IDEwJTtcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBjbGFzcz1cInBhbmVsLWNsc1wiPnt7XHJcbiAgICAgICAgICAgIGl0ZW0ua2V5IH19IC0ge3tpdGVtLnZhbHVlLmxlbmd0aFxyXG4gICAgICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XHJcbiAgICAgICAgICAgIDxsaWItcGFnZS1zaXplLXNlbGVjdG9yIFt0b3RhbEVudHJpZXNdPVwiaXRlbT8udmFsdWU/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgIFtkZWZhdWx0U2l6ZV09XCInMTUnXCIgW2dyaWRBcGldPVwiZ3JpZEFwaXNbaV1cIj5cclxuICAgICAgICAgICAgPjwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgdHJhbnNhY3Rpb24tZ3JpZFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAzODBweDtcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIiBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCIgW3Jvd0RhdGFdPVwiaXRlbS52YWx1ZVwiIFtyb3dIZWlnaHRdPVwiMjBcIlxyXG4gICAgICAgICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjJcIltwYWdpbmF0aW9uXT1cInRydWVcIiBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25BcnJheVtpXVwiIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvbmdiLXBhbmVsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZ2ItYWNjb3JkaW9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG10LTNcIiAqbmdJZj1cIm5vRGF0YUZvdW5kXCI+XHJcbiAgICBObyBEYXRhIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19