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(``);
$(".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 = `