logitude-dashboard-library 3.2.2 → 3.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Utils/General.d.ts +2 -1
- package/dist/assets/styles/dl-dashboard.scss +43 -7
- package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectHelper.d.ts +3 -0
- package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionColors.d.ts +16 -0
- package/dist/index.js +259 -137
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +259 -137
- package/dist/index.modern.js.map +1 -1
- package/dist/services/ApiServices.d.ts +1 -1
- package/dist/services/DashboardAnalyticsService.d.ts +1 -1
- package/dist/styles/dl-dashboard.scss +43 -7
- package/dist/types/widget.d.ts +3 -0
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -4,6 +4,8 @@ import { ProgressSpinner } from 'primereact/progressspinner';
|
|
|
4
4
|
import axios from 'axios';
|
|
5
5
|
import moment from 'moment';
|
|
6
6
|
import { v4 } from 'uuid';
|
|
7
|
+
import { DataTable } from 'primereact/datatable';
|
|
8
|
+
import { Column } from 'primereact/column';
|
|
7
9
|
import ReactFC from 'react-fusioncharts';
|
|
8
10
|
import FusionCharts from 'fusioncharts';
|
|
9
11
|
import Charts from 'fusioncharts/fusioncharts.charts';
|
|
@@ -137,14 +139,19 @@ var ApiServices = /*#__PURE__*/function () {
|
|
|
137
139
|
});
|
|
138
140
|
};
|
|
139
141
|
|
|
140
|
-
_proto.post = function post(api, date) {
|
|
142
|
+
_proto.post = function post(api, date, requestSignal) {
|
|
143
|
+
if (requestSignal === void 0) {
|
|
144
|
+
requestSignal = undefined;
|
|
145
|
+
}
|
|
146
|
+
|
|
141
147
|
var token = this.getTokenFromStorage();
|
|
142
148
|
var apiURL = "" + this._apiUrl + api;
|
|
143
149
|
return axios.post(apiURL, date, {
|
|
144
150
|
headers: {
|
|
145
151
|
'Content-Type': 'application/json',
|
|
146
152
|
'Token': token
|
|
147
|
-
}
|
|
153
|
+
},
|
|
154
|
+
signal: requestSignal
|
|
148
155
|
});
|
|
149
156
|
};
|
|
150
157
|
|
|
@@ -193,8 +200,12 @@ var DashboardAnalyticsService = /*#__PURE__*/function () {
|
|
|
193
200
|
|
|
194
201
|
var _proto = DashboardAnalyticsService.prototype;
|
|
195
202
|
|
|
196
|
-
_proto.getData = function getData(widget) {
|
|
197
|
-
|
|
203
|
+
_proto.getData = function getData(widget, signal) {
|
|
204
|
+
if (signal === void 0) {
|
|
205
|
+
signal = undefined;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return this._ApiServices.post("/api/" + this.controller + "/PostGetDataAnalytic", widget, signal);
|
|
198
209
|
};
|
|
199
210
|
|
|
200
211
|
_proto.getKpiData = function getKpiData(widget) {
|
|
@@ -307,8 +318,12 @@ var isNullOrUndefined = function isNullOrUndefined(val) {
|
|
|
307
318
|
return val == null || val == undefined;
|
|
308
319
|
};
|
|
309
320
|
|
|
321
|
+
var isNullOrUndefinedOrEmpty = function isNullOrUndefinedOrEmpty(val) {
|
|
322
|
+
return val == null || val == undefined || val == "";
|
|
323
|
+
};
|
|
324
|
+
|
|
310
325
|
var KpiChart = function KpiChart(props) {
|
|
311
|
-
var _widget$
|
|
326
|
+
var _widget$current18;
|
|
312
327
|
|
|
313
328
|
var _useState = useState(true),
|
|
314
329
|
isLoading = _useState[0],
|
|
@@ -372,6 +387,7 @@ var KpiChart = function KpiChart(props) {
|
|
|
372
387
|
var postWidget = _extends({}, widget.current);
|
|
373
388
|
|
|
374
389
|
postWidget.onChange = undefined;
|
|
390
|
+
postWidget.EntityId = !isNullOrUndefinedOrEmpty(postWidget.RelatedToEntityId) ? postWidget.RelatedToEntityId : postWidget.EntityId;
|
|
375
391
|
dashboardAnalyticsService.getKpiData(postWidget).then(function (result) {
|
|
376
392
|
setData(result.data);
|
|
377
393
|
setIsLoading(false);
|
|
@@ -399,8 +415,22 @@ var KpiChart = function KpiChart(props) {
|
|
|
399
415
|
});
|
|
400
416
|
};
|
|
401
417
|
|
|
418
|
+
var isComparisonIndicatorChecked = function isComparisonIndicatorChecked() {
|
|
419
|
+
var _widget$current5;
|
|
420
|
+
|
|
421
|
+
var _kpiSettings = (_widget$current5 = widget.current) === null || _widget$current5 === void 0 ? void 0 : _widget$current5.KPIComparisonSettings;
|
|
422
|
+
|
|
423
|
+
if (_kpiSettings) {
|
|
424
|
+
var _kpiSettingsAsObj = JSON.parse(_kpiSettings);
|
|
425
|
+
|
|
426
|
+
return !isNullOrUndefined(_kpiSettingsAsObj.ComparisonIndicator) ? _kpiSettingsAsObj.ComparisonIndicator : false;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
return false;
|
|
430
|
+
};
|
|
431
|
+
|
|
402
432
|
function getRatioComponent() {
|
|
403
|
-
if (!(data !== null && data !== void 0 && data.CompareWithPrevious)) return null;
|
|
433
|
+
if (!(data !== null && data !== void 0 && data.CompareWithPrevious) || !isComparisonIndicatorChecked()) return null;
|
|
404
434
|
return React__default.createElement("div", {
|
|
405
435
|
className: "dl-kpi-ratio-container"
|
|
406
436
|
}, getArrowComponent(), React__default.createElement("div", {
|
|
@@ -409,7 +439,7 @@ var KpiChart = function KpiChart(props) {
|
|
|
409
439
|
}
|
|
410
440
|
|
|
411
441
|
function getArrowComponent() {
|
|
412
|
-
var _widget$
|
|
442
|
+
var _widget$current6, _widget$current7, _widget$current8, _widget$current9, _widget$current10, _widget$current11, _widget$current12, _widget$current13;
|
|
413
443
|
|
|
414
444
|
if (!data) return null;
|
|
415
445
|
if ((data === null || data === void 0 ? void 0 : data.Ratio) == 0 || data.Value == data.ComparisonValue || (data.Value == "0" || data.Value == 0) && (data.ComparisonValue == "0" || data.ComparisonValue == 0)) return React__default.createElement("div", {
|
|
@@ -422,22 +452,22 @@ var KpiChart = function KpiChart(props) {
|
|
|
422
452
|
marginTop: "2px"
|
|
423
453
|
}
|
|
424
454
|
}));
|
|
425
|
-
if ((data === null || data === void 0 ? void 0 : data.Ratio) > 1 && (_widget$
|
|
455
|
+
if ((data === null || data === void 0 ? void 0 : data.Ratio) > 1 && (_widget$current6 = widget.current) !== null && _widget$current6 !== void 0 && _widget$current6.Increase && ((_widget$current7 = widget.current) === null || _widget$current7 === void 0 ? void 0 : _widget$current7.Increase) == "Positive") return React__default.createElement("div", {
|
|
426
456
|
className: "dl-kpi-arrow-container"
|
|
427
457
|
}, React__default.createElement("span", {
|
|
428
458
|
className: "dl-kpi-arrow-pic dl-kpi-arrow-up-green"
|
|
429
459
|
}));
|
|
430
|
-
if ((data === null || data === void 0 ? void 0 : data.Ratio) > 1 && (_widget$
|
|
460
|
+
if ((data === null || data === void 0 ? void 0 : data.Ratio) > 1 && (_widget$current8 = widget.current) !== null && _widget$current8 !== void 0 && _widget$current8.Increase && ((_widget$current9 = widget.current) === null || _widget$current9 === void 0 ? void 0 : _widget$current9.Increase) == "Negative") return React__default.createElement("div", {
|
|
431
461
|
className: "dl-kpi-arrow-container"
|
|
432
462
|
}, React__default.createElement("span", {
|
|
433
463
|
className: "dl-kpi-arrow-pic dl-kpi-arrow-up-red"
|
|
434
464
|
}));
|
|
435
|
-
if ((data === null || data === void 0 ? void 0 : data.Ratio) < 1 && (_widget$
|
|
465
|
+
if ((data === null || data === void 0 ? void 0 : data.Ratio) < 1 && (_widget$current10 = widget.current) !== null && _widget$current10 !== void 0 && _widget$current10.Increase && ((_widget$current11 = widget.current) === null || _widget$current11 === void 0 ? void 0 : _widget$current11.Increase) == "Positive") return React__default.createElement("div", {
|
|
436
466
|
className: "dl-kpi-arrow-container"
|
|
437
467
|
}, React__default.createElement("span", {
|
|
438
468
|
className: "dl-kpi-arrow-pic dl-kpi-arrow-down-red"
|
|
439
469
|
}));
|
|
440
|
-
if ((data === null || data === void 0 ? void 0 : data.Ratio) < 1 && (_widget$
|
|
470
|
+
if ((data === null || data === void 0 ? void 0 : data.Ratio) < 1 && (_widget$current12 = widget.current) !== null && _widget$current12 !== void 0 && _widget$current12.Increase && ((_widget$current13 = widget.current) === null || _widget$current13 === void 0 ? void 0 : _widget$current13.Increase) == "Negative") return React__default.createElement("div", {
|
|
441
471
|
className: "dl-kpi-arrow-container"
|
|
442
472
|
}, React__default.createElement("span", {
|
|
443
473
|
className: "dl-kpi-arrow-pic dl-kpi-arrow-down-green"
|
|
@@ -446,10 +476,10 @@ var KpiChart = function KpiChart(props) {
|
|
|
446
476
|
}
|
|
447
477
|
|
|
448
478
|
function getPreviousValueComponent() {
|
|
449
|
-
if (
|
|
450
|
-
var
|
|
451
|
-
var labelFormated =
|
|
452
|
-
prevtext = labelFormated + ": " +
|
|
479
|
+
if (isNullOrUndefined(data) || isNullOrUndefined(data === null || data === void 0 ? void 0 : data.ComparisonValue) || isNullOrUndefined(data === null || data === void 0 ? void 0 : data.ComparisonLabel)) return "";
|
|
480
|
+
var labelFormatByDateGroupType = getLabelFormatByDateGroupType(data.ComparisonLabel, widget.current, false);
|
|
481
|
+
var labelFormated = !isNullOrUndefined(labelFormatByDateGroupType) ? labelFormatByDateGroupType : null;
|
|
482
|
+
var prevtext = labelFormated ? labelFormated + ": " + (data === null || data === void 0 ? void 0 : data.ComparisonValue) : "";
|
|
453
483
|
return React__default.createElement("div", {
|
|
454
484
|
className: "dl-kpi-prev-container"
|
|
455
485
|
}, React__default.createElement("div", {
|
|
@@ -494,11 +524,11 @@ var KpiChart = function KpiChart(props) {
|
|
|
494
524
|
};
|
|
495
525
|
|
|
496
526
|
var isKPICustomResizeNeeded = function isKPICustomResizeNeeded() {
|
|
497
|
-
var _widget$
|
|
527
|
+
var _widget$current14, _widget$current15, _widget$current16, _widget$current17;
|
|
498
528
|
|
|
499
529
|
if (!widget || !widget.current) return;
|
|
500
|
-
var isThereTitle = !isNullOrUndefined((_widget$
|
|
501
|
-
var isThereSubTitle = !isNullOrUndefined((_widget$
|
|
530
|
+
var isThereTitle = !isNullOrUndefined((_widget$current14 = widget.current) === null || _widget$current14 === void 0 ? void 0 : _widget$current14.Title) && ((_widget$current15 = widget.current) === null || _widget$current15 === void 0 ? void 0 : _widget$current15.Title.length) > 0;
|
|
531
|
+
var isThereSubTitle = !isNullOrUndefined((_widget$current16 = widget.current) === null || _widget$current16 === void 0 ? void 0 : _widget$current16.Subtitle) && ((_widget$current17 = widget.current) === null || _widget$current17 === void 0 ? void 0 : _widget$current17.Subtitle.length) > 0;
|
|
502
532
|
var isKPIHasSmallestHeight = getIsKPIHasSmallestHeight();
|
|
503
533
|
return isThereTitle && isThereSubTitle && isKPIHasSmallestHeight;
|
|
504
534
|
};
|
|
@@ -515,7 +545,7 @@ var KpiChart = function KpiChart(props) {
|
|
|
515
545
|
})) : !error && widget.current ? React__default.createElement("div", {
|
|
516
546
|
key: triggerId,
|
|
517
547
|
onClick: kpiClick,
|
|
518
|
-
className: ((_widget$
|
|
548
|
+
className: ((_widget$current18 = widget.current) === null || _widget$current18 === void 0 ? void 0 : _widget$current18.Alighnment) == "Left" ? "dl-kpi-container-click db-justify-content-flex-start" : "dl-kpi-container-click"
|
|
519
549
|
}, React__default.createElement("div", {
|
|
520
550
|
className: isKPICustomSizeNeeded ? "dl-kpi-container kpi-custom-size" : "dl-kpi-container"
|
|
521
551
|
}, getLabel(), getValueComponent(), getPreviousValueComponent())) : React__default.createElement("div", {
|
|
@@ -548,6 +578,10 @@ var TableChart = function TableChart(props) {
|
|
|
548
578
|
tableData = _useState4[0],
|
|
549
579
|
setTableData = _useState4[1];
|
|
550
580
|
|
|
581
|
+
var _useState5 = useState([]),
|
|
582
|
+
tableColumns = _useState5[0],
|
|
583
|
+
setTableColumns = _useState5[1];
|
|
584
|
+
|
|
551
585
|
useEffect(function () {
|
|
552
586
|
if (props.customChartProps && props.customChartProps.widget) {
|
|
553
587
|
setWidget(props.customChartProps.widget);
|
|
@@ -565,7 +599,8 @@ var TableChart = function TableChart(props) {
|
|
|
565
599
|
var dashboardAnalyticsService = new DashboardAnalyticsService();
|
|
566
600
|
widget.onChange = undefined;
|
|
567
601
|
widget.PageIndex = 0;
|
|
568
|
-
widget.PageSize =
|
|
602
|
+
widget.PageSize = 100;
|
|
603
|
+
widget.EntityId = !isNullOrUndefinedOrEmpty(widget.RelatedToEntityId) ? widget.RelatedToEntityId : widget.EntityId;
|
|
569
604
|
dashboardAnalyticsService.getTableData(widget).then(function (res) {
|
|
570
605
|
if (res && res.data) {
|
|
571
606
|
fillTableData(res.data);
|
|
@@ -598,56 +633,29 @@ var TableChart = function TableChart(props) {
|
|
|
598
633
|
};
|
|
599
634
|
|
|
600
635
|
var fillTableData = function fillTableData(tableData) {
|
|
601
|
-
var
|
|
602
|
-
var tableRow = [];
|
|
603
|
-
|
|
604
|
-
if (tableData.Fields) {
|
|
605
|
-
tableData.Fields.forEach(function (item) {
|
|
606
|
-
tableRow.push(_extends({}, item, {
|
|
607
|
-
value: item.DisplayName ? item.DisplayName : "",
|
|
608
|
-
isHeader: true
|
|
609
|
-
}));
|
|
610
|
-
});
|
|
611
|
-
}
|
|
636
|
+
var tableRecords = [];
|
|
612
637
|
|
|
613
|
-
|
|
638
|
+
if (tableData.Fields && tableData.Fields.length) {
|
|
639
|
+
setTableColumns([].concat(tableData.Fields));
|
|
640
|
+
}
|
|
614
641
|
|
|
615
|
-
if (tableData.Result) {
|
|
642
|
+
if (tableData.Result && tableData.Result.length) {
|
|
616
643
|
tableData.Result.forEach(function (item) {
|
|
617
|
-
var _tableRow =
|
|
644
|
+
var _tableRow = _extends({}, item);
|
|
645
|
+
|
|
618
646
|
tableData.Fields.forEach(function (field) {
|
|
619
647
|
var key = field.FieldCode;
|
|
620
648
|
var valueType = field.DataTypeCode;
|
|
621
649
|
|
|
622
650
|
var _value = valueType && (valueType == "Date" || valueType == "DateTime") ? getDateTimeValue(item[key]) : valueType == "Boolean" ? getBooleanStringValue(item[key]) : item[key];
|
|
623
651
|
|
|
624
|
-
_tableRow
|
|
625
|
-
value: _value
|
|
626
|
-
});
|
|
652
|
+
_tableRow[key] = isNullOrUndefined(_value) ? "" : _value;
|
|
627
653
|
});
|
|
628
|
-
|
|
654
|
+
tableRecords.push(_tableRow);
|
|
629
655
|
});
|
|
630
656
|
}
|
|
631
657
|
|
|
632
|
-
setTableData([].concat(
|
|
633
|
-
};
|
|
634
|
-
|
|
635
|
-
var getTableTemplate = function getTableTemplate() {
|
|
636
|
-
return tableData.length == 0 ? React__default.createElement("div", {
|
|
637
|
-
className: "dl-kpi-no-data margin-auto"
|
|
638
|
-
}, "No data to display.") : React__default.createElement("table", null, React__default.createElement("thead", null, React__default.createElement("tr", null, tableData[0].map(function (el) {
|
|
639
|
-
return React__default.createElement("th", {
|
|
640
|
-
key: el.value
|
|
641
|
-
}, !isNullOrUndefined(el.value) ? el.value + "" : '');
|
|
642
|
-
}))), React__default.createElement("tbody", null, tableData.map(function (el, index) {
|
|
643
|
-
return index == 0 ? null : React__default.createElement("tr", {
|
|
644
|
-
key: index
|
|
645
|
-
}, el.map(function (item, index2) {
|
|
646
|
-
return React__default.createElement("td", {
|
|
647
|
-
key: index2 + "_" + el.value
|
|
648
|
-
}, !isNullOrUndefined(item.value) ? item.value + "" : '');
|
|
649
|
-
}));
|
|
650
|
-
})));
|
|
658
|
+
setTableData([].concat(tableRecords));
|
|
651
659
|
};
|
|
652
660
|
|
|
653
661
|
return isLoading ? React__default.createElement("div", {
|
|
@@ -670,11 +678,20 @@ var TableChart = function TableChart(props) {
|
|
|
670
678
|
className: "red-warning-icon"
|
|
671
679
|
}), React__default.createElement("span", {
|
|
672
680
|
className: "dl-tooltiptext"
|
|
673
|
-
}, error))) :
|
|
681
|
+
}, error))) : React__default.createElement(DataTable, {
|
|
682
|
+
value: tableData,
|
|
683
|
+
responsiveLayout: "scroll"
|
|
684
|
+
}, tableColumns.map(function (column, index) {
|
|
685
|
+
return React__default.createElement(Column, {
|
|
686
|
+
key: column.FieldCode + "_" + index,
|
|
687
|
+
field: column.FieldCode,
|
|
688
|
+
header: column.DisplayName
|
|
689
|
+
});
|
|
690
|
+
}));
|
|
674
691
|
};
|
|
675
692
|
|
|
676
693
|
var CustomChart = function CustomChart(props) {
|
|
677
|
-
var _props$widget2;
|
|
694
|
+
var _props$widget2, _props$widget3, _props$widget4;
|
|
678
695
|
|
|
679
696
|
var project = function project() {
|
|
680
697
|
var _props$widget;
|
|
@@ -695,50 +712,16 @@ var CustomChart = function CustomChart(props) {
|
|
|
695
712
|
}
|
|
696
713
|
};
|
|
697
714
|
|
|
698
|
-
return React__default.createElement("div", {
|
|
699
|
-
className:
|
|
700
|
-
},
|
|
715
|
+
return React__default.createElement(React__default.Fragment, null, ((_props$widget2 = props.widget) === null || _props$widget2 === void 0 ? void 0 : _props$widget2.TypeCode) && ((_props$widget3 = props.widget) === null || _props$widget3 === void 0 ? void 0 : _props$widget3.TypeCode) == 'table' && React__default.createElement("div", {
|
|
716
|
+
className: "table-rows-number-indicator"
|
|
717
|
+
}, "Showing the first 100 rows"), React__default.createElement("div", {
|
|
718
|
+
className: props.widget && ((_props$widget4 = props.widget) === null || _props$widget4 === void 0 ? void 0 : _props$widget4.TypeCode) == 'table' ? "dl-custom-chart-container dl-table-chart-container" : "dl-custom-chart-container"
|
|
719
|
+
}, project()));
|
|
701
720
|
};
|
|
702
721
|
|
|
703
|
-
var mainYellowColor = "#F6CF33";
|
|
704
|
-
var mainRedColor = "#EE5F77";
|
|
705
|
-
var mainGreenColor = "#4AC76F";
|
|
706
|
-
var mainTurquoiseColor = "#32C7C7";
|
|
707
|
-
var mainBlueColor = "#369CFB";
|
|
708
|
-
var mainPurpleColor = "#935BE0";
|
|
709
|
-
var mainOrangeColor = "#FAAD14";
|
|
710
|
-
|
|
711
|
-
function getSeriesPositionColor(position) {
|
|
712
|
-
switch (position) {
|
|
713
|
-
case 1:
|
|
714
|
-
return mainBlueColor;
|
|
715
|
-
|
|
716
|
-
case 2:
|
|
717
|
-
return mainGreenColor;
|
|
718
|
-
|
|
719
|
-
case 3:
|
|
720
|
-
return mainYellowColor;
|
|
721
|
-
|
|
722
|
-
case 4:
|
|
723
|
-
return mainTurquoiseColor;
|
|
724
|
-
|
|
725
|
-
case 5:
|
|
726
|
-
return mainPurpleColor;
|
|
727
|
-
|
|
728
|
-
case 6:
|
|
729
|
-
return mainOrangeColor;
|
|
730
|
-
|
|
731
|
-
case 7:
|
|
732
|
-
return mainRedColor;
|
|
733
|
-
|
|
734
|
-
default:
|
|
735
|
-
return null;
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
|
|
739
722
|
function buildToolTip(widget, value, seriesName, label, index) {
|
|
740
723
|
var padding = widget.TypeCode == 'line' && index > 0 ? 'padding-top: 3px' : '';
|
|
741
|
-
return "\n <div style=\"min-width: 108px;" + padding + "\">\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\n <span style=\"margin: 0; height: 10px; width: 10px; background-color:
|
|
724
|
+
return "\n <div style=\"min-width: 108px;" + padding + "\">\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\n <span style=\"margin: 0; min-height: 10px; min-width: 10px; height: 10px; width: 10px; background-color: transparent; border-radius: 50%; display: inline-block;\"></span>\n <p style=\" margin: 0; margin-left: 4px; white-space: pre-line; font-family: 'Manrope'; font-style: normal;font-weight: 400; font-size: 11px; line-height: 100%; color: #323232;\"> " + getTooltiplabel(label, seriesName) + "</p>\n </div>\n <hr style=\"margin: 0;border-top: 1px solid #F0F0F0;\">\n <div style=\"display: flex;align-items: center;margin:0;margin-top: 6px;\">\n <p style=\"margin: 0;font-family: 'Manrope'; white-space: pre-line; font-style: normal;font-weight: 400; font-size: 11px;line-height: 100%;color: #A4A4A4;\"> " + getMeasureType(seriesName) + "</p>\n <p style=\"margin: 0;margin-left: 6px; white-space: pre-line; font-family: 'Manrope';font-style: normal;font-weight: 500;font-size: 11px;line-height: 100%; color: #323232;\">" + getTooltipValue(value) + "</p>\n " + getTooltipPercentage(widget) + " </div>\n </div>\n ";
|
|
742
725
|
}
|
|
743
726
|
|
|
744
727
|
function getTooltipPercentage(widget) {
|
|
@@ -746,8 +729,9 @@ function getTooltipPercentage(widget) {
|
|
|
746
729
|
return "\n <p style=\"margin: 0;margin-left: 2px;font-family: 'Manrope';font-style: normal;font-weight: 500;font-size: 11px;line-height: 100%; color: #A4A4A4;flex: none; order: 1;flex-grow: 0;\">($percentValue)</p>\n ";
|
|
747
730
|
}
|
|
748
731
|
|
|
749
|
-
function getTooltiplabel(value) {
|
|
732
|
+
function getTooltiplabel(value, seriesMeasure) {
|
|
750
733
|
if (value) return value;
|
|
734
|
+
if (seriesMeasure && seriesMeasure.Name) return '$label' + " - " + seriesMeasure.Name;
|
|
751
735
|
return '$label';
|
|
752
736
|
}
|
|
753
737
|
|
|
@@ -827,8 +811,7 @@ function buildDataSource(values, widget) {
|
|
|
827
811
|
MeasureCode: series.MeasureCode,
|
|
828
812
|
Formula: series.Formula
|
|
829
813
|
},
|
|
830
|
-
tooltext: buildToolTip(widget, null, series, e.Label, 0)
|
|
831
|
-
color: getSeriesPositionColor(index + 1)
|
|
814
|
+
tooltext: buildToolTip(widget, null, series, e.Label, 0)
|
|
832
815
|
};
|
|
833
816
|
return item;
|
|
834
817
|
});
|
|
@@ -837,7 +820,6 @@ function buildDataSource(values, widget) {
|
|
|
837
820
|
|
|
838
821
|
function buildDataSet(seriesMeasures, widget) {
|
|
839
822
|
var dataSet = [];
|
|
840
|
-
var seriesPosition = 1;
|
|
841
823
|
seriesMeasures.forEach(function (seriesMeasure) {
|
|
842
824
|
var datas = seriesMeasure.Values.map(function (e, index) {
|
|
843
825
|
return {
|
|
@@ -851,26 +833,22 @@ function buildDataSet(seriesMeasures, widget) {
|
|
|
851
833
|
tooltext: buildToolTip(widget, e.Value, seriesMeasure, null, index)
|
|
852
834
|
};
|
|
853
835
|
});
|
|
854
|
-
var color = getSeriesPositionColor(seriesPosition);
|
|
855
836
|
dataSet.push({
|
|
856
837
|
data: datas,
|
|
857
838
|
seriesname: seriesMeasure.Name,
|
|
858
|
-
|
|
859
|
-
anchorBgColor: color,
|
|
839
|
+
anchorBgColor: "inherit",
|
|
860
840
|
anchorBorderColor: "#FFFFFF",
|
|
861
841
|
anchorBorderThickness: "2",
|
|
862
|
-
anchorHoverColor:
|
|
842
|
+
anchorHoverColor: "inherit",
|
|
863
843
|
parentyaxis: seriesMeasure.PlotasLineChart && seriesMeasure.PlotonSecondAxis ? 'S' : "P",
|
|
864
844
|
renderAs: seriesMeasure.PlotasLineChart ? 'line' : "column"
|
|
865
845
|
});
|
|
866
|
-
seriesPosition++;
|
|
867
846
|
});
|
|
868
847
|
return dataSet;
|
|
869
848
|
}
|
|
870
849
|
|
|
871
850
|
function buildStackedDataSet(seriesMeasures, widget) {
|
|
872
851
|
var dataSet = [];
|
|
873
|
-
var seriesPosition = 1;
|
|
874
852
|
var series = seriesMeasures[0];
|
|
875
853
|
var uniqueGroups = [];
|
|
876
854
|
series.Values.forEach(function (element) {
|
|
@@ -882,13 +860,10 @@ function buildStackedDataSet(seriesMeasures, widget) {
|
|
|
882
860
|
});
|
|
883
861
|
});
|
|
884
862
|
uniqueGroups.forEach(function (group) {
|
|
885
|
-
var color = getSeriesPositionColor(seriesPosition);
|
|
886
863
|
dataSet.push({
|
|
887
864
|
seriesName: group.label,
|
|
888
|
-
color: color,
|
|
889
865
|
data: buildStackedGroupData(group, series, widget)
|
|
890
866
|
});
|
|
891
|
-
seriesPosition++;
|
|
892
867
|
});
|
|
893
868
|
var emptylabels = dataSet.filter(function (e) {
|
|
894
869
|
return e.seriesName == null;
|
|
@@ -1248,6 +1223,7 @@ function getDefaultChartInfo(widget) {
|
|
|
1248
1223
|
chart.minAngleForValue = "27";
|
|
1249
1224
|
}
|
|
1250
1225
|
|
|
1226
|
+
chart.palettecolors = "#369CFB,#4AC76F,#F6CF33,#32C7C7,#935BE0,#FAAD14,#EE5F77,#5D62B5, #29C3BE, #F2726F, #FFC533, #62B58F, #BC95DF, #67CDF2";
|
|
1251
1227
|
chart.enableSlicing = "0";
|
|
1252
1228
|
chart.enableRotation = "0";
|
|
1253
1229
|
chart.chartTopMargin = "10";
|
|
@@ -1256,6 +1232,7 @@ function getDefaultChartInfo(widget) {
|
|
|
1256
1232
|
chart.chartRightMargin = "40";
|
|
1257
1233
|
chart.toolTipBgColor = "#FFFFFF";
|
|
1258
1234
|
chart.showToolTipShadow = "1";
|
|
1235
|
+
chart.plotHoverEffect = "0";
|
|
1259
1236
|
chart.scrollHeight = "6";
|
|
1260
1237
|
chart.scrollWidth = "6";
|
|
1261
1238
|
chart.plotColorinTooltip = "0";
|
|
@@ -1389,6 +1366,78 @@ var FusionChartHelper = /*#__PURE__*/function () {
|
|
|
1389
1366
|
return FusionChartHelper;
|
|
1390
1367
|
}();
|
|
1391
1368
|
|
|
1369
|
+
var plotColorsDictionary = {
|
|
1370
|
+
plotColor0: "#369CFB",
|
|
1371
|
+
plotColor1: "#4AC76F",
|
|
1372
|
+
plotColor2: "#F6CF33",
|
|
1373
|
+
plotColor3: "#32C7C7",
|
|
1374
|
+
plotColor4: "#935BE0",
|
|
1375
|
+
plotColor5: "#FAAD14",
|
|
1376
|
+
plotColor6: "#EE5F77",
|
|
1377
|
+
plotColor7: "#5D62B5",
|
|
1378
|
+
plotColor8: "#29C3BE",
|
|
1379
|
+
plotColor9: "#F2726F",
|
|
1380
|
+
plotColor10: "#FFC533",
|
|
1381
|
+
plotColor11: "#62B58F",
|
|
1382
|
+
plotColor12: "#BC95DF",
|
|
1383
|
+
plotColor13: "#67CDF2"
|
|
1384
|
+
};
|
|
1385
|
+
|
|
1386
|
+
var getPlotColorByIndexOrder = function getPlotColorByIndexOrder(index) {
|
|
1387
|
+
var _index = index;
|
|
1388
|
+
|
|
1389
|
+
if (_index >= 14) {
|
|
1390
|
+
_index = _index % 14;
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
switch (_index) {
|
|
1394
|
+
case 0:
|
|
1395
|
+
return plotColorsDictionary.plotColor0;
|
|
1396
|
+
|
|
1397
|
+
case 1:
|
|
1398
|
+
return plotColorsDictionary.plotColor1;
|
|
1399
|
+
|
|
1400
|
+
case 2:
|
|
1401
|
+
return plotColorsDictionary.plotColor2;
|
|
1402
|
+
|
|
1403
|
+
case 3:
|
|
1404
|
+
return plotColorsDictionary.plotColor3;
|
|
1405
|
+
|
|
1406
|
+
case 4:
|
|
1407
|
+
return plotColorsDictionary.plotColor4;
|
|
1408
|
+
|
|
1409
|
+
case 5:
|
|
1410
|
+
return plotColorsDictionary.plotColor5;
|
|
1411
|
+
|
|
1412
|
+
case 6:
|
|
1413
|
+
return plotColorsDictionary.plotColor6;
|
|
1414
|
+
|
|
1415
|
+
case 7:
|
|
1416
|
+
return plotColorsDictionary.plotColor7;
|
|
1417
|
+
|
|
1418
|
+
case 8:
|
|
1419
|
+
return plotColorsDictionary.plotColor8;
|
|
1420
|
+
|
|
1421
|
+
case 9:
|
|
1422
|
+
return plotColorsDictionary.plotColor9;
|
|
1423
|
+
|
|
1424
|
+
case 10:
|
|
1425
|
+
return plotColorsDictionary.plotColor10;
|
|
1426
|
+
|
|
1427
|
+
case 11:
|
|
1428
|
+
return plotColorsDictionary.plotColor11;
|
|
1429
|
+
|
|
1430
|
+
case 12:
|
|
1431
|
+
return plotColorsDictionary.plotColor12;
|
|
1432
|
+
|
|
1433
|
+
case 13:
|
|
1434
|
+
return plotColorsDictionary.plotColor13;
|
|
1435
|
+
|
|
1436
|
+
default:
|
|
1437
|
+
return "#0566c2";
|
|
1438
|
+
}
|
|
1439
|
+
};
|
|
1440
|
+
|
|
1392
1441
|
ReactFC.fcRoot(FusionCharts, Charts, FusionTheme);
|
|
1393
1442
|
FusionCharts.options['license']({
|
|
1394
1443
|
key: 'prD4C-8eiA7A3A3C7E6G4B4A3J4C7B2D3D2nyqE1C3fd1npaE4D4tlA-21D7E4F4F1F1E1F4F1A10A8C2C5F5E2F2D1hwqD1B5D1aG4A19A32twbC6D3G4lhJ-7A9C11A5B-13ddA2I3A1B9B3D7A2B4G2H3H1F-7smC8B2XB4cetB8A7A5mxD3SG4F2tvgB2A3B2E4C3I3C7B3A4A3A2D3D2G4J-7==',
|
|
@@ -1407,27 +1456,35 @@ var FusionChart = forwardRef(function (props, comRef) {
|
|
|
1407
1456
|
fusionKey = _useState3[0];
|
|
1408
1457
|
|
|
1409
1458
|
var chartData = useRef(null);
|
|
1459
|
+
|
|
1460
|
+
var _useState4 = useState(null),
|
|
1461
|
+
resizeTimer = _useState4[0],
|
|
1462
|
+
setResizeTimer = _useState4[1];
|
|
1463
|
+
|
|
1464
|
+
var axiosController = useRef(new AbortController());
|
|
1410
1465
|
var widget = useRef();
|
|
1411
1466
|
|
|
1412
|
-
var
|
|
1413
|
-
args =
|
|
1414
|
-
setArgs =
|
|
1467
|
+
var _useState5 = useState({}),
|
|
1468
|
+
args = _useState5[0],
|
|
1469
|
+
setArgs = _useState5[1];
|
|
1470
|
+
|
|
1471
|
+
var _useState6 = useState(),
|
|
1472
|
+
fChart = _useState6[0],
|
|
1473
|
+
setFchart = _useState6[1];
|
|
1415
1474
|
|
|
1416
|
-
var
|
|
1417
|
-
|
|
1418
|
-
setFchart = _useState5[1];
|
|
1475
|
+
var _useState7 = useState(v4()),
|
|
1476
|
+
chartContainerId = _useState7[0];
|
|
1419
1477
|
|
|
1420
|
-
var id = (Math.random() + 1).toString(36).substring(7);
|
|
1421
1478
|
var progressRef = useRef(null);
|
|
1422
1479
|
var fusionRef = useRef(null);
|
|
1423
1480
|
var fusionChartHelper = useRef();
|
|
1481
|
+
var isDummyChangesActive = useRef(false);
|
|
1424
1482
|
useEffect(function () {
|
|
1425
1483
|
var _props$dataBinding;
|
|
1426
1484
|
|
|
1485
|
+
axiosController.current = new AbortController();
|
|
1427
1486
|
widget.current = props.widget;
|
|
1428
|
-
|
|
1429
|
-
RefreshData();
|
|
1430
|
-
}, 500);
|
|
1487
|
+
RefreshData();
|
|
1431
1488
|
(_props$dataBinding = props.dataBinding) === null || _props$dataBinding === void 0 ? void 0 : _props$dataBinding.widgetUpdated.subscribe(function (updatedWidget) {
|
|
1432
1489
|
var _widget$current;
|
|
1433
1490
|
|
|
@@ -1437,25 +1494,32 @@ var FusionChart = forwardRef(function (props, comRef) {
|
|
|
1437
1494
|
if (chartData && chartData.current) {
|
|
1438
1495
|
var _data = JSON.parse(JSON.stringify(chartData.current));
|
|
1439
1496
|
|
|
1497
|
+
isDummyChangesActive.current = true;
|
|
1440
1498
|
handleData(_data, true);
|
|
1441
1499
|
}
|
|
1442
1500
|
});
|
|
1443
|
-
}, []);
|
|
1444
|
-
useEffect(function () {
|
|
1445
|
-
var timeout;
|
|
1446
|
-
|
|
1447
|
-
var handleResize = function handleResize() {
|
|
1448
|
-
clearTimeout(timeout);
|
|
1449
|
-
timeout = setTimeout(function () {
|
|
1450
|
-
HandleSizeChange();
|
|
1451
|
-
}, 200);
|
|
1452
|
-
};
|
|
1453
|
-
|
|
1454
1501
|
window.addEventListener("resize", handleResize);
|
|
1455
1502
|
return function () {
|
|
1456
|
-
|
|
1503
|
+
var _axiosController$curr;
|
|
1504
|
+
|
|
1505
|
+
window.removeEventListener("resize", handleResize);
|
|
1506
|
+
setDataLoaded(false);
|
|
1507
|
+
|
|
1508
|
+
if (axiosController && axiosController !== null && axiosController !== void 0 && (_axiosController$curr = axiosController.current) !== null && _axiosController$curr !== void 0 && _axiosController$curr.abort) {
|
|
1509
|
+
var _axiosController$curr2;
|
|
1510
|
+
|
|
1511
|
+
axiosController === null || axiosController === void 0 ? void 0 : (_axiosController$curr2 = axiosController.current) === null || _axiosController$curr2 === void 0 ? void 0 : _axiosController$curr2.abort();
|
|
1512
|
+
}
|
|
1457
1513
|
};
|
|
1458
1514
|
}, []);
|
|
1515
|
+
|
|
1516
|
+
var handleResize = function handleResize() {
|
|
1517
|
+
clearTimeout(resizeTimer);
|
|
1518
|
+
setResizeTimer(setTimeout(function () {
|
|
1519
|
+
HandleSizeChange();
|
|
1520
|
+
}, 200));
|
|
1521
|
+
};
|
|
1522
|
+
|
|
1459
1523
|
useImperativeHandle(comRef, function () {
|
|
1460
1524
|
return {
|
|
1461
1525
|
onResizeFinish: function onResizeFinish() {
|
|
@@ -1494,9 +1558,22 @@ var FusionChart = forwardRef(function (props, comRef) {
|
|
|
1494
1558
|
var postWidget = _extends({}, widget.current);
|
|
1495
1559
|
|
|
1496
1560
|
postWidget.onChange = undefined;
|
|
1497
|
-
|
|
1561
|
+
var signal = undefined;
|
|
1562
|
+
|
|
1563
|
+
if (axiosController) {
|
|
1564
|
+
var _axiosController$curr3;
|
|
1565
|
+
|
|
1566
|
+
axiosController === null || axiosController === void 0 ? void 0 : (_axiosController$curr3 = axiosController.current) === null || _axiosController$curr3 === void 0 ? void 0 : _axiosController$curr3.abort();
|
|
1567
|
+
var updatedAxiosController = new AbortController();
|
|
1568
|
+
axiosController.current = updatedAxiosController;
|
|
1569
|
+
signal = updatedAxiosController === null || updatedAxiosController === void 0 ? void 0 : updatedAxiosController.signal;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
postWidget.EntityId = !isNullOrUndefinedOrEmpty(postWidget.RelatedToEntityId) ? postWidget.RelatedToEntityId : postWidget.EntityId;
|
|
1573
|
+
dashboardAnalyticsService.getData(postWidget, signal).then(function (result) {
|
|
1498
1574
|
handleData(result === null || result === void 0 ? void 0 : result.data);
|
|
1499
1575
|
chartData.current = result === null || result === void 0 ? void 0 : result.data;
|
|
1576
|
+
setDataLoaded(true);
|
|
1500
1577
|
}, function (error) {
|
|
1501
1578
|
var _error$response, _error$response$data, _error$response2, _error$response2$data;
|
|
1502
1579
|
|
|
@@ -1520,6 +1597,10 @@ var FusionChart = forwardRef(function (props, comRef) {
|
|
|
1520
1597
|
|
|
1521
1598
|
if (!isDummyChange) {
|
|
1522
1599
|
setDataLoaded(true);
|
|
1600
|
+
} else {
|
|
1601
|
+
setTimeout(function () {
|
|
1602
|
+
isDummyChangesActive.current = false;
|
|
1603
|
+
}, 100);
|
|
1523
1604
|
}
|
|
1524
1605
|
};
|
|
1525
1606
|
|
|
@@ -1547,6 +1628,46 @@ var FusionChart = forwardRef(function (props, comRef) {
|
|
|
1547
1628
|
setFchart(chart);
|
|
1548
1629
|
};
|
|
1549
1630
|
|
|
1631
|
+
var handlePieDonutChartTooltip = function handlePieDonutChartTooltip(chartData) {
|
|
1632
|
+
if (chartData && chartData.data && chartData.data.length) {
|
|
1633
|
+
chartData.data.forEach(function (item, index) {
|
|
1634
|
+
var color = getPlotColorByIndexOrder(index);
|
|
1635
|
+
item.tooltext = item.tooltext.replaceAll("transparent", color);
|
|
1636
|
+
});
|
|
1637
|
+
setArgs(_extends({}, args, {
|
|
1638
|
+
dataSource: chartData
|
|
1639
|
+
}));
|
|
1640
|
+
}
|
|
1641
|
+
};
|
|
1642
|
+
|
|
1643
|
+
var handleOtherChartsTooltip = function handleOtherChartsTooltip(chartData) {
|
|
1644
|
+
if (chartData && chartData.dataset && chartData.dataset.length) {
|
|
1645
|
+
chartData.dataset.forEach(function (el, index) {
|
|
1646
|
+
el.data.forEach(function (item) {
|
|
1647
|
+
var color = getPlotColorByIndexOrder(index);
|
|
1648
|
+
item.tooltext = item.tooltext.replaceAll("transparent", color);
|
|
1649
|
+
});
|
|
1650
|
+
});
|
|
1651
|
+
setArgs(_extends({}, args, {
|
|
1652
|
+
dataSource: chartData
|
|
1653
|
+
}));
|
|
1654
|
+
}
|
|
1655
|
+
};
|
|
1656
|
+
|
|
1657
|
+
var loaded = function loaded(event) {
|
|
1658
|
+
var _widget$current6, _widget$current7;
|
|
1659
|
+
|
|
1660
|
+
if (isDummyChangesActive && isDummyChangesActive.current) return;
|
|
1661
|
+
var chartData = event.sender.args && event.sender.args.dataSource ? event.sender.args.dataSource : null;
|
|
1662
|
+
var isPieOrDonutChart = ((_widget$current6 = widget.current) === null || _widget$current6 === void 0 ? void 0 : _widget$current6.TypeCode) == 'pie' || ((_widget$current7 = widget.current) === null || _widget$current7 === void 0 ? void 0 : _widget$current7.TypeCode) == 'donut';
|
|
1663
|
+
|
|
1664
|
+
if (isPieOrDonutChart) {
|
|
1665
|
+
handlePieDonutChartTooltip(chartData);
|
|
1666
|
+
} else {
|
|
1667
|
+
handleOtherChartsTooltip(chartData);
|
|
1668
|
+
}
|
|
1669
|
+
};
|
|
1670
|
+
|
|
1550
1671
|
return !dataLoaded ? React__default.createElement("div", {
|
|
1551
1672
|
ref: progressRef,
|
|
1552
1673
|
className: 'dl-full-hight dl-flex-content-center spinner-custome'
|
|
@@ -1561,12 +1682,13 @@ var FusionChart = forwardRef(function (props, comRef) {
|
|
|
1561
1682
|
className: 'db-fc-parent-container',
|
|
1562
1683
|
ref: fusionRef
|
|
1563
1684
|
}, React__default.createElement("div", {
|
|
1564
|
-
key: fusionKey,
|
|
1565
1685
|
className: 'db-fc-container',
|
|
1686
|
+
key: fusionKey,
|
|
1566
1687
|
ref: ref,
|
|
1567
|
-
id:
|
|
1688
|
+
id: chartContainerId
|
|
1568
1689
|
}, React__default.createElement(ReactFC, Object.assign({}, args, {
|
|
1569
1690
|
"fcEvent-dataplotClick": dataplotClick,
|
|
1691
|
+
"fcEvent-loaded": loaded,
|
|
1570
1692
|
onRender: renderComplete
|
|
1571
1693
|
})))) : React__default.createElement("div", {
|
|
1572
1694
|
className: "dl-flex-content-center dl-full-hight",
|