logitude-dashboard-library 1.2.32 → 1.2.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/features/Dashboard/DashboardDesigner.d.ts +2 -2
- package/dist/index.d.ts +8 -7
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +6 -4
- package/dist/index.modern.js.map +1 -1
- package/dist/services/DashBoardService.d.ts +3 -3
- package/dist/types/ChartComponentProps.d.ts +2 -2
- package/dist/types/Dashboard.d.ts +2 -2
- package/dist/types/DashboardDataBinding.d.ts +7 -0
- package/dist/types/widget.d.ts +1 -1
- package/package.json +2 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import ColumnChartComponent from "./ChartsComponents/ColumnChartComponent";
|
|
3
|
-
import {
|
|
3
|
+
import { ReactWidgetPM } from "../../types/widget";
|
|
4
4
|
declare type DashboardDesignerProps = {
|
|
5
|
-
openEditWidget: (widget:
|
|
5
|
+
openEditWidget: (widget: ReactWidgetPM) => void;
|
|
6
6
|
};
|
|
7
7
|
declare const DashboardDesigner: (props: DashboardDesignerProps) => JSX.Element;
|
|
8
8
|
export declare const layoutGridProps: {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import "./styles.module.css";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { ReactDashboardPM } from './types/Dashboard';
|
|
4
|
+
import { ReactWidgetPM } from './types/widget';
|
|
5
|
+
import { DashboardDataBinding } from './types/DashboardDataBinding';
|
|
5
6
|
declare type DashboardProps = {
|
|
6
7
|
token: string;
|
|
7
8
|
tenant: number;
|
|
8
9
|
userId: string;
|
|
9
|
-
|
|
10
|
-
openAddEditWidget: (widget:
|
|
11
|
-
openAddEditDashboard: (dashboard:
|
|
12
|
-
onChangeDashboard: (dashboard:
|
|
13
|
-
onSaveDashboard: (dashboard:
|
|
10
|
+
dataBinding: DashboardDataBinding;
|
|
11
|
+
openAddEditWidget: (widget: ReactWidgetPM | undefined) => void;
|
|
12
|
+
openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void;
|
|
13
|
+
onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void;
|
|
14
|
+
onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void;
|
|
14
15
|
};
|
|
15
16
|
declare const Dashboard: (props: DashboardProps) => JSX.Element;
|
|
16
17
|
export default Dashboard;
|
package/dist/index.js
CHANGED
|
@@ -923,11 +923,13 @@ var Dashboard = function Dashboard(props) {
|
|
|
923
923
|
React.useEffect(function () {
|
|
924
924
|
getDashboards();
|
|
925
925
|
getWidgetTypes();
|
|
926
|
+
props.dataBinding.onGetDashboard.subscribe(function (e) {
|
|
927
|
+
setCurrentDashbord(e);
|
|
928
|
+
});
|
|
929
|
+
props.dataBinding.onGetAllDashboard.subscribe(function (e) {
|
|
930
|
+
setDashbords(e);
|
|
931
|
+
});
|
|
926
932
|
}, []);
|
|
927
|
-
React.useEffect(function () {
|
|
928
|
-
setCurrentDashbord(props.dashboard);
|
|
929
|
-
console.log("setCurrentDashbord", props.dashboard);
|
|
930
|
-
}, [props.dashboard]);
|
|
931
933
|
if ((props === null || props === void 0 ? void 0 : (_props$token = props.token) === null || _props$token === void 0 ? void 0 : _props$token.length) > 0) localStorage.setItem("token", props === null || props === void 0 ? void 0 : props.token);
|
|
932
934
|
|
|
933
935
|
var getDashboards = function getDashboards() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/features/Dashboard/ChartsComponents/ColumnChartComponent.tsx","../src/features/Dashboard/ChartsComponents/PieChartComponent.tsx","../src/features/Dashboard/ChartsComponents/MixedChartComponent.tsx","../src/features/Dashboard/ChartsComponents/AreaChartComponent.tsx","../src/features/Dashboard/ChartsComponents/TimelineChartComponent.tsx","../src/features/Dashboard/ChartsComponents/CandleChartComponent.tsx","../src/common/data-contracts/ApiQueryFilter.ts","../src/services/tools.ts","../src/services/DataService.ts","../src/features/Dashboard/ChartsComponents/BarChartComponent.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/features/Dashboard/DashboardDesigner.tsx","../src/services/ApiServices.ts","../src/services/DashBoardService.ts","../src/services/WidgetTypeListService.ts","../src/index.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nclass ColumnChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default ColumnChartComponent;","import React from \"react\";\r\n\r\n\r\n\r\nexport class PieChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PieChartComponent;\r\n","import React from \"react\";\r\n\r\nclass MixedChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default MixedChartComponent;\r\n","import React from 'react'\r\nimport ReactApexChart from 'react-apexcharts'\r\nimport { ChartComponentProps } from '../../../types/ChartComponentProps'\r\nimport { ChartComponentState } from '../../../types/ChartComponentState'\r\n\r\nclass AreaChartComponent extends React.Component<\r\nChartComponentProps,\r\nChartComponentState\r\n> {\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props)\r\n\r\n this.state = {\r\n series: [\r\n {\r\n name: 'series1',\r\n data: [31, 40, 28, 51, 42, 109, 100],\r\n },\r\n {\r\n name: 'series2',\r\n data: [11, 32, 45, 32, 34, 52, 41],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'area',\r\n },\r\n colors: ['#22D792','#2C99F7','#FBC445','#F74E49','#717585'] ,\r\n\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n type: 'datetime',\r\n categories: [\r\n '2018-09-19T00:00:00.000Z',\r\n '2018-09-19T01:30:00.000Z',\r\n '2018-09-19T02:30:00.000Z',\r\n '2018-09-19T03:30:00.000Z',\r\n '2018-09-19T04:30:00.000Z',\r\n '2018-09-19T05:30:00.000Z',\r\n '2018-09-19T06:30:00.000Z',\r\n ],\r\n },\r\n tooltip: {\r\n x: {\r\n format: 'dd/MM/yy HH:mm',\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"chart\">\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\")+''}</div>}\r\n\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"area\"\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default AreaChartComponent;\r\n","import React from \"react\";\r\n\r\nclass TimelineChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default TimelineChartComponent;\r\n","import React from 'react'\r\n\r\nclass CandleChartComponent extends React.Component {\r\n\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default CandleChartComponent\r\n","export class ApiQueryFilters {\r\n\r\n public PageIndex: number | null = null;\r\n public PageSize: number | null = null;\r\n public SortBy: string | null = null;\r\n public SortDirection: string | null = null;\r\n public GetCount: boolean | null = null;\r\n public Tenant: number | null = null;\r\n public AdditionalFilters: FilterItem[] = [];\r\n public ForceCacheRefresh: boolean = false;\r\n public DontApplyVirtualization: boolean = false;\r\n\r\n \r\n\r\n addAdditionalFilter(\r\n FieldName: string,\r\n FieldValue: any,\r\n FieldValue2: any,\r\n FieldValue3: any,\r\n Operator: string,\r\n IsCustom: boolean,\r\n DisplayInList: boolean,\r\n IsCustomField: boolean,\r\n FieldDataType: string,\r\n IgnoreFilter: boolean = false,\r\n IsCacheOnClient: boolean = false,\r\n ForceEnableAdd:boolean = false) {\r\n\r\n let params=new ApiQueryFiltersAddParams();\r\n params.FieldName=FieldName;\r\n params.FieldValue=FieldValue;\r\n params.FieldValue2=FieldValue2;\r\n params.FieldValue3=FieldValue3;\r\n params.Operator=Operator;\r\n params.IsCustom=IsCustom;\r\n params.DisplayInList=DisplayInList;\r\n params.IsCustomField=IsCustomField;\r\n params.FieldDataType=FieldDataType;\r\n params.IgnoreFilter=IgnoreFilter;\r\n params.IsCacheOnClient=IsCacheOnClient;\r\n params.ForceEnableAdd=ForceEnableAdd;\r\n this.pushAdditionalFilter(params);\r\n }\r\n myReplace(myString: string) {\r\n var myNewString = \"\";\r\n for (var i = 0; i < myString.length; i++)\r\n {\r\n if (myString[i] == '\"') {\r\n myNewString = myNewString + '\\\\\"';\r\n }\r\n else {\r\n myNewString = myNewString + myString[i];\r\n }\r\n }\r\n return myNewString;\r\n }\r\n removeAdditionalFilter(FieldName: string) {\r\n var item = this.AdditionalFilters.filter(d=> d.FieldName == FieldName && d.IsLookUpfilter==true)[0];\r\n if (item) {\r\n var index = this.AdditionalFilters.indexOf(item);\r\n this.AdditionalFilters.splice(index, 1);\r\n }\r\n }\r\n \r\n pushAdditionalFilter(params:ApiQueryFiltersAddParams){\r\n if (!params.IsCacheOnClient) {\r\n if (typeof (params.FieldValue) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue = this.myReplace(params.FieldValue);//FieldValue.replace('\"', '\\\\\"');\r\n if (params.FieldName != \"ImportersFilter\")\r\n params.FieldValue = encodeURIComponent(params.FieldValue)\r\n //FieldValue = FieldValue.replace(\"%22\", \"\\%22\");\r\n }\r\n if (typeof (params.FieldValue2) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue2 = this.myReplace(params.FieldValue2);//.replace('\"', '\\\\\"');\r\n params.FieldValue2 = encodeURIComponent(params.FieldValue2)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n if (typeof (params.FieldValue3) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue3 = this.myReplace(params.FieldValue3);//FieldValue3.replace('\"', '\\\\\"');\r\n params.FieldValue3 = encodeURIComponent(params.FieldValue3)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n }\r\n var existedItem = this.AdditionalFilters.find(d => d.FieldName == params.FieldName);\r\n if (!existedItem || params.ForceEnableAdd) {\r\n var item = new FilterItem(\r\n params.FieldName,\r\n params.FieldValue, \r\n params.FieldValue2,\r\n params.FieldValue3,\r\n params.Operator,\r\n params.IsCustom,\r\n params.DisplayInList,\r\n params.IsCustomField, \r\n params.FieldDataType,\r\n params.IgnoreFilter,\r\n params.IsCacheOnClient,\r\n params.IsLookUpFilter);\r\n this.AdditionalFilters.push(item);\r\n }\r\n }\r\n\r\n public queryId: string = '';\r\n public queryCode: string = '';\r\n\r\n public userid: string = '';\r\n public ObjectTableName: string = '';\r\n\r\n public Filter1Name: string | null = null;\r\n public Filter1Value: any;\r\n public Filter1Operator: string | null = null;\r\n public Filter1Value2: any;\r\n\r\n public Filter2Name: any;\r\n public Filter2Value: any;\r\n public Filter2Operator: any;\r\n public Filter2Value2: any;\r\n\r\n public Filter3Name: any;\r\n public Filter3Value: any;\r\n public Filter3Operator: any;\r\n public Filter3Value2: any;\r\n\r\n public Filter4Name: any;\r\n public Filter4Value: any;\r\n public Filter4Operator: any;\r\n public Filter4Value2: any;\r\n\r\n public Filter5Name: any;\r\n public Filter5Value: any;\r\n public Filter5Operator: any;\r\n public Filter5Value2: any;\r\n\r\n public Filter6Name: any;\r\n public Filter6Value: any;\r\n public Filter6Operator: any;\r\n public Filter6Value2: any;\r\n\r\n public Filter7Name: any;\r\n public Filter7Value: any;\r\n public Filter7Operator: any;\r\n public Filter7Value2: any;\r\n\r\n public Filter8Name: any;\r\n public Filter8Value: any;\r\n public Filter8Operator: any;\r\n public Filter8Value2: any;\r\n\r\n public Filter9Name: any;\r\n public Filter9Value: any;\r\n public Filter9Operator: any;\r\n public Filter9Value2: any;\r\n\r\n public Filter10Name: any;\r\n public Filter10Value: any;\r\n public Filter10Operator: any;\r\n public Filter10Value2: any;\r\n\r\n public GetAll: boolean = true;\r\n\r\n \r\n}\r\n\r\nexport class FilterItem {\r\n constructor(\r\n public FieldName: string,\r\n public FieldValue: any,\r\n public FieldValue2: any,\r\n public FieldValue3: any,\r\n public Operator: string,\r\n public IsCustom: boolean,\r\n public DisplayInList: boolean,\r\n public IsCustomField: boolean,\r\n public FieldDataType: string,\r\n public IgnoreFilter: boolean,\r\n public IsCacheOnClient: boolean = false,\r\n public IsLookUpfilter:boolean=false) { }\r\n \r\n\r\n}\r\nexport class ApiQueryFiltersAddParams{\r\n FieldName: string = '';\r\n FieldValue: any;\r\n FieldValue2: any;\r\n FieldValue3: any;\r\n Operator: string = '';\r\n IsCustom: boolean = false;\r\n DisplayInList: boolean = false;\r\n IsCustomField: boolean = false;\r\n FieldDataType: string = '';\r\n IgnoreFilter: boolean = false;\r\n IsCacheOnClient: boolean = false;\r\n ForceEnableAdd:boolean = false;\r\n IsLookUpFilter:boolean=false;\r\n}\r\n","export class Tools{\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url ;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DataService{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getObjectTables(filters: ApiQueryFilters){\r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectTableViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getObjectFields(filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectFieldViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getDataByFilters(filters: ApiQueryFilters,tableName: string) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/${tableName}Views/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\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\r\n getTokenFromStorage(){\r\n return window.localStorage.getItem(\"token\") || '';\r\n }\r\n}","import React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ApiQueryFilters } from \"../../../common/data-contracts/ApiQueryFilter\";\r\nimport { DataService } from \"../../../services/DataService\";\r\nimport { ChartComponentProps } from \"../../../types/ChartComponentProps\";\r\nimport { ChartComponentState } from \"../../../types/ChartComponentState\";\r\n\r\n\r\n\r\n\r\n\r\nclass BarChartComponent extends React.Component<\r\n ChartComponentProps,\r\n ChartComponentState\r\n> {\r\n\r\n data: any[] = [];\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props);\r\n const filters = new ApiQueryFilters();\r\n const dataService = new DataService();\r\n if (this.props.widget?.Title)\r\n dataService.getDataByFilters(filters, this.props.widget.Title || '')\r\n .then((response: any) => {\r\n console.log(\"dataService.getDataByFilters\", response);\r\n this.data = response.data.Result;\r\n this.InitChart();\r\n })\r\n\r\n\r\n this.state = {\r\n series: [\r\n {\r\n data: [],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: [],\r\n },\r\n },\r\n };\r\n\r\n }\r\n\r\n\r\n private InitChart() {\r\n const groups = this.GroupItems();\r\n\r\n\r\n const catItems = Object.keys(groups);\r\n const dataItems: any[] = Object.values(groups);\r\n\r\n\r\n this.setState({\r\n series: [\r\n {\r\n data: dataItems,\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: catItems,\r\n },\r\n },\r\n });\r\n }\r\n // private GroupItems()\r\n // {\r\n // return this.data.reduce((groups, record) =>\r\n // {\r\n // const fieldName = this.props.widget.ValueFieldName + '';\r\n\r\n // const group = (groups[record] || []);\r\n // group.push(record);\r\n\r\n // const recordCategory = record[this.props.widget.ValueFieldName + ''];\r\n // groups[record[fieldName]] = groups[recordCategory] + 1 || 0;\r\n // return groups;\r\n // }, {});\r\n // }\r\n private GroupItems() {\r\n let groups = this.data.reduce((groups, record) => {\r\n const CreateGroup = (groups: any, record: any) => {\r\n const group = (groups[record] || []);\r\n group.push(record);\r\n }\r\n const SetGroupData = () => {\r\n const groupByFieldName = this.props.widget.GroupBy + \"\";\r\n // const valueFieldName = this.props.widget.ValueFieldName + \"\";\r\n const recordCategory = record[groupByFieldName];\r\n // const recordValue = record[valueFieldName];\r\n let currentGroupValue = groups[record[groupByFieldName]];\r\n\r\n // switch (this.props.widget.) {\r\n // case \"Count\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + 1;\r\n // break;\r\n // }\r\n // case \"Sum\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + recordValue;\r\n // break;\r\n // }\r\n // case \"Max\": {\r\n // if (!currentGroupValue) currentGroupValue = -9999999999999;\r\n\r\n // if (recordValue > currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Min\": {\r\n // if (!currentGroupValue) currentGroupValue = 9999999999999;\r\n\r\n // if (recordValue < currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Average\": {\r\n // if (!currentGroupValue) currentGroupValue = [];\r\n // currentGroupValue.push(recordValue);\r\n // break;\r\n // }\r\n // }\r\n\r\n groups[record[groupByFieldName]] = currentGroupValue;\r\n };\r\n\r\n CreateGroup(groups, record);\r\n SetGroupData();\r\n return groups;\r\n }, {});\r\n\r\n // if (this.props.widget.CalcType == \"Average\") {\r\n // for (const key in groups) {\r\n // if (Object.prototype.hasOwnProperty.call(groups, key)) {\r\n // const groupArray: any[] = groups[key];\r\n // let sum = groupArray.reduce((a, b) => a + (b[key] || 0), 0);\r\n // let avg = sum / groupArray.length;\r\n // groups[key] = avg;\r\n // }\r\n // }\r\n // }\r\n return groups;\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n <div id=\"chart\">\r\n <div>\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\") + ''}</div>}\r\n </div>\r\n {/* <div>\r\n {this.props.widget?.EntityName}: {this.props.widget?.CalcType} of {this.props.widget?.ValueFieldName} \r\n </div> */}\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"bar\"\r\n height={\"100%\"}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default BarChartComponent;\r\n","import { stat } from \"fs\";\r\nimport { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\n\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any):any;\r\n deleteBtnClicked(i: any):any;\r\n widget: any | null;\r\n el: any;\r\n dateFilter: any;\r\n}\r\n\r\n\r\nconst WidgetCard = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n const widgetComponents: any[] = [\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 return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.WidgetName || \"not set\"}</h1>\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\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => props.editBtnClicked(props.widget)} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.el.i)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n\r\n <div className=\"dashboard-widget\">\r\n {React.createElement(\r\n widgetComponents.find((wc) => wc.type === props.widget.WidgetType)\r\n ?.component,\r\n {\r\n key: props.el.i,\r\n dateFilter: props.dateFilter,\r\n widget: props.widget,\r\n }\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive } 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 { RactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = { \r\n openEditWidget:(widget: RactWidgetPM) => void\r\n };\r\nconst DashboardDesigner = (props:DashboardDesignerProps) => {\r\n\r\n const [widgetButtonToggle, setWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [addWidgetButtonToggle, setAddWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [widgetComponents, setWidgetComponents] = useState([\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Col\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Are\", component: AreaChartComponent },\r\n ]);\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedLayouts = getFromStorage(\"grid-layout\");\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState(savedLayouts || { lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [showMsg, setShowMsg] = useState(false);\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [displayDialog, setDisplayDialog] = useState(false);\r\n const [dashboardTitle, setDashboardTitle] = useState(\"\");\r\n const [widgets, setWidgets] = useState(savedWidgets || []);\r\n const [placeholderRows, setPlaceholderRows] = useState(minimumPlaceholderRowsCount);\r\n\r\n // const [widgetToEdit, setWidgetToEdit] = useState<Widget | null>(null);\r\n // const renderPageHeader = () => {\r\n // return (\r\n\r\n // <div className=\"dl-heder-row\">\r\n // {/* <Calendar\r\n // value={dateFilter}\r\n // showIcon={true}\r\n // onChange={(e) => setDateFilter(e.value)}\r\n // placeholder=\"filter by date...\"\r\n // ></Calendar> */}\r\n \r\n\r\n\r\n // </div>\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 renderGridWidgetsPlaceholder() {\r\n // console.log(placeholderRows)\r\n // return (\r\n // <div className=\"dl-grid dl-grid--bordered\">\r\n // {[...Array(placeholderRows)].map((e, i) =>\r\n // [...Array(layoutGridProps.cols.lg)].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 // </div>\r\n // );\r\n // }\r\n\r\n function onLayoutChange(layout: any, layouts) {\r\n console.log(layout, layouts);\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n }\r\n function renderWidgetComponent(el: any) {\r\n const widget = FindWidget(el);\r\n\r\n return (\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={widget}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n />\r\n </div>\r\n );\r\n }\r\n function deletePanel(i) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === i);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: i }));\r\n SaveGrid();\r\n };\r\n function SaveGrid() {\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n }\r\n function editWidget(widget: RactWidgetPM) {\r\n props.openEditWidget(widget);\r\n };\r\n function FindWidget(el: any) {\r\n return widgets.find((d) => d.i === el.i);\r\n }\r\n function saveToStorage(key, value) {\r\n setShowMsg(true);\r\n setTimeout(() => {\r\n setShowMsg(false);\r\n }, 2000);\r\n window.localStorage.setItem(key, JSON.stringify(value));\r\n };\r\n function getFromStorage(key) {\r\n const layout: any = window.localStorage.getItem(key);\r\n return JSON.parse(layout);\r\n };\r\n // function toggleDialog() {\r\n // setDisplayDialog(!displayDialog);\r\n // }\r\n // function renderNewWidgetDialog() {\r\n\r\n // return (\r\n // <Dialog\r\n\r\n // header={widgetToEdit ? \"Edit Chart\" : \"New Chart\"}\r\n // visible={displayDialog}\r\n // onHide={toggleDialog}\r\n // breakpoints={{ \"850px\": \"95vw\", \"600px\": \"100vw\" }}\r\n // style={{ width: \"800px\" }}\r\n // >\r\n // <NewWidget\r\n // onOkButton={onOkButton}\r\n // onCancelButton={onCancelButton}\r\n // widget={widgetToEdit}\r\n // />\r\n // </Dialog>\r\n // );\r\n // }\r\n function addPanel(newWidget: RactWidgetPM) {\r\n\r\n let newWidgetPosition = EvaluateNewWidgetPosition();\r\n\r\n const widgetComponent = widgetComponents.find(\r\n (wc) => wc.type === newWidget.TypeCode\r\n );\r\n\r\n const randomIndex = getRandomInt(100, 999);\r\n const newPanel = {\r\n i: \"\" + randomIndex,\r\n x: newWidgetPosition.x,\r\n y: newWidgetPosition.y,\r\n w: newWidgetWidth,\r\n h: 5,\r\n minH: 5,\r\n minW: 3,\r\n };\r\n\r\n widgets.push({\r\n i: \"\" + randomIndex,\r\n title: newWidget.Title,\r\n component: widgetComponent?.component,\r\n ...newWidget,\r\n });\r\n setLayouts({ lg: layouts[\"lg\"].concat(newPanel) });\r\n setWidgets(widgets);\r\n\r\n };\r\n\r\n function EvaluateNewWidgetPosition() {\r\n let widgetYPosition = 0;\r\n let widgetXPosition = 0;\r\n let layout: { x: number, y: number, w: number }[] = layouts[\"lg\"];\r\n const maxY = layout.reduce((max, widget) => {\r\n if (widget.y > max) max = widget.y;\r\n return max;\r\n }, 0);\r\n\r\n for (let y = 0; y <= maxY; y++) {\r\n const widgetsRow = layout.filter(d => d.y == y);\r\n const lastWidgetStartXPosition = Math.max.apply(Math, widgetsRow.map(a => a.x));\r\n const lastWidget: any = widgetsRow.find(a => a.x == lastWidgetStartXPosition);\r\n if (lastWidget) {\r\n const lastWidgetEndXPosition = lastWidgetStartXPosition + lastWidget.w;\r\n const availableHorizontalSlots = layoutGridProps.cols.lg - lastWidgetEndXPosition;\r\n if (availableHorizontalSlots >= newWidgetWidth) {\r\n widgetYPosition = y;\r\n widgetXPosition = lastWidgetEndXPosition;\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n }\r\n\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n }\r\n // function onOkButton(data: any) {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // addPanel(data);\r\n // };\r\n // function onCancelButton() {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // };\r\n function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n // useEffect(() => {\r\n\r\n // });\r\n function UpdatePlaceholderDimensions() {\r\n\r\n var gridLayout = document.getElementsByClassName('react-grid-layout')\r\n if (!gridLayout)\r\n return;\r\n const gridElementHeight = gridLayout[0]?.clientHeight;\r\n\r\n let newPlaceholderRows = Math.floor(gridElementHeight / layoutGridProps.rowHeight);\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setPlaceholderRows(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 {/* {renderGridWidgetsPlaceholder()} */}\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {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 </div>\r\n\r\n\r\n <ResponsiveReactGridLayout\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n\r\n onWidthChange={() => UpdatePlaceholderDimensions()}\r\n onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {layouts[\"lg\"].map((el) =>\r\n\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={FindWidget(el)}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\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 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:T){\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 { RactDashboardPM } from \"../types/Dashboard\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DashBoardService{ \r\n _ApiServices:ApiServices;\r\n tableName = 'DashBoard';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<RactDashboardPM>(`/api/${this.tableName}Views/getbyfilters?`,filters);\r\n }\r\n\r\n add(data:RactDashboardPM){\r\n return this._ApiServices.post(`/api/DashBoards`,data);\r\n }\r\n \r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { RactDashboardPM } from \"../types/Dashboard\";\r\nimport { WidgetType } from \"../types/WidgetType\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class WidgetTypeListService{ \r\n _ApiServices:ApiServices;\r\n\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<WidgetType>(`/api/WidgetTypeViews/getbyfilters?`,filters);\r\n }\r\n\r\n getAll() {\r\n return this._ApiServices.get<WidgetType[]>(`/api/WidgetTypeViews/getall`);\r\n }\r\n\r\n \r\n}","import * as React from 'react'\nimport { Card } from 'primereact/card';\nimport { Button } from \"primereact/button\";\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\nimport \"./styles.module.css\"\nimport { Dropdown } from 'primereact/dropdown';\nimport { createRef, useEffect, useRef, useState } from \"react\";\nimport { DashBoardService } from './services/DashBoardService';\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\nimport { RactDashboardPM } from './types/Dashboard';\nimport { Dialog } from 'primereact/dialog';\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\nimport { Session } from './services/session';\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\nimport { WidgetType } from './types/WidgetType';\nimport { RactWidgetPM } from './types/widget';\nimport { OverlayPanel } from 'primereact/overlaypanel';\nimport { Ripple } from 'primereact/ripple';\ntype DashboardProps = {\n token: string,\n tenant: number,\n userId: string,\n dashboard: RactDashboardPM,\n openAddEditWidget: (widget: RactWidgetPM | undefined) => void,\n openAddEditDashboard: (dashboard: RactDashboardPM | undefined) => void,\n onChangeDashboard: (dashboard: RactDashboardPM | undefined) => void,\n onSaveDashboard: (dashboard: RactDashboardPM | undefined) => void,\n};\nconst Dashboard = (props: DashboardProps) => {\n const [dashbords, setDashbords] = useState<RactDashboardPM[]>([]);\n const [currentDashbord, setCurrentDashbord] = useState<RactDashboardPM | undefined>(undefined);\n const [selectedWidget, setSelectedWidget] = useState();\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\n const dashboardService = new DashBoardService();\n const widgetTypeListService = new WidgetTypeListService();\n useEffect(() => {\n getDashboards();\n getWidgetTypes();\n }, [])\n useEffect(() => {\n setCurrentDashbord(props.dashboard);\n console.log(\"setCurrentDashbord\",props.dashboard)\n }, [props.dashboard])\n Session.CurrentUserId = props.userId;\n Session.Tenant = props.tenant;\n Session.Token = props.token;\n if (props?.token?.length > 0)\n localStorage.setItem(\"token\", props?.token);\n\n const onDashboardDialogClose = () => {\n getDashboards();\n }\n\n const getDashboards = () => {\n dashboardService.getDataByFilters(new ApiQueryFilters()).then(data => {\n setDashbords(data.data.Result);\n if (data.data.Result.length > 0)\n setCurrentDashbord(data.data.Result[0]);\n });\n }\n const getWidgetTypes = () => {\n widgetTypeListService.getAll().then(data => {\n setWidgetTypes(data.data);\n\n\n });\n }\n const EditDashBoard = () => {\n props.openAddEditDashboard(currentDashbord);\n dashboardMoreButtonToggle?.current?.hide();\n \n }\n const addWidget = (widgetCode) => {\n props.openAddEditWidget({ TypeCode: widgetCode } as RactWidgetPM);\n }\n\n const editDesign = () => {\n setIsInEditMode(true)\n dashboardMoreButtonToggle?.current?.hide();\n console.log(WidgetTypes)\n }\n\n return (\n <div className='dl-full-hight'>\n\n <div className='dl-dashboard-header dl-card'>\n <div className='dl-flex-row'>\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\n <Button\n icon=\"pi pi-ellipsis-v\"\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\n className=\"p-button-lg p-button-rounded p-button-text\"\n >\n <Ripple />\n </Button>\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\n <div className=\"buttons-list\">\n <div onClick={() => EditDashBoard()}>Edit</div>\n <div onClick={editDesign}>Edit Design</div>\n\n </div>\n </OverlayPanel >\n </div>\n <div className='dl-flex-row'>\n {!isInEditMode ?\n <div className='dl-flex-row'>\n \n\n <div style={{ width: \"210px\" }}>\n <Dropdown\n value={[]}\n options={dashbords}\n optionValue=\"Id\"\n optionLabel=\"Name\"\n onChange={(e) => { }}\n placeholder=\"Choose Dashboard\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\n className=\"dl-dashboard-add p-button-rounded p-button-success\" aria-label=\"Search\" />\n </div>\n : null}\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\n\n\n\n {isInEditMode ?\n <div className='dl-flex-row'>\n \n <Button\n label=\"Cancel\"\n className=\"p-button-text\"\n onClick={() => {setIsInEditMode(false) }}\n />\n <Button\n label=\"Save\"\n form=\"frm\"\n // icon=\"pi pi-check\"\n onClick={() => { setIsInEditMode(false)}}\n autoFocus\n />\n\n <div style={{ width: '192px',marginLeft:'15px'}}>\n <Dropdown\n value={selectedWidget}\n options={WidgetTypes}\n optionValue=\"Code\"\n optionLabel=\"Name\"\n onChange={(e) => addWidget(e.value)}\n placeholder=\"Add Component\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n </div>\n : null}\n </div>\n\n\n </div>\n\n <div className='dl-dashboard-body'>\n <DashboardDesigner openEditWidget={(widget: RactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\n </div>\n </div >\n\n )\n}\nexport default Dashboard;"],"names":["ColumnChartComponent","props","render","React","id","Component","PieChartComponent","MixedChartComponent","AreaChartComponent","state","series","name","data","options","chart","height","type","colors","dataLabels","enabled","stroke","curve","xaxis","categories","tooltip","x","format","dateFilter","className","toLocaleDateString","ReactApexChart","TimelineChartComponent","CandleChartComponent","ApiQueryFilters","addAdditionalFilter","FieldName","FieldValue","FieldValue2","FieldValue3","Operator","IsCustom","DisplayInList","IsCustomField","FieldDataType","IgnoreFilter","IsCacheOnClient","ForceEnableAdd","params","ApiQueryFiltersAddParams","pushAdditionalFilter","myReplace","myString","myNewString","i","length","removeAdditionalFilter","item","AdditionalFilters","filter","d","IsLookUpfilter","index","indexOf","splice","encodeURIComponent","existedItem","find","FilterItem","IsLookUpFilter","push","Tools","GetLogitudeURL","logitude_url","location","href","replace","urlArr","split","url","substring","lastIndexOf","DataService","_apiUrl","getObjectTables","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","getObjectFields","getDataByFilters","tableName","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","JSON","stringify","window","localStorage","getItem","BarChartComponent","dataService","widget","Title","then","response","console","log","Result","InitChart","events","dataPointSelection","event","chartContext","config","w","seriesIndex","plotOptions","bar","borderRadius","horizontal","groups","GroupItems","catItems","dataItems","values","setState","reduce","record","CreateGroup","group","SetGroupData","groupByFieldName","GroupBy","currentGroupValue","WidgetCard","moreBtnToggle","useRef","widgetComponents","component","key","el","WidgetName","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","createElement","wc","WidgetType","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","useState","createRef","array12","Array","from","fill","savedLayouts","getFromStorage","savedWidgets","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","widgets","setWidgets","placeholderRows","setPlaceholderRows","onLayoutChange","layout","saveToStorage","UpdatePlaceholderDimensions","deletePanel","itemIndex","findIndex","_","reject","SaveGrid","editWidget","openEditWidget","FindWidget","value","setTimeout","setItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","map","style","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","getByFilters","api","post","date","DashBoardService","_ApiServices","add","WidgetTypeListService","getAll","Dashboard","dashbords","setDashbords","currentDashbord","setCurrentDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","dashboardService","widgetTypeListService","useEffect","getDashboards","getWidgetTypes","dashboard","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","openAddEditWidget","TypeCode","editDesign","Name","Ripple","width","Dropdown","optionValue","optionLabel","onChange","placeholder","optionDisabled","option","Disabled","scrollHeight","label","form","autoFocus","marginLeft"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/features/Dashboard/ChartsComponents/ColumnChartComponent.tsx","../src/features/Dashboard/ChartsComponents/PieChartComponent.tsx","../src/features/Dashboard/ChartsComponents/MixedChartComponent.tsx","../src/features/Dashboard/ChartsComponents/AreaChartComponent.tsx","../src/features/Dashboard/ChartsComponents/TimelineChartComponent.tsx","../src/features/Dashboard/ChartsComponents/CandleChartComponent.tsx","../src/common/data-contracts/ApiQueryFilter.ts","../src/services/tools.ts","../src/services/DataService.ts","../src/features/Dashboard/ChartsComponents/BarChartComponent.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/features/Dashboard/DashboardDesigner.tsx","../src/services/ApiServices.ts","../src/services/DashBoardService.ts","../src/services/WidgetTypeListService.ts","../src/index.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nclass ColumnChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default ColumnChartComponent;","import React from \"react\";\r\n\r\n\r\n\r\nexport class PieChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PieChartComponent;\r\n","import React from \"react\";\r\n\r\nclass MixedChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default MixedChartComponent;\r\n","import React from 'react'\r\nimport ReactApexChart from 'react-apexcharts'\r\nimport { ChartComponentProps } from '../../../types/ChartComponentProps'\r\nimport { ChartComponentState } from '../../../types/ChartComponentState'\r\n\r\nclass AreaChartComponent extends React.Component<\r\nChartComponentProps,\r\nChartComponentState\r\n> {\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props)\r\n\r\n this.state = {\r\n series: [\r\n {\r\n name: 'series1',\r\n data: [31, 40, 28, 51, 42, 109, 100],\r\n },\r\n {\r\n name: 'series2',\r\n data: [11, 32, 45, 32, 34, 52, 41],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'area',\r\n },\r\n colors: ['#22D792','#2C99F7','#FBC445','#F74E49','#717585'] ,\r\n\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n type: 'datetime',\r\n categories: [\r\n '2018-09-19T00:00:00.000Z',\r\n '2018-09-19T01:30:00.000Z',\r\n '2018-09-19T02:30:00.000Z',\r\n '2018-09-19T03:30:00.000Z',\r\n '2018-09-19T04:30:00.000Z',\r\n '2018-09-19T05:30:00.000Z',\r\n '2018-09-19T06:30:00.000Z',\r\n ],\r\n },\r\n tooltip: {\r\n x: {\r\n format: 'dd/MM/yy HH:mm',\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"chart\">\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\")+''}</div>}\r\n\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"area\"\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default AreaChartComponent;\r\n","import React from \"react\";\r\n\r\nclass TimelineChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default TimelineChartComponent;\r\n","import React from 'react'\r\n\r\nclass CandleChartComponent extends React.Component {\r\n\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default CandleChartComponent\r\n","export class ApiQueryFilters {\r\n\r\n public PageIndex: number | null = null;\r\n public PageSize: number | null = null;\r\n public SortBy: string | null = null;\r\n public SortDirection: string | null = null;\r\n public GetCount: boolean | null = null;\r\n public Tenant: number | null = null;\r\n public AdditionalFilters: FilterItem[] = [];\r\n public ForceCacheRefresh: boolean = false;\r\n public DontApplyVirtualization: boolean = false;\r\n\r\n \r\n\r\n addAdditionalFilter(\r\n FieldName: string,\r\n FieldValue: any,\r\n FieldValue2: any,\r\n FieldValue3: any,\r\n Operator: string,\r\n IsCustom: boolean,\r\n DisplayInList: boolean,\r\n IsCustomField: boolean,\r\n FieldDataType: string,\r\n IgnoreFilter: boolean = false,\r\n IsCacheOnClient: boolean = false,\r\n ForceEnableAdd:boolean = false) {\r\n\r\n let params=new ApiQueryFiltersAddParams();\r\n params.FieldName=FieldName;\r\n params.FieldValue=FieldValue;\r\n params.FieldValue2=FieldValue2;\r\n params.FieldValue3=FieldValue3;\r\n params.Operator=Operator;\r\n params.IsCustom=IsCustom;\r\n params.DisplayInList=DisplayInList;\r\n params.IsCustomField=IsCustomField;\r\n params.FieldDataType=FieldDataType;\r\n params.IgnoreFilter=IgnoreFilter;\r\n params.IsCacheOnClient=IsCacheOnClient;\r\n params.ForceEnableAdd=ForceEnableAdd;\r\n this.pushAdditionalFilter(params);\r\n }\r\n myReplace(myString: string) {\r\n var myNewString = \"\";\r\n for (var i = 0; i < myString.length; i++)\r\n {\r\n if (myString[i] == '\"') {\r\n myNewString = myNewString + '\\\\\"';\r\n }\r\n else {\r\n myNewString = myNewString + myString[i];\r\n }\r\n }\r\n return myNewString;\r\n }\r\n removeAdditionalFilter(FieldName: string) {\r\n var item = this.AdditionalFilters.filter(d=> d.FieldName == FieldName && d.IsLookUpfilter==true)[0];\r\n if (item) {\r\n var index = this.AdditionalFilters.indexOf(item);\r\n this.AdditionalFilters.splice(index, 1);\r\n }\r\n }\r\n \r\n pushAdditionalFilter(params:ApiQueryFiltersAddParams){\r\n if (!params.IsCacheOnClient) {\r\n if (typeof (params.FieldValue) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue = this.myReplace(params.FieldValue);//FieldValue.replace('\"', '\\\\\"');\r\n if (params.FieldName != \"ImportersFilter\")\r\n params.FieldValue = encodeURIComponent(params.FieldValue)\r\n //FieldValue = FieldValue.replace(\"%22\", \"\\%22\");\r\n }\r\n if (typeof (params.FieldValue2) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue2 = this.myReplace(params.FieldValue2);//.replace('\"', '\\\\\"');\r\n params.FieldValue2 = encodeURIComponent(params.FieldValue2)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n if (typeof (params.FieldValue3) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue3 = this.myReplace(params.FieldValue3);//FieldValue3.replace('\"', '\\\\\"');\r\n params.FieldValue3 = encodeURIComponent(params.FieldValue3)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n }\r\n var existedItem = this.AdditionalFilters.find(d => d.FieldName == params.FieldName);\r\n if (!existedItem || params.ForceEnableAdd) {\r\n var item = new FilterItem(\r\n params.FieldName,\r\n params.FieldValue, \r\n params.FieldValue2,\r\n params.FieldValue3,\r\n params.Operator,\r\n params.IsCustom,\r\n params.DisplayInList,\r\n params.IsCustomField, \r\n params.FieldDataType,\r\n params.IgnoreFilter,\r\n params.IsCacheOnClient,\r\n params.IsLookUpFilter);\r\n this.AdditionalFilters.push(item);\r\n }\r\n }\r\n\r\n public queryId: string = '';\r\n public queryCode: string = '';\r\n\r\n public userid: string = '';\r\n public ObjectTableName: string = '';\r\n\r\n public Filter1Name: string | null = null;\r\n public Filter1Value: any;\r\n public Filter1Operator: string | null = null;\r\n public Filter1Value2: any;\r\n\r\n public Filter2Name: any;\r\n public Filter2Value: any;\r\n public Filter2Operator: any;\r\n public Filter2Value2: any;\r\n\r\n public Filter3Name: any;\r\n public Filter3Value: any;\r\n public Filter3Operator: any;\r\n public Filter3Value2: any;\r\n\r\n public Filter4Name: any;\r\n public Filter4Value: any;\r\n public Filter4Operator: any;\r\n public Filter4Value2: any;\r\n\r\n public Filter5Name: any;\r\n public Filter5Value: any;\r\n public Filter5Operator: any;\r\n public Filter5Value2: any;\r\n\r\n public Filter6Name: any;\r\n public Filter6Value: any;\r\n public Filter6Operator: any;\r\n public Filter6Value2: any;\r\n\r\n public Filter7Name: any;\r\n public Filter7Value: any;\r\n public Filter7Operator: any;\r\n public Filter7Value2: any;\r\n\r\n public Filter8Name: any;\r\n public Filter8Value: any;\r\n public Filter8Operator: any;\r\n public Filter8Value2: any;\r\n\r\n public Filter9Name: any;\r\n public Filter9Value: any;\r\n public Filter9Operator: any;\r\n public Filter9Value2: any;\r\n\r\n public Filter10Name: any;\r\n public Filter10Value: any;\r\n public Filter10Operator: any;\r\n public Filter10Value2: any;\r\n\r\n public GetAll: boolean = true;\r\n\r\n \r\n}\r\n\r\nexport class FilterItem {\r\n constructor(\r\n public FieldName: string,\r\n public FieldValue: any,\r\n public FieldValue2: any,\r\n public FieldValue3: any,\r\n public Operator: string,\r\n public IsCustom: boolean,\r\n public DisplayInList: boolean,\r\n public IsCustomField: boolean,\r\n public FieldDataType: string,\r\n public IgnoreFilter: boolean,\r\n public IsCacheOnClient: boolean = false,\r\n public IsLookUpfilter:boolean=false) { }\r\n \r\n\r\n}\r\nexport class ApiQueryFiltersAddParams{\r\n FieldName: string = '';\r\n FieldValue: any;\r\n FieldValue2: any;\r\n FieldValue3: any;\r\n Operator: string = '';\r\n IsCustom: boolean = false;\r\n DisplayInList: boolean = false;\r\n IsCustomField: boolean = false;\r\n FieldDataType: string = '';\r\n IgnoreFilter: boolean = false;\r\n IsCacheOnClient: boolean = false;\r\n ForceEnableAdd:boolean = false;\r\n IsLookUpFilter:boolean=false;\r\n}\r\n","export class Tools{\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url ;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DataService{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getObjectTables(filters: ApiQueryFilters){\r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectTableViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getObjectFields(filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectFieldViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getDataByFilters(filters: ApiQueryFilters,tableName: string) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/${tableName}Views/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\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\r\n getTokenFromStorage(){\r\n return window.localStorage.getItem(\"token\") || '';\r\n }\r\n}","import React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ApiQueryFilters } from \"../../../common/data-contracts/ApiQueryFilter\";\r\nimport { DataService } from \"../../../services/DataService\";\r\nimport { ChartComponentProps } from \"../../../types/ChartComponentProps\";\r\nimport { ChartComponentState } from \"../../../types/ChartComponentState\";\r\n\r\n\r\n\r\n\r\n\r\nclass BarChartComponent extends React.Component<\r\n ChartComponentProps,\r\n ChartComponentState\r\n> {\r\n\r\n data: any[] = [];\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props);\r\n const filters = new ApiQueryFilters();\r\n const dataService = new DataService();\r\n if (this.props.widget?.Title)\r\n dataService.getDataByFilters(filters, this.props.widget.Title || '')\r\n .then((response: any) => {\r\n console.log(\"dataService.getDataByFilters\", response);\r\n this.data = response.data.Result;\r\n this.InitChart();\r\n })\r\n\r\n\r\n this.state = {\r\n series: [\r\n {\r\n data: [],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: [],\r\n },\r\n },\r\n };\r\n\r\n }\r\n\r\n\r\n private InitChart() {\r\n const groups = this.GroupItems();\r\n\r\n\r\n const catItems = Object.keys(groups);\r\n const dataItems: any[] = Object.values(groups);\r\n\r\n\r\n this.setState({\r\n series: [\r\n {\r\n data: dataItems,\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: catItems,\r\n },\r\n },\r\n });\r\n }\r\n // private GroupItems()\r\n // {\r\n // return this.data.reduce((groups, record) =>\r\n // {\r\n // const fieldName = this.props.widget.ValueFieldName + '';\r\n\r\n // const group = (groups[record] || []);\r\n // group.push(record);\r\n\r\n // const recordCategory = record[this.props.widget.ValueFieldName + ''];\r\n // groups[record[fieldName]] = groups[recordCategory] + 1 || 0;\r\n // return groups;\r\n // }, {});\r\n // }\r\n private GroupItems() {\r\n let groups = this.data.reduce((groups, record) => {\r\n const CreateGroup = (groups: any, record: any) => {\r\n const group = (groups[record] || []);\r\n group.push(record);\r\n }\r\n const SetGroupData = () => {\r\n const groupByFieldName = this.props.widget.GroupBy + \"\";\r\n // const valueFieldName = this.props.widget.ValueFieldName + \"\";\r\n const recordCategory = record[groupByFieldName];\r\n // const recordValue = record[valueFieldName];\r\n let currentGroupValue = groups[record[groupByFieldName]];\r\n\r\n // switch (this.props.widget.) {\r\n // case \"Count\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + 1;\r\n // break;\r\n // }\r\n // case \"Sum\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + recordValue;\r\n // break;\r\n // }\r\n // case \"Max\": {\r\n // if (!currentGroupValue) currentGroupValue = -9999999999999;\r\n\r\n // if (recordValue > currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Min\": {\r\n // if (!currentGroupValue) currentGroupValue = 9999999999999;\r\n\r\n // if (recordValue < currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Average\": {\r\n // if (!currentGroupValue) currentGroupValue = [];\r\n // currentGroupValue.push(recordValue);\r\n // break;\r\n // }\r\n // }\r\n\r\n groups[record[groupByFieldName]] = currentGroupValue;\r\n };\r\n\r\n CreateGroup(groups, record);\r\n SetGroupData();\r\n return groups;\r\n }, {});\r\n\r\n // if (this.props.widget.CalcType == \"Average\") {\r\n // for (const key in groups) {\r\n // if (Object.prototype.hasOwnProperty.call(groups, key)) {\r\n // const groupArray: any[] = groups[key];\r\n // let sum = groupArray.reduce((a, b) => a + (b[key] || 0), 0);\r\n // let avg = sum / groupArray.length;\r\n // groups[key] = avg;\r\n // }\r\n // }\r\n // }\r\n return groups;\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n <div id=\"chart\">\r\n <div>\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\") + ''}</div>}\r\n </div>\r\n {/* <div>\r\n {this.props.widget?.EntityName}: {this.props.widget?.CalcType} of {this.props.widget?.ValueFieldName} \r\n </div> */}\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"bar\"\r\n height={\"100%\"}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default BarChartComponent;\r\n","import { stat } from \"fs\";\r\nimport { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\n\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any):any;\r\n deleteBtnClicked(i: any):any;\r\n widget: any | null;\r\n el: any;\r\n dateFilter: any;\r\n}\r\n\r\n\r\nconst WidgetCard = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n const widgetComponents: any[] = [\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 return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.WidgetName || \"not set\"}</h1>\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\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => props.editBtnClicked(props.widget)} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.el.i)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n\r\n <div className=\"dashboard-widget\">\r\n {React.createElement(\r\n widgetComponents.find((wc) => wc.type === props.widget.WidgetType)\r\n ?.component,\r\n {\r\n key: props.el.i,\r\n dateFilter: props.dateFilter,\r\n widget: props.widget,\r\n }\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive } 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\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = { \r\n openEditWidget:(widget: ReactWidgetPM) => void\r\n };\r\nconst DashboardDesigner = (props:DashboardDesignerProps) => {\r\n\r\n const [widgetButtonToggle, setWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [addWidgetButtonToggle, setAddWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [widgetComponents, setWidgetComponents] = useState([\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Col\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Are\", component: AreaChartComponent },\r\n ]);\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedLayouts = getFromStorage(\"grid-layout\");\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState(savedLayouts || { lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [showMsg, setShowMsg] = useState(false);\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [displayDialog, setDisplayDialog] = useState(false);\r\n const [dashboardTitle, setDashboardTitle] = useState(\"\");\r\n const [widgets, setWidgets] = useState(savedWidgets || []);\r\n const [placeholderRows, setPlaceholderRows] = useState(minimumPlaceholderRowsCount);\r\n\r\n // const [widgetToEdit, setWidgetToEdit] = useState<Widget | null>(null);\r\n // const renderPageHeader = () => {\r\n // return (\r\n\r\n // <div className=\"dl-heder-row\">\r\n // {/* <Calendar\r\n // value={dateFilter}\r\n // showIcon={true}\r\n // onChange={(e) => setDateFilter(e.value)}\r\n // placeholder=\"filter by date...\"\r\n // ></Calendar> */}\r\n \r\n\r\n\r\n // </div>\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 renderGridWidgetsPlaceholder() {\r\n // console.log(placeholderRows)\r\n // return (\r\n // <div className=\"dl-grid dl-grid--bordered\">\r\n // {[...Array(placeholderRows)].map((e, i) =>\r\n // [...Array(layoutGridProps.cols.lg)].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 // </div>\r\n // );\r\n // }\r\n\r\n function onLayoutChange(layout: any, layouts) {\r\n console.log(layout, layouts);\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n }\r\n function renderWidgetComponent(el: any) {\r\n const widget = FindWidget(el);\r\n\r\n return (\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={widget}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n />\r\n </div>\r\n );\r\n }\r\n function deletePanel(i) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === i);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: i }));\r\n SaveGrid();\r\n };\r\n function SaveGrid() {\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n }\r\n function editWidget(widget: ReactWidgetPM) {\r\n props.openEditWidget(widget);\r\n };\r\n function FindWidget(el: any) {\r\n return widgets.find((d) => d.i === el.i);\r\n }\r\n function saveToStorage(key, value) {\r\n setShowMsg(true);\r\n setTimeout(() => {\r\n setShowMsg(false);\r\n }, 2000);\r\n window.localStorage.setItem(key, JSON.stringify(value));\r\n };\r\n function getFromStorage(key) {\r\n const layout: any = window.localStorage.getItem(key);\r\n return JSON.parse(layout);\r\n };\r\n // function toggleDialog() {\r\n // setDisplayDialog(!displayDialog);\r\n // }\r\n // function renderNewWidgetDialog() {\r\n\r\n // return (\r\n // <Dialog\r\n\r\n // header={widgetToEdit ? \"Edit Chart\" : \"New Chart\"}\r\n // visible={displayDialog}\r\n // onHide={toggleDialog}\r\n // breakpoints={{ \"850px\": \"95vw\", \"600px\": \"100vw\" }}\r\n // style={{ width: \"800px\" }}\r\n // >\r\n // <NewWidget\r\n // onOkButton={onOkButton}\r\n // onCancelButton={onCancelButton}\r\n // widget={widgetToEdit}\r\n // />\r\n // </Dialog>\r\n // );\r\n // }\r\n function addPanel(newWidget: ReactWidgetPM) {\r\n\r\n let newWidgetPosition = EvaluateNewWidgetPosition();\r\n\r\n const widgetComponent = widgetComponents.find(\r\n (wc) => wc.type === newWidget.TypeCode\r\n );\r\n\r\n const randomIndex = getRandomInt(100, 999);\r\n const newPanel = {\r\n i: \"\" + randomIndex,\r\n x: newWidgetPosition.x,\r\n y: newWidgetPosition.y,\r\n w: newWidgetWidth,\r\n h: 5,\r\n minH: 5,\r\n minW: 3,\r\n };\r\n\r\n widgets.push({\r\n i: \"\" + randomIndex,\r\n title: newWidget.Title,\r\n component: widgetComponent?.component,\r\n ...newWidget,\r\n });\r\n setLayouts({ lg: layouts[\"lg\"].concat(newPanel) });\r\n setWidgets(widgets);\r\n\r\n };\r\n\r\n function EvaluateNewWidgetPosition() {\r\n let widgetYPosition = 0;\r\n let widgetXPosition = 0;\r\n let layout: { x: number, y: number, w: number }[] = layouts[\"lg\"];\r\n const maxY = layout.reduce((max, widget) => {\r\n if (widget.y > max) max = widget.y;\r\n return max;\r\n }, 0);\r\n\r\n for (let y = 0; y <= maxY; y++) {\r\n const widgetsRow = layout.filter(d => d.y == y);\r\n const lastWidgetStartXPosition = Math.max.apply(Math, widgetsRow.map(a => a.x));\r\n const lastWidget: any = widgetsRow.find(a => a.x == lastWidgetStartXPosition);\r\n if (lastWidget) {\r\n const lastWidgetEndXPosition = lastWidgetStartXPosition + lastWidget.w;\r\n const availableHorizontalSlots = layoutGridProps.cols.lg - lastWidgetEndXPosition;\r\n if (availableHorizontalSlots >= newWidgetWidth) {\r\n widgetYPosition = y;\r\n widgetXPosition = lastWidgetEndXPosition;\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n }\r\n\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n }\r\n // function onOkButton(data: any) {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // addPanel(data);\r\n // };\r\n // function onCancelButton() {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // };\r\n function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n // useEffect(() => {\r\n\r\n // });\r\n function UpdatePlaceholderDimensions() {\r\n\r\n var gridLayout = document.getElementsByClassName('react-grid-layout')\r\n if (!gridLayout)\r\n return;\r\n const gridElementHeight = gridLayout[0]?.clientHeight;\r\n\r\n let newPlaceholderRows = Math.floor(gridElementHeight / layoutGridProps.rowHeight);\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setPlaceholderRows(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 {/* {renderGridWidgetsPlaceholder()} */}\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {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 </div>\r\n\r\n\r\n <ResponsiveReactGridLayout\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n\r\n onWidthChange={() => UpdatePlaceholderDimensions()}\r\n onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {layouts[\"lg\"].map((el) =>\r\n\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={FindWidget(el)}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\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 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:T){\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 { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DashBoardService{ \r\n _ApiServices:ApiServices;\r\n tableName = 'DashBoard';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<ReactDashboardPM>(`/api/${this.tableName}Views/getbyfilters?`,filters);\r\n }\r\n\r\n add(data:ReactDashboardPM){\r\n return this._ApiServices.post(`/api/DashBoards`,data);\r\n }\r\n \r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { ReactDashboardPM } from \"../types/Dashboard\";\r\nimport { WidgetType } from \"../types/WidgetType\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class WidgetTypeListService{ \r\n _ApiServices:ApiServices;\r\n\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<WidgetType>(`/api/WidgetTypeViews/getbyfilters?`,filters);\r\n }\r\n\r\n getAll() {\r\n return this._ApiServices.get<WidgetType[]>(`/api/WidgetTypeViews/getall`);\r\n }\r\n\r\n \r\n}","import * as React from 'react'\nimport { Card } from 'primereact/card';\nimport { Button } from \"primereact/button\";\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\nimport \"./styles.module.css\"\nimport { Dropdown } from 'primereact/dropdown';\nimport { createRef, useEffect, useRef, useState } from \"react\";\nimport { DashBoardService } from './services/DashBoardService';\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\nimport { ReactDashboardPM } from './types/Dashboard';\nimport { Dialog } from 'primereact/dialog';\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\nimport { Session } from './services/session';\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\nimport { WidgetType } from './types/WidgetType';\nimport { ReactWidgetPM } from './types/widget';\nimport { OverlayPanel } from 'primereact/overlaypanel';\nimport { Ripple } from 'primereact/ripple';\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\ntype DashboardProps = {\n token: string,\n tenant: number,\n userId: string,\n dataBinding:DashboardDataBinding,\n openAddEditWidget: (widget: ReactWidgetPM | undefined) => void,\n openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void,\n onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void,\n onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void,\n};\nconst Dashboard = (props: DashboardProps) => {\n const [dashbords, setDashbords] = useState<ReactDashboardPM[]>([]);\n const [currentDashbord, setCurrentDashbord] = useState<ReactDashboardPM | undefined>(undefined);\n const [selectedWidget, setSelectedWidget] = useState();\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\n const dashboardService = new DashBoardService();\n const widgetTypeListService = new WidgetTypeListService();\n useEffect(() => {\n getDashboards();\n getWidgetTypes();\n \n props.dataBinding.onGetDashboard.subscribe(e=>{\n setCurrentDashbord(e);\n })\n props.dataBinding.onGetAllDashboard.subscribe(e=>{\n setDashbords(e);\n })\n\n }, [])\n\n Session.CurrentUserId = props.userId;\n Session.Tenant = props.tenant;\n Session.Token = props.token;\n if (props?.token?.length > 0)\n localStorage.setItem(\"token\", props?.token);\n\n const onDashboardDialogClose = () => {\n getDashboards();\n }\n\n const getDashboards = () => {\n dashboardService.getDataByFilters(new ApiQueryFilters()).then(data => {\n setDashbords(data.data.Result);\n if (data.data.Result.length > 0)\n setCurrentDashbord(data.data.Result[0]);\n });\n }\n const getWidgetTypes = () => {\n widgetTypeListService.getAll().then(data => {\n setWidgetTypes(data.data);\n\n\n });\n }\n const EditDashBoard = () => {\n props.openAddEditDashboard(currentDashbord);\n dashboardMoreButtonToggle?.current?.hide();\n \n }\n const addWidget = (widgetCode) => {\n props.openAddEditWidget({ TypeCode: widgetCode } as ReactWidgetPM);\n }\n\n const editDesign = () => {\n setIsInEditMode(true)\n dashboardMoreButtonToggle?.current?.hide();\n console.log(WidgetTypes)\n }\n\n return (\n <div className='dl-full-hight'>\n\n <div className='dl-dashboard-header dl-card'>\n <div className='dl-flex-row'>\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\n <Button\n icon=\"pi pi-ellipsis-v\"\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\n className=\"p-button-lg p-button-rounded p-button-text\"\n >\n <Ripple />\n </Button>\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\n <div className=\"buttons-list\">\n <div onClick={() => EditDashBoard()}>Edit</div>\n <div onClick={editDesign}>Edit Design</div>\n\n </div>\n </OverlayPanel >\n </div>\n <div className='dl-flex-row'>\n {!isInEditMode ?\n <div className='dl-flex-row'>\n \n\n <div style={{ width: \"210px\" }}>\n <Dropdown\n value={[]}\n options={dashbords}\n optionValue=\"Id\"\n optionLabel=\"Name\"\n onChange={(e) => { }}\n placeholder=\"Choose Dashboard\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\n className=\"dl-dashboard-add p-button-rounded p-button-success\" aria-label=\"Search\" />\n </div>\n : null}\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\n\n\n\n {isInEditMode ?\n <div className='dl-flex-row'>\n \n <Button\n label=\"Cancel\"\n className=\"p-button-text\"\n onClick={() => {setIsInEditMode(false) }}\n />\n <Button\n label=\"Save\"\n form=\"frm\"\n // icon=\"pi pi-check\"\n onClick={() => { setIsInEditMode(false)}}\n autoFocus\n />\n\n <div style={{ width: '192px',marginLeft:'15px'}}>\n <Dropdown\n value={selectedWidget}\n options={WidgetTypes}\n optionValue=\"Code\"\n optionLabel=\"Name\"\n onChange={(e) => addWidget(e.value)}\n placeholder=\"Add Component\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n </div>\n : null}\n </div>\n\n\n </div>\n\n <div className='dl-dashboard-body'>\n <DashboardDesigner openEditWidget={(widget: ReactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\n </div>\n </div >\n\n )\n}\nexport default Dashboard;"],"names":["ColumnChartComponent","props","render","React","id","Component","PieChartComponent","MixedChartComponent","AreaChartComponent","state","series","name","data","options","chart","height","type","colors","dataLabels","enabled","stroke","curve","xaxis","categories","tooltip","x","format","dateFilter","className","toLocaleDateString","ReactApexChart","TimelineChartComponent","CandleChartComponent","ApiQueryFilters","addAdditionalFilter","FieldName","FieldValue","FieldValue2","FieldValue3","Operator","IsCustom","DisplayInList","IsCustomField","FieldDataType","IgnoreFilter","IsCacheOnClient","ForceEnableAdd","params","ApiQueryFiltersAddParams","pushAdditionalFilter","myReplace","myString","myNewString","i","length","removeAdditionalFilter","item","AdditionalFilters","filter","d","IsLookUpfilter","index","indexOf","splice","encodeURIComponent","existedItem","find","FilterItem","IsLookUpFilter","push","Tools","GetLogitudeURL","logitude_url","location","href","replace","urlArr","split","url","substring","lastIndexOf","DataService","_apiUrl","getObjectTables","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","getObjectFields","getDataByFilters","tableName","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","JSON","stringify","window","localStorage","getItem","BarChartComponent","dataService","widget","Title","then","response","console","log","Result","InitChart","events","dataPointSelection","event","chartContext","config","w","seriesIndex","plotOptions","bar","borderRadius","horizontal","groups","GroupItems","catItems","dataItems","values","setState","reduce","record","CreateGroup","group","SetGroupData","groupByFieldName","GroupBy","currentGroupValue","WidgetCard","moreBtnToggle","useRef","widgetComponents","component","key","el","WidgetName","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","createElement","wc","WidgetType","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","useState","createRef","array12","Array","from","fill","savedLayouts","getFromStorage","savedWidgets","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","widgets","setWidgets","placeholderRows","setPlaceholderRows","onLayoutChange","layout","saveToStorage","UpdatePlaceholderDimensions","deletePanel","itemIndex","findIndex","_","reject","SaveGrid","editWidget","openEditWidget","FindWidget","value","setTimeout","setItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","map","style","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","getByFilters","api","post","date","DashBoardService","_ApiServices","add","WidgetTypeListService","getAll","Dashboard","dashbords","setDashbords","currentDashbord","setCurrentDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","dashboardService","widgetTypeListService","useEffect","getDashboards","getWidgetTypes","dataBinding","onGetDashboard","subscribe","onGetAllDashboard","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","openAddEditWidget","TypeCode","editDesign","Name","Ripple","width","Dropdown","optionValue","optionLabel","onChange","placeholder","optionDisabled","option","Disabled","scrollHeight","label","form","autoFocus","marginLeft"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -920,11 +920,13 @@ var Dashboard = function Dashboard(props) {
|
|
|
920
920
|
useEffect(function () {
|
|
921
921
|
getDashboards();
|
|
922
922
|
getWidgetTypes();
|
|
923
|
+
props.dataBinding.onGetDashboard.subscribe(function (e) {
|
|
924
|
+
setCurrentDashbord(e);
|
|
925
|
+
});
|
|
926
|
+
props.dataBinding.onGetAllDashboard.subscribe(function (e) {
|
|
927
|
+
setDashbords(e);
|
|
928
|
+
});
|
|
923
929
|
}, []);
|
|
924
|
-
useEffect(function () {
|
|
925
|
-
setCurrentDashbord(props.dashboard);
|
|
926
|
-
console.log("setCurrentDashbord", props.dashboard);
|
|
927
|
-
}, [props.dashboard]);
|
|
928
930
|
if ((props === null || props === void 0 ? void 0 : (_props$token = props.token) === null || _props$token === void 0 ? void 0 : _props$token.length) > 0) localStorage.setItem("token", props === null || props === void 0 ? void 0 : props.token);
|
|
929
931
|
|
|
930
932
|
var getDashboards = function getDashboards() {
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/features/Dashboard/ChartsComponents/ColumnChartComponent.tsx","../src/features/Dashboard/ChartsComponents/PieChartComponent.tsx","../src/features/Dashboard/ChartsComponents/MixedChartComponent.tsx","../src/features/Dashboard/ChartsComponents/AreaChartComponent.tsx","../src/features/Dashboard/ChartsComponents/TimelineChartComponent.tsx","../src/features/Dashboard/ChartsComponents/CandleChartComponent.tsx","../src/common/data-contracts/ApiQueryFilter.ts","../src/services/tools.ts","../src/services/DataService.ts","../src/features/Dashboard/ChartsComponents/BarChartComponent.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/features/Dashboard/DashboardDesigner.tsx","../src/services/ApiServices.ts","../src/services/DashBoardService.ts","../src/services/WidgetTypeListService.ts","../src/index.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nclass ColumnChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default ColumnChartComponent;","import React from \"react\";\r\n\r\n\r\n\r\nexport class PieChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PieChartComponent;\r\n","import React from \"react\";\r\n\r\nclass MixedChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default MixedChartComponent;\r\n","import React from 'react'\r\nimport ReactApexChart from 'react-apexcharts'\r\nimport { ChartComponentProps } from '../../../types/ChartComponentProps'\r\nimport { ChartComponentState } from '../../../types/ChartComponentState'\r\n\r\nclass AreaChartComponent extends React.Component<\r\nChartComponentProps,\r\nChartComponentState\r\n> {\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props)\r\n\r\n this.state = {\r\n series: [\r\n {\r\n name: 'series1',\r\n data: [31, 40, 28, 51, 42, 109, 100],\r\n },\r\n {\r\n name: 'series2',\r\n data: [11, 32, 45, 32, 34, 52, 41],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'area',\r\n },\r\n colors: ['#22D792','#2C99F7','#FBC445','#F74E49','#717585'] ,\r\n\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n type: 'datetime',\r\n categories: [\r\n '2018-09-19T00:00:00.000Z',\r\n '2018-09-19T01:30:00.000Z',\r\n '2018-09-19T02:30:00.000Z',\r\n '2018-09-19T03:30:00.000Z',\r\n '2018-09-19T04:30:00.000Z',\r\n '2018-09-19T05:30:00.000Z',\r\n '2018-09-19T06:30:00.000Z',\r\n ],\r\n },\r\n tooltip: {\r\n x: {\r\n format: 'dd/MM/yy HH:mm',\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"chart\">\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\")+''}</div>}\r\n\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"area\"\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default AreaChartComponent;\r\n","import React from \"react\";\r\n\r\nclass TimelineChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default TimelineChartComponent;\r\n","import React from 'react'\r\n\r\nclass CandleChartComponent extends React.Component {\r\n\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default CandleChartComponent\r\n","export class ApiQueryFilters {\r\n\r\n public PageIndex: number | null = null;\r\n public PageSize: number | null = null;\r\n public SortBy: string | null = null;\r\n public SortDirection: string | null = null;\r\n public GetCount: boolean | null = null;\r\n public Tenant: number | null = null;\r\n public AdditionalFilters: FilterItem[] = [];\r\n public ForceCacheRefresh: boolean = false;\r\n public DontApplyVirtualization: boolean = false;\r\n\r\n \r\n\r\n addAdditionalFilter(\r\n FieldName: string,\r\n FieldValue: any,\r\n FieldValue2: any,\r\n FieldValue3: any,\r\n Operator: string,\r\n IsCustom: boolean,\r\n DisplayInList: boolean,\r\n IsCustomField: boolean,\r\n FieldDataType: string,\r\n IgnoreFilter: boolean = false,\r\n IsCacheOnClient: boolean = false,\r\n ForceEnableAdd:boolean = false) {\r\n\r\n let params=new ApiQueryFiltersAddParams();\r\n params.FieldName=FieldName;\r\n params.FieldValue=FieldValue;\r\n params.FieldValue2=FieldValue2;\r\n params.FieldValue3=FieldValue3;\r\n params.Operator=Operator;\r\n params.IsCustom=IsCustom;\r\n params.DisplayInList=DisplayInList;\r\n params.IsCustomField=IsCustomField;\r\n params.FieldDataType=FieldDataType;\r\n params.IgnoreFilter=IgnoreFilter;\r\n params.IsCacheOnClient=IsCacheOnClient;\r\n params.ForceEnableAdd=ForceEnableAdd;\r\n this.pushAdditionalFilter(params);\r\n }\r\n myReplace(myString: string) {\r\n var myNewString = \"\";\r\n for (var i = 0; i < myString.length; i++)\r\n {\r\n if (myString[i] == '\"') {\r\n myNewString = myNewString + '\\\\\"';\r\n }\r\n else {\r\n myNewString = myNewString + myString[i];\r\n }\r\n }\r\n return myNewString;\r\n }\r\n removeAdditionalFilter(FieldName: string) {\r\n var item = this.AdditionalFilters.filter(d=> d.FieldName == FieldName && d.IsLookUpfilter==true)[0];\r\n if (item) {\r\n var index = this.AdditionalFilters.indexOf(item);\r\n this.AdditionalFilters.splice(index, 1);\r\n }\r\n }\r\n \r\n pushAdditionalFilter(params:ApiQueryFiltersAddParams){\r\n if (!params.IsCacheOnClient) {\r\n if (typeof (params.FieldValue) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue = this.myReplace(params.FieldValue);//FieldValue.replace('\"', '\\\\\"');\r\n if (params.FieldName != \"ImportersFilter\")\r\n params.FieldValue = encodeURIComponent(params.FieldValue)\r\n //FieldValue = FieldValue.replace(\"%22\", \"\\%22\");\r\n }\r\n if (typeof (params.FieldValue2) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue2 = this.myReplace(params.FieldValue2);//.replace('\"', '\\\\\"');\r\n params.FieldValue2 = encodeURIComponent(params.FieldValue2)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n if (typeof (params.FieldValue3) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue3 = this.myReplace(params.FieldValue3);//FieldValue3.replace('\"', '\\\\\"');\r\n params.FieldValue3 = encodeURIComponent(params.FieldValue3)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n }\r\n var existedItem = this.AdditionalFilters.find(d => d.FieldName == params.FieldName);\r\n if (!existedItem || params.ForceEnableAdd) {\r\n var item = new FilterItem(\r\n params.FieldName,\r\n params.FieldValue, \r\n params.FieldValue2,\r\n params.FieldValue3,\r\n params.Operator,\r\n params.IsCustom,\r\n params.DisplayInList,\r\n params.IsCustomField, \r\n params.FieldDataType,\r\n params.IgnoreFilter,\r\n params.IsCacheOnClient,\r\n params.IsLookUpFilter);\r\n this.AdditionalFilters.push(item);\r\n }\r\n }\r\n\r\n public queryId: string = '';\r\n public queryCode: string = '';\r\n\r\n public userid: string = '';\r\n public ObjectTableName: string = '';\r\n\r\n public Filter1Name: string | null = null;\r\n public Filter1Value: any;\r\n public Filter1Operator: string | null = null;\r\n public Filter1Value2: any;\r\n\r\n public Filter2Name: any;\r\n public Filter2Value: any;\r\n public Filter2Operator: any;\r\n public Filter2Value2: any;\r\n\r\n public Filter3Name: any;\r\n public Filter3Value: any;\r\n public Filter3Operator: any;\r\n public Filter3Value2: any;\r\n\r\n public Filter4Name: any;\r\n public Filter4Value: any;\r\n public Filter4Operator: any;\r\n public Filter4Value2: any;\r\n\r\n public Filter5Name: any;\r\n public Filter5Value: any;\r\n public Filter5Operator: any;\r\n public Filter5Value2: any;\r\n\r\n public Filter6Name: any;\r\n public Filter6Value: any;\r\n public Filter6Operator: any;\r\n public Filter6Value2: any;\r\n\r\n public Filter7Name: any;\r\n public Filter7Value: any;\r\n public Filter7Operator: any;\r\n public Filter7Value2: any;\r\n\r\n public Filter8Name: any;\r\n public Filter8Value: any;\r\n public Filter8Operator: any;\r\n public Filter8Value2: any;\r\n\r\n public Filter9Name: any;\r\n public Filter9Value: any;\r\n public Filter9Operator: any;\r\n public Filter9Value2: any;\r\n\r\n public Filter10Name: any;\r\n public Filter10Value: any;\r\n public Filter10Operator: any;\r\n public Filter10Value2: any;\r\n\r\n public GetAll: boolean = true;\r\n\r\n \r\n}\r\n\r\nexport class FilterItem {\r\n constructor(\r\n public FieldName: string,\r\n public FieldValue: any,\r\n public FieldValue2: any,\r\n public FieldValue3: any,\r\n public Operator: string,\r\n public IsCustom: boolean,\r\n public DisplayInList: boolean,\r\n public IsCustomField: boolean,\r\n public FieldDataType: string,\r\n public IgnoreFilter: boolean,\r\n public IsCacheOnClient: boolean = false,\r\n public IsLookUpfilter:boolean=false) { }\r\n \r\n\r\n}\r\nexport class ApiQueryFiltersAddParams{\r\n FieldName: string = '';\r\n FieldValue: any;\r\n FieldValue2: any;\r\n FieldValue3: any;\r\n Operator: string = '';\r\n IsCustom: boolean = false;\r\n DisplayInList: boolean = false;\r\n IsCustomField: boolean = false;\r\n FieldDataType: string = '';\r\n IgnoreFilter: boolean = false;\r\n IsCacheOnClient: boolean = false;\r\n ForceEnableAdd:boolean = false;\r\n IsLookUpFilter:boolean=false;\r\n}\r\n","export class Tools{\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url ;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DataService{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getObjectTables(filters: ApiQueryFilters){\r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectTableViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getObjectFields(filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectFieldViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getDataByFilters(filters: ApiQueryFilters,tableName: string) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/${tableName}Views/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\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\r\n getTokenFromStorage(){\r\n return window.localStorage.getItem(\"token\") || '';\r\n }\r\n}","import React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ApiQueryFilters } from \"../../../common/data-contracts/ApiQueryFilter\";\r\nimport { DataService } from \"../../../services/DataService\";\r\nimport { ChartComponentProps } from \"../../../types/ChartComponentProps\";\r\nimport { ChartComponentState } from \"../../../types/ChartComponentState\";\r\n\r\n\r\n\r\n\r\n\r\nclass BarChartComponent extends React.Component<\r\n ChartComponentProps,\r\n ChartComponentState\r\n> {\r\n\r\n data: any[] = [];\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props);\r\n const filters = new ApiQueryFilters();\r\n const dataService = new DataService();\r\n if (this.props.widget?.Title)\r\n dataService.getDataByFilters(filters, this.props.widget.Title || '')\r\n .then((response: any) => {\r\n console.log(\"dataService.getDataByFilters\", response);\r\n this.data = response.data.Result;\r\n this.InitChart();\r\n })\r\n\r\n\r\n this.state = {\r\n series: [\r\n {\r\n data: [],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: [],\r\n },\r\n },\r\n };\r\n\r\n }\r\n\r\n\r\n private InitChart() {\r\n const groups = this.GroupItems();\r\n\r\n\r\n const catItems = Object.keys(groups);\r\n const dataItems: any[] = Object.values(groups);\r\n\r\n\r\n this.setState({\r\n series: [\r\n {\r\n data: dataItems,\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: catItems,\r\n },\r\n },\r\n });\r\n }\r\n // private GroupItems()\r\n // {\r\n // return this.data.reduce((groups, record) =>\r\n // {\r\n // const fieldName = this.props.widget.ValueFieldName + '';\r\n\r\n // const group = (groups[record] || []);\r\n // group.push(record);\r\n\r\n // const recordCategory = record[this.props.widget.ValueFieldName + ''];\r\n // groups[record[fieldName]] = groups[recordCategory] + 1 || 0;\r\n // return groups;\r\n // }, {});\r\n // }\r\n private GroupItems() {\r\n let groups = this.data.reduce((groups, record) => {\r\n const CreateGroup = (groups: any, record: any) => {\r\n const group = (groups[record] || []);\r\n group.push(record);\r\n }\r\n const SetGroupData = () => {\r\n const groupByFieldName = this.props.widget.GroupBy + \"\";\r\n // const valueFieldName = this.props.widget.ValueFieldName + \"\";\r\n const recordCategory = record[groupByFieldName];\r\n // const recordValue = record[valueFieldName];\r\n let currentGroupValue = groups[record[groupByFieldName]];\r\n\r\n // switch (this.props.widget.) {\r\n // case \"Count\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + 1;\r\n // break;\r\n // }\r\n // case \"Sum\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + recordValue;\r\n // break;\r\n // }\r\n // case \"Max\": {\r\n // if (!currentGroupValue) currentGroupValue = -9999999999999;\r\n\r\n // if (recordValue > currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Min\": {\r\n // if (!currentGroupValue) currentGroupValue = 9999999999999;\r\n\r\n // if (recordValue < currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Average\": {\r\n // if (!currentGroupValue) currentGroupValue = [];\r\n // currentGroupValue.push(recordValue);\r\n // break;\r\n // }\r\n // }\r\n\r\n groups[record[groupByFieldName]] = currentGroupValue;\r\n };\r\n\r\n CreateGroup(groups, record);\r\n SetGroupData();\r\n return groups;\r\n }, {});\r\n\r\n // if (this.props.widget.CalcType == \"Average\") {\r\n // for (const key in groups) {\r\n // if (Object.prototype.hasOwnProperty.call(groups, key)) {\r\n // const groupArray: any[] = groups[key];\r\n // let sum = groupArray.reduce((a, b) => a + (b[key] || 0), 0);\r\n // let avg = sum / groupArray.length;\r\n // groups[key] = avg;\r\n // }\r\n // }\r\n // }\r\n return groups;\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n <div id=\"chart\">\r\n <div>\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\") + ''}</div>}\r\n </div>\r\n {/* <div>\r\n {this.props.widget?.EntityName}: {this.props.widget?.CalcType} of {this.props.widget?.ValueFieldName} \r\n </div> */}\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"bar\"\r\n height={\"100%\"}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default BarChartComponent;\r\n","import { stat } from \"fs\";\r\nimport { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\n\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any):any;\r\n deleteBtnClicked(i: any):any;\r\n widget: any | null;\r\n el: any;\r\n dateFilter: any;\r\n}\r\n\r\n\r\nconst WidgetCard = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n const widgetComponents: any[] = [\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 return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.WidgetName || \"not set\"}</h1>\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\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => props.editBtnClicked(props.widget)} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.el.i)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n\r\n <div className=\"dashboard-widget\">\r\n {React.createElement(\r\n widgetComponents.find((wc) => wc.type === props.widget.WidgetType)\r\n ?.component,\r\n {\r\n key: props.el.i,\r\n dateFilter: props.dateFilter,\r\n widget: props.widget,\r\n }\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive } 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 { RactWidgetPM } from \"../../types/widget\";\r\nimport WidgetCard from \"./WidgetCard\";\r\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = { \r\n openEditWidget:(widget: RactWidgetPM) => void\r\n };\r\nconst DashboardDesigner = (props:DashboardDesignerProps) => {\r\n\r\n const [widgetButtonToggle, setWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [addWidgetButtonToggle, setAddWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [widgetComponents, setWidgetComponents] = useState([\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Col\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Are\", component: AreaChartComponent },\r\n ]);\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedLayouts = getFromStorage(\"grid-layout\");\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState(savedLayouts || { lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [showMsg, setShowMsg] = useState(false);\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [displayDialog, setDisplayDialog] = useState(false);\r\n const [dashboardTitle, setDashboardTitle] = useState(\"\");\r\n const [widgets, setWidgets] = useState(savedWidgets || []);\r\n const [placeholderRows, setPlaceholderRows] = useState(minimumPlaceholderRowsCount);\r\n\r\n // const [widgetToEdit, setWidgetToEdit] = useState<Widget | null>(null);\r\n // const renderPageHeader = () => {\r\n // return (\r\n\r\n // <div className=\"dl-heder-row\">\r\n // {/* <Calendar\r\n // value={dateFilter}\r\n // showIcon={true}\r\n // onChange={(e) => setDateFilter(e.value)}\r\n // placeholder=\"filter by date...\"\r\n // ></Calendar> */}\r\n \r\n\r\n\r\n // </div>\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 renderGridWidgetsPlaceholder() {\r\n // console.log(placeholderRows)\r\n // return (\r\n // <div className=\"dl-grid dl-grid--bordered\">\r\n // {[...Array(placeholderRows)].map((e, i) =>\r\n // [...Array(layoutGridProps.cols.lg)].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 // </div>\r\n // );\r\n // }\r\n\r\n function onLayoutChange(layout: any, layouts) {\r\n console.log(layout, layouts);\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n }\r\n function renderWidgetComponent(el: any) {\r\n const widget = FindWidget(el);\r\n\r\n return (\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={widget}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n />\r\n </div>\r\n );\r\n }\r\n function deletePanel(i) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === i);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: i }));\r\n SaveGrid();\r\n };\r\n function SaveGrid() {\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n }\r\n function editWidget(widget: RactWidgetPM) {\r\n props.openEditWidget(widget);\r\n };\r\n function FindWidget(el: any) {\r\n return widgets.find((d) => d.i === el.i);\r\n }\r\n function saveToStorage(key, value) {\r\n setShowMsg(true);\r\n setTimeout(() => {\r\n setShowMsg(false);\r\n }, 2000);\r\n window.localStorage.setItem(key, JSON.stringify(value));\r\n };\r\n function getFromStorage(key) {\r\n const layout: any = window.localStorage.getItem(key);\r\n return JSON.parse(layout);\r\n };\r\n // function toggleDialog() {\r\n // setDisplayDialog(!displayDialog);\r\n // }\r\n // function renderNewWidgetDialog() {\r\n\r\n // return (\r\n // <Dialog\r\n\r\n // header={widgetToEdit ? \"Edit Chart\" : \"New Chart\"}\r\n // visible={displayDialog}\r\n // onHide={toggleDialog}\r\n // breakpoints={{ \"850px\": \"95vw\", \"600px\": \"100vw\" }}\r\n // style={{ width: \"800px\" }}\r\n // >\r\n // <NewWidget\r\n // onOkButton={onOkButton}\r\n // onCancelButton={onCancelButton}\r\n // widget={widgetToEdit}\r\n // />\r\n // </Dialog>\r\n // );\r\n // }\r\n function addPanel(newWidget: RactWidgetPM) {\r\n\r\n let newWidgetPosition = EvaluateNewWidgetPosition();\r\n\r\n const widgetComponent = widgetComponents.find(\r\n (wc) => wc.type === newWidget.TypeCode\r\n );\r\n\r\n const randomIndex = getRandomInt(100, 999);\r\n const newPanel = {\r\n i: \"\" + randomIndex,\r\n x: newWidgetPosition.x,\r\n y: newWidgetPosition.y,\r\n w: newWidgetWidth,\r\n h: 5,\r\n minH: 5,\r\n minW: 3,\r\n };\r\n\r\n widgets.push({\r\n i: \"\" + randomIndex,\r\n title: newWidget.Title,\r\n component: widgetComponent?.component,\r\n ...newWidget,\r\n });\r\n setLayouts({ lg: layouts[\"lg\"].concat(newPanel) });\r\n setWidgets(widgets);\r\n\r\n };\r\n\r\n function EvaluateNewWidgetPosition() {\r\n let widgetYPosition = 0;\r\n let widgetXPosition = 0;\r\n let layout: { x: number, y: number, w: number }[] = layouts[\"lg\"];\r\n const maxY = layout.reduce((max, widget) => {\r\n if (widget.y > max) max = widget.y;\r\n return max;\r\n }, 0);\r\n\r\n for (let y = 0; y <= maxY; y++) {\r\n const widgetsRow = layout.filter(d => d.y == y);\r\n const lastWidgetStartXPosition = Math.max.apply(Math, widgetsRow.map(a => a.x));\r\n const lastWidget: any = widgetsRow.find(a => a.x == lastWidgetStartXPosition);\r\n if (lastWidget) {\r\n const lastWidgetEndXPosition = lastWidgetStartXPosition + lastWidget.w;\r\n const availableHorizontalSlots = layoutGridProps.cols.lg - lastWidgetEndXPosition;\r\n if (availableHorizontalSlots >= newWidgetWidth) {\r\n widgetYPosition = y;\r\n widgetXPosition = lastWidgetEndXPosition;\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n }\r\n\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n }\r\n // function onOkButton(data: any) {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // addPanel(data);\r\n // };\r\n // function onCancelButton() {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // };\r\n function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n // useEffect(() => {\r\n\r\n // });\r\n function UpdatePlaceholderDimensions() {\r\n\r\n var gridLayout = document.getElementsByClassName('react-grid-layout')\r\n if (!gridLayout)\r\n return;\r\n const gridElementHeight = gridLayout[0]?.clientHeight;\r\n\r\n let newPlaceholderRows = Math.floor(gridElementHeight / layoutGridProps.rowHeight);\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setPlaceholderRows(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 {/* {renderGridWidgetsPlaceholder()} */}\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {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 </div>\r\n\r\n\r\n <ResponsiveReactGridLayout\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n\r\n onWidthChange={() => UpdatePlaceholderDimensions()}\r\n onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {layouts[\"lg\"].map((el) =>\r\n\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={FindWidget(el)}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\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 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:T){\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 { RactDashboardPM } from \"../types/Dashboard\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DashBoardService{ \r\n _ApiServices:ApiServices;\r\n tableName = 'DashBoard';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<RactDashboardPM>(`/api/${this.tableName}Views/getbyfilters?`,filters);\r\n }\r\n\r\n add(data:RactDashboardPM){\r\n return this._ApiServices.post(`/api/DashBoards`,data);\r\n }\r\n \r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { RactDashboardPM } from \"../types/Dashboard\";\r\nimport { WidgetType } from \"../types/WidgetType\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class WidgetTypeListService{ \r\n _ApiServices:ApiServices;\r\n\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<WidgetType>(`/api/WidgetTypeViews/getbyfilters?`,filters);\r\n }\r\n\r\n getAll() {\r\n return this._ApiServices.get<WidgetType[]>(`/api/WidgetTypeViews/getall`);\r\n }\r\n\r\n \r\n}","import * as React from 'react'\nimport { Card } from 'primereact/card';\nimport { Button } from \"primereact/button\";\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\nimport \"./styles.module.css\"\nimport { Dropdown } from 'primereact/dropdown';\nimport { createRef, useEffect, useRef, useState } from \"react\";\nimport { DashBoardService } from './services/DashBoardService';\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\nimport { RactDashboardPM } from './types/Dashboard';\nimport { Dialog } from 'primereact/dialog';\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\nimport { Session } from './services/session';\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\nimport { WidgetType } from './types/WidgetType';\nimport { RactWidgetPM } from './types/widget';\nimport { OverlayPanel } from 'primereact/overlaypanel';\nimport { Ripple } from 'primereact/ripple';\ntype DashboardProps = {\n token: string,\n tenant: number,\n userId: string,\n dashboard: RactDashboardPM,\n openAddEditWidget: (widget: RactWidgetPM | undefined) => void,\n openAddEditDashboard: (dashboard: RactDashboardPM | undefined) => void,\n onChangeDashboard: (dashboard: RactDashboardPM | undefined) => void,\n onSaveDashboard: (dashboard: RactDashboardPM | undefined) => void,\n};\nconst Dashboard = (props: DashboardProps) => {\n const [dashbords, setDashbords] = useState<RactDashboardPM[]>([]);\n const [currentDashbord, setCurrentDashbord] = useState<RactDashboardPM | undefined>(undefined);\n const [selectedWidget, setSelectedWidget] = useState();\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\n const dashboardService = new DashBoardService();\n const widgetTypeListService = new WidgetTypeListService();\n useEffect(() => {\n getDashboards();\n getWidgetTypes();\n }, [])\n useEffect(() => {\n setCurrentDashbord(props.dashboard);\n console.log(\"setCurrentDashbord\",props.dashboard)\n }, [props.dashboard])\n Session.CurrentUserId = props.userId;\n Session.Tenant = props.tenant;\n Session.Token = props.token;\n if (props?.token?.length > 0)\n localStorage.setItem(\"token\", props?.token);\n\n const onDashboardDialogClose = () => {\n getDashboards();\n }\n\n const getDashboards = () => {\n dashboardService.getDataByFilters(new ApiQueryFilters()).then(data => {\n setDashbords(data.data.Result);\n if (data.data.Result.length > 0)\n setCurrentDashbord(data.data.Result[0]);\n });\n }\n const getWidgetTypes = () => {\n widgetTypeListService.getAll().then(data => {\n setWidgetTypes(data.data);\n\n\n });\n }\n const EditDashBoard = () => {\n props.openAddEditDashboard(currentDashbord);\n dashboardMoreButtonToggle?.current?.hide();\n \n }\n const addWidget = (widgetCode) => {\n props.openAddEditWidget({ TypeCode: widgetCode } as RactWidgetPM);\n }\n\n const editDesign = () => {\n setIsInEditMode(true)\n dashboardMoreButtonToggle?.current?.hide();\n console.log(WidgetTypes)\n }\n\n return (\n <div className='dl-full-hight'>\n\n <div className='dl-dashboard-header dl-card'>\n <div className='dl-flex-row'>\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\n <Button\n icon=\"pi pi-ellipsis-v\"\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\n className=\"p-button-lg p-button-rounded p-button-text\"\n >\n <Ripple />\n </Button>\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\n <div className=\"buttons-list\">\n <div onClick={() => EditDashBoard()}>Edit</div>\n <div onClick={editDesign}>Edit Design</div>\n\n </div>\n </OverlayPanel >\n </div>\n <div className='dl-flex-row'>\n {!isInEditMode ?\n <div className='dl-flex-row'>\n \n\n <div style={{ width: \"210px\" }}>\n <Dropdown\n value={[]}\n options={dashbords}\n optionValue=\"Id\"\n optionLabel=\"Name\"\n onChange={(e) => { }}\n placeholder=\"Choose Dashboard\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\n className=\"dl-dashboard-add p-button-rounded p-button-success\" aria-label=\"Search\" />\n </div>\n : null}\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\n\n\n\n {isInEditMode ?\n <div className='dl-flex-row'>\n \n <Button\n label=\"Cancel\"\n className=\"p-button-text\"\n onClick={() => {setIsInEditMode(false) }}\n />\n <Button\n label=\"Save\"\n form=\"frm\"\n // icon=\"pi pi-check\"\n onClick={() => { setIsInEditMode(false)}}\n autoFocus\n />\n\n <div style={{ width: '192px',marginLeft:'15px'}}>\n <Dropdown\n value={selectedWidget}\n options={WidgetTypes}\n optionValue=\"Code\"\n optionLabel=\"Name\"\n onChange={(e) => addWidget(e.value)}\n placeholder=\"Add Component\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n </div>\n : null}\n </div>\n\n\n </div>\n\n <div className='dl-dashboard-body'>\n <DashboardDesigner openEditWidget={(widget: RactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\n </div>\n </div >\n\n )\n}\nexport default Dashboard;"],"names":["ColumnChartComponent","props","render","React","id","Component","PieChartComponent","MixedChartComponent","AreaChartComponent","state","series","name","data","options","chart","height","type","colors","dataLabels","enabled","stroke","curve","xaxis","categories","tooltip","x","format","dateFilter","className","toLocaleDateString","ReactApexChart","TimelineChartComponent","CandleChartComponent","ApiQueryFilters","addAdditionalFilter","FieldName","FieldValue","FieldValue2","FieldValue3","Operator","IsCustom","DisplayInList","IsCustomField","FieldDataType","IgnoreFilter","IsCacheOnClient","ForceEnableAdd","params","ApiQueryFiltersAddParams","pushAdditionalFilter","myReplace","myString","myNewString","i","length","removeAdditionalFilter","item","AdditionalFilters","filter","d","IsLookUpfilter","index","indexOf","splice","encodeURIComponent","existedItem","find","FilterItem","IsLookUpFilter","push","Tools","GetLogitudeURL","logitude_url","location","href","replace","urlArr","split","url","substring","lastIndexOf","DataService","_apiUrl","getObjectTables","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","getObjectFields","getDataByFilters","tableName","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","JSON","stringify","window","localStorage","getItem","BarChartComponent","dataService","widget","Title","then","response","console","log","Result","InitChart","events","dataPointSelection","event","chartContext","config","w","seriesIndex","plotOptions","bar","borderRadius","horizontal","groups","GroupItems","catItems","dataItems","values","setState","reduce","record","CreateGroup","group","SetGroupData","groupByFieldName","GroupBy","currentGroupValue","WidgetCard","moreBtnToggle","useRef","widgetComponents","component","key","el","WidgetName","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","createElement","wc","WidgetType","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","useState","createRef","array12","Array","from","fill","savedLayouts","getFromStorage","savedWidgets","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","widgets","setWidgets","placeholderRows","setPlaceholderRows","onLayoutChange","layout","saveToStorage","UpdatePlaceholderDimensions","deletePanel","itemIndex","findIndex","_","reject","SaveGrid","editWidget","openEditWidget","FindWidget","value","setTimeout","setItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","map","style","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","getByFilters","api","post","date","DashBoardService","_ApiServices","add","WidgetTypeListService","getAll","Dashboard","dashbords","setDashbords","currentDashbord","setCurrentDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","dashboardService","widgetTypeListService","useEffect","getDashboards","getWidgetTypes","dashboard","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","openAddEditWidget","TypeCode","editDesign","Name","Ripple","width","Dropdown","optionValue","optionLabel","onChange","placeholder","optionDisabled","option","Disabled","scrollHeight","label","form","autoFocus","marginLeft"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/features/Dashboard/ChartsComponents/ColumnChartComponent.tsx","../src/features/Dashboard/ChartsComponents/PieChartComponent.tsx","../src/features/Dashboard/ChartsComponents/MixedChartComponent.tsx","../src/features/Dashboard/ChartsComponents/AreaChartComponent.tsx","../src/features/Dashboard/ChartsComponents/TimelineChartComponent.tsx","../src/features/Dashboard/ChartsComponents/CandleChartComponent.tsx","../src/common/data-contracts/ApiQueryFilter.ts","../src/services/tools.ts","../src/services/DataService.ts","../src/features/Dashboard/ChartsComponents/BarChartComponent.tsx","../src/features/Dashboard/WidgetCard.tsx","../src/features/Dashboard/DashboardDesigner.tsx","../src/services/ApiServices.ts","../src/services/DashBoardService.ts","../src/services/WidgetTypeListService.ts","../src/index.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nclass ColumnChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default ColumnChartComponent;","import React from \"react\";\r\n\r\n\r\n\r\nexport class PieChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PieChartComponent;\r\n","import React from \"react\";\r\n\r\nclass MixedChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default MixedChartComponent;\r\n","import React from 'react'\r\nimport ReactApexChart from 'react-apexcharts'\r\nimport { ChartComponentProps } from '../../../types/ChartComponentProps'\r\nimport { ChartComponentState } from '../../../types/ChartComponentState'\r\n\r\nclass AreaChartComponent extends React.Component<\r\nChartComponentProps,\r\nChartComponentState\r\n> {\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props)\r\n\r\n this.state = {\r\n series: [\r\n {\r\n name: 'series1',\r\n data: [31, 40, 28, 51, 42, 109, 100],\r\n },\r\n {\r\n name: 'series2',\r\n data: [11, 32, 45, 32, 34, 52, 41],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n height: 350,\r\n type: 'area',\r\n },\r\n colors: ['#22D792','#2C99F7','#FBC445','#F74E49','#717585'] ,\r\n\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n type: 'datetime',\r\n categories: [\r\n '2018-09-19T00:00:00.000Z',\r\n '2018-09-19T01:30:00.000Z',\r\n '2018-09-19T02:30:00.000Z',\r\n '2018-09-19T03:30:00.000Z',\r\n '2018-09-19T04:30:00.000Z',\r\n '2018-09-19T05:30:00.000Z',\r\n '2018-09-19T06:30:00.000Z',\r\n ],\r\n },\r\n tooltip: {\r\n x: {\r\n format: 'dd/MM/yy HH:mm',\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"chart\">\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\")+''}</div>}\r\n\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"area\"\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default AreaChartComponent;\r\n","import React from \"react\";\r\n\r\nclass TimelineChartComponent extends React.Component {\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return <div id=\"chart\"></div>;\r\n }\r\n}\r\n\r\nexport default TimelineChartComponent;\r\n","import React from 'react'\r\n\r\nclass CandleChartComponent extends React.Component {\r\n\r\n constructor(props: {} | Readonly<{}>) {\r\n super(props);\r\n\r\n \r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n\r\n\r\n <div id=\"chart\">\r\n </div>\r\n\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default CandleChartComponent\r\n","export class ApiQueryFilters {\r\n\r\n public PageIndex: number | null = null;\r\n public PageSize: number | null = null;\r\n public SortBy: string | null = null;\r\n public SortDirection: string | null = null;\r\n public GetCount: boolean | null = null;\r\n public Tenant: number | null = null;\r\n public AdditionalFilters: FilterItem[] = [];\r\n public ForceCacheRefresh: boolean = false;\r\n public DontApplyVirtualization: boolean = false;\r\n\r\n \r\n\r\n addAdditionalFilter(\r\n FieldName: string,\r\n FieldValue: any,\r\n FieldValue2: any,\r\n FieldValue3: any,\r\n Operator: string,\r\n IsCustom: boolean,\r\n DisplayInList: boolean,\r\n IsCustomField: boolean,\r\n FieldDataType: string,\r\n IgnoreFilter: boolean = false,\r\n IsCacheOnClient: boolean = false,\r\n ForceEnableAdd:boolean = false) {\r\n\r\n let params=new ApiQueryFiltersAddParams();\r\n params.FieldName=FieldName;\r\n params.FieldValue=FieldValue;\r\n params.FieldValue2=FieldValue2;\r\n params.FieldValue3=FieldValue3;\r\n params.Operator=Operator;\r\n params.IsCustom=IsCustom;\r\n params.DisplayInList=DisplayInList;\r\n params.IsCustomField=IsCustomField;\r\n params.FieldDataType=FieldDataType;\r\n params.IgnoreFilter=IgnoreFilter;\r\n params.IsCacheOnClient=IsCacheOnClient;\r\n params.ForceEnableAdd=ForceEnableAdd;\r\n this.pushAdditionalFilter(params);\r\n }\r\n myReplace(myString: string) {\r\n var myNewString = \"\";\r\n for (var i = 0; i < myString.length; i++)\r\n {\r\n if (myString[i] == '\"') {\r\n myNewString = myNewString + '\\\\\"';\r\n }\r\n else {\r\n myNewString = myNewString + myString[i];\r\n }\r\n }\r\n return myNewString;\r\n }\r\n removeAdditionalFilter(FieldName: string) {\r\n var item = this.AdditionalFilters.filter(d=> d.FieldName == FieldName && d.IsLookUpfilter==true)[0];\r\n if (item) {\r\n var index = this.AdditionalFilters.indexOf(item);\r\n this.AdditionalFilters.splice(index, 1);\r\n }\r\n }\r\n \r\n pushAdditionalFilter(params:ApiQueryFiltersAddParams){\r\n if (!params.IsCacheOnClient) {\r\n if (typeof (params.FieldValue) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue = this.myReplace(params.FieldValue);//FieldValue.replace('\"', '\\\\\"');\r\n if (params.FieldName != \"ImportersFilter\")\r\n params.FieldValue = encodeURIComponent(params.FieldValue)\r\n //FieldValue = FieldValue.replace(\"%22\", \"\\%22\");\r\n }\r\n if (typeof (params.FieldValue2) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue2 = this.myReplace(params.FieldValue2);//.replace('\"', '\\\\\"');\r\n params.FieldValue2 = encodeURIComponent(params.FieldValue2)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n if (typeof (params.FieldValue3) === \"string\") {\r\n if (params.FieldValue)\r\n params.FieldValue3 = this.myReplace(params.FieldValue3);//FieldValue3.replace('\"', '\\\\\"');\r\n params.FieldValue3 = encodeURIComponent(params.FieldValue3)\r\n //FieldValue = FieldValue.replace(\"%20\", \" \");\r\n }\r\n }\r\n var existedItem = this.AdditionalFilters.find(d => d.FieldName == params.FieldName);\r\n if (!existedItem || params.ForceEnableAdd) {\r\n var item = new FilterItem(\r\n params.FieldName,\r\n params.FieldValue, \r\n params.FieldValue2,\r\n params.FieldValue3,\r\n params.Operator,\r\n params.IsCustom,\r\n params.DisplayInList,\r\n params.IsCustomField, \r\n params.FieldDataType,\r\n params.IgnoreFilter,\r\n params.IsCacheOnClient,\r\n params.IsLookUpFilter);\r\n this.AdditionalFilters.push(item);\r\n }\r\n }\r\n\r\n public queryId: string = '';\r\n public queryCode: string = '';\r\n\r\n public userid: string = '';\r\n public ObjectTableName: string = '';\r\n\r\n public Filter1Name: string | null = null;\r\n public Filter1Value: any;\r\n public Filter1Operator: string | null = null;\r\n public Filter1Value2: any;\r\n\r\n public Filter2Name: any;\r\n public Filter2Value: any;\r\n public Filter2Operator: any;\r\n public Filter2Value2: any;\r\n\r\n public Filter3Name: any;\r\n public Filter3Value: any;\r\n public Filter3Operator: any;\r\n public Filter3Value2: any;\r\n\r\n public Filter4Name: any;\r\n public Filter4Value: any;\r\n public Filter4Operator: any;\r\n public Filter4Value2: any;\r\n\r\n public Filter5Name: any;\r\n public Filter5Value: any;\r\n public Filter5Operator: any;\r\n public Filter5Value2: any;\r\n\r\n public Filter6Name: any;\r\n public Filter6Value: any;\r\n public Filter6Operator: any;\r\n public Filter6Value2: any;\r\n\r\n public Filter7Name: any;\r\n public Filter7Value: any;\r\n public Filter7Operator: any;\r\n public Filter7Value2: any;\r\n\r\n public Filter8Name: any;\r\n public Filter8Value: any;\r\n public Filter8Operator: any;\r\n public Filter8Value2: any;\r\n\r\n public Filter9Name: any;\r\n public Filter9Value: any;\r\n public Filter9Operator: any;\r\n public Filter9Value2: any;\r\n\r\n public Filter10Name: any;\r\n public Filter10Value: any;\r\n public Filter10Operator: any;\r\n public Filter10Value2: any;\r\n\r\n public GetAll: boolean = true;\r\n\r\n \r\n}\r\n\r\nexport class FilterItem {\r\n constructor(\r\n public FieldName: string,\r\n public FieldValue: any,\r\n public FieldValue2: any,\r\n public FieldValue3: any,\r\n public Operator: string,\r\n public IsCustom: boolean,\r\n public DisplayInList: boolean,\r\n public IsCustomField: boolean,\r\n public FieldDataType: string,\r\n public IgnoreFilter: boolean,\r\n public IsCacheOnClient: boolean = false,\r\n public IsLookUpfilter:boolean=false) { }\r\n \r\n\r\n}\r\nexport class ApiQueryFiltersAddParams{\r\n FieldName: string = '';\r\n FieldValue: any;\r\n FieldValue2: any;\r\n FieldValue3: any;\r\n Operator: string = '';\r\n IsCustom: boolean = false;\r\n DisplayInList: boolean = false;\r\n IsCustomField: boolean = false;\r\n FieldDataType: string = '';\r\n IgnoreFilter: boolean = false;\r\n IsCacheOnClient: boolean = false;\r\n ForceEnableAdd:boolean = false;\r\n IsLookUpFilter:boolean=false;\r\n}\r\n","export class Tools{\r\n public static GetLogitudeURL() {\r\n\r\n var logitude_url = location.href.replace('index.html', '');\r\n\r\n if (location.href.indexOf('localhost') > -1) {\r\n logitude_url = 'http://localhost:9996';//localhost:9996//';//\r\n }\r\n\r\n else {\r\n var urlArr = location.href.split(\"/index.html\");\r\n var url = urlArr[0];\r\n url = url.replace(url.substring(url.lastIndexOf('/'), url.length), \"\");\r\n logitude_url = url ;\r\n }\r\n\r\n return logitude_url;\r\n }\r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DataService{ \r\n private _apiUrl: string;\r\n constructor(){\r\n this._apiUrl = Tools.GetLogitudeURL() ;\r\n }\r\n getObjectTables(filters: ApiQueryFilters){\r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectTableViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getObjectFields(filters: ApiQueryFilters) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/ObjectFieldViews/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\r\n\r\n getDataByFilters(filters: ApiQueryFilters,tableName: string) {\r\n \r\n let token: string = this.getTokenFromStorage();\r\n\r\n\t\tvar apiURL = `${this._apiUrl}/api/${tableName}Views/getbyfilters?`;\r\n\t\tapiURL = this.ConcatFiltersToURL(filters, apiURL);\r\n\r\n return axios.get(apiURL, { headers: { 'Content-Type': 'application/json', 'Token': token } });\r\n }\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\r\n getTokenFromStorage(){\r\n return window.localStorage.getItem(\"token\") || '';\r\n }\r\n}","import React from \"react\";\r\nimport ReactApexChart from \"react-apexcharts\";\r\nimport { ApiQueryFilters } from \"../../../common/data-contracts/ApiQueryFilter\";\r\nimport { DataService } from \"../../../services/DataService\";\r\nimport { ChartComponentProps } from \"../../../types/ChartComponentProps\";\r\nimport { ChartComponentState } from \"../../../types/ChartComponentState\";\r\n\r\n\r\n\r\n\r\n\r\nclass BarChartComponent extends React.Component<\r\n ChartComponentProps,\r\n ChartComponentState\r\n> {\r\n\r\n data: any[] = [];\r\n constructor(props: ChartComponentProps | Readonly<ChartComponentProps>) {\r\n super(props);\r\n const filters = new ApiQueryFilters();\r\n const dataService = new DataService();\r\n if (this.props.widget?.Title)\r\n dataService.getDataByFilters(filters, this.props.widget.Title || '')\r\n .then((response: any) => {\r\n console.log(\"dataService.getDataByFilters\", response);\r\n this.data = response.data.Result;\r\n this.InitChart();\r\n })\r\n\r\n\r\n this.state = {\r\n series: [\r\n {\r\n data: [],\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: [],\r\n },\r\n },\r\n };\r\n\r\n }\r\n\r\n\r\n private InitChart() {\r\n const groups = this.GroupItems();\r\n\r\n\r\n const catItems = Object.keys(groups);\r\n const dataItems: any[] = Object.values(groups);\r\n\r\n\r\n this.setState({\r\n series: [\r\n {\r\n data: dataItems,\r\n },\r\n ],\r\n options: {\r\n chart: {\r\n type: \"bar\",\r\n height: 350,\r\n events: {\r\n dataPointSelection: function (event, chartContext, config) {\r\n const data = config.w.config.xaxis.categories[config.seriesIndex];\r\n console.log(\"Selected \" + data);\r\n },\r\n },\r\n },\r\n colors: [\"#22D792\", \"#2C99F7\", \"#FBC445\", \"#F74E49\", \"#717585\"],\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n horizontal: true,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n xaxis: {\r\n categories: catItems,\r\n },\r\n },\r\n });\r\n }\r\n // private GroupItems()\r\n // {\r\n // return this.data.reduce((groups, record) =>\r\n // {\r\n // const fieldName = this.props.widget.ValueFieldName + '';\r\n\r\n // const group = (groups[record] || []);\r\n // group.push(record);\r\n\r\n // const recordCategory = record[this.props.widget.ValueFieldName + ''];\r\n // groups[record[fieldName]] = groups[recordCategory] + 1 || 0;\r\n // return groups;\r\n // }, {});\r\n // }\r\n private GroupItems() {\r\n let groups = this.data.reduce((groups, record) => {\r\n const CreateGroup = (groups: any, record: any) => {\r\n const group = (groups[record] || []);\r\n group.push(record);\r\n }\r\n const SetGroupData = () => {\r\n const groupByFieldName = this.props.widget.GroupBy + \"\";\r\n // const valueFieldName = this.props.widget.ValueFieldName + \"\";\r\n const recordCategory = record[groupByFieldName];\r\n // const recordValue = record[valueFieldName];\r\n let currentGroupValue = groups[record[groupByFieldName]];\r\n\r\n // switch (this.props.widget.) {\r\n // case \"Count\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + 1;\r\n // break;\r\n // }\r\n // case \"Sum\": {\r\n // if (!currentGroupValue) currentGroupValue = 0;\r\n // currentGroupValue = currentGroupValue + recordValue;\r\n // break;\r\n // }\r\n // case \"Max\": {\r\n // if (!currentGroupValue) currentGroupValue = -9999999999999;\r\n\r\n // if (recordValue > currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Min\": {\r\n // if (!currentGroupValue) currentGroupValue = 9999999999999;\r\n\r\n // if (recordValue < currentGroupValue)\r\n // currentGroupValue = recordValue;\r\n // break;\r\n // }\r\n // case \"Average\": {\r\n // if (!currentGroupValue) currentGroupValue = [];\r\n // currentGroupValue.push(recordValue);\r\n // break;\r\n // }\r\n // }\r\n\r\n groups[record[groupByFieldName]] = currentGroupValue;\r\n };\r\n\r\n CreateGroup(groups, record);\r\n SetGroupData();\r\n return groups;\r\n }, {});\r\n\r\n // if (this.props.widget.CalcType == \"Average\") {\r\n // for (const key in groups) {\r\n // if (Object.prototype.hasOwnProperty.call(groups, key)) {\r\n // const groupArray: any[] = groups[key];\r\n // let sum = groupArray.reduce((a, b) => a + (b[key] || 0), 0);\r\n // let avg = sum / groupArray.length;\r\n // groups[key] = avg;\r\n // }\r\n // }\r\n // }\r\n return groups;\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n <div id=\"chart\">\r\n <div>\r\n {this.props.dateFilter && <div className=\"filter-label\"> Date: {this.props.dateFilter.toLocaleDateString(\"en-US\") + ''}</div>}\r\n </div>\r\n {/* <div>\r\n {this.props.widget?.EntityName}: {this.props.widget?.CalcType} of {this.props.widget?.ValueFieldName} \r\n </div> */}\r\n <ReactApexChart\r\n options={this.state.options}\r\n series={this.state.series}\r\n type=\"bar\"\r\n height={\"100%\"}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default BarChartComponent;\r\n","import { stat } from \"fs\";\r\nimport { Button } from \"primereact/button\";\r\nimport { OverlayPanel } from \"primereact/overlaypanel\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport AreaChartComponent from \"./ChartsComponents/AreaChartComponent\";\r\nimport BarChartComponent from \"./ChartsComponents/BarChartComponent\";\r\nimport CandleChartComponent from \"./ChartsComponents/CandleChartComponent\";\r\nimport ColumnChartComponent from \"./ChartsComponents/ColumnChartComponent\";\r\nimport MixedChartComponent from \"./ChartsComponents/MixedChartComponent\";\r\nimport PieChartComponent from \"./ChartsComponents/PieChartComponent\";\r\nimport TimelineChartComponent from \"./ChartsComponents/TimelineChartComponent\";\r\n\r\n\r\ntype WidgetCardProps = {\r\n editBtnClicked(widget: any):any;\r\n deleteBtnClicked(i: any):any;\r\n widget: any | null;\r\n el: any;\r\n dateFilter: any;\r\n}\r\n\r\n\r\nconst WidgetCard = (props: WidgetCardProps, state: any) => {\r\n const moreBtnToggle = useRef<OverlayPanel>(null);\r\n\r\n const widgetComponents: any[] = [\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 return (\r\n <div className=\"panel\" key={props.el.i}>\r\n <header>\r\n <h1>{props.widget?.WidgetName || \"not set\"}</h1>\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\r\n <OverlayPanel ref={moreBtnToggle} className=\"buttons-overlay\">\r\n <div className=\"buttons-list\">\r\n <div onClick={() => props.editBtnClicked(props.widget)} > Edit </div>\r\n <div onClick={() => props.deleteBtnClicked(props.el.i)} >Remove</div>\r\n </div>\r\n </OverlayPanel>\r\n </header>\r\n\r\n <div className=\"dashboard-widget\">\r\n {React.createElement(\r\n widgetComponents.find((wc) => wc.type === props.widget.WidgetType)\r\n ?.component,\r\n {\r\n key: props.el.i,\r\n dateFilter: props.dateFilter,\r\n widget: props.widget,\r\n }\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WidgetCard;\r\n","\r\n\r\nimport { WidthProvider, Responsive } 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\n\r\nconst ResponsiveReactGridLayout = WidthProvider(Responsive);\r\nconst newWidgetWidth = 3;\r\n\r\ntype DashboardDesignerProps = { \r\n openEditWidget:(widget: ReactWidgetPM) => void\r\n };\r\nconst DashboardDesigner = (props:DashboardDesignerProps) => {\r\n\r\n const [widgetButtonToggle, setWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [addWidgetButtonToggle, setAddWidgetButtonToggle] = useState(createRef<OverlayPanel>());\r\n const [widgetComponents, setWidgetComponents] = useState([\r\n { type: \"Bar\", component: BarChartComponent },\r\n { type: \"Col\", component: ColumnChartComponent },\r\n { type: \"Pie\", component: PieChartComponent },\r\n { type: \"Are\", component: AreaChartComponent },\r\n ]);\r\n const array12 = Array.from({ length: 12 }).fill(null);\r\n var savedLayouts = getFromStorage(\"grid-layout\");\r\n var savedWidgets = getFromStorage(\"grid-widgets\");\r\n const minimumPlaceholderRowsCount = 12;\r\n const [layouts, setLayouts] = useState(savedLayouts || { lg: [] });\r\n const [placeholderRowsArray, setplaceholderRowsArray] = useState(Array.from({ length: minimumPlaceholderRowsCount }).fill(null));\r\n const [showMsg, setShowMsg] = useState(false);\r\n const [dateFilter, setDateFilter] = useState<Date | Date[] | undefined>(undefined);\r\n const [displayDialog, setDisplayDialog] = useState(false);\r\n const [dashboardTitle, setDashboardTitle] = useState(\"\");\r\n const [widgets, setWidgets] = useState(savedWidgets || []);\r\n const [placeholderRows, setPlaceholderRows] = useState(minimumPlaceholderRowsCount);\r\n\r\n // const [widgetToEdit, setWidgetToEdit] = useState<Widget | null>(null);\r\n // const renderPageHeader = () => {\r\n // return (\r\n\r\n // <div className=\"dl-heder-row\">\r\n // {/* <Calendar\r\n // value={dateFilter}\r\n // showIcon={true}\r\n // onChange={(e) => setDateFilter(e.value)}\r\n // placeholder=\"filter by date...\"\r\n // ></Calendar> */}\r\n \r\n\r\n\r\n // </div>\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 renderGridWidgetsPlaceholder() {\r\n // console.log(placeholderRows)\r\n // return (\r\n // <div className=\"dl-grid dl-grid--bordered\">\r\n // {[...Array(placeholderRows)].map((e, i) =>\r\n // [...Array(layoutGridProps.cols.lg)].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 // </div>\r\n // );\r\n // }\r\n\r\n function onLayoutChange(layout: any, layouts) {\r\n console.log(layout, layouts);\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n setLayouts(layouts);\r\n UpdatePlaceholderDimensions();\r\n }\r\n function renderWidgetComponent(el: any) {\r\n const widget = FindWidget(el);\r\n\r\n return (\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={widget}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\r\n />\r\n </div>\r\n );\r\n }\r\n function deletePanel(i) {\r\n let layout = layouts[\"lg\"];\r\n var itemIndex = layout.findIndex((d) => d.i === i);\r\n layout.splice(itemIndex, 1);\r\n setLayouts({ lg: [...layout] });\r\n setWidgets(_.reject(widgets, { i: i }));\r\n SaveGrid();\r\n };\r\n function SaveGrid() {\r\n saveToStorage(\"grid-layout\", layouts);\r\n saveToStorage(\"grid-widgets\", widgets);\r\n }\r\n function editWidget(widget: ReactWidgetPM) {\r\n props.openEditWidget(widget);\r\n };\r\n function FindWidget(el: any) {\r\n return widgets.find((d) => d.i === el.i);\r\n }\r\n function saveToStorage(key, value) {\r\n setShowMsg(true);\r\n setTimeout(() => {\r\n setShowMsg(false);\r\n }, 2000);\r\n window.localStorage.setItem(key, JSON.stringify(value));\r\n };\r\n function getFromStorage(key) {\r\n const layout: any = window.localStorage.getItem(key);\r\n return JSON.parse(layout);\r\n };\r\n // function toggleDialog() {\r\n // setDisplayDialog(!displayDialog);\r\n // }\r\n // function renderNewWidgetDialog() {\r\n\r\n // return (\r\n // <Dialog\r\n\r\n // header={widgetToEdit ? \"Edit Chart\" : \"New Chart\"}\r\n // visible={displayDialog}\r\n // onHide={toggleDialog}\r\n // breakpoints={{ \"850px\": \"95vw\", \"600px\": \"100vw\" }}\r\n // style={{ width: \"800px\" }}\r\n // >\r\n // <NewWidget\r\n // onOkButton={onOkButton}\r\n // onCancelButton={onCancelButton}\r\n // widget={widgetToEdit}\r\n // />\r\n // </Dialog>\r\n // );\r\n // }\r\n function addPanel(newWidget: ReactWidgetPM) {\r\n\r\n let newWidgetPosition = EvaluateNewWidgetPosition();\r\n\r\n const widgetComponent = widgetComponents.find(\r\n (wc) => wc.type === newWidget.TypeCode\r\n );\r\n\r\n const randomIndex = getRandomInt(100, 999);\r\n const newPanel = {\r\n i: \"\" + randomIndex,\r\n x: newWidgetPosition.x,\r\n y: newWidgetPosition.y,\r\n w: newWidgetWidth,\r\n h: 5,\r\n minH: 5,\r\n minW: 3,\r\n };\r\n\r\n widgets.push({\r\n i: \"\" + randomIndex,\r\n title: newWidget.Title,\r\n component: widgetComponent?.component,\r\n ...newWidget,\r\n });\r\n setLayouts({ lg: layouts[\"lg\"].concat(newPanel) });\r\n setWidgets(widgets);\r\n\r\n };\r\n\r\n function EvaluateNewWidgetPosition() {\r\n let widgetYPosition = 0;\r\n let widgetXPosition = 0;\r\n let layout: { x: number, y: number, w: number }[] = layouts[\"lg\"];\r\n const maxY = layout.reduce((max, widget) => {\r\n if (widget.y > max) max = widget.y;\r\n return max;\r\n }, 0);\r\n\r\n for (let y = 0; y <= maxY; y++) {\r\n const widgetsRow = layout.filter(d => d.y == y);\r\n const lastWidgetStartXPosition = Math.max.apply(Math, widgetsRow.map(a => a.x));\r\n const lastWidget: any = widgetsRow.find(a => a.x == lastWidgetStartXPosition);\r\n if (lastWidget) {\r\n const lastWidgetEndXPosition = lastWidgetStartXPosition + lastWidget.w;\r\n const availableHorizontalSlots = layoutGridProps.cols.lg - lastWidgetEndXPosition;\r\n if (availableHorizontalSlots >= newWidgetWidth) {\r\n widgetYPosition = y;\r\n widgetXPosition = lastWidgetEndXPosition;\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n } else {\r\n widgetYPosition = y + 1;\r\n }\r\n }\r\n\r\n return { x: widgetXPosition, y: widgetYPosition };\r\n }\r\n // function onOkButton(data: any) {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // addPanel(data);\r\n // };\r\n // function onCancelButton() {\r\n // setWidgetToEdit(null);\r\n // toggleDialog();\r\n // };\r\n function getRandomInt(min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n // useEffect(() => {\r\n\r\n // });\r\n function UpdatePlaceholderDimensions() {\r\n\r\n var gridLayout = document.getElementsByClassName('react-grid-layout')\r\n if (!gridLayout)\r\n return;\r\n const gridElementHeight = gridLayout[0]?.clientHeight;\r\n\r\n let newPlaceholderRows = Math.floor(gridElementHeight / layoutGridProps.rowHeight);\r\n newPlaceholderRows = newPlaceholderRows < minimumPlaceholderRowsCount ? minimumPlaceholderRowsCount : newPlaceholderRows;\r\n setPlaceholderRows(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 {/* {renderGridWidgetsPlaceholder()} */}\r\n <div className=\"dl-grid dl-grid--bordered\">\r\n {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 </div>\r\n\r\n\r\n <ResponsiveReactGridLayout\r\n {...layoutGridProps}\r\n layouts={layouts}\r\n compactType=\"vertical\"\r\n\r\n onWidthChange={() => UpdatePlaceholderDimensions()}\r\n onLayoutChange={(layout, layouts) =>\r\n onLayoutChange(layout, layouts)\r\n }\r\n >\r\n {layouts[\"lg\"].map((el) =>\r\n\r\n <div key={el.i}>\r\n <WidgetCard\r\n key={el.i}\r\n widget={FindWidget(el)}\r\n el={el}\r\n dateFilter={dateFilter}\r\n editBtnClicked={editWidget}\r\n deleteBtnClicked={deletePanel}\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 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:T){\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 { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class DashBoardService{ \r\n _ApiServices:ApiServices;\r\n tableName = 'DashBoard';\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<ReactDashboardPM>(`/api/${this.tableName}Views/getbyfilters?`,filters);\r\n }\r\n\r\n add(data:ReactDashboardPM){\r\n return this._ApiServices.post(`/api/DashBoards`,data);\r\n }\r\n \r\n}","import axios from \"axios\";\r\nimport { ApiQueryFilters } from \"../common/data-contracts/ApiQueryFilter\";\r\nimport { ReactDashboardPM } from \"../types/Dashboard\";\r\nimport { WidgetType } from \"../types/WidgetType\";\r\nimport { ApiServices } from \"./ApiServices\";\r\nimport { Tools } from './tools';\r\n\r\n\r\nexport class WidgetTypeListService{ \r\n _ApiServices:ApiServices;\r\n\r\n constructor(){\r\n this._ApiServices = new ApiServices();\r\n }\r\n \r\n\r\n getDataByFilters(filters: ApiQueryFilters) {\r\n return this._ApiServices.getByFilters<WidgetType>(`/api/WidgetTypeViews/getbyfilters?`,filters);\r\n }\r\n\r\n getAll() {\r\n return this._ApiServices.get<WidgetType[]>(`/api/WidgetTypeViews/getall`);\r\n }\r\n\r\n \r\n}","import * as React from 'react'\nimport { Card } from 'primereact/card';\nimport { Button } from \"primereact/button\";\nimport DashboardDesigner from './features/Dashboard/DashboardDesigner'\nimport \"./styles.module.css\"\nimport { Dropdown } from 'primereact/dropdown';\nimport { createRef, useEffect, useRef, useState } from \"react\";\nimport { DashBoardService } from './services/DashBoardService';\nimport { ApiQueryFilters } from './common/data-contracts/ApiQueryFilter';\nimport { ReactDashboardPM } from './types/Dashboard';\nimport { Dialog } from 'primereact/dialog';\nimport DashboardDialogComponent from './features/Dashboard/dashboard-dialog/dashboard-dialog-component';\nimport { Session } from './services/session';\nimport { WidgetTypeListService } from './services/WidgetTypeListService';\nimport { WidgetType } from './types/WidgetType';\nimport { ReactWidgetPM } from './types/widget';\nimport { OverlayPanel } from 'primereact/overlaypanel';\nimport { Ripple } from 'primereact/ripple';\nimport { DashboardDataBinding } from './types/DashboardDataBinding';\ntype DashboardProps = {\n token: string,\n tenant: number,\n userId: string,\n dataBinding:DashboardDataBinding,\n openAddEditWidget: (widget: ReactWidgetPM | undefined) => void,\n openAddEditDashboard: (dashboard: ReactDashboardPM | undefined) => void,\n onChangeDashboard: (dashboard: ReactDashboardPM | undefined) => void,\n onSaveDashboard: (dashboard: ReactDashboardPM | undefined) => void,\n};\nconst Dashboard = (props: DashboardProps) => {\n const [dashbords, setDashbords] = useState<ReactDashboardPM[]>([]);\n const [currentDashbord, setCurrentDashbord] = useState<ReactDashboardPM | undefined>(undefined);\n const [selectedWidget, setSelectedWidget] = useState();\n const [isInEditMode, setIsInEditMode] = useState<boolean>(false);\n const [WidgetTypes, setWidgetTypes] = useState<WidgetType[]>();\n const dashboardMoreButtonToggle = createRef<OverlayPanel>();\n const dashboardService = new DashBoardService();\n const widgetTypeListService = new WidgetTypeListService();\n useEffect(() => {\n getDashboards();\n getWidgetTypes();\n \n props.dataBinding.onGetDashboard.subscribe(e=>{\n setCurrentDashbord(e);\n })\n props.dataBinding.onGetAllDashboard.subscribe(e=>{\n setDashbords(e);\n })\n\n }, [])\n\n Session.CurrentUserId = props.userId;\n Session.Tenant = props.tenant;\n Session.Token = props.token;\n if (props?.token?.length > 0)\n localStorage.setItem(\"token\", props?.token);\n\n const onDashboardDialogClose = () => {\n getDashboards();\n }\n\n const getDashboards = () => {\n dashboardService.getDataByFilters(new ApiQueryFilters()).then(data => {\n setDashbords(data.data.Result);\n if (data.data.Result.length > 0)\n setCurrentDashbord(data.data.Result[0]);\n });\n }\n const getWidgetTypes = () => {\n widgetTypeListService.getAll().then(data => {\n setWidgetTypes(data.data);\n\n\n });\n }\n const EditDashBoard = () => {\n props.openAddEditDashboard(currentDashbord);\n dashboardMoreButtonToggle?.current?.hide();\n \n }\n const addWidget = (widgetCode) => {\n props.openAddEditWidget({ TypeCode: widgetCode } as ReactWidgetPM);\n }\n\n const editDesign = () => {\n setIsInEditMode(true)\n dashboardMoreButtonToggle?.current?.hide();\n console.log(WidgetTypes)\n }\n\n return (\n <div className='dl-full-hight'>\n\n <div className='dl-dashboard-header dl-card'>\n <div className='dl-flex-row'>\n <div className='dl-title-1'>{currentDashbord?.Name}</div>\n <Button\n icon=\"pi pi-ellipsis-v\"\n onClick={(e) => dashboardMoreButtonToggle?.current?.toggle(e)}\n className=\"p-button-lg p-button-rounded p-button-text\"\n >\n <Ripple />\n </Button>\n <OverlayPanel ref={dashboardMoreButtonToggle} className=\"buttons-overlay\">\n <div className=\"buttons-list\">\n <div onClick={() => EditDashBoard()}>Edit</div>\n <div onClick={editDesign}>Edit Design</div>\n\n </div>\n </OverlayPanel >\n </div>\n <div className='dl-flex-row'>\n {!isInEditMode ?\n <div className='dl-flex-row'>\n \n\n <div style={{ width: \"210px\" }}>\n <Dropdown\n value={[]}\n options={dashbords}\n optionValue=\"Id\"\n optionLabel=\"Name\"\n onChange={(e) => { }}\n placeholder=\"Choose Dashboard\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n <Button icon=\"pi pi-plus\" onClick={() => props.openAddEditDashboard(undefined)}\n className=\"dl-dashboard-add p-button-rounded p-button-success\" aria-label=\"Search\" />\n </div>\n : null}\n {/* <DashboardDialogComponent display={displayAddDashboard} onClose={onDashboardDialogClose}></DashboardDialogComponent> */}\n\n\n\n {isInEditMode ?\n <div className='dl-flex-row'>\n \n <Button\n label=\"Cancel\"\n className=\"p-button-text\"\n onClick={() => {setIsInEditMode(false) }}\n />\n <Button\n label=\"Save\"\n form=\"frm\"\n // icon=\"pi pi-check\"\n onClick={() => { setIsInEditMode(false)}}\n autoFocus\n />\n\n <div style={{ width: '192px',marginLeft:'15px'}}>\n <Dropdown\n value={selectedWidget}\n options={WidgetTypes}\n optionValue=\"Code\"\n optionLabel=\"Name\"\n onChange={(e) => addWidget(e.value)}\n placeholder=\"Add Component\"\n optionDisabled={(option) => {\n return option?.Disabled;\n }}\n scrollHeight=\"300px\"\n />\n </div>\n </div>\n : null}\n </div>\n\n\n </div>\n\n <div className='dl-dashboard-body'>\n <DashboardDesigner openEditWidget={(widget: ReactWidgetPM) => props.openAddEditWidget(widget)} ></DashboardDesigner>\n </div>\n </div >\n\n )\n}\nexport default Dashboard;"],"names":["ColumnChartComponent","props","render","React","id","Component","PieChartComponent","MixedChartComponent","AreaChartComponent","state","series","name","data","options","chart","height","type","colors","dataLabels","enabled","stroke","curve","xaxis","categories","tooltip","x","format","dateFilter","className","toLocaleDateString","ReactApexChart","TimelineChartComponent","CandleChartComponent","ApiQueryFilters","addAdditionalFilter","FieldName","FieldValue","FieldValue2","FieldValue3","Operator","IsCustom","DisplayInList","IsCustomField","FieldDataType","IgnoreFilter","IsCacheOnClient","ForceEnableAdd","params","ApiQueryFiltersAddParams","pushAdditionalFilter","myReplace","myString","myNewString","i","length","removeAdditionalFilter","item","AdditionalFilters","filter","d","IsLookUpfilter","index","indexOf","splice","encodeURIComponent","existedItem","find","FilterItem","IsLookUpFilter","push","Tools","GetLogitudeURL","logitude_url","location","href","replace","urlArr","split","url","substring","lastIndexOf","DataService","_apiUrl","getObjectTables","filters","token","getTokenFromStorage","apiURL","ConcatFiltersToURL","axios","get","headers","getObjectFields","getDataByFilters","tableName","urlparameters","mykeys","Object","keys","addtionalFiltersValues","propName","propValue","ignoreFilter","concat","JSON","stringify","window","localStorage","getItem","BarChartComponent","dataService","widget","Title","then","response","console","log","Result","InitChart","events","dataPointSelection","event","chartContext","config","w","seriesIndex","plotOptions","bar","borderRadius","horizontal","groups","GroupItems","catItems","dataItems","values","setState","reduce","record","CreateGroup","group","SetGroupData","groupByFieldName","GroupBy","currentGroupValue","WidgetCard","moreBtnToggle","useRef","widgetComponents","component","key","el","WidgetName","Button","icon","onClick","e","current","toggle","OverlayPanel","ref","editBtnClicked","deleteBtnClicked","createElement","wc","WidgetType","ResponsiveReactGridLayout","WidthProvider","Responsive","DashboardDesigner","useState","createRef","array12","Array","from","fill","savedLayouts","getFromStorage","savedWidgets","minimumPlaceholderRowsCount","lg","layouts","setLayouts","placeholderRowsArray","setplaceholderRowsArray","showMsg","setShowMsg","undefined","widgets","setWidgets","placeholderRows","setPlaceholderRows","onLayoutChange","layout","saveToStorage","UpdatePlaceholderDimensions","deletePanel","itemIndex","findIndex","_","reject","SaveGrid","editWidget","openEditWidget","FindWidget","value","setTimeout","setItem","parse","gridLayout","document","getElementsByClassName","gridElementHeight","clientHeight","newPlaceholderRows","Math","floor","layoutGridProps","rowHeight","map","style","compactType","onWidthChange","cols","md","sm","xs","xxs","useCSSTransforms","ApiServices","getByFilters","api","post","date","DashBoardService","_ApiServices","add","WidgetTypeListService","getAll","Dashboard","dashbords","setDashbords","currentDashbord","setCurrentDashbord","selectedWidget","isInEditMode","setIsInEditMode","WidgetTypes","setWidgetTypes","dashboardMoreButtonToggle","dashboardService","widgetTypeListService","useEffect","getDashboards","getWidgetTypes","dataBinding","onGetDashboard","subscribe","onGetAllDashboard","EditDashBoard","openAddEditDashboard","hide","addWidget","widgetCode","openAddEditWidget","TypeCode","editDesign","Name","Ripple","width","Dropdown","optionValue","optionLabel","onChange","placeholder","optionDisabled","option","Disabled","scrollHeight","label","form","autoFocus","marginLeft"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ApiQueryFilters } from "../common/data-contracts/ApiQueryFilter";
|
|
2
|
-
import {
|
|
2
|
+
import { ReactDashboardPM } from "../types/Dashboard";
|
|
3
3
|
import { ApiServices } from "./ApiServices";
|
|
4
4
|
export declare class DashBoardService {
|
|
5
5
|
_ApiServices: ApiServices;
|
|
6
6
|
tableName: string;
|
|
7
7
|
constructor();
|
|
8
|
-
getDataByFilters(filters: ApiQueryFilters): Promise<import("axios").AxiosResponse<import("../types/APIResult").APIResult<
|
|
9
|
-
add(data:
|
|
8
|
+
getDataByFilters(filters: ApiQueryFilters): Promise<import("axios").AxiosResponse<import("../types/APIResult").APIResult<ReactDashboardPM>, any>>;
|
|
9
|
+
add(data: ReactDashboardPM): Promise<import("axios").AxiosResponse<ReactDashboardPM, any>>;
|
|
10
10
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactWidgetPM } from "./widget";
|
|
2
2
|
export declare type ChartComponentProps = {
|
|
3
3
|
key: any;
|
|
4
4
|
dateFilter: {
|
|
5
5
|
toLocaleDateString: (arg0: string) => string;
|
|
6
6
|
};
|
|
7
|
-
widget:
|
|
7
|
+
widget: ReactWidgetPM;
|
|
8
8
|
refreshChart(): any;
|
|
9
9
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export declare type
|
|
1
|
+
export declare type ReactDashboardPM = {
|
|
2
2
|
Id?: string;
|
|
3
3
|
Tenant: number;
|
|
4
4
|
CreateDate?: Date;
|
|
5
5
|
CreatedByUserId: string;
|
|
6
|
-
UpdateDate?:
|
|
6
|
+
UpdateDate?: Date;
|
|
7
7
|
UpdatedByUserId: string;
|
|
8
8
|
Description: string;
|
|
9
9
|
Name: string;
|
package/dist/types/widget.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "logitude-dashboard-library",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.35",
|
|
4
4
|
"description": "Made with create-react-library",
|
|
5
5
|
"author": "logitude",
|
|
6
6
|
"license": "MIT",
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
"react": "^17.0.2",
|
|
85
85
|
"react-apexcharts": "^1.4.0",
|
|
86
86
|
"react-grid-layout": "^1.3.4",
|
|
87
|
+
"rxjs": "^7.5.6",
|
|
87
88
|
"sass": "^1.52.1",
|
|
88
89
|
"scss": "^0.2.4",
|
|
89
90
|
"typescript": "^4.7.2",
|