logitude-dashboard-library 1.4.5 → 1.4.7
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/assets/fonts/manrope-bold.woff +0 -0
- package/dist/assets/fonts/manrope-light.woff +0 -0
- package/dist/assets/fonts/manrope-medium.woff +0 -0
- package/dist/assets/fonts/manrope-regular.woff +0 -0
- package/dist/assets/fonts/manrope-semibold.woff +0 -0
- package/dist/assets/fonts/manrope-thin.woff +0 -0
- package/dist/assets/styles/dl-dashboard.scss +56 -17
- package/dist/features/Dashboard/ChartsComponents/FusionChartDataSoruceBuilder.d.ts +4 -0
- package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionChart.d.ts +11 -0
- package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionChartDataSoruceBuilder.d.ts +4 -0
- package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectBuilder.d.ts +41 -0
- package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionColors.d.ts +18 -0
- package/dist/index.js +213 -110
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +213 -110
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@import url('https://fonts.
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600;700;800&display=swap');
|
|
2
2
|
|
|
3
3
|
$blue: #2C99F7;
|
|
4
4
|
$bg-color: #ffffff;
|
|
@@ -311,7 +311,7 @@ $dark-grey: #717585;
|
|
|
311
311
|
h1 {
|
|
312
312
|
text-transform: capitalize;
|
|
313
313
|
font-size: 15px;
|
|
314
|
-
font-family: 'Manrope';
|
|
314
|
+
font-family: 'Manrope', sans-serif;
|
|
315
315
|
font-style: normal;
|
|
316
316
|
color: #292D30;
|
|
317
317
|
margin-top: 0;
|
|
@@ -332,11 +332,6 @@ $dark-grey: #717585;
|
|
|
332
332
|
position: absolute;
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
335
|
.dl-grid--bordered>div {
|
|
341
336
|
background-color: #ECECEC;
|
|
342
337
|
}
|
|
@@ -442,14 +437,14 @@ $dark-grey: #717585;
|
|
|
442
437
|
|
|
443
438
|
|
|
444
439
|
.kpIcontainer {
|
|
440
|
+
width: 100%;
|
|
445
441
|
height: 100%;
|
|
446
|
-
flex-direction:
|
|
442
|
+
flex-direction: row;
|
|
447
443
|
box-sizing: border-box;
|
|
448
|
-
display:
|
|
449
|
-
place-content: center;
|
|
450
|
-
align-items: center;
|
|
444
|
+
display: inline-block;
|
|
451
445
|
gap: 20px;
|
|
452
446
|
cursor: pointer;
|
|
447
|
+
|
|
453
448
|
}
|
|
454
449
|
|
|
455
450
|
.kpIHeader {
|
|
@@ -481,15 +476,15 @@ $dark-grey: #717585;
|
|
|
481
476
|
}
|
|
482
477
|
|
|
483
478
|
.dl-kpi-arrow-up {
|
|
484
|
-
border-left:
|
|
485
|
-
border-right:
|
|
486
|
-
border-bottom:
|
|
479
|
+
border-left: 5px solid transparent;
|
|
480
|
+
border-right: 5px solid transparent;
|
|
481
|
+
border-bottom: 4px solid #4AC76F;
|
|
487
482
|
}
|
|
488
483
|
|
|
489
484
|
.dl-kpi-arrow-down {
|
|
490
|
-
border-left:
|
|
491
|
-
border-right:
|
|
492
|
-
border-top:
|
|
485
|
+
border-left: 5px solid transparent;
|
|
486
|
+
border-right: 5px solid transparent;
|
|
487
|
+
border-top: 4px solid red;
|
|
493
488
|
}
|
|
494
489
|
|
|
495
490
|
.dl-kpi-same-line {
|
|
@@ -499,4 +494,48 @@ $dark-grey: #717585;
|
|
|
499
494
|
|
|
500
495
|
.dl-kpi-margin {
|
|
501
496
|
margin-right: 4px;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
.dl-kpi-value{
|
|
500
|
+
height: 31px;
|
|
501
|
+
|
|
502
|
+
font-family: 'Manrope';
|
|
503
|
+
font-style: normal;
|
|
504
|
+
font-weight: 700;
|
|
505
|
+
font-size: 26px;
|
|
506
|
+
line-height: 120%;
|
|
507
|
+
color: #292D30;
|
|
508
|
+
padding-left: 12px;
|
|
509
|
+
|
|
510
|
+
}
|
|
511
|
+
.dl-kpi-unit {
|
|
512
|
+
font-family: 'Manrope';
|
|
513
|
+
font-style: normal;
|
|
514
|
+
font-weight: 600;
|
|
515
|
+
font-size: 20px;
|
|
516
|
+
line-height: 125%;
|
|
517
|
+
color: #292D30;
|
|
518
|
+
padding-left: 4px;
|
|
519
|
+
padding-top: 5px;
|
|
520
|
+
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
.dl-kpi-ratio {
|
|
524
|
+
height: 15px;
|
|
525
|
+
font-family: 'Manrope';
|
|
526
|
+
font-style: normal;
|
|
527
|
+
font-weight: 500;
|
|
528
|
+
font-size: 11px;
|
|
529
|
+
line-height: 15px;
|
|
530
|
+
text-align: right;
|
|
531
|
+
|
|
532
|
+
color: #A4A4A4;
|
|
533
|
+
padding-left: 15px;
|
|
534
|
+
padding-top: 12px;
|
|
535
|
+
padding-right: 10px;
|
|
536
|
+
}
|
|
537
|
+
.dl-kpi-textTrimming {
|
|
538
|
+
overflow: hidden;
|
|
539
|
+
white-space: nowrap;
|
|
540
|
+
text-overflow: ellipsis;
|
|
502
541
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SeriesMeasure } from "../../../types/SeriesMeasure";
|
|
2
|
+
import { ChartInfo } from "./FusionChartObjectBuilder";
|
|
3
|
+
export declare function getCategoriesBasedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[]): any;
|
|
4
|
+
export declare function getSimpleDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[]): any;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DashboardDataBinding } from "../../../../types/DashboardDataBinding";
|
|
2
|
+
import { DataPointSelection } from "../../../../types/SeriesMeasure";
|
|
3
|
+
import { ReactWidgetPM } from "../../../../types/widget";
|
|
4
|
+
export declare type FusionChartProps = {
|
|
5
|
+
widget: ReactWidgetPM | undefined;
|
|
6
|
+
widgetRef: ReactWidgetPM | undefined;
|
|
7
|
+
dataBinding: DashboardDataBinding;
|
|
8
|
+
onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;
|
|
9
|
+
};
|
|
10
|
+
declare const FusionChart: (props: FusionChartProps) => JSX.Element;
|
|
11
|
+
export default FusionChart;
|
package/dist/features/Dashboard/ChartsComponents/FusionCharts/FusionChartDataSoruceBuilder.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SeriesMeasure } from "../../../../types/SeriesMeasure";
|
|
2
|
+
import { ChartInfo } from "./FusionChartObjectBuilder";
|
|
3
|
+
export declare function getCategoriesBasedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[]): any;
|
|
4
|
+
export declare function getSimpleDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[]): any;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChartObject } from "fusioncharts";
|
|
2
|
+
import { SeriesMeasure } from "../../../../types/SeriesMeasure";
|
|
3
|
+
import { ReactWidgetPM } from "../../../../types/widget";
|
|
4
|
+
export declare function BuildFusionChartObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject;
|
|
5
|
+
export interface ChartInfo {
|
|
6
|
+
theme: string;
|
|
7
|
+
scrollHeight: string;
|
|
8
|
+
scrollWidth: string;
|
|
9
|
+
scrollPadding: string;
|
|
10
|
+
flatScrollBars: string;
|
|
11
|
+
enableSlicing: string;
|
|
12
|
+
chartLeftMargin: string;
|
|
13
|
+
chartTopMargin: string;
|
|
14
|
+
chartRightMargin: string;
|
|
15
|
+
chartBottomMargin: string;
|
|
16
|
+
baseFont: string;
|
|
17
|
+
baseFontSize: string;
|
|
18
|
+
showPercentValues: string;
|
|
19
|
+
showValues: string;
|
|
20
|
+
showLegend: string;
|
|
21
|
+
lineColor: string;
|
|
22
|
+
vDivLineDashed: string;
|
|
23
|
+
vDivLineDashLen: string;
|
|
24
|
+
divLineDashed: string;
|
|
25
|
+
divLineDashLen: string;
|
|
26
|
+
enableRotation: string;
|
|
27
|
+
legendItemFont: string;
|
|
28
|
+
legendItemFontSize: string;
|
|
29
|
+
legendCaptionFont: string;
|
|
30
|
+
legendCaptionFontSize: string;
|
|
31
|
+
labelFont: string;
|
|
32
|
+
labelFontSize: string;
|
|
33
|
+
toolTipBorderColor: string;
|
|
34
|
+
toolTipBgAlpha: string;
|
|
35
|
+
showToolTipShadow: string;
|
|
36
|
+
toolTipBgColor: string;
|
|
37
|
+
plottooltext: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function getTooltip(widget: ReactWidgetPM): string;
|
|
40
|
+
export declare function getTooltipPercentage(widget: ReactWidgetPM): string;
|
|
41
|
+
export declare function getSeriesPositionColor(position: number): string | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const mainYellowColor = "#F6CF33";
|
|
2
|
+
export declare const mainRedColor = "#EE5F77";
|
|
3
|
+
export declare const mainGreenColor = "#4AC76F";
|
|
4
|
+
export declare const mainTurquoiseColor = "#32C7C7";
|
|
5
|
+
export declare const mainBlueColor = "#369CFB";
|
|
6
|
+
export declare const mainPurpleColor = "#935BE0";
|
|
7
|
+
export declare const mainOrangeColor = "#FAAD14";
|
|
8
|
+
export declare const lightYellowColor = "#FBE799";
|
|
9
|
+
export declare const lightRedColor = "#F7AFBB";
|
|
10
|
+
export declare const lightGreenColor = "#A4E3B7";
|
|
11
|
+
export declare const lightTurquoiseColor = "#99E3E3";
|
|
12
|
+
export declare const lightBlueColor = "#9BCDFD";
|
|
13
|
+
export declare const lightPurpleColor = "#C9ADF0";
|
|
14
|
+
export declare const lightOrangeColor = "#FDD689";
|
|
15
|
+
export declare const grey1Color = "#F6F6F6";
|
|
16
|
+
export declare const grey2Color = "#F0F0F0";
|
|
17
|
+
export declare const grey3Color = "#D9D9D9";
|
|
18
|
+
export declare const grey4Color = "#A4A4A4";
|
package/dist/index.js
CHANGED
|
@@ -7,12 +7,12 @@ var button = require('primereact/button');
|
|
|
7
7
|
var overlaypanel = require('primereact/overlaypanel');
|
|
8
8
|
var progressspinner = require('primereact/progressspinner');
|
|
9
9
|
var axios = _interopDefault(require('axios'));
|
|
10
|
+
var tooltip = require('primereact/tooltip');
|
|
10
11
|
var ReactFC = _interopDefault(require('react-fusioncharts'));
|
|
11
12
|
var FusionCharts = _interopDefault(require('fusioncharts'));
|
|
12
13
|
var Charts = _interopDefault(require('fusioncharts/fusioncharts.charts'));
|
|
13
14
|
var FusionTheme = _interopDefault(require('fusioncharts/themes/fusioncharts.theme.fusion'));
|
|
14
15
|
var useResizeObserver = _interopDefault(require('use-resize-observer'));
|
|
15
|
-
var tooltip = require('primereact/tooltip');
|
|
16
16
|
|
|
17
17
|
function _extends() {
|
|
18
18
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -202,8 +202,6 @@ var DashboardAnalyticsService = /*#__PURE__*/function () {
|
|
|
202
202
|
}();
|
|
203
203
|
|
|
204
204
|
var KpiChart = function KpiChart(props) {
|
|
205
|
-
var _widget$current7;
|
|
206
|
-
|
|
207
205
|
var _useState = React.useState(false),
|
|
208
206
|
dataLoaded = _useState[0],
|
|
209
207
|
setDataLoaded = _useState[1];
|
|
@@ -227,10 +225,7 @@ var KpiChart = function KpiChart(props) {
|
|
|
227
225
|
setCheckValuesValidity = _useState5[1];
|
|
228
226
|
|
|
229
227
|
var _useState6 = React.useState(false),
|
|
230
|
-
checkVisibleUnit = _useState6[0],
|
|
231
228
|
setVisibilityUnit = _useState6[1];
|
|
232
|
-
|
|
233
|
-
var prev = "";
|
|
234
229
|
React.useEffect(function () {
|
|
235
230
|
widget.current = props.customChartProps.widget;
|
|
236
231
|
setDataLoaded(false);
|
|
@@ -289,7 +284,7 @@ var KpiChart = function KpiChart(props) {
|
|
|
289
284
|
|
|
290
285
|
setCheckValuesValidity(false);
|
|
291
286
|
if (!(widget !== null && widget !== void 0 && (_widget$current4 = widget.current) !== null && _widget$current4 !== void 0 && _widget$current4.TimeOverTime)) return;
|
|
292
|
-
if (widget !== null && widget !== void 0 && (_widget$current5 = widget.current) !== null && _widget$current5 !== void 0 && _widget$current5.TimeOverTime && (data === null || data === void 0 ? void 0 : data.ComparisonValue)
|
|
287
|
+
if (widget !== null && widget !== void 0 && (_widget$current5 = widget.current) !== null && _widget$current5 !== void 0 && _widget$current5.TimeOverTime && ((data === null || data === void 0 ? void 0 : data.ComparisonValue) === 0 || (data === null || data === void 0 ? void 0 : data.ComparisonValue) === null) && ((data === null || data === void 0 ? void 0 : data.Value) === 0 || (data === null || data === void 0 ? void 0 : data.Value) === null)) return;
|
|
293
288
|
setCheckValuesValidity(true);
|
|
294
289
|
};
|
|
295
290
|
|
|
@@ -297,7 +292,7 @@ var KpiChart = function KpiChart(props) {
|
|
|
297
292
|
var _widget$current6;
|
|
298
293
|
|
|
299
294
|
setVisibilityUnit(false);
|
|
300
|
-
if (!(widget !== null && widget !== void 0 && (_widget$current6 = widget.current) !== null && _widget$current6 !== void 0 && _widget$current6.TimeOverTime) || (data === null || data === void 0 ? void 0 : data.ComparisonValue) == 0) return;
|
|
295
|
+
if (!(widget !== null && widget !== void 0 && (_widget$current6 = widget.current) !== null && _widget$current6 !== void 0 && _widget$current6.TimeOverTime) || (data === null || data === void 0 ? void 0 : data.ComparisonValue) == 0 || (data === null || data === void 0 ? void 0 : data.ComparisonValue) === null) return;
|
|
301
296
|
setVisibilityUnit(true);
|
|
302
297
|
};
|
|
303
298
|
|
|
@@ -316,18 +311,14 @@ var KpiChart = function KpiChart(props) {
|
|
|
316
311
|
}, React__default.createElement("div", {
|
|
317
312
|
className: "dl-kpi-same-line"
|
|
318
313
|
}, React__default.createElement("div", {
|
|
319
|
-
className: "dl-kpi-
|
|
320
|
-
}, data === null || data === void 0 ? void 0 : data.Value
|
|
321
|
-
className: "dl-kpi-
|
|
322
|
-
}, React__default.createElement("div", {
|
|
323
|
-
className: "dl-kpi-
|
|
324
|
-
}, arrowColorDirection), React__default.createElement("div", null, data === null || data === void 0 ? void 0 : data.Ratio)) : null, widget !== null && widget !== void 0 && (_widget$current7 = widget.current) !== null && _widget$current7 !== void 0 && _widget$current7.TimeOverTime ? React__default.createElement("div", {
|
|
325
|
-
className: "dl-kpi-same-line"
|
|
314
|
+
className: "dl-kpi-value dl-kpi-textTrimming"
|
|
315
|
+
}, data === null || data === void 0 ? void 0 : data.Value), React__default.createElement("div", {
|
|
316
|
+
className: "dl-kpi-unit"
|
|
317
|
+
}, (data === null || data === void 0 ? void 0 : data.Value) != 0 && (data === null || data === void 0 ? void 0 : data.Unit)), checkValuesValidity ? React__default.createElement("div", {
|
|
318
|
+
className: "dl-kpi-same-line dl-kpi-ratio"
|
|
326
319
|
}, React__default.createElement("div", {
|
|
327
320
|
className: "dl-kpi-margin"
|
|
328
|
-
},
|
|
329
|
-
className: "dl-kpi-margin"
|
|
330
|
-
}, data === null || data === void 0 ? void 0 : data.ComparisonValue), React__default.createElement("div", null, checkVisibleUnit && (data === null || data === void 0 ? void 0 : data.Unit))) : null) : React__default.createElement("div", {
|
|
321
|
+
}, arrowColorDirection), React__default.createElement("div", null, data === null || data === void 0 ? void 0 : data.Ratio, " %")) : null)) : React__default.createElement("div", {
|
|
331
322
|
className: "dl-flex-content-center dl-full-hight "
|
|
332
323
|
}, React__default.createElement("div", {
|
|
333
324
|
className: "dl-tooltip"
|
|
@@ -361,95 +352,18 @@ var CustomChart = function CustomChart(props) {
|
|
|
361
352
|
}, project());
|
|
362
353
|
};
|
|
363
354
|
|
|
364
|
-
function
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
return getBarObject(seriesMeasures, defaultChart);
|
|
371
|
-
|
|
372
|
-
case 'line':
|
|
373
|
-
return getLineObject(seriesMeasures, defaultChart);
|
|
374
|
-
|
|
375
|
-
case 'pie':
|
|
376
|
-
return getPieObject(seriesMeasures, defaultChart);
|
|
377
|
-
|
|
378
|
-
case 'donut':
|
|
379
|
-
return getDonutObject(seriesMeasures, defaultChart);
|
|
380
|
-
|
|
381
|
-
default:
|
|
382
|
-
return defaultChart;
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
function handelNullLabels(seriesMeasures) {
|
|
387
|
-
seriesMeasures.forEach(function (element) {
|
|
388
|
-
element.SeriesMeasureVulues.forEach(function (value) {
|
|
389
|
-
if (!value.Label || value.Label == '') value.Label = 'Not defined';
|
|
390
|
-
});
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
function getBarObject(seriesMeasures, chart) {
|
|
395
|
-
chart.type = "scrollbar2d";
|
|
396
|
-
return chart;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
function getLineObject(seriesMeasures, chart) {
|
|
400
|
-
chart.type = "scrollline2d";
|
|
401
|
-
return chart;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
function getDonutObject(seriesMeasures, chart) {
|
|
405
|
-
chart.type = "doughnut2d";
|
|
406
|
-
return chart;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
function getPieObject(seriesMeasures, chart) {
|
|
410
|
-
chart.type = "pie2d";
|
|
411
|
-
return chart;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
function getDefaultChartobject(seriesMeasures, widget) {
|
|
415
|
-
var chart = {};
|
|
416
|
-
chart.type = "column2d";
|
|
417
|
-
chart.width = "100%";
|
|
418
|
-
chart.height = "100%";
|
|
419
|
-
chart.dataFormat = "json";
|
|
420
|
-
buildChartDataSource(chart, widget, seriesMeasures);
|
|
421
|
-
return chart;
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
function buildChartDataSource(chart, widget, seriesMeasures) {
|
|
425
|
-
if (!seriesMeasures || !seriesMeasures[0]) return;
|
|
426
|
-
var chartinfo = {
|
|
427
|
-
theme: "fusion",
|
|
428
|
-
scrollHeight: "5",
|
|
429
|
-
scrollWidth: "5",
|
|
430
|
-
scrollPadding: "8",
|
|
431
|
-
flatScrollBars: "1",
|
|
432
|
-
enableSlicing: "0",
|
|
433
|
-
chartLeftMargin: "20",
|
|
434
|
-
chartTopMargin: "20",
|
|
435
|
-
chartRightMargin: "20",
|
|
436
|
-
chartBottomMargin: "20",
|
|
437
|
-
showPercentValues: (widget === null || widget === void 0 ? void 0 : widget.TypeCode) == "donut" || (widget === null || widget === void 0 ? void 0 : widget.TypeCode) == "pie" ? "0" : "1",
|
|
438
|
-
showValues: (widget === null || widget === void 0 ? void 0 : widget.TypeCode) == "donut" || (widget === null || widget === void 0 ? void 0 : widget.TypeCode) == "pie" ? "0" : "1",
|
|
439
|
-
showLegend: ((widget === null || widget === void 0 ? void 0 : widget.TypeCode) == "bar" || (widget === null || widget === void 0 ? void 0 : widget.TypeCode) == "line") && (seriesMeasures === null || seriesMeasures === void 0 ? void 0 : seriesMeasures.length) > 1 ? "1" : "0"
|
|
355
|
+
function getCategoriesBasedDataSource(chartInfo, seriesMeasures) {
|
|
356
|
+
if (!seriesMeasures || !seriesMeasures[0]) return {};
|
|
357
|
+
return {
|
|
358
|
+
chart: chartInfo,
|
|
359
|
+
categories: buildCategories(seriesMeasures),
|
|
360
|
+
dataset: buildDataSet(seriesMeasures)
|
|
440
361
|
};
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
dataset: buildDataSet(seriesMeasures)
|
|
447
|
-
};
|
|
448
|
-
return;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
chart.dataSource = {
|
|
452
|
-
chart: chartinfo,
|
|
362
|
+
}
|
|
363
|
+
function getSimpleDataSource(chartInfo, seriesMeasures) {
|
|
364
|
+
if (!seriesMeasures || !seriesMeasures[0]) return {};
|
|
365
|
+
return {
|
|
366
|
+
chart: chartInfo,
|
|
453
367
|
data: buildDataSource(seriesMeasures)
|
|
454
368
|
};
|
|
455
369
|
}
|
|
@@ -457,16 +371,17 @@ function buildChartDataSource(chart, widget, seriesMeasures) {
|
|
|
457
371
|
function buildDataSource(values) {
|
|
458
372
|
var data = [];
|
|
459
373
|
if (!values || !values[0]) return data;
|
|
460
|
-
data = values[0].SeriesMeasureVulues.map(function (e) {
|
|
461
|
-
|
|
374
|
+
data = values[0].SeriesMeasureVulues.map(function (e, index) {
|
|
375
|
+
var item = {
|
|
462
376
|
value: e.Value,
|
|
463
377
|
label: getTrimedLabelText(e.Label),
|
|
464
378
|
id: {
|
|
465
379
|
GroupById: e.GroupById,
|
|
466
380
|
MeasureFieldId: values[0].MeasureFieldId
|
|
467
381
|
},
|
|
468
|
-
|
|
382
|
+
color: getSeriesPositionColor(index + 1)
|
|
469
383
|
};
|
|
384
|
+
return item;
|
|
470
385
|
});
|
|
471
386
|
return data;
|
|
472
387
|
}
|
|
@@ -478,6 +393,7 @@ function getTrimedLabelText(label) {
|
|
|
478
393
|
|
|
479
394
|
function buildDataSet(seriesMeasures) {
|
|
480
395
|
var dataSet = [];
|
|
396
|
+
var seriesPosition = 1;
|
|
481
397
|
seriesMeasures.forEach(function (seriesMeasure) {
|
|
482
398
|
var datas = seriesMeasure.SeriesMeasureVulues.map(function (e) {
|
|
483
399
|
return {
|
|
@@ -490,8 +406,10 @@ function buildDataSet(seriesMeasures) {
|
|
|
490
406
|
});
|
|
491
407
|
dataSet.push({
|
|
492
408
|
data: datas,
|
|
493
|
-
seriesname: seriesMeasure.Name
|
|
409
|
+
seriesname: seriesMeasure.Name,
|
|
410
|
+
color: getSeriesPositionColor(seriesPosition)
|
|
494
411
|
});
|
|
412
|
+
seriesPosition++;
|
|
495
413
|
});
|
|
496
414
|
return dataSet;
|
|
497
415
|
}
|
|
@@ -509,6 +427,191 @@ function buildCategories(seriesMeasures) {
|
|
|
509
427
|
return result;
|
|
510
428
|
}
|
|
511
429
|
|
|
430
|
+
var mainYellowColor = "#F6CF33";
|
|
431
|
+
var mainRedColor = "#EE5F77";
|
|
432
|
+
var mainGreenColor = "#4AC76F";
|
|
433
|
+
var mainTurquoiseColor = "#32C7C7";
|
|
434
|
+
var mainBlueColor = "#369CFB";
|
|
435
|
+
var mainPurpleColor = "#935BE0";
|
|
436
|
+
var mainOrangeColor = "#FAAD14";
|
|
437
|
+
|
|
438
|
+
var defautFontSize = "11";
|
|
439
|
+
var defautFont = "Manrope";
|
|
440
|
+
function BuildFusionChartObject(seriesMeasures, widget) {
|
|
441
|
+
handelNullLabels(seriesMeasures);
|
|
442
|
+
|
|
443
|
+
switch (widget === null || widget === void 0 ? void 0 : widget.TypeCode) {
|
|
444
|
+
case 'bar':
|
|
445
|
+
return getBarObject(seriesMeasures, widget);
|
|
446
|
+
|
|
447
|
+
case 'line':
|
|
448
|
+
return getLineObject(seriesMeasures, widget);
|
|
449
|
+
|
|
450
|
+
case 'pie':
|
|
451
|
+
return getPieObject(seriesMeasures, widget);
|
|
452
|
+
|
|
453
|
+
case 'donut':
|
|
454
|
+
return getDonutObject(seriesMeasures, widget);
|
|
455
|
+
|
|
456
|
+
case 'column':
|
|
457
|
+
return getColumnObject(seriesMeasures, widget);
|
|
458
|
+
|
|
459
|
+
default:
|
|
460
|
+
return {};
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
function handelNullLabels(seriesMeasures) {
|
|
465
|
+
seriesMeasures.forEach(function (element) {
|
|
466
|
+
element.SeriesMeasureVulues.forEach(function (value) {
|
|
467
|
+
if (!value.Label || value.Label == '') value.Label = 'Not defined';
|
|
468
|
+
});
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
function getBarObject(seriesMeasures, widget) {
|
|
473
|
+
var chart = getDefaultChartobject();
|
|
474
|
+
chart.type = "scrollbar2d";
|
|
475
|
+
var chartInfo = getDefaultChartInfo(widget);
|
|
476
|
+
chartInfo.scrollHeight = "5";
|
|
477
|
+
chartInfo.scrollWidth = "5";
|
|
478
|
+
chartInfo.scrollPadding = "8";
|
|
479
|
+
chartInfo.flatScrollBars = "1";
|
|
480
|
+
chartInfo.showPercentValues = "1";
|
|
481
|
+
chartInfo.showLegend = (seriesMeasures === null || seriesMeasures === void 0 ? void 0 : seriesMeasures.length) > 1 ? "1" : "0";
|
|
482
|
+
chartInfo.legendItemFont = defautFont;
|
|
483
|
+
chartInfo.legendItemFontSize = defautFontSize;
|
|
484
|
+
chartInfo.divLineDashed = "1";
|
|
485
|
+
chartInfo.divLineDashLen = "7";
|
|
486
|
+
chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures);
|
|
487
|
+
return chart;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
function getLineObject(seriesMeasures, widget) {
|
|
491
|
+
var chart = getDefaultChartobject();
|
|
492
|
+
chart.type = "msspline";
|
|
493
|
+
var chartInfo = getDefaultChartInfo(widget);
|
|
494
|
+
chartInfo.scrollHeight = "5";
|
|
495
|
+
chartInfo.scrollWidth = "5";
|
|
496
|
+
chartInfo.scrollPadding = "8";
|
|
497
|
+
chartInfo.flatScrollBars = "1";
|
|
498
|
+
chartInfo.showPercentValues = "1";
|
|
499
|
+
chartInfo.showLegend = (seriesMeasures === null || seriesMeasures === void 0 ? void 0 : seriesMeasures.length) > 1 ? "1" : "0";
|
|
500
|
+
chartInfo.legendItemFont = defautFont;
|
|
501
|
+
chartInfo.legendItemFontSize = defautFontSize;
|
|
502
|
+
chartInfo.divLineDashed = "1";
|
|
503
|
+
chartInfo.divLineDashLen = "7";
|
|
504
|
+
chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures);
|
|
505
|
+
return chart;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
function getDonutObject(seriesMeasures, widget) {
|
|
509
|
+
var chart = getDefaultChartobject();
|
|
510
|
+
chart.type = "doughnut2d";
|
|
511
|
+
var chartInfo = getDefaultChartInfo(widget);
|
|
512
|
+
chartInfo.showPercentValues = "0";
|
|
513
|
+
chartInfo.showValues = "0";
|
|
514
|
+
chartInfo.showLegend = "0";
|
|
515
|
+
chartInfo.legendCaptionFontSize = defautFontSize;
|
|
516
|
+
chartInfo.legendCaptionFont = defautFont;
|
|
517
|
+
chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures);
|
|
518
|
+
return chart;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
function getPieObject(seriesMeasures, widget) {
|
|
522
|
+
var chart = getDefaultChartobject();
|
|
523
|
+
chart.type = "pie2d";
|
|
524
|
+
var chartInfo = getDefaultChartInfo(widget);
|
|
525
|
+
chartInfo.showPercentValues = "0";
|
|
526
|
+
chartInfo.showValues = "0";
|
|
527
|
+
chartInfo.showLegend = "0";
|
|
528
|
+
chartInfo.legendCaptionFontSize = defautFontSize;
|
|
529
|
+
chartInfo.legendCaptionFont = defautFont;
|
|
530
|
+
chartInfo.labelFontSize = defautFontSize;
|
|
531
|
+
chartInfo.labelFont = defautFont;
|
|
532
|
+
chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures);
|
|
533
|
+
return chart;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
function getColumnObject(seriesMeasures, widget) {
|
|
537
|
+
var chart = getDefaultChartobject();
|
|
538
|
+
chart.type = "scrollcolumn2d";
|
|
539
|
+
var chartInfo = getDefaultChartInfo(widget);
|
|
540
|
+
chartInfo.scrollHeight = "5";
|
|
541
|
+
chartInfo.scrollWidth = "5";
|
|
542
|
+
chartInfo.scrollPadding = "8";
|
|
543
|
+
chartInfo.flatScrollBars = "1";
|
|
544
|
+
chartInfo.showPercentValues = "1";
|
|
545
|
+
chartInfo.showLegend = (seriesMeasures === null || seriesMeasures === void 0 ? void 0 : seriesMeasures.length) > 1 ? "1" : "0";
|
|
546
|
+
chartInfo.legendItemFont = defautFont;
|
|
547
|
+
chartInfo.legendItemFontSize = defautFontSize;
|
|
548
|
+
chartInfo.divLineDashed = "1";
|
|
549
|
+
chartInfo.divLineDashLen = "7";
|
|
550
|
+
chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures);
|
|
551
|
+
return chart;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
function getDefaultChartobject() {
|
|
555
|
+
var chart = {};
|
|
556
|
+
chart.type = "column2d";
|
|
557
|
+
chart.width = "100%";
|
|
558
|
+
chart.height = "100%";
|
|
559
|
+
chart.dataFormat = "json";
|
|
560
|
+
return chart;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
function getDefaultChartInfo(widget) {
|
|
564
|
+
var chart = {};
|
|
565
|
+
chart.theme = "fusion";
|
|
566
|
+
chart.baseFont = defautFont;
|
|
567
|
+
chart.baseFontSize = defautFontSize;
|
|
568
|
+
chart.enableSlicing = "0";
|
|
569
|
+
chart.enableRotation = "0";
|
|
570
|
+
chart.chartLeftMargin = "20";
|
|
571
|
+
chart.chartTopMargin = "20";
|
|
572
|
+
chart.chartRightMargin = "20";
|
|
573
|
+
chart.chartBottomMargin = "20";
|
|
574
|
+
chart.toolTipBgColor = "#FFFFFF";
|
|
575
|
+
chart.showToolTipShadow = "1";
|
|
576
|
+
chart.plottooltext = getTooltip(widget);
|
|
577
|
+
return chart;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
function getTooltip(widget) {
|
|
581
|
+
return "\n <div style=\"min-width: 108px;\">\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\n <span style=\"margin: 0; height: 10px; width: 10px; background-color: #369CFB; border-radius: 50%; display: inline-block;\"></span>\n <p style=\" margin: 0; margin-left: 4px;font-family: 'Manrope'; font-style: normal;font-weight: 400; font-size: 11px; line-height: 100%; color: #323232; flex: none; order: 1;flex-grow: 0;\">$label</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';font-style: normal;font-weight: 400; font-size: 11px;line-height: 100%;color: #A4A4A4;flex: none;order: 0;flex-grow: 0;\">Count:</p>\n <p style=\"margin: 0;margin-left: 6px;font-family: 'Manrope';font-style: normal;font-weight: 500;font-size: 11px;line-height: 100%; color: #323232;flex: none; order: 1;flex-grow: 0;\">$dataValue</p>\n " + getTooltipPercentage(widget) + " </div>\n </div>\n ";
|
|
582
|
+
}
|
|
583
|
+
function getTooltipPercentage(widget) {
|
|
584
|
+
if (widget.TypeCode != "donut" && widget.TypeCode != "pie") return "";
|
|
585
|
+
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 ";
|
|
586
|
+
}
|
|
587
|
+
function getSeriesPositionColor(position) {
|
|
588
|
+
switch (position) {
|
|
589
|
+
case 1:
|
|
590
|
+
return mainBlueColor;
|
|
591
|
+
|
|
592
|
+
case 2:
|
|
593
|
+
return mainGreenColor;
|
|
594
|
+
|
|
595
|
+
case 3:
|
|
596
|
+
return mainYellowColor;
|
|
597
|
+
|
|
598
|
+
case 4:
|
|
599
|
+
return mainTurquoiseColor;
|
|
600
|
+
|
|
601
|
+
case 5:
|
|
602
|
+
return mainPurpleColor;
|
|
603
|
+
|
|
604
|
+
case 6:
|
|
605
|
+
return mainOrangeColor;
|
|
606
|
+
|
|
607
|
+
case 7:
|
|
608
|
+
return mainRedColor;
|
|
609
|
+
|
|
610
|
+
default:
|
|
611
|
+
return null;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
512
615
|
ReactFC.fcRoot(FusionCharts, Charts, FusionTheme);
|
|
513
616
|
FusionCharts.options['license']({
|
|
514
617
|
key: 'prD4C-8eiA7A3A3C7E6G4B4A3J4C7B2D3D2nyqE1C3fd1npaE4D4tlA-21D7E4F4F1F1E1F4F1A10A8C2C5F5E2F2D1hwqD1B5D1aG4A19A32twbC6D3G4lhJ-7A9C11A5B-13ddA2I3A1B9B3D7A2B4G2H3H1F-7smC8B2XB4cetB8A7A5mxD3SG4F2tvgB2A3B2E4C3I3C7B3A4A3A2D3D2G4J-7==',
|