logitude-dashboard-library 3.2.25 → 3.2.27

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.
@@ -0,0 +1,10 @@
1
+ import { ReactWidgetPM } from "../types/widget";
2
+ import { AxiosResponse } from "axios";
3
+ export declare class WidgetLoadLogger {
4
+ private StartTime;
5
+ private Widget;
6
+ constructor(widget: ReactWidgetPM, isPreviewMode: boolean | null | undefined);
7
+ log(loadDataResponse: AxiosResponse<any, any>): void;
8
+ private getLoadTime;
9
+ private isNumber;
10
+ }
@@ -1035,7 +1035,7 @@ $dark-grey: #717585;
1035
1035
  font-size: 14px;
1036
1036
  white-space: nowrap;
1037
1037
  padding: 0px !important;
1038
- position: sticky;
1038
+ position: sticky !important;
1039
1039
  top: 0px;
1040
1040
  z-index: 1;
1041
1041
  border: 0px !important;
@@ -1105,6 +1105,10 @@ $dark-grey: #717585;
1105
1105
  .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon::before {
1106
1106
  color: #343a40 !important;
1107
1107
  }
1108
+
1109
+ .p-datatable .p-column-resizer-helper {
1110
+ background: #e0e0e0;
1111
+ }
1108
1112
  }
1109
1113
 
1110
1114
  .header-content > .p-column-title > .pi::before {
@@ -8,6 +8,7 @@ export declare type FusionChartProps = {
8
8
  dataBinding: DashboardDataBinding;
9
9
  onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;
10
10
  onShowError: (errorMsg: string | null) => void;
11
+ isPreviewModeActive?: boolean;
11
12
  };
12
13
  declare const FusionChart: React.ForwardRefExoticComponent<FusionChartProps & React.RefAttributes<unknown>>;
13
14
  export default FusionChart;
@@ -7,6 +7,7 @@ export declare type FusionChartProps = {
7
7
  widgetRef: ReactWidgetPM | undefined;
8
8
  dataBinding: DashboardDataBinding;
9
9
  onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;
10
+ isPreviewModeActive?: boolean;
10
11
  };
11
12
  declare const FusionChart: React.ForwardRefExoticComponent<FusionChartProps & React.RefAttributes<unknown>>;
12
13
  export default FusionChart;
package/dist/index.js CHANGED
@@ -245,7 +245,7 @@ var DashboardAnalyticsService = /*#__PURE__*/function () {
245
245
  };
246
246
 
247
247
  _proto.getPivotData = function getPivotData(widget) {
248
- return this._ApiServices.post("/api/DashboardAnalytics/PostGetPivotData", widget);
248
+ return this._ApiServices.post("/api/" + this.controller + "/PostGetPivotData", widget);
249
249
  };
250
250
 
251
251
  return DashboardAnalyticsService;
@@ -781,6 +781,65 @@ var ConvertStringToPascalCaseHelper = function ConvertStringToPascalCaseHelper(s
781
781
  }).join(' ');
782
782
  };
783
783
 
784
+ var WidgetLoadLogService = /*#__PURE__*/function () {
785
+ function WidgetLoadLogService() {
786
+ this.controller = 'WidgetLoadLogs';
787
+ this._ApiServices = new ApiServices();
788
+ }
789
+
790
+ var _proto = WidgetLoadLogService.prototype;
791
+
792
+ _proto.create = function create(widgetLoadLog) {
793
+ return this._ApiServices.post("/api/" + this.controller, widgetLoadLog, undefined);
794
+ };
795
+
796
+ return WidgetLoadLogService;
797
+ }();
798
+
799
+ var WidgetLoadLogger = /*#__PURE__*/function () {
800
+ function WidgetLoadLogger(widget, isPreviewMode) {
801
+ this.StartTime = null;
802
+ this.Widget = null;
803
+
804
+ if (!isPreviewMode) {
805
+ this.StartTime = new Date().getTime();
806
+ this.Widget = widget;
807
+ }
808
+ }
809
+
810
+ var _proto = WidgetLoadLogger.prototype;
811
+
812
+ _proto.log = function log(loadDataResponse) {
813
+ if (this.StartTime && this.Widget && loadDataResponse) {
814
+ var totalExecutionTime = new Date().getTime() - this.StartTime;
815
+ var widgetLoadLogService = new WidgetLoadLogService();
816
+ var widgetLoadLog = {
817
+ Tenant: this.Widget.Tenant,
818
+ WidgetId: this.Widget.Id,
819
+ DashboardId: this.Widget.DashboardId,
820
+ LoadTime: this.getLoadTime(loadDataResponse),
821
+ TotalExecutionTime: totalExecutionTime
822
+ };
823
+ widgetLoadLogService.create(widgetLoadLog).then(function (_response) {}, function (_error) {});
824
+ }
825
+
826
+ this.StartTime = null;
827
+ this.Widget = null;
828
+ };
829
+
830
+ _proto.getLoadTime = function getLoadTime(loadDataResponse) {
831
+ var loadTimeHeaderKey = "load-time";
832
+ var loadTimeHeader = loadDataResponse && loadDataResponse.headers && loadDataResponse.headers[loadTimeHeaderKey] ? loadDataResponse.headers[loadTimeHeaderKey] : "";
833
+ return this.isNumber(loadTimeHeader) ? Number(loadTimeHeader) : 0;
834
+ };
835
+
836
+ _proto.isNumber = function isNumber(value) {
837
+ return value !== null && value !== undefined && value !== "" && !isNaN(Number(value.toString()));
838
+ };
839
+
840
+ return WidgetLoadLogger;
841
+ }();
842
+
784
843
  var KpiChart = function KpiChart(props) {
785
844
  var _widget$current16;
786
845
 
@@ -867,10 +926,12 @@ var KpiChart = function KpiChart(props) {
867
926
  var dashboardAnalyticsService = new DashboardAnalyticsService();
868
927
  var postWidget = calculateWidgetKPISettingsDates();
869
928
  postWidget.onChange = undefined;
929
+ var widgetLoadLogger = new WidgetLoadLogger(postWidget, props.customChartProps.isPreviewModeActive);
870
930
  dashboardAnalyticsService.getKpiData(postWidget).then(function (result) {
871
931
  setData(result.data);
872
932
  handleResponseErrors(result);
873
933
  setIsLoading(false);
934
+ widgetLoadLogger.log(result);
874
935
  }, function (error) {
875
936
  var _error$response, _error$response$data, _error$response2, _error$response2$data;
876
937
 
@@ -1247,12 +1308,14 @@ var TableChart = function TableChart(props) {
1247
1308
  widget.onChange = undefined;
1248
1309
  widget.PageIndex = 0;
1249
1310
  widget.PageSize = 100;
1311
+ var widgetLoadLogger = new WidgetLoadLogger(widget, props.customChartProps.isPreviewModeActive);
1250
1312
  dashboardAnalyticsService.getTableData(widget).then(function (res) {
1251
1313
  if (res && res.data) {
1252
1314
  fillTableData(res.data);
1253
1315
  }
1254
1316
 
1255
1317
  setIsLoading(false);
1318
+ widgetLoadLogger.log(res);
1256
1319
  })["catch"](function (error) {
1257
1320
  var _error$response, _error$response$data, _error$response2, _error$response2$data;
1258
1321
 
@@ -1483,7 +1546,7 @@ var TableChart = function TableChart(props) {
1483
1546
  };
1484
1547
 
1485
1548
  var isClickableCell = function isClickableCell(fieldCode) {
1486
- return fieldCode == "ShipmentNumber" && objectTableName == "Shipment" || fieldCode == "InvoiceNumber" && objectTableName == "APInvoice" || fieldCode == "InvoiceNumber" && objectTableName == "ARInvoice" || fieldCode == "ContainerNumber" && objectTableName == "Container" || fieldCode == "QuoteNumber" && objectTableName == "Quote" || fieldCode == "Subject" && objectTableName == "Opportunity" || fieldCode == "EnglishName" && objectTableName == "Customer" || fieldCode == "TaskNumber" && objectTableName == "Task";
1549
+ return fieldCode == "ShipmentNumber" && objectTableName == "Shipment" || fieldCode == "InvoiceNumber" && objectTableName == "APInvoice" || fieldCode == "InvoiceNumber" && objectTableName == "ARInvoice" || fieldCode == "ContainerNumber" && objectTableName == "Container" || fieldCode == "QuoteNumber" && objectTableName == "Quote" || fieldCode == "Subject" && objectTableName == "Opportunity" || fieldCode == "EnglishName" && objectTableName == "Customer" || fieldCode == "TaskNumber" && objectTableName == "Task" || fieldCode == "TicketNumber" && objectTableName == "Ticket";
1487
1550
  };
1488
1551
 
1489
1552
  var tableCellClicked = function tableCellClicked(data, fieldCode) {
@@ -1596,6 +1659,8 @@ var TableChart = function TableChart(props) {
1596
1659
  }, error))) : React__default.createElement(datatable.DataTable, {
1597
1660
  loading: isTableLoading,
1598
1661
  value: tableData,
1662
+ resizableColumns: !props.customChartProps.isInEditMode,
1663
+ columnResizeMode: "fit",
1599
1664
  responsiveLayout: "scroll"
1600
1665
  }, tableColumns.map(function (column$1, index) {
1601
1666
  return React__default.createElement(column.Column, {
@@ -1688,10 +1753,12 @@ var PivotTable = React.forwardRef(function (props, comRef) {
1688
1753
  }
1689
1754
 
1690
1755
  var dashboardAnalyticsService = new DashboardAnalyticsService();
1756
+ var widgetLoadLogger = new WidgetLoadLogger(props.customChartProps.widget, props.customChartProps.isPreviewModeActive);
1691
1757
  dashboardAnalyticsService.getPivotData(props.customChartProps.widget).then(function (res) {
1692
1758
  tabledata.current = res.data;
1693
1759
  setPivotDataSourceFields();
1694
1760
  setIsLoading(false);
1761
+ widgetLoadLogger.log(res);
1695
1762
  })["catch"](function (err) {
1696
1763
  console.log("Error while Getting Pivot Table Data: ", err);
1697
1764
  tabledata.current = null;
@@ -2076,48 +2143,9 @@ function buildDataSource(values, widget) {
2076
2143
  return data;
2077
2144
  }
2078
2145
 
2079
- var reorder = function reorder(values, referenceOrder) {
2080
- return referenceOrder.map(function (groupById) {
2081
- return values.find(function (v) {
2082
- return v.GroupById === groupById;
2083
- }) || {
2084
- GroupById: groupById,
2085
- Value: 0
2086
- };
2087
- });
2088
- };
2089
-
2090
- var getOrderedSeriesMeasures = function getOrderedSeriesMeasures(seriesMeasures, widget) {
2091
- if (!seriesMeasures || seriesMeasures.length < 2) {
2092
- return seriesMeasures;
2093
- }
2094
-
2095
- var referenceOrder;
2096
-
2097
- if (widget.SortBy == 1) {
2098
- referenceOrder = seriesMeasures[0].Values.map(function (v) {
2099
- return v.Label;
2100
- });
2101
- seriesMeasures[1].Values = reorder(seriesMeasures[1].Values, referenceOrder);
2102
- } else if (widget.SortBy == 2) {
2103
- referenceOrder = seriesMeasures[1].Values.map(function (v) {
2104
- return v.Label;
2105
- });
2106
- seriesMeasures[0].Values = reorder(seriesMeasures[0].Values, referenceOrder);
2107
- } else {
2108
- referenceOrder = seriesMeasures[0].Values.map(function (v) {
2109
- return v.GroupById;
2110
- });
2111
- seriesMeasures[1].Values = reorder(seriesMeasures[1].Values, referenceOrder);
2112
- }
2113
-
2114
- return seriesMeasures;
2115
- };
2116
-
2117
2146
  function buildDataSet(seriesMeasures, widget) {
2118
2147
  var dataSet = [];
2119
- var orderedSeriesMeasures = getOrderedSeriesMeasures(seriesMeasures, widget);
2120
- orderedSeriesMeasures.forEach(function (seriesMeasure) {
2148
+ seriesMeasures.forEach(function (seriesMeasure) {
2121
2149
  var datas = seriesMeasure.Values.map(function (e, index) {
2122
2150
  return {
2123
2151
  value: e.Value,
@@ -2941,6 +2969,7 @@ var FusionChart = React.forwardRef(function (props, comRef) {
2941
2969
  var isTargetUsed = isTargetWidget(postWidget) && postWidget.WidgetMeasures && postWidget.WidgetMeasures[1] && postWidget.WidgetMeasures[1].MeasureCode == 'Target';
2942
2970
 
2943
2971
  if (isTargetUsed) {
2972
+ var widgetLoadLogger = new WidgetLoadLogger(postWidget, props.isPreviewModeActive);
2944
2973
  dashboardAnalyticsService.getTargetAnalyticsData(postWidget, signal).then(function (result) {
2945
2974
  var _result$data, _result$data4, _result$data5;
2946
2975
 
@@ -2960,6 +2989,7 @@ var FusionChart = React.forwardRef(function (props, comRef) {
2960
2989
  }
2961
2990
 
2962
2991
  setDataLoaded(true);
2992
+ widgetLoadLogger.log(result);
2963
2993
  }, function (error) {
2964
2994
  var _error$response, _error$response$data, _error$response2, _error$response2$data;
2965
2995
 
@@ -2968,10 +2998,14 @@ var FusionChart = React.forwardRef(function (props, comRef) {
2968
2998
  setDataLoaded(true);
2969
2999
  });
2970
3000
  } else {
3001
+ var _widgetLoadLogger = new WidgetLoadLogger(postWidget, props.isPreviewModeActive);
3002
+
2971
3003
  dashboardAnalyticsService.getData(postWidget, signal).then(function (result) {
2972
3004
  handleData(result === null || result === void 0 ? void 0 : result.data);
2973
3005
  chartData.current = result === null || result === void 0 ? void 0 : result.data;
2974
3006
  setDataLoaded(true);
3007
+
3008
+ _widgetLoadLogger.log(result);
2975
3009
  }, function (error) {
2976
3010
  var _error$response3, _error$response3$data, _error$response4, _error$response4$data;
2977
3011
 
@@ -3340,10 +3374,12 @@ var FusionChart$1 = React.forwardRef(function (props, comRef) {
3340
3374
  signal = updatedAxiosController === null || updatedAxiosController === void 0 ? void 0 : updatedAxiosController.signal;
3341
3375
  }
3342
3376
 
3377
+ var widgetLoadLogger = new WidgetLoadLogger(postWidget, props.isPreviewModeActive);
3343
3378
  dashboardAnalyticsService.getGaugeData(postWidget, signal).then(function (result) {
3344
3379
  handleData(result === null || result === void 0 ? void 0 : result.data);
3345
3380
  chartData.current = result === null || result === void 0 ? void 0 : result.data;
3346
3381
  setDataLoaded(true);
3382
+ widgetLoadLogger.log(result);
3347
3383
  }, function (error) {
3348
3384
  var _error$response, _error$response$data, _error$response2, _error$response2$data;
3349
3385
 
@@ -3506,7 +3542,8 @@ var WidgetCard = React.forwardRef(function (props, comRef) {
3506
3542
  dataBinding: props.dataBinding,
3507
3543
  widget: widget.current,
3508
3544
  widgetRef: props.widgetRef,
3509
- onSelectDataPoint: props.onSelectDataPoint
3545
+ onSelectDataPoint: props.onSelectDataPoint,
3546
+ isPreviewModeActive: props.isPreviewModeActive
3510
3547
  });
3511
3548
  return React__default.createElement(FusionChart, {
3512
3549
  ref: fusionChartRef,
@@ -3516,7 +3553,8 @@ var WidgetCard = React.forwardRef(function (props, comRef) {
3516
3553
  onSelectDataPoint: props.onSelectDataPoint,
3517
3554
  onShowError: function onShowError(errorMsg) {
3518
3555
  return showErrorMsg(errorMsg);
3519
- }
3556
+ },
3557
+ isPreviewModeActive: props.isPreviewModeActive
3520
3558
  });
3521
3559
  };
3522
3560