var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Viewers; (function (Viewers) { class TableViewer extends Platform.Core.BaseComponent { constructor() { super(); this.IsTenure = false; this.CommonFilter = []; this.Filter = []; this.subreportpagination = []; this._lists_default_index = 0; this.IsSelectable = false; this.IdColumn = null; this.TextColumn = null; this.dataListId = 0; this.subreportResponse = ""; this.widgetHeightNum = Unibase.Themes.Compact.Components.Index.Instance().widgetHeightNum; this.isTouchScreen = Unibase.Themes.Compact.Components.Index.Instance().isTouchScreen; this.reportManager = Analytics.Managers.ReportManager.Instance(); this._reportBuilder = Analytics.Reports.ReportBuilder.Instance(); this._reportViewer = Analytics.Components.ReportViewer.Instance(); this.ListSearchTerm = ""; } loadView(reportresponse, reportid, viewerid, page, pageSize, containerid, ViewerSettings, callback, reportwidgetdata) { var instance = this; let rv_instance = instance._reportViewer.getReportViewerInstance(containerid); var pivotdata; let portletWidgetId = 0; if (containerid.indexOf("div_portletwidget") > -1) { portletWidgetId = Number(containerid.split("_")[2]); if (containerid.indexOf("viewall") == -1) instance._reportViewer.IsPortletWidget = true; } else { $(".report-search").addClass("d-sm-flex"); $('.search_icon').removeClass("hidden"); } instance._reportViewer.toggleGroupByAndShowAllBtn(containerid, true); if (ViewerSettings.InstalledAppId != 0) Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().appConfigType = Unibase.Platform.Apps.Enums.AppConfigeType.Details; if (rv_instance.pivotTypeId == Analytics.Reports.Enums.PivotType.PivotTable) { return instance.loadPivotTable(reportid, containerid, reportresponse); } instance.initTable(reportresponse, containerid, reportid, null, reportwidgetdata); Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading(); } initTable(reportresponse, containerid, reportid, filters, reportwidgetdata) { return __awaiter(this, void 0, void 0, function* () { var subuniquearray = []; var instance = this; let rv_instance = instance._reportViewer.getReportViewerInstance(containerid); var data; let level = 0; const isPivotTree = reportresponse.result.ReportInfo.IsPivotTree; var radioIcon = function (cell, formatterParams, onRendered) { var Selected = ""; if ($("#" + Unibase.Platform.Analytics.Viewers.TableViewer.Instance().AutoCompleteElement).val() == cell.getRow().getData()[Unibase.Platform.Analytics.Viewers.TableViewer.Instance().IdColumn]) { Selected = " checked"; } var textdata = cell.getRow().getData()[Unibase.Platform.Analytics.Viewers.TableViewer.Instance().TextColumn]; var iddata = cell.getRow().getData()[Unibase.Platform.Analytics.Viewers.TableViewer.Instance().IdColumn]; return ''; }; var groupBy = []; var autoNumFormatter = function (cell) { if (!isPivotTree) { var row = cell.getRow(); var rowIndex = row.getPosition(false); return (rowIndex + 1); } else { return; } }; var tableresponse = reportresponse.result.ReportJsonData; var maintabledata = reportresponse.result.ReportJsonData.Result; let user = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); var columnresponse; let postData = []; let parentEl = $("#Viewer_" + containerid); let height = "100%"; let viewerMarginWidth = parseInt(parentEl.css('margin-left')) + parseInt(parentEl.css('margin-right')); parentEl.css({ "max-width": `calc(100% - ${viewerMarginWidth}px)`, 'max-height': '' }); if (instance._reportViewer.IsPortletWidget) { let widgetHeight = instance.widgetHeightNum; height = widgetHeight; parentEl.css({ "overflow": "auto", "height": "100%", "max-height": `${widgetHeight}px` }); } if (containerid.includes('div_dashboardportletwidget')) { let portletWidgetHeight = $(`#${containerid}`).siblings('.hf_portletwidgetheight').val(); portletWidgetHeight = parseInt(portletWidgetHeight); if (portletWidgetHeight <= 0) { height = "100%"; } else { height = portletWidgetHeight + 48; } } var res; res = reportresponse.result.ReportInfo.ReportColumns; var res = res.filter(x => x.Isvisible == true); let IsPivotColumn = res.filter(function (o) { return o.IsPivotColumn === true; }); if (IsPivotColumn.length > 0 || reportresponse.result.ReportInfo.IsPivotTree) { instance._reportViewer.ispivottable = true; } instance._reportViewer.table = new Tabulator("#Viewer_" + containerid, { placeholder: "
No data available
", downloadDataFormatter: function (data) { return data; }, columnCalcs: "both", dataTree: instance._reportViewer.ispivottable, dataTreeStartExpanded: reportresponse.result.ReportInfo.IsTreeExpand, dataTreeRowExpanded: function (row, level) { if (!reportresponse.result.ReportInfo.IsTreeExpand) { instance._reportBuilder.datatreeIndex_Width = (instance._reportBuilder.datatreeIndex_Width) ? instance._reportBuilder.datatreeIndex_Width : 70; if (instance._reportBuilder.datatreeIndex_Width / 70 <= level) { instance._reportBuilder.datatreeIndex_Width = instance._reportBuilder.datatreeIndex_Width + 70; } Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].width = instance._reportBuilder.datatreeIndex_Width; Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].minWidth = instance._reportBuilder.datatreeIndex_Width; const id = (eval("row.getData()." + instance._reportViewer.pivotparentcolumn[0].ReportColumnName + "")); let { fromDate, toDate } = instance._reportViewer.checkForReportDatePicker(reportid, containerid); if (rv_instance.fromDate && rv_instance.toDate) { fromDate = rv_instance.fromDate; toDate = rv_instance.toDate; } var postdata = { ReportId: reportid, page: 1, pageSize: 0, IsPivot: true, PivotId: Number(id), FromDate: fromDate, ToDate: toDate, IsJson: true, InputParameters: rv_instance.inputParameters, Filter: rv_instance.dynamicFilters }; instance._reportBuilder.dataTreeRowExpandedColumn.push({ Level: level }); $.when(instance.reportManager.getReportViewerData(postdata)).done(function (response1) { let res = JSON.parse(response1.result); var pivotdata = JSON.parse(res.Data); var hasChild = pivotdata.filter(x => x.haschild == true).forEach(c => c["_children"] = []); row.getData()._children = pivotdata; return row.update(row.getData()); }); } }, cellClick: function (e, cell) { if (instance.subreportResponse && instance.subreportResponse.length) { let cellAliasName = cell._cell.column.field; let subRpt = instance.subreportResponse.find(x => x.AliasName == cellAliasName); if (subRpt) { return instance.tableCellClick(e, cell, level, reportid, instance.subreportResponse, containerid); } } var row = cell.getRow(); let onclick = rv_instance.ViewerSettings.OnClick.trim(); let InstalledAppId = rv_instance.ViewerSettings.InstalledAppId; if (onclick) { onclick = onclick.replace("{{appinstalledappid}}", InstalledAppId.toString()); let row_data = row.getData(); var templateScript = Handlebars.compile(onclick); onclick = templateScript(row_data); eval(onclick); } }, ajaxProgressiveLoadScrollMargin: 500, ajaxError: function (errortabletable1, error) { let id; id = eval('postmethod1(parameters)'); var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); id.then(function (res) { var report = JSON.parse(JSON.parse(res.result).Result.Data); let column = new PaginationObject(); column.last_page = 1; column.data = report; error.setData(column.data); $('#Viewer_pagintion' + containerid).html(Math.ceil(JSON.parse(JSON.parse(res.result).Result.Data).length) + ' ' + 'of' + ' ' + JSON.parse(res.result).Result.Count); if (JSON.parse(res.result).Result.Count > 20) { $(error.element.childNodes[1]).append(`
More
`); $(".btn-list-load-more_" + containerid).unbind().click(function () { let listsearch = $("#" + containerid).find("#ListSearch").val(); var page = error.element.childNodes[1].lastChild.lastChild.classList[5].match(/\d+/g).map(Number)[0]; let isdynamicfilters = instance._reportViewer.isIdentityFilter(rv_instance.dynamicFilters); let repObj = new Report(); repObj.ReportId = Number(reportid); repObj.page = Number(page); repObj.Filter = rv_instance.dynamicFilters; repObj.DateFilter = rv_instance.dateFilters; repObj.InputParameters = rv_instance.inputParameters; repObj.FilterId = rv_instance.filterId; repObj.pageSize = instance._reportViewer.PageSize; repObj.SearchTerm = listsearch ? $("#" + containerid).find("#ListSearch").val().toString() : null; repObj.IsDynamicFilterApplied = isdynamicfilters; let method; method = eval('postmethod1(parameters)'); method.then(function (res) { error.addData(JSON.parse(res.result).Result.Data, false); error.element.childNodes[1].lastChild.lastChild.classList.remove('btncount_' + page + ''); error.element.childNodes[1].lastChild.lastChild.classList.add('btncount_' + (page + 1) + ''); let datalength = (error.getDataCount()); if (datalength >= JSON.parse(res.result).Result.Count) { if (JSON.parse(res.result).Result.Count != 0) { $("#btn-list-load-more_" + containerid).addClass('hidden'); } $('#Viewer_pagintion' + containerid).html(JSON.parse(res.result).Result.Count + ' ' + 'of' + ' ' + JSON.parse(res.result).Result.Count); } else { $('#Viewer_pagintion' + containerid).html(Math.ceil(datalength) + ' ' + 'of' + ' ' + JSON.parse(res.result).Result.Count); } }); }); } }); }, ajaxResponse: function (url, params, response) { var editeditems = {}; var _children = []; var data = []; let column = new PaginationObject(); if (response.length > 0) { var report = JSON.parse(JSON.parse(response.result).Result.Data); if (instance._reportViewer.ispivottable == true) { for (let i = 0; i < report.length; i++) { editeditems = report[i]; if (report[i].haschild == true) { editeditems["_children"] = []; } data.push(editeditems); } column.data = data; } else if (instance.IsTenure == true) { column.data = report; } else { column.data = report; } let datalength = (instance._reportViewer.table.getDataCount() + JSON.parse(JSON.parse(response.result).Result.Data).length); $('#Viewer_pagintion' + containerid).html(Math.ceil(datalength) + ' ' + 'of' + ' ' + JSON.parse(response.result).Result.Count); column.last_page = Math.ceil(JSON.parse(response.result).Result.Count / 20); return column; } }, height: height, layout: "fitDataFill", resizableColumns: !instance.isTouchScreen ? true : 'header', columns: [ { title: "", formatter: autoNumFormatter, frozen: true, minWidth: 40, width: 40 } ], rowTap: function (e, row) { let id = $(row.getTable().element).attr('id').replace(/Viewer_/g, ''); $('.portletwidget-item').attr('data-mobileSwipe', 'false'); $('#' + id).parents('.portletwidget-item').attr('data-mobileSwipe', 'true'); }, dataSorting: function (sorters) { if (sorters.length > 0) { var sort = []; if (rv_instance.sortColumn) { var Sort; if (typeof (rv_instance.sortColumn) == 'string') { Sort = JSON.parse(rv_instance.sortColumn); } else { Sort = rv_instance.sortColumn; } var sortCol = Sort.find(s => s.Name == sorters[0].field); if (sortCol) { let order = (sortCol.Order.toLowerCase() == "asc") ? "Desc" : "Asc"; sort.push({ "Order": order, "Name": sorters[0].field }); } else sort.push({ "Order": sorters[0].dir, "Name": sorters[0].field }); } else sort.push({ "Order": sorters[0].dir, "Name": sorters[0].field }); rv_instance.sortColumn = sort; instance._reportViewer.getReportData(reportid, containerid, reportwidgetdata, null); } }, virtualDom: rv_instance.virtualDom, layoutColumnsOnNewData: true, dataLoaded: rows => { if (rows.length && rv_instance.js) { this.bindWidgetConfigurations(containerid, rows); } instance.setTableHolderHeight(containerid); }, }); rv_instance.table = instance._reportViewer.table; if (maintabledata.Data == "") { $(".tabulator-loader").remove(); } if (filters != null) { if (tableresponse.TotalRecords == 0) { $("#Viewer_" + containerid).css("height", "100"); } else { $("#Viewer_" + containerid).css("height", "88%"); let calWidth = "67%"; if (window.innerWidth <= 575) { calWidth = "100%"; } $("#Viewer_" + containerid).next('.modal-footer').css({ 'position': 'fixed', 'bottom': '0px', 'width': calWidth }); } } var len = 0; if (maintabledata.Data != "") { len = JSON.parse(maintabledata.Data).length; if (len >= 5 && instance._reportViewer.IsPortletWidget) { const viewAllHtml = instance._reportViewer.getViewAllHtml(containerid, 'mobile', reportid); $(`#Viewer_${containerid}`).find('.tabulator-tableHolder').append(viewAllHtml); $(`#lnkViewAll_${containerid}`).removeClass("hidden"); } } if (instance._reportViewer.IsPortletWidget) { $("#WidgetTitleLink_" + containerid).addClass('widget-title-link'); $("#ViewerHeader_" + containerid).attr('data-toggle', 'collapse').attr('data-target', "#Viewer_" + containerid); $("#Viewer_" + containerid).addClass('collapse'); if (reportwidgetdata != "undefined" && reportwidgetdata != null) { if (reportwidgetdata != 0) { if (reportwidgetdata.Data.CssProperty != null && reportwidgetdata.Data.CssProperty != undefined && reportwidgetdata.Data.CssProperty != "") { if (JSON.parse(reportwidgetdata.Data.CssProperty)[0].ReportCollapase != undefined && rv_instance.ViewerSettings.defaultViewerTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) { if (reportwidgetdata.Data.PortletWidgetCss == undefined) { if (JSON.parse(reportwidgetdata.Data.CssProperty)[0].ReportCollapase == true) { $("#Viewer_" + containerid).addClass('show'); $("#ViewerHeader_" + containerid).attr('aria-expanded', 'true'); } else { $("#Viewer_" + containerid).removeClass('show'); $("#ViewerHeader_" + containerid).attr('aria-expanded', 'false'); $("#Viewer_" + containerid).on('shown.bs.collapse', function () { if (rv_instance.table) rv_instance.table.redraw(true); }); } } if (reportwidgetdata.Data.PortletWidgetCss != undefined) { if (reportwidgetdata.Data.portletWidgetIsCollapse == true) { $("#Viewer_" + containerid).addClass('show'); $("#ViewerHeader_" + containerid).attr('aria-expanded', 'true'); } else { $("#Viewer_" + containerid).removeClass('show'); $("#ViewerHeader_" + containerid).attr('aria-expanded', 'false'); $(`#Viewer_${containerid}`).on('shown.bs.collapse', function () { if (rv_instance.table) rv_instance.table.redraw(true); }); } } $("#Viewer_" + containerid).attr('data-iscollapseapplied', 'true'); } } } } let widgetHeight = instance.widgetHeightNum - Math.abs($("#Viewer_" + containerid).find(".tabulator-header").height()); $("#Viewer_" + containerid).css({ "overflow": "auto", "height": "100%", "max-height": "" + widgetHeight + "px" }); instance._reportViewer.appendWidgetNoDataIcon(maintabledata, containerid); if (maintabledata.Data === '') { $("#Viewer_" + containerid).off('shown.bs.collapse').on('shown.bs.collapse', function () { rv_instance.table.redraw(true); }); } } else { var checkcontainerid = "#Viewer_" + containerid; var checkcontainer = checkcontainerid.includes('div_dashboardportletwidget'); let countHtml = ''; const isCountVisible = instance._reportViewer.tabMode && (!checkcontainer || instance.navigationHelper.isReportPopup(containerid)); if (isCountVisible && maintabledata.Data != "") { countHtml = `