logitude-dashboard-library 1.3.77 → 1.3.78
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/features/Dashboard/ChartsComponents/ApexChart.d.ts +0 -1
- package/dist/features/Dashboard/ChartsComponents/CustomCharts/CustomChart.d.ts +0 -1
- package/dist/features/Dashboard/ChartsComponents/CustomCharts/KpiChart.d.ts +0 -1
- package/dist/features/Dashboard/ChartsComponents/FusionChart.d.ts +0 -1
- package/dist/features/Dashboard/DashboardDesigner.d.ts +0 -1
- package/dist/features/Dashboard/WidgetCard.d.ts +0 -1
- package/dist/features/Dashboard/dashboard-dialog/dashboard-dialog-component.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -855,7 +855,7 @@ var ApexChart = function ApexChart(props) {
|
|
|
855
855
|
type: (_props$widget2 = props.widget) === null || _props$widget2 === void 0 ? void 0 : _props$widget2.TypeCode,
|
|
856
856
|
height: "100%",
|
|
857
857
|
width: "100%"
|
|
858
|
-
}) : error.indexOf('permission') ? React__default.createElement("div", {
|
|
858
|
+
}) : error.indexOf('permission') != -1 ? React__default.createElement("div", {
|
|
859
859
|
className: "dl-flex-content-center dl-full-hight "
|
|
860
860
|
}, React__default.createElement("div", {
|
|
861
861
|
className: "dl-tooltip"
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../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/ApexChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["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 { 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 window.localStorage.getItem(\"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 { KpiChart } 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<KpiChart>(`/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 { Tools } from \"../../../../services/tools\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { KpiChart } from \"../../../../types/KpiChart\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\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 [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isLoadingDrow = useRef(true);\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n const [error, setEror] = useState<string>('');\r\n const [data, setData] = useState<KpiChart>();\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.customChartProps.widget;\r\n props.customChartProps.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n RefreshData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n }, [props.customChartProps.widgetRef]);\r\n\r\n const RefreshData = () => {\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 isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (props.customChartProps?.widgetRef?.WidgetMeasures)\r\n measureFieldId = props.customChartProps?.widgetRef?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: props.customChartProps.widget\r\n });\r\n }\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <div className={\"kpIcontainer\"} onClick={kpiClick}>\r\n <div className={\"kpIHeader\"}>{data?.MeasureLabel}</div>\r\n <div>{data?.Value} </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\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 style={{ height: '100%' }}>{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","import React, { LegacyRef, useEffect, useRef } from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\nimport { useState } from 'react';\r\nimport { DashboardAnalyticsService } from \"../../../services/DashboardAnalyticsService\";\r\nimport { DataPointSelection, SeriesMeasure } from '../../../types/SeriesMeasure';\r\nimport { ApexOptions } from \"apexcharts\";\r\nimport { DashboardDataBinding } from \"../../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../../services/tools\";\r\nimport { deepClone } from '../../../services/clone';\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n const [error, setEror] = useState<string>('');\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const MeasuresIds = useRef<string[]>([]);\r\n const GroupByIds = useRef<string[]>([]);\r\n const GroupCount = useRef<number>(0);\r\n const [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n\r\n const argsRef = useRef<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n\r\n const [args, serArgs] = useState<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n const isLoadingDrow = useRef(true);\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n RefreshData();\r\n }, []);\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n }, [props.widgetRef]);\r\n\r\n const RefreshData = () => {\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n // resetData();\r\n isDataLoaded.current = false;\r\n updateView();\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n fillIds(result.data);\r\n const data = getChartOptions(result.data);\r\n serArgs(data);\r\n argsRef.current = data;\r\n isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const fillIds = (datas: SeriesMeasure[]) => {\r\n var measuresIds: string[] = [];\r\n var groupByIds: string[] = [];\r\n for (const seriesMeasure of datas) {\r\n measuresIds.push(seriesMeasure.MeasureFieldId);\r\n }\r\n\r\n for (const seriesMeasure of datas) {\r\n for (const vulue of seriesMeasure.SeriesMeasureVulues) {\r\n groupByIds.push(vulue.GroupById);\r\n }\r\n break;\r\n }\r\n\r\n MeasuresIds.current = measuresIds;\r\n GroupByIds.current = groupByIds;\r\n\r\n }\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n if (!isDataLoaded.current && !isLoadingDrow.current) {\r\n setisView(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const lineOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n\r\n var series: any = [];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n },\r\n events: {\r\n click: dataPointSelection,\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: '',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: categories,\r\n labels: {\r\n formatter: formatVerticalLabel,\r\n trim: true,\r\n rotateAlways: true,\r\n maxHeight: 100,\r\n }\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n\r\n },\r\n\r\n\r\n };\r\n }\r\n\r\n const barOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any = [{\r\n data: []\r\n }];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n return {\r\n series: series\r\n ,\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430,\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n borderRadius: 4,\r\n dataLabels: {\r\n position: 'top',\r\n\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: categories,\r\n\r\n\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n formatter: formatVerticalLabel,\r\n\r\n\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n var series: any = [];\r\n var labels: any = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n var colors = CreateColors(labels.length);\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n },\r\n animations: {\r\n enabled: true,\r\n easing: 'easeinout',\r\n speed: 800,\r\n animateGradually: {\r\n enabled: true,\r\n delay: 150\r\n },\r\n dynamicAnimation: {\r\n enabled: true,\r\n speed: 350\r\n }\r\n }\r\n },\r\n\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n legend: {\r\n formatter: formatLabel,\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n },\r\n\r\n\r\n },\r\n\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any[] = [];\r\n var labels: any[] = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n // var ll = labels.length;\r\n // for (let index = 0; index < ll; index++) {\r\n // series[index] = 100;\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT');\r\n // }\r\n // for (let index = 0; index < ll; index++) {\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT2');\r\n // }\r\n }\r\n var colors = CreateColors(labels.length);\r\n var result: { series, options: ApexOptions } = {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n formatter: formatLabel,\r\n },\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n }\r\n\r\n },\r\n\r\n\r\n };\r\n return result;\r\n }\r\n const formatLabel = (legendName, opts?) => {\r\n let LayoutWidth: number = widgetRef.current?.Layout?.w as number;\r\n let Layoutheight: number = widgetRef.current?.Layout?.h as number;\r\n console.log('W,H (', LayoutWidth, Layoutheight, ')')\r\n var width = 120 * LayoutWidth / 3;\r\n var legendNameFormat = TpCapitalize(legendName);\r\n var text = `<div style=\"white-space: nowrap; text-overflow: clip; overflow: hidden;width:${width}px;display: inline-block; \">${legendNameFormat}</div>`;\r\n // if(legendName.length > 17){\r\n // text = text.substring(0,17) + '...'\r\n // }\r\n return text;\r\n }\r\n const formatVerticalLabel = (val, opts?) => {\r\n var text = TpCapitalize(val);\r\n // if (val && val.length > 20)\r\n // text = text.substring(0, 20);\r\n return text;\r\n }\r\n\r\n const TpCapitalize = (val) => {\r\n if (!val?.split)\r\n return val;\r\n val = val.toLocaleLowerCase();\r\n const words = val?.split(\" \");\r\n\r\n for (let i = 0; i < words.length; i++) {\r\n if (words[i].length > 0)\r\n words[i] = words[i][0].toUpperCase() + words[i].substr(1);\r\n }\r\n return words.join(\" \");\r\n }\r\n const CreateColors = (count: number): any[] | undefined => {\r\n GroupCount.current = count;\r\n var colors: any[] = [];\r\n CreateDifferentColors(colors, 0, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n\r\n return undefined;\r\n\r\n\r\n }\r\n const CreateDifferentColors = (colors: any[], startAngle: number, s: number, v: number) => {\r\n for (let index = 0; GroupCount.current > 0 && index < 12; index++) {\r\n var color = `hsl(${startAngle + index * 30}deg ${s}% ${v}%)`;\r\n colors.push(color);\r\n GroupCount.current--;\r\n }\r\n }\r\n\r\n\r\n const handelNullLabels = (values: SeriesMeasure[]) => {\r\n values.forEach(element => {\r\n element.SeriesMeasureVulues.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const dataPointSelection = (e: any, chart?: any, options?: any): void => {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n if (options.seriesIndex < 0 || options.seriesIndex > MeasuresIds.current.length - 1)\r\n options.seriesIndex = 0\r\n if (options.dataPointIndex >= 0) {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n props.onSelectDataPoint({\r\n GroupById: GroupByIds.current[options.dataPointIndex],\r\n MeasureFieldId: MeasuresIds.current[options.seriesIndex],\r\n Widget: props.widget\r\n });\r\n }\r\n\r\n };\r\n\r\n const getChartOptions = (values: SeriesMeasure[]): ApexChartArgs => {\r\n handelNullLabels(values);\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins(values);\r\n case 'line':\r\n return lineOptoins(values);\r\n case 'pie':\r\n return pieOptoins(values);\r\n case 'donut':\r\n return donutOptoins(values);\r\n default:\r\n break;\r\n }\r\n return barOptoins(values);\r\n };\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <ReactApexChart\r\n options={args?.options}\r\n series={args?.series}\r\n type={props.widget?.TypeCode as any}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n :\r\n error.indexOf('permission') ?\r\n <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <span className=\"dl-tooltiptext-permission\">Sorry, you don't have permissions to view this data.</span>\r\n </div>\r\n </div>\r\n\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: ApexOptions;\r\n series: ApexAxisChartSeries | ApexNonAxisChartSeries;\r\n}\r\n\r\nexport default ApexChart;\r\n\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef} 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 FusionChart from \"./ChartsComponents/FusionChart\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\r\n\r\n\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 = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(props.widget)\r\n };\r\n\r\n\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header style={ {paddingLeft: \"5px\"}}>\r\n <h1>{props.widget?.Title || \"not set\"}</h1>\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n />\r\n : null\r\n }\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\r\n <div className=\"dl-dashboard-widget\">\r\n {props?.widget?.TypeCode == \"kpi\" ?\r\n <CustomChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} /> :\r\n // <FusionChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n <ApexChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n\r\n </div>\r\n </div>\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}","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { TRUE } from \"sass\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../services/tools\";\r\nimport { Subject } from 'rxjs';\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\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\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n // const layoutsRef = useRef<Layouts>({ lg: [] });\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\r\n\r\n\r\n useEffect(() => {\r\n\r\n FillLayout(props.Widgetlayouts);\r\n\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 useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n\r\n\r\n\r\n function reset() {\r\n window.localStorage.clear();\r\n window.location.reload();\r\n }\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 props.onLayoutChange(changedLayouts)\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 // layoutsRef.current = newLayouts;\r\n setLayouts(newLayouts);\r\n\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\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\">\r\n <div className=\"dl-box\">\r\n {/* <div className=\"dl-row dl-header\">\r\n {renderPageHeader()}\r\n </div> */}\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 onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {widgets.lg.map((widget) =>\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 />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n {/* <div className=\"dl-row dl-footer\">\r\n <p><b>footer</b> (fixed height)</p>\r\n </div> */}\r\n </div>\r\n {/* {renderNewWidgetDialog()} */}\r\n\r\n\r\n\r\n\r\n\r\n </div>);\r\n\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\n\r\n\r\n\r\nexport const WidgetTypes = [\r\n { Name: \"Filter\", Disabled: true },\r\n { Name: \"Chart\", Disabled: false },\r\n { Name: \"Data Table\", Disabled: true },\r\n { Name: \"Pivot Table\", Disabled: true },\r\n { Name: \"KPI\", Disabled: true },\r\n { Name: \"Gauge\", Disabled: true },\r\n];\r\nexport const widgetComponents = [\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Column\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Mixed\", component: MixedChartComponent },\r\n { type: \"Timeline\", component: TimelineChartComponent },\r\n { type: \"Candle\", component: CandleChartComponent },\r\n { type: \"Area\", component: AreaChartComponent },\r\n];\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 { ReactDashboardPM } from './types/Dashboard';\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 [reactDashboardPM, setReactDashboardPM] = useState<{ lg: ReactDashboardPM[] }>({ lg: [] });\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const FirstSetLayout = useRef<boolean>(false);\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n FirstSetLayout.current = true;\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n\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 Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n if (FirstSetLayout.current) {\r\n FirstSetLayout.current = false;\r\n return;\r\n }\r\n\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\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\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["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","window","localStorage","getItem","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","isView","setisView","viewError","setViewError","isLoadingDrow","useRef","widgetRef","isDataLoaded","hasDataError","error","setEror","data","setData","useEffect","setTimeout","current","updateView","customChartProps","dataBinding","onEditWidget","subscribe","e","key","RefreshData","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","React","className","ProgressSpinner","style","width","height","strokeWidth","animationDuration","onClick","MeasureLabel","Value","src","CustomChart","project","TypeCode","ApexChart","MeasuresIds","GroupByIds","GroupCount","argsRef","series","options","args","serArgs","fillIds","getChartOptions","datas","measuresIds","groupByIds","seriesMeasure","push","SeriesMeasureVulues","vulue","GroupById","lineOptoins","values","categories","map","z","Label","chart","type","zoom","enabled","events","click","dataPointSelection","toolbar","tools","download","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","labels","formatter","formatVerticalLabel","trim","rotateAlways","maxHeight","yaxis","minWidth","padding","noData","barOptoins","plotOptions","bar","horizontal","borderRadius","position","offsetX","fontSize","show","tooltip","shared","intersect","pieOptoins","CreateColors","animations","easing","speed","animateGradually","delay","dynamicAnimation","fillSeriesColor","legend","formatLabel","donutOptoins","responsive","breakpoint","offsetY","legendName","opts","LayoutWidth","Layout","w","Layoutheight","h","legendNameFormat","TpCapitalize","val","toLocaleLowerCase","words","toUpperCase","substr","join","count","CreateDifferentColors","startAngle","s","v","index","color","handelNullLabels","forEach","element","value","dataPointIndex","seriesIndex","ReactApexChart","WidgetCard","state","moreBtnToggle","editWidget","hide","editBtnClicked","el","paddingLeft","Title","isInEditMode","Button","icon","toggle","OverlayPanel","ref","deleteBtnClicked","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","item","editMode","onLayoutChange","changedLayouts","UpdateWidget","deletePanel","id","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","FirstSetLayout","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","onGetLayouts","isOnEditLayout","onAddWidget","setItem","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","x","EndPosition","onChangeLayouts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../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/ApexChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["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 { 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 window.localStorage.getItem(\"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 { KpiChart } 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<KpiChart>(`/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 { Tools } from \"../../../../services/tools\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { KpiChart } from \"../../../../types/KpiChart\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\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 [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isLoadingDrow = useRef(true);\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n const [error, setEror] = useState<string>('');\r\n const [data, setData] = useState<KpiChart>();\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.customChartProps.widget;\r\n props.customChartProps.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n RefreshData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n }, [props.customChartProps.widgetRef]);\r\n\r\n const RefreshData = () => {\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 isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (props.customChartProps?.widgetRef?.WidgetMeasures)\r\n measureFieldId = props.customChartProps?.widgetRef?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: props.customChartProps.widget\r\n });\r\n }\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <div className={\"kpIcontainer\"} onClick={kpiClick}>\r\n <div className={\"kpIHeader\"}>{data?.MeasureLabel}</div>\r\n <div>{data?.Value} </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\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 style={{ height: '100%' }}>{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","import React, { LegacyRef, useEffect, useRef } from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\nimport { useState } from 'react';\r\nimport { DashboardAnalyticsService } from \"../../../services/DashboardAnalyticsService\";\r\nimport { DataPointSelection, SeriesMeasure } from '../../../types/SeriesMeasure';\r\nimport { ApexOptions } from \"apexcharts\";\r\nimport { DashboardDataBinding } from \"../../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../../services/tools\";\r\nimport { deepClone } from '../../../services/clone';\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n const [error, setEror] = useState<string>('');\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const MeasuresIds = useRef<string[]>([]);\r\n const GroupByIds = useRef<string[]>([]);\r\n const GroupCount = useRef<number>(0);\r\n const [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n\r\n const argsRef = useRef<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n\r\n const [args, serArgs] = useState<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n const isLoadingDrow = useRef(true);\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n RefreshData();\r\n }, []);\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n }, [props.widgetRef]);\r\n\r\n const RefreshData = () => {\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n // resetData();\r\n isDataLoaded.current = false;\r\n updateView();\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n fillIds(result.data);\r\n const data = getChartOptions(result.data);\r\n serArgs(data);\r\n argsRef.current = data;\r\n isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const fillIds = (datas: SeriesMeasure[]) => {\r\n var measuresIds: string[] = [];\r\n var groupByIds: string[] = [];\r\n for (const seriesMeasure of datas) {\r\n measuresIds.push(seriesMeasure.MeasureFieldId);\r\n }\r\n\r\n for (const seriesMeasure of datas) {\r\n for (const vulue of seriesMeasure.SeriesMeasureVulues) {\r\n groupByIds.push(vulue.GroupById);\r\n }\r\n break;\r\n }\r\n\r\n MeasuresIds.current = measuresIds;\r\n GroupByIds.current = groupByIds;\r\n\r\n }\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n if (!isDataLoaded.current && !isLoadingDrow.current) {\r\n setisView(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const lineOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n\r\n var series: any = [];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n },\r\n events: {\r\n click: dataPointSelection,\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: '',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: categories,\r\n labels: {\r\n formatter: formatVerticalLabel,\r\n trim: true,\r\n rotateAlways: true,\r\n maxHeight: 100,\r\n }\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n\r\n },\r\n\r\n\r\n };\r\n }\r\n\r\n const barOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any = [{\r\n data: []\r\n }];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n return {\r\n series: series\r\n ,\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430,\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n borderRadius: 4,\r\n dataLabels: {\r\n position: 'top',\r\n\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: categories,\r\n\r\n\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n formatter: formatVerticalLabel,\r\n\r\n\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n var series: any = [];\r\n var labels: any = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n var colors = CreateColors(labels.length);\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n },\r\n animations: {\r\n enabled: true,\r\n easing: 'easeinout',\r\n speed: 800,\r\n animateGradually: {\r\n enabled: true,\r\n delay: 150\r\n },\r\n dynamicAnimation: {\r\n enabled: true,\r\n speed: 350\r\n }\r\n }\r\n },\r\n\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n legend: {\r\n formatter: formatLabel,\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n },\r\n\r\n\r\n },\r\n\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any[] = [];\r\n var labels: any[] = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n // var ll = labels.length;\r\n // for (let index = 0; index < ll; index++) {\r\n // series[index] = 100;\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT');\r\n // }\r\n // for (let index = 0; index < ll; index++) {\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT2');\r\n // }\r\n }\r\n var colors = CreateColors(labels.length);\r\n var result: { series, options: ApexOptions } = {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n formatter: formatLabel,\r\n },\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n }\r\n\r\n },\r\n\r\n\r\n };\r\n return result;\r\n }\r\n const formatLabel = (legendName, opts?) => {\r\n let LayoutWidth: number = widgetRef.current?.Layout?.w as number;\r\n let Layoutheight: number = widgetRef.current?.Layout?.h as number;\r\n console.log('W,H (', LayoutWidth, Layoutheight, ')')\r\n var width = 120 * LayoutWidth / 3;\r\n var legendNameFormat = TpCapitalize(legendName);\r\n var text = `<div style=\"white-space: nowrap; text-overflow: clip; overflow: hidden;width:${width}px;display: inline-block; \">${legendNameFormat}</div>`;\r\n // if(legendName.length > 17){\r\n // text = text.substring(0,17) + '...'\r\n // }\r\n return text;\r\n }\r\n const formatVerticalLabel = (val, opts?) => {\r\n var text = TpCapitalize(val);\r\n // if (val && val.length > 20)\r\n // text = text.substring(0, 20);\r\n return text;\r\n }\r\n\r\n const TpCapitalize = (val) => {\r\n if (!val?.split)\r\n return val;\r\n val = val.toLocaleLowerCase();\r\n const words = val?.split(\" \");\r\n\r\n for (let i = 0; i < words.length; i++) {\r\n if (words[i].length > 0)\r\n words[i] = words[i][0].toUpperCase() + words[i].substr(1);\r\n }\r\n return words.join(\" \");\r\n }\r\n const CreateColors = (count: number): any[] | undefined => {\r\n GroupCount.current = count;\r\n var colors: any[] = [];\r\n CreateDifferentColors(colors, 0, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n\r\n return undefined;\r\n\r\n\r\n }\r\n const CreateDifferentColors = (colors: any[], startAngle: number, s: number, v: number) => {\r\n for (let index = 0; GroupCount.current > 0 && index < 12; index++) {\r\n var color = `hsl(${startAngle + index * 30}deg ${s}% ${v}%)`;\r\n colors.push(color);\r\n GroupCount.current--;\r\n }\r\n }\r\n\r\n\r\n const handelNullLabels = (values: SeriesMeasure[]) => {\r\n values.forEach(element => {\r\n element.SeriesMeasureVulues.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const dataPointSelection = (e: any, chart?: any, options?: any): void => {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n if (options.seriesIndex < 0 || options.seriesIndex > MeasuresIds.current.length - 1)\r\n options.seriesIndex = 0\r\n if (options.dataPointIndex >= 0) {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n props.onSelectDataPoint({\r\n GroupById: GroupByIds.current[options.dataPointIndex],\r\n MeasureFieldId: MeasuresIds.current[options.seriesIndex],\r\n Widget: props.widget\r\n });\r\n }\r\n\r\n };\r\n\r\n const getChartOptions = (values: SeriesMeasure[]): ApexChartArgs => {\r\n handelNullLabels(values);\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins(values);\r\n case 'line':\r\n return lineOptoins(values);\r\n case 'pie':\r\n return pieOptoins(values);\r\n case 'donut':\r\n return donutOptoins(values);\r\n default:\r\n break;\r\n }\r\n return barOptoins(values);\r\n };\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <ReactApexChart\r\n options={args?.options}\r\n series={args?.series}\r\n type={props.widget?.TypeCode as any}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n :\r\n error.indexOf('permission') != -1 ?\r\n <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <span className=\"dl-tooltiptext-permission\">Sorry, you don't have permissions to view this data.</span>\r\n </div>\r\n </div>\r\n\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: ApexOptions;\r\n series: ApexAxisChartSeries | ApexNonAxisChartSeries;\r\n}\r\n\r\nexport default ApexChart;\r\n\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef} 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 FusionChart from \"./ChartsComponents/FusionChart\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\r\n\r\n\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 = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(props.widget)\r\n };\r\n\r\n\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header style={ {paddingLeft: \"5px\"}}>\r\n <h1>{props.widget?.Title || \"not set\"}</h1>\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n />\r\n : null\r\n }\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\r\n <div className=\"dl-dashboard-widget\">\r\n {props?.widget?.TypeCode == \"kpi\" ?\r\n <CustomChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} /> :\r\n // <FusionChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n <ApexChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n\r\n </div>\r\n </div>\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}","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { TRUE } from \"sass\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../services/tools\";\r\nimport { Subject } from 'rxjs';\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\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\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n // const layoutsRef = useRef<Layouts>({ lg: [] });\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\r\n\r\n\r\n useEffect(() => {\r\n\r\n FillLayout(props.Widgetlayouts);\r\n\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 useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n\r\n\r\n\r\n function reset() {\r\n window.localStorage.clear();\r\n window.location.reload();\r\n }\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 props.onLayoutChange(changedLayouts)\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 // layoutsRef.current = newLayouts;\r\n setLayouts(newLayouts);\r\n\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\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\">\r\n <div className=\"dl-box\">\r\n {/* <div className=\"dl-row dl-header\">\r\n {renderPageHeader()}\r\n </div> */}\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 onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {widgets.lg.map((widget) =>\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 />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n {/* <div className=\"dl-row dl-footer\">\r\n <p><b>footer</b> (fixed height)</p>\r\n </div> */}\r\n </div>\r\n {/* {renderNewWidgetDialog()} */}\r\n\r\n\r\n\r\n\r\n\r\n </div>);\r\n\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\n\r\n\r\n\r\nexport const WidgetTypes = [\r\n { Name: \"Filter\", Disabled: true },\r\n { Name: \"Chart\", Disabled: false },\r\n { Name: \"Data Table\", Disabled: true },\r\n { Name: \"Pivot Table\", Disabled: true },\r\n { Name: \"KPI\", Disabled: true },\r\n { Name: \"Gauge\", Disabled: true },\r\n];\r\nexport const widgetComponents = [\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Column\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Mixed\", component: MixedChartComponent },\r\n { type: \"Timeline\", component: TimelineChartComponent },\r\n { type: \"Candle\", component: CandleChartComponent },\r\n { type: \"Area\", component: AreaChartComponent },\r\n];\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 { ReactDashboardPM } from './types/Dashboard';\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 [reactDashboardPM, setReactDashboardPM] = useState<{ lg: ReactDashboardPM[] }>({ lg: [] });\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const FirstSetLayout = useRef<boolean>(false);\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n FirstSetLayout.current = true;\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n\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 Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n if (FirstSetLayout.current) {\r\n FirstSetLayout.current = false;\r\n return;\r\n }\r\n\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\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\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["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","window","localStorage","getItem","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","isView","setisView","viewError","setViewError","isLoadingDrow","useRef","widgetRef","isDataLoaded","hasDataError","error","setEror","data","setData","useEffect","setTimeout","current","updateView","customChartProps","dataBinding","onEditWidget","subscribe","e","key","RefreshData","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","React","className","ProgressSpinner","style","width","height","strokeWidth","animationDuration","onClick","MeasureLabel","Value","src","CustomChart","project","TypeCode","ApexChart","MeasuresIds","GroupByIds","GroupCount","argsRef","series","options","args","serArgs","fillIds","getChartOptions","datas","measuresIds","groupByIds","seriesMeasure","push","SeriesMeasureVulues","vulue","GroupById","lineOptoins","values","categories","map","z","Label","chart","type","zoom","enabled","events","click","dataPointSelection","toolbar","tools","download","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","labels","formatter","formatVerticalLabel","trim","rotateAlways","maxHeight","yaxis","minWidth","padding","noData","barOptoins","plotOptions","bar","horizontal","borderRadius","position","offsetX","fontSize","show","tooltip","shared","intersect","pieOptoins","CreateColors","animations","easing","speed","animateGradually","delay","dynamicAnimation","fillSeriesColor","legend","formatLabel","donutOptoins","responsive","breakpoint","offsetY","legendName","opts","LayoutWidth","Layout","w","Layoutheight","h","legendNameFormat","TpCapitalize","val","toLocaleLowerCase","words","toUpperCase","substr","join","count","CreateDifferentColors","startAngle","s","v","index","color","handelNullLabels","forEach","element","value","dataPointIndex","seriesIndex","ReactApexChart","WidgetCard","state","moreBtnToggle","editWidget","hide","editBtnClicked","el","paddingLeft","Title","isInEditMode","Button","icon","toggle","OverlayPanel","ref","deleteBtnClicked","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","item","editMode","onLayoutChange","changedLayouts","UpdateWidget","deletePanel","id","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","FirstSetLayout","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","onGetLayouts","isOnEditLayout","onAddWidget","setItem","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","x","EndPosition","onChangeLayouts"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -852,7 +852,7 @@ var ApexChart = function ApexChart(props) {
|
|
|
852
852
|
type: (_props$widget2 = props.widget) === null || _props$widget2 === void 0 ? void 0 : _props$widget2.TypeCode,
|
|
853
853
|
height: "100%",
|
|
854
854
|
width: "100%"
|
|
855
|
-
}) : error.indexOf('permission') ? React__default.createElement("div", {
|
|
855
|
+
}) : error.indexOf('permission') != -1 ? React__default.createElement("div", {
|
|
856
856
|
className: "dl-flex-content-center dl-full-hight "
|
|
857
857
|
}, React__default.createElement("div", {
|
|
858
858
|
className: "dl-tooltip"
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../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/ApexChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["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 { 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 window.localStorage.getItem(\"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 { KpiChart } 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<KpiChart>(`/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 { Tools } from \"../../../../services/tools\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { KpiChart } from \"../../../../types/KpiChart\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\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 [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isLoadingDrow = useRef(true);\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n const [error, setEror] = useState<string>('');\r\n const [data, setData] = useState<KpiChart>();\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.customChartProps.widget;\r\n props.customChartProps.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n RefreshData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n }, [props.customChartProps.widgetRef]);\r\n\r\n const RefreshData = () => {\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 isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (props.customChartProps?.widgetRef?.WidgetMeasures)\r\n measureFieldId = props.customChartProps?.widgetRef?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: props.customChartProps.widget\r\n });\r\n }\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <div className={\"kpIcontainer\"} onClick={kpiClick}>\r\n <div className={\"kpIHeader\"}>{data?.MeasureLabel}</div>\r\n <div>{data?.Value} </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\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 style={{ height: '100%' }}>{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","import React, { LegacyRef, useEffect, useRef } from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\nimport { useState } from 'react';\r\nimport { DashboardAnalyticsService } from \"../../../services/DashboardAnalyticsService\";\r\nimport { DataPointSelection, SeriesMeasure } from '../../../types/SeriesMeasure';\r\nimport { ApexOptions } from \"apexcharts\";\r\nimport { DashboardDataBinding } from \"../../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../../services/tools\";\r\nimport { deepClone } from '../../../services/clone';\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n const [error, setEror] = useState<string>('');\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const MeasuresIds = useRef<string[]>([]);\r\n const GroupByIds = useRef<string[]>([]);\r\n const GroupCount = useRef<number>(0);\r\n const [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n\r\n const argsRef = useRef<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n\r\n const [args, serArgs] = useState<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n const isLoadingDrow = useRef(true);\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n RefreshData();\r\n }, []);\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n }, [props.widgetRef]);\r\n\r\n const RefreshData = () => {\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n // resetData();\r\n isDataLoaded.current = false;\r\n updateView();\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n fillIds(result.data);\r\n const data = getChartOptions(result.data);\r\n serArgs(data);\r\n argsRef.current = data;\r\n isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const fillIds = (datas: SeriesMeasure[]) => {\r\n var measuresIds: string[] = [];\r\n var groupByIds: string[] = [];\r\n for (const seriesMeasure of datas) {\r\n measuresIds.push(seriesMeasure.MeasureFieldId);\r\n }\r\n\r\n for (const seriesMeasure of datas) {\r\n for (const vulue of seriesMeasure.SeriesMeasureVulues) {\r\n groupByIds.push(vulue.GroupById);\r\n }\r\n break;\r\n }\r\n\r\n MeasuresIds.current = measuresIds;\r\n GroupByIds.current = groupByIds;\r\n\r\n }\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n if (!isDataLoaded.current && !isLoadingDrow.current) {\r\n setisView(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const lineOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n\r\n var series: any = [];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n },\r\n events: {\r\n click: dataPointSelection,\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: '',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: categories,\r\n labels: {\r\n formatter: formatVerticalLabel,\r\n trim: true,\r\n rotateAlways: true,\r\n maxHeight: 100,\r\n }\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n\r\n },\r\n\r\n\r\n };\r\n }\r\n\r\n const barOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any = [{\r\n data: []\r\n }];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n return {\r\n series: series\r\n ,\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430,\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n borderRadius: 4,\r\n dataLabels: {\r\n position: 'top',\r\n\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: categories,\r\n\r\n\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n formatter: formatVerticalLabel,\r\n\r\n\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n var series: any = [];\r\n var labels: any = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n var colors = CreateColors(labels.length);\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n },\r\n animations: {\r\n enabled: true,\r\n easing: 'easeinout',\r\n speed: 800,\r\n animateGradually: {\r\n enabled: true,\r\n delay: 150\r\n },\r\n dynamicAnimation: {\r\n enabled: true,\r\n speed: 350\r\n }\r\n }\r\n },\r\n\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n legend: {\r\n formatter: formatLabel,\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n },\r\n\r\n\r\n },\r\n\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any[] = [];\r\n var labels: any[] = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n // var ll = labels.length;\r\n // for (let index = 0; index < ll; index++) {\r\n // series[index] = 100;\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT');\r\n // }\r\n // for (let index = 0; index < ll; index++) {\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT2');\r\n // }\r\n }\r\n var colors = CreateColors(labels.length);\r\n var result: { series, options: ApexOptions } = {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n formatter: formatLabel,\r\n },\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n }\r\n\r\n },\r\n\r\n\r\n };\r\n return result;\r\n }\r\n const formatLabel = (legendName, opts?) => {\r\n let LayoutWidth: number = widgetRef.current?.Layout?.w as number;\r\n let Layoutheight: number = widgetRef.current?.Layout?.h as number;\r\n console.log('W,H (', LayoutWidth, Layoutheight, ')')\r\n var width = 120 * LayoutWidth / 3;\r\n var legendNameFormat = TpCapitalize(legendName);\r\n var text = `<div style=\"white-space: nowrap; text-overflow: clip; overflow: hidden;width:${width}px;display: inline-block; \">${legendNameFormat}</div>`;\r\n // if(legendName.length > 17){\r\n // text = text.substring(0,17) + '...'\r\n // }\r\n return text;\r\n }\r\n const formatVerticalLabel = (val, opts?) => {\r\n var text = TpCapitalize(val);\r\n // if (val && val.length > 20)\r\n // text = text.substring(0, 20);\r\n return text;\r\n }\r\n\r\n const TpCapitalize = (val) => {\r\n if (!val?.split)\r\n return val;\r\n val = val.toLocaleLowerCase();\r\n const words = val?.split(\" \");\r\n\r\n for (let i = 0; i < words.length; i++) {\r\n if (words[i].length > 0)\r\n words[i] = words[i][0].toUpperCase() + words[i].substr(1);\r\n }\r\n return words.join(\" \");\r\n }\r\n const CreateColors = (count: number): any[] | undefined => {\r\n GroupCount.current = count;\r\n var colors: any[] = [];\r\n CreateDifferentColors(colors, 0, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n\r\n return undefined;\r\n\r\n\r\n }\r\n const CreateDifferentColors = (colors: any[], startAngle: number, s: number, v: number) => {\r\n for (let index = 0; GroupCount.current > 0 && index < 12; index++) {\r\n var color = `hsl(${startAngle + index * 30}deg ${s}% ${v}%)`;\r\n colors.push(color);\r\n GroupCount.current--;\r\n }\r\n }\r\n\r\n\r\n const handelNullLabels = (values: SeriesMeasure[]) => {\r\n values.forEach(element => {\r\n element.SeriesMeasureVulues.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const dataPointSelection = (e: any, chart?: any, options?: any): void => {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n if (options.seriesIndex < 0 || options.seriesIndex > MeasuresIds.current.length - 1)\r\n options.seriesIndex = 0\r\n if (options.dataPointIndex >= 0) {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n props.onSelectDataPoint({\r\n GroupById: GroupByIds.current[options.dataPointIndex],\r\n MeasureFieldId: MeasuresIds.current[options.seriesIndex],\r\n Widget: props.widget\r\n });\r\n }\r\n\r\n };\r\n\r\n const getChartOptions = (values: SeriesMeasure[]): ApexChartArgs => {\r\n handelNullLabels(values);\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins(values);\r\n case 'line':\r\n return lineOptoins(values);\r\n case 'pie':\r\n return pieOptoins(values);\r\n case 'donut':\r\n return donutOptoins(values);\r\n default:\r\n break;\r\n }\r\n return barOptoins(values);\r\n };\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <ReactApexChart\r\n options={args?.options}\r\n series={args?.series}\r\n type={props.widget?.TypeCode as any}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n :\r\n error.indexOf('permission') ?\r\n <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <span className=\"dl-tooltiptext-permission\">Sorry, you don't have permissions to view this data.</span>\r\n </div>\r\n </div>\r\n\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: ApexOptions;\r\n series: ApexAxisChartSeries | ApexNonAxisChartSeries;\r\n}\r\n\r\nexport default ApexChart;\r\n\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef} 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 FusionChart from \"./ChartsComponents/FusionChart\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\r\n\r\n\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 = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(props.widget)\r\n };\r\n\r\n\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header style={ {paddingLeft: \"5px\"}}>\r\n <h1>{props.widget?.Title || \"not set\"}</h1>\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n />\r\n : null\r\n }\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\r\n <div className=\"dl-dashboard-widget\">\r\n {props?.widget?.TypeCode == \"kpi\" ?\r\n <CustomChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} /> :\r\n // <FusionChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n <ApexChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n\r\n </div>\r\n </div>\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}","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { TRUE } from \"sass\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../services/tools\";\r\nimport { Subject } from 'rxjs';\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\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\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n // const layoutsRef = useRef<Layouts>({ lg: [] });\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\r\n\r\n\r\n useEffect(() => {\r\n\r\n FillLayout(props.Widgetlayouts);\r\n\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 useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n\r\n\r\n\r\n function reset() {\r\n window.localStorage.clear();\r\n window.location.reload();\r\n }\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 props.onLayoutChange(changedLayouts)\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 // layoutsRef.current = newLayouts;\r\n setLayouts(newLayouts);\r\n\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\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\">\r\n <div className=\"dl-box\">\r\n {/* <div className=\"dl-row dl-header\">\r\n {renderPageHeader()}\r\n </div> */}\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 onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {widgets.lg.map((widget) =>\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 />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n {/* <div className=\"dl-row dl-footer\">\r\n <p><b>footer</b> (fixed height)</p>\r\n </div> */}\r\n </div>\r\n {/* {renderNewWidgetDialog()} */}\r\n\r\n\r\n\r\n\r\n\r\n </div>);\r\n\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\n\r\n\r\n\r\nexport const WidgetTypes = [\r\n { Name: \"Filter\", Disabled: true },\r\n { Name: \"Chart\", Disabled: false },\r\n { Name: \"Data Table\", Disabled: true },\r\n { Name: \"Pivot Table\", Disabled: true },\r\n { Name: \"KPI\", Disabled: true },\r\n { Name: \"Gauge\", Disabled: true },\r\n];\r\nexport const widgetComponents = [\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Column\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Mixed\", component: MixedChartComponent },\r\n { type: \"Timeline\", component: TimelineChartComponent },\r\n { type: \"Candle\", component: CandleChartComponent },\r\n { type: \"Area\", component: AreaChartComponent },\r\n];\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 { ReactDashboardPM } from './types/Dashboard';\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 [reactDashboardPM, setReactDashboardPM] = useState<{ lg: ReactDashboardPM[] }>({ lg: [] });\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const FirstSetLayout = useRef<boolean>(false);\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n FirstSetLayout.current = true;\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n\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 Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n if (FirstSetLayout.current) {\r\n FirstSetLayout.current = false;\r\n return;\r\n }\r\n\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\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\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["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","window","localStorage","getItem","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","isView","setisView","viewError","setViewError","isLoadingDrow","useRef","widgetRef","isDataLoaded","hasDataError","error","setEror","data","setData","useEffect","setTimeout","current","updateView","customChartProps","dataBinding","onEditWidget","subscribe","e","key","RefreshData","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","React","className","ProgressSpinner","style","width","height","strokeWidth","animationDuration","onClick","MeasureLabel","Value","src","CustomChart","project","TypeCode","ApexChart","MeasuresIds","GroupByIds","GroupCount","argsRef","series","options","args","serArgs","fillIds","getChartOptions","datas","measuresIds","groupByIds","seriesMeasure","push","SeriesMeasureVulues","vulue","GroupById","lineOptoins","values","categories","map","z","Label","chart","type","zoom","enabled","events","click","dataPointSelection","toolbar","tools","download","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","labels","formatter","formatVerticalLabel","trim","rotateAlways","maxHeight","yaxis","minWidth","padding","noData","barOptoins","plotOptions","bar","horizontal","borderRadius","position","offsetX","fontSize","show","tooltip","shared","intersect","pieOptoins","CreateColors","animations","easing","speed","animateGradually","delay","dynamicAnimation","fillSeriesColor","legend","formatLabel","donutOptoins","responsive","breakpoint","offsetY","legendName","opts","LayoutWidth","Layout","w","Layoutheight","h","legendNameFormat","TpCapitalize","val","toLocaleLowerCase","words","toUpperCase","substr","join","count","CreateDifferentColors","startAngle","s","v","index","color","handelNullLabels","forEach","element","value","dataPointIndex","seriesIndex","ReactApexChart","WidgetCard","state","moreBtnToggle","editWidget","hide","editBtnClicked","el","paddingLeft","Title","isInEditMode","Button","icon","toggle","OverlayPanel","ref","deleteBtnClicked","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","item","editMode","onLayoutChange","changedLayouts","UpdateWidget","deletePanel","id","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","FirstSetLayout","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","onGetLayouts","isOnEditLayout","onAddWidget","setItem","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","x","EndPosition","onChangeLayouts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../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/ApexChart.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/services/clone.ts","../src/features/Dashboard/DashboardDesigner.tsx","../src/index.tsx"],"sourcesContent":["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 { 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 window.localStorage.getItem(\"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 { KpiChart } 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<KpiChart>(`/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 { Tools } from \"../../../../services/tools\";\r\nimport { DashboardDataBinding } from \"../../../../types/DashboardDataBinding\";\r\nimport { KpiChart } from \"../../../../types/KpiChart\";\r\nimport { DataPointSelection } from \"../../../../types/SeriesMeasure\";\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 [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isLoadingDrow = useRef(true);\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n const [error, setEror] = useState<string>('');\r\n const [data, setData] = useState<KpiChart>();\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.customChartProps.widget;\r\n props.customChartProps.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n RefreshData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n widgetRef.current = props.customChartProps.widgetRef;\r\n }, [props.customChartProps.widgetRef]);\r\n\r\n const RefreshData = () => {\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 isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const kpiClick = () => {\r\n var measureFieldId;\r\n if (props.customChartProps?.widgetRef?.WidgetMeasures)\r\n measureFieldId = props.customChartProps?.widgetRef?.WidgetMeasures[0]?.MeasureFieldId;\r\n props.customChartProps.onSelectDataPoint({\r\n MeasureFieldId: measureFieldId,\r\n Widget: props.customChartProps.widget\r\n });\r\n }\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <div className={\"kpIcontainer\"} onClick={kpiClick}>\r\n <div className={\"kpIHeader\"}>{data?.MeasureLabel}</div>\r\n <div>{data?.Value} </div>\r\n </div>\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\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 style={{ height: '100%' }}>{project()}</div>\r\n );\r\n}\r\n\r\n\r\nexport default CustomChart;","import React, { LegacyRef, useEffect, useRef } from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport { ReactWidgetPM } from \"../../../types/widget\";\r\nimport { useState } from 'react';\r\nimport { DashboardAnalyticsService } from \"../../../services/DashboardAnalyticsService\";\r\nimport { DataPointSelection, SeriesMeasure } from '../../../types/SeriesMeasure';\r\nimport { ApexOptions } from \"apexcharts\";\r\nimport { DashboardDataBinding } from \"../../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../../services/tools\";\r\nimport { deepClone } from '../../../services/clone';\r\n\r\ntype ApexChartProps = {\r\n widget: ReactWidgetPM | undefined,\r\n widgetRef: ReactWidgetPM | undefined,\r\n dataBinding: DashboardDataBinding;\r\n onSelectDataPoint: (dataPointSelection: DataPointSelection) => void;\r\n};\r\nconst ApexChart = (props: ApexChartProps) => {\r\n\r\n const [error, setEror] = useState<string>('');\r\n const widget = useRef<ReactWidgetPM>();\r\n const widgetRef = useRef<ReactWidgetPM>();\r\n const MeasuresIds = useRef<string[]>([]);\r\n const GroupByIds = useRef<string[]>([]);\r\n const GroupCount = useRef<number>(0);\r\n const [isView, setisView] = useState<boolean>(false);\r\n const [viewError, setViewError] = useState<boolean>(false);\r\n const isDataLoaded = useRef<boolean>(false);\r\n const hasDataError = useRef<boolean>(false);\r\n\r\n const argsRef = useRef<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n\r\n const [args, serArgs] = useState<ApexChartArgs>({\r\n series: [],\r\n options: {}\r\n });\r\n const isLoadingDrow = useRef(true);\r\n\r\n useEffect(() => {\r\n setTimeout(function () {\r\n isLoadingDrow.current = false;\r\n updateView();\r\n }, 500);\r\n widget.current = props.widget;\r\n props.dataBinding?.onEditWidget.subscribe(e => {\r\n if (e.key == widget.current?.key) {\r\n Tools.Map(e, widget.current);\r\n RefreshData();\r\n }\r\n\r\n })\r\n }, [])\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n RefreshData();\r\n }, []);\r\n useEffect(() => {\r\n widgetRef.current = props.widgetRef;\r\n }, [props.widgetRef]);\r\n\r\n const RefreshData = () => {\r\n var dashboardAnalyticsService = new DashboardAnalyticsService();\r\n var postWidget: any = { ...widget.current };\r\n postWidget.onChange = undefined;\r\n // resetData();\r\n isDataLoaded.current = false;\r\n updateView();\r\n dashboardAnalyticsService.getData(postWidget as ReactWidgetPM).then(result => {\r\n fillIds(result.data);\r\n const data = getChartOptions(result.data);\r\n serArgs(data);\r\n argsRef.current = data;\r\n isDataLoaded.current = true;\r\n hasDataError.current = false;\r\n updateView();\r\n }, error => {\r\n console.log('error', error);\r\n if (error?.response?.data?.ErrorMessage)\r\n setEror(error?.response?.data?.ErrorMessage);\r\n else\r\n setEror(error.message);\r\n isDataLoaded.current = true;\r\n hasDataError.current = true;\r\n updateView();\r\n })\r\n }\r\n\r\n const fillIds = (datas: SeriesMeasure[]) => {\r\n var measuresIds: string[] = [];\r\n var groupByIds: string[] = [];\r\n for (const seriesMeasure of datas) {\r\n measuresIds.push(seriesMeasure.MeasureFieldId);\r\n }\r\n\r\n for (const seriesMeasure of datas) {\r\n for (const vulue of seriesMeasure.SeriesMeasureVulues) {\r\n groupByIds.push(vulue.GroupById);\r\n }\r\n break;\r\n }\r\n\r\n MeasuresIds.current = measuresIds;\r\n GroupByIds.current = groupByIds;\r\n\r\n }\r\n const updateView = () => {\r\n if (isDataLoaded.current && !isLoadingDrow.current && !hasDataError.current) {\r\n setisView(true);\r\n setViewError(false);\r\n }\r\n if (!isDataLoaded.current && !isLoadingDrow.current) {\r\n setisView(false);\r\n }\r\n\r\n if (isDataLoaded.current && !isLoadingDrow.current && hasDataError.current) {\r\n setisView(false);\r\n setViewError(true);\r\n }\r\n\r\n }\r\n\r\n const lineOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n\r\n var series: any = [];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'line',\r\n zoom: {\r\n enabled: false\r\n },\r\n events: {\r\n click: dataPointSelection,\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n stroke: {\r\n curve: 'straight'\r\n },\r\n title: {\r\n text: '',\r\n align: 'left'\r\n },\r\n grid: {\r\n row: {\r\n colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns\r\n opacity: 0.5\r\n },\r\n },\r\n xaxis: {\r\n categories: categories,\r\n labels: {\r\n formatter: formatVerticalLabel,\r\n trim: true,\r\n rotateAlways: true,\r\n maxHeight: 100,\r\n }\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n\r\n },\r\n\r\n\r\n };\r\n }\r\n\r\n const barOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any = [{\r\n data: []\r\n }];\r\n var categories: any = [];\r\n if (values && values[0]) {\r\n series = values.map(e => {\r\n return { data: e.SeriesMeasureVulues.map(z => z.Value) }\r\n }\r\n );\r\n categories = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n return {\r\n series: series\r\n ,\r\n options: {\r\n chart: {\r\n type: 'bar',\r\n height: 430,\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: true,\r\n borderRadius: 4,\r\n dataLabels: {\r\n position: 'top',\r\n\r\n },\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n offsetX: -6,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#fff']\r\n }\r\n },\r\n stroke: {\r\n show: true,\r\n width: 1,\r\n colors: ['#fff']\r\n },\r\n tooltip: {\r\n shared: true,\r\n intersect: false\r\n },\r\n xaxis: {\r\n categories: categories,\r\n\r\n\r\n },\r\n yaxis: {\r\n labels: {\r\n minWidth: 60,\r\n padding: 7,\r\n formatter: formatVerticalLabel,\r\n\r\n\r\n }\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n }\r\n },\r\n\r\n\r\n };\r\n }\r\n const pieOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n\r\n var series: any = [];\r\n var labels: any = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n }\r\n var colors = CreateColors(labels.length);\r\n\r\n return {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n type: 'pie',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n },\r\n animations: {\r\n enabled: true,\r\n easing: 'easeinout',\r\n speed: 800,\r\n animateGradually: {\r\n enabled: true,\r\n delay: 150\r\n },\r\n dynamicAnimation: {\r\n enabled: true,\r\n speed: 350\r\n }\r\n }\r\n },\r\n\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n legend: {\r\n formatter: formatLabel,\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n },\r\n\r\n\r\n },\r\n\r\n\r\n\r\n };\r\n }\r\n const donutOptoins = (values: SeriesMeasure[]): ApexChartArgs => {\r\n var series: any[] = [];\r\n var labels: any[] = [];\r\n if (values && values[0]) {\r\n series = values[0].SeriesMeasureVulues.map(e => e.Value);\r\n labels = values[0].SeriesMeasureVulues.map(e => e.Label);\r\n // var ll = labels.length;\r\n // for (let index = 0; index < ll; index++) {\r\n // series[index] = 100;\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT');\r\n // }\r\n // for (let index = 0; index < ll; index++) {\r\n // series.push(100);\r\n // labels.push(labels[index]+'TT2');\r\n // }\r\n }\r\n var colors = CreateColors(labels.length);\r\n var result: { series, options: ApexOptions } = {\r\n\r\n series: series,\r\n options: {\r\n chart: {\r\n width: 380,\r\n type: 'donut',\r\n events: {\r\n dataPointSelection: dataPointSelection\r\n },\r\n toolbar: {\r\n tools: {\r\n download: false,\r\n }\r\n }\r\n },\r\n dataLabels: {\r\n enabled: false\r\n },\r\n responsive: [{\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n show: false\r\n }\r\n }\r\n }],\r\n legend: {\r\n position: 'right',\r\n offsetY: 0,\r\n height: 230,\r\n formatter: formatLabel,\r\n },\r\n labels: labels,\r\n colors: colors,\r\n tooltip: {\r\n fillSeriesColor: false\r\n },\r\n noData: {\r\n text: 'No Data Found',\r\n\r\n },\r\n stroke: {\r\n width: 0\r\n }\r\n\r\n },\r\n\r\n\r\n };\r\n return result;\r\n }\r\n const formatLabel = (legendName, opts?) => {\r\n let LayoutWidth: number = widgetRef.current?.Layout?.w as number;\r\n let Layoutheight: number = widgetRef.current?.Layout?.h as number;\r\n console.log('W,H (', LayoutWidth, Layoutheight, ')')\r\n var width = 120 * LayoutWidth / 3;\r\n var legendNameFormat = TpCapitalize(legendName);\r\n var text = `<div style=\"white-space: nowrap; text-overflow: clip; overflow: hidden;width:${width}px;display: inline-block; \">${legendNameFormat}</div>`;\r\n // if(legendName.length > 17){\r\n // text = text.substring(0,17) + '...'\r\n // }\r\n return text;\r\n }\r\n const formatVerticalLabel = (val, opts?) => {\r\n var text = TpCapitalize(val);\r\n // if (val && val.length > 20)\r\n // text = text.substring(0, 20);\r\n return text;\r\n }\r\n\r\n const TpCapitalize = (val) => {\r\n if (!val?.split)\r\n return val;\r\n val = val.toLocaleLowerCase();\r\n const words = val?.split(\" \");\r\n\r\n for (let i = 0; i < words.length; i++) {\r\n if (words[i].length > 0)\r\n words[i] = words[i][0].toUpperCase() + words[i].substr(1);\r\n }\r\n return words.join(\" \");\r\n }\r\n const CreateColors = (count: number): any[] | undefined => {\r\n GroupCount.current = count;\r\n var colors: any[] = [];\r\n CreateDifferentColors(colors, 0, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 100, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 50);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 0, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n CreateDifferentColors(colors, 15, 50, 30);\r\n if (GroupCount.current <= 0)\r\n return colors;\r\n\r\n return undefined;\r\n\r\n\r\n }\r\n const CreateDifferentColors = (colors: any[], startAngle: number, s: number, v: number) => {\r\n for (let index = 0; GroupCount.current > 0 && index < 12; index++) {\r\n var color = `hsl(${startAngle + index * 30}deg ${s}% ${v}%)`;\r\n colors.push(color);\r\n GroupCount.current--;\r\n }\r\n }\r\n\r\n\r\n const handelNullLabels = (values: SeriesMeasure[]) => {\r\n values.forEach(element => {\r\n element.SeriesMeasureVulues.forEach(value => {\r\n if (!value.Label || value.Label == '')\r\n value.Label = 'Not defined'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n const dataPointSelection = (e: any, chart?: any, options?: any): void => {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n if (options.seriesIndex < 0 || options.seriesIndex > MeasuresIds.current.length - 1)\r\n options.seriesIndex = 0\r\n if (options.dataPointIndex >= 0) {\r\n console.log(options.dataPointIndex, options.seriesIndex)\r\n props.onSelectDataPoint({\r\n GroupById: GroupByIds.current[options.dataPointIndex],\r\n MeasureFieldId: MeasuresIds.current[options.seriesIndex],\r\n Widget: props.widget\r\n });\r\n }\r\n\r\n };\r\n\r\n const getChartOptions = (values: SeriesMeasure[]): ApexChartArgs => {\r\n handelNullLabels(values);\r\n switch (props.widget?.TypeCode) {\r\n case 'bar':\r\n return barOptoins(values);\r\n case 'line':\r\n return lineOptoins(values);\r\n case 'pie':\r\n return pieOptoins(values);\r\n case 'donut':\r\n return donutOptoins(values);\r\n default:\r\n break;\r\n }\r\n return barOptoins(values);\r\n };\r\n\r\n return (\r\n !isView && !viewError ?\r\n <div className={'dl-full-hight dl-flex-content-center spinner-custome'}>\r\n <ProgressSpinner style={{ width: '100px', height: '100px' }} strokeWidth=\"4\" animationDuration=\"2s\" />\r\n </div>\r\n :\r\n isView ?\r\n <ReactApexChart\r\n options={args?.options}\r\n series={args?.series}\r\n type={props.widget?.TypeCode as any}\r\n height={\"100%\"}\r\n width={\"100%\"}\r\n />\r\n :\r\n error.indexOf('permission') != -1 ?\r\n <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <span className=\"dl-tooltiptext-permission\">Sorry, you don't have permissions to view this data.</span>\r\n </div>\r\n </div>\r\n\r\n : <div className=\"dl-flex-content-center dl-full-hight \" >\r\n <div className=\"dl-tooltip\">\r\n <img width={100} 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\n )\r\n}\r\nexport type ApexChartArgs = {\r\n options: ApexOptions;\r\n series: ApexAxisChartSeries | ApexNonAxisChartSeries;\r\n}\r\n\r\nexport default ApexChart;\r\n\r\n\r\n","import { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef} 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 FusionChart from \"./ChartsComponents/FusionChart\";\r\nimport ApexChart from \"./ChartsComponents/ApexChart\";\r\n\r\n\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 = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n\r\n const editWidget = () => {\r\n moreBtnToggle.current?.hide();\r\n props.editBtnClicked(props.widget)\r\n };\r\n\r\n\r\n return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header style={ {paddingLeft: \"5px\"}}>\r\n <h1>{props.widget?.Title || \"not set\"}</h1>\r\n {\r\n props.isInEditMode ?\r\n <Button\r\n icon=\"pi pi-ellipsis-v\"\r\n className=\"p-button-lg p-button-rounded p-button-text\"\r\n onClick={(e) => moreBtnToggle.current?.toggle(e)}\r\n />\r\n : null\r\n }\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\r\n <div className=\"dl-dashboard-widget\">\r\n {props?.widget?.TypeCode == \"kpi\" ?\r\n <CustomChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} /> :\r\n // <FusionChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n <ApexChart dataBinding={props.dataBinding} widget={props.widget} widgetRef={props.widgetRef} onSelectDataPoint={props.onSelectDataPoint} />\r\n }\r\n\r\n </div>\r\n </div>\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}","\r\n\r\nimport { WidthProvider, Responsive, Layout, Layouts } from \"react-grid-layout\";\r\n\r\nimport React, { createRef, useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport _, { find } from \"lodash\";\r\nimport { Ripple } from \"primereact/ripple\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\n\r\n\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport { WidgetComponent } from \"../../types/WidgetComponent\";\r\nimport { ReactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\nimport { TRUE } from \"sass\";\r\nimport { DataPointSelection } from \"../../types/SeriesMeasure\";\r\nimport { DashboardDataBinding } from \"../../types/DashboardDataBinding\";\r\nimport { Tools } from \"../../services/tools\";\r\nimport { Subject } from 'rxjs';\r\nimport { deepClone } from '../../services/clone';\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\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\r\n\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n const minimumPlaceholderRowsCount = 12;\r\n // const layoutsRef = useRef<Layouts>({ lg: [] });\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\r\n\r\n\r\n useEffect(() => {\r\n\r\n FillLayout(props.Widgetlayouts);\r\n\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 useEffect(() => {\r\n setisInEditMode(props.editMode);\r\n }, [props.editMode]);\r\n\r\n\r\n\r\n\r\n function reset() {\r\n window.localStorage.clear();\r\n window.location.reload();\r\n }\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 props.onLayoutChange(changedLayouts)\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 // layoutsRef.current = newLayouts;\r\n setLayouts(newLayouts);\r\n\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\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\">\r\n <div className=\"dl-box\">\r\n {/* <div className=\"dl-row dl-header\">\r\n {renderPageHeader()}\r\n </div> */}\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 onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {widgets.lg.map((widget) =>\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 />\r\n </div>\r\n )}\r\n </ResponsiveReactGridLayout>\r\n </div>\r\n\r\n </div>\r\n {/* <div className=\"dl-row dl-footer\">\r\n <p><b>footer</b> (fixed height)</p>\r\n </div> */}\r\n </div>\r\n {/* {renderNewWidgetDialog()} */}\r\n\r\n\r\n\r\n\r\n\r\n </div>);\r\n\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\n\r\n\r\n\r\nexport const WidgetTypes = [\r\n { Name: \"Filter\", Disabled: true },\r\n { Name: \"Chart\", Disabled: false },\r\n { Name: \"Data Table\", Disabled: true },\r\n { Name: \"Pivot Table\", Disabled: true },\r\n { Name: \"KPI\", Disabled: true },\r\n { Name: \"Gauge\", Disabled: true },\r\n];\r\nexport const widgetComponents = [\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Column\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Mixed\", component: MixedChartComponent },\r\n { type: \"Timeline\", component: TimelineChartComponent },\r\n { type: \"Candle\", component: CandleChartComponent },\r\n { type: \"Area\", component: AreaChartComponent },\r\n];\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 { ReactDashboardPM } from './types/Dashboard';\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 [reactDashboardPM, setReactDashboardPM] = useState<{ lg: ReactDashboardPM[] }>({ lg: [] });\r\n const Widgetlayouts = useRef<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const FirstSetLayout = useRef<boolean>(false);\r\n const [widgetlayoutsState, setWidgetlayoutsState] = useState<{ lg: ReactWidgetPM[] }>({ lg: [] });\r\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n props.dataBinding.onGetLayouts.subscribe(layouts => {\r\n FirstSetLayout.current = true;\r\n Widgetlayouts.current = layouts;\r\n setWidgetlayoutsState(deepClone(Widgetlayouts.current));\r\n\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 Session.CurrentUserId = props.userId;\r\n Session.Tenant = props.tenant;\r\n Session.Token = props.token;\r\n if (props?.token?.length > 0)\r\n localStorage.setItem(\"token\", props?.token);\r\n\r\n\r\n\r\n const updateWidgets = (layouts: Layouts) => {\r\n if (FirstSetLayout.current) {\r\n FirstSetLayout.current = false;\r\n return;\r\n }\r\n\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\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\n}\r\nexport default Dashboard;\r\n\r\n"],"names":["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","window","localStorage","getItem","urlparameters","mykeys","addtionalFiltersValues","i","propName","propValue","ignoreFilter","concat","encodeURIComponent","JSON","stringify","DashboardAnalyticsService","_ApiServices","getData","widget","controller","getKpiData","KpiChart","props","useState","isView","setisView","viewError","setViewError","isLoadingDrow","useRef","widgetRef","isDataLoaded","hasDataError","error","setEror","data","setData","useEffect","setTimeout","current","updateView","customChartProps","dataBinding","onEditWidget","subscribe","e","key","RefreshData","dashboardAnalyticsService","postWidget","onChange","undefined","then","result","console","log","response","ErrorMessage","message","kpiClick","measureFieldId","WidgetMeasures","MeasureFieldId","onSelectDataPoint","Widget","React","className","ProgressSpinner","style","width","height","strokeWidth","animationDuration","onClick","MeasureLabel","Value","src","CustomChart","project","TypeCode","ApexChart","MeasuresIds","GroupByIds","GroupCount","argsRef","series","options","args","serArgs","fillIds","getChartOptions","datas","measuresIds","groupByIds","seriesMeasure","push","SeriesMeasureVulues","vulue","GroupById","lineOptoins","values","categories","map","z","Label","chart","type","zoom","enabled","events","click","dataPointSelection","toolbar","tools","download","dataLabels","stroke","curve","title","text","align","grid","row","colors","opacity","xaxis","labels","formatter","formatVerticalLabel","trim","rotateAlways","maxHeight","yaxis","minWidth","padding","noData","barOptoins","plotOptions","bar","horizontal","borderRadius","position","offsetX","fontSize","show","tooltip","shared","intersect","pieOptoins","CreateColors","animations","easing","speed","animateGradually","delay","dynamicAnimation","fillSeriesColor","legend","formatLabel","donutOptoins","responsive","breakpoint","offsetY","legendName","opts","LayoutWidth","Layout","w","Layoutheight","h","legendNameFormat","TpCapitalize","val","toLocaleLowerCase","words","toUpperCase","substr","join","count","CreateDifferentColors","startAngle","s","v","index","color","handelNullLabels","forEach","element","value","dataPointIndex","seriesIndex","ReactApexChart","WidgetCard","state","moreBtnToggle","editWidget","hide","editBtnClicked","el","paddingLeft","Title","isInEditMode","Button","icon","toggle","OverlayPanel","ref","deleteBtnClicked","deepClone","obj","parse","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","array12","Array","fill","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","dateFilter","setisInEditMode","widgetsDictionaryRef","widgets","setWidgets","gridLayoutComponent","FillLayout","Widgetlayouts","dashboardLayouts","clone","layout","createLayout","FillWidgetDictionary","UpdatePlaceholderDimensions","item","editMode","onLayoutChange","changedLayouts","UpdateWidget","deletePanel","id","newLayouts","filter","newWidgets","ChangeSetOp","openEditWidget","max","y","newPlaceholderRows","layoutGridProps","rowHeight","compactType","isDraggable","isResizable","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","Dashboard","FirstSetLayout","widgetlayoutsState","setWidgetlayoutsState","setIsInEditMode","onGetLayouts","isOnEditLayout","onAddWidget","setItem","updateWidgets","layoutsDic","sizeType","newWidgetlayouts","StartPotistion","x","EndPosition","onChangeLayouts"],"mappings":"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"}
|