logitude-dashboard-library 1.4.34 → 1.4.35

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/index.js CHANGED
@@ -204,7 +204,7 @@ var DashboardAnalyticsService = /*#__PURE__*/function () {
204
204
  }();
205
205
 
206
206
  var KpiChart = function KpiChart(props) {
207
- var _widget$current3;
207
+ var _widget$current3, _widget$current4;
208
208
 
209
209
  var _useState = React.useState(false),
210
210
  dataLoaded = _useState[0],
@@ -356,7 +356,7 @@ var KpiChart = function KpiChart(props) {
356
356
  }, React__default.createElement("div", {
357
357
  className: "dl-kpi-container",
358
358
  style: {
359
- marginTop: data !== null && data !== void 0 && data.CompareWithPrevious ? '7px' : '15.4px'
359
+ marginTop: ((_widget$current4 = widget.current) === null || _widget$current4 === void 0 ? void 0 : _widget$current4.Alighnment) != "Left" ? '0' : data !== null && data !== void 0 && data.CompareWithPrevious ? '7px' : '15.4px'
360
360
  }
361
361
  }, getValueComponent(), getPreviousValueComponent())) : React__default.createElement("div", {
362
362
  className: "dl-flex-content-center dl-full-hight",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/services/session.ts","../src/services/tools.ts","../src/services/ApiServices.ts","../src/services/DashboardAnalyticsService.ts","../src/features/Dashboard/ChartsComponents/CustomCharts/KpiChart.tsx","../src/features/Dashboard/ChartsComponents/CustomCharts/CustomChart.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionColors.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartTooltip.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartDataSoruceBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["export class Session {\r\n public static CurrentUserId: string;\r\n public static Tenant: number;\r\n public static Token: string;\r\n}","export class Tools {\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n\r\n public static Map(from: any, to: any) {\r\n if (!from)\r\n return;\r\n if (!to)\r\n to = {};\r\n var keys = Object.keys(from);\r\n for (const k of keys) {\r\n if(from[k]){\r\n to[k] = from[k];\r\n }\r\n }\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { APIResult } from \"../types/APIResult\";\r\nimport { Session } from \"./session\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class ApiServices{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getByFilters<T>(api,filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get<APIResult<T>>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n get<T>(api) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.get<T>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n post<T>(api,date){\r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.post<T>(apiURL,date, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getTokenFromStorage(){\r\n return Session.Token || '';\r\n }\r\n private ConcatFiltersToURL(filters: ApiQueryFilters, urlparameters: string)\r\n {\r\n var mykeys = Object.keys(filters);\r\n var addtionalFiltersValues: string | null = null;\r\n\r\n for (var i in mykeys) {\r\n var propName = mykeys[i];\r\n var propValue = filters[propName];\r\n var ignoreFilter = ((propName.indexOf(\"Operator\") > 0 && propValue == \"Equals\") || propName == \"AdditionalFilters\");\r\n\r\n if (urlparameters != \"?\") {\r\n urlparameters = urlparameters.concat('&');\r\n }\r\n\r\n if (!ignoreFilter) {\r\n propValue = propValue ? encodeURIComponent(propValue) : '';\r\n urlparameters = urlparameters.concat(propName.concat('=').concat(propValue));\r\n }\r\n\r\n if (propName == \"AdditionalFilters\" && propValue.length > 0) {\r\n addtionalFiltersValues = JSON.stringify(propValue);\r\n }\r\n }\r\n\r\n if (addtionalFiltersValues) {\r\n urlparameters = urlparameters.concat(\"&AdditionalFilters=\").concat(addtionalFiltersValues);\r\n }\r\n return urlparameters;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { ReactDashboardPM } from \"../types/Dashboard\";\r\nimport { SeriesMeasure } from \"../types/SeriesMeasure\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\nimport { ReactWidgetPM } from '../types/widget';\r\nimport { KpiChartData } from \"../types/KpiChart\";\r\n\r\n\r\nexport class DashboardAnalyticsService{ \r\n _ApiServices:ApiServices;\r\n controller = 'DashboardAnalytics';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<SeriesMeasure[]>(`/api/${this.controller}/PostGetDataAnalytic`,widget);\r\n }\r\n\r\n getKpiData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<KpiChartData>(`/api/${this.controller}/PostGetKpiData`,widget);\r\n }\r\n \r\n \r\n}","import { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { Session } from \"../../../../services/session\";\r\nimport { KpiChartData } from \"../../../../types/KpiChart\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { CustomChartProps } from \"./CustomChart\";\r\n\r\ntype KpiChartProps = {\r\n customChartProps: CustomChartProps;\r\n};\r\nconst KpiChart = (props: KpiChartProps) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n const widget = useRef<ReactWidgetPM>();\r\n const [data, setData] = useState<KpiChartData>();\r\n\r\n useEffect(() => {\r\n widget.current = props.customChartProps.widget;\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, [])\r\n\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n const emptyData = {} as KpiChartData;\r\n emptyData.Value = 0;\r\n setData(emptyData);\r\n setDataLoaded(true);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getKpiData(postWidget as ReactWidgetPM).then(result => {\r\n setData(result.data);\r\n setDataLoaded(true);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n\r\n })\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (widget?.current?.WidgetMeasures) measureFieldId = widget?.current?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: widget.current\r\n });\r\n }\r\n\r\n function getRatioComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n return (\r\n <div className={\"dl-kpi-ratio-container\"}>\r\n {getArrowComponent()}\r\n <div className={'dl-kpi-ratio-text'}>{data?.Ratio} %</div>\r\n </div>\r\n );\r\n }\r\n\r\n function getArrowComponent(): React.ReactNode {\r\n if (!data) return null;\r\n\r\n if (data?.Ratio == 0 || data.Value == data.ComparisonValue || ((data.Value == \"0\" || data.Value == 0) && (data.ComparisonValue == \"0\" || data.ComparisonValue == 0)))\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"} style={{ marginTop: \"2px\" }}></span>\r\n </div>\r\n );\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-green\"}></span>\r\n </div>\r\n )\r\n\r\n return null;\r\n }\r\n\r\n\r\n\r\n function getPreviousValueComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n var prevtext = !data?.ComparisonValue ? '' : data?.ComparisonValue;\r\n prevtext = \"Previous: \" + prevtext;\r\n\r\n return (\r\n <div className={\"dl-kpi-prev-container\"}>\r\n <div className={\"dl-kpi-prev-text\"}>{prevtext}</div>\r\n {data?.ComparisonAbbreviationSymbol && <div className=\"dl-kpi-prev-abbreviationSymbol\">{data?.ComparisonAbbreviationSymbol}</div>}\r\n </div>\r\n );\r\n }\r\n\r\n function getValueData(): React.ReactNode {\r\n if(data?.Value == null)\r\n return (<div className=\"dl-kpi-no-data\">No data to display.</div>); \r\n\r\n return (<div className=\"dl-kpi-value dl-kpi-textTrimming\">{data?.Value}</div>);\r\n \r\n }\r\n\r\n function getValueComponent(): React.ReactNode {\r\n return (\r\n <div className={\"dl-kpi-sub-container\"}>\r\n {getValueData()}\r\n {data?.AbbreviationSymbol && <div className=\"dl-kpi-abbreviationSymbol\">{data?.AbbreviationSymbol}</div>}\r\n {data?.Unit && <div className=\"dl-kpi-unit\">{data?.Unit}</div>}\r\n {getRatioComponent()}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n !dataLoaded ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div onClick={kpiClick} className={(widget.current?.Alighnment == \"Left\" ? \"dl-kpi-container-click\" : \"dl-kpi-container-click dl-kpi-center-container\")}>\r\n <div className={\"dl-kpi-container\"} style={{ marginTop: data?.CompareWithPrevious ? '7px' : '15.4px' }}>\r\n {getValueComponent()}\r\n {getPreviousValueComponent()}\r\n </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n\r\n </div>\r\n );\r\n}\r\n\r\n\r\nexport default KpiChart;","import React from \"react\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport KpiChart from \"./KpiChart\";\r\n\r\n\r\nexport type CustomChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst CustomChart = (props: CustomChartProps) => {\r\n const project = () => {\r\n switch (props.widget?.TypeCode) {\r\n case \"kpi\": return <KpiChart customChartProps={props} />;\r\n default: return <div>Invalid Type</div>;\r\n }\r\n }\r\n return (\r\n <div className=\"dl-custom-chart-container\">{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","export const mainYellowColor = \"#F6CF33\"\r\nexport const mainRedColor = \"#EE5F77\"\r\nexport const mainGreenColor = \"#4AC76F\"\r\nexport const mainTurquoiseColor = \"#32C7C7\"\r\nexport const mainBlueColor = \"#369CFB\"\r\nexport const mainPurpleColor = \"#935BE0\"\r\nexport const mainOrangeColor = \"#FAAD14\"\r\n\r\nexport const lightYellowColor = \"#FBE799\"\r\nexport const lightRedColor = \"#F7AFBB\"\r\nexport const lightGreenColor = \"#A4E3B7\"\r\nexport const lightTurquoiseColor = \"#99E3E3\"\r\nexport const lightBlueColor = \"#9BCDFD\"\r\nexport const lightPurpleColor = \"#C9ADF0\"\r\nexport const lightOrangeColor = \"#FDD689\"\r\n\r\nexport const grey1Color = \"#F6F6F6\"\r\nexport const grey2Color = \"#F0F0F0\"\r\nexport const grey3Color = \"#D9D9D9\"\r\nexport const grey4Color = \"#A4A4A4\"","import { lightBlueColor, lightGreenColor, lightOrangeColor, lightPurpleColor, lightRedColor, lightTurquoiseColor, lightYellowColor, mainBlueColor, mainGreenColor, mainOrangeColor, mainPurpleColor, mainRedColor, mainTurquoiseColor, mainYellowColor } from \"./FusionColors\";\r\n\r\nexport interface ChartInfo {\r\n theme: string;\r\n scrollHeight: string;\r\n scrollWidth: string;\r\n scrollPadding: string;\r\n flatScrollBars: string;\r\n enableSlicing: string;\r\n chartLeftMargin: string;\r\n chartTopMargin: string;\r\n chartRightMargin: string;\r\n chartBottomMargin: string;\r\n baseFont: string;\r\n baseFontSize: string;\r\n showPercentValues: string;\r\n showValues: string;\r\n showLegend: string;\r\n lineColor: string;\r\n divLineDashed: string;\r\n divLineDashLen: string;\r\n divLineDashGap: string;\r\n divLineColor: string;\r\n divLineThickness: string;\r\n divLineAlpha: string;\r\n enableRotation: string;\r\n legendItemFont: string;\r\n legendItemFontSize: string;\r\n legendCaptionFont: string;\r\n legendCaptionFontSize: string;\r\n labelFont: string;\r\n labelFontSize: string;\r\n toolTipBorderColor: string;\r\n toolTipBgAlpha: string;\r\n showToolTipShadow: string;\r\n toolTipBgColor: string;\r\n plottooltext: string;\r\n anchorradius: string;\r\n canvasBottomPadding: string;\r\n labelDisplay: string;\r\n slantLabel: string;\r\n manageLabelOverflow: string;\r\n useEllipsesWhenOverflow: string;\r\n enableSmartLabels: string;\r\n pieRadius: string;\r\n doughnutRadius: string;\r\n baseFontColor: string;\r\n legendCaptionFontColor: string;\r\n labelFontColor: string;\r\n}\r\n\r\n\r\nexport function getSeriesPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return mainBlueColor;\r\n case 2: return mainGreenColor;\r\n case 3: return mainYellowColor;\r\n case 4: return mainTurquoiseColor;\r\n case 5: return mainPurpleColor;\r\n case 6: return mainOrangeColor;\r\n case 7: return mainRedColor;\r\n default: return null;\r\n }\r\n}\r\n\r\nexport function getSeriesHoverPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return lightBlueColor;\r\n case 2: return lightGreenColor;\r\n case 3: return lightYellowColor;\r\n case 4: return lightTurquoiseColor;\r\n case 5: return lightPurpleColor;\r\n case 6: return lightOrangeColor;\r\n case 7: return lightRedColor;\r\n default: return null;\r\n }\r\n}\r\n","import { ReactWidgetPM } from \"../../../../types/widget\";\r\n\r\nexport function buildToolTip(widget: ReactWidgetPM, value: any, seriesName: string, label : any): string {\r\n return `\r\n <div style=\"min-width: 108px;\">\r\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\r\n <span style=\"margin: 0; height: 10px; width: 10px; background-color: #A4A4A4; border-radius: 50%; display: inline-block;\"></span>\r\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;\"> ` + getTooltiplabel(label) + `</p>\r\n </div>\r\n <hr style=\"margin: 0;border-top: 1px solid #F0F0F0;\">\r\n <div style=\"display: flex;align-items: center;margin:0;margin-top: 6px;\">\r\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;\"> ` + getMeasureType(seriesName) + `</p>\r\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;\">` + getTooltipValue(value) + `</p>\r\n ` + getTooltipPercentage(widget) +\r\n ` </div>\r\n </div>\r\n `;\r\n}\r\n\r\nfunction getTooltipPercentage(widget: ReactWidgetPM): string {\r\n if (widget.TypeCode != \"donut\" && widget.TypeCode != \"pie\") return \"\";\r\n return `\r\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>\r\n `;\r\n}\r\n\r\nfunction getTooltiplabel(value: any): string {\r\n if (value) return value;\r\n return '$label';\r\n}\r\n\r\nfunction getTooltipValue(value: any): string {\r\n if (value) return value;\r\n return '$dataValue';\r\n}\r\n\r\nfunction getMeasureType(seriesName: any): string {\r\n if (!seriesName) return \"Count:\"\r\n return seriesName.replace(/ .*/, '') + \":\";\r\n}","import { SeriesMeasure, SeriesMeasureValue } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo, getSeriesPositionColor } from \"./FusionChartObjectHelper\";\r\nimport { buildToolTip } from \"./FusionChartTooltip\";\r\n\r\n\r\nexport function getCategoriesBasedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildCategories(seriesMeasures),\r\n dataset: buildDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\nexport function getStackedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildStackedCategories(seriesMeasures, widget),\r\n dataset: buildStackedDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\n\r\nexport function getSimpleDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n data: buildDataSource(seriesMeasures, widget),\r\n }\r\n}\r\n\r\nfunction handelNullLabels(seriesMeasures: SeriesMeasure[]) {\r\n seriesMeasures.forEach(element => {\r\n element.Values.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n}\r\n\r\nfunction seriesMeasuresIsEmpty(seriesMeasures: SeriesMeasure[]): boolean {\r\n if (!seriesMeasures || seriesMeasures.length == 0) return true;\r\n let hasValue = false;\r\n seriesMeasures.forEach(item => {\r\n if (item.Values && item.Values.length > 0) hasValue = true;\r\n });\r\n return !hasValue;\r\n}\r\n\r\nfunction buildDataSource(values: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let data: any[] = [];\r\n if (!values || !values[0]) return data;\r\n\r\n var series = values[0];\r\n data = series.Values.map((e, index) => {\r\n let item = {\r\n value: e.Value,\r\n label: e.Label,\r\n id: { GroupById: e.GroupById, MeasureFieldId: series.MeasureFieldId },\r\n tooltext: buildToolTip(widget, null, series.Name, e.Label),\r\n color: getSeriesPositionColor(index + 1)\r\n }\r\n return item;\r\n });\r\n return data;\r\n}\r\n\r\nfunction buildDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n seriesMeasures.forEach(seriesMeasure => {\r\n let datas = seriesMeasure.Values.map(e => {\r\n return { value: e.Value, id: { GroupById: e.GroupById, MeasureFieldId: seriesMeasure.MeasureFieldId }, tooltext: buildToolTip(widget, e.Value, seriesMeasure.Name, null) }\r\n });\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n data: datas,\r\n seriesname: seriesMeasure.Name,\r\n color: color,\r\n anchorBgColor: color,\r\n anchorBorderColor: \"#FFFFFF\",\r\n anchorBorderThickness: \"2\",\r\n anchorHoverColor: color,\r\n renderAs: seriesMeasure.RenderAs == \"default\" ? null : seriesMeasure.RenderAs,\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n var series = seriesMeasures[0];\r\n\r\n const uniqueGroups: any[] = [];\r\n\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupByIdSec))\r\n uniqueGroups.push({ code: element.GroupByIdSec, label: element.LabelSec })\r\n });\r\n\r\n\r\n uniqueGroups.forEach(group => {\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n seriesName: group.label,\r\n color: color,\r\n data: buildStackedGroupData(group, series, widget)\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedGroupData(secGroup: any, series: SeriesMeasure, widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(series);\r\n\r\n let data: any[] = [];\r\n uniqueGroups.forEach(group => {\r\n data.push({\r\n value: series.Values.find(x => x.GroupById == group.code && x.GroupByIdSec == secGroup.code)?.Value,\r\n id: { GroupById: group.code, MeasureFieldId: series.MeasureFieldId, GroupByIdSec: secGroup.code },\r\n tooltext: buildToolTip(widget, null, series.Name, group.label + \" - \" + secGroup.label),\r\n })\r\n });\r\n\r\n return data;\r\n}\r\nfunction buildCategories(seriesMeasures: SeriesMeasure[]) {\r\n var categories = seriesMeasures[0].Values.map((e) => {\r\n return {\r\n label: e.Label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction buildStackedCategories(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(seriesMeasures[0]);\r\n\r\n var categories = uniqueGroups.map((e) => {\r\n return {\r\n label: e.label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction getUniqueGroupOrderdList(series: SeriesMeasure) {\r\n let uniqueGroups: any[] = [];\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupById))\r\n uniqueGroups.push({ code: element.GroupById, label: element.Label});\r\n });\r\n return uniqueGroups;\r\n}\r\n\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { SeriesMeasure } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { getCategoriesBasedDataSource, getSimpleDataSource, getStackedDataSource } from \"./FusionChartDataSoruceBuilder\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nconst defautFontSize = \"10\";\r\nconst defautFont = \"Manrope\";\r\nconst defautColor = \"#323232\";\r\n\r\n\r\nexport function BuildFusionChartObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n switch (widget?.TypeCode) {\r\n case 'bar':\r\n if (!widget.SecondaryGroupById) return getBarObject(seriesMeasures, widget);\r\n return getStackedBarObject(seriesMeasures, widget);\r\n case 'line':\r\n return getLineObject(seriesMeasures, widget);\r\n case 'pie':\r\n return getPieObject(seriesMeasures, widget);\r\n case 'donut':\r\n return getDonutObject(seriesMeasures, widget);\r\n case 'column':\r\n return getColumnObject(seriesMeasures, widget);\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction getBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getStackedBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollstackedbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.showLegend = \"1\";\r\n\r\n chart.dataSource = getStackedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getLineObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollline2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.anchorradius = \"5\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getDonutObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"doughnut2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getPieObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"pie2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getColumnObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollcombi2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n \r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction setLineDash(chartInfo: ChartInfo) {\r\n chartInfo.divLineDashed = \"1\";\r\n chartInfo.divLineDashLen = \"5\";\r\n chartInfo.divLineDashGap = \"5\";\r\n chartInfo.divLineColor = \"#E7E7E7\";\r\n chartInfo.divLineAlpha = \"100\";\r\n chartInfo.divLineThickness = \"1\";\r\n}\r\n\r\n\r\nfunction getDefaultChartobject(): ChartObject {\r\n let chart = {} as ChartObject;\r\n chart.type = \"column2d\";\r\n chart.width = \"100%\";\r\n chart.height = \"100%\";\r\n chart.dataFormat = \"json\";\r\n return chart;\r\n}\r\n\r\nfunction getDefaultChartInfo(widget: ReactWidgetPM): ChartInfo {\r\n let chart = {} as ChartInfo;\r\n chart.theme = \"fusion\";\r\n chart.baseFont = defautFont;\r\n chart.baseFontSize = defautFontSize;\r\n chart.baseFontColor = defautColor;\r\n chart.legendCaptionFontSize = defautFontSize;\r\n chart.legendCaptionFontColor = defautColor;\r\n chart.legendCaptionFont = defautFont;\r\n chart.labelFontSize = defautFontSize;\r\n chart.labelFontColor = defautColor;\r\n chart.labelFont = defautFont;\r\n chart.enableSlicing = \"0\";\r\n chart.enableRotation = \"0\";\r\n chart.chartTopMargin = \"10\";\r\n chart.chartBottomMargin = \"10\";\r\n chart.chartLeftMargin = \"40\";\r\n chart.chartRightMargin = \"40\";\r\n chart.toolTipBgColor = \"#FFFFFF\";\r\n chart.showToolTipShadow = \"1\";\r\n chart.scrollHeight = \"6\";\r\n chart.scrollWidth = \"6\";\r\n return chart;\r\n}\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nexport class FusionChartHelper {\r\n private chart: ChartObject;\r\n private widget: ReactWidgetPM;\r\n private pieRadius: number;\r\n\r\n constructor(widget: ReactWidgetPM, chart: ChartObject) {\r\n this.chart = chart;\r\n this.widget = widget;\r\n }\r\n\r\n public getPieRadius(): number {\r\n return this.pieRadius;\r\n }\r\n\r\n public trimChartLabels(chartWidth: number, chartHeight: number) {\r\n if (!this.widget || (this.widget.TypeCode != \"pie\" && this.widget.TypeCode != \"donut\")) return;\r\n if (!this.chart) return;\r\n\r\n let chartMinumunHeight = 236;\r\n var startPercantage = 70;\r\n let stepHeight = 60;\r\n\r\n var dataSource = this.chart?.dataSource;\r\n if(!dataSource) return;\r\n\r\n var chartInfo = (dataSource as any).chart as ChartInfo;\r\n var step = Math.floor((chartHeight - chartMinumunHeight) / stepHeight);\r\n if (step < 0) step = 0;\r\n\r\n\r\n var pieRadius = startPercantage - (step * 10);\r\n if (pieRadius < 60) pieRadius = 60;\r\n\r\n if (window.innerWidth > 1700) {\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n return;\r\n }\r\n\r\n let reducedValue = Math.floor((1700 - window.innerWidth) / 100) + 1;\r\n if (reducedValue > 5) reducedValue = 5;\r\n pieRadius = pieRadius - (reducedValue * 5)\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n }\r\n\r\n}\r\n","import React, { forwardRef, useImperativeHandle, useRef, useState } from \"react\";\r\nimport ReactFC from 'react-fusioncharts';\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport FusionCharts, { ChartObject } from 'fusioncharts';\r\nimport { FusionCharts as fusionCharts } from 'FusionCharts';\r\nimport Charts from 'fusioncharts/fusioncharts.charts';\r\nimport FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';\r\nimport { useEffect } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport { BuildFusionChartObject } from \"./FusionChartObjectBuilder\";\r\nimport useResizeObserver from \"use-resize-observer\";\r\nimport { FusionChartHelper } from \"./FusionChartHelper\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\nimport { Session } from \"../../../../services/session\";\r\n\r\nReactFC.fcRoot(FusionCharts, Charts, FusionTheme);\r\n\r\nFusionCharts.options['license']({\r\n key: 'prD4C-8eiA7A3A3C7E6G4B4A3J4C7B2D3D2nyqE1C3fd1npaE4D4tlA-21D7E4F4F1F1E1F4F1A10A8C2C5F5E2F2D1hwqD1B5D1aG4A19A32twbC6D3G4lhJ-7A9C11A5B-13ddA2I3A1B9B3D7A2B4G2H3H1F-7smC8B2XB4cetB8A7A5mxD3SG4F2tvgB2A3B2E4C3I3C7B3A4A3A2D3D2G4J-7==',\r\n creditLabel: false,\r\n});\r\n\r\nexport type FusionChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst FusionChart = forwardRef((props: FusionChartProps, comRef) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n\r\n const widget = useRef<ReactWidgetPM>();\r\n const [args, setArgs] = useState<ChartObject>({});\r\n const [fChart, setFchart] = useState<fusionCharts>();\r\n const id = (Math.random() + 1).toString(36).substring(7);\r\n const progressRef = useRef<any>(null);\r\n const fusionRef = useRef<any>(null);\r\n const fusionChartHelper = useRef<FusionChartHelper>();\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let timeout: any;\r\n const handleResize = () => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n HandleSizeChange();\r\n }, 200);\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n HandleSizeChange();\r\n }\r\n }));\r\n\r\n const HandleSizeChange = () => {\r\n if (!widget || (widget.current?.TypeCode != \"pie\" && widget.current?.TypeCode != \"donut\")) return;\r\n setTimeout(function () {\r\n var oldPieRadius = fusionChartHelper?.current?.getPieRadius();\r\n fusionChartHelper?.current?.trimChartLabels(fusionRef?.current?.offsetWidth, fusionRef?.current?.offsetHeight)!;\r\n if (oldPieRadius == fusionChartHelper?.current?.getPieRadius()) return;\r\n\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n setDataLoaded(true);\r\n }, 100);\r\n }, 100);\r\n }\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n handleData(null);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n handleData(result?.data);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n })\r\n }\r\n\r\n const handleData = (data : any): void => {\r\n let chart = BuildFusionChartObject(data, widget.current!);\r\n fusionChartHelper.current = new FusionChartHelper(widget.current!, chart);\r\n fusionChartHelper?.current.trimChartLabels(progressRef?.current?.offsetWidth, progressRef?.current?.offsetHeight)!;\r\n setArgs(chart);\r\n setDataLoaded(true);\r\n }\r\n\r\n const dataplotClick = (eventObj: any, dataObj: any): void => {\r\n props.onSelectDataPoint({\r\n GroupById: dataObj.id.groupbyid,\r\n MeasureFieldId: dataObj.id.measurefieldid,\r\n Widget: widget.current,\r\n GroupByIdSec: dataObj.id.groupbyidsec\r\n });\r\n };\r\n\r\n const renderComplete = (chart: any): void => {\r\n setFchart(chart);\r\n }\r\n\r\n const drawComplete = (event: any): void => {\r\n\r\n }\r\n\r\n const { ref } = useResizeObserver<HTMLDivElement>({\r\n onResize: ({ width, height }) => {\r\n fChart?.resizeTo(width as number, height as number);\r\n },\r\n });\r\n\r\n return (\r\n !dataLoaded ?\r\n <div ref={progressRef} className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div className={'db-fc-parent-container'} ref={fusionRef}> <div className={'db-fc-container'} ref={ref} id={id}><ReactFC {...args} fcEvent-dataplotClick={dataplotClick} onRender={renderComplete} fcEvent-drawComplete={drawComplete} /></div> </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n </div>\r\n )\r\n});\r\nexport default FusionChart;\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport { DashboardDataBinding } from '../../types/DashboardDataBinding';\r\nimport CustomChart from \"./ChartsComponents/CustomCharts/CustomChart\";\r\nimport { Tooltip } from 'primereact/tooltip';\r\nimport FusionChart from \"./ChartsComponents/FusionCharts/FusionChart\";\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any): any;\r\n deleteBtnClicked(i: any): any;\r\n widget: ReactWidgetPM | undefined;\r\n widgetRef: ReactWidgetPM | undefined;\r\n el: any;\r\n dateFilter: any;\r\n dataBinding: DashboardDataBinding;\r\n isInEditMode: boolean;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n}\r\n\r\n\r\nconst WidgetCard = forwardRef((props: WidgetCardProps, comRef) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n const widget = useRef<ReactWidgetPM>();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [tooltip, showTooltip] = useState(false);\r\n const fusionChartRef = useRef<any>(null);\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(widget.current)\r\n };\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e?.key != widget.current?.key) return;\r\n setIsLoading(true);\r\n widget.current = { ...e };\r\n setIsLoading(false);\r\n })\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n fusionChartRef?.current?.onResizeFinish();\r\n }\r\n }));\r\n\r\n\r\n return (\r\n <div className=\"dl-panel\" key={props.el.i} style={{ cursor: props.isInEditMode ? 'move' : 'default' }} >\r\n <header>\r\n <div style={{ display: 'flex', width: 'calc(100% - 3rem)' }}>\r\n <Tooltip target=\".h-tool-tip\" />\r\n <h1 data-pr-tooltip={widget.current?.Title} data-pr-position=\"top\" className=\"h-tool-tip\"\r\n onMouseEnter={() => showTooltip(true)}\r\n onMouseLeave={() => {\r\n showTooltip(false);\r\n setTimeout(() => showTooltip(true), 50);\r\n }}>{widget.current?.Title}</h1>\r\n </div>\r\n\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n style={{ color: \"#292D30\" }}\r\n />\r\n : null\r\n }\r\n\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={editWidget} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.widget?.key)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n <div style={{ width: '100%' }}>\r\n <div className=\"dl-line\"></div>\r\n </div>\r\n\r\n <div className=\"dl-dashboard-widget\"> {GetChartComponent()} </div>\r\n </div>\r\n );\r\n\r\n function GetChartComponent(): React.ReactNode {\r\n if (isLoading || !widget.current?.TypeCode) return null;\r\n if (widget.current?.TypeCode == \"kpi\") return <CustomChart dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />;\r\n return <FusionChart ref={fusionChartRef} dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n});\r\n\r\nexport default WidgetCard;\r\n","export function deepClone (obj){\r\n return JSON.parse(JSON.stringify(obj))\r\n}","import { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\n\r\ntype DashboardDesignerProps = {\r\n editMode: boolean,\r\n Widgetlayouts: { lg: ReactWidgetPM[] },\r\n openEditWidget: (widget: ReactWidgetPM) => void\r\n onLayoutChange: (layouts: Layouts) => void,\r\n dataBinding: DashboardDataBinding,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void\r\n};\r\nconst DashboardDesigner = (props: DashboardDesignerProps) => {\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>({ lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [isInEditMode, setisInEditMode] = useState(false);\r\n const widgetsDictionaryRef = useRef<{ [k: string]: ReactWidgetPM }>({});\r\n const [widgets, setWidgets] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const gridLayoutComponent = useRef<any>(null);\r\n const entered = useRef<boolean>(false);\r\n const widgetCardRef = useRef<any[]>([]);\r\n\r\n\r\n useEffect(() => {\r\n FillLayout(props.Widgetlayouts);\r\n }, [props.Widgetlayouts]);\r\n\r\n const FillLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }) => {\r\n var clone: { lg: ReactWidgetPM[] } = deepClone(dashboardLayouts);\r\n var layout = createLayout(clone);\r\n FillWidgetDictionary(clone);\r\n setWidgets(clone);\r\n setLayouts(layout);\r\n UpdatePlaceholderDimensions(layout);\r\n }\r\n const FillWidgetDictionary = (clone: { lg: ReactWidgetPM[] }) => {\r\n for (const item of clone.lg) {\r\n widgetsDictionaryRef.current[item.key] = item;\r\n }\r\n }\r\n const createLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }): Layouts => {\r\n var layout: any = { lg: [] };\r\n dashboardLayouts.lg.map(w => w.Layout as Layout).forEach(e => {\r\n layout.lg.push(e)\r\n })\r\n return layout;\r\n }\r\n\r\n useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n function onLayoutChange(layout: any, changedLayouts: Layouts) {\r\n // layoutsRef.current = changedLayouts;\r\n UpdateWidget(changedLayouts);\r\n setLayouts(changedLayouts);\r\n UpdatePlaceholderDimensions(changedLayouts);\r\n if (entered.current == false) {\r\n entered.current = true;\r\n return;\r\n }\r\n props.onLayoutChange(changedLayouts);\r\n }\r\n\r\n function onResizeStop(event: any, oldItem: any) {\r\n widgetCardRef?.current?.find(x => x.i == oldItem.i)?.ref.onResizeFinish(widgetsDictionaryRef.current[oldItem.i].key);\r\n }\r\n\r\n function UpdateWidget(changedLayouts: Layouts) {\r\n for (const item of changedLayouts.lg) {\r\n if (widgetsDictionaryRef.current[item.i]) {\r\n widgetsDictionaryRef.current[item.i].Layout = item;\r\n }\r\n }\r\n }\r\n\r\n function deletePanel(id) {\r\n var newLayouts = { lg: layouts.lg.filter(e => e.i != id) }\r\n setLayouts(newLayouts);\r\n var newWidgets = { lg: widgets.lg.filter(e => e.key != id) }\r\n FillWidgetDictionary(newWidgets);\r\n setWidgets(newWidgets);\r\n props.onLayoutChange(newLayouts)\r\n };\r\n\r\n function editWidget(widget: ReactWidgetPM) {\r\n widget.ChangeSetOp = 'Update';\r\n props.openEditWidget(widget);\r\n };\r\n\r\n function UpdatePlaceholderDimensions(layouts: Layouts) {\r\n if (!layouts)\r\n return;\r\n var max = minimumPlaceholderRowsCount;\r\n for (const layout of layouts['lg']) {\r\n if (layout.y + layout.h > max)\r\n max = layout.y + layout.h;\r\n }\r\n\r\n var newPlaceholderRows = max + 2;\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setplaceholderRowsArray(Array.from({ length: newPlaceholderRows }).fill(null));\r\n }\r\n return (<div className=\"dl-full-hight-scroll\">\r\n <div className=\"dl-box\">\r\n <div className=\"dl-row dl-content\">\r\n <div className=\"dl-grid-container\">\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {isInEditMode ? placeholderRowsArray.map((e, i) =>\r\n array12.map((e, i) => (\r\n <div key={i}\r\n style={{\r\n height: layoutGridProps.rowHeight,\r\n }}\r\n ></div>\r\n ))\r\n\r\n ) : null}\r\n </div>\r\n\r\n\r\n <ResponsiveReactGridLayout ref={gridLayoutComponent}\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n isDraggable={isInEditMode}\r\n isResizable={isInEditMode}\r\n onWidthChange={() => { }}\r\n onResizeStop={onResizeStop}\r\n onLayoutChange={onLayoutChange}>\r\n\r\n {widgets.lg.map((widget, i) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n isInEditMode={isInEditMode}\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n widgetRef={widgetsDictionaryRef.current[widget.key]}\r\n el={widget}\r\n dataBinding={props.dataBinding}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n onSelectDataPoint={props.onSelectDataPoint}\r\n ref={el => {\r\n widgetCardRef.current[i] = {\r\n ref: el,\r\n i: widget.Layout?.i\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>);\r\n\r\n}\r\n\r\nexport const layoutGridProps = {\r\n rowHeight: 50,\r\n className: \"layout\",\r\n cols: { lg: 12, md: 6, sm: 2, xs: 1, xxs: 1 },\r\n useCSSTransforms: true,\r\n}\r\n\r\nexport default DashboardDesigner;\r\n","import * as React from 'react'\r\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { Session } from './services/session';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\nimport { deepClone } from './services/clone';\r\nimport { DataPointSelection } from './types/SeriesMeasure';\r\n\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n onChangeLayouts: (layouts: { lg: ReactWidgetPM[] }) => void,\r\n openEditWidget: (Widget: ReactWidgetPM) => void,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props?.token;\r\n\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n props.dataBinding.isOnEditLayout.subscribe(e => {\r\n setIsInEditMode(e);\r\n });\r\n props.dataBinding.onAddWidget.subscribe(w => {\r\n Widgetlayouts.current.lg.push(w);\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n }, [])\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n var layoutsDic: { [key: string]: Layout } = {};\r\n Object.keys(layouts).forEach(sizeType => {\r\n if (layouts[sizeType].length > 0) {\r\n layouts[sizeType].map(layout => {\r\n layoutsDic[layout.i] = layout;\r\n })\r\n return;\r\n }\r\n })\r\n var newWidgetlayouts: ReactWidgetPM[] = [];\r\n Widgetlayouts.current.lg.forEach(widget => {\r\n if (layoutsDic[widget.key]) {\r\n widget.StartPotistion = `${layoutsDic[widget.key].x},${layoutsDic[widget.key].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.key].w},${layoutsDic[widget.key].h}`;\r\n widget.Layout = layoutsDic[widget.key];\r\n newWidgetlayouts.push(widget);\r\n }\r\n\r\n });\r\n Widgetlayouts.current = { lg: newWidgetlayouts };\r\n props.onChangeLayouts(Widgetlayouts.current);\r\n }\r\n\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onSelectDataPoint={props.onSelectDataPoint} Widgetlayouts={widgetlayoutsState} dataBinding={props.dataBinding} editMode={isInEditMode} onLayoutChange={updateWidgets} openEditWidget={(widget: ReactWidgetPM) => props.openEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n )\r\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["Session","Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","Map","from","to","keys","Object","k","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","Token","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","dataLoaded","setDataLoaded","error","setError","useRef","data","setData","useEffect","current","customChartProps","setTimeout","RefreshData","Tenant","emptyData","Value","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","getRatioComponent","CompareWithPrevious","React","className","getArrowComponent","Ratio","ComparisonValue","style","marginTop","Increase","getPreviousValueComponent","prevtext","ComparisonAbbreviationSymbol","getValueData","getValueComponent","AbbreviationSymbol","Unit","ProgressSpinner","width","height","strokeWidth","animationDuration","onClick","Alighnment","src","CustomChart","project","TypeCode","mainYellowColor","mainRedColor","mainGreenColor","mainTurquoiseColor","mainBlueColor","mainPurpleColor","mainOrangeColor","getSeriesPositionColor","position","buildToolTip","value","seriesName","label","getTooltiplabel","getMeasureType","getTooltipValue","getTooltipPercentage","getCategoriesBasedDataSource","chartInfo","seriesMeasures","seriesMeasuresIsEmpty","handelNullLabels","chart","categories","buildCategories","dataset","buildDataSet","getStackedDataSource","buildStackedCategories","buildStackedDataSet","getSimpleDataSource","buildDataSource","forEach","element","Values","Label","hasValue","item","values","series","map","e","index","id","GroupById","tooltext","Name","color","dataSet","seriesPosition","seriesMeasure","datas","push","seriesname","anchorBgColor","anchorBorderColor","anchorBorderThickness","anchorHoverColor","renderAs","RenderAs","uniqueGroups","find","x","code","GroupByIdSec","LabelSec","group","buildStackedGroupData","secGroup","getUniqueGroupOrderdList","category","defautFontSize","defautFont","defautColor","BuildFusionChartObject","SecondaryGroupById","getBarObject","getStackedBarObject","getLineObject","getPieObject","getDonutObject","getColumnObject","getDefaultChartobject","type","getDefaultChartInfo","scrollPadding","flatScrollBars","showPercentValues","showLegend","legendItemFont","legendItemFontSize","setLineDash","chartTopMargin","chartBottomMargin","dataSource","chartLeftMargin","chartRightMargin","anchorradius","canvasBottomPadding","showValues","legendCaptionFontSize","legendCaptionFont","labelFontSize","labelFont","manageLabelOverflow","useEllipsesWhenOverflow","enableSmartLabels","pieRadius","divLineDashed","divLineDashLen","divLineDashGap","divLineColor","divLineAlpha","divLineThickness","dataFormat","theme","baseFont","baseFontSize","baseFontColor","legendCaptionFontColor","labelFontColor","enableSlicing","enableRotation","toolTipBgColor","showToolTipShadow","scrollHeight","scrollWidth","FusionChartHelper","getPieRadius","trimChartLabels","chartWidth","chartHeight","chartMinumunHeight","startPercantage","stepHeight","step","Math","floor","window","innerWidth","reducedValue","ReactFC","fcRoot","FusionCharts","Charts","FusionTheme","options","key","creditLabel","FusionChart","forwardRef","comRef","args","setArgs","fChart","setFchart","random","toString","progressRef","fusionRef","fusionChartHelper","timeout","handleResize","clearTimeout","HandleSizeChange","addEventListener","removeEventListener","useImperativeHandle","onResizeFinish","oldPieRadius","offsetWidth","offsetHeight","handleData","dataplotClick","eventObj","dataObj","groupbyid","measurefieldid","groupbyidsec","renderComplete","drawComplete","event","useResizeObserver","onResize","resizeTo","ref","onRender","WidgetCard","moreBtnToggle","isLoading","setIsLoading","tooltip","showTooltip","fusionChartRef","editWidget","hide","editBtnClicked","dataBinding","onEditWidget","subscribe","el","cursor","isInEditMode","display","Tooltip","target","Title","onMouseEnter","onMouseLeave","Button","icon","toggle","OverlayPanel","deleteBtnClicked","GetChartComponent","widgetRef","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","entered","widgetCardRef","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","w","Layout","editMode","onLayoutChange","changedLayouts","UpdateWidget","onResizeStop","oldItem","deletePanel","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","h","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","CurrentUserId","userId","tenant","onGetLayouts","isOnEditLayout","onAddWidget","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","EndPosition","onChangeLayouts"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/services/session.ts","../src/services/tools.ts","../src/services/ApiServices.ts","../src/services/DashboardAnalyticsService.ts","../src/features/Dashboard/ChartsComponents/CustomCharts/KpiChart.tsx","../src/features/Dashboard/ChartsComponents/CustomCharts/CustomChart.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionColors.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartTooltip.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartDataSoruceBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["export class Session {\r\n public static CurrentUserId: string;\r\n public static Tenant: number;\r\n public static Token: string;\r\n}","export class Tools {\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n\r\n public static Map(from: any, to: any) {\r\n if (!from)\r\n return;\r\n if (!to)\r\n to = {};\r\n var keys = Object.keys(from);\r\n for (const k of keys) {\r\n if(from[k]){\r\n to[k] = from[k];\r\n }\r\n }\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { APIResult } from \"../types/APIResult\";\r\nimport { Session } from \"./session\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class ApiServices{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getByFilters<T>(api,filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get<APIResult<T>>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n get<T>(api) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.get<T>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n post<T>(api,date){\r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.post<T>(apiURL,date, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getTokenFromStorage(){\r\n return Session.Token || '';\r\n }\r\n private ConcatFiltersToURL(filters: ApiQueryFilters, urlparameters: string)\r\n {\r\n var mykeys = Object.keys(filters);\r\n var addtionalFiltersValues: string | null = null;\r\n\r\n for (var i in mykeys) {\r\n var propName = mykeys[i];\r\n var propValue = filters[propName];\r\n var ignoreFilter = ((propName.indexOf(\"Operator\") > 0 && propValue == \"Equals\") || propName == \"AdditionalFilters\");\r\n\r\n if (urlparameters != \"?\") {\r\n urlparameters = urlparameters.concat('&');\r\n }\r\n\r\n if (!ignoreFilter) {\r\n propValue = propValue ? encodeURIComponent(propValue) : '';\r\n urlparameters = urlparameters.concat(propName.concat('=').concat(propValue));\r\n }\r\n\r\n if (propName == \"AdditionalFilters\" && propValue.length > 0) {\r\n addtionalFiltersValues = JSON.stringify(propValue);\r\n }\r\n }\r\n\r\n if (addtionalFiltersValues) {\r\n urlparameters = urlparameters.concat(\"&AdditionalFilters=\").concat(addtionalFiltersValues);\r\n }\r\n return urlparameters;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { ReactDashboardPM } from \"../types/Dashboard\";\r\nimport { SeriesMeasure } from \"../types/SeriesMeasure\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\nimport { ReactWidgetPM } from '../types/widget';\r\nimport { KpiChartData } from \"../types/KpiChart\";\r\n\r\n\r\nexport class DashboardAnalyticsService{ \r\n _ApiServices:ApiServices;\r\n controller = 'DashboardAnalytics';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<SeriesMeasure[]>(`/api/${this.controller}/PostGetDataAnalytic`,widget);\r\n }\r\n\r\n getKpiData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<KpiChartData>(`/api/${this.controller}/PostGetKpiData`,widget);\r\n }\r\n \r\n \r\n}","import { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { Session } from \"../../../../services/session\";\r\nimport { KpiChartData } from \"../../../../types/KpiChart\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { CustomChartProps } from \"./CustomChart\";\r\n\r\ntype KpiChartProps = {\r\n customChartProps: CustomChartProps;\r\n};\r\nconst KpiChart = (props: KpiChartProps) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n const widget = useRef<ReactWidgetPM>();\r\n const [data, setData] = useState<KpiChartData>();\r\n\r\n useEffect(() => {\r\n widget.current = props.customChartProps.widget;\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, [])\r\n\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n const emptyData = {} as KpiChartData;\r\n emptyData.Value = 0;\r\n setData(emptyData);\r\n setDataLoaded(true);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getKpiData(postWidget as ReactWidgetPM).then(result => {\r\n setData(result.data);\r\n setDataLoaded(true);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n\r\n })\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (widget?.current?.WidgetMeasures) measureFieldId = widget?.current?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: widget.current\r\n });\r\n }\r\n\r\n function getRatioComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n return (\r\n <div className={\"dl-kpi-ratio-container\"}>\r\n {getArrowComponent()}\r\n <div className={'dl-kpi-ratio-text'}>{data?.Ratio} %</div>\r\n </div>\r\n );\r\n }\r\n\r\n function getArrowComponent(): React.ReactNode {\r\n if (!data) return null;\r\n\r\n if (data?.Ratio == 0 || data.Value == data.ComparisonValue || ((data.Value == \"0\" || data.Value == 0) && (data.ComparisonValue == \"0\" || data.ComparisonValue == 0)))\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"} style={{ marginTop: \"2px\" }}></span>\r\n </div>\r\n );\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-green\"}></span>\r\n </div>\r\n )\r\n\r\n return null;\r\n }\r\n\r\n\r\n\r\n function getPreviousValueComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n var prevtext = !data?.ComparisonValue ? '' : data?.ComparisonValue;\r\n prevtext = \"Previous: \" + prevtext;\r\n\r\n return (\r\n <div className={\"dl-kpi-prev-container\"}>\r\n <div className={\"dl-kpi-prev-text\"}>{prevtext}</div>\r\n {data?.ComparisonAbbreviationSymbol && <div className=\"dl-kpi-prev-abbreviationSymbol\">{data?.ComparisonAbbreviationSymbol}</div>}\r\n </div>\r\n );\r\n }\r\n\r\n function getValueData(): React.ReactNode {\r\n if (data?.Value == null)\r\n return (<div className=\"dl-kpi-no-data\">No data to display.</div>);\r\n\r\n return (<div className=\"dl-kpi-value dl-kpi-textTrimming\">{data?.Value}</div>);\r\n\r\n }\r\n\r\n function getValueComponent(): React.ReactNode {\r\n return (\r\n <div className={\"dl-kpi-sub-container\"}>\r\n {getValueData()}\r\n {data?.AbbreviationSymbol && <div className=\"dl-kpi-abbreviationSymbol\">{data?.AbbreviationSymbol}</div>}\r\n {data?.Unit && <div className=\"dl-kpi-unit\">{data?.Unit}</div>}\r\n {getRatioComponent()}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n !dataLoaded ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div onClick={kpiClick} className={(widget.current?.Alighnment == \"Left\" ? \"dl-kpi-container-click\" : \"dl-kpi-container-click dl-kpi-center-container\")}>\r\n <div className={\"dl-kpi-container\"} style={{ marginTop: widget.current?.Alighnment != \"Left\" ? '0': data?.CompareWithPrevious ? '7px' : '15.4px' }}>\r\n {getValueComponent()}\r\n {getPreviousValueComponent()}\r\n </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n\r\n </div>\r\n );\r\n}\r\n\r\n\r\nexport default KpiChart;","import React from \"react\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport KpiChart from \"./KpiChart\";\r\n\r\n\r\nexport type CustomChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst CustomChart = (props: CustomChartProps) => {\r\n const project = () => {\r\n switch (props.widget?.TypeCode) {\r\n case \"kpi\": return <KpiChart customChartProps={props} />;\r\n default: return <div>Invalid Type</div>;\r\n }\r\n }\r\n return (\r\n <div className=\"dl-custom-chart-container\">{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","export const mainYellowColor = \"#F6CF33\"\r\nexport const mainRedColor = \"#EE5F77\"\r\nexport const mainGreenColor = \"#4AC76F\"\r\nexport const mainTurquoiseColor = \"#32C7C7\"\r\nexport const mainBlueColor = \"#369CFB\"\r\nexport const mainPurpleColor = \"#935BE0\"\r\nexport const mainOrangeColor = \"#FAAD14\"\r\n\r\nexport const lightYellowColor = \"#FBE799\"\r\nexport const lightRedColor = \"#F7AFBB\"\r\nexport const lightGreenColor = \"#A4E3B7\"\r\nexport const lightTurquoiseColor = \"#99E3E3\"\r\nexport const lightBlueColor = \"#9BCDFD\"\r\nexport const lightPurpleColor = \"#C9ADF0\"\r\nexport const lightOrangeColor = \"#FDD689\"\r\n\r\nexport const grey1Color = \"#F6F6F6\"\r\nexport const grey2Color = \"#F0F0F0\"\r\nexport const grey3Color = \"#D9D9D9\"\r\nexport const grey4Color = \"#A4A4A4\"","import { lightBlueColor, lightGreenColor, lightOrangeColor, lightPurpleColor, lightRedColor, lightTurquoiseColor, lightYellowColor, mainBlueColor, mainGreenColor, mainOrangeColor, mainPurpleColor, mainRedColor, mainTurquoiseColor, mainYellowColor } from \"./FusionColors\";\r\n\r\nexport interface ChartInfo {\r\n theme: string;\r\n scrollHeight: string;\r\n scrollWidth: string;\r\n scrollPadding: string;\r\n flatScrollBars: string;\r\n enableSlicing: string;\r\n chartLeftMargin: string;\r\n chartTopMargin: string;\r\n chartRightMargin: string;\r\n chartBottomMargin: string;\r\n baseFont: string;\r\n baseFontSize: string;\r\n showPercentValues: string;\r\n showValues: string;\r\n showLegend: string;\r\n lineColor: string;\r\n divLineDashed: string;\r\n divLineDashLen: string;\r\n divLineDashGap: string;\r\n divLineColor: string;\r\n divLineThickness: string;\r\n divLineAlpha: string;\r\n enableRotation: string;\r\n legendItemFont: string;\r\n legendItemFontSize: string;\r\n legendCaptionFont: string;\r\n legendCaptionFontSize: string;\r\n labelFont: string;\r\n labelFontSize: string;\r\n toolTipBorderColor: string;\r\n toolTipBgAlpha: string;\r\n showToolTipShadow: string;\r\n toolTipBgColor: string;\r\n plottooltext: string;\r\n anchorradius: string;\r\n canvasBottomPadding: string;\r\n labelDisplay: string;\r\n slantLabel: string;\r\n manageLabelOverflow: string;\r\n useEllipsesWhenOverflow: string;\r\n enableSmartLabels: string;\r\n pieRadius: string;\r\n doughnutRadius: string;\r\n baseFontColor: string;\r\n legendCaptionFontColor: string;\r\n labelFontColor: string;\r\n}\r\n\r\n\r\nexport function getSeriesPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return mainBlueColor;\r\n case 2: return mainGreenColor;\r\n case 3: return mainYellowColor;\r\n case 4: return mainTurquoiseColor;\r\n case 5: return mainPurpleColor;\r\n case 6: return mainOrangeColor;\r\n case 7: return mainRedColor;\r\n default: return null;\r\n }\r\n}\r\n\r\nexport function getSeriesHoverPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return lightBlueColor;\r\n case 2: return lightGreenColor;\r\n case 3: return lightYellowColor;\r\n case 4: return lightTurquoiseColor;\r\n case 5: return lightPurpleColor;\r\n case 6: return lightOrangeColor;\r\n case 7: return lightRedColor;\r\n default: return null;\r\n }\r\n}\r\n","import { ReactWidgetPM } from \"../../../../types/widget\";\r\n\r\nexport function buildToolTip(widget: ReactWidgetPM, value: any, seriesName: string, label : any): string {\r\n return `\r\n <div style=\"min-width: 108px;\">\r\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\r\n <span style=\"margin: 0; height: 10px; width: 10px; background-color: #A4A4A4; border-radius: 50%; display: inline-block;\"></span>\r\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;\"> ` + getTooltiplabel(label) + `</p>\r\n </div>\r\n <hr style=\"margin: 0;border-top: 1px solid #F0F0F0;\">\r\n <div style=\"display: flex;align-items: center;margin:0;margin-top: 6px;\">\r\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;\"> ` + getMeasureType(seriesName) + `</p>\r\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;\">` + getTooltipValue(value) + `</p>\r\n ` + getTooltipPercentage(widget) +\r\n ` </div>\r\n </div>\r\n `;\r\n}\r\n\r\nfunction getTooltipPercentage(widget: ReactWidgetPM): string {\r\n if (widget.TypeCode != \"donut\" && widget.TypeCode != \"pie\") return \"\";\r\n return `\r\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>\r\n `;\r\n}\r\n\r\nfunction getTooltiplabel(value: any): string {\r\n if (value) return value;\r\n return '$label';\r\n}\r\n\r\nfunction getTooltipValue(value: any): string {\r\n if (value) return value;\r\n return '$dataValue';\r\n}\r\n\r\nfunction getMeasureType(seriesName: any): string {\r\n if (!seriesName) return \"Count:\"\r\n return seriesName.replace(/ .*/, '') + \":\";\r\n}","import { SeriesMeasure, SeriesMeasureValue } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo, getSeriesPositionColor } from \"./FusionChartObjectHelper\";\r\nimport { buildToolTip } from \"./FusionChartTooltip\";\r\n\r\n\r\nexport function getCategoriesBasedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildCategories(seriesMeasures),\r\n dataset: buildDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\nexport function getStackedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildStackedCategories(seriesMeasures, widget),\r\n dataset: buildStackedDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\n\r\nexport function getSimpleDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n data: buildDataSource(seriesMeasures, widget),\r\n }\r\n}\r\n\r\nfunction handelNullLabels(seriesMeasures: SeriesMeasure[]) {\r\n seriesMeasures.forEach(element => {\r\n element.Values.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n}\r\n\r\nfunction seriesMeasuresIsEmpty(seriesMeasures: SeriesMeasure[]): boolean {\r\n if (!seriesMeasures || seriesMeasures.length == 0) return true;\r\n let hasValue = false;\r\n seriesMeasures.forEach(item => {\r\n if (item.Values && item.Values.length > 0) hasValue = true;\r\n });\r\n return !hasValue;\r\n}\r\n\r\nfunction buildDataSource(values: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let data: any[] = [];\r\n if (!values || !values[0]) return data;\r\n\r\n var series = values[0];\r\n data = series.Values.map((e, index) => {\r\n let item = {\r\n value: e.Value,\r\n label: e.Label,\r\n id: { GroupById: e.GroupById, MeasureFieldId: series.MeasureFieldId },\r\n tooltext: buildToolTip(widget, null, series.Name, e.Label),\r\n color: getSeriesPositionColor(index + 1)\r\n }\r\n return item;\r\n });\r\n return data;\r\n}\r\n\r\nfunction buildDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n seriesMeasures.forEach(seriesMeasure => {\r\n let datas = seriesMeasure.Values.map(e => {\r\n return { value: e.Value, id: { GroupById: e.GroupById, MeasureFieldId: seriesMeasure.MeasureFieldId }, tooltext: buildToolTip(widget, e.Value, seriesMeasure.Name, null) }\r\n });\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n data: datas,\r\n seriesname: seriesMeasure.Name,\r\n color: color,\r\n anchorBgColor: color,\r\n anchorBorderColor: \"#FFFFFF\",\r\n anchorBorderThickness: \"2\",\r\n anchorHoverColor: color,\r\n renderAs: seriesMeasure.RenderAs == \"default\" ? null : seriesMeasure.RenderAs,\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n var series = seriesMeasures[0];\r\n\r\n const uniqueGroups: any[] = [];\r\n\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupByIdSec))\r\n uniqueGroups.push({ code: element.GroupByIdSec, label: element.LabelSec })\r\n });\r\n\r\n\r\n uniqueGroups.forEach(group => {\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n seriesName: group.label,\r\n color: color,\r\n data: buildStackedGroupData(group, series, widget)\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedGroupData(secGroup: any, series: SeriesMeasure, widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(series);\r\n\r\n let data: any[] = [];\r\n uniqueGroups.forEach(group => {\r\n data.push({\r\n value: series.Values.find(x => x.GroupById == group.code && x.GroupByIdSec == secGroup.code)?.Value,\r\n id: { GroupById: group.code, MeasureFieldId: series.MeasureFieldId, GroupByIdSec: secGroup.code },\r\n tooltext: buildToolTip(widget, null, series.Name, group.label + \" - \" + secGroup.label),\r\n })\r\n });\r\n\r\n return data;\r\n}\r\nfunction buildCategories(seriesMeasures: SeriesMeasure[]) {\r\n var categories = seriesMeasures[0].Values.map((e) => {\r\n return {\r\n label: e.Label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction buildStackedCategories(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(seriesMeasures[0]);\r\n\r\n var categories = uniqueGroups.map((e) => {\r\n return {\r\n label: e.label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction getUniqueGroupOrderdList(series: SeriesMeasure) {\r\n let uniqueGroups: any[] = [];\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupById))\r\n uniqueGroups.push({ code: element.GroupById, label: element.Label});\r\n });\r\n return uniqueGroups;\r\n}\r\n\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { SeriesMeasure } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { getCategoriesBasedDataSource, getSimpleDataSource, getStackedDataSource } from \"./FusionChartDataSoruceBuilder\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nconst defautFontSize = \"10\";\r\nconst defautFont = \"Manrope\";\r\nconst defautColor = \"#323232\";\r\n\r\n\r\nexport function BuildFusionChartObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n switch (widget?.TypeCode) {\r\n case 'bar':\r\n if (!widget.SecondaryGroupById) return getBarObject(seriesMeasures, widget);\r\n return getStackedBarObject(seriesMeasures, widget);\r\n case 'line':\r\n return getLineObject(seriesMeasures, widget);\r\n case 'pie':\r\n return getPieObject(seriesMeasures, widget);\r\n case 'donut':\r\n return getDonutObject(seriesMeasures, widget);\r\n case 'column':\r\n return getColumnObject(seriesMeasures, widget);\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction getBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getStackedBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollstackedbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.showLegend = \"1\";\r\n\r\n chart.dataSource = getStackedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getLineObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollline2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.anchorradius = \"5\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getDonutObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"doughnut2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getPieObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"pie2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getColumnObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollcombi2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n \r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction setLineDash(chartInfo: ChartInfo) {\r\n chartInfo.divLineDashed = \"1\";\r\n chartInfo.divLineDashLen = \"5\";\r\n chartInfo.divLineDashGap = \"5\";\r\n chartInfo.divLineColor = \"#E7E7E7\";\r\n chartInfo.divLineAlpha = \"100\";\r\n chartInfo.divLineThickness = \"1\";\r\n}\r\n\r\n\r\nfunction getDefaultChartobject(): ChartObject {\r\n let chart = {} as ChartObject;\r\n chart.type = \"column2d\";\r\n chart.width = \"100%\";\r\n chart.height = \"100%\";\r\n chart.dataFormat = \"json\";\r\n return chart;\r\n}\r\n\r\nfunction getDefaultChartInfo(widget: ReactWidgetPM): ChartInfo {\r\n let chart = {} as ChartInfo;\r\n chart.theme = \"fusion\";\r\n chart.baseFont = defautFont;\r\n chart.baseFontSize = defautFontSize;\r\n chart.baseFontColor = defautColor;\r\n chart.legendCaptionFontSize = defautFontSize;\r\n chart.legendCaptionFontColor = defautColor;\r\n chart.legendCaptionFont = defautFont;\r\n chart.labelFontSize = defautFontSize;\r\n chart.labelFontColor = defautColor;\r\n chart.labelFont = defautFont;\r\n chart.enableSlicing = \"0\";\r\n chart.enableRotation = \"0\";\r\n chart.chartTopMargin = \"10\";\r\n chart.chartBottomMargin = \"10\";\r\n chart.chartLeftMargin = \"40\";\r\n chart.chartRightMargin = \"40\";\r\n chart.toolTipBgColor = \"#FFFFFF\";\r\n chart.showToolTipShadow = \"1\";\r\n chart.scrollHeight = \"6\";\r\n chart.scrollWidth = \"6\";\r\n return chart;\r\n}\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nexport class FusionChartHelper {\r\n private chart: ChartObject;\r\n private widget: ReactWidgetPM;\r\n private pieRadius: number;\r\n\r\n constructor(widget: ReactWidgetPM, chart: ChartObject) {\r\n this.chart = chart;\r\n this.widget = widget;\r\n }\r\n\r\n public getPieRadius(): number {\r\n return this.pieRadius;\r\n }\r\n\r\n public trimChartLabels(chartWidth: number, chartHeight: number) {\r\n if (!this.widget || (this.widget.TypeCode != \"pie\" && this.widget.TypeCode != \"donut\")) return;\r\n if (!this.chart) return;\r\n\r\n let chartMinumunHeight = 236;\r\n var startPercantage = 70;\r\n let stepHeight = 60;\r\n\r\n var dataSource = this.chart?.dataSource;\r\n if(!dataSource) return;\r\n\r\n var chartInfo = (dataSource as any).chart as ChartInfo;\r\n var step = Math.floor((chartHeight - chartMinumunHeight) / stepHeight);\r\n if (step < 0) step = 0;\r\n\r\n\r\n var pieRadius = startPercantage - (step * 10);\r\n if (pieRadius < 60) pieRadius = 60;\r\n\r\n if (window.innerWidth > 1700) {\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n return;\r\n }\r\n\r\n let reducedValue = Math.floor((1700 - window.innerWidth) / 100) + 1;\r\n if (reducedValue > 5) reducedValue = 5;\r\n pieRadius = pieRadius - (reducedValue * 5)\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n }\r\n\r\n}\r\n","import React, { forwardRef, useImperativeHandle, useRef, useState } from \"react\";\r\nimport ReactFC from 'react-fusioncharts';\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport FusionCharts, { ChartObject } from 'fusioncharts';\r\nimport { FusionCharts as fusionCharts } from 'FusionCharts';\r\nimport Charts from 'fusioncharts/fusioncharts.charts';\r\nimport FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';\r\nimport { useEffect } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport { BuildFusionChartObject } from \"./FusionChartObjectBuilder\";\r\nimport useResizeObserver from \"use-resize-observer\";\r\nimport { FusionChartHelper } from \"./FusionChartHelper\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\nimport { Session } from \"../../../../services/session\";\r\n\r\nReactFC.fcRoot(FusionCharts, Charts, FusionTheme);\r\n\r\nFusionCharts.options['license']({\r\n key: 'prD4C-8eiA7A3A3C7E6G4B4A3J4C7B2D3D2nyqE1C3fd1npaE4D4tlA-21D7E4F4F1F1E1F4F1A10A8C2C5F5E2F2D1hwqD1B5D1aG4A19A32twbC6D3G4lhJ-7A9C11A5B-13ddA2I3A1B9B3D7A2B4G2H3H1F-7smC8B2XB4cetB8A7A5mxD3SG4F2tvgB2A3B2E4C3I3C7B3A4A3A2D3D2G4J-7==',\r\n creditLabel: false,\r\n});\r\n\r\nexport type FusionChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst FusionChart = forwardRef((props: FusionChartProps, comRef) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n\r\n const widget = useRef<ReactWidgetPM>();\r\n const [args, setArgs] = useState<ChartObject>({});\r\n const [fChart, setFchart] = useState<fusionCharts>();\r\n const id = (Math.random() + 1).toString(36).substring(7);\r\n const progressRef = useRef<any>(null);\r\n const fusionRef = useRef<any>(null);\r\n const fusionChartHelper = useRef<FusionChartHelper>();\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let timeout: any;\r\n const handleResize = () => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n HandleSizeChange();\r\n }, 200);\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n HandleSizeChange();\r\n }\r\n }));\r\n\r\n const HandleSizeChange = () => {\r\n if (!widget || (widget.current?.TypeCode != \"pie\" && widget.current?.TypeCode != \"donut\")) return;\r\n setTimeout(function () {\r\n var oldPieRadius = fusionChartHelper?.current?.getPieRadius();\r\n fusionChartHelper?.current?.trimChartLabels(fusionRef?.current?.offsetWidth, fusionRef?.current?.offsetHeight)!;\r\n if (oldPieRadius == fusionChartHelper?.current?.getPieRadius()) return;\r\n\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n setDataLoaded(true);\r\n }, 100);\r\n }, 100);\r\n }\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n handleData(null);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n handleData(result?.data);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n })\r\n }\r\n\r\n const handleData = (data : any): void => {\r\n let chart = BuildFusionChartObject(data, widget.current!);\r\n fusionChartHelper.current = new FusionChartHelper(widget.current!, chart);\r\n fusionChartHelper?.current.trimChartLabels(progressRef?.current?.offsetWidth, progressRef?.current?.offsetHeight)!;\r\n setArgs(chart);\r\n setDataLoaded(true);\r\n }\r\n\r\n const dataplotClick = (eventObj: any, dataObj: any): void => {\r\n props.onSelectDataPoint({\r\n GroupById: dataObj.id.groupbyid,\r\n MeasureFieldId: dataObj.id.measurefieldid,\r\n Widget: widget.current,\r\n GroupByIdSec: dataObj.id.groupbyidsec\r\n });\r\n };\r\n\r\n const renderComplete = (chart: any): void => {\r\n setFchart(chart);\r\n }\r\n\r\n const drawComplete = (event: any): void => {\r\n\r\n }\r\n\r\n const { ref } = useResizeObserver<HTMLDivElement>({\r\n onResize: ({ width, height }) => {\r\n fChart?.resizeTo(width as number, height as number);\r\n },\r\n });\r\n\r\n return (\r\n !dataLoaded ?\r\n <div ref={progressRef} className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div className={'db-fc-parent-container'} ref={fusionRef}> <div className={'db-fc-container'} ref={ref} id={id}><ReactFC {...args} fcEvent-dataplotClick={dataplotClick} onRender={renderComplete} fcEvent-drawComplete={drawComplete} /></div> </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n </div>\r\n )\r\n});\r\nexport default FusionChart;\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport { DashboardDataBinding } from '../../types/DashboardDataBinding';\r\nimport CustomChart from \"./ChartsComponents/CustomCharts/CustomChart\";\r\nimport { Tooltip } from 'primereact/tooltip';\r\nimport FusionChart from \"./ChartsComponents/FusionCharts/FusionChart\";\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any): any;\r\n deleteBtnClicked(i: any): any;\r\n widget: ReactWidgetPM | undefined;\r\n widgetRef: ReactWidgetPM | undefined;\r\n el: any;\r\n dateFilter: any;\r\n dataBinding: DashboardDataBinding;\r\n isInEditMode: boolean;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n}\r\n\r\n\r\nconst WidgetCard = forwardRef((props: WidgetCardProps, comRef) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n const widget = useRef<ReactWidgetPM>();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [tooltip, showTooltip] = useState(false);\r\n const fusionChartRef = useRef<any>(null);\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(widget.current)\r\n };\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e?.key != widget.current?.key) return;\r\n setIsLoading(true);\r\n widget.current = { ...e };\r\n setIsLoading(false);\r\n })\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n fusionChartRef?.current?.onResizeFinish();\r\n }\r\n }));\r\n\r\n\r\n return (\r\n <div className=\"dl-panel\" key={props.el.i} style={{ cursor: props.isInEditMode ? 'move' : 'default' }} >\r\n <header>\r\n <div style={{ display: 'flex', width: 'calc(100% - 3rem)' }}>\r\n <Tooltip target=\".h-tool-tip\" />\r\n <h1 data-pr-tooltip={widget.current?.Title} data-pr-position=\"top\" className=\"h-tool-tip\"\r\n onMouseEnter={() => showTooltip(true)}\r\n onMouseLeave={() => {\r\n showTooltip(false);\r\n setTimeout(() => showTooltip(true), 50);\r\n }}>{widget.current?.Title}</h1>\r\n </div>\r\n\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n style={{ color: \"#292D30\" }}\r\n />\r\n : null\r\n }\r\n\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={editWidget} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.widget?.key)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n <div style={{ width: '100%' }}>\r\n <div className=\"dl-line\"></div>\r\n </div>\r\n\r\n <div className=\"dl-dashboard-widget\"> {GetChartComponent()} </div>\r\n </div>\r\n );\r\n\r\n function GetChartComponent(): React.ReactNode {\r\n if (isLoading || !widget.current?.TypeCode) return null;\r\n if (widget.current?.TypeCode == \"kpi\") return <CustomChart dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />;\r\n return <FusionChart ref={fusionChartRef} dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n});\r\n\r\nexport default WidgetCard;\r\n","export function deepClone (obj){\r\n return JSON.parse(JSON.stringify(obj))\r\n}","import { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\n\r\ntype DashboardDesignerProps = {\r\n editMode: boolean,\r\n Widgetlayouts: { lg: ReactWidgetPM[] },\r\n openEditWidget: (widget: ReactWidgetPM) => void\r\n onLayoutChange: (layouts: Layouts) => void,\r\n dataBinding: DashboardDataBinding,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void\r\n};\r\nconst DashboardDesigner = (props: DashboardDesignerProps) => {\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>({ lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [isInEditMode, setisInEditMode] = useState(false);\r\n const widgetsDictionaryRef = useRef<{ [k: string]: ReactWidgetPM }>({});\r\n const [widgets, setWidgets] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const gridLayoutComponent = useRef<any>(null);\r\n const entered = useRef<boolean>(false);\r\n const widgetCardRef = useRef<any[]>([]);\r\n\r\n\r\n useEffect(() => {\r\n FillLayout(props.Widgetlayouts);\r\n }, [props.Widgetlayouts]);\r\n\r\n const FillLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }) => {\r\n var clone: { lg: ReactWidgetPM[] } = deepClone(dashboardLayouts);\r\n var layout = createLayout(clone);\r\n FillWidgetDictionary(clone);\r\n setWidgets(clone);\r\n setLayouts(layout);\r\n UpdatePlaceholderDimensions(layout);\r\n }\r\n const FillWidgetDictionary = (clone: { lg: ReactWidgetPM[] }) => {\r\n for (const item of clone.lg) {\r\n widgetsDictionaryRef.current[item.key] = item;\r\n }\r\n }\r\n const createLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }): Layouts => {\r\n var layout: any = { lg: [] };\r\n dashboardLayouts.lg.map(w => w.Layout as Layout).forEach(e => {\r\n layout.lg.push(e)\r\n })\r\n return layout;\r\n }\r\n\r\n useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n function onLayoutChange(layout: any, changedLayouts: Layouts) {\r\n // layoutsRef.current = changedLayouts;\r\n UpdateWidget(changedLayouts);\r\n setLayouts(changedLayouts);\r\n UpdatePlaceholderDimensions(changedLayouts);\r\n if (entered.current == false) {\r\n entered.current = true;\r\n return;\r\n }\r\n props.onLayoutChange(changedLayouts);\r\n }\r\n\r\n function onResizeStop(event: any, oldItem: any) {\r\n widgetCardRef?.current?.find(x => x.i == oldItem.i)?.ref.onResizeFinish(widgetsDictionaryRef.current[oldItem.i].key);\r\n }\r\n\r\n function UpdateWidget(changedLayouts: Layouts) {\r\n for (const item of changedLayouts.lg) {\r\n if (widgetsDictionaryRef.current[item.i]) {\r\n widgetsDictionaryRef.current[item.i].Layout = item;\r\n }\r\n }\r\n }\r\n\r\n function deletePanel(id) {\r\n var newLayouts = { lg: layouts.lg.filter(e => e.i != id) }\r\n setLayouts(newLayouts);\r\n var newWidgets = { lg: widgets.lg.filter(e => e.key != id) }\r\n FillWidgetDictionary(newWidgets);\r\n setWidgets(newWidgets);\r\n props.onLayoutChange(newLayouts)\r\n };\r\n\r\n function editWidget(widget: ReactWidgetPM) {\r\n widget.ChangeSetOp = 'Update';\r\n props.openEditWidget(widget);\r\n };\r\n\r\n function UpdatePlaceholderDimensions(layouts: Layouts) {\r\n if (!layouts)\r\n return;\r\n var max = minimumPlaceholderRowsCount;\r\n for (const layout of layouts['lg']) {\r\n if (layout.y + layout.h > max)\r\n max = layout.y + layout.h;\r\n }\r\n\r\n var newPlaceholderRows = max + 2;\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setplaceholderRowsArray(Array.from({ length: newPlaceholderRows }).fill(null));\r\n }\r\n return (<div className=\"dl-full-hight-scroll\">\r\n <div className=\"dl-box\">\r\n <div className=\"dl-row dl-content\">\r\n <div className=\"dl-grid-container\">\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {isInEditMode ? placeholderRowsArray.map((e, i) =>\r\n array12.map((e, i) => (\r\n <div key={i}\r\n style={{\r\n height: layoutGridProps.rowHeight,\r\n }}\r\n ></div>\r\n ))\r\n\r\n ) : null}\r\n </div>\r\n\r\n\r\n <ResponsiveReactGridLayout ref={gridLayoutComponent}\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n isDraggable={isInEditMode}\r\n isResizable={isInEditMode}\r\n onWidthChange={() => { }}\r\n onResizeStop={onResizeStop}\r\n onLayoutChange={onLayoutChange}>\r\n\r\n {widgets.lg.map((widget, i) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n isInEditMode={isInEditMode}\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n widgetRef={widgetsDictionaryRef.current[widget.key]}\r\n el={widget}\r\n dataBinding={props.dataBinding}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n onSelectDataPoint={props.onSelectDataPoint}\r\n ref={el => {\r\n widgetCardRef.current[i] = {\r\n ref: el,\r\n i: widget.Layout?.i\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>);\r\n\r\n}\r\n\r\nexport const layoutGridProps = {\r\n rowHeight: 50,\r\n className: \"layout\",\r\n cols: { lg: 12, md: 6, sm: 2, xs: 1, xxs: 1 },\r\n useCSSTransforms: true,\r\n}\r\n\r\nexport default DashboardDesigner;\r\n","import * as React from 'react'\r\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { Session } from './services/session';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\nimport { deepClone } from './services/clone';\r\nimport { DataPointSelection } from './types/SeriesMeasure';\r\n\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n onChangeLayouts: (layouts: { lg: ReactWidgetPM[] }) => void,\r\n openEditWidget: (Widget: ReactWidgetPM) => void,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props?.token;\r\n\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n props.dataBinding.isOnEditLayout.subscribe(e => {\r\n setIsInEditMode(e);\r\n });\r\n props.dataBinding.onAddWidget.subscribe(w => {\r\n Widgetlayouts.current.lg.push(w);\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n }, [])\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n var layoutsDic: { [key: string]: Layout } = {};\r\n Object.keys(layouts).forEach(sizeType => {\r\n if (layouts[sizeType].length > 0) {\r\n layouts[sizeType].map(layout => {\r\n layoutsDic[layout.i] = layout;\r\n })\r\n return;\r\n }\r\n })\r\n var newWidgetlayouts: ReactWidgetPM[] = [];\r\n Widgetlayouts.current.lg.forEach(widget => {\r\n if (layoutsDic[widget.key]) {\r\n widget.StartPotistion = `${layoutsDic[widget.key].x},${layoutsDic[widget.key].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.key].w},${layoutsDic[widget.key].h}`;\r\n widget.Layout = layoutsDic[widget.key];\r\n newWidgetlayouts.push(widget);\r\n }\r\n\r\n });\r\n Widgetlayouts.current = { lg: newWidgetlayouts };\r\n props.onChangeLayouts(Widgetlayouts.current);\r\n }\r\n\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onSelectDataPoint={props.onSelectDataPoint} Widgetlayouts={widgetlayoutsState} dataBinding={props.dataBinding} editMode={isInEditMode} onLayoutChange={updateWidgets} openEditWidget={(widget: ReactWidgetPM) => props.openEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n )\r\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["Session","Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","Map","from","to","keys","Object","k","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","Token","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","dataLoaded","setDataLoaded","error","setError","useRef","data","setData","useEffect","current","customChartProps","setTimeout","RefreshData","Tenant","emptyData","Value","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","getRatioComponent","CompareWithPrevious","React","className","getArrowComponent","Ratio","ComparisonValue","style","marginTop","Increase","getPreviousValueComponent","prevtext","ComparisonAbbreviationSymbol","getValueData","getValueComponent","AbbreviationSymbol","Unit","ProgressSpinner","width","height","strokeWidth","animationDuration","onClick","Alighnment","src","CustomChart","project","TypeCode","mainYellowColor","mainRedColor","mainGreenColor","mainTurquoiseColor","mainBlueColor","mainPurpleColor","mainOrangeColor","getSeriesPositionColor","position","buildToolTip","value","seriesName","label","getTooltiplabel","getMeasureType","getTooltipValue","getTooltipPercentage","getCategoriesBasedDataSource","chartInfo","seriesMeasures","seriesMeasuresIsEmpty","handelNullLabels","chart","categories","buildCategories","dataset","buildDataSet","getStackedDataSource","buildStackedCategories","buildStackedDataSet","getSimpleDataSource","buildDataSource","forEach","element","Values","Label","hasValue","item","values","series","map","e","index","id","GroupById","tooltext","Name","color","dataSet","seriesPosition","seriesMeasure","datas","push","seriesname","anchorBgColor","anchorBorderColor","anchorBorderThickness","anchorHoverColor","renderAs","RenderAs","uniqueGroups","find","x","code","GroupByIdSec","LabelSec","group","buildStackedGroupData","secGroup","getUniqueGroupOrderdList","category","defautFontSize","defautFont","defautColor","BuildFusionChartObject","SecondaryGroupById","getBarObject","getStackedBarObject","getLineObject","getPieObject","getDonutObject","getColumnObject","getDefaultChartobject","type","getDefaultChartInfo","scrollPadding","flatScrollBars","showPercentValues","showLegend","legendItemFont","legendItemFontSize","setLineDash","chartTopMargin","chartBottomMargin","dataSource","chartLeftMargin","chartRightMargin","anchorradius","canvasBottomPadding","showValues","legendCaptionFontSize","legendCaptionFont","labelFontSize","labelFont","manageLabelOverflow","useEllipsesWhenOverflow","enableSmartLabels","pieRadius","divLineDashed","divLineDashLen","divLineDashGap","divLineColor","divLineAlpha","divLineThickness","dataFormat","theme","baseFont","baseFontSize","baseFontColor","legendCaptionFontColor","labelFontColor","enableSlicing","enableRotation","toolTipBgColor","showToolTipShadow","scrollHeight","scrollWidth","FusionChartHelper","getPieRadius","trimChartLabels","chartWidth","chartHeight","chartMinumunHeight","startPercantage","stepHeight","step","Math","floor","window","innerWidth","reducedValue","ReactFC","fcRoot","FusionCharts","Charts","FusionTheme","options","key","creditLabel","FusionChart","forwardRef","comRef","args","setArgs","fChart","setFchart","random","toString","progressRef","fusionRef","fusionChartHelper","timeout","handleResize","clearTimeout","HandleSizeChange","addEventListener","removeEventListener","useImperativeHandle","onResizeFinish","oldPieRadius","offsetWidth","offsetHeight","handleData","dataplotClick","eventObj","dataObj","groupbyid","measurefieldid","groupbyidsec","renderComplete","drawComplete","event","useResizeObserver","onResize","resizeTo","ref","onRender","WidgetCard","moreBtnToggle","isLoading","setIsLoading","tooltip","showTooltip","fusionChartRef","editWidget","hide","editBtnClicked","dataBinding","onEditWidget","subscribe","el","cursor","isInEditMode","display","Tooltip","target","Title","onMouseEnter","onMouseLeave","Button","icon","toggle","OverlayPanel","deleteBtnClicked","GetChartComponent","widgetRef","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","entered","widgetCardRef","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","w","Layout","editMode","onLayoutChange","changedLayouts","UpdateWidget","onResizeStop","oldItem","deletePanel","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","h","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","CurrentUserId","userId","tenant","onGetLayouts","isOnEditLayout","onAddWidget","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","EndPosition","onChangeLayouts"],"mappings":"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"}
@@ -201,7 +201,7 @@ var DashboardAnalyticsService = /*#__PURE__*/function () {
201
201
  }();
202
202
 
203
203
  var KpiChart = function KpiChart(props) {
204
- var _widget$current3;
204
+ var _widget$current3, _widget$current4;
205
205
 
206
206
  var _useState = useState(false),
207
207
  dataLoaded = _useState[0],
@@ -353,7 +353,7 @@ var KpiChart = function KpiChart(props) {
353
353
  }, React__default.createElement("div", {
354
354
  className: "dl-kpi-container",
355
355
  style: {
356
- marginTop: data !== null && data !== void 0 && data.CompareWithPrevious ? '7px' : '15.4px'
356
+ marginTop: ((_widget$current4 = widget.current) === null || _widget$current4 === void 0 ? void 0 : _widget$current4.Alighnment) != "Left" ? '0' : data !== null && data !== void 0 && data.CompareWithPrevious ? '7px' : '15.4px'
357
357
  }
358
358
  }, getValueComponent(), getPreviousValueComponent())) : React__default.createElement("div", {
359
359
  className: "dl-flex-content-center dl-full-hight",
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/services/session.ts","../src/services/tools.ts","../src/services/ApiServices.ts","../src/services/DashboardAnalyticsService.ts","../src/features/Dashboard/ChartsComponents/CustomCharts/KpiChart.tsx","../src/features/Dashboard/ChartsComponents/CustomCharts/CustomChart.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionColors.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartTooltip.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartDataSoruceBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["export class Session {\r\n public static CurrentUserId: string;\r\n public static Tenant: number;\r\n public static Token: string;\r\n}","export class Tools {\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n\r\n public static Map(from: any, to: any) {\r\n if (!from)\r\n return;\r\n if (!to)\r\n to = {};\r\n var keys = Object.keys(from);\r\n for (const k of keys) {\r\n if(from[k]){\r\n to[k] = from[k];\r\n }\r\n }\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { APIResult } from \"../types/APIResult\";\r\nimport { Session } from \"./session\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class ApiServices{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getByFilters<T>(api,filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get<APIResult<T>>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n get<T>(api) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.get<T>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n post<T>(api,date){\r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.post<T>(apiURL,date, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getTokenFromStorage(){\r\n return Session.Token || '';\r\n }\r\n private ConcatFiltersToURL(filters: ApiQueryFilters, urlparameters: string)\r\n {\r\n var mykeys = Object.keys(filters);\r\n var addtionalFiltersValues: string | null = null;\r\n\r\n for (var i in mykeys) {\r\n var propName = mykeys[i];\r\n var propValue = filters[propName];\r\n var ignoreFilter = ((propName.indexOf(\"Operator\") > 0 && propValue == \"Equals\") || propName == \"AdditionalFilters\");\r\n\r\n if (urlparameters != \"?\") {\r\n urlparameters = urlparameters.concat('&');\r\n }\r\n\r\n if (!ignoreFilter) {\r\n propValue = propValue ? encodeURIComponent(propValue) : '';\r\n urlparameters = urlparameters.concat(propName.concat('=').concat(propValue));\r\n }\r\n\r\n if (propName == \"AdditionalFilters\" && propValue.length > 0) {\r\n addtionalFiltersValues = JSON.stringify(propValue);\r\n }\r\n }\r\n\r\n if (addtionalFiltersValues) {\r\n urlparameters = urlparameters.concat(\"&AdditionalFilters=\").concat(addtionalFiltersValues);\r\n }\r\n return urlparameters;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { ReactDashboardPM } from \"../types/Dashboard\";\r\nimport { SeriesMeasure } from \"../types/SeriesMeasure\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\nimport { ReactWidgetPM } from '../types/widget';\r\nimport { KpiChartData } from \"../types/KpiChart\";\r\n\r\n\r\nexport class DashboardAnalyticsService{ \r\n _ApiServices:ApiServices;\r\n controller = 'DashboardAnalytics';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<SeriesMeasure[]>(`/api/${this.controller}/PostGetDataAnalytic`,widget);\r\n }\r\n\r\n getKpiData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<KpiChartData>(`/api/${this.controller}/PostGetKpiData`,widget);\r\n }\r\n \r\n \r\n}","import { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { Session } from \"../../../../services/session\";\r\nimport { KpiChartData } from \"../../../../types/KpiChart\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { CustomChartProps } from \"./CustomChart\";\r\n\r\ntype KpiChartProps = {\r\n customChartProps: CustomChartProps;\r\n};\r\nconst KpiChart = (props: KpiChartProps) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n const widget = useRef<ReactWidgetPM>();\r\n const [data, setData] = useState<KpiChartData>();\r\n\r\n useEffect(() => {\r\n widget.current = props.customChartProps.widget;\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, [])\r\n\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n const emptyData = {} as KpiChartData;\r\n emptyData.Value = 0;\r\n setData(emptyData);\r\n setDataLoaded(true);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getKpiData(postWidget as ReactWidgetPM).then(result => {\r\n setData(result.data);\r\n setDataLoaded(true);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n\r\n })\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (widget?.current?.WidgetMeasures) measureFieldId = widget?.current?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: widget.current\r\n });\r\n }\r\n\r\n function getRatioComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n return (\r\n <div className={\"dl-kpi-ratio-container\"}>\r\n {getArrowComponent()}\r\n <div className={'dl-kpi-ratio-text'}>{data?.Ratio} %</div>\r\n </div>\r\n );\r\n }\r\n\r\n function getArrowComponent(): React.ReactNode {\r\n if (!data) return null;\r\n\r\n if (data?.Ratio == 0 || data.Value == data.ComparisonValue || ((data.Value == \"0\" || data.Value == 0) && (data.ComparisonValue == \"0\" || data.ComparisonValue == 0)))\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"} style={{ marginTop: \"2px\" }}></span>\r\n </div>\r\n );\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-green\"}></span>\r\n </div>\r\n )\r\n\r\n return null;\r\n }\r\n\r\n\r\n\r\n function getPreviousValueComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n var prevtext = !data?.ComparisonValue ? '' : data?.ComparisonValue;\r\n prevtext = \"Previous: \" + prevtext;\r\n\r\n return (\r\n <div className={\"dl-kpi-prev-container\"}>\r\n <div className={\"dl-kpi-prev-text\"}>{prevtext}</div>\r\n {data?.ComparisonAbbreviationSymbol && <div className=\"dl-kpi-prev-abbreviationSymbol\">{data?.ComparisonAbbreviationSymbol}</div>}\r\n </div>\r\n );\r\n }\r\n\r\n function getValueData(): React.ReactNode {\r\n if(data?.Value == null)\r\n return (<div className=\"dl-kpi-no-data\">No data to display.</div>); \r\n\r\n return (<div className=\"dl-kpi-value dl-kpi-textTrimming\">{data?.Value}</div>);\r\n \r\n }\r\n\r\n function getValueComponent(): React.ReactNode {\r\n return (\r\n <div className={\"dl-kpi-sub-container\"}>\r\n {getValueData()}\r\n {data?.AbbreviationSymbol && <div className=\"dl-kpi-abbreviationSymbol\">{data?.AbbreviationSymbol}</div>}\r\n {data?.Unit && <div className=\"dl-kpi-unit\">{data?.Unit}</div>}\r\n {getRatioComponent()}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n !dataLoaded ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div onClick={kpiClick} className={(widget.current?.Alighnment == \"Left\" ? \"dl-kpi-container-click\" : \"dl-kpi-container-click dl-kpi-center-container\")}>\r\n <div className={\"dl-kpi-container\"} style={{ marginTop: data?.CompareWithPrevious ? '7px' : '15.4px' }}>\r\n {getValueComponent()}\r\n {getPreviousValueComponent()}\r\n </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n\r\n </div>\r\n );\r\n}\r\n\r\n\r\nexport default KpiChart;","import React from \"react\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport KpiChart from \"./KpiChart\";\r\n\r\n\r\nexport type CustomChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst CustomChart = (props: CustomChartProps) => {\r\n const project = () => {\r\n switch (props.widget?.TypeCode) {\r\n case \"kpi\": return <KpiChart customChartProps={props} />;\r\n default: return <div>Invalid Type</div>;\r\n }\r\n }\r\n return (\r\n <div className=\"dl-custom-chart-container\">{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","export const mainYellowColor = \"#F6CF33\"\r\nexport const mainRedColor = \"#EE5F77\"\r\nexport const mainGreenColor = \"#4AC76F\"\r\nexport const mainTurquoiseColor = \"#32C7C7\"\r\nexport const mainBlueColor = \"#369CFB\"\r\nexport const mainPurpleColor = \"#935BE0\"\r\nexport const mainOrangeColor = \"#FAAD14\"\r\n\r\nexport const lightYellowColor = \"#FBE799\"\r\nexport const lightRedColor = \"#F7AFBB\"\r\nexport const lightGreenColor = \"#A4E3B7\"\r\nexport const lightTurquoiseColor = \"#99E3E3\"\r\nexport const lightBlueColor = \"#9BCDFD\"\r\nexport const lightPurpleColor = \"#C9ADF0\"\r\nexport const lightOrangeColor = \"#FDD689\"\r\n\r\nexport const grey1Color = \"#F6F6F6\"\r\nexport const grey2Color = \"#F0F0F0\"\r\nexport const grey3Color = \"#D9D9D9\"\r\nexport const grey4Color = \"#A4A4A4\"","import { lightBlueColor, lightGreenColor, lightOrangeColor, lightPurpleColor, lightRedColor, lightTurquoiseColor, lightYellowColor, mainBlueColor, mainGreenColor, mainOrangeColor, mainPurpleColor, mainRedColor, mainTurquoiseColor, mainYellowColor } from \"./FusionColors\";\r\n\r\nexport interface ChartInfo {\r\n theme: string;\r\n scrollHeight: string;\r\n scrollWidth: string;\r\n scrollPadding: string;\r\n flatScrollBars: string;\r\n enableSlicing: string;\r\n chartLeftMargin: string;\r\n chartTopMargin: string;\r\n chartRightMargin: string;\r\n chartBottomMargin: string;\r\n baseFont: string;\r\n baseFontSize: string;\r\n showPercentValues: string;\r\n showValues: string;\r\n showLegend: string;\r\n lineColor: string;\r\n divLineDashed: string;\r\n divLineDashLen: string;\r\n divLineDashGap: string;\r\n divLineColor: string;\r\n divLineThickness: string;\r\n divLineAlpha: string;\r\n enableRotation: string;\r\n legendItemFont: string;\r\n legendItemFontSize: string;\r\n legendCaptionFont: string;\r\n legendCaptionFontSize: string;\r\n labelFont: string;\r\n labelFontSize: string;\r\n toolTipBorderColor: string;\r\n toolTipBgAlpha: string;\r\n showToolTipShadow: string;\r\n toolTipBgColor: string;\r\n plottooltext: string;\r\n anchorradius: string;\r\n canvasBottomPadding: string;\r\n labelDisplay: string;\r\n slantLabel: string;\r\n manageLabelOverflow: string;\r\n useEllipsesWhenOverflow: string;\r\n enableSmartLabels: string;\r\n pieRadius: string;\r\n doughnutRadius: string;\r\n baseFontColor: string;\r\n legendCaptionFontColor: string;\r\n labelFontColor: string;\r\n}\r\n\r\n\r\nexport function getSeriesPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return mainBlueColor;\r\n case 2: return mainGreenColor;\r\n case 3: return mainYellowColor;\r\n case 4: return mainTurquoiseColor;\r\n case 5: return mainPurpleColor;\r\n case 6: return mainOrangeColor;\r\n case 7: return mainRedColor;\r\n default: return null;\r\n }\r\n}\r\n\r\nexport function getSeriesHoverPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return lightBlueColor;\r\n case 2: return lightGreenColor;\r\n case 3: return lightYellowColor;\r\n case 4: return lightTurquoiseColor;\r\n case 5: return lightPurpleColor;\r\n case 6: return lightOrangeColor;\r\n case 7: return lightRedColor;\r\n default: return null;\r\n }\r\n}\r\n","import { ReactWidgetPM } from \"../../../../types/widget\";\r\n\r\nexport function buildToolTip(widget: ReactWidgetPM, value: any, seriesName: string, label : any): string {\r\n return `\r\n <div style=\"min-width: 108px;\">\r\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\r\n <span style=\"margin: 0; height: 10px; width: 10px; background-color: #A4A4A4; border-radius: 50%; display: inline-block;\"></span>\r\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;\"> ` + getTooltiplabel(label) + `</p>\r\n </div>\r\n <hr style=\"margin: 0;border-top: 1px solid #F0F0F0;\">\r\n <div style=\"display: flex;align-items: center;margin:0;margin-top: 6px;\">\r\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;\"> ` + getMeasureType(seriesName) + `</p>\r\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;\">` + getTooltipValue(value) + `</p>\r\n ` + getTooltipPercentage(widget) +\r\n ` </div>\r\n </div>\r\n `;\r\n}\r\n\r\nfunction getTooltipPercentage(widget: ReactWidgetPM): string {\r\n if (widget.TypeCode != \"donut\" && widget.TypeCode != \"pie\") return \"\";\r\n return `\r\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>\r\n `;\r\n}\r\n\r\nfunction getTooltiplabel(value: any): string {\r\n if (value) return value;\r\n return '$label';\r\n}\r\n\r\nfunction getTooltipValue(value: any): string {\r\n if (value) return value;\r\n return '$dataValue';\r\n}\r\n\r\nfunction getMeasureType(seriesName: any): string {\r\n if (!seriesName) return \"Count:\"\r\n return seriesName.replace(/ .*/, '') + \":\";\r\n}","import { SeriesMeasure, SeriesMeasureValue } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo, getSeriesPositionColor } from \"./FusionChartObjectHelper\";\r\nimport { buildToolTip } from \"./FusionChartTooltip\";\r\n\r\n\r\nexport function getCategoriesBasedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildCategories(seriesMeasures),\r\n dataset: buildDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\nexport function getStackedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildStackedCategories(seriesMeasures, widget),\r\n dataset: buildStackedDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\n\r\nexport function getSimpleDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n data: buildDataSource(seriesMeasures, widget),\r\n }\r\n}\r\n\r\nfunction handelNullLabels(seriesMeasures: SeriesMeasure[]) {\r\n seriesMeasures.forEach(element => {\r\n element.Values.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n}\r\n\r\nfunction seriesMeasuresIsEmpty(seriesMeasures: SeriesMeasure[]): boolean {\r\n if (!seriesMeasures || seriesMeasures.length == 0) return true;\r\n let hasValue = false;\r\n seriesMeasures.forEach(item => {\r\n if (item.Values && item.Values.length > 0) hasValue = true;\r\n });\r\n return !hasValue;\r\n}\r\n\r\nfunction buildDataSource(values: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let data: any[] = [];\r\n if (!values || !values[0]) return data;\r\n\r\n var series = values[0];\r\n data = series.Values.map((e, index) => {\r\n let item = {\r\n value: e.Value,\r\n label: e.Label,\r\n id: { GroupById: e.GroupById, MeasureFieldId: series.MeasureFieldId },\r\n tooltext: buildToolTip(widget, null, series.Name, e.Label),\r\n color: getSeriesPositionColor(index + 1)\r\n }\r\n return item;\r\n });\r\n return data;\r\n}\r\n\r\nfunction buildDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n seriesMeasures.forEach(seriesMeasure => {\r\n let datas = seriesMeasure.Values.map(e => {\r\n return { value: e.Value, id: { GroupById: e.GroupById, MeasureFieldId: seriesMeasure.MeasureFieldId }, tooltext: buildToolTip(widget, e.Value, seriesMeasure.Name, null) }\r\n });\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n data: datas,\r\n seriesname: seriesMeasure.Name,\r\n color: color,\r\n anchorBgColor: color,\r\n anchorBorderColor: \"#FFFFFF\",\r\n anchorBorderThickness: \"2\",\r\n anchorHoverColor: color,\r\n renderAs: seriesMeasure.RenderAs == \"default\" ? null : seriesMeasure.RenderAs,\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n var series = seriesMeasures[0];\r\n\r\n const uniqueGroups: any[] = [];\r\n\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupByIdSec))\r\n uniqueGroups.push({ code: element.GroupByIdSec, label: element.LabelSec })\r\n });\r\n\r\n\r\n uniqueGroups.forEach(group => {\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n seriesName: group.label,\r\n color: color,\r\n data: buildStackedGroupData(group, series, widget)\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedGroupData(secGroup: any, series: SeriesMeasure, widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(series);\r\n\r\n let data: any[] = [];\r\n uniqueGroups.forEach(group => {\r\n data.push({\r\n value: series.Values.find(x => x.GroupById == group.code && x.GroupByIdSec == secGroup.code)?.Value,\r\n id: { GroupById: group.code, MeasureFieldId: series.MeasureFieldId, GroupByIdSec: secGroup.code },\r\n tooltext: buildToolTip(widget, null, series.Name, group.label + \" - \" + secGroup.label),\r\n })\r\n });\r\n\r\n return data;\r\n}\r\nfunction buildCategories(seriesMeasures: SeriesMeasure[]) {\r\n var categories = seriesMeasures[0].Values.map((e) => {\r\n return {\r\n label: e.Label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction buildStackedCategories(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(seriesMeasures[0]);\r\n\r\n var categories = uniqueGroups.map((e) => {\r\n return {\r\n label: e.label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction getUniqueGroupOrderdList(series: SeriesMeasure) {\r\n let uniqueGroups: any[] = [];\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupById))\r\n uniqueGroups.push({ code: element.GroupById, label: element.Label});\r\n });\r\n return uniqueGroups;\r\n}\r\n\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { SeriesMeasure } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { getCategoriesBasedDataSource, getSimpleDataSource, getStackedDataSource } from \"./FusionChartDataSoruceBuilder\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nconst defautFontSize = \"10\";\r\nconst defautFont = \"Manrope\";\r\nconst defautColor = \"#323232\";\r\n\r\n\r\nexport function BuildFusionChartObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n switch (widget?.TypeCode) {\r\n case 'bar':\r\n if (!widget.SecondaryGroupById) return getBarObject(seriesMeasures, widget);\r\n return getStackedBarObject(seriesMeasures, widget);\r\n case 'line':\r\n return getLineObject(seriesMeasures, widget);\r\n case 'pie':\r\n return getPieObject(seriesMeasures, widget);\r\n case 'donut':\r\n return getDonutObject(seriesMeasures, widget);\r\n case 'column':\r\n return getColumnObject(seriesMeasures, widget);\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction getBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getStackedBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollstackedbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.showLegend = \"1\";\r\n\r\n chart.dataSource = getStackedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getLineObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollline2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.anchorradius = \"5\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getDonutObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"doughnut2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getPieObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"pie2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getColumnObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollcombi2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n \r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction setLineDash(chartInfo: ChartInfo) {\r\n chartInfo.divLineDashed = \"1\";\r\n chartInfo.divLineDashLen = \"5\";\r\n chartInfo.divLineDashGap = \"5\";\r\n chartInfo.divLineColor = \"#E7E7E7\";\r\n chartInfo.divLineAlpha = \"100\";\r\n chartInfo.divLineThickness = \"1\";\r\n}\r\n\r\n\r\nfunction getDefaultChartobject(): ChartObject {\r\n let chart = {} as ChartObject;\r\n chart.type = \"column2d\";\r\n chart.width = \"100%\";\r\n chart.height = \"100%\";\r\n chart.dataFormat = \"json\";\r\n return chart;\r\n}\r\n\r\nfunction getDefaultChartInfo(widget: ReactWidgetPM): ChartInfo {\r\n let chart = {} as ChartInfo;\r\n chart.theme = \"fusion\";\r\n chart.baseFont = defautFont;\r\n chart.baseFontSize = defautFontSize;\r\n chart.baseFontColor = defautColor;\r\n chart.legendCaptionFontSize = defautFontSize;\r\n chart.legendCaptionFontColor = defautColor;\r\n chart.legendCaptionFont = defautFont;\r\n chart.labelFontSize = defautFontSize;\r\n chart.labelFontColor = defautColor;\r\n chart.labelFont = defautFont;\r\n chart.enableSlicing = \"0\";\r\n chart.enableRotation = \"0\";\r\n chart.chartTopMargin = \"10\";\r\n chart.chartBottomMargin = \"10\";\r\n chart.chartLeftMargin = \"40\";\r\n chart.chartRightMargin = \"40\";\r\n chart.toolTipBgColor = \"#FFFFFF\";\r\n chart.showToolTipShadow = \"1\";\r\n chart.scrollHeight = \"6\";\r\n chart.scrollWidth = \"6\";\r\n return chart;\r\n}\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nexport class FusionChartHelper {\r\n private chart: ChartObject;\r\n private widget: ReactWidgetPM;\r\n private pieRadius: number;\r\n\r\n constructor(widget: ReactWidgetPM, chart: ChartObject) {\r\n this.chart = chart;\r\n this.widget = widget;\r\n }\r\n\r\n public getPieRadius(): number {\r\n return this.pieRadius;\r\n }\r\n\r\n public trimChartLabels(chartWidth: number, chartHeight: number) {\r\n if (!this.widget || (this.widget.TypeCode != \"pie\" && this.widget.TypeCode != \"donut\")) return;\r\n if (!this.chart) return;\r\n\r\n let chartMinumunHeight = 236;\r\n var startPercantage = 70;\r\n let stepHeight = 60;\r\n\r\n var dataSource = this.chart?.dataSource;\r\n if(!dataSource) return;\r\n\r\n var chartInfo = (dataSource as any).chart as ChartInfo;\r\n var step = Math.floor((chartHeight - chartMinumunHeight) / stepHeight);\r\n if (step < 0) step = 0;\r\n\r\n\r\n var pieRadius = startPercantage - (step * 10);\r\n if (pieRadius < 60) pieRadius = 60;\r\n\r\n if (window.innerWidth > 1700) {\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n return;\r\n }\r\n\r\n let reducedValue = Math.floor((1700 - window.innerWidth) / 100) + 1;\r\n if (reducedValue > 5) reducedValue = 5;\r\n pieRadius = pieRadius - (reducedValue * 5)\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n }\r\n\r\n}\r\n","import React, { forwardRef, useImperativeHandle, useRef, useState } from \"react\";\r\nimport ReactFC from 'react-fusioncharts';\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport FusionCharts, { ChartObject } from 'fusioncharts';\r\nimport { FusionCharts as fusionCharts } from 'FusionCharts';\r\nimport Charts from 'fusioncharts/fusioncharts.charts';\r\nimport FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';\r\nimport { useEffect } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport { BuildFusionChartObject } from \"./FusionChartObjectBuilder\";\r\nimport useResizeObserver from \"use-resize-observer\";\r\nimport { FusionChartHelper } from \"./FusionChartHelper\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\nimport { Session } from \"../../../../services/session\";\r\n\r\nReactFC.fcRoot(FusionCharts, Charts, FusionTheme);\r\n\r\nFusionCharts.options['license']({\r\n key: 'prD4C-8eiA7A3A3C7E6G4B4A3J4C7B2D3D2nyqE1C3fd1npaE4D4tlA-21D7E4F4F1F1E1F4F1A10A8C2C5F5E2F2D1hwqD1B5D1aG4A19A32twbC6D3G4lhJ-7A9C11A5B-13ddA2I3A1B9B3D7A2B4G2H3H1F-7smC8B2XB4cetB8A7A5mxD3SG4F2tvgB2A3B2E4C3I3C7B3A4A3A2D3D2G4J-7==',\r\n creditLabel: false,\r\n});\r\n\r\nexport type FusionChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst FusionChart = forwardRef((props: FusionChartProps, comRef) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n\r\n const widget = useRef<ReactWidgetPM>();\r\n const [args, setArgs] = useState<ChartObject>({});\r\n const [fChart, setFchart] = useState<fusionCharts>();\r\n const id = (Math.random() + 1).toString(36).substring(7);\r\n const progressRef = useRef<any>(null);\r\n const fusionRef = useRef<any>(null);\r\n const fusionChartHelper = useRef<FusionChartHelper>();\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let timeout: any;\r\n const handleResize = () => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n HandleSizeChange();\r\n }, 200);\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n HandleSizeChange();\r\n }\r\n }));\r\n\r\n const HandleSizeChange = () => {\r\n if (!widget || (widget.current?.TypeCode != \"pie\" && widget.current?.TypeCode != \"donut\")) return;\r\n setTimeout(function () {\r\n var oldPieRadius = fusionChartHelper?.current?.getPieRadius();\r\n fusionChartHelper?.current?.trimChartLabels(fusionRef?.current?.offsetWidth, fusionRef?.current?.offsetHeight)!;\r\n if (oldPieRadius == fusionChartHelper?.current?.getPieRadius()) return;\r\n\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n setDataLoaded(true);\r\n }, 100);\r\n }, 100);\r\n }\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n handleData(null);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n handleData(result?.data);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n })\r\n }\r\n\r\n const handleData = (data : any): void => {\r\n let chart = BuildFusionChartObject(data, widget.current!);\r\n fusionChartHelper.current = new FusionChartHelper(widget.current!, chart);\r\n fusionChartHelper?.current.trimChartLabels(progressRef?.current?.offsetWidth, progressRef?.current?.offsetHeight)!;\r\n setArgs(chart);\r\n setDataLoaded(true);\r\n }\r\n\r\n const dataplotClick = (eventObj: any, dataObj: any): void => {\r\n props.onSelectDataPoint({\r\n GroupById: dataObj.id.groupbyid,\r\n MeasureFieldId: dataObj.id.measurefieldid,\r\n Widget: widget.current,\r\n GroupByIdSec: dataObj.id.groupbyidsec\r\n });\r\n };\r\n\r\n const renderComplete = (chart: any): void => {\r\n setFchart(chart);\r\n }\r\n\r\n const drawComplete = (event: any): void => {\r\n\r\n }\r\n\r\n const { ref } = useResizeObserver<HTMLDivElement>({\r\n onResize: ({ width, height }) => {\r\n fChart?.resizeTo(width as number, height as number);\r\n },\r\n });\r\n\r\n return (\r\n !dataLoaded ?\r\n <div ref={progressRef} className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div className={'db-fc-parent-container'} ref={fusionRef}> <div className={'db-fc-container'} ref={ref} id={id}><ReactFC {...args} fcEvent-dataplotClick={dataplotClick} onRender={renderComplete} fcEvent-drawComplete={drawComplete} /></div> </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n </div>\r\n )\r\n});\r\nexport default FusionChart;\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport { DashboardDataBinding } from '../../types/DashboardDataBinding';\r\nimport CustomChart from \"./ChartsComponents/CustomCharts/CustomChart\";\r\nimport { Tooltip } from 'primereact/tooltip';\r\nimport FusionChart from \"./ChartsComponents/FusionCharts/FusionChart\";\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any): any;\r\n deleteBtnClicked(i: any): any;\r\n widget: ReactWidgetPM | undefined;\r\n widgetRef: ReactWidgetPM | undefined;\r\n el: any;\r\n dateFilter: any;\r\n dataBinding: DashboardDataBinding;\r\n isInEditMode: boolean;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n}\r\n\r\n\r\nconst WidgetCard = forwardRef((props: WidgetCardProps, comRef) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n const widget = useRef<ReactWidgetPM>();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [tooltip, showTooltip] = useState(false);\r\n const fusionChartRef = useRef<any>(null);\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(widget.current)\r\n };\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e?.key != widget.current?.key) return;\r\n setIsLoading(true);\r\n widget.current = { ...e };\r\n setIsLoading(false);\r\n })\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n fusionChartRef?.current?.onResizeFinish();\r\n }\r\n }));\r\n\r\n\r\n return (\r\n <div className=\"dl-panel\" key={props.el.i} style={{ cursor: props.isInEditMode ? 'move' : 'default' }} >\r\n <header>\r\n <div style={{ display: 'flex', width: 'calc(100% - 3rem)' }}>\r\n <Tooltip target=\".h-tool-tip\" />\r\n <h1 data-pr-tooltip={widget.current?.Title} data-pr-position=\"top\" className=\"h-tool-tip\"\r\n onMouseEnter={() => showTooltip(true)}\r\n onMouseLeave={() => {\r\n showTooltip(false);\r\n setTimeout(() => showTooltip(true), 50);\r\n }}>{widget.current?.Title}</h1>\r\n </div>\r\n\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n style={{ color: \"#292D30\" }}\r\n />\r\n : null\r\n }\r\n\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={editWidget} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.widget?.key)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n <div style={{ width: '100%' }}>\r\n <div className=\"dl-line\"></div>\r\n </div>\r\n\r\n <div className=\"dl-dashboard-widget\"> {GetChartComponent()} </div>\r\n </div>\r\n );\r\n\r\n function GetChartComponent(): React.ReactNode {\r\n if (isLoading || !widget.current?.TypeCode) return null;\r\n if (widget.current?.TypeCode == \"kpi\") return <CustomChart dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />;\r\n return <FusionChart ref={fusionChartRef} dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n});\r\n\r\nexport default WidgetCard;\r\n","export function deepClone (obj){\r\n return JSON.parse(JSON.stringify(obj))\r\n}","import { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\n\r\ntype DashboardDesignerProps = {\r\n editMode: boolean,\r\n Widgetlayouts: { lg: ReactWidgetPM[] },\r\n openEditWidget: (widget: ReactWidgetPM) => void\r\n onLayoutChange: (layouts: Layouts) => void,\r\n dataBinding: DashboardDataBinding,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void\r\n};\r\nconst DashboardDesigner = (props: DashboardDesignerProps) => {\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>({ lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [isInEditMode, setisInEditMode] = useState(false);\r\n const widgetsDictionaryRef = useRef<{ [k: string]: ReactWidgetPM }>({});\r\n const [widgets, setWidgets] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const gridLayoutComponent = useRef<any>(null);\r\n const entered = useRef<boolean>(false);\r\n const widgetCardRef = useRef<any[]>([]);\r\n\r\n\r\n useEffect(() => {\r\n FillLayout(props.Widgetlayouts);\r\n }, [props.Widgetlayouts]);\r\n\r\n const FillLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }) => {\r\n var clone: { lg: ReactWidgetPM[] } = deepClone(dashboardLayouts);\r\n var layout = createLayout(clone);\r\n FillWidgetDictionary(clone);\r\n setWidgets(clone);\r\n setLayouts(layout);\r\n UpdatePlaceholderDimensions(layout);\r\n }\r\n const FillWidgetDictionary = (clone: { lg: ReactWidgetPM[] }) => {\r\n for (const item of clone.lg) {\r\n widgetsDictionaryRef.current[item.key] = item;\r\n }\r\n }\r\n const createLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }): Layouts => {\r\n var layout: any = { lg: [] };\r\n dashboardLayouts.lg.map(w => w.Layout as Layout).forEach(e => {\r\n layout.lg.push(e)\r\n })\r\n return layout;\r\n }\r\n\r\n useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n function onLayoutChange(layout: any, changedLayouts: Layouts) {\r\n // layoutsRef.current = changedLayouts;\r\n UpdateWidget(changedLayouts);\r\n setLayouts(changedLayouts);\r\n UpdatePlaceholderDimensions(changedLayouts);\r\n if (entered.current == false) {\r\n entered.current = true;\r\n return;\r\n }\r\n props.onLayoutChange(changedLayouts);\r\n }\r\n\r\n function onResizeStop(event: any, oldItem: any) {\r\n widgetCardRef?.current?.find(x => x.i == oldItem.i)?.ref.onResizeFinish(widgetsDictionaryRef.current[oldItem.i].key);\r\n }\r\n\r\n function UpdateWidget(changedLayouts: Layouts) {\r\n for (const item of changedLayouts.lg) {\r\n if (widgetsDictionaryRef.current[item.i]) {\r\n widgetsDictionaryRef.current[item.i].Layout = item;\r\n }\r\n }\r\n }\r\n\r\n function deletePanel(id) {\r\n var newLayouts = { lg: layouts.lg.filter(e => e.i != id) }\r\n setLayouts(newLayouts);\r\n var newWidgets = { lg: widgets.lg.filter(e => e.key != id) }\r\n FillWidgetDictionary(newWidgets);\r\n setWidgets(newWidgets);\r\n props.onLayoutChange(newLayouts)\r\n };\r\n\r\n function editWidget(widget: ReactWidgetPM) {\r\n widget.ChangeSetOp = 'Update';\r\n props.openEditWidget(widget);\r\n };\r\n\r\n function UpdatePlaceholderDimensions(layouts: Layouts) {\r\n if (!layouts)\r\n return;\r\n var max = minimumPlaceholderRowsCount;\r\n for (const layout of layouts['lg']) {\r\n if (layout.y + layout.h > max)\r\n max = layout.y + layout.h;\r\n }\r\n\r\n var newPlaceholderRows = max + 2;\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setplaceholderRowsArray(Array.from({ length: newPlaceholderRows }).fill(null));\r\n }\r\n return (<div className=\"dl-full-hight-scroll\">\r\n <div className=\"dl-box\">\r\n <div className=\"dl-row dl-content\">\r\n <div className=\"dl-grid-container\">\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {isInEditMode ? placeholderRowsArray.map((e, i) =>\r\n array12.map((e, i) => (\r\n <div key={i}\r\n style={{\r\n height: layoutGridProps.rowHeight,\r\n }}\r\n ></div>\r\n ))\r\n\r\n ) : null}\r\n </div>\r\n\r\n\r\n <ResponsiveReactGridLayout ref={gridLayoutComponent}\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n isDraggable={isInEditMode}\r\n isResizable={isInEditMode}\r\n onWidthChange={() => { }}\r\n onResizeStop={onResizeStop}\r\n onLayoutChange={onLayoutChange}>\r\n\r\n {widgets.lg.map((widget, i) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n isInEditMode={isInEditMode}\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n widgetRef={widgetsDictionaryRef.current[widget.key]}\r\n el={widget}\r\n dataBinding={props.dataBinding}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n onSelectDataPoint={props.onSelectDataPoint}\r\n ref={el => {\r\n widgetCardRef.current[i] = {\r\n ref: el,\r\n i: widget.Layout?.i\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>);\r\n\r\n}\r\n\r\nexport const layoutGridProps = {\r\n rowHeight: 50,\r\n className: \"layout\",\r\n cols: { lg: 12, md: 6, sm: 2, xs: 1, xxs: 1 },\r\n useCSSTransforms: true,\r\n}\r\n\r\nexport default DashboardDesigner;\r\n","import * as React from 'react'\r\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { Session } from './services/session';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\nimport { deepClone } from './services/clone';\r\nimport { DataPointSelection } from './types/SeriesMeasure';\r\n\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n onChangeLayouts: (layouts: { lg: ReactWidgetPM[] }) => void,\r\n openEditWidget: (Widget: ReactWidgetPM) => void,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props?.token;\r\n\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n props.dataBinding.isOnEditLayout.subscribe(e => {\r\n setIsInEditMode(e);\r\n });\r\n props.dataBinding.onAddWidget.subscribe(w => {\r\n Widgetlayouts.current.lg.push(w);\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n }, [])\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n var layoutsDic: { [key: string]: Layout } = {};\r\n Object.keys(layouts).forEach(sizeType => {\r\n if (layouts[sizeType].length > 0) {\r\n layouts[sizeType].map(layout => {\r\n layoutsDic[layout.i] = layout;\r\n })\r\n return;\r\n }\r\n })\r\n var newWidgetlayouts: ReactWidgetPM[] = [];\r\n Widgetlayouts.current.lg.forEach(widget => {\r\n if (layoutsDic[widget.key]) {\r\n widget.StartPotistion = `${layoutsDic[widget.key].x},${layoutsDic[widget.key].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.key].w},${layoutsDic[widget.key].h}`;\r\n widget.Layout = layoutsDic[widget.key];\r\n newWidgetlayouts.push(widget);\r\n }\r\n\r\n });\r\n Widgetlayouts.current = { lg: newWidgetlayouts };\r\n props.onChangeLayouts(Widgetlayouts.current);\r\n }\r\n\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onSelectDataPoint={props.onSelectDataPoint} Widgetlayouts={widgetlayoutsState} dataBinding={props.dataBinding} editMode={isInEditMode} onLayoutChange={updateWidgets} openEditWidget={(widget: ReactWidgetPM) => props.openEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n )\r\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["Session","Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","Map","from","to","keys","Object","k","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","Token","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","dataLoaded","setDataLoaded","error","setError","useRef","data","setData","useEffect","current","customChartProps","setTimeout","RefreshData","Tenant","emptyData","Value","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","getRatioComponent","CompareWithPrevious","React","className","getArrowComponent","Ratio","ComparisonValue","style","marginTop","Increase","getPreviousValueComponent","prevtext","ComparisonAbbreviationSymbol","getValueData","getValueComponent","AbbreviationSymbol","Unit","ProgressSpinner","width","height","strokeWidth","animationDuration","onClick","Alighnment","src","CustomChart","project","TypeCode","mainYellowColor","mainRedColor","mainGreenColor","mainTurquoiseColor","mainBlueColor","mainPurpleColor","mainOrangeColor","getSeriesPositionColor","position","buildToolTip","value","seriesName","label","getTooltiplabel","getMeasureType","getTooltipValue","getTooltipPercentage","getCategoriesBasedDataSource","chartInfo","seriesMeasures","seriesMeasuresIsEmpty","handelNullLabels","chart","categories","buildCategories","dataset","buildDataSet","getStackedDataSource","buildStackedCategories","buildStackedDataSet","getSimpleDataSource","buildDataSource","forEach","element","Values","Label","hasValue","item","values","series","map","e","index","id","GroupById","tooltext","Name","color","dataSet","seriesPosition","seriesMeasure","datas","push","seriesname","anchorBgColor","anchorBorderColor","anchorBorderThickness","anchorHoverColor","renderAs","RenderAs","uniqueGroups","find","x","code","GroupByIdSec","LabelSec","group","buildStackedGroupData","secGroup","getUniqueGroupOrderdList","category","defautFontSize","defautFont","defautColor","BuildFusionChartObject","SecondaryGroupById","getBarObject","getStackedBarObject","getLineObject","getPieObject","getDonutObject","getColumnObject","getDefaultChartobject","type","getDefaultChartInfo","scrollPadding","flatScrollBars","showPercentValues","showLegend","legendItemFont","legendItemFontSize","setLineDash","chartTopMargin","chartBottomMargin","dataSource","chartLeftMargin","chartRightMargin","anchorradius","canvasBottomPadding","showValues","legendCaptionFontSize","legendCaptionFont","labelFontSize","labelFont","manageLabelOverflow","useEllipsesWhenOverflow","enableSmartLabels","pieRadius","divLineDashed","divLineDashLen","divLineDashGap","divLineColor","divLineAlpha","divLineThickness","dataFormat","theme","baseFont","baseFontSize","baseFontColor","legendCaptionFontColor","labelFontColor","enableSlicing","enableRotation","toolTipBgColor","showToolTipShadow","scrollHeight","scrollWidth","FusionChartHelper","getPieRadius","trimChartLabels","chartWidth","chartHeight","chartMinumunHeight","startPercantage","stepHeight","step","Math","floor","window","innerWidth","reducedValue","ReactFC","fcRoot","FusionCharts","Charts","FusionTheme","options","key","creditLabel","FusionChart","forwardRef","comRef","args","setArgs","fChart","setFchart","random","toString","progressRef","fusionRef","fusionChartHelper","timeout","handleResize","clearTimeout","HandleSizeChange","addEventListener","removeEventListener","useImperativeHandle","onResizeFinish","oldPieRadius","offsetWidth","offsetHeight","handleData","dataplotClick","eventObj","dataObj","groupbyid","measurefieldid","groupbyidsec","renderComplete","drawComplete","event","useResizeObserver","onResize","resizeTo","ref","onRender","WidgetCard","moreBtnToggle","isLoading","setIsLoading","tooltip","showTooltip","fusionChartRef","editWidget","hide","editBtnClicked","dataBinding","onEditWidget","subscribe","el","cursor","isInEditMode","display","Tooltip","target","Title","onMouseEnter","onMouseLeave","Button","icon","toggle","OverlayPanel","deleteBtnClicked","GetChartComponent","widgetRef","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","entered","widgetCardRef","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","w","Layout","editMode","onLayoutChange","changedLayouts","UpdateWidget","onResizeStop","oldItem","deletePanel","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","h","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","CurrentUserId","userId","tenant","onGetLayouts","isOnEditLayout","onAddWidget","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","EndPosition","onChangeLayouts"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/services/session.ts","../src/services/tools.ts","../src/services/ApiServices.ts","../src/services/DashboardAnalyticsService.ts","../src/features/Dashboard/ChartsComponents/CustomCharts/KpiChart.tsx","../src/features/Dashboard/ChartsComponents/CustomCharts/CustomChart.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionColors.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartTooltip.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartDataSoruceBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartObjectBuilder.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChartHelper.tsx","../src/features/Dashboard/ChartsComponents/FusionCharts/FusionChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["export class Session {\r\n public static CurrentUserId: string;\r\n public static Tenant: number;\r\n public static Token: string;\r\n}","export class Tools {\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n\r\n public static Map(from: any, to: any) {\r\n if (!from)\r\n return;\r\n if (!to)\r\n to = {};\r\n var keys = Object.keys(from);\r\n for (const k of keys) {\r\n if(from[k]){\r\n to[k] = from[k];\r\n }\r\n }\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { APIResult } from \"../types/APIResult\";\r\nimport { Session } from \"./session\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class ApiServices{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getByFilters<T>(api,filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get<APIResult<T>>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n get<T>(api) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.get<T>(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n post<T>(api,date){\r\n let token: string = this.getTokenFromStorage();\r\n\t\tvar apiURL = `${this._apiUrl}${api}`;\r\n return axios.post<T>(apiURL,date, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getTokenFromStorage(){\r\n return Session.Token || '';\r\n }\r\n private ConcatFiltersToURL(filters: ApiQueryFilters, urlparameters: string)\r\n {\r\n var mykeys = Object.keys(filters);\r\n var addtionalFiltersValues: string | null = null;\r\n\r\n for (var i in mykeys) {\r\n var propName = mykeys[i];\r\n var propValue = filters[propName];\r\n var ignoreFilter = ((propName.indexOf(\"Operator\") > 0 && propValue == \"Equals\") || propName == \"AdditionalFilters\");\r\n\r\n if (urlparameters != \"?\") {\r\n urlparameters = urlparameters.concat('&');\r\n }\r\n\r\n if (!ignoreFilter) {\r\n propValue = propValue ? encodeURIComponent(propValue) : '';\r\n urlparameters = urlparameters.concat(propName.concat('=').concat(propValue));\r\n }\r\n\r\n if (propName == \"AdditionalFilters\" && propValue.length > 0) {\r\n addtionalFiltersValues = JSON.stringify(propValue);\r\n }\r\n }\r\n\r\n if (addtionalFiltersValues) {\r\n urlparameters = urlparameters.concat(\"&AdditionalFilters=\").concat(addtionalFiltersValues);\r\n }\r\n return urlparameters;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { ReactDashboardPM } from \"../types/Dashboard\";\r\nimport { SeriesMeasure } from \"../types/SeriesMeasure\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\nimport { ReactWidgetPM } from '../types/widget';\r\nimport { KpiChartData } from \"../types/KpiChart\";\r\n\r\n\r\nexport class DashboardAnalyticsService{ \r\n _ApiServices:ApiServices;\r\n controller = 'DashboardAnalytics';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<SeriesMeasure[]>(`/api/${this.controller}/PostGetDataAnalytic`,widget);\r\n }\r\n\r\n getKpiData(widget: ReactWidgetPM) {\r\n return this._ApiServices.post<KpiChartData>(`/api/${this.controller}/PostGetKpiData`,widget);\r\n }\r\n \r\n \r\n}","import { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { Session } from \"../../../../services/session\";\r\nimport { KpiChartData } from \"../../../../types/KpiChart\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { CustomChartProps } from \"./CustomChart\";\r\n\r\ntype KpiChartProps = {\r\n customChartProps: CustomChartProps;\r\n};\r\nconst KpiChart = (props: KpiChartProps) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n const widget = useRef<ReactWidgetPM>();\r\n const [data, setData] = useState<KpiChartData>();\r\n\r\n useEffect(() => {\r\n widget.current = props.customChartProps.widget;\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, [])\r\n\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n const emptyData = {} as KpiChartData;\r\n emptyData.Value = 0;\r\n setData(emptyData);\r\n setDataLoaded(true);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getKpiData(postWidget as ReactWidgetPM).then(result => {\r\n setData(result.data);\r\n setDataLoaded(true);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n\r\n })\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (widget?.current?.WidgetMeasures) measureFieldId = widget?.current?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: widget.current\r\n });\r\n }\r\n\r\n function getRatioComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n return (\r\n <div className={\"dl-kpi-ratio-container\"}>\r\n {getArrowComponent()}\r\n <div className={'dl-kpi-ratio-text'}>{data?.Ratio} %</div>\r\n </div>\r\n );\r\n }\r\n\r\n function getArrowComponent(): React.ReactNode {\r\n if (!data) return null;\r\n\r\n if (data?.Ratio == 0 || data.Value == data.ComparisonValue || ((data.Value == \"0\" || data.Value == 0) && (data.ComparisonValue == \"0\" || data.ComparisonValue == 0)))\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"} style={{ marginTop: \"2px\" }}></span>\r\n </div>\r\n );\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-green\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio > 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-up-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Positive\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-red\"}></span>\r\n </div>\r\n )\r\n\r\n if (data?.Ratio < 1 && data?.Increase == \"Negative\")\r\n return (\r\n <div className=\"dl-kpi-arrow-container\">\r\n <span className={\"dl-kpi-arrow-pic dl-kpi-arrow-down-green\"}></span>\r\n </div>\r\n )\r\n\r\n return null;\r\n }\r\n\r\n\r\n\r\n function getPreviousValueComponent(): React.ReactNode {\r\n if (!data?.CompareWithPrevious) return null;\r\n var prevtext = !data?.ComparisonValue ? '' : data?.ComparisonValue;\r\n prevtext = \"Previous: \" + prevtext;\r\n\r\n return (\r\n <div className={\"dl-kpi-prev-container\"}>\r\n <div className={\"dl-kpi-prev-text\"}>{prevtext}</div>\r\n {data?.ComparisonAbbreviationSymbol && <div className=\"dl-kpi-prev-abbreviationSymbol\">{data?.ComparisonAbbreviationSymbol}</div>}\r\n </div>\r\n );\r\n }\r\n\r\n function getValueData(): React.ReactNode {\r\n if (data?.Value == null)\r\n return (<div className=\"dl-kpi-no-data\">No data to display.</div>);\r\n\r\n return (<div className=\"dl-kpi-value dl-kpi-textTrimming\">{data?.Value}</div>);\r\n\r\n }\r\n\r\n function getValueComponent(): React.ReactNode {\r\n return (\r\n <div className={\"dl-kpi-sub-container\"}>\r\n {getValueData()}\r\n {data?.AbbreviationSymbol && <div className=\"dl-kpi-abbreviationSymbol\">{data?.AbbreviationSymbol}</div>}\r\n {data?.Unit && <div className=\"dl-kpi-unit\">{data?.Unit}</div>}\r\n {getRatioComponent()}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n !dataLoaded ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div onClick={kpiClick} className={(widget.current?.Alighnment == \"Left\" ? \"dl-kpi-container-click\" : \"dl-kpi-container-click dl-kpi-center-container\")}>\r\n <div className={\"dl-kpi-container\"} style={{ marginTop: widget.current?.Alighnment != \"Left\" ? '0': data?.CompareWithPrevious ? '7px' : '15.4px' }}>\r\n {getValueComponent()}\r\n {getPreviousValueComponent()}\r\n </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n\r\n </div>\r\n );\r\n}\r\n\r\n\r\nexport default KpiChart;","import React from \"react\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport KpiChart from \"./KpiChart\";\r\n\r\n\r\nexport type CustomChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst CustomChart = (props: CustomChartProps) => {\r\n const project = () => {\r\n switch (props.widget?.TypeCode) {\r\n case \"kpi\": return <KpiChart customChartProps={props} />;\r\n default: return <div>Invalid Type</div>;\r\n }\r\n }\r\n return (\r\n <div className=\"dl-custom-chart-container\">{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","export const mainYellowColor = \"#F6CF33\"\r\nexport const mainRedColor = \"#EE5F77\"\r\nexport const mainGreenColor = \"#4AC76F\"\r\nexport const mainTurquoiseColor = \"#32C7C7\"\r\nexport const mainBlueColor = \"#369CFB\"\r\nexport const mainPurpleColor = \"#935BE0\"\r\nexport const mainOrangeColor = \"#FAAD14\"\r\n\r\nexport const lightYellowColor = \"#FBE799\"\r\nexport const lightRedColor = \"#F7AFBB\"\r\nexport const lightGreenColor = \"#A4E3B7\"\r\nexport const lightTurquoiseColor = \"#99E3E3\"\r\nexport const lightBlueColor = \"#9BCDFD\"\r\nexport const lightPurpleColor = \"#C9ADF0\"\r\nexport const lightOrangeColor = \"#FDD689\"\r\n\r\nexport const grey1Color = \"#F6F6F6\"\r\nexport const grey2Color = \"#F0F0F0\"\r\nexport const grey3Color = \"#D9D9D9\"\r\nexport const grey4Color = \"#A4A4A4\"","import { lightBlueColor, lightGreenColor, lightOrangeColor, lightPurpleColor, lightRedColor, lightTurquoiseColor, lightYellowColor, mainBlueColor, mainGreenColor, mainOrangeColor, mainPurpleColor, mainRedColor, mainTurquoiseColor, mainYellowColor } from \"./FusionColors\";\r\n\r\nexport interface ChartInfo {\r\n theme: string;\r\n scrollHeight: string;\r\n scrollWidth: string;\r\n scrollPadding: string;\r\n flatScrollBars: string;\r\n enableSlicing: string;\r\n chartLeftMargin: string;\r\n chartTopMargin: string;\r\n chartRightMargin: string;\r\n chartBottomMargin: string;\r\n baseFont: string;\r\n baseFontSize: string;\r\n showPercentValues: string;\r\n showValues: string;\r\n showLegend: string;\r\n lineColor: string;\r\n divLineDashed: string;\r\n divLineDashLen: string;\r\n divLineDashGap: string;\r\n divLineColor: string;\r\n divLineThickness: string;\r\n divLineAlpha: string;\r\n enableRotation: string;\r\n legendItemFont: string;\r\n legendItemFontSize: string;\r\n legendCaptionFont: string;\r\n legendCaptionFontSize: string;\r\n labelFont: string;\r\n labelFontSize: string;\r\n toolTipBorderColor: string;\r\n toolTipBgAlpha: string;\r\n showToolTipShadow: string;\r\n toolTipBgColor: string;\r\n plottooltext: string;\r\n anchorradius: string;\r\n canvasBottomPadding: string;\r\n labelDisplay: string;\r\n slantLabel: string;\r\n manageLabelOverflow: string;\r\n useEllipsesWhenOverflow: string;\r\n enableSmartLabels: string;\r\n pieRadius: string;\r\n doughnutRadius: string;\r\n baseFontColor: string;\r\n legendCaptionFontColor: string;\r\n labelFontColor: string;\r\n}\r\n\r\n\r\nexport function getSeriesPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return mainBlueColor;\r\n case 2: return mainGreenColor;\r\n case 3: return mainYellowColor;\r\n case 4: return mainTurquoiseColor;\r\n case 5: return mainPurpleColor;\r\n case 6: return mainOrangeColor;\r\n case 7: return mainRedColor;\r\n default: return null;\r\n }\r\n}\r\n\r\nexport function getSeriesHoverPositionColor(position: number): string | null {\r\n switch (position) {\r\n case 1: return lightBlueColor;\r\n case 2: return lightGreenColor;\r\n case 3: return lightYellowColor;\r\n case 4: return lightTurquoiseColor;\r\n case 5: return lightPurpleColor;\r\n case 6: return lightOrangeColor;\r\n case 7: return lightRedColor;\r\n default: return null;\r\n }\r\n}\r\n","import { ReactWidgetPM } from \"../../../../types/widget\";\r\n\r\nexport function buildToolTip(widget: ReactWidgetPM, value: any, seriesName: string, label : any): string {\r\n return `\r\n <div style=\"min-width: 108px;\">\r\n <div style=\"display: flex;align-items: center;margin-bottom: 6px;\">\r\n <span style=\"margin: 0; height: 10px; width: 10px; background-color: #A4A4A4; border-radius: 50%; display: inline-block;\"></span>\r\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;\"> ` + getTooltiplabel(label) + `</p>\r\n </div>\r\n <hr style=\"margin: 0;border-top: 1px solid #F0F0F0;\">\r\n <div style=\"display: flex;align-items: center;margin:0;margin-top: 6px;\">\r\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;\"> ` + getMeasureType(seriesName) + `</p>\r\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;\">` + getTooltipValue(value) + `</p>\r\n ` + getTooltipPercentage(widget) +\r\n ` </div>\r\n </div>\r\n `;\r\n}\r\n\r\nfunction getTooltipPercentage(widget: ReactWidgetPM): string {\r\n if (widget.TypeCode != \"donut\" && widget.TypeCode != \"pie\") return \"\";\r\n return `\r\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>\r\n `;\r\n}\r\n\r\nfunction getTooltiplabel(value: any): string {\r\n if (value) return value;\r\n return '$label';\r\n}\r\n\r\nfunction getTooltipValue(value: any): string {\r\n if (value) return value;\r\n return '$dataValue';\r\n}\r\n\r\nfunction getMeasureType(seriesName: any): string {\r\n if (!seriesName) return \"Count:\"\r\n return seriesName.replace(/ .*/, '') + \":\";\r\n}","import { SeriesMeasure, SeriesMeasureValue } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo, getSeriesPositionColor } from \"./FusionChartObjectHelper\";\r\nimport { buildToolTip } from \"./FusionChartTooltip\";\r\n\r\n\r\nexport function getCategoriesBasedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildCategories(seriesMeasures),\r\n dataset: buildDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\nexport function getStackedDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n categories: buildStackedCategories(seriesMeasures, widget),\r\n dataset: buildStackedDataSet(seriesMeasures, widget)\r\n }\r\n}\r\n\r\n\r\nexport function getSimpleDataSource(chartInfo: ChartInfo, seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): any {\r\n if (seriesMeasuresIsEmpty(seriesMeasures)) return null;\r\n\r\n handelNullLabels(seriesMeasures);\r\n return {\r\n chart: chartInfo,\r\n data: buildDataSource(seriesMeasures, widget),\r\n }\r\n}\r\n\r\nfunction handelNullLabels(seriesMeasures: SeriesMeasure[]) {\r\n seriesMeasures.forEach(element => {\r\n element.Values.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n}\r\n\r\nfunction seriesMeasuresIsEmpty(seriesMeasures: SeriesMeasure[]): boolean {\r\n if (!seriesMeasures || seriesMeasures.length == 0) return true;\r\n let hasValue = false;\r\n seriesMeasures.forEach(item => {\r\n if (item.Values && item.Values.length > 0) hasValue = true;\r\n });\r\n return !hasValue;\r\n}\r\n\r\nfunction buildDataSource(values: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let data: any[] = [];\r\n if (!values || !values[0]) return data;\r\n\r\n var series = values[0];\r\n data = series.Values.map((e, index) => {\r\n let item = {\r\n value: e.Value,\r\n label: e.Label,\r\n id: { GroupById: e.GroupById, MeasureFieldId: series.MeasureFieldId },\r\n tooltext: buildToolTip(widget, null, series.Name, e.Label),\r\n color: getSeriesPositionColor(index + 1)\r\n }\r\n return item;\r\n });\r\n return data;\r\n}\r\n\r\nfunction buildDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n seriesMeasures.forEach(seriesMeasure => {\r\n let datas = seriesMeasure.Values.map(e => {\r\n return { value: e.Value, id: { GroupById: e.GroupById, MeasureFieldId: seriesMeasure.MeasureFieldId }, tooltext: buildToolTip(widget, e.Value, seriesMeasure.Name, null) }\r\n });\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n data: datas,\r\n seriesname: seriesMeasure.Name,\r\n color: color,\r\n anchorBgColor: color,\r\n anchorBorderColor: \"#FFFFFF\",\r\n anchorBorderThickness: \"2\",\r\n anchorHoverColor: color,\r\n renderAs: seriesMeasure.RenderAs == \"default\" ? null : seriesMeasure.RenderAs,\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedDataSet(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n let dataSet: any[] = [];\r\n let seriesPosition = 1;\r\n\r\n var series = seriesMeasures[0];\r\n\r\n const uniqueGroups: any[] = [];\r\n\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupByIdSec))\r\n uniqueGroups.push({ code: element.GroupByIdSec, label: element.LabelSec })\r\n });\r\n\r\n\r\n uniqueGroups.forEach(group => {\r\n var color = getSeriesPositionColor(seriesPosition);\r\n dataSet.push({\r\n seriesName: group.label,\r\n color: color,\r\n data: buildStackedGroupData(group, series, widget)\r\n });\r\n seriesPosition++;\r\n });\r\n return dataSet;\r\n}\r\n\r\nfunction buildStackedGroupData(secGroup: any, series: SeriesMeasure, widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(series);\r\n\r\n let data: any[] = [];\r\n uniqueGroups.forEach(group => {\r\n data.push({\r\n value: series.Values.find(x => x.GroupById == group.code && x.GroupByIdSec == secGroup.code)?.Value,\r\n id: { GroupById: group.code, MeasureFieldId: series.MeasureFieldId, GroupByIdSec: secGroup.code },\r\n tooltext: buildToolTip(widget, null, series.Name, group.label + \" - \" + secGroup.label),\r\n })\r\n });\r\n\r\n return data;\r\n}\r\nfunction buildCategories(seriesMeasures: SeriesMeasure[]) {\r\n var categories = seriesMeasures[0].Values.map((e) => {\r\n return {\r\n label: e.Label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction buildStackedCategories(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM) {\r\n const uniqueGroups: any[] = getUniqueGroupOrderdList(seriesMeasures[0]);\r\n\r\n var categories = uniqueGroups.map((e) => {\r\n return {\r\n label: e.label\r\n }\r\n });\r\n var result: any[] = [];\r\n result.push({ category: categories });\r\n return result;\r\n}\r\n\r\nfunction getUniqueGroupOrderdList(series: SeriesMeasure) {\r\n let uniqueGroups: any[] = [];\r\n series.Values.forEach(element => {\r\n if (!uniqueGroups.find(x => x.code == element.GroupById))\r\n uniqueGroups.push({ code: element.GroupById, label: element.Label});\r\n });\r\n return uniqueGroups;\r\n}\r\n\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { SeriesMeasure } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { getCategoriesBasedDataSource, getSimpleDataSource, getStackedDataSource } from \"./FusionChartDataSoruceBuilder\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nconst defautFontSize = \"10\";\r\nconst defautFont = \"Manrope\";\r\nconst defautColor = \"#323232\";\r\n\r\n\r\nexport function BuildFusionChartObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n switch (widget?.TypeCode) {\r\n case 'bar':\r\n if (!widget.SecondaryGroupById) return getBarObject(seriesMeasures, widget);\r\n return getStackedBarObject(seriesMeasures, widget);\r\n case 'line':\r\n return getLineObject(seriesMeasures, widget);\r\n case 'pie':\r\n return getPieObject(seriesMeasures, widget);\r\n case 'donut':\r\n return getDonutObject(seriesMeasures, widget);\r\n case 'column':\r\n return getColumnObject(seriesMeasures, widget);\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction getBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getStackedBarObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollstackedbar2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"10\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.showLegend = \"1\";\r\n\r\n chart.dataSource = getStackedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getLineObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollline2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.anchorradius = \"5\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n\r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getDonutObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"doughnut2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getPieObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"pie2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.showPercentValues = \"0\";\r\n chartInfo.showValues = \"0\";\r\n chartInfo.showLegend = \"0\";\r\n chartInfo.legendCaptionFontSize = defautFontSize;\r\n chartInfo.legendCaptionFont = defautFont;\r\n chartInfo.labelFontSize = defautFontSize;\r\n chartInfo.labelFont = defautFont;\r\n chartInfo.manageLabelOverflow = \"1\";\r\n chartInfo.useEllipsesWhenOverflow = \"1\";\r\n chartInfo.enableSmartLabels = \"1\";\r\n chartInfo.pieRadius = \"70%\";\r\n\r\n chart.dataSource = getSimpleDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction getColumnObject(seriesMeasures: SeriesMeasure[], widget: ReactWidgetPM): ChartObject {\r\n let chart = getDefaultChartobject();\r\n chart.type = \"scrollcombi2d\";\r\n\r\n let chartInfo = getDefaultChartInfo(widget);\r\n chartInfo.scrollPadding = \"8\";\r\n chartInfo.flatScrollBars = \"1\";\r\n chartInfo.showPercentValues = \"1\";\r\n chartInfo.showLegend = seriesMeasures?.length > 1 ? \"1\" : \"0\";\r\n chartInfo.legendItemFont = defautFont;\r\n chartInfo.legendItemFontSize = defautFontSize;\r\n setLineDash(chartInfo);\r\n chartInfo.chartTopMargin = \"20\";\r\n chartInfo.chartBottomMargin = \"10\";\r\n chartInfo.chartLeftMargin = \"20\";\r\n chartInfo.chartRightMargin = \"50\";\r\n chartInfo.canvasBottomPadding = \"10\";\r\n \r\n chart.dataSource = getCategoriesBasedDataSource(chartInfo, seriesMeasures, widget);\r\n return chart;\r\n}\r\n\r\nfunction setLineDash(chartInfo: ChartInfo) {\r\n chartInfo.divLineDashed = \"1\";\r\n chartInfo.divLineDashLen = \"5\";\r\n chartInfo.divLineDashGap = \"5\";\r\n chartInfo.divLineColor = \"#E7E7E7\";\r\n chartInfo.divLineAlpha = \"100\";\r\n chartInfo.divLineThickness = \"1\";\r\n}\r\n\r\n\r\nfunction getDefaultChartobject(): ChartObject {\r\n let chart = {} as ChartObject;\r\n chart.type = \"column2d\";\r\n chart.width = \"100%\";\r\n chart.height = \"100%\";\r\n chart.dataFormat = \"json\";\r\n return chart;\r\n}\r\n\r\nfunction getDefaultChartInfo(widget: ReactWidgetPM): ChartInfo {\r\n let chart = {} as ChartInfo;\r\n chart.theme = \"fusion\";\r\n chart.baseFont = defautFont;\r\n chart.baseFontSize = defautFontSize;\r\n chart.baseFontColor = defautColor;\r\n chart.legendCaptionFontSize = defautFontSize;\r\n chart.legendCaptionFontColor = defautColor;\r\n chart.legendCaptionFont = defautFont;\r\n chart.labelFontSize = defautFontSize;\r\n chart.labelFontColor = defautColor;\r\n chart.labelFont = defautFont;\r\n chart.enableSlicing = \"0\";\r\n chart.enableRotation = \"0\";\r\n chart.chartTopMargin = \"10\";\r\n chart.chartBottomMargin = \"10\";\r\n chart.chartLeftMargin = \"40\";\r\n chart.chartRightMargin = \"40\";\r\n chart.toolTipBgColor = \"#FFFFFF\";\r\n chart.showToolTipShadow = \"1\";\r\n chart.scrollHeight = \"6\";\r\n chart.scrollWidth = \"6\";\r\n return chart;\r\n}\r\n","import { ChartObject } from \"fusioncharts\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\n\r\nexport class FusionChartHelper {\r\n private chart: ChartObject;\r\n private widget: ReactWidgetPM;\r\n private pieRadius: number;\r\n\r\n constructor(widget: ReactWidgetPM, chart: ChartObject) {\r\n this.chart = chart;\r\n this.widget = widget;\r\n }\r\n\r\n public getPieRadius(): number {\r\n return this.pieRadius;\r\n }\r\n\r\n public trimChartLabels(chartWidth: number, chartHeight: number) {\r\n if (!this.widget || (this.widget.TypeCode != \"pie\" && this.widget.TypeCode != \"donut\")) return;\r\n if (!this.chart) return;\r\n\r\n let chartMinumunHeight = 236;\r\n var startPercantage = 70;\r\n let stepHeight = 60;\r\n\r\n var dataSource = this.chart?.dataSource;\r\n if(!dataSource) return;\r\n\r\n var chartInfo = (dataSource as any).chart as ChartInfo;\r\n var step = Math.floor((chartHeight - chartMinumunHeight) / stepHeight);\r\n if (step < 0) step = 0;\r\n\r\n\r\n var pieRadius = startPercantage - (step * 10);\r\n if (pieRadius < 60) pieRadius = 60;\r\n\r\n if (window.innerWidth > 1700) {\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n return;\r\n }\r\n\r\n let reducedValue = Math.floor((1700 - window.innerWidth) / 100) + 1;\r\n if (reducedValue > 5) reducedValue = 5;\r\n pieRadius = pieRadius - (reducedValue * 5)\r\n this.pieRadius = pieRadius;\r\n chartInfo.pieRadius = pieRadius + \"%\";\r\n }\r\n\r\n}\r\n","import React, { forwardRef, useImperativeHandle, useRef, useState } from \"react\";\r\nimport ReactFC from 'react-fusioncharts';\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../../../types/widget\";\r\nimport FusionCharts, { ChartObject } from 'fusioncharts';\r\nimport { FusionCharts as fusionCharts } from 'FusionCharts';\r\nimport Charts from 'fusioncharts/fusioncharts.charts';\r\nimport FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';\r\nimport { useEffect } from \"react\";\r\nimport { DashboardAnalyticsService } from \"../../../../services/DashboardAnalyticsService\";\r\nimport { ProgressSpinner } from \"primereact/progressspinner\";\r\nimport { BuildFusionChartObject } from \"./FusionChartObjectBuilder\";\r\nimport useResizeObserver from \"use-resize-observer\";\r\nimport { FusionChartHelper } from \"./FusionChartHelper\";\r\nimport { ChartInfo } from \"./FusionChartObjectHelper\";\r\nimport { Session } from \"../../../../services/session\";\r\n\r\nReactFC.fcRoot(FusionCharts, Charts, FusionTheme);\r\n\r\nFusionCharts.options['license']({\r\n key: 'prD4C-8eiA7A3A3C7E6G4B4A3J4C7B2D3D2nyqE1C3fd1npaE4D4tlA-21D7E4F4F1F1E1F4F1A10A8C2C5F5E2F2D1hwqD1B5D1aG4A19A32twbC6D3G4lhJ-7A9C11A5B-13ddA2I3A1B9B3D7A2B4G2H3H1F-7smC8B2XB4cetB8A7A5mxD3SG4F2tvgB2A3B2E4C3I3C7B3A4A3A2D3D2G4J-7==',\r\n creditLabel: false,\r\n});\r\n\r\nexport type FusionChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst FusionChart = forwardRef((props: FusionChartProps, comRef) => {\r\n const [dataLoaded, setDataLoaded] = useState<boolean>(false);\r\n const [error, setError] = useState<string>();\r\n\r\n const widget = useRef<ReactWidgetPM>();\r\n const [args, setArgs] = useState<ChartObject>({});\r\n const [fChart, setFchart] = useState<fusionCharts>();\r\n const id = (Math.random() + 1).toString(36).substring(7);\r\n const progressRef = useRef<any>(null);\r\n const fusionRef = useRef<any>(null);\r\n const fusionChartHelper = useRef<FusionChartHelper>();\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n setTimeout(function () {\r\n RefreshData();\r\n }, 500);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let timeout: any;\r\n const handleResize = () => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n HandleSizeChange();\r\n }, 200);\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n HandleSizeChange();\r\n }\r\n }));\r\n\r\n const HandleSizeChange = () => {\r\n if (!widget || (widget.current?.TypeCode != \"pie\" && widget.current?.TypeCode != \"donut\")) return;\r\n setTimeout(function () {\r\n var oldPieRadius = fusionChartHelper?.current?.getPieRadius();\r\n fusionChartHelper?.current?.trimChartLabels(fusionRef?.current?.offsetWidth, fusionRef?.current?.offsetHeight)!;\r\n if (oldPieRadius == fusionChartHelper?.current?.getPieRadius()) return;\r\n\r\n setDataLoaded(false);\r\n setTimeout(function () {\r\n setDataLoaded(true);\r\n }, 100);\r\n }, 100);\r\n }\r\n\r\n const RefreshData = () => {\r\n if (Session.Tenant == 0) {\r\n handleData(null);\r\n return;\r\n }\r\n\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n handleData(result?.data);\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage) setError(error?.response?.data?.ErrorMessage);\r\n else setError(error.message);\r\n setDataLoaded(true);\r\n })\r\n }\r\n\r\n const handleData = (data : any): void => {\r\n let chart = BuildFusionChartObject(data, widget.current!);\r\n fusionChartHelper.current = new FusionChartHelper(widget.current!, chart);\r\n fusionChartHelper?.current.trimChartLabels(progressRef?.current?.offsetWidth, progressRef?.current?.offsetHeight)!;\r\n setArgs(chart);\r\n setDataLoaded(true);\r\n }\r\n\r\n const dataplotClick = (eventObj: any, dataObj: any): void => {\r\n props.onSelectDataPoint({\r\n GroupById: dataObj.id.groupbyid,\r\n MeasureFieldId: dataObj.id.measurefieldid,\r\n Widget: widget.current,\r\n GroupByIdSec: dataObj.id.groupbyidsec\r\n });\r\n };\r\n\r\n const renderComplete = (chart: any): void => {\r\n setFchart(chart);\r\n }\r\n\r\n const drawComplete = (event: any): void => {\r\n\r\n }\r\n\r\n const { ref } = useResizeObserver<HTMLDivElement>({\r\n onResize: ({ width, height }) => {\r\n fChart?.resizeTo(width as number, height as number);\r\n },\r\n });\r\n\r\n return (\r\n !dataLoaded ?\r\n <div ref={progressRef} className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '40px', height: '40px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n !error ?\r\n <div className={'db-fc-parent-container'} ref={fusionRef}> <div className={'db-fc-container'} ref={ref} id={id}><ReactFC {...args} fcEvent-dataplotClick={dataplotClick} onRender={renderComplete} fcEvent-drawComplete={drawComplete} /></div> </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight\" style={{ width: '100%' }}>\r\n <div className=\"dl-tooltip\">\r\n <img width={50} src={\"https://www.seekpng.com/png/full/334-3345964_error-icon-png.png\"} />\r\n <span className=\"dl-tooltiptext\">{error}</span>\r\n </div>\r\n </div>\r\n )\r\n});\r\nexport default FusionChart;\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport { DashboardDataBinding } from '../../types/DashboardDataBinding';\r\nimport CustomChart from \"./ChartsComponents/CustomCharts/CustomChart\";\r\nimport { Tooltip } from 'primereact/tooltip';\r\nimport FusionChart from \"./ChartsComponents/FusionCharts/FusionChart\";\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any): any;\r\n deleteBtnClicked(i: any): any;\r\n widget: ReactWidgetPM | undefined;\r\n widgetRef: ReactWidgetPM | undefined;\r\n el: any;\r\n dateFilter: any;\r\n dataBinding: DashboardDataBinding;\r\n isInEditMode: boolean;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n}\r\n\r\n\r\nconst WidgetCard = forwardRef((props: WidgetCardProps, comRef) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n const widget = useRef<ReactWidgetPM>();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [tooltip, showTooltip] = useState(false);\r\n const fusionChartRef = useRef<any>(null);\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(widget.current)\r\n };\r\n\r\n useEffect(() => {\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e?.key != widget.current?.key) return;\r\n setIsLoading(true);\r\n widget.current = { ...e };\r\n setIsLoading(false);\r\n })\r\n }, []);\r\n\r\n useImperativeHandle(comRef, () => ({\r\n onResizeFinish() {\r\n fusionChartRef?.current?.onResizeFinish();\r\n }\r\n }));\r\n\r\n\r\n return (\r\n <div className=\"dl-panel\" key={props.el.i} style={{ cursor: props.isInEditMode ? 'move' : 'default' }} >\r\n <header>\r\n <div style={{ display: 'flex', width: 'calc(100% - 3rem)' }}>\r\n <Tooltip target=\".h-tool-tip\" />\r\n <h1 data-pr-tooltip={widget.current?.Title} data-pr-position=\"top\" className=\"h-tool-tip\"\r\n onMouseEnter={() => showTooltip(true)}\r\n onMouseLeave={() => {\r\n showTooltip(false);\r\n setTimeout(() => showTooltip(true), 50);\r\n }}>{widget.current?.Title}</h1>\r\n </div>\r\n\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n style={{ color: \"#292D30\" }}\r\n />\r\n : null\r\n }\r\n\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={editWidget} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.widget?.key)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n <div style={{ width: '100%' }}>\r\n <div className=\"dl-line\"></div>\r\n </div>\r\n\r\n <div className=\"dl-dashboard-widget\"> {GetChartComponent()} </div>\r\n </div>\r\n );\r\n\r\n function GetChartComponent(): React.ReactNode {\r\n if (isLoading || !widget.current?.TypeCode) return null;\r\n if (widget.current?.TypeCode == \"kpi\") return <CustomChart dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />;\r\n return <FusionChart ref={fusionChartRef} dataBinding={props.dataBinding} widget={widget.current} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n});\r\n\r\nexport default WidgetCard;\r\n","export function deepClone (obj){\r\n return JSON.parse(JSON.stringify(obj))\r\n}","import { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\n\r\ntype DashboardDesignerProps = {\r\n editMode: boolean,\r\n Widgetlayouts: { lg: ReactWidgetPM[] },\r\n openEditWidget: (widget: ReactWidgetPM) => void\r\n onLayoutChange: (layouts: Layouts) => void,\r\n dataBinding: DashboardDataBinding,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void\r\n};\r\nconst DashboardDesigner = (props: DashboardDesignerProps) => {\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState<Layouts>({ lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [isInEditMode, setisInEditMode] = useState(false);\r\n const widgetsDictionaryRef = useRef<{ [k: string]: ReactWidgetPM }>({});\r\n const [widgets, setWidgets] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const gridLayoutComponent = useRef<any>(null);\r\n const entered = useRef<boolean>(false);\r\n const widgetCardRef = useRef<any[]>([]);\r\n\r\n\r\n useEffect(() => {\r\n FillLayout(props.Widgetlayouts);\r\n }, [props.Widgetlayouts]);\r\n\r\n const FillLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }) => {\r\n var clone: { lg: ReactWidgetPM[] } = deepClone(dashboardLayouts);\r\n var layout = createLayout(clone);\r\n FillWidgetDictionary(clone);\r\n setWidgets(clone);\r\n setLayouts(layout);\r\n UpdatePlaceholderDimensions(layout);\r\n }\r\n const FillWidgetDictionary = (clone: { lg: ReactWidgetPM[] }) => {\r\n for (const item of clone.lg) {\r\n widgetsDictionaryRef.current[item.key] = item;\r\n }\r\n }\r\n const createLayout = (dashboardLayouts: { lg: ReactWidgetPM[] }): Layouts => {\r\n var layout: any = { lg: [] };\r\n dashboardLayouts.lg.map(w => w.Layout as Layout).forEach(e => {\r\n layout.lg.push(e)\r\n })\r\n return layout;\r\n }\r\n\r\n useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n function onLayoutChange(layout: any, changedLayouts: Layouts) {\r\n // layoutsRef.current = changedLayouts;\r\n UpdateWidget(changedLayouts);\r\n setLayouts(changedLayouts);\r\n UpdatePlaceholderDimensions(changedLayouts);\r\n if (entered.current == false) {\r\n entered.current = true;\r\n return;\r\n }\r\n props.onLayoutChange(changedLayouts);\r\n }\r\n\r\n function onResizeStop(event: any, oldItem: any) {\r\n widgetCardRef?.current?.find(x => x.i == oldItem.i)?.ref.onResizeFinish(widgetsDictionaryRef.current[oldItem.i].key);\r\n }\r\n\r\n function UpdateWidget(changedLayouts: Layouts) {\r\n for (const item of changedLayouts.lg) {\r\n if (widgetsDictionaryRef.current[item.i]) {\r\n widgetsDictionaryRef.current[item.i].Layout = item;\r\n }\r\n }\r\n }\r\n\r\n function deletePanel(id) {\r\n var newLayouts = { lg: layouts.lg.filter(e => e.i != id) }\r\n setLayouts(newLayouts);\r\n var newWidgets = { lg: widgets.lg.filter(e => e.key != id) }\r\n FillWidgetDictionary(newWidgets);\r\n setWidgets(newWidgets);\r\n props.onLayoutChange(newLayouts)\r\n };\r\n\r\n function editWidget(widget: ReactWidgetPM) {\r\n widget.ChangeSetOp = 'Update';\r\n props.openEditWidget(widget);\r\n };\r\n\r\n function UpdatePlaceholderDimensions(layouts: Layouts) {\r\n if (!layouts)\r\n return;\r\n var max = minimumPlaceholderRowsCount;\r\n for (const layout of layouts['lg']) {\r\n if (layout.y + layout.h > max)\r\n max = layout.y + layout.h;\r\n }\r\n\r\n var newPlaceholderRows = max + 2;\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setplaceholderRowsArray(Array.from({ length: newPlaceholderRows }).fill(null));\r\n }\r\n return (<div className=\"dl-full-hight-scroll\">\r\n <div className=\"dl-box\">\r\n <div className=\"dl-row dl-content\">\r\n <div className=\"dl-grid-container\">\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {isInEditMode ? placeholderRowsArray.map((e, i) =>\r\n array12.map((e, i) => (\r\n <div key={i}\r\n style={{\r\n height: layoutGridProps.rowHeight,\r\n }}\r\n ></div>\r\n ))\r\n\r\n ) : null}\r\n </div>\r\n\r\n\r\n <ResponsiveReactGridLayout ref={gridLayoutComponent}\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n isDraggable={isInEditMode}\r\n isResizable={isInEditMode}\r\n onWidthChange={() => { }}\r\n onResizeStop={onResizeStop}\r\n onLayoutChange={onLayoutChange}>\r\n\r\n {widgets.lg.map((widget, i) =>\r\n\r\n <div key={widget.Layout?.i}>\r\n <WidgetCard\r\n isInEditMode={isInEditMode}\r\n key={widget.Layout?.i}\r\n widget={widget}\r\n widgetRef={widgetsDictionaryRef.current[widget.key]}\r\n el={widget}\r\n dataBinding={props.dataBinding}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n onSelectDataPoint={props.onSelectDataPoint}\r\n ref={el => {\r\n widgetCardRef.current[i] = {\r\n ref: el,\r\n i: widget.Layout?.i\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>);\r\n\r\n}\r\n\r\nexport const layoutGridProps = {\r\n rowHeight: 50,\r\n className: \"layout\",\r\n cols: { lg: 12, md: 6, sm: 2, xs: 1, xxs: 1 },\r\n useCSSTransforms: true,\r\n}\r\n\r\nexport default DashboardDesigner;\r\n","import * as React from 'react'\r\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\r\nimport \"./styles.module.css\"\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { Session } from './services/session';\r\nimport { ReactWidgetPM } from './types/widget';\r\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\r\nimport { Layout, Layouts } from 'react-grid-layout';\r\nimport { deepClone } from './services/clone';\r\nimport { DataPointSelection } from './types/SeriesMeasure';\r\n\r\ntype DashboardProps = {\r\n token: string,\r\n tenant: number,\r\n userId: string,\r\n dataBinding: DashboardDataBinding,\r\n onChangeLayouts: (layouts: { lg: ReactWidgetPM[] }) => void,\r\n openEditWidget: (Widget: ReactWidgetPM) => void,\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst Dashboard = (props: DashboardProps) => {\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props?.token;\r\n\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n props.dataBinding.isOnEditLayout.subscribe(e => {\r\n setIsInEditMode(e);\r\n });\r\n props.dataBinding.onAddWidget.subscribe(w => {\r\n Widgetlayouts.current.lg.push(w);\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n });\r\n }, [])\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n var layoutsDic: { [key: string]: Layout } = {};\r\n Object.keys(layouts).forEach(sizeType => {\r\n if (layouts[sizeType].length > 0) {\r\n layouts[sizeType].map(layout => {\r\n layoutsDic[layout.i] = layout;\r\n })\r\n return;\r\n }\r\n })\r\n var newWidgetlayouts: ReactWidgetPM[] = [];\r\n Widgetlayouts.current.lg.forEach(widget => {\r\n if (layoutsDic[widget.key]) {\r\n widget.StartPotistion = `${layoutsDic[widget.key].x},${layoutsDic[widget.key].y}`;\r\n widget.EndPosition = `${layoutsDic[widget.key].w},${layoutsDic[widget.key].h}`;\r\n widget.Layout = layoutsDic[widget.key];\r\n newWidgetlayouts.push(widget);\r\n }\r\n\r\n });\r\n Widgetlayouts.current = { lg: newWidgetlayouts };\r\n props.onChangeLayouts(Widgetlayouts.current);\r\n }\r\n\r\n\r\n return (\r\n <div className='dl-full-hight'>\r\n <div className='dl-dashboard-body'>\r\n <DashboardDesigner onSelectDataPoint={props.onSelectDataPoint} Widgetlayouts={widgetlayoutsState} dataBinding={props.dataBinding} editMode={isInEditMode} onLayoutChange={updateWidgets} openEditWidget={(widget: ReactWidgetPM) => props.openEditWidget(widget)} ></DashboardDesigner>\r\n </div>\r\n </div >\r\n )\r\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["Session","Tools","GetLogitudeURL","logitude_url","location","href","replace","indexOf","urlArr","split","url","substring","lastIndexOf","length","Map","from","to","keys","Object","k","ApiServices","_apiUrl","getByFilters","api","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","post","date","Token","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","dataLoaded","setDataLoaded","error","setError","useRef","data","setData","useEffect","current","customChartProps","setTimeout","RefreshData","Tenant","emptyData","Value","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","getRatioComponent","CompareWithPrevious","React","className","getArrowComponent","Ratio","ComparisonValue","style","marginTop","Increase","getPreviousValueComponent","prevtext","ComparisonAbbreviationSymbol","getValueData","getValueComponent","AbbreviationSymbol","Unit","ProgressSpinner","width","height","strokeWidth","animationDuration","onClick","Alighnment","src","CustomChart","project","TypeCode","mainYellowColor","mainRedColor","mainGreenColor","mainTurquoiseColor","mainBlueColor","mainPurpleColor","mainOrangeColor","getSeriesPositionColor","position","buildToolTip","value","seriesName","label","getTooltiplabel","getMeasureType","getTooltipValue","getTooltipPercentage","getCategoriesBasedDataSource","chartInfo","seriesMeasures","seriesMeasuresIsEmpty","handelNullLabels","chart","categories","buildCategories","dataset","buildDataSet","getStackedDataSource","buildStackedCategories","buildStackedDataSet","getSimpleDataSource","buildDataSource","forEach","element","Values","Label","hasValue","item","values","series","map","e","index","id","GroupById","tooltext","Name","color","dataSet","seriesPosition","seriesMeasure","datas","push","seriesname","anchorBgColor","anchorBorderColor","anchorBorderThickness","anchorHoverColor","renderAs","RenderAs","uniqueGroups","find","x","code","GroupByIdSec","LabelSec","group","buildStackedGroupData","secGroup","getUniqueGroupOrderdList","category","defautFontSize","defautFont","defautColor","BuildFusionChartObject","SecondaryGroupById","getBarObject","getStackedBarObject","getLineObject","getPieObject","getDonutObject","getColumnObject","getDefaultChartobject","type","getDefaultChartInfo","scrollPadding","flatScrollBars","showPercentValues","showLegend","legendItemFont","legendItemFontSize","setLineDash","chartTopMargin","chartBottomMargin","dataSource","chartLeftMargin","chartRightMargin","anchorradius","canvasBottomPadding","showValues","legendCaptionFontSize","legendCaptionFont","labelFontSize","labelFont","manageLabelOverflow","useEllipsesWhenOverflow","enableSmartLabels","pieRadius","divLineDashed","divLineDashLen","divLineDashGap","divLineColor","divLineAlpha","divLineThickness","dataFormat","theme","baseFont","baseFontSize","baseFontColor","legendCaptionFontColor","labelFontColor","enableSlicing","enableRotation","toolTipBgColor","showToolTipShadow","scrollHeight","scrollWidth","FusionChartHelper","getPieRadius","trimChartLabels","chartWidth","chartHeight","chartMinumunHeight","startPercantage","stepHeight","step","Math","floor","window","innerWidth","reducedValue","ReactFC","fcRoot","FusionCharts","Charts","FusionTheme","options","key","creditLabel","FusionChart","forwardRef","comRef","args","setArgs","fChart","setFchart","random","toString","progressRef","fusionRef","fusionChartHelper","timeout","handleResize","clearTimeout","HandleSizeChange","addEventListener","removeEventListener","useImperativeHandle","onResizeFinish","oldPieRadius","offsetWidth","offsetHeight","handleData","dataplotClick","eventObj","dataObj","groupbyid","measurefieldid","groupbyidsec","renderComplete","drawComplete","event","useResizeObserver","onResize","resizeTo","ref","onRender","WidgetCard","moreBtnToggle","isLoading","setIsLoading","tooltip","showTooltip","fusionChartRef","editWidget","hide","editBtnClicked","dataBinding","onEditWidget","subscribe","el","cursor","isInEditMode","display","Tooltip","target","Title","onMouseEnter","onMouseLeave","Button","icon","toggle","OverlayPanel","deleteBtnClicked","GetChartComponent","widgetRef","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","entered","widgetCardRef","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","w","Layout","editMode","onLayoutChange","changedLayouts","UpdateWidget","onResizeStop","oldItem","deletePanel","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","h","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","CurrentUserId","userId","tenant","onGetLayouts","isOnEditLayout","onAddWidget","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","EndPosition","onChangeLayouts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "logitude-dashboard-library",
3
- "version": "1.4.34",
3
+ "version": "1.4.35",
4
4
  "description": "Made with create-react-library",
5
5
  "author": "logitude",
6
6
  "license": "MIT",